python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_xml_etree.cpython-312.opt-1.pyc

ΑexddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZmZddlmZddlmZddlmZddlmZmZmZmZddlmZdd	lmZdadaed
dZ 	e jCd
eddZ$eddZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dddZ-dZ.Gddej^Z0dpdZ1d Z2Gd!d"Z3Gd#d$ej^Z4Gd%d&ej^Z5iZ6d'e6d(<d)e6d*<d+e6d,<d-e6d.<d/e6d0<d1e6d2<d3e6d4<d5e6d6<d7joejpe de6d8<d9e6d:<iZ9d;e9d<<d=e9d><d?e6d@<dAe6dB<dCe6dD<GdEdFej^Z:GdGdHej^Z;GdIdJe3ej^Z<GdKdLe3ej^Z=GdMdNe>Z?e>je?_@GdOdPe>ZAe>jeA_@GdQdRe3ej^ZBGdSdTej^ZCGdUdVej^ZDGdWdXej^ZEGdYdZej^ZFGd[d\ej^ZGGd]d^ej^ZHGd_d`ej^ZIGdadbej^ZJGdcddej^ZKGdedfej^ZLGdgdhej^ZMGdidjej^ZNdkZOGdldmej^ZPdqdnZQeRdok(rejyy#e"$rejFdwxYw)rN)partial)productislice)support)	os_helper)warnings_helper)findfile
gc_collect	swap_attr	swap_item)import_fresh_module)TESTFNz
simple.xmlxmltestdatasubdirutf-8z!filename is not encodable to utf8z
simple-ns.xmlzexpat224_utf8_bug.xmlz<body>
  <tag class='a'>text</tag>
  <tag class='b' />
  <section>
    <tag class='b' id='inner'>subtext</tag>
  </section>
</body>
zz<section>
  <tag class='b' id='inner'>subtext</tag>
  <nexttag />
  <nextsection>
    <tag />
  </nextsection>
</section>
zy
<body xmlns="http://effbot.org/ns">
  <tag>text</tag>
  <tag />
  <section>
    <tag>subtext</tag>
  </section>
</body>
z
<root>
<h:table xmlns:h="hello">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="foo">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>
zy<!DOCTYPE points [
<!ENTITY % user-entities SYSTEM 'user-entities.xml'>
%user-entities;
]>
<document>&entity;</document>
zl<!DOCTYPE points [
<!ENTITY entity SYSTEM "file:///non-existing-file.xml">
]>
<document>&entity;</document>
z<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Foo [
<!ELEMENT foo (bar*)>
<!ELEMENT bar (#PCDATA)*>
<!ATTLIST bar xml:lang CDATA "eng">
<!ENTITY qux "quux">
]>
<foo>
<bar>&qux;</bar>
</foo>
F)quietcfd}|S)NcDfd}tj||S)Ncjtjdi5|i|dddy#1swYyxYw)Nr)rcheck_warnings)argskwargsfiltersrtests  G/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_xml_etree.pynewtestz1checkwarnings.<locals>.decorator.<locals>.newtest}s8 //FF
&d%f%
&
&
&s	)2)	functoolsupdate_wrapper)rrrrs` r	decoratorz checkwarnings.<locals>.decorator|s	&	  $/)rrr s`` r
checkwarningsr#{sr!c^|jdtjjS)N
)replaceoslinesepencode)datas rconvlinesepr+s <<rzz00233r!ceZdZdZdZy)
ModuleTestc(ddlm}ddlm}ddlm}y)Nr)ElementTreeElementIncludeElementPath)	xml.etreer/r1r3)selfr/r1r3s    rtest_sanityzModuleTest.test_sanitys
	*,)r!cBd}tj|t|dy)N)xml.etree.ElementTree_elementtree)
HTML_EMPTY)not_exported)rcheck__all__ET)r5namess  rtest_allzModuleTest.test_alls9T2u?Kr!N)__name__
__module____qualname__r6r?r"r!rr-r-s
*Lr!r-Tc|dk7rtj}ntj}tj	|}|j
|fd|i||r|j
S|jd|S)Nunicodeencodingr)ioBytesIOStringIOr=r/writegetvalueseek)elem	to_stringrEoptionsfiletrees      r	serializerQse9zz|{{}
>>$DDJJt2h2'2}}		!r!c@|Dcgc]}|jc}Scc}wNtag)seqrLs  rsummarize_listrWs!$%DHH%%%c(eZdZedZdZdZy)ElementTestCasec&tth|_yrS)pyETr=modulesclss r
setUpClasszElementTestCase.setUpClasss
Rjr!c	ttj||5tj||}dddttj||5tj
}ddd|S#1swYDxYw#1swYSxYw#tj$r]}ttdftdfg}	tjd|d|	j||d|	j|||d}~wwxYw)NcETr\zFailed to round-trip z from z to )
rsysr]pickledumpsloads
PicklingErrordictr=r\r
TestFailedget)
r5objnamedumperloaderprototempresultpehumans
          rpickleRoundTripzElementTestCase.pickleRoundTrips	L3;;f5
0||C/
03;;f5
,d+
,

0
0
,
##	L2u+f~67E$$(+(-		&&(A(-		&&(A&CDJL
L	LsLBA7#BB-B7B<BB
B
BD#AC;;Dc|j|tjtjf|j|tjtjf|j	tt
|tt
|t||D]\}}|j||tjdddd}|j	||||y)NrUtailtextattrib)assertIsInstancer=Elementr\assertEquallenlistzipassertEqualElementsoperator
attrgetter)r5alicebobxy
propertiess      rrz#ElementTestCase.assertEqualElementssebjj$,,%?@cBJJ#=>T%[)3tCy>:sO	+DAq$$Q*	+((I
E*JsO<r!N)r@rArBclassmethodr`rtrr"r!rrZrZs!!
=r!rZceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/y.)/ElementTreeTestc:|jt||yrS)r{rQ)r5rLexpecteds   rserialize_checkzElementTreeTest.serialize_checks4(3r!cfdtjd}|tj|}|jtjdd}tj|}j	t|dtjdd}fd|j|j|j|j|j|j|j|j|j|j|j |j"|j$|j&|j(fd}||jd||jd	||jd||jd	j+tj,tj.j+tj0tj2y)
Nc2jtj|dt|}dD]9}jt	||d|zj||d|z;j
|jtj
|jt|j j
|jt|j j
|jt|D]
}|y)Nznot an elementmsg)rUrxrwrvzno %s memberzno %s visible by dir)
assertTruer=	iselementdirhasattrassertInryrUstrrxrhrwrv)elementdirelemattrrL
check_elementr5s    rrz5ElementTreeTest.test_interface.<locals>.check_elementsOOBLL17GOH'lG7
; 6*T1 3

dG2T9;
;
!!'++s3!!'..$7||'%%gllC8||'%%gllC8
$d#
$r!rUtägvaluekeyz^<Element 't\xe4g' at 0x.*>$cFjt|dd|zy)N__call__z%s not callabler)rr)methodr5s rcheck_methodz4ElementTreeTest.test_interface.<locals>.check_methods%OOGFJ7)F2

