Ë A–qÂeÖ/ãóN—dZddlmZmZddlZddlZddlmZddl m Z m Z m Z ejddk\ZdZej Zej"d ed ¬ «Gd „d ej&«ZGd„dej*«Ze«Zej0Zdd„Zdd„Zdd„ZeZd„Zy)zkDEPRECATED Example code for lxml.etree protection The code has NO protection against decompression bombs. é)Úprint_functionÚabsolute_importN)Úetreeé)Ú DTDForbiddenÚEntitiesForbiddenÚNotSupportedErroréz lxml.etreezOdefusedxml.lxml is no longer supported and will be removed in a future release.é)ÚcategoryÚ stacklevelc󊇗eZdZdZdZej Zd„Zˆfd„Z d ˆfd„ Z d ˆfd„ Z d ˆfd„ Z d ˆfd„ Z ˆfd „Zd ˆfd „ ZˆxZS) ÚRestrictedElementzEA restricted Element class that filters out instances of some classes©c#óTK—|j}|D]}t||«rŒ|–—Œy­w©N)Ú blacklistÚ isinstance)ÚselfÚiteratorrÚchilds ú4/usr/lib/python3.12/site-packages/defusedxml/lxml.pyÚ_filterzRestrictedElement._filter(s+èø€Ø—N‘Nˆ ÛˆEܘ% Ô+ØØ‹Kñùs‚&(cóJ•—tt|� «}|j|«Sr)ÚsuperrÚ__iter__r©rrÚ __class__s €rrzRestrictedElement.__iter__/s"ø€ÜÔ*¨DÑ:Ó<ˆØ�|‰|˜HÓ%Ð%ócóP•—tt|� ||¬«}|j|«S)N)ÚtagÚreversed)rrÚ iterchildrenr)rr!r"rrs €rr#zRestrictedElement.iterchildren3s*ø€ÜÔ*¨DÑ>À3ÐQYÐ>ÓZˆØ�|‰|˜HÓ%Ð%rcóL•—tt|� |d|iŽ}|j|«S©Nr!)rrÚiterr©rr!Útagsrrs €rr&zRestrictedElement.iter7s)ø€ÜÔ*¨DÑ6ÀÐF¸3ÑFˆØ�|‰|˜HÓ%Ð%rcóL•—tt|� |d|iŽ}|j|«Sr%)rrÚiterdescendantsrr's €rr*z!RestrictedElement.iterdescendants;s)ø€ÜÔ*¨DÑAÈDÐQÀcÑQˆØ�|‰|˜HÓ%Ð%rcóP•—tt|� ||¬«}|j|«S)N)r!Ú preceding)rrÚ itersiblingsr)rr!r,rrs €rr-zRestrictedElement.itersiblings?s*ø€ÜÔ*¨DÑ>À3ÐR[Ð>Ó\ˆØ�|‰|˜HÓ%Ð%rcó\•—tt|� «}t|j |««Sr)rrrÚlistrrs €rÚ getchildrenzRestrictedElement.getchildrenCs'ø€ÜÔ*¨DÑ:Ó<ˆÜ�D—L‘L Ó*Ó+Ð+rcóL•—tt|� |«}|j|«Sr)rrÚ getiteratorr)rr!rrs €rr2zRestrictedElement.getiteratorGs$ø€ÜÔ*¨DÑ=¸cÓBˆØ�|‰|˜HÓ%Ð%r)NFr)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__Ú_etreeÚ_Entityrrrr#r&r*r-r0r2Ú __classcell__)rs@rrr!sAø„ÙOà€Ià—‘€Iòô&õ&õ&õ&õ&ô,÷&ñ&rrcó.—eZdZdZddiZeZd„Zd„Zd„Z y)ÚGlobalParserTLSz0Thread local context for custom parser instancesÚresolve_entitiesFcó—tjdi|j¤Ž}|j}|j�'tj|¬«}|j |«|S)N)Úelementr)r8Ú XMLParserÚ parser_configÚ element_classÚElementDefaultClassLookupÚset_element_class_lookup)rÚparserrBÚlookups rÚcreateDefaultParserz#GlobalParserTLS.createDefaultParserWsU€Ü×!Ñ!Ñ7 D×$6Ñ$6Ñ7ˆØ×*Ñ*ˆ Ø × Ñ Ð )Ü×5Ñ5¸mÔLˆFØ × +Ñ +¨FÔ 3؈ rcó—||_yr)Ú_default_parser©rrEs rÚsetDefaultParserz GlobalParserTLS.setDefaultParser_s €Ø%ˆÕrcóf—t|dd«}|€!|j«}|j|«|S)NrI)ÚgetattrrGrKrJs rÚgetDefaultParserz GlobalParserTLS.getDefaultParserbs7€Ü˜Ð0°$Ó7ˆØ ˆ>Ø×-Ñ-Ó/ˆFØ × !Ñ ! &Ô )؈ rN) r3r4r5r6rArrBrGrKrNrrrr<r<Ls)„Ù:ð ˜Eð€Mð &€Mòò&órr<c ój—|j}|jr@|r+t|j|j|j«‚|rt s t d«‚|rY|j|jfD]=}|€Œ|j«D]%}t|j|jdddd«‚Œ?yy)zµCheck docinfo of an element tree for DTD and entity declarations The check for entity declarations needs lxml 3 or newer. lxml 2.x does not support dtd.iterentities(). z3Unable to check for entity declarations in lxml 2.xN) ÚdocinfoÚdoctyperÚ system_urlÚ public_idÚLXML3r Ú internalDTDÚ externalDTDÚ iterentitiesrÚnameÚcontent)Ú elementtreeÚ forbid_dtdÚforbid_entitiesrPÚdtdÚentitys rÚ check_docinfor_ns¦€ð ×!Ñ!€G؇‚٠ܘwŸ™°×0BÑ0BÀG×DUÑDUÓVÐ VÙ ¥5ä#Ð$\Ó]Ð ]áØ×&Ñ&¨×(;Ñ(;Ó;ˆC؈{ØØ×*Ñ*Ö,�Ü'¨¯ © °V·^±^ÀTÈ4ÐQUÐW[Ó\Ð\ñ-ñ<ðrcóh—|€ t«}tj|||¬«}t|||«|S©N)Úbase_url)rNr8Úparser_)ÚsourcerErbr[r\rZs rrcrc„s3€Ø €~Ü!Ó#ˆÜ—,‘,˜v v¸ÔA€KÜ�+˜z¨?Ô;Ø Ðrcóˆ—|€ t«}tj|||¬«}|j«}t |||«|Sra)rNr8Ú fromstringÚ getroottreer_)ÚtextrErbr[r\Ú rootelementrZs rrfrfŒsC€Ø €~Ü!Ó#ˆÜ×#Ñ# D¨&¸8ÔD€KØ×)Ñ)Ó+€KÜ�+˜z¨?Ô;Ø Ðrcó—td«‚)Nz*defused lxml.etree.iterparse not available)r )ÚargsÚkwargss rÚ iterparserm˜s€Ü ÐHÓ IÐIr)FT)NNFT)r6Ú __future__rrÚ threadingÚwarningsÚlxmlrr8Úcommonrrr Ú LXML_VERSIONrTÚ __origin__ÚtostringÚwarnÚDeprecationWarningÚ ElementBaserÚlocalr<Ú _parser_tlsrNr_rcrfÚXMLrmrrrÚr|s°ðñ ÷7ãÛå çFÑFà×јAÑ !Ñ#€à € à �?‰?€ð€‡ � ØUØ Øõô(&˜×*Ñ*ô(&ôV�i—o‘oôñ<Ó€ Ø×/Ñ/Ðó]ó,óð€óJr