4r!c*|jyrS)__next__)itrs r
check_iterz2ElementTreeTest.test_interface.<locals>.check_iters%r!*)r=rzr/getrootassertRegexreprappendextendinsertremovefinditerfindfindallfindtextclearrjsetkeysitemsiteritertextr{XML
fromstringPIProcessingInstruction)r5rrPrrrs`   @@rtest_interfacezElementTreeTest.test_interfaces	$$**U#g~~g&dlln%**X7*3~~g&g(GH**U*0	4	W^^$W^^$W^^$W^^$W\\"W%%&W__%W%%&W]]#W[[!W[[!W\\"W]]#W\\"W%%&	&	7##E*+7##C()4=='(4==%&	
/ 8 89r!cRtjd}|j|jdd|_|j|jdd|_|j|jd|j	|j
d|_|j|j
dd|_|j|j
d|j	|jd|_|j|jdd|_|j|jd|j|jidd	d
|_|j|jdd	d
ddd
|_|j|jddd
y)NrUTagTAGTextTEXTTailTAILbd)acBD)AC)r=rzr{rUassertIsNonerwrvrx)r5rs  rtest_set_attributez"ElementTreeTest.test_set_attributesH**U#e,e,e,',,'v.v.',,'v.v.,"-s)=>"-s)=>r!ctjd}|j|dtjd}|j	||j|d|j||j|d|j
d||j|d|j||j|g|j|d|j||jt|g|j|d|j|tjdd	}|j|d
tjd}|j	||j|d|j
d||j|d
|j||j|d|j||j|d
|jt5}|j|ddd|jtjd|j|d
|||g|dd|j|dd|j|dd|d|dg|j|ddd|d|dg|dd=|j|d
y#1swYxYw)N<body><tag/></body><body><tag /></body>tag2z<body><tag /><tag2 /></body>rz<body><tag2 /><tag /></body>rUrrz<tag key="value" />subtagz!<tag key="value"><subtag /></tag>z+<tag key="value"><subtag /><subtag /></tag>zlist.remove(x): x not in listz
<subtag />	)r=rrrzrrrrrassertRaises
ValueErrorr{r	exception)r5rLer
subelementcms      rtest_simpleopszElementTreeTest.test_simpleops)svv+,T#9:JJvAT#ABAT#9:AqT#ABAQCT#ABAD!IT#ABA**U*0W&;<ZZ)
z"W&IJq*%W=	?z"W&IJz"W&;<


z
*	'bNN:&	'R\\*,KLW&;<"J
;!WQZ61
GAJ'?@!AWQZ(@AAaCLW=	?	'	'sKKc|jtjdd|jtjdd|jtjddy)Nz<tag>hello</tag>z)<tag>&#104;&#101;&#108;&#108;&#111;</tag>z<tag><![CDATA[hello]]></tag>)rr=rr5s r
test_cdatazElementTreeTest.test_cdataUs[	
RVV$67"	$RVV$OP"	$RVV$BC"	$r!ctjtjd}tj|}|j
|jdjd|j
|jdjdtjt}|j
|jdjd|j
|jdjdy)Nr)rOrUsection/tagrzelement/../empty-element
empty-element)
rFrG
SAMPLE_XMLr)r=r/r{rrUSIMPLE_XMLFILE)r5
stringfilerPs   rtest_file_initzElementTreeTest.test_file_init_sZZ
 1 1' :;
~~:~.5)--u5=155u=~~>~29-119=#=>BB	!r!c~ddlm}tjt}|j
j
tdD]2}tj|jdt|z4t|j
}tdD]2}tj|jdt|z4|jt|j
|tdD]2}tj|jdt|z4|jt|j
|tdD]2}tj|jdt|z4|jt|j
dy)Nrr2
z./iXi)r4r3r=rr_cacherranger/rrr|r{
assertGreater
assertLess)r5r3rLicache_len_10s     rtest_path_cachezElementTreeTest.test_path_cachejs:	*vvj!  "rBABNN4055d3q6kBB;--.rBABNN4055d3q6kBB[//0,?rBABNN4055d3q6kBB3{112LAsCAR^^D166tCF{CCK../5r!cddl}tjd}|j|}|j|}d|j	d_|j
|d|j
|d|j
|dy)Nrz<tag>hello<foo/></tag>barfooz<tag>hello<bar /></tag>z<tag>hello<foo /></tag>)copyr=rdeepcopyrrUr)r5re1e2e3s     r	test_copyzElementTreeTest.test_copyzsx	
VV,
-
TYYr]
T]]2
"R!:;R!:;R!:;r!c8tjd}|jd|j|jddd|j	dd|j|jddtjdd}|j|jdd|j|j
ddiddi}tjd|}|j
|j|jdd|j|j
ddiddi}tjdi|}|j
|j|jdd|j|j
dditjdddid}|j|jdd|j|j
dditjd}d|_|j	d	d
|j	dd|jtj|d
|jt|jd	dg|jt|jddg|j|j
ddd|j
d<d|j
d<|jtj|dtjd}|j	dd|j	dd|j	dd|j	dd|jtj|dy)NrUrdefaultrrotherraatestatestvaltestbtest2s-<test testa="testval" testb="test2">aa</test>)rr)rrtest1testcs;<test testa="testval" testb="test1" testc="test2">aa</test>r
r
rz	

 rz



		  s[<test a="&#13;" b="&#13;&#10;" c="&#09;&#10;&#13; " d="&#10;&#10;&#13;&#13;&#09;&#09;  " />rT)r=rzrjr{rrxrrwtostringsortedrr)r5rLrxs   rtest_attribzElementTreeTest.test_attribszz% %3Y? %'2zz%Wz-%'2ug&67!zz%(%'2ug&67!zz*6*%'2ug&67zz%%!1wz?%'2ug&67zz&!	)$'"T*@	B		,w.@A

-%'9:	<W-w7&G&GT*N	Pzz&!dfi &'T*n	pr!c"tjd}ddi}|jd|}|j|j|d|j||j
|d|j|j
|d|j||j
|d|j||g|j
|d	|g|dd|j
|dt|g|dd|j
|dy)
NrUrrrzattrib aliasingrz!<tag><subtag key="value" /></tag><tag />zM<tag><subtag key="value" /><subtag key="value" /><subtag key="value" /></tag>)
r=rzmakeelementassertIsNotrxrrrrtuple)r5rLrxsubelems    rtest_makeelementz ElementTreeTest.test_makeelementszz% !""8V45FGGT#FG

T9-GT#FGWg&'T[	])QT#FG	"QT#FGr!cdtjt}tj}|j|d|j
|jdtjt}tj}|j|d|j
|jdtt5}|j}dddtj}|j|jd|j|j|j!dtj#}tj|}|j||j|j!dy#1swYxYw)NrDrEzi<root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>z<ns0:root xmlns:ns0="namespace">
   <ns0:element key="value">text</ns0:element>
   <ns0:element>text</ns0:element>tail
   <ns0:empty-element />
</ns0:root>z^Expat target)r=parserrFrHrIr{rJSIMPLE_NS_XMLFILEopenread	XMLParserrversionfeedrcloseTreeBuilder)r5rPstreamfr*parserrs       rtest_parsefilezElementTreeTest.test_parsefilesJxx'

6I
.*	xx)*

6I
.*	.
!	Q668D	4DV\\^	!V,DV\\^	!		sF&&F/c.tjd}|jtj|ddtj	d}|jtj|ddgd}tj|}|jtj|d|jdj
tj|d|jtj|ddtjd\}}|jt|d	tjd
\}}|jt|d|j|djdy)
N<html><body>text</body></html>rDr)z<html><body>ztext</boz
dy></html><html><body>text</body></html>r!asciisE<?xml version='1.0' encoding='ascii'?>
<html><body>text</body></html>rz(<html><body id='body'>text</body></html>rbody)r=rr{rrfromstringlistjointostringlistXMLIDr|rU)r5rsequence_idss     rtest_parseliteralz!ElementTreeTest.test_parseliterals>&&9:WyA0	2-- @AWyA0	2=##H-W-1	3"//'":;1	3Wg62	3:;3S1%DE3S1%V&1r!ctj}|t}t|\}}|j	||j
fd|j	|Dcgc]\}}||j
fc}}gd|j	|jj
d|t}|j	|Dcgc]\}}||j
fc}}gdd}|t|}|j	|Dcgc]\}}||j
fc}}gd}|t|}|j	|Dcgc]\}}||j
fc}}gd}|t|}|j	|Dcgc]\}}||j
fc}}gdd	}|t|}|j	|Dcgc]\}}|dvr||j
fn||fc}}gd
d}|tjd|}|Dcgc]\}}|	}}}|j	|d
dgd}ttd5}|jt5}|||ddd|j|jddd|j	tj dt#j$|5|jt5}|t|ddd|j	t|j d~dddtj&d}	d}||	|}|j	|Dcgc]	\}}||fc}}ddgtjd}	||	}
t|
\}}|j	||j
fd|jtj(5}t|
ddd|j	tj d|j+t,j.t0tt0d5}|j3dddd|t0}
t|
\}}|j	||j
fdt#j$|5|jtj(5}t|
ddd|j	t|j d~~
dddt#j$|5|t0}
~
ddd|jt45|ddddycc}}wcc}}wcc}}wcc}}wcc}}wcc}}wcc}}w#1swY%xYw#1swYxYw#1swYxYw#1swYxYwcc}}w#1swYxYw#1swY}xYw#1swY	xYw#1swYxYw#1swYxYw#1swYyxYw)Nendr)r0r1rr1rootr4)r1{namespace}elementr5r1{namespace}empty-elementr1{namespace}rootr"eventsstartr1r>r4r>rr0rAr0)r>rr2r3)r>r1start-nsend-ns)
rB)	namespacer>r:r>r6r5rHr5r>r8r7r9rCNrBrCz<root xmlns=''/>rBrCr>r1bogusrbzunknown event 'bogus's<?xml version='1.0' encoding='iso-8859-1'?>
<body xmlns='http://&#233;ffbot.org/ns'
      xmlns:cl='http://effbot.org/ns'>text</body>
)rB)rB)rEuhttp://éffbot.org/ns)rB)ucléhttp://effbot.org/nsz<document />junk)r1documentz.junk after document element: line 1, column 12wbs<document />junknonexistent)r=	iterparsernextr{rUr4rrFrHrrrassertFalseclosedrrrcheck_no_resource_warningrG
ParseError
addCleanuprunlinkrrIFileNotFoundError)r5rScontextactionrLr<resrrsourcers           rtest_iterparsezElementTreeTest.test_iterparsessLL	N+G}&$((+-?@I6488,IL	
	
))62-.I6488,IL	NF3I6488,I2NN6:I6488,I2N!NF3I6488,I	L		8-v6.57*fd17:J0J6488,394.A79
	(BKK(;<fE*12,&$v22z845*
.$
'	'1"":.
%"!V$
%QXX&	'	
R\\*,CD

6
6t
<	"":.
2".&1
2S.0GH		
GHFF+WE\VT64.E=@H	
/0
v
Bx&$((+-@A


r}}
-	H	R\\*@	B	
	((&1
&$
	)1
GG'(	)
v
Bx&$((+-@A

6
6t
<	""2==1
RR
S.D
FB	
6
6t
<	6"B	

0
1	%m$	%	%[JJJJJ7"3

%
%	'	'
2
2		F			)	)

					%	%sU
>U%
U+
U1
U7
 U=
VV
V	&#VV0!V#/.V0V=
WW* W*
W/W*"W6
	X	V	VV #V-	(V00V:W
WW'	"W**W36W?Xctjd}d|_|j|ddtj	|d_|j|dd|_|j|d|j
dtjd	|j|d
tjdd|d<|j|d
y)NrUrwz<tag>text</tag>subtextrz'<tag>text<subtag>subtext</subtag></tag>ztext<subtag>subtext</subtag>rcommentz*text<!--comment--><subtag>subtext</subtag>rrz)text<?key value?><subtag>subtext</subtag>)	r=rzrwr
SubElementrUrCommentrr5rLs  rtest_writefilezElementTreeTest.test_writefileszz% 	T#45-6

dH%*T#LMT#ABArzz),-T<	>%%w'QT#NOr!ctt5}|j}dddGddt}|}tj|}|j
|j|gdtt5}|j}dddGddt}|}tj|}|j
||j|gdy#1swYxYw#1swYgxYw)NceZdZdZdZdZy)4ElementTreeTest.test_custom_builder.<locals>.Builderc*|jd|fyNr>rr5rUrxs   rr>z:ElementTreeTest.test_custom_builder.<locals>.Builder.startWcN+r!c*|jd|fyNr1rmr5rUs  rr1z8ElementTreeTest.test_custom_builder.<locals>.Builder.endUCL)r!cyrSr"r5rws  rr*z9ElementTreeTest.test_custom_builder.<locals>.Builder.datar!N)r@rArBr>r1r*r"r!rBuilderrjs
,
*
r!rwrr?c6eZdZdZdZdZdZdZdZdZ	y)	rjc*|jd|fyrlrmrns   rr>z:ElementTreeTest.test_custom_builder.<locals>.Builder.startror!c*|jd|fyrqrmrrs  rr1z8ElementTreeTest.test_custom_builder.<locals>.Builder.endrsr!cyrSr"rus  rr*z9ElementTreeTest.test_custom_builder.<locals>.Builder.datarvr!c,|jd||fy)Npirm)r5rr*s   rr}z7ElementTreeTest.test_custom_builder.<locals>.Builder.pisT6401r!c*|jd|fy)Nrcrm)r5r*s  rrcz<ElementTreeTest.test_custom_builder.<locals>.Builder.commentsY-.r!c,|jd||fy)NrBrm)r5prefixuris   rstart_nsz=ElementTreeTest.test_custom_builder.<locals>.Builder.start_nssZ56r!c*|jd|fyNrCrmr5rs  rend_nsz;ElementTreeTest.test_custom_builder.<locals>.Builder.end_nsXv./r!N)
r@rArBr>r1r*r}rcrrr"r!rrwz4ElementTreeTest.test_custom_builder.<locals>.Builders%
,
*

2
/
7
0r!))r}r}r*)rc	 comment )rBrErFrGrHr5rHr5rIr7r9rCrE)	rrrr}r=rrr{r)r5rr*rwbuilderr s      rtest_custom_builderz#ElementTreeTest.test_custom_builders.
!	Q668D		d	)W-D	#		#
$	668D		0d	0)W-D
#
	W		.		sC4	D4C=D	cGddt}|}tj|}|jt	j
d|j
|gdy)NceZdZdZy)@ElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builderc*|jd|fyrrmrs  rrzGElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builder.end_nsrr!N)r@rArBrr"r!rrwrs
0r!rwra            <?pi data?>
            <!-- comment -->
            <root xmlns='namespace' xmlns:p='pns' xmlns:a='ans'>
               <a:element key='value'>text</a:element>
               <p:element>text</p:element>tail
               <empty-element/>
            </root>
            ))rCr)rCpr)r}r=rrtextwrapdedentr{)r5rwrr s    rtest_custom_builder_only_end_nsz/ElementTreeTest.test_custom_builder_only_end_nssZ	0d	0)W-HOO%		
#	r!ctjd}|j|jtjtj}|j|jtjy)Nr)r=rryrr)r5r parser2s   r%test_initialize_parser_without_targetz5ElementTreeTest.test_initialize_parser_without_targetsOT*fmmR^^<,,.gnnbnn=r!c>ttd5}tj|}ddd|j	jj
Dcgc]
}t|c}gdgggg|j	|j
Dcgc]
}t|c}gdggggtjt}|j	tt|d|j	tt|dd|j	|ddt||d}|d}|dd=|j	tt|d|j	||d|j	||d||g|dd|j	||d|j	||d|j||d|j|j	t|gy#1swYxYwcc}wcc}w)NrN)rrrrrr)rrr=rr{rrrWrrr|r}assertNotEqualr)r5rrPrLchild1child2s      r
test_childrenzElementTreeTest.test_childrens.$
'	188A;D	&*lln&9&9&;=").=7	?		
&*iik3").37	5	vvj!T$Z!,T$q']+Q/a$t*-aa1IT$Z!,a)a)V$Qq	a)a)FDG,

dR(A		=3sHHHHctjd}|jtj|dtj	d}|jtj|dy)Nr#r$)r=rr{rrrfs  rtest_writestringz ElementTreeTest.test_writestringsTvv67T*,MN}}=>T*,MNr!ctjd}tj||jtj	|dtjd}tj||jtj	|dtjd}tj||jtj	|dtjd}tj||jtj	|dtjd}tj||jtj	|d	tjd
}tj||jtj	|dy)Nz
<root></root>s<root />r#s"<html>
  <body>text</body>
</html>z!<html> <body>text</body>  </html>z"<html><body>text</body>tail</html>s%<html>
  <body>text</body>tail</html>z=<html><body><p>par</p>
<p>text</p>	<p><br/></p></body></html>s^<html>
  <body>
    <p>par</p>
    <p>text</p>
    <p>
      <br />
    </p>
  </body>
</html>8<html><body><p>pre<br/>post</p><p>text</p></body></html>sJ<html>
  <body>
    <p>pre<br />post</p>
    <p>text</p>
  </body>
</html>r=rindentr{rrfs  rtest_indentzElementTreeTest.test_indent%sDvvo&
		$T*K8vv67
		$T*,STvv9:
		$T*,STvv:;
		$T*,UVvvWX
		$KK
	
vvPQ
		$KK
	
r!cHtjd}tj|d|jtj	|dtjd}tj|d|jtj	|dy)Nr	)spacesD<html>
	<body>
		<p>pre<br />post</p>
		<p>text</p>
	</body>
</html>rEs><html>
<body>
<p>pre<br />post</p>
<p>text</p>
</body>
</html>rrfs  rtest_indent_spacez!ElementTreeTest.test_indent_spaceQsvvPQ
		$d	#KK
	
vvPQ
		$b	!KK
	
r!cZtjd}tj||j|j	Dchc]}|j
c}hd|j|j	Dchc]}|jc}hd|jt|j	Dchc]}|j
c}t|j	Dchc]}t|j
c}ycc}wcc}wcc}wcc}w)Nz@<html><body><p>par</p><p>text</p><p><br/></p><p /></body></html>>N

  
    >N
      parrwrr)	r=rrr{rrvrwr|id)r5rLels   rtest_indent_space_cachingz)ElementTreeTest.test_indent_space_cachingjsvvXY
		$#yy{+RWW+*	
	
#yy{+RWW+?	
	
499;/R/0tyy{3BGG34	

,
,03sDDD#1D(ctjd}|jt5tj	|dddd|jtj
|dtj	|d|jtj
|dtjd}tj	|dd	|jtj
|d
y#1swYxYw)Nr)levels9<html><body><p>pre<br />post</p><p>text</p></body></html>rs^<html>
      <body>
        <p>pre<br />post</p>
        <p>text</p>
      </body>
    </html>r )rrsI<html>
  <body>
   <p>pre<br />post</p>
   <p>text</p>
  </body>
 </html>)r=rrrrr{rrfs  rtest_indent_levelz!ElementTreeTest.test_indent_levelzsvvPQ


z
*	&IId"I%	&KKH	

			$a	 KK
	
vvPQ
		$as	+KK
	
)	&	&sC??Dctjd}|jtj|dd|jtj|dddy)N0<body xmlns="http://effbot.org/ns"><tag/></body>rDrA<ns0:body xmlns:ns0="http://effbot.org/ns"><ns0:tag /></ns0:body>rOrEdefault_namespace1<body xmlns="http://effbot.org/ns"><tag /></body>r=rr{rrfs  rtest_tostring_default_namespacez/ElementTreeTest.test_tostring_default_namespacesXvvHIKKyK1O	
	
KKyDZK[?	
r!c~tjd}|jtj|dddy)NrrDfoobarrzP<ns1:body xmlns="foobar" xmlns:ns1="http://effbot.org/ns"><ns1:tag /></ns1:body>rrfs  r3test_tostring_default_namespace_different_namespacezCElementTreeTest.test_tostring_default_namespace_different_namespaces4vvHIKKyHKM^	
r!ctjd}d}|jt|5tj	|dddddy#1swYyxYw)Nrz>^cannot use non-qualified names with default_namespace option$rDrr)r=rassertRaisesRegexrr)r5rLEXPECTED_MSGs   r5test_tostring_default_namespace_original_no_namespacezEElementTreeTest.test_tostring_default_namespace_original_no_namespacesQvv+,W

#
#J
=	NKKyHKM	N	N	NsAAc|tjd}|jtj|ddy)NrrDrrrrfs  r test_tostring_no_xml_declarationz0ElementTreeTest.test_tostring_no_xml_declarations2vv+,KKyK1"	
r!c~tjd}|jtj|dddy)Nrutf8TrExml_declarations:<?xml version='1.0' encoding='utf8'?>
<body><tag /></body>rrfs  rtest_tostring_xml_declarationz-ElementTreeTest.test_tostring_xml_declarations4vv+,KKvtKDJ	
r!c~tjd}|jtj|dddy)NrrDTr;<?xml version='1.0' encoding='utf-8'?>
<body><tag /></body>rrfs  r.test_tostring_xml_declaration_unicode_encodingz>ElementTreeTest.test_tostring_xml_declaration_unicode_encodings4vv+,KKy$KGJ	
r!c	tjd}gd}|D]N\}}}|jd|d|5|jtj	||||dddPy#1swY[xYw)N<body><tag>ø</tag></body>))<body><tag>&#248;</tag></body>NN)<body><tag>ø</tag></body>UTF-8N)rUS-ASCIIN)E<?xml version='1.0' encoding='ISO-8859-1'?>
<body><tag></tag></body>
ISO-8859-1N)rrDN)rNF)rrF)rrF)s<body><tag></tag></body>rF)rrDF)sH<?xml version='1.0' encoding='us-ascii'?>
<body><tag>&#248;</tag></body>NT)sA<?xml version='1.0' encoding='UTF-8'?>
<body><tag>ø</tag></body>rT)sH<?xml version='1.0' encoding='US-ASCII'?>
<body><tag>&#248;</tag></body>rT)rrT)uA<?xml version='1.0' encoding='utf-8'?>
<body><tag>ø</tag></body>rDTz	encoding=z xml_declaration=r)r=rsubTestr{r)r5rL	TESTCASESexpected_retvalrErs      r#test_tostring_xml_declaration_casesz3ElementTreeTest.test_tostring_xml_declaration_casessvv23
	<;D
	6OX	(411@0ACD	
  KK!)(7 
$
	
	

		
	
s)A..A7	c	tjd}|jdjtj	|dd|jdjtj	|dddy)	NrrErDrrrOrr)r=rr{r(r)rfs  r#test_tostringlist_default_namespacez3ElementTreeTest.test_tostringlist_default_namespacesjvvHIGGBOOD9O=>O	
	
GGBOOD9PfOgh?	
r!ctjd}|jdjtj	|dd|jdjtj	|dd	tj	|dd
}|jdj|d|j|dd
|jgd|ddy)NrrErDrrr!T)rs><?xml version='1.0' encoding='us-ascii'?>
<body><tag /></body>rrrz%^<\?xml version='1.0' encoding='.+'?>)z<body>z<tagz />z</body>r)r=rr{r(r)r)r5rL
stringlists   r!test_tostringlist_xml_declarationz1ElementTreeTest.test_tostringlist_xml_declarationsvv+,GGBOOD9O=>"	
	
HHR__T4_@AN	

__TIt_T
GGJJ	
	
A(PQA:ab>Rr!c
dfd	}|dd|dd|dd|dd|d	d
|ddd
fd}gd}|D]@}jtjtj||dBgd}|D]-}j	t
tj||/gd}|D]7}j	tjtj||9j	t
tjdjdj	ttjdjdy)Ncd|d|d}jtj|j|j|jtj|j|y)Nz<?xml version='1.0' encoding='z'?><xml>z</xml>)r{r=rr)rw)rEr&xmlr5s   rcheckz,ElementTreeTest.test_encoding.<locals>.checksUd$CRVVCJJx$89>>ERVVC[--t4r!r%rus-ascii
iso-8859-1½ziso-8859-15u€cp437u√	mac-romanu˚cd|zS)Nz*<?xml version='1.0' encoding='%s'?><xml />r"rs rrz*ElementTreeTest.test_encoding.<locals>.xmls
?(JJr!c2|j|SrS)r))rErs rbxmlz+ElementTreeTest.test_encoding.<locals>.bxml sx=''11r!)Cr%rz	utf-8-sigutf-16utf-16beutf-16lez	iso8859-1z	iso8859-2z	iso8859-3z	iso8859-4z	iso8859-5z	iso8859-6z	iso8859-7z	iso8859-8z	iso8859-9z
iso8859-10z
iso8859-13z
iso8859-14z
iso8859-15z
iso8859-16rcp720cp737cp775cp850cp852cp855cp856cp857cp858cp860cp861cp862cp863cp865cp866cp869cp874cp1006cp1125cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258zmac-cyrillicz	mac-greekzmac-icelandz
mac-latin2rzmac-turkishz
iso2022-jpziso2022-jp-1ziso2022-jp-2ziso2022-jp-2004ziso2022-jp-3ziso2022-jp-extzkoi8-rzkoi8-tzkoi8-ukz1048hzptcp154s<xml />)big5	big5hkscscp932cp949cp950zeuc-jpzeuc-jis-2004zeuc-jisx0213zeuc-krgb2312gbkgb18030z
iso2022-krjohabz	shift-jiszshift-jis-2004zshift-jisx0213zutf-7)
cp037cp424cp500cp864cp875cp1026cp1140utf_32	utf_32_be	utf_32_le	undefinedxxx)rE)	r{r=rrrrrXr)LookupError)r5rrsupported_encodingsrE&unsupported_ascii_compatible_encodings(unsupported_ascii_incompatible_encodingsrs`      @r
test_encodingzElementTreeTest.test_encodingsN	5
	gs
j#
lF#
mX&
gx 
k8$	K	2
",	NHR[[X)?@*M	N2
.?	BHj"&&$x.A	B4
0A	EHbmmRVVT(^D	E	
*bffc+.>.E.Eg.NO+rvvs5z/@/@/IJr!cZtjd}d|_|jt	|d|jt	|dd|jt	|dd|jt	|dd|jt	|dd	y)
Nz-<html><link/><script>1 &lt; 2</script></html>rz/<html><link /><script>1 &lt; 2</script></html>
rrhtmlz*<html><link><script>1 < 2</script></html>
rwz1 < 2
)r=rrvr{rQr5rs  rtest_methodszElementTreeTest.test_methodsLs
FFBC1B	D1T2B	D1U3B	D1V4=	?1V4i@r!ctjd}|jt|d|jt|ddy)Nz(<html><CamelCase>text</CamelCase></html>r+r*r=rr{rQr,s  rtest_issue18347zElementTreeTest.test_issue18347[sBFF=>1:	<1V4:	<r!ctjd}|jt|dd|j	|d|jtj5}tjdddd|jtjd|jtj5}tjtddd|jt|jdtj}d	|jd
<|jt|j}|j	|d|jtj5}tjtddd|jt|jdy#1swYVxYw#1swYxYw#1swYHxYw)
Nz*<document title='&#x8230;'>test</document>rrs*<document title="&#33328;">test</document>u%<document title="舰">test</document>z<document>&entity;</document>z#undefined entity: line 1, column 10z,undefined entity &entity;: line 5, column 10rwentityz<document>text</document>z,undefined entity &entity;: line 4, column 10)r=rr{rQrrrXrr
ENTITY_XMLrr2rrEXTERNAL_ENTITY_XML)r5rrr r4s     rtest_entityzElementTreeTest.test_entitybs~

FF?@1z:=	?Q JK

r}}
-	4FF23	4R\\*5	7

r}}
-	FF:	R\\*>	@
"(

hJ||~T#>?

r}}
-	(FF&'	(R\\*>	@-	4	4
			(	(s$$GGG'GG$'G0ctjd}|j|dtjd}|j|dtjd}|j|dtjd}|j|dtjt}|j|d	y)
Nz<tag xml:lang='en' />z<tag xml:lang="en" />zC<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' />zC<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" />z7<html:html xmlns:html='http://www.w3.org/1999/xhtml' />z7<html:html xmlns:html="http://www.w3.org/1999/xhtml" />zG<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope' />zE<ns0:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope" />z<ns0:body xmlns:ns0="http://effbot.org/ns">
  <ns0:tag>text</ns0:tag>
  <ns0:tag />
  <ns0:section>
    <ns0:tag>subtext</ns0:tag>
  </ns0:section>
</ns0:body>)r=rr
SAMPLE_XML_NSrfs  rtest_namespacezElementTreeTest.test_namespaces
vv-.T#:;vv[\TQ	SvvOPTE	Gvv_`TS	Uvvm$T
	r!ctjd}|j|dtjtjd}|j|dtjtjdd}|j|dtjtjdd}tj	|tjdd}tj	|tjdd}|j|d|jd|jd	<|j|d
|jd|jtjd	<|j|d
|jd|jd	<|j|d|jtjd|jd	<|j|d
|jtjd}tjd|jd<|j||j||j|d|jttjddd|jttjddtjdd}tjdd}|j||tjdd}|j|||j|d|j|dy)Nz{uri}tagz<ns0:tag xmlns:ns0="uri" />rrUtag1rz;<ns0:tag xmlns:ns0="uri"><ns0:tag1 /><ns0:tag2 /></ns0:tag>rz{uri}keyz+<ns0:tag xmlns:ns0="uri" ns0:key="value" />z
{uri}valuez0<ns0:tag xmlns:ns0="uri" ns0:key="{uri}value" />z/<ns0:tag xmlns:ns0="uri" ns0:key="ns0:value" />z{uri2}valuez	{uri1}keyz{<ns0:tag xmlns:ns0="uri" xmlns:ns1="uri1" xmlns:ns2="uri2"><tag ns1:key="ns2:value" /><tag ns1:key="ns2:value" /></ns0:tag>nsz{ns}tagz	other-tagzns:tag)r=rzrQNamerdrrxrr{rr)r5rLrq1q2s     r
test_qnamezElementTreeTest.test_qnames
zz*%T#@Azz"((:./T#@Azz"((5%01T#@Azz"((5%01--bhhuf&=>--bhhuf&=>TI	K
	

")JT9	;	

,3BHHZ()T9	;	

".JT>	@	

"$((<"8JT=	?	

**U#&(hh}&={#GGT
		
RXXdE23Y?RXXi019=
XXdE
"
XXdE
"R 
XXdK
(B#B)Y'r!c.tjd}y)Nz<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>)r=rrfs  rtest_doctype_publicz#ElementTreeTest.test_doctype_publicsvv$%r!cddlmd>fd	}|ddg|dddg|dd	d
g|dd	dg|dgd
|dgd|dgd|dgd|dgd|dddg|dgd|ddg|dgd|ddg|dgd |d!gd"|d#gd$|d%d	d&g|d'd'g|d(gd)|d*gd+|d,d,g|d-d-g|d.d.g|d/d/g|d0gd1|d2gd3d4d5i|d6d7gd8d5i|d9d	d7gd4d5i|d:d	d6gd8d5i|d;d	d<gd8d5i|d%d	d&gd5d5d=y)?Nrr2cjj||Dcgc]\}}|xs|
c}}|ycc}}wrS)r{xpath_tokenizer)rr
namespacesoprUr3r5s     rrz3ElementTreeTest.test_xpath_tokenizer.<locals>.checksI-8-H-HJ-WY")"c!iCiY%
'Ys<
rztext()rw()z@name@rlz@*zpara[1])para[1]zpara[last()])rIrJlastrGrLz*/para)r/rIz/doc/chapter[5]/section[2])rNdocrNchapterrJ5rLrNsectionrJ2rLz
chapter//para)rP//rIz//pararTrIz//olist/item)rTolistrNitem.z.//para)rWrTrI..z../@lang)rXrNrHlangzchapter[title])rPrJtitlerLz#employee[@secretary and @assistant])
employeerJrH	secretaryrEandrErH	assistantrLz	@{ns}attrz{ns}attr{http://spam}eggz
./spam.egg)rWrNzspam.eggz.//{http://spam}egg)rWrTr_z{ns}*{}*{*}tag{*}*z	.//{*}tag)rWrTraz
./xsd:type)rWrN&{http://www.w3.org/2001/XMLSchema}typexsdz http://www.w3.org/2001/XMLSchematypercrEz	@xsd:typez@typez@{*}typez{*}type)rEr;rS)r4r3)r5rr3s` @rtest_xpath_tokenizerz$ElementTreeTest.test_xpath_tokenizers)	'	cC5
h'
gV}%
dS#J
i01
n>?
h*+
*.	/	o89
hv'
n:;
cC5
i,-
dTF
j23
 >?
36K	L	kC,-
 #5"67
l23
#%DE	gy!
eeW
h
#
fvh
k01	lP89	;
f?@56	8
kC!IJ89	;
gV}56	8
j3	*56	8
kC,579	:r!c|jtjtjddd|jtjtj	ddd|jtjtj	ddd|jtjtj	ddddy)	Nrinstructions<?test instruction?>z
<testing&>s<?test <testing&>?>u<testing&>ãzlatin-1s=<?xml version='1.0' encoding='latin-1'?>
<?test <testing&>?>)r{r=rrrrs rtest_processinginstructionz*ElementTreeTest.test_processinginstruction+s	
R%=%=fm%TU'	)RUU6=%AB'	)
	
RUU6<%@A&	(RUU63C%DiP+	,r!c&dD]}||jfD]u}d|z}ttjd|zd}|j	||ttjd|d|dd}|j	||wy)	N)AREABASEBASEFONTBRCOLEMBEDFRAMEHRIMGINPUTISINDEXLINKMETAPARAMSOURCETRACKWBRz<%s>z<%s />r+r*<z></r)lowerrQr=rr{)r5rrLr
serializeds     r#test_html_empty_elems_serializationz3ElementTreeTest.test_html_empty_elems_serialization;s2		7G!'--/2
7!D=&rvvho'>vN
  X6&rvvT$.G'H.46
  X6

7		7r!ctjddd}tj5}tj	|ddd|jj
dy#1swY*xYw)N
cirriculumpublicexamplestatuscompanyz1<cirriculum status="public" company="example" />
)r=rzrcaptured_stdoutdumpr{rJ)r5rstdouts   rtest_dump_attribute_orderz)ElementTreeTest.test_dump_attribute_orderIs_JJ|HiJH

$
$
&	&GGAJ	*M	O		sA,,A5ctjddd}|jt|d|jt|ddy)	Nrrrrz0<cirriculum status="public" company="example" />r+r*z;<cirriculum status="public" company="example"></cirriculum>)r=rzr{rQr5r4s  rtest_tree_write_attribute_orderz/ElementTreeTest.test_tree_write_attribute_orderQsIzz,xzK4K	M47M	Or!cxtjt}|j|djddiy)Nrz*{http://www.w3.org/XML/1998/namespace}langeng)r=rATTLIST_XMLr{rxrs  rtest_attlist_defaultz$ElementTreeTest.test_attlist_defaultYs1}}[)aFN	Pr!N)0r@rArBrrrrrrrrr	rr!r.r`rgrrrrrrrrrrrrrrrrrrr(r-r0r5r8r?rArfrirrrrr"r!rrrs4A:F?6*?X$	!6 
<4plH,+Z2,v%pP";z,>#)JO*
X
2
 
@	

N


*X	
S&9Kv
A<#@JB?(B%8:t, 7OOPr!rcneZdZddZddZddZddZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZy)XMLPullParserTestNc||j|ytdt||D]}|j||||zyNr)rrr|)r5r r*
chunk_sizers     r_feedzXMLPullParserTest._feedbsGKK1c$i4
2D1Z<01
2r!c	|jt|j|Dcgc]\}}||j|jff!c}}|ycc}}wrS)r{rread_eventsrUrw)r5r r
max_eventseventrLs      r
assert_eventszXMLPullParserTest.assert_eventsisW &v'9'9';Z H
Jdhh		*
+
J	
Js$A
cj|jtt|j||yrS)r{r}rr)r5r rrs    rassert_event_tuplesz%XMLPullParserTest.assert_event_tuplesos+**,j9:	r!ct|j|}|j|Dcgc]\}}||jfc}}|ycc}}wrS)rrr{rU)r5r rrr<r]rLs       rassert_event_tagsz#XMLPullParserTest.assert_event_tagstsE**,j9H6488,H!	#HsA
cdD]3}|j|5tj}|j|g|j	|d||j|g|j	|d||j|g|j	|d||j|dg|j	|d||j	|d||j|dd	g|j	|d
||j|dg|j|j
ddd6y#1swYBxYw)N)Nr)r<!-- comment -->
z+<root>
  <element key='value'>text</element>
r0<element>text</element>tail
<empty-element/>
r2</root>
r3)rr=
XMLPullParserrrrr)r5rr s   rtest_simple_xmlz!XMLPullParserTest.test_simple_xmlys8&	2J4
2))+&&vr2

6#7D&&vr2

6I%'&&vr2

65*5&&v0B/CD

6#BJO

6#7D&&v&,0

6;
;&&v/@A!!&,,.1'
2
2	2
2
2sDD;;E	ctj}|j}|j|dt	|\}}|j||jfd|j|dt	|\}}|j||jfd|jt5t	|dddy#1swYyxYw)Nz-<root>
  <element key='value'>text</element>
r0rr3)	r=rrrrTr{rUr
StopIteration)r5r rr]rLs     rtest_feed_while_iteratingz+XMLPullParserTest.test_feed_while_iteratings!!#



!

6LMBx&$((+-?@

6;'Bx&$((+_=


}
-	H			s6CCcjtj}|j|g|j|d|j|g|j|d|j|g|j|d|j|g|j|d|j|dg|j|d|j|d|j|ddg|j|d	|j|d
g|j	|jy)Nr<root xmlns='namespace'>
"<element key='value'>text</elementrr5rrr7rr9)r=rrrrrr5r s  rtest_simple_xml_with_nsz)XMLPullParserTest.test_simple_xml_with_nss!!#vr*

6/0vr*

678vr*

6?@vr*

65!v(E'FG

6:;

6/0v)/(		

6;'v(B'CD&,,.)r!ctjd}|j|d|j|d|jt	|jdg|j|d|j|d|j|d|j|d	|j|d
|jt	|jdg|j
|jy)NrKr;rrrDrrrrrrJ)r=rrr{r}rrrrs  rtest_ns_eventsz XMLPullParserTest.test_ns_eventss!!)?!@

6/0

678##%&
,-	/	

6?@

65!

6:;

6/0

6;'f00236F5GH&,,.)r!c`tjd}|j|d|j|ddgd|j	|dgd	|j|d
|j	|ddg|j|d
|j|j	|dgy)N)rBr>r1r; <tag xmlns='abc' xmlns:p='xyz'>
rB)rEabcrB)rxyzrrr>{abc}tagr
<child />
r>
{abc}childr1r</tag>
r1rr=rrrrrrs  rtest_ns_events_startz&XMLPullParserTest.test_ns_events_starts!!)E!F

6>?  %&*
	!		
v!(
			

6=)v#!(
	
	

6:&v(
	r!ctjd}|j|d|j|ddgd|j	|dgd	|j|d
|j	|ddg|j|d
|j|j	|dgd	|j|ddgy)N)rBr>r1rCr;rrrrrrrrrrrrrJrrs  rtest_ns_events_start_endz*XMLPullParserTest.test_ns_events_start_ends!!)O!P

6>?  %&*
	!		
v!(
			

6=)v#!(
	
	

6:&v(
			
  *
	r!ctjd}|j|d|j|gtjd}|j|d|j	|gtjd}|j|d|j|dg|j|d|j|d	g|j|d
|j|dg|j|d|j|gd
|j|d|j|j
|j|dgtjd}|j|d|j|g|j|d|j|dg|j|d|j|d	g|j|d
|j|g|j|d|j|ddg|j|d|j|j
y)Nr"r;z<root/>
r=<!-- text here -->
z<root>
r@rrArr0z8<element xmlns='foo'>text<empty-element/></element>tail
)r>{foo}elementr>{foo}empty-element)r1r)r1rz</root>r3)r>rrr)r=rrrrrrrs  rtest_eventszXMLPullParserTest.test_eventss%!!!,

6;'vr*!!)9!:

61262&!!)9!:

6:&v(9':;

6?@v(<'=>

65!v(:';<

6N	Pv(		

69%&,,.)v'89!!!4

6/0vr*

6:&v(9':;

6?@v(<'=>

65!vr*

6N	Pv%+(		

69%&,,.)r!ctjd}|j|d|j|dtjdffg|j|d|j|dtjdffg|j|d|j|d	g|j|d
|j|dtjdffg|j|d|j|d
g|j|d|j|dtjdffgtjd}|j|d|j|dtjdffgy)N)r>rcr1r;rrcz text here z<!-- more text here -->
z more text here z<root-tag>text)r>root-tagz<!-- inner comment-->
z inner commentz</root-tag>
)r1rz<!-- outer comment -->
z outer comment )rc)r=rrrrerrs  rtest_events_commentz%XMLPullParserTest.test_events_comment sa!!)D!E

6126Y]0K$L#MN

6676Y=O0P$Q#RS

6+,v(='>?

6456Y=M0N$O#PQ

6?+v(;'<=

6566Y=N0O$P#QR!!!6

6126Y]0K$L#MNr!c8tjd}|j|d|j|dtjdffgtjd}|j|d|j|dtjdffgy)	N)r>r}r1r;z
<?pitarget?>
r}pitarget)r}z<?pitarget some text ?>
zpitarget some text )r=rrrrrs  rtest_events_piz XMLPullParserTest.test_events_pi3s!!)?!@

6+,6TBEE:+>$?#@A!!!1

6676TBEE3H+I$J#KLr!cddh}tj|}|j|d|j|ddgGdd}tj|}|j|d|j|ddgy)	Nr1r>r;z<foo>bar</foo>)r>r)r1rceZdZdZdZdZy)9XMLPullParserTest.test_events_sequence.<locals>.DummyIterc(tgd|_y)N)r>r1rB)rr<rs r__init__zBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__init__Cs"#?@r!c|SrSr"rs r__iter__zBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__iter__Esr!c,t|jSrS)rTr<rs rrzBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__next__GsDKK((r!N)r@rArBrrrr"r!r	DummyIterrBs
A

)r!r)r=rrr)r5eventsetr rs    rtest_events_sequencez&XMLPullParserTest.test_events_sequence;s7#!!!2

6+,v(8.'IJ	)	)!!!5

6+,v(8.'IJr!c|jt5tjddddy#1swYyxYw)NrLr;)rrr=rrs rtest_unknown_eventz$XMLPullParserTest.test_unknown_eventNs7


z
*	?$=>	?	?	?s6?rS)r@rArBrrrrrrrrrrrrrrrr"r!rrr`sQ2
#
2.
**
*.6,*\O&MK&?r!rz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml"/>
</document>
C1.xmlz<?xml version='1.0'?>
<disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
zdisclaimer.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been accessed
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
C2.xml324387z	count.txtz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been <em>accessed</em>
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
C2b.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example><xi:include href="data.xml" parse="text"/></example>
</document>
C3.xmlzQ<?xml version='1.0'?>
<data>
  <item><![CDATA[Brooks & Shields]]></item>
</data>
zdata.xmlaW<?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="example.txt" parse="text">
    <xi:fallback>
      <xi:include href="fallback-example.txt" parse="text">
        <xi:fallback><a href="mailto:bob@example.org">Report error</a></xi:fallback>
      </xi:include>
    </xi:fallback>
  </xi:include>
</div>
C5.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>Example.</p>
  <xi:include href="{}"/>
</document>
default.xmla
<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
</document>
include_c1_repeated.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml" parse="BAD_TYPE"/>
</document>
B1.xmlzn<?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:fallback></xi:fallback>
</div>
B2.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive2.xml:</p>
  <xi:include href="Recursive2.xml"/>
</document>
Recursive1.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive3.xml:</p>
  <xi:include href="Recursive3.xml"/>
</document>
zRecursive2.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="Recursive1.xml"/>
</document>
zRecursive3.xmlc:eZdZd	dZd
dZdZdZdZdZdZ	y)XIncludeTestNc~	t|}|dk(rtj	|}|S#t$rtdwxYw)Nresource not foundr)XINCLUDEKeyErrorOSErrorr=r)r5hrefrrEr*s     rxinclude_loaderzXIncludeTest.xinclude_loadersH	0D>DE>66$<D		0.//	0s	'<cyrSr")r5rr rEs    rnone_loaderzXIncludeTest.none_loadersr!c|dk(r9t|d5}tj|jcdddSy#1swYyxYw)NrrN)rr=rr)r5rrrs    r
_my_loaderzXIncludeTest._my_loadersJE>dD!
-Qxx{**,
-
-
-
-s#AA	cddlm}|jd}|j||j|jt
|dy)Nrr0rz<document>
  <p>Example.</p>
  <root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>
</document>)r4r1rincluderr{rQ)r5r1rOs   rtest_xinclude_defaultz"XIncludeTest.test_xinclude_defaultsB,""=1sDOO43
	r!c~ddlm}|jd}|j||j|j	t|d|jd}|j||j|j	t|d|jd}|j||j|j	t|d|jd	}|j||j|j	t|d
|jd}|j
t5}|j||jddd|j	tjd|j	t|d
y#1swYJxYw)Nrr0ra<document>
  <p>120 Mz is adequate for an average home user.</p>
  <disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
</document>rzO<document>
  <p>This document has been accessed
  324387 times.</p>
</document>rzX<document>
  <p>This document has been <em>accessed</em>
  324387 times.</p>
</document>rz<document>
  <p>The following is the source of the "data.xml" resource:</p>
  <example>&lt;?xml version='1.0'?&gt;
&lt;data&gt;
  &lt;item&gt;&lt;![CDATA[Brooks &amp; Shields]]&gt;&lt;/item&gt;
&lt;/data&gt;
</example>
</document>rraI<div xmlns:ns0="http://www.w3.org/2001/XInclude">
  <ns0:include href="example.txt" parse="text">
    <ns0:fallback>
      <ns0:include href="fallback-example.txt" parse="text">
        <ns0:fallback><a href="mailto:bob@example.org">Report error</a></ns0:fallback>
      </ns0:include>
    </ns0:fallback>
  </ns0:include>
</div>)
r4r1rrr{rQrrrrr5r1rPrs    r
test_xincludezXIncludeTest.test_xincludes,''1x)=)=>8,
	''1x)=)=>8,
	''	2x)=)=>8,
	''1x)=)=>8,
	''1


w
'	C2""8T-A-AB	CR\\*,@A8,
			C	Cs
F33F<cddlm}|jd}|j||j|j	dt|j
dy)Nrr0rrz.//p)r4r1rrr{r|r)r5r1rPs   rtest_xinclude_repeatedz#XIncludeTest.test_xinclude_repeated<sL,''(ABx)=)=>H$4$4V$< =>r!c
ddlm}tjtd}|j|j5}|j||jddd|jtjdtjtd}|j|j5}|j||jddd|jt|jdtjtd}|j|j5}|j||jddd|jt|jd	tjtd
}|j|j5}|j||jddd|jt|jd|jd}|j|j5}|j||jddd|jt|jd
|jd}|j|j5}|j||jdddd|jt|jd
|jd}|j|j5}|j||jdddd|jt|jd|jd}|j|j5}|j||jdddd|jt|jd|jd}|j|j5}|j||jdddd|jt|jd|jd}|j|j5}|j||jdddd|jt|jd
y#1swYxYw#1swYxYw#1swYxYw#1swY%xYw#1swYxYw#1swYQxYw#1swYxYw#1swY{xYw#1swYxYw#1swYxYw)Nrr0r)rnz%cannot load 'disclaimer.xml' as 'xml'rz!cannot load 'count.txt' as 'text'rz1unknown parse type in xi:include tag ('BAD_TYPE')rzYxi:fallback tag must be child of xi:include ('{http://www.w3.org/2001/XInclude}fallback')rz#recursive include of Recursive2.xml)	max_depthzAmaximum xinclude depth reached when including file Recursive2.xmlrzAmaximum xinclude depth reached when including file Recursive3.xmlrzAmaximum xinclude depth reached when including file Recursive1.xmlr)r4r1r=rrrFatalIncludeErrorrrr{rrXINCLUDE_BADrLimitedRecursiveIncludeErrorrs    rtest_xinclude_failuresz#XIncludeTest.test_xinclude_failuresCs,66(8,-


~??
@	FB""8D4D4D"E	FR\\*7	966(8,-


~??
@	FB""8D4D4D"E	FR\\*3	566,x01


~??
@	FB""8D4D4D"E	FR\\*C	E66,x01


~??
@	FB""8D4D4D"E	FR\\*@	A
''(89


~??
@	CB""8T-A-AB	CR\\*5	7''(89


~??
@	SB""8T-A-AT"R	SR\\*5	7''(89


~JJ
K	Pr""8T-A-AQ"O	PR\\*S	U''(89


~JJ
K	Pr""8T-A-AQ"O	PR\\*S	U''(89


~JJ
K	Pr""8T-A-AQ"O	PR\\*S	U''(89


~??
@	PB""8T-A-AQ"O	PR\\*5	7}	F	F	F	F	F	F	F	F	C	C	S	S	P	P	P	P	P	P	P	PswSS+S8T;T1T)T,!T9UUS(+S58TTTT),T69UUU)rNrS)
r@rArBrrrrrrrr"r!rrrs'>@?D7r!rceZdZdZdZdZdZdZdZdZ	dZ
d	Zejejd
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"y)BugsTestcfd}tjd}||tjd}d|_||tjd}d|_||tjd}|j	dd||tjd}|j	dd||y)Ncjt5}t|dddjt	j
dy#1swY/xYw)Nzcannot serialize 123 (type int))r	TypeErrorrQr{rr)rLrr5s  rrz-BugsTest.test_bug_xmltoolkit21.<locals>.checksK""9-
 $
 S.5
7
 
 sAA{rL123)r=rzrwrvr)r5rrLs`  rtest_bug_xmltoolkit21zBugsTest.test_bug_xmltoolkit21s	7zz#
dzz&!	
dzz&!	
dzz&!e
dzz&!
dr!ctjt}tj|}|j	|jdd|j	|jddy)NrUrwrrb)r=rrr/r{r)r5rLrPs   rtest_bug_xmltoolkit25zBugsTest.test_bug_xmltoolkit25sRvvj!~~d#u-v6}5yAr!ctjd}|jt|j	dg|jt|j	ddgy)N"<doc><table><tbody/></table></doc>z.//theadz.//tbodytbody)r=rr{rWrr5rPs  rtest_bug_xmltoolkit28zBugsTest.test_bug_xmltoolkit28sQvv:;Z(@A2FZ(@AG9Mr!ctjd}tj5}tj	||j|j
ddddy#1swYyxYw)Nrz$<doc><table><tbody /></table></doc>
)r=rrrrr{rJ)r5rPrs   rtest_bug_xmltoolkitX1zBugsTest.test_bug_xmltoolkitX1s]vv:;

$
$
&	Y&GGDMV__.0WX	Y	Y	Ys6A))A2ctjd}|jtj|ddtjd}|j|jddi|jtj|ddtjd}|jtj|dd	tjd
}|jtj|ddtjd}|j
dd|jtj|ddy)Ns2<?xml version='1.0' encoding='iso-8859-1'?><tg />rs<täg />sD<?xml version='1.0' encoding='iso-8859-1'?><tag ttr='v&#228;lue' />uättruvälues<tag ättr="välue" />s:<?xml version='1.0' encoding='iso-8859-1'?><tg>text</tg>s<täg>text</täg>rrU)r=rr{rrxrzrrs  rtest_bug_xmltoolkit39zBugsTest.test_bug_xmltoolkit39svvNOT735FGvv67y*&=>T735	7vv/0T730	2zz*%T735FGzz% l+T735	7r!ctjd}|jt|dd|jt|dy)Nz=<!DOCTYPE doc [<!ENTITY ldots '&#x8230;'>]><doc>&ldots;</doc>rrs<doc>&#33328;</doc>u<doc>舰</doc>r/r,s  rtest_bug_xmltoolkit54zBugsTest.test_bug_xmltoolkit54sF
FF(
)1z:&	(1':;r!c|jtj5}tjdddd|j	tjdy#1swY/xYw)Ns?<!DOCTYPE doc SYSTEM 'doc.dtd'><doc>&ldots;&ndots;&rdots;</doc>z+undefined entity &ldots;: line 1, column 36)rr=rXrr{rr)r5rs  rtest_bug_xmltoolkit55zBugsTest.test_bug_xmltoolkit55s\

r}}
-	8FF7
8	8	
R\\*=	?	8	8sA$$A-clGdd}|jttj|y)NceZdZdZy)5BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFilectrS)rr5rs  rrz:BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFile.reads
r!N)r@rArBrr"r!r
ExceptionFiler s
r!r#)rrr=r)r5r#s  rtest_bug_xmltoolkit60zBugsTest.test_bug_xmltoolkit60s&			
'288]_=r!cddd}tj}|jj||j	d|j}|j
|jdjdy)Nu’u‘)rsquolsquoaF<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE patent-application-publication SYSTEM "pap-v15-2001-01-31.dtd" []>
<patent-application-publication>
<subdoc-abstract>
<paragraph id="A-0001" lvl="0">A new cultivar of Begonia plant named &lsquo;BCT9801BEG&rsquo;.</paragraph>
</subdoc-abstract>
</patent-application-publication>z.//paragraphu7A new cultivar of Begonia plant named ‘BCT9801BEG’.)	r=rr2updaterrr{rrw)r5ENTITIESr ts    rtest_bug_xmltoolkit62zBugsTest.test_bug_xmltoolkit62sl&9

X&%	&
LLN/44K	Mr!zSkips under coverage.cd}|tjd}tdD]	}||jtjd|y)Nctj}|jdi|jd|j	dy)NrUrw)r=rr>r*r1)rPs rxmltoolkit63z4BugsTest.test_bug_xmltoolkit63.<locals>.xmltoolkit63
s3>>#DJJub!IIfHHUOr!i)rcgetrefcountrr{)r5r.countrs    rtest_bug_xmltoolkit63zBugsTest.test_bug_xmltoolkit63sM		%t	AN	.6r!c	tjdd}|jtj|d|jtj	tj|jdd|jtjtj	tj|dy)NSomeTagzdef _f():
  return 3
rws0<SomeTag text="def _f():&#10;  return 3&#10;" />rw)r=rzr{rrrjr,s  rtest_bug_200708_newlinez BugsTest.test_bug_200708_newlines
JJy'@JAQC	EA/33F;)	+RVVBKKN%;<C	Er!cbtj}|jd|j|j	j
dGdd}tj|}|jd|j|j	j
dy)Nz<element>some text</element>rceZdZdZy)2BugsTest.test_bug_200708_close.<locals>.EchoTargetc,tjdS)Nrr=rzrs rrz8BugsTest.test_bug_200708_close.<locals>.EchoTarget.close)szz),,r!Nr@rArBrr"r!r
EchoTargetr8(s
-r!r<r)r=rrr{rrU)r5r r<s   rtest_bug_200708_closezBugsTest.test_bug_200708_close!s}23++Y7	-	-Z\223++Y7r!ctjd}tj|d}|jt	|ddtjd}tj|d}tj|d}|jt	|ddtjd}tj|d}tj|d}|jt5}t	|dddd|jtjdy#1swY/xYw)	Nz
{default}elemr)rz%<elem xmlns="default"><elem /></elem>z{not-default}elemzI<elem xmlns="default" xmlns:ns1="not-default"><elem /><ns1:elem /></elem>rLz<cannot use non-qualified names with default_namespace option)	r=rzrdr{rQrrrr)r5rsrs    r!test_bug_200709_default_namespacez*BugsTest.test_bug_200709_default_namespace/sJJ'MM!_-1	B7	9
JJ'MM!_-MM!011	B
	
JJ'MM!_-MM!V$


z
*	6ba95	6R\\*N	P	6	6s=D99Ectjd}|jtj|dtj	ddtjd}|jtj|dtjd}|jtj|dy)Nz/{http://namespace.invalid/does/not/exist/}titlesB<ns0:title xmlns:ns0="http://namespace.invalid/does/not/exist/" />rz(http://namespace.invalid/does/not/exist/sB<foo:title xmlns:foo="http://namespace.invalid/does/not/exist/" />z'{http://purl.org/dc/elements/1.1/}titles8<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/" />)r=rzr{rregister_namespacer,s  r"test_bug_200709_register_namespacez+BugsTest.test_bug_200709_register_namespaceFsJJHIQQ	S
e%OPJJHIQQ	S

JJ@AQG	Ir!ctjd}|jtjd|j	|dj
tjtjd}|jtj
d|j	|dj
tjy)Nrrr)r=rzrrer{rUr)r5rs  rtest_bug_200709_element_commentz(BugsTest.test_bug_200709_element_commentUs
JJsO	E"#12::.JJsO	u1255)r!cltjd}tj|d}tj|d}tjd}|jd||j	t|gd|jd||j	t|gdy)	Nrrrrr)rrrr)rrrr)r=rzrdrr{rWr5rrrrs     rtest_bug_200709_element_insertz'BugsTest.test_bug_200709_element_insertasJJsOMM!S!MM!S!JJsO	A*O<	Q*,@Ar!c4tjd}tj|d}tjd}|j	||jt
|jtjtjgy)NrrzTEST-b)r=rzrdrerr{rWr)r5rr	comment_bs    rtest_bug_200709_iter_commentz%BugsTest.test_bug_200709_iter_commentksaJJsOMM!S!JJx(		rzz(:;bjj\Jr!ctj}|jd}|jdi}|j	d}|j}|j
t|dy)Nr*rUr)r=rr*r>r1rr{rQ)r5rrs   rtest_bug_1534630zBugsTest.test_bug_1534630usXnnHHVIIeR GGENIIK1y1r!ctjd}|jtj|ddtjd}|jtj|ddy)Ns7<?xml version='1.0' encoding='utf-8'?><body>tãg</body>r%s<<?xml version='1.0' encoding='ascii'?>
<body>t&#227;g</body>s;<?xml version='1.0' encoding='iso-8859-1'?><body>tg</body>rr,s  rtest_issue6233zBugsTest.test_issue6233}sjFF.
/Q0)	*
FF*
+Q0)	*r!ctjd}|jt|dgtjt}|dd|dd|jt|gdy)NrrUrUrUrR)r=rr{rWr)r5rLnewelems   rtest_issue6565zBugsTest.test_issue6565sYvv+,-w7&&$!*Q-/HIr!c\tjddtjddy)N	test10777z
http://myuri/)r=rBrs rtest_issue10777zBugsTest.test_issue10777s$	k?;
k?;r!c2Gfdd}tjd|_j}t	|}|j|||jjt|jjdy)NceZdZfdZy)%BugsTest.test_lost_text.<locals>.Textcd_y)NchangedTr4r,s r__bool__z.BugsTest.test_lost_text.<locals>.Text.__bool__s
"r!Nr@rArBr\rsrrrY
r!rrUr[)r=rzrwrrTryrr{r5rrr*rs    @rtest_lost_textzBugsTest.test_lost_textsr		

JJu
JJLGa&affc*+r!cGfdd}tjdjtjd|d_j	}t|}|j
|||j
djt|jdjdy)NceZdZfdZy)%BugsTest.test_lost_tail.<locals>.Textcdd_yNr[rT)rvr,s rr\z.BugsTest.test_lost_tail.<locals>.Text.__bool__s%!	r!Nr]r^srrrdr_r!rr4rUrr[)	r=rzrrvrrTryrr{r`s    @rtest_lost_tailzBugsTest.test_lost_tails		

JJv	E"#F!	
JJLGa&adii-1I.r!cGfdd}tjdjtj|jtjdjd	t	}|jj||jdjt|jdjdy#t
$r|j
dY{wxYw)NceZdZfdZy)$BugsTest.test_lost_elem.<locals>.TagcLtjdd<tyrf)r=rzrT)r5rrrs  r__eq__z+BugsTest.test_lost_elem.<locals>.Tag.__eq__szz),!Qr!Nr@rArBrl)rrsrrrjs
r!rr4rUzgenerators are not reentrantrr[)r=rzrrrTrskipTestryrUrr{)r5rr*rrs   @@rtest_lost_elemzBugsTest.test_lost_elems		
JJv	CE"#	E"#
FF5M	:QA	
aeeS)adhh,19-		:MM89	:sC..D
Dcd|z}tj|}|j|jd|j	dy)Ns<a b="%s"/>rr)r=rr{rjdecode)r5rwrr4s    rcheck_expat224_utf8_bugz BugsTest.check_expat224_utf8_bugs:t#vvc{#G(<=r!cPd}|j|d}|j|y)Nsààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààsxàààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà)rrrus  rtest_expat224_utf8_bugzBugsTest.test_expat224_utf8_bugs*"$$T*($$T*r!chttd5}|j}dddtj	}|jd}|j
dj}|jdd}|dd}|j|jd|y#1swYxYw)NrNrrrr)
rUTF8_BUG_XMLFILErr=rrjrqstripr&r{)r5fprawr4xmlattrrws      rtest_expat224_utf8_bug_filez$BugsTest.test_expat224_utf8_bug_files
"D
)	R'')C	}}S!((3-zz'"((*||FC(Abz#-		sB((B1c|jttjjd|jttjjddy)NrU)rrr=rr>rs rtest_39495_treebuilder_startz%BugsTest.test_39495_treebuilder_startsB)R^^%5%;%;UC)R^^%5%;%;UDIr!N)#r@rArBrrrrrrrr$r+unittestskipIfrcgettracer1r5r=r@rCrErHrKrMrOrSrVrargrorrrtr}rr"r!rrrs8BNY72<?>M"X__\S\\^%<=7>7	E8P.
I
*BK2
*J<
,/ .(>

+.Jr!rcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)BasicElementTestcd}ddi}tj||}|j|tj|jdt	||jdt	||jdt	||jdt	||j|j||j|j|j|j|j|j||j|j|d|d	<|j|j||j|j|y)
NrzixwyprUrxrwrvbazr)
r=rzryrrr{rUrrwrvr
rxr)r5rUrxelement_foos    r
test___init__zBasicElementTest.test___init__s&%!jjf-	
k2::6

eS-.

hK 01

fc+./

fc+./	
#.+**++**+	
++V4++V4u
++V4K..7r!ctjdddi}|jtjddditj|}|j	|||j|j|j|j|j|j|j|j|j|jt|t|tj||D]\}}|j|||j|j|jyNrrrrrqix)r=rzrrr
r{rUrwrvr|	itertoolszip_longestassertIsrxr5relement_foo2rrs     r
test___copy__zBasicElementTest.test___copy__	sjj%(892::eue-=>?yy-	
{3	
));??;**K,<,<=**K,<,<=	
\*C,<=!* 5 5k< P	*VVMM&&)	*	
,,k.@.@Ar!ctjdddi}|jtjddditj|}|j|||j
|j|j|j
|j|j|j
|j|j|j
t|t|tj||D]\}}|j|||j|j|j|j
|j|jd|jd<|j|j|j|j|j|jyr)r=rzrrrr
r{rUrwrvr|rrrxrrs     rtest___deepcopy__z"BasicElementTest.test___deepcopy__&	s|jj%(892::eue-=>?}}[1	
{3	
));??;**K,<,<=**K,<,<=	
\*C,<=!* 5 5k< P	-VVVV,	-	
,,k.@.@A,,k.@.@A%*5!,,k.@.@AL//1C1CDr!cRtjd}|jt|jd|jt|j
tjddg|jt|jddtjdg|dd|jt5d|d<ddd|jt5tjddg|dddddt|dr*ddgdd	d
d}|jt|j|t|drKGd
dtj}|dg|dd|jttj|yy#1swYxYw#1swYxYw)Njoerrrr__setstate__rUrrvrw)rU	_childrenrxrvrw__deepcopy__ceZdZdZy)9BasicElementTest.test_augmentation_type_errors.<locals>.EcyrSr")r5memos  rrzFBasicElementTest.test_augmentation_type_errors.<locals>.E.__deepcopy__[	sr!N)r@rArBrr"r!rErZ	s r!r)r=rzrrrrrrrrr)r5rstaters    rtest_augmentation_type_errorsz.BasicElementTest.test_augmentation_type_errorsD	s_JJu)QXXs3)QXX

50A5/IJ)QXXq%8

5!"!


y
)	AaD	


y
)	.JJu%u-AaD	.1n%"V E
i?1n%
 BJJ
 eH:AaDi:&			.	.s=F FFF&cGdd}|}tjd||_tj|}~t|j
|tjd}|}||_tj|}tj|d|}~~~t|j
|tjd}tjd}tjd}|j||j||j|tj|}~~~t|j
|y)	NceZdZy).BasicElementTest.test_cyclic_gc.<locals>.DummyNr@rArBr"r!rDummyra	r!rr)rrrrr)	r=rzdummyrefweakrefrefr
rrdr)r5rrwrefrrrrs        rtest_cyclic_gczBasicElementTest.test_cyclic_gc`	s		
GZZAZ.
{{1~
$&!
JJuG
{{1~
]]1e!]
,
q"$&!ZZ

ZZ

ZZ

		"

		"

		"
{{2B$&!r!cdfd}tjd}tj||}|j	|j
d~t
|j	d|j	|dy)NFc
dyNTr")wflags rwref_cbz.BasicElementTest.test_weakref.<locals>.wref_cb	sDr!rT)r=rzrrr{rUr
)r5rrrrs    @rtest_weakrefzBasicElementTest.test_weakref	sl	
JJsO{{1g&S)
t$&r!ctjdddd}|j|jddd|j|jd	ddy)
Nrrrr)rrzr)rr)r=rzr{rj)r5rs  rtest_get_keyword_argsz&BasicElementTest.test_get_keyword_args	sR
ZZ!qAZ
.Q/3Q/3r!c	tdtjdzD]6}t|jdD]\}}|jdd}d|_d|_|j|d	j|jd
|j|jd	|jddjd
d|j|d|||}|j|jd|j|jdd|jt!|d|j#||9y)Nrrrepeatr*)rztext goes herezopposite of headchild
grandchildz
.//grandchildrrzother valuer8r)rrdHIGHEST_PROTOCOLrr]rzrwrvrdrrrrtr{rUrxr|r)r5rormrnrrs      rtest_picklezBasicElementTest.test_pickle	s(1f559:	0E")$,,q"A
0NN5bN1)+!!!W-44V^^L5QR01		/*1-11&-H))!-D*0&%A  /  5!126  R!,((B/
0	0r!c	tdtjdzD]}t|jdD]\}}d}|j|}|j
|jdd|j|d|||}|j
|jd|j
|djd	y)
Nrrrz\<?xml version="1.0"?>
                    <group><dogs>4</dogs>
                    </group>rUgroupr8rdogs)
rrdrrr]rr{__getstate__rtrU)r5rormrnXMLTEXTrrs       rtest_pickle_issue18997z'BasicElementTest.test_pickle_issue18997	s1f559:
	4E")$,,q"A	
4 &&w/  !25!97C))".E*0&%A  1  AF3	
4
	4r!N)r@rArBrrrrrrrrrr"r!rrrs286B0E<;8!"F'4
0&4r!rcHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)BadElementTestc,Gfdd}|gtjd}	|jGdd|tj}|dgtjd}|jy#t$rYUwxYw)Nc"eZdZefdZy)2BadElementTest.test_extend_mutable_list.<locals>.XcVtjdgddtjS)Nrr:r5Ls r	__class__z<BadElementTest.test_extend_mutable_list.<locals>.X.__class__	s"

5)*!zz!r!Nr@rArBpropertyrrsrXr	

"
"r!rrceZdZy)2BadElementTest.test_extend_mutable_list.<locals>.YNrr"r!rYr	rr!rrr=rzrrr5rrrrs    @rtest_extend_mutable_listz'BadElementTest.test_extend_mutable_list	s	"	"
SEJJu	
HHQK	2::	
sVHJJu			sB	BBc|Gfdd}|tjdgtjd}	|jGdd|tj}|dtjdgtjd}|jy#t$rYiwxYw)Nc"eZdZefdZy)3BadElementTest.test_extend_mutable_list2.<locals>.Xc.dd=tjSrSr:rs rrz=BadElementTest.test_extend_mutable_list2.<locals>.X.__class__	saDzz!r!Nrrsrrr	rr!rrrceZdZy)3BadElementTest.test_extend_mutable_list2.<locals>.YNrr"r!rrr	rr!rrrrs    @rtest_extend_mutable_list2z(BadElementTest.test_extend_mutable_list2	s	"	"
S"**U#$JJu	
HHQK	2::	
uXrzz%()JJu			sB//	B;:B;cGfddtj}tjdj|dg|jtj
tjdtjdjtjdg|jtj
|dy)NceZdZfdZy)3BadElementTest.test_remove_with_mutating.<locals>.Xcdd=y)NFr")r5ors  rrlz:BadElementTest.test_remove_with_mutating.<locals>.X.__eq__	s
aDr!Nrmr^srrr	s
r!rrrr)r=rzrrrrr5rrs  @rtest_remove_with_mutatingz(BadElementTest.test_remove_with_mutating	s	

	
JJu	!E(*ahh

50ABJJu	"**U#$%*ahh%9r!ctjd}t|d|5|jt5t|ddddddy#1swYxYw#1swYyxYw)NrrU)r=rzrrRuntimeErrorrr,s  rtest_recursive_reprz"BadElementTest.test_recursive_repr	s`JJu
q%
#	""<0
Q
		

		s"A"AA"A	A""A+c`Gfddt}tj}|jdi|j	d|j	|d|j	d|jd|j
|jjdy)NceZdZfdZy)/BadElementTest.test_element_get_text.<locals>.Xc>	jy#t$rYywxYwrS)rw	NameErrorrfs r__del__z7BadElementTest.test_element_get_text.<locals>.X.__del__	s!II s	Nr@rArBrrLsrrr	
r!rrUABCDEFGHIJKLABCDEFGHIJKL)	rr=rr>r*r1rr{rwr5rrrLs   @rtest_element_get_textz$BadElementTest.test_element_get_text	s{		
NN	r	v	qy	v	ewwyN3r!cGfddt}tj}|jdi|jdi|j	d|jd|j|d|jd|j	d|j
|jdjd	y)
NceZdZfdZy)/BadElementTest.test_element_get_tail.<locals>.XcD	djy#t$rYywxYwr)rvrrfs rrz7BadElementTest.test_element_get_tail.<locals>.X.__del__
s%GLL s	Nrrsrrr
rr!rr4rUrrrrr)	rr=rr>r1r*rr{rvrs   @rtest_element_get_tailz$BadElementTest.test_element_get_tail
s		
NN		r	e	v	qy	v	f
wwya~6r!cGfdd}tjdjtjdd|jtjddd|y)NceZdZfdZy)%BadElementTest.test_subscr.<locals>.Xcdd=yNrr"r,s r	__index__z/BadElementTest.test_subscr.<locals>.X.__index__
s
aDr!Nr@rArBrr^srrr

r!rrLrrr)r=rzrrs  @rtest_subscrzBadElementTest.test_subscr
sa		

JJv	G$%	$13	G$%	!Bqs(r!cGfdd}tjdtdD]'}jdtjd)gdd|<y)NceZdZfdZy))BadElementTest.test_ass_subscr.<locals>.Xcgddyrr"r,s rrz3BadElementTest.test_ass_subscr.<locals>.X.__index__*
s!r!Nrr^srrr
)
rr!rrLrrr)r=rzrr)r5rr,rs   @rtest_ass_subscrzBadElementTest.test_ass_subscr'
sZ		

JJvr	-A
HHQ

7+,	-!Bqs(r!cd}tj|}|jdi|jd|j	t
|jdi~t
y)NcgSrSr"rrs  relement_factoryz>BadElementTest.test_treebuilder_start.<locals>.element_factory6
Ir!rrUrr)r=rr>r*rAttributeErrorr
r5rrs   rtest_treebuilder_startz%BadElementTest.test_treebuilder_start4
sP	NN?N;	r	v.!''62>
r!cd}tj|}|jdi|jd|j	t
|jd~ty)NcgSrSr"rs  rrz<BadElementTest.test_treebuilder_end.<locals>.element_factoryB
rr!rrUr)r=rr>r*rrr1r
rs   rtest_treebuilder_endz#BadElementTest.test_treebuilder_end@
sN	NN?N;	r	v.!%%7
r!N)
r@rArBrrrrrrrrrrr"r!rrr	s4&&:4&7*

r!rceZdZdZdZy)MutatingElementPathc@tj|g|}||_|SrS)r__new__rL)r_rLrr5s    rrzMutatingElementPath.__new__N
s!{{3&&	r!c"|jdd=yrrr5rs  rrlzMutatingElementPath.__eq__R
sIIaLr!N)r@rArBrrlr"r!rrrM
sr!rceZdZdZy)BadElementPathcddz)Nrrr"rs  rrlzBadElementPath.__eq__X
sc	r!Nrmr"r!rr r W
sr!r cXeZdZfdZfdZdZdZdZdZdZ	dZ
d	Zd
ZxZ
S)BadElementPathTestc^t|ddlm}|j|_i|_yNrr2)supersetUpr4r3r
path_cacher5r3rs  rr'zBadElementPathTest.setUp]
s$

)%,,r!cPddlm}|j|_t|yr%)r4r3r(rr&tearDownr)s  rr+zBadElementPathTest.tearDownc
s)!__
r!ctjd}|jtjdg|jt	|dyNrrr)r=rzrrrr,s  rtest_find_with_mutatingz*BadElementPathTest.test_find_with_mutatingh
s<JJu	"**U#$%	"1c*+r!ctjd}|jtjdg	|jt	dy#t
$rYywxYwr-)r=rzrrr ZeroDivisionErrorr,s  rtest_find_with_errorz'BadElementPathTest.test_find_with_errorm
sPJJu	"**U#$%	
FF>#&' 		A	A#"A#ctjd}|jtjdg|jt	|dyr-)r=rzrrrr,s  rtest_findtext_with_mutatingz.BadElementPathTest.test_findtext_with_mutatingu
s<JJu	"**U#$%	

&q#./r!ctjd}|jtjdg	|jt	dy#t
$rYywxYwr-)r=rzrrr r0r,s  rtest_findtext_with_errorz+BadElementPathTest.test_findtext_with_errorz
sPJJu	"**U#$%	
JJ~c*+ 		r2ctjd}tj|d}dddgdig}|D]*}||_|j	|jd|,y)NrrrErFr"./barr=rzrdrwr{r)r5	root_elemsub_elemfalseyvals     r(test_findtext_with_falsey_text_attributez;BadElementPathTest.test_findtext_with_falsey_text_attribute
scJJu%	==E2aB+	?CHMY//8#>	?r!ctjd}tj|d}d|_|j	|jddy)Nrrr8rEr9)r5r:r;s   r&test_findtext_with_none_text_attributez9BadElementPathTest.test_findtext_with_none_text_attribute
sBJJu%	==E2
++G4b9r!ctjd}|jtjdg|jt	|dyr-)r=rzrrrr,s  rtest_findall_with_mutatingz-BadElementPathTest.test_findall_with_mutating
s<JJu	"**U#$%			%a-.r!ctjd}|jtjdg	|jt	dy#t
$rYywxYwr-)r=rzrrr r0r,s  rtest_findall_with_errorz*BadElementPathTest.test_findall_with_error
sPJJu	"**U#$%	
IInS)* 		r2)r@rArBr'r+r.r1r4r6r>r@rBrD
__classcell__)rs@rr#r#\
s5 
,
0
?:/
r!r#c*eZdZdZdZdZdZdZy)ElementTreeTypeTestc|jtjt|jtjt|jtj
t|jtjt|jtjt|jtjtyrS)	ryr=rXrer<r/rzrrrs rtest_istypezElementTreeTypeTest.test_istype
szbmmT2bhh-bnnd3bjj$/bnnd3bllD1r!c(Gddtj}|d}|j|tj|j|||j|jdd|_|j|j
dy)NceZdZy)DElementTreeTypeTest.test_Element_subclass_trivial.<locals>.MyElementNrr"r!r	MyElementrL
rr!rMrr)r=rzryr{rUrwr5rMmyes   rtest_Element_subclass_trivialz1ElementTreeTypeTest.test_Element_subclass_trivial
ss	

	c2::.c9-%(5)r!cGfddtjdddddd	}|j|jd
|jt	|jgdy)Nc&eZdZiffd	ZxZS)HElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElementc.t||dz|fi|y)N__)r&r)r5rUrxextrarMrs    rrzQElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElement.__init__
si/d
FLeLr!)r@rArBrrE)rrMs@rrMrS
s+-
M
Mr!rMrrr)rrr)rrfoo__))rr)rr)rr)rrW)r=rzr{rUrr)r5rOrMs  @r!test_Element_subclass_constructorz5ElementTreeTypeTest.test_Element_subclass_constructor
s^	M

	MQQ/1:'*		,4	6r!cGddtj}|d}|j|jdy)NceZdZdZy)GElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElementc|jSrSrTrs r	newmethodzQElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElement.newmethod
sxxr!N)r@rArBr^r"r!rrMr\
s
 r!rMr)r=rzr{r^rNs   r test_Element_subclass_new_methodz4ElementTreeTypeTest.test_Element_subclass_new_method
s4	 

	 %0r!cGddtj}tjd}d|_|d}d|_|j||j	|jdd|j	|j
djdt|jd}|j	t|d||j	|djdy)	NceZdZy)AElementTreeTypeTest.test_Element_subclass_find.<locals>.MyElementNrr"r!rrMrb
rr!rMrrwrrbrr)r=rzrwrr{rrrUr}rr|)r5rMrsubfounds     rtest_Element_subclass_findz.ElementTreeTypeTest.test_Element_subclass_find
s	

	
JJu	
E*I6**E2QYYu%&UQ.qu-r!N)r@rArBrIrPrYr_rer"r!rrGrG
s2*61
.r!rGc<eZdZdZdZdZdZdZdZdZ	dZ
y	)
ElementFindTestctjt}|j|j	dj
d|j|j	dj
d|j|j	dj
dtjt|d<|j|j	dj
d|j|jdd|j|jdd|j|jdd	|j|jdd
d	|j|jd|j|jdd
d
|jtjdjd
d	y)NrUr./tagrzsection/nexttagnexttagrwrbrErtogz<tag><empty /></tag>empty)	r=rrr{rrUSAMPLE_SECTIONrrr,s  rtest_find_simplez ElementFindTest.test_find_simple
sbFF:**E2
.22E:,,e4vvn%! 1266	BG,f5M2I>	
$56;$5yA2F	
!**U+,E95yA	
 67@@I2Nr!cd}tj|}|j|jdjdd|j|jdjdd|j|jdjdd|j|jd	jdd
|j|jdjdd|jtd|jd
|jtd|jd|jtd|jd|jtd|jdy)Nz
        <body>
            <tag class='a'/>
            <tag class='b'/>
            <tag class='c'/>
            <tag class='d'/>
        </body>z./tag[1]classrz./tag[2]rz
./tag[last()]rz./tag[last()-1]rz./tag[last()-2]XPathz./tag[0]z	./tag[-1]z./tag[last()-0]z./tag[last()+1])r=rr{rrxrSyntaxError)r5
LINEAR_XMLrs   rtest_find_xpathzElementFindTest.test_find_xpath
s3

FF:	

+227;SA
+227;SA077@#F 1299'BCH 1299'BCH{GQVVZH{GQVV[I{GQVV=NO{GQVV=NOr!ctjt}tjt|d<|j	t|j
ddg|j	t|j
dddg|j	t|j
dg|j	t|j
dg|j	t|j
dgd|j	t|j
d	dgd
z|j	t|j
ddg|j	t|j
ddgdz|j	t|j
d
gd|j	t|j
dgd|j	t|j
dgd|j	t|j
dgd|j	t|j
dgd|j	t|j
ddg|j	t|j
ddg|j	t|j
ddgdz|j	t|j
ddgdz|j	t|j
ddgdz|j	t|j
ddg|j	t|j
ddgdz|j	t|j
ddgdz|j	t|j
ddg|j	t|j
ddg|j	t|j
dd g|j	t|j
d!g|j	t|j
d"g|j	t|j
d#dgdz|j	|j
d$|j
d|j	t|j
d%d g|j	t|j
d&d g|j	t|j
d'd g|j	t|j
d(d g|j	t|j
d)d g|j	t|j
d*g|j	t|j
d+g|j	t|j
d,g|j	t|j
d-g|j	t|j
d.g|j	t|j
d/dg|j	t|j
d0dg|j	t|j
d1dg|j	t|j
d2dg|j	t|j
d3dg|j	t|j
d4g|j	t|j
d5g|j	t|j
d6dgdz|j	t|j
d7dgdz|j	t|j
d8dgdz|j	t|j
d9dgdz|j	t|j
d:dgdz|j	t|j
d;dgd
z|j	t|j
d<dgd
z|d|d=<|j	t|j
d(d d g|j	t|j
d3ddgy)>NrrWr&rUrkztog/foorrQz.//tagrWrzsection//tagz	section/*)rUrjnextsectionz
section//*)rUrjrvrUzsection/.//*z*/*z*//*z*/tagz*/./tagriz././tagz.//tag[@class]rz.//tag[@class="a"]z.//tag[@class!="a"]z.//tag[@class="b"]z.//tag[@class!="b"]z.//tag[@id]z.//section[tag]rRz.//section[element]z../tagzsection/../tagz	section//z.//section[tag='subtext']z.//section[tag ='subtext']z.//section[tag= 'subtext']z.//section[tag = 'subtext']z.//section[ tag = 'subtext' ]z.//section[tag!='subtext']z.//section[tag !='subtext']z.//section[tag!= 'subtext']z.//section[tag != 'subtext']z.//section[ tag != 'subtext' ]z.//tag[.='subtext']z.//tag[. ='subtext']z.//tag[.= "subtext"]z.//tag[ . = "subtext" ]z.//tag[. = 'subtext']z.//tag[. = 'subtext ']z.//tag[.= ' subtext']z.//tag[.!='subtext']z.//tag[. !='subtext']z.//tag[.!= "subtext"]z.//tag[ . != "subtext" ]z.//tag[. != 'subtext']z.//tag[. != 'subtext ']z.//tag[.!= ' subtext']r)r=rrrmr{rWrr,s  rtest_findallzElementFindTest.test_findallsFF:vvn%!		#7&B		%(89E5>J		%(892>		)(<=rB		#7%	'		((;<
GaK			-(@AE7K		.(ABUGaKP		+(>?-	/		,(?@4	6		.(AB4	6		%(89-	/		&(9:4	6		'(:;eWE		)(<=wG		'(:;eWq[I		)(<=w{K		2B(CD
GaK			2F(GH
G			2G(HI
GaK			2F(GH
GaK			2G(HI
G			-(@A
G			2C(DE
K			2G(HI2N		((;<bA		2B(CD
GaK	;/<1HI		2M(NO
K			2N(OP
K			2N(OP
K			2O(PQ
K			2Q(RS
K	
	
		2N(OP			2O(PQ			2O(PQ			2P(QR			2R(ST		
		2G(HI	"		2H(IJ	"		2H(IJ	"		2K(LM	"		2I(JK	"		2J(KL			2I(JK	
	
		2H(IJ1	&		2I(JK1	&		2I(JK1	&		2L(MN1	&		2J(KL1	&	
		2K(LM1	&		2J(KL1	&t!		2O(PQ#Y/	1		2I(JK	)r!cBtjt}|jt	|jdg|jt	|jddgdz|jt	|jddgdzy)NrUz{http://effbot.org/ns}tagrz.//{http://effbot.org/ns}tagr)r=rr7r{rWrr,s  rtest_test_find_with_nsz&ElementFindTest.test_test_find_with_nstsFF=!		%(892>199%@AB
()A-	/	
199%CDE
()A-	/r!cXtjd}ddi}|jt|j	d|d|jt|j	d|dddi}|jt|j	d|d	|jt|j	d|dddd
}|jt|j	d|d|jt|j	d|d	y)N
            <a xmlns:x="X" xmlns:y="Y">
                <x:b><c/></x:b>
                <b/>
                <c><x:b/><b/></c><y:b/>
            </a>xxrz.//xx:b)rEr.//brr)r|rE)r=rr{r|r)r5r4nsmaps   rtest_findall_different_nsmapsz-ElementFindTest.test_findall_different_nsmaps~svvsT\\)\FGKT\\&U\CDaHsT\\)\FGKT\\&U\CDaH$T\\)\FGKT\\&U\CDaHr!c~tjd}|jtjd|j	t|j
dgd|j	t|j
ddg|j	t|j
ddg|j	t|j
d	d
g|j	t|j
dddg|j	t|j
d
dg|j	t|j
d
t|j
d|j	t|j
dgd|j	t|j
d|dgzt|j
d|j	t|j
dgd|j	t|j
dddg|j	t|j
dddg|j	t|j
dd
g|j	t|j
dgd|j	t|j
dddg|j	t|j
dt|j
dy)Nr{rz{*}b){X}br{Y}bz{*}crz{X}*rz{Y}*rr`rz{}brb)rrrrrrz.//{*}b)rrrrrz.//{*}cz.//{X}*z.//{Y}*z.//{}*)rrrrz.//{}br})r=rrrer{rWrrs  rtest_findall_wildcardz%ElementFindTest.test_findall_wildcardsvv	
BJJv&'V(<=.	0V(<=	 V(<= 	#V(<= 	#U(;<s	%U(;<	 U(;<'S(9:	<V(<=3	5	
V(<Rz(IJ'S(9:	<	
Y(?@;	=Y(?@s	%Y(?@ &)	+Y(?@ 	#X(>?-	/X(>?s	%X(>?'V(<=	?r!ctjt}|jtd5|jddddy#1swYyxYw)Nzcannot use absolute pathz/tag)r=rrrrrrr,s  r
test_bad_findzElementFindTest.test_bad_findsBFF:

#
#K1K
L	
IIf			sAAc|tjt}|jtj	|jdjd|jtj	|jdd|jttj	|jddgdzd}|jt|5tj	|jd}ddd|jtdgdzy#1swY)xYw)NrUrwrzThis search is broken in 1.3 and earlier, and will be fixed in a future version.  If you rely on the current behaviour, change it to '.+'z//tagr)r=rrr{r/rrUrrWrassertWarnsRegex
FutureWarning)r5rrrs    rtest_find_through_ElementTreez-ElementFindTest.test_find_through_ElementTreesFF:*//6::EB*33E:FCq(9(A(A%(HI
GaK	#
"
"=#
6	4"**73B	4+eWq[9	4	4s%%D22D;N)r@rArBrnrtrwryrrrrr"r!rrgrg
s0O.P,n)`/I"*?X
:r!rgc2eZdZddZdZdZdZdZdZy)	ElementIterTestNc6t|j|SrS)rWr)r5rLrUs   r_ilistzElementIterTest._ilistsdiin--r!ctjd}|j|j|gd|j|j|j	dddg|jt|j
jd|jdj|jd|jdj|j	djd|jt|jd	t|d
}|jttj|dd
t|d
}tjtj}|jttj||dd
tjd}|jt |jtjd}|jdj|jdy)Nz7<html><body>this is a <i>paragraph</i>.</body>..</html>)r+r&rr&rr+rEzthis is a paragraph...zthis is a paragraph.z
this is a F)rMrr1r)r z*<root>a&amp;<sub>b&amp;</sub>c&amp;</root>za&b&c&)r=rr{rrrTrrUr(rrQrSrrr/rr)r5rO
sourcefiler rPs     r
test_basiczElementIterTest.test_basicsffNOS)+@ASXXf%56
Fchhj)--v602JK&!1!:!:!<="	$clln-|<se4
bll:67:EBse4
R^^%56bll:flEFqI	 ~~d#.$))4ffAB0(;r!c$tjd}|j|j|dgtj	|d}|j|j|ddgtj	|d}|j|j|gdtj	|d}|j|j|gd|d|d<|d=|j|j|ddgy)	Nrrr)rrrr)rrrrrr)r=rzr{rrdrGs     rtest_cornerszElementIterTest.test_cornerssJJsOQ#/
MM!S!Q#s4
MM!S!Q9
MM!S!Q)=>t!
aDQ#s4r!ctjd}|j|j|ddgdz|j|j|ddgdz|jt	|jddgdzgd}|jt	|j||j|j|||j|j|d|y)	NaJ
            <document>
                <house>
                    <room>bedroom1</room>
                    <room>bedroom2</room>
                </house>
                <shed>nothing here
                </shed>
                <house>
                    <room>bedroom8</room>
                </house>
            </document>roomrhouserrT)rPrrrshedrrr)r=rr{rrWr)r5rOall_tagss   rtest_iter_by_tagz ElementIterTest.test_iter_by_tagsff	
S&1F8a<@S'2WIMB	
3888/0
HqL	
-
3X>S)84S#.9r!ctjd}|j}|jt5tj
|dddy#1swYyxYw)Nr)r=rzrrrr)r5rrs   rrzElementIterTest.test_copy!sHJJsO
VVX


y
)	IIbM			sAA#c0tjd}|j}ttj
dzD]F}|j
ttjf5t	j||dddHy#1swYSxYw)Nrr)
r=rzrrrdrrrrgre)r5rrros    rrzElementIterTest.test_pickle'szJJsO
VVX622Q67	(E""Iv/C/C#DE
(R'
(
(	(
(
(s*BB	rS)	r@rArBrrrrrrr"r!rrrs .<65,::(r!rcneZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZy)TreeBuilderTestz<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text<div>subtext</div>tail</html>z<toplevel>sometext</toplevel>c|j|jd|j|jd|j|jd|j|jit|}|jt
|d|d}|j|jd|j|jd|j|jd|j|jiy)Nr+rwrrdivrbrv)r{rUrwrvrxr}r|)r5rchildrenrs    r_check_sample1_elementz&TreeBuilderTest._check_sample1_element7s'(&2&7X*E*Y/V,r*r!c6Gdd}Gdd|}tj|}|j|j|j	|jdtj|}|j|j|j	|jdtjt
}|j|j|j|jy)NceZdZdZy)<TreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuildercy)Nrr"rs rrzBTreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuilder.closeFsr!Nr;r"r!rBaseDummyBuilderrEs
r!rceZdZdxZxZZy)8TreeBuilderTest.test_dummy_builder.<locals>.DummyBuildercyrSr")rs r<lambda>zATreeBuilderTest.test_dummy_builder.<locals>.DummyBuilder.<lambda>Jr!N)r@rArBr*r>r1r"r!rDummyBuilderrIs!00D053r!rrr)r=rrsample1r{robjectr)r5rrr s    rtest_dummy_builderz"TreeBuilderTest.test_dummy_builderDs			1+	1\^4DLL!,%5%78DLL!,VX.DLL!&,,.)r!ctj}|j|jdjtj
|j|jdjdtjtj
}|j|jdjtj
|j|jdjdtjt}|j|jdtdy)Nctext)comment_factory)r=rr{rcrUrerwr|r5rs  rtest_treebuilder_commentz(TreeBuilderTest.test_treebuilder_commentXsNN7+//<7+00':NN2::N67+//<7+00':NN3N/7+S\:r!ctj}|j|jddjtj
|j|jddjdtjtj
}|j|jdjtj
|j|jdjd|j|jddjtj
|j|jddjdtjd}|j|jdtddf|j|jddtddfy)Nr)
pi_factoryrz text zpitarget  text ct||fSrS)r|)rrws  rrz5TreeBuilderTest.test_treebuilder_pi.<locals>.<lambda>osCK;Nr!)r=rr{r}rUrrwr|rs  rtest_treebuilder_piz#TreeBuilderTest.test_treebuilder_pidsENNh-112559h-22H=NNbeeN,h++RUU3h,,h7j(377?j(388:KLNN&NNOh#h-)>?j(3c*ox5PQr!cfGddtj}d}tj|}|j|jdtj|}|j
||j}|j|jdd}tj|}|j|jdd}tj|}|j
||j}|j|jdy)NceZdZy);TreeBuilderTest.test_late_tail.<locals>.TreeBuilderSubclassNrr"r!rTreeBuilderSubclassrurr!rz<a>text<!-- comment -->tail</a>texttailrz<a>text<?pi data?>tail</a>)r=rrr{rwrrr)r5rrrr s     rtest_late_tailzTreeBuilderTest.test_late_tailss	"..	0MM#,%8%:;CLLN,*MM#,*%8%:;CLLN,r!c2Gddtj}d}tjtjd}|j||j	}|j|djd|j|djd	|j|jd
tj|d}|j||j	}|j|djd|j|djd	|j|jd
d}tjtjd}|j||j	}|j|djd
|j|djd|j|jdtj|d}|j||j	}|j|djd
|j|djd|j|jdy)NceZdZy)KTreeBuilderTest.test_late_tail_mix_pi_comments.<locals>.TreeBuilderSubclassNrr"r!rrrrr!rz/<a>text<?pi1?> <!-- comment -->
<?pi2?>tail</a>T)insert_commentsrrrz
tailztext z+<a>text<!-- comment -->
<?pi data?>tail</a>)
insert_piszpi datarvztext
)r=rrrrr{rwrv)r5rrr rs     rtest_late_tail_mix_pi_commentsz.TreeBuilderTest.test_late_tail_mix_pi_commentss	"..	AR^^D^%IJCLLN1K01H-)%8%NOCLLN1K01H-)<R^^t^%DECLLN1I.1F+*%8D%IJCLLN1I.1F+*r!ctjtjd}|j|j|j}|j
|yNrr)r=rrrrrrr5r rs   r$test_treebuilder_elementfactory_nonez4TreeBuilderTest.test_treebuilder_elementfactory_nonesFR^^D^%IJDLL!LLN##A&r!c*Gddtj}|}|j|jddtj	|}|j|j|j}|j|y)NceZdZdZy)4TreeBuilderTest.test_subclass.<locals>.MyTreeBuilderc|dzSNrr"r"s  rrz;TreeBuilderTest.test_subclass.<locals>.MyTreeBuilder.foobar1ur!Nr@rArBrr"r!r
MyTreeBuilderr
r!rrrr)	r=rr{rrrrrrr5rtbr rs     r
test_subclasszTreeBuilderTest.test_subclasssl	BNN	_2+R(DLL!LLN##A&r!cGddtj}|tjtj}|j	|jddtj
|}|j|j|jd|j}|j|y)NceZdZdZy)?TreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilderc|dzSrr"r"s  rrzFTreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilder.foobarrr!Nrr"r!rrrrr!r)rrrrrz<!-- a comment--><?and a pi?>)r=rrerr{rrrrrrrs     rtest_subclass_comment_piz(TreeBuilderTest.test_subclass_comment_pis	BNN	2::"%%
H2+R(DLL!34LLN##A&r!cgfd}tj|}tj|}|j|j|j|j
dgy)NcRj|tj||SrS)rr=rz)rUrxlsts  r	myfactoryz7TreeBuilderTest.test_element_factory.<locals>.myfactorysJJsO::c6**r!rrtoplevel)r=rrrsample2rr{)r5rrr rs    @rtest_element_factoryz$TreeBuilderTest.test_element_factorysZ	+
^^I^
6R(DLL!zl+r!ctj|}tj|}|j|j|j}|j
|||j|yr)r=rrrrrryr)r5r_rr rs     r_check_element_factory_classz,TreeBuilderTest._check_element_factory_classs[
^^C^
0R(DLL!LLNa%##A&r!cXGddtj}|j|y)NceZdZy)@TreeBuilderTest.test_element_factory_subclass.<locals>.MyElementNrr"r!rrMrrr!rM)r=rzr)r5rMs  rtest_element_factory_subclassz-TreeBuilderTest.test_element_factory_subclasss 	

	)))4r!ctj}|j|jdGdd|t}|j|y)Nr8ceZdZy)LTreeBuilderTest.test_element_factory_pure_python_subclass.<locals>.MyElementNrr"r!rrMrrr!rM)r=_Element_Pyr{rArr)r5baserMs   r)test_element_factory_pure_python_subclassz9TreeBuilderTest.test_element_factory_pure_python_subclasss>~~*AB	j	)))4r!cGdd}tj|}|j|j|j	|jdy)NceZdZdZdZdZy)3TreeBuilderTest.test_doctype.<locals>.DoctypeParserNc|||f|_yrS_doctype)r5rlpubidsystems    rdoctypez;TreeBuilderTest.test_doctype.<locals>.DoctypeParser.doctypes!%uf 5
r!c|jSrSrrs rrz9TreeBuilderTest.test_doctype.<locals>.DoctypeParser.close
s}}$r!)r@rArBrrrr"r!r
DoctypeParserrsH
6
%r!rrr+z&-//W3C//DTD XHTML 1.0 Transitional//ENz7http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)r=rrrr{r)r5rr s   rtest_doctypezTreeBuilderTest.test_doctypesM	%	%]_5DLL!
H	Ir!cGdd}tj|dD]=}|jt|5tj||ddd?tj|tdD]^}tj||t}|j|j|j|j`y#1swYxYw)NceZdZdefdZdZy)BTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilderNc ||_||_yrSraise_inwhat)r5rrs   rrzKTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__init__
s (
 	r!c`||jk(r|j|jd}|S)NcyrSr")rs rhandlez^TreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__.<locals>.handle
sr!r)r5rlrs   r__getattr__zNTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__
s+4==())DMM22
r!)r@rArBrrrr"r!rRaisingBuilderr

s(,:
!
r!rr)r>r*r1rcr})r)	r=rrrrrrrr)r5rrr s    rtest_builder_lookup_errorsz*TreeBuilderTest.test_builder_lookup_errors
s
	
		N,->	;E''
E:
;N5$9:
;
;	;	N?@>	.E\\N)S\TFKK%flln-	.	
;
;sC--C6	N)r@rArBrrrrrrrrrrrrrrrrrr"r!rrr/s^2G
2G+*(
;
R-0"+H''
','5
5I".r!rcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)
XMLParserTests<file><line>22</line></file>s<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>uX<?xml version="1.0" encoding="iso-8859-1"?>
<money value="$£€𐅻">$£€𐅻</money>c|j|jd|j|djd|j|djdy)NrOrline22)r{rUrwr,s  r_check_sample_elementz#XMLParserTest._check_sample_element/
sF'16*1D)r!ctjdtj}|j|j|j|j
y)Nr)rEr)r=rrrrrr)r5rs  rtest_constructor_argsz#XMLParserTest.test_constructor_args4
sE,,&(nn&68T\\"""7==?3r!cGddtj}|}|j|j|j	|jy)NceZdZy)-XMLParserTest.test_subclass.<locals>.MyParserNrr"r!rMyParserr;
rr!r)r=rrrrr)r5rr s   rrzXMLParserTest.test_subclass:
s=	r||	DLL!""6<<>2r!ctj5tjdttj}|j
|j|jdddy#1swYyxYw)Nerror)	warningscatch_warningssimplefilterDeprecationWarningr=rrrrrs  rtest_doctype_warningz"XMLParserTest.test_doctype_warningA
sX

$
$
&	!!'+=>\\^FKK%LLN				sAA88BcdGfddtj}|}|jtd5|j	|j
ddd|j
|jdxtj5tjdttjdtGfdd}||}|j	|j
|j
|j|jddddy#1swYxYw#1swYyxYw)	NceZdZfdZy)@XMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctypec||fyrSr")r5rrrs   rrzHXMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctype.doctypeK
s &>r!Nr@rArBrrsrMyParserWithDoctyperJ
s
*r!rrrceZdZfdZy):XMLParserTest.test_subclass_doctype.<locals>.DoctypeParserc|||fyrSr")r5rlrr	_doctype2s    rrzBXMLParserTest.test_subclass_doctype.<locals>.DoctypeParser.doctypeZ
s!%uf 5Ir!Nr)r"srrr Y
s6r!rrr)
r=rrRuntimeWarningrrrrrrrrr{)r5rr rrr"s    @@rtest_subclass_doctypez#XMLParserTest.test_subclass_doctypeH
s	*",,	*
%&

"
">9
=	&KK%	&(###9

$
$
&	M!!'+=>!!'>:
6
6
)
@FKK%LLNh'YL
M	M	M
	&	&	M	MsEBEE	EcTtj5tjdttjdtGddt
j}|}|j|j|jdddy#1swYyxYw)z:Ensure that ordinary usage is not deprecated (Issue 19176)rceZdZy)DXMLParserTest.test_inherited_doctype.<locals>.MyParserWithoutDoctypeNrr"r!rMyParserWithoutDoctyper'k
sr!r(N)
rrrrr#r=rrrr)r5r(r s   rtest_inherited_doctypez$XMLParserTest.test_inherited_doctypef
su

$
$
&	!!'+=>!!'>:

+-FKK%LLN			sBBB'cXtjtj}|j|j|j}|j
|jd|j
|jdd|j
|jdy)Nrmoneyru
$£€𐅻)
r=rrrsample3rr{rUrxrwrs   rtest_parse_stringzXMLParserTest.test_parse_stringq
swR^^%56DLL!LLN('*,CD!89r!N)
r@rArBrrr,rr
rrr$r)r-r"r!rrr&
s:-GGMG*
43M<	:r!rceZdZdZy)NamespaceParseTestcBddd}tjt}|jt	|jd|d|jt	|jd|d|jt	|jd|dy)	Nhellor)hrz{hello}tablerz.//{hello}tdrz.//{foo}name)r=rSAMPLE_XML_NS_ELEMSr{r|r)r5r~rOs   rtest_find_with_namespacez+NamespaceParseTest.test_find_with_namespace{
s{E*mm/0S[[?@!DS[[?@!DS[[?@!Dr!N)r@rArBr4r"r!rr/r/z
sEr!r/cTeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZy
)ElementSlicingTestc@|Dcgc]}|jc}Scc}wrSrT)r5elemlistrs   r
_elem_tagszElementSlicingTest._elem_tags
s'(!(((rXc6|jt|SrS)r9r}rfs  r
_subelem_tagsz ElementSlicingTest._subelem_tags
stDz**r!ctjd}t|D]}tj|d|z|S)zxCreate an Element with a tag 'a', with the given amount of children
           named 'a0', 'a1' ... and so on.

        rza%s)r=rzrrd)r5numchildrenrrs    r_make_elem_with_childrenz+ElementSlicingTest._make_elem_with_children
s<

JJsO{#	(AMM!UQY'	(r!c|jd|jdjd|jdjd|jtfd|jtfdy)Nrra1a8cdS)Nr"r^srrz?ElementSlicingTest.test_getslice_single_index.<locals>.<lambda>
saer!cdS)Nir"r^srrz?ElementSlicingTest.test_getslice_single_index.<locals>.<lambda>
safr!)r>r{rUr
IndexErrorr,s @rtest_getslice_single_indexz-ElementSlicingTest.test_getslice_single_index
sc))"-14(2D)*m4*n5r!c|jd}|j|j|ddgd|j|j|ddgd|j|j|ddgd|j|j|ddddg|j|j|ddddg|j|j|dd	d
dgy)Nrvr)a3a4a5rrIrJrra0r@)r>r{r9r,s  rtest_getslice_rangez&ElementSlicingTest.test_getslice_range
s))!,12/1CD1Q02DE1R13EF1Q04,?1R1D$<@2A/$>r!c	L|jd}|j|j|dddddg|j|j|dddgd|j|j|dddddg|j|j|dddd	dg|j|j|ddtjd
g|j|j|ddtjdzd
gy)NrrrBa9r)rMrIa6rQrMr@rI@r>r{r9rcmaxsizer,s  rtest_getslice_stepsz&ElementSlicingTest.test_getslice_steps
s))"-1R63dD\B3Q302JK3Q304,?14a41D$<@1>ckk>):;dVD1+=ckk2o+=)>?$Hr!c	 |jd}|j|j|dddgd|j|j|dddddg|j|j|ddtjdg|j|j|ddtjdz
dg|j|j|ddtjd	zdgy)
NrWr)rIa2r@rMrArIr@rrrSrTr,s  rtest_getslice_negative_stepsz/ElementSlicingTest.test_getslice_negative_steps
s))!,4R413KL4R41D$<@1?s{{l?);<tfE1+<s{{l1n+<)=>G1+>s{{lB.>+>)?@4&Ir!c|jd}|dd=|j|j|ddg|jd}|dd=|j|j|g|jd}|ddd=|j|j|g|jd}|ddd=|j|j|ddg|jd}|d	dd=|j|j|ddg|jd}|ddd=|j|j|d
gy)NrWrrrXrIrrArMrr@)r>r{r;r,s  r
test_delslicez ElementSlicingTest.test_delslice
sT))!,
acF++A.t=))!,
abE++A.3))!,
ddG++A.3))!,
ddG++A.t=))!,
addG++A.t=))!,
ccF++A.7r!c`|jd}tjd|d<|j|j	|gdtjd|d<|j|j	|gd|jt5tjd|d	<ddd|jt5tjd|d
<ddd|j|j	|gdy#1swYcxYw#1swY9xYw)NrWrrrMrrXrIrrA)rMrrrIrr)r>r=rzr{r;rrFr,s  rtest_setslice_single_indexz-ElementSlicingTest.test_setslice_single_index
s))!,zz#!++A.0GH

3"++A.0FG


z
*	#::c?AaD	#


z
*	$JJsOAbE	$++A.0FG		#	#	$	$sDD$D!$D-cJ|jd}tdDcgc]}tjd|zc}|dd|j	|j|gd|jd}tjdg|dd|j	|j|gd|jd}tdDcgc]}tjd|zc}|dd|j	|j|gd	ycc}wcc}w)
NrWrb%srr)rMb0b1rIr)rMrrI)rMrbrcb2rI)r>rr=rzr{r;r5rrs   rtest_setslice_rangez&ElementSlicingTest.test_setslice_range
s))!,16q:A"**UQY':!A++A.0HI))!,**S/"!A++A.0AB))!,16q:A"**UQY':!A++A.0NO;;sDD c`|jd}tdDcgc]}tjd|zc}|ddd<|j	|j|gd|jd}|j
t5tjdg|ddd<ddd|j
t5tdDcgc]}tjd|zc}|ddd<ddd|j
t5g|ddd<ddd|j	|j|gd	|jd
}tjdg|ddtj<|j	|j|gdtjdg|ddtjd
z<|j	|j|gdycc}w#1swYZxYwcc}w#1swYxYw#1swYxYw)Nrvrrarr)rMrbrXrcrJrKrr)rMr@rXrIrJrKrWr]rrSrMrrXrI
r>rr=rzr{r;rrrcrUres   rtest_setslice_stepsz&ElementSlicingTest.test_setslice_steps
s))!,388<aBJJuqy)<!Aa%++A.0TU))!,


z
*	)

3(Aa!eH	)


z
*	A7<Qx@!

519-@Aa!eH	A


z
*	Aa!eH	++A.0TU))!,ZZ_-!.S[[.++A.0GH!#C 1!
S[["_
++A.0GH!=	)	)A	A	A		s;HH
HH7	H	H$HHH!$H-c|jd}tdDcgc]}tjd|zc}|ddd<|j	|j|gd|jd}|j
t5tjdg|ddd<ddd|j
t5tdDcgc]}tjd|zc}|ddd<ddd|j
t5g|ddd<ddd|j	|j|gd	|jd}tjdg|d
dtj<|j	|j|gdtjdg|d
dtjd
z
<|j	|j|gd
tjdg|d
dtjdz<|j	|j|gdycc}w#1swYxYwcc}w#1swYlxYw#1swYSxYw)NrWrrarr)rMrcrbrIrr)rMr@rXrIrr]rrhrrS)rMrrXrIrires   rtest_setslice_negative_stepsz/ElementSlicingTest.test_setslice_negative_stepss$))!,49!H=qRZZ	*=!Ab&	++A.0HI))!,


z
*	*C)Aa"fI	*


z
*	B8=aA1EAI.AAa"fI	B


z
*	Aa"fI	++A.0HI))!, jjo.!/ckk\/++A.0GH "

30!
ckk\!^
++A.0GH"$**S/!2!
ckk\2

++A.0GH%>	*	*B	B	B		s;II
I*I%7	I*	I7I"%I**I47JN)r@rArBr9r;r>rGrNrVrYr[r_rfrjrlr"r!rr6r6
sD)+6?IJ82HPI(Ir!r6ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZGd
dZdZdZdZdZdZdZdZy)IOTestc	tjd}d|_|jt	|ddD]d}|j|5|jt	||d|jt	||j
ddddfdD]}|j|5|jt	||d|zj||j
}|jt	||d|zj|dddtjd}d	|_|jt	|d
|jt	|dd|jt	|d
ddD]1}|jt	||d|zj|3tjd}d	|jd<|jt	|d|jt	|dd|jt	|d
ddD]1}|jt	||d|zj|3tjd}d|_|jt	|d|jt	|dd|jt	|d
ddD]1}|jt	||d|zj|3tjd}d|jd<|jt	|d|jt	|dd|jt	|d
ddD]1}|jt	||d|zj|3y#1swYxYw#1swYQxYw)NrUrz<tag>abc</tag>)rrrs<tag>abc</tag>)rrutf-32z2<?xml version='1.0' encoding='%s'?>
<tag>abc</tag>z<&"'>z<tag>&lt;&amp;"'&gt;</tag>rs<tag>&lt;&amp;"'&gt;</tag>rz><?xml version='1.0' encoding='%s'?>
<tag>&lt;&amp;"'&gt;</tag>rz"<tag key="&lt;&amp;&quot;'&gt;" />s"<tag key="&lt;&amp;&quot;'&gt;" />zF<?xml version='1.0' encoding='%s'?>
<tag key="&lt;&amp;&quot;'&gt;" />uåöö<>u<tag>åöö&lt;&gt;</tag>s<tag>åöö&lt;&gt;</tag>s%<tag>&#229;&#246;&#246;&lt;&gt;</tag>u=<?xml version='1.0' encoding='%s'?>
<tag>åöö&lt;&gt;</tag>u<tag key="åöö&lt;&gt;" />s<tag key="åöö&lt;&gt;" />s(<tag key="&#229;&#246;&#246;&lt;&gt;" />)rrrrrpu@<?xml version='1.0' encoding='%s'?>
<tag key="åöö&lt;&gt;" />)	r=rzrwr{rQrupperr)rx)r5rLencrqs    rr(zIOTest.test_encodingszz% 	4*:;(	+Cc"
+  4#!>)+  4#))+!F)+
+
+	+6	@Cc"
@  4#!>*,/017>		  4%!@*,12396#;@
@
@	@zz% 	4*GH4':.	04*=.	05	GCYtc:3589:@&+
G	G
zz% &E4*OP4':6	84*=6	85	PCYtc:<>ABCI6#;
P	P
zz% $	4*KL4':>	@4*=8	:5	ECYtc:13678>s
E	E
zz% -E4*NO4':A	C4*=;	=M	JCYtc:68;<=CVC[
J	Ju
+
+
@
@sA	O7A/O*O'	*O4	cP|jtjttjtj
d}|jtttd5}|j|jddddy#1swYyxYw)N<site>ø</site>rN<site>&#248;</site>)rYrrZrr=r/rrIrr{rr5rPrs   rtest_write_to_filenamezIOTest.test_write_to_filename`sv	((&1~~bff%<=>

6
&$
	C1QVVX'AB	C	C	Cs2!BB%c|jtjttjtj
d}|jtdttd5}|j|jdddd|jtdttd5}|j|jtddddy#1swYcxYw#1swYyxYw)NrtrrrN<site>ø</site>r:<?xml version='1.0' encoding='ISO-8859-1'?>
<site></site>)rYrrZrr=r/rrIrr{rr+rvs   r$test_write_to_filename_with_encodingz+IOTest.test_write_to_filename_with_encodinggs	((&1~~bff%<=>

6G
,
&$
	E1QVVX'CD	E	

6L
1
&$
	81QVVX{6(7
8	8	8		E	E	8	8s4!C7*D7DDc|jtjtt	td5}|j
}dddtjttjtjd}|jtdt	td5}|j|jddddy#1swYxYw#1swYyxYw)NrrtrDrrNry)rYrrZrrrEr=r/rrIr{r)r5rrErPs    r!test_write_to_filename_as_unicodez(IOTest.test_write_to_filename_as_unicodets	((&1
&#
	"!zzH	" ~~bff%<=>

6I
.
&$
	A1QVVX'?@	A	A
	"	"	A	As
C2!C(C%(C1c>|jtjttjtj
d}ttdd5}|j|d|j|jdddttd5}|j|jddddttddd	
5}|j|d|j|jdddttd5}|j|jddddttdd5}|j|d|j|jdddttd5}|j|jd
dddy#1swYIxYw#1swYxYw#1swYxYw#1swYxYw#1swYuxYw#1swYyxYw)NrtrrrrDrNryr%xmlcharrefreplace)rEerrorsrurs<site></site>
rYrrZrr=r/rrrIrUrVr{rrvs   rtest_write_to_text_filezIOTest.test_write_to_text_files	((&1~~bff%<=>
&#
0	'AJJq9J-QXX&	'&$
	E1QVVX'CD	E&#8K
L	'PQJJq9J-QXX&	'&$
	D1QVVX(BC	D&#
5	'JJq9J-QXX&	'&$
	A1QVVX'?@	A	A	'	'	E	E	'	'	D	D	'	'	A	AsH/G&!G""/G/)!G;$/H+!HG"G,/G8;HHHc|jtjttjtj
d}ttd5}|j||j|jdddttd5}|j|jddddy#1swYCxYw#1swYyxYw)NrtrQrNrurrvs   rtest_write_to_binary_filez IOTest.test_write_to_binary_files	((&1~~bff%<=>
&$
	'1JJqMQXX&	'&$
	C1QVVX'AB	C	C	'	'	C	Cs-C"!CCC!c|jtjttjtj
d}ttd5}|j|d|j|jdddttd5}|j|jddddttd5}|j|d|j|jdddttd5}|j|jddddy#1swYxYw#1swYxYw#1swY[xYw#1swYyxYw)	NrtrQrrrNryrrzrrvs   r'test_write_to_binary_file_with_encodingz.IOTest.test_write_to_binary_file_with_encodings7	((&1~~bff%<=>
&$
	'1JJq7J+QXX&	'&$
	E1QVVX'CD	E&$
	'1JJq<J0QXX&	'&$
	71QVVX6
7	7	7	'	'	E	E	'	'	7	7s0/E$!E/E&$!E2EE#&E/2E;c<|jtjttjtj
d}ttd5}|j|d|j|jdddttd5}|j|jdjddddttdd5}|j|d|j|jdddttd5}|j|jdjddddy#1swYxYw#1swYxYw#1swYjxYw#1swYyxYw)	NrtrQrrrNu7<?xml version='1.0' encoding='utf-16'?>
<site>ø</site>r)	buffering)rYrrZrr=r/rrrIrUrVr{rr)rvs   r"test_write_to_binary_file_with_bomz)IOTest.test_write_to_binary_file_with_bomsM	((&1~~bff%<=>
&$
	'1JJq8J,QXX&	'&$
	>1QVVX,,2F8,<
>	>
&$!
,	'JJq8J,QXX&	'&$
	>1QVVX,,2F8,<
>	>	>	'	'	>	>
	'	'	>	>s0/E.$0E:./F50F.E7:FFFctj}tjd}|j	||j|j
jdyNz"<?xml version="1.0"?><site></site>site)r=r/rFrHrr{rrUr5rPrs   rtest_read_from_stringiozIOTest.test_read_from_stringiosE~~EF

6++V4r!ctjtjd}tj}|j|d|j
|jdyNrtrDr)r=r/rrFrHrIr{rJrs   rtest_write_to_stringiozIOTest.test_write_to_stringiosM~~bff%<=>

6I
.*,CDr!ctj}tjd}|j	||j|j
jdyNs"<?xml version="1.0"?><site></site>r)r=r/rFrGrr{rrUr5rPr{s   rtest_read_from_bytesiozIOTest.test_read_from_bytesiosD~~jjBC

3++V4r!ctjtjd}tj}|j||j
|jdyNrtru)r=r/rrFrGrIr{rJrs   rtest_write_to_bytesiozIOTest.test_write_to_bytesiosG~~bff%<=>jjl

3)CDr!ceZdZy)IOTest.dummyNrr"r!rdummyrsr!rctjd}|j}|j|_tj}|j
||j|jjdyr)
rFrHrrr=r/rr{rrU)r5rreaderrPs    rtest_read_from_user_text_readerz&IOTest.test_read_from_user_text_readers[EFkk~~

6++V4r!c$tjtjd}tj}|j}|j|_|j
|d|j|jdyr)	r=r/rrFrHrrIr{rJ)r5rPrwriters    rtest_write_to_user_text_writerz%IOTest.test_write_to_user_text_writersc~~bff%<=>||

6I
.*,CDr!c6tjd}|j}|j|_tj}|j
||j|jjdtj}yr)
rFrGrrr=r/rr{rrU)r5r{rrPs    r!test_read_from_user_binary_readerz(IOTest.test_read_from_user_binary_readersgjjBChh~~

6++V4~~r!c tjtjd}tj}|j}|j|_|j
||j|jdyr)	r=r/rrFrGrrIr{rJr5rPr{rs    r test_write_to_user_binary_writerz'IOTest.test_write_to_user_binary_writers^~~bff%<=>jjlyy

6)CDr!cttjtjd}tj}|j}|j|_d|_|j|_|j
|d|j|jdjdy)Nz<site />cyrr"r"r!rrzBIOTest.test_write_to_user_binary_writer_with_bom.<locals>.<lambda>rr!rrz0<?xml version='1.0' encoding='utf-16'?>
<site />)r=r/rrFrGrrIseekabletellr{rJr)rs    r)test_write_to_user_binary_writer_with_bomz0IOTest.test_write_to_user_binary_writer_with_boms~~bff^45jjlyy&hh

6H
-%vh/	1r!c	Rtjd}|jtj|ddj	tj|d|jtj|ddj	tj|dy)Nz<tag>foo</tag>rDrErr!)r=rr{rr(r)rs  rtest_tostringlist_invariantz"IOTest.test_tostringlist_invariant
sy}}-.KKi(GGBOOD)45	7	
KKh'HHR__T845	7r!ctjd}|jtj|dd|jtj|ddd|jtj|dddy)Nz<tag>a<x />b<y></y>c</tag>rDz<tag>a<x />b<y />c</tag>T)short_empty_elementsFz<tag>a<x></x>b<y></y>c</tag>)r=rr{rrs  rtest_short_empty_elementsz IOTest.test_short_empty_elementssz}}9:KKi(&	(	
KKidKC&	(	
KKieKD*	,r!N)r@rArBr(rwr{r}rrrrrrrrrrrrrrrrr"r!rrnrnsvCJJC8	AA*C7">(5E5E

5E E
17
,r!rnc$eZdZdZdZdZdZy)ParseErrorTestcT|jtjtyrS)ryr=rXrrrs rrzParseErrorTest.test_subclass!sbmmo{;r!ct	tj|y#tj$r}|cYd}~Sd}~wwxYwrS)r=rrX)r5r?rs   r
_get_errorzParseErrorTest._get_error$s,	MM!}}	H	s7277c|j|jdjd|j|jdjd|j|jdjdy)Nr)rrz<tag>&foo;</tag>)rrzfoobar<)rrv)r{rpositionrs rtest_error_positionz"ParseErrorTest.test_error_position*s`/88&A);<EEvN3<<fEr!cddlmcmcm}|j	|jdj|j|jy)Nrr)	xml.parsers.expat.errorsparsersexpatrr{rcodecodesXML_ERROR_SYNTAX)r5ERRORSs  rtest_error_codezParseErrorTest.test_error_code/s911/44V445	7r!N)r@rArBrrrrr"r!rrr s<F
7r!rceZdZdZy)KeywordArgsTestctjd}|j|jdd|jdd|j|j	ddd|j	ddd|j|jdd|jdd|jt
|jddt
|jdd|jtjdjitjdtddtjdtddtjdtd	d
tjdddtjdtddddg}|D]E}|j|jd|j|jtddGtj|ddd
di}|j|jd
d|jtd5tjddddd|jtd5tjdddddy#1swY@xYw#1swYyxYw)Nz
<a>foo</a>r)pathrE)rrrE#r)rr)rx)r)rrrkey1value1zmust be dict, not strzI'm not a dict)r=rr{rrrr}rrzrxrhrUrdrr)r5relementsrrs     rtest_issue14818zKeywordArgsTest.test_issue148188sMFF< T*ST:	<Ct4dtL	N3-=	?ajjd34ajjcdjCD	F	
C//4JJsDce45JJs4SU#;J<JJsDcNuJ5JJsJ/JJsDce435JI
	AAQUUC(QXXt'?@	A]]8A;&(9K]
L6*H5

#
#I/F
G	.JJs,-	.

#
#I/F
G	5JJs#3J4	5	5	.	.	5	5sJ5K5J>K
N)r@rArBrr"r!rrr5s5r!rc"eZdZedZdZy)NoAcceleratorTestcFtturtjdy)Nzonly for the Python version)r=r\rSkipTestr^s rr`zNoAcceleratorTest.setUpClassZs 
T>##$ABBr!c|jtjjtj
|jtjjtj
yrS)ryr\rzrtypesFunctionTyperrs rtest_correct_import_pyETz*NoAcceleratorTest.test_correct_import_pyET`sD	
dll33U5G5GHdnn55u7I7IJr!N)r@rArBrr`rr"r!rrrYsCC
Kr!rceZdZdZy)BoolTestc~tjd}d}|jt|5t	|}ddd|jdtj
|d|jt|5t	|}ddd|jdy#1swYnxYw#1swY(xYw)Nz<a style="new"></a>zTesting an element's truth value will raise an exception in future versions.  Use specific 'len\(elem\)' or 'elem is not None' test instead.FrT)r=rrrboolrrd)r5rrrq
new_results     rtest_warningzBoolTest.test_warningjsMM/0
N	
"
"#5s
;	!WF		


fe$	

a

"
"#5s
;	!aJ	!

j$'			!	!sB'B3'B03B<N)r@rArBrr"r!rrris(r!rc.tj|fi|SrS)r\canonicalize)rrNs  rc14n_roundtripr}sS,G,,r!c"eZdZdZdZdZdZy)C14NTestNc:|jtdd|jtdd|jtdd|jtdd|jtd	d
|jtdd|jtd
d|jtdd|jtdd|jtdd|jtdd|jtddd}|jt||d}|jt||d}|jt||y)Nz<doc/>z<doc></doc>z<doc xmlns='uri'/>z<doc xmlns="uri"></doc>z <prefix:doc xmlns:prefix='uri'/>z,<prefix:doc xmlns:prefix="uri"></prefix:doc>z+<doc xmlns:prefix='uri'><prefix:bar/></doc>z7<doc><prefix:bar xmlns:prefix="uri"></prefix:bar></doc>z<elem xmlns:wsu='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' />z
<elem></elem>z*<doc>Hello, world!<!-- Comment 1 --></doc>z<doc>Hello, world!</doc>z<value>&#x32;</value>z<value>2</value>zG<compute><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></compute>zI<compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>zS<compute expr='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</compute>z{<compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>z7<norm attr=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z/<norm attr=" '    &#xD;&#xA;&#x9;   ' "></norm>z6<normNames attr='   A   &#x20;&#13;&#xa;&#9;   B   '/>z=<normNames attr="   A    &#xD;&#xA;&#x9;   B   "></normNames>z7<normId id=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z1<normId id=" '    &#xD;&#xA;&#x9;   ' "></normId>z5<X xmlns="http://nps/a"><Y targets="abc,xyz"></Y></X>zJ<X xmlns="http://nps/a"><Y xmlns="http://nsp/b" targets="abc,xyz"></Y></X>zN<X xmlns="http://nps/a"><Y xmlns:b="http://nsp/b" b:targets="abc,xyz"></Y></X>)r{rr5rs  rtest_simple_roundtripzC14NTest.test_simple_roundtrips1=A(<=)	+(JK:	<(UVE	G)MN		
(TU&	((?@	 (qrW	Y)BC
J	K(ab?	A(`aK	M(abA	CF,c2Z,c2^,c2r!c"tjd}|jt|dd|jt|ddgd|jt|ddg	d
|jt|ddgdgd|jt|dd
dg	d|jt|d
dgd|jt|dddg	d|jt|ddgdy)Nz        <root xmlns:x="http://example.com/x">
            <a x:attr="attrx">
                <b>abtext</b>
            </a>
            <b>btext</b>
            <c>
                <x:d>dtext</x:d>
            </c>
        </root>
        T)
strip_textz<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}attr)r
exclude_attrszc<root><a><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}d)rexclude_tagszb<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c></c></root>)rrrz4<root><a><b>abtext</b></a><b>btext</b><c></c></root>rrzC<root><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>)rza<root>
    
    
    <c>
        <x:d xmlns:x="http://example.com/x">dtext</x:d>
    </c>
</root>zI<root><a xmlns:x="http://example.com/x" x:attr="attrx"></a><c></c></root>zu<root>
    <a xmlns:x="http://example.com/x" x:attr="attrx">
        
    </a>
    
    <c>
        
    </c>
</root>)rrr{rrs  rtest_c14n_exclusionzC14NTest.test_c14n_exclusionsAoo


	
340
		
34@\?]^
		
34?X>YZ
		
34@\?])B(C
E
		
34sCjI
	
	
3c3Z8
		
34?XZ]>^_
		
3.G-MN

	r!c	tdd}ttjj|}ttj|Dcgc]}|jdr|dd}}|Dcgc]}|jdr|}}|Dcic]}|jdrv|tj||dzjDcic]?}|jjdd	|jxsd
j|fAc}}}}|Dcic]W}||Dcgc]H}|jd|dr1|j!dd
d	|vr|||j!dd
d	fJc}Y}	}}|j#dt%|	j'D
cgc]}
|
D]}|
c}}
d.d}|	j)D]\}}
|
D]\}}
||
ddk(}||
ddk(}||
ddk(}d|
vr|
dd
j+dDcgc](}d|j-dd|j-d*}}|
dd
j+dDcgc](}d|j-dd|j-d*}}ndx}}dj	dt|
j)D}|j/|d|d5|dk(r|s|j1d ||d!k(r|s|j1d |d|
vr,|
dd
j3d"	|j1d#|||dz}|d$k(rqt5|d%d&5}t5|d&5}t7j8|j;j=d'|j;}ddddddtj?||||||(}t5||dzd)d*+5}|j;}|d,k(r$|j=d-d
}|j=d-d
}ddd|j#|dddycc}wcc}wcc}wcc}}wcc}wcc}}wcc}}
wcc}wcc}w#1swYxYw#1swYxYw#1swYrxYw#1swYxYw)/Nzc14n-20rrz.xmlrwinc14n}rrEout_r,rc0|j||dfdS)Nr"r)rj)configoption_namers   r
get_optionz+C14NTest.test_xml_c14n2.<locals>.get_option"s::kGR=9!<<r!IgnoreCommentstrue
TrimTextNodes
PrefixRewrite
sequential
QNameAwarez/{http://www.w3.org/2010/xml-c14n2}QualifiedAttr{NSNamez){http://www.w3.org/2010/xml-c14n2}Element,c3jK|]+\}\}}|d|xsdjd|D-yw)=rc3XK|]"}|jjdd$yw)rrN)rUsplit).0rs  r	<genexpr>z4C14NTest.test_xml_c14n2.<locals>.<genexpr>.<genexpr>=s"/WC0@0D/Ws(*N)r()rrlrrs    rrz*C14NTest.test_xml_c14n2.<locals>.<genexpr><sA(//uhfAeWsxx/Wh/W'WXY(s13()
inNsRedeclz2Redeclared namespace handling is not supported in inNsSuperfluousz.{http://www.w3.org/2010/xml-c14n2}XPathElementz2QName rewriting in XPath text is not supported in inC14N5z	world.txtrNs&ent2;)	from_file
with_commentsrrewrite_prefixesqname_aware_tagsqname_aware_attrsrrrinC14N3z attr="default"rS) r	rr'rr(rlistdirendswith
startswithr=rrrUrrwryrsplitr{r|valuesrrrjrrnrrrFrGrr&r)r5datadir	full_pathfilenamefilesinput_filesoptionconfigs
input_filetestsoutput_filesoutput_filerr
keep_commentsrrrqattrsqtagsconfig_descrrentity_filerwrs                         rtest_xml_c14n2zC14NTest.test_xml_c14n2s9];BGGLL'2	/5bjj6I/J/8%%f-#2//&+
!""4(


"

""6*

!hhy':V'CDLLN

  %b)V[[->B,E,E,G+PP


"*


 %&&j\';<OOC+B/7:78??3#:2#>?@


	
S,1LLN"-(+"-
"-"-.	/	=).
<	5$J'3;
5#V *,!.17!8
'O-067
#-O$-0<$= 6)#)"6q"9"A"AM#ORVVD\N"RVVF^,<=F#)"6q"9"A"AG#IRVVD\N"RVVF^,<=E&*)EF #xx(39&,,.3I( 
\\[M<."BC 5!\1:J

PQ\P]^`!%66?O

PQ\P]^`#v-&2Fq2I2N2NL3NUY3Z

PQ\P]^`"*v"56A!Y.!)K"8$?`;!%a`!$&JJqvvx/?/?	;K[K[K]/^$_``??"#&3#-)9).&+JDif(<=sVTGXY#$668%2'/'7'78I2'NH#'<<0A2#FDG$$Xt4A 5 57;
5<	5E/



"- 
<````GG5 5 5sQ/5Q4AQ>AQ9Q>,
R	6A
RR	/R0-R8-R2B	S;
R+	AR
R+	:S:R7	S9Q>R	R($R+	+R4
0S7S
<SS
)r@rArBmaxDiffrrr!r"r!rrrsG
&3PG`b5r!rctddga|t}|ad}tj|ddlm}tjj}|j}tj|j|tj|j|j}tjt|d||j|_ttdrWtjtj tj"}tjtjg|yy)	Nr8r9)blockedcdxaayrS)r=r\r"r!rcleanupzsetUpModule.<locals>.cleanuprsTr!rr2r_set_factories)r
r\r=raddModuleCleanupr4r3rB_namespace_maprr(rrsetattrrr'rer)moduler&r3r~
nsmap_copyr(
old_factoriess       rsetUpModuler.es6(6'79D
~
B
g&&!!00EJellJ7ekk*##Jg{HjI#*Kr#$))"**bee<
!!""3"3DmD%r!__main__)TrDrS)Trrr+rFrrr'rdrcrrrrrrrrrrtest.supportrrr	r
rrtest.support.import_helperr
test.support.os_helperrr\r=rr)UnicodeEncodeErrorrrrxrrmr7r3r3r4rr#r+TestCaser-rQrWrZrrrformatescaperrrrrrr__hash__r r#rGrgrrrr/r6rnrrrrrrr.r@mainr"r!r<module>r9s			

%"(CC:)	,}=A'"_]C3MJ

"
#(4
L""
L&==@WPh''WPt$p?))p?l	!F;4;;~t,-
		'	"#XX			p78$$p7l]Jx  ]JHB4(9(9B4JT_h&7&7Tn# #||S,,?(*;*;?D5.(++5.pv:h''v:r](h''](@t.h''t.nQ:H%%Q:hE**ESI**SIlC,X

C,L7X&&7* 5h'' 5HK))K (x  ((-`5x  `5H"EJzHMMOBA
(

?
@@AsMM'