[lasem] tests: import SVG 1.2 tiny test suite.
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [lasem] tests: import SVG 1.2 tiny test suite.
- Date: Thu, 19 Aug 2010 16:53:04 +0000 (UTC)
commit 0f721b27997c6c6156fb75e8c928a0489bd04541
Author: Emmanuel Pacaud <emmanuel gnome org>
Date: Tue Aug 17 15:00:29 2010 +0200
tests: import SVG 1.2 tiny test suite.
test/svg/svg1.2/images/1pixelred.png | Bin 0 -> 795 bytes
test/svg/svg1.2/images/1pixelwhite.png | Bin 0 -> 900 bytes
test/svg/svg1.2/images/20x20.png | Bin 0 -> 1038 bytes
test/svg/svg1.2/images/CNN.3gp | Bin 0 -> 6458937 bytes
test/svg/svg1.2/images/DisplaceChecker.png | Bin 0 -> 2470 bytes
.../svg/svg1.2/images/SVG-1.1-monolithic-fixed.dtd | 1622 +++++++++++++++++
test/svg/svg1.2/images/SVGFreeSans-ISO-8859-1.svg | 1305 ++++++++++++++
test/svg/svg1.2/images/SVGFreeSans.svg | 568 ++++++
test/svg/svg1.2/images/SVGImageTest.svg | 27 +
test/svg/svg1.2/images/TraitAccess.common.es | 672 +++++++
test/svg/svg1.2/images/advice.wav | Bin 0 -> 1678218 bytes
test/svg/svg1.2/images/animation-add-BE-09.svg | 201 +++
test/svg/svg1.2/images/animation-extRef-image1.svg | 18 +
test/svg/svg1.2/images/animation-extRef-image2.svg | 16 +
test/svg/svg1.2/images/animation-extRef-image3.svg | 14 +
test/svg/svg1.2/images/animation-script.svg | 34 +
test/svg/svg1.2/images/animation-time-scale.svg | 42 +
test/svg/svg1.2/images/animation1.svg | 53 +
test/svg/svg1.2/images/animation2.svg | 29 +
test/svg/svg1.2/images/animation3none.svg | 35 +
test/svg/svg1.2/images/animation4none.svg | 25 +
test/svg/svg1.2/images/animation5none.svg | 40 +
.../images/animationresource-activecircle1.svg | 15 +
.../images/animationresource-activecircle2.svg | 15 +
test/svg/svg1.2/images/animationresource-anim1.svg | 16 +
.../svg1.2/images/animationresource-gradrect2.svg | 15 +
.../svg1.2/images/animationresource-myscale.svg | 23 +
.../svg1.2/images/animationresource-userect.svg | 22 +
test/svg/svg1.2/images/ball.svg | 33 +
test/svg/svg1.2/images/beep.wav | Bin 0 -> 88524 bytes
test/svg/svg1.2/images/bluesquidj.png | Bin 0 -> 37497 bytes
test/svg/svg1.2/images/boing_x.wav | Bin 0 -> 15436 bytes
test/svg/svg1.2/images/bread.png | Bin 0 -> 56576 bytes
test/svg/svg1.2/images/bullet-small.png | Bin 0 -> 973 bytes
test/svg/svg1.2/images/bullet-white.png | Bin 0 -> 971 bytes
test/svg/svg1.2/images/bullet.png | Bin 0 -> 972 bytes
test/svg/svg1.2/images/bumpMap.png | Bin 0 -> 1998 bytes
test/svg/svg1.2/images/bumpMap2.png | Bin 0 -> 657 bytes
test/svg/svg1.2/images/clock.mp4 | Bin 0 -> 12627607 bytes
test/svg/svg1.2/images/cloud-ps411q4app.jpg | Bin 0 -> 32129 bytes
test/svg/svg1.2/images/cloud411q25s.jpg | Bin 0 -> 13245 bytes
test/svg/svg1.2/images/cloud411q65float.jpg | Bin 0 -> 26723 bytes
test/svg/svg1.2/images/cloud411q75o.jpg | Bin 0 -> 32210 bytes
test/svg/svg1.2/images/cloud411q75p.jpg | Bin 0 -> 31369 bytes
test/svg/svg1.2/images/cloud411q75s.jpg | Bin 0 -> 32903 bytes
test/svg/svg1.2/images/cloud444q65o.jpg | Bin 0 -> 32527 bytes
test/svg/svg1.2/images/cloudgsq75s.jpg | Bin 0 -> 29261 bytes
test/svg/svg1.2/images/cloudoddq65o.jpg | Bin 0 -> 15697 bytes
test/svg/svg1.2/images/cloudqllo.jpg | Bin 0 -> 369472 bytes
test/svg/svg1.2/images/colorprof.png | Bin 0 -> 705 bytes
test/svg/svg1.2/images/convolveImage.png | Bin 0 -> 9281 bytes
test/svg/svg1.2/images/coords-pAR-t-xMaxYMax.svg | 20 +
test/svg/svg1.2/images/coords-pAR-t-xMidYMid.svg | 20 +
test/svg/svg1.2/images/coords-pAR-t-xMinYMin.svg | 20 +
test/svg/svg1.2/images/coords-units-01-f.png | Bin 0 -> 29842 bytes
test/svg/svg1.2/images/coords-units-01-f.svg | 193 ++
.../images/copyright-documents-19990405.html | 89 +
test/svg/svg1.2/images/diagarrow.png | Bin 0 -> 997 bytes
test/svg/svg1.2/images/disco.jpg | Bin 0 -> 3506 bytes
test/svg/svg1.2/images/dogandball.3gp | Bin 0 -> 134050 bytes
test/svg/svg1.2/images/dogandball.jpg | Bin 0 -> 25343 bytes
test/svg/svg1.2/images/dogandball.mov | Bin 0 -> 770987 bytes
test/svg/svg1.2/images/duckfeeding.3gp | Bin 0 -> 141911 bytes
test/svg/svg1.2/images/duckfeeding.mov | Bin 0 -> 794504 bytes
test/svg/svg1.2/images/excuse_me.wav | Bin 0 -> 92206 bytes
test/svg/svg1.2/images/ext-TestComic.svg | 21 +
test/svg/svg1.2/images/externalscript.js | 1 +
test/svg/svg1.2/images/fail.svg | 35 +
test/svg/svg1.2/images/filters-blend-01-f.svg | 128 ++
test/svg/svg1.2/images/filters-color-01-f.svg | 121 ++
test/svg/svg1.2/images/filters-composite-01-f.svg | 188 ++
test/svg/svg1.2/images/filters-comptran-01-f.svg | 132 ++
.../images/filters-conv-01-f.includeimage.png | Bin 0 -> 9281 bytes
test/svg/svg1.2/images/filters-conv-01-f.svg | 121 ++
test/svg/svg1.2/images/filters-diffuse-01-f.svg | 172 ++
test/svg/svg1.2/images/filters-example-01-f.svg | 120 ++
test/svg/svg1.2/images/focus-resource.svg | 22 +
test/svg/svg1.2/images/galpha.png | Bin 0 -> 12435 bytes
test/svg/svg1.2/images/gam030.png | Bin 0 -> 213 bytes
test/svg/svg1.2/images/gam030b.png | Bin 0 -> 1029 bytes
test/svg/svg1.2/images/gam045.png | Bin 0 -> 216 bytes
test/svg/svg1.2/images/gam045b.png | Bin 0 -> 1059 bytes
test/svg/svg1.2/images/gam056.png | Bin 0 -> 216 bytes
test/svg/svg1.2/images/gam056b.png | Bin 0 -> 1059 bytes
test/svg/svg1.2/images/gam100.png | Bin 0 -> 205 bytes
test/svg/svg1.2/images/gam100b.png | Bin 0 -> 1044 bytes
test/svg/svg1.2/images/gam200.png | Bin 0 -> 187 bytes
test/svg/svg1.2/images/gam200b.png | Bin 0 -> 1019 bytes
test/svg/svg1.2/images/ghost.svg | 105 ++
test/svg/svg1.2/images/greentopbutton.jpg | Bin 0 -> 1111 bytes
test/svg/svg1.2/images/greentopbutton1.jpg | Bin 0 -> 1111 bytes
test/svg/svg1.2/images/greentopbutton2.jpg | Bin 0 -> 1111 bytes
test/svg/svg1.2/images/greentopbutton3.jpg | Bin 0 -> 1111 bytes
test/svg/svg1.2/images/greentopbutton4.jpg | Bin 0 -> 1111 bytes
test/svg/svg1.2/images/heroesLanding.3gp | Bin 0 -> 836424 bytes
test/svg/svg1.2/images/image.png | Bin 0 -> 1884 bytes
test/svg/svg1.2/images/image1.jpg | Bin 0 -> 34183 bytes
test/svg/svg1.2/images/image1.png | Bin 0 -> 394416 bytes
test/svg/svg1.2/images/image1_b.png | Bin 0 -> 12586 bytes
test/svg/svg1.2/images/image2/bread2.png | Bin 0 -> 56576 bytes
test/svg/svg1.2/images/image2/xlink1.svg | 9 +
test/svg/svg1.2/images/image2_b.jpg | Bin 0 -> 6643 bytes
test/svg/svg1.2/images/image2_b.png | Bin 0 -> 7412 bytes
test/svg/svg1.2/images/interact-dom-01-f.svg | 148 ++
.../svg/svg1.2/images/interact-order-02-t-targ.svg | 70 +
.../svg/svg1.2/images/interact-order-03-t-targ.svg | 71 +
test/svg/svg1.2/images/leftarrow.png | Bin 0 -> 124 bytes
test/svg/svg1.2/images/linking-uri-01-b.svg | 88 +
test/svg/svg1.2/images/linking-uri-01-f-1st.png | Bin 0 -> 8183 bytes
test/svg/svg1.2/images/linking-uri-01-f-2nd.png | Bin 0 -> 34164 bytes
test/svg/svg1.2/images/linking-uri-01-f-3rd.png | Bin 0 -> 34164 bytes
test/svg/svg1.2/images/linking-uri-01-f-4th.png | Bin 0 -> 13626 bytes
test/svg/svg1.2/images/linking-uri-01-f-start.png | Bin 0 -> 34164 bytes
test/svg/svg1.2/images/linking-uri-03-f-1st.png | Bin 0 -> 28465 bytes
test/svg/svg1.2/images/linking-uri-03-f-start.png | Bin 0 -> 26549 bytes
test/svg/svg1.2/images/linkingCircle-f.svg | 32 +
test/svg/svg1.2/images/linkingToc-t.svg | 63 +
test/svg/svg1.2/images/magnify.png | Bin 0 -> 268 bytes
test/svg/svg1.2/images/makealpha.svg | 34 +
test/svg/svg1.2/images/myimage.jpg | Bin 0 -> 4402 bytes
test/svg/svg1.2/images/nav_bullet.png | Bin 0 -> 264 bytes
test/svg/svg1.2/images/nav_down.png | Bin 0 -> 252 bytes
test/svg/svg1.2/images/nav_downleft.png | Bin 0 -> 170 bytes
test/svg/svg1.2/images/nav_downright.png | Bin 0 -> 169 bytes
test/svg/svg1.2/images/nav_frame.png | Bin 0 -> 155 bytes
test/svg/svg1.2/images/nav_left.png | Bin 0 -> 166 bytes
test/svg/svg1.2/images/nav_noframe.png | Bin 0 -> 270 bytes
test/svg/svg1.2/images/nav_right.png | Bin 0 -> 168 bytes
test/svg/svg1.2/images/nav_svg.png | Bin 0 -> 155 bytes
test/svg/svg1.2/images/nav_up.png | Bin 0 -> 173 bytes
test/svg/svg1.2/images/nav_upleft.png | Bin 0 -> 172 bytes
test/svg/svg1.2/images/nav_upright.png | Bin 0 -> 173 bytes
test/svg/svg1.2/images/pacman.wav | Bin 0 -> 95660 bytes
test/svg/svg1.2/images/paths-data-01-f.png | Bin 0 -> 36446 bytes
test/svg/svg1.2/images/paths-data-01-f.svg | 169 ++
test/svg/svg1.2/images/paths-data-02-f.png | Bin 0 -> 42041 bytes
test/svg/svg1.2/images/paths-data-02-f.svg | 143 ++
test/svg/svg1.2/images/paths-data-03-f.png | Bin 0 -> 38026 bytes
test/svg/svg1.2/images/paths-data-03-f.svg | 137 ++
test/svg/svg1.2/images/paths-data-04-f.png | Bin 0 -> 30546 bytes
test/svg/svg1.2/images/paths-data-04-f.svg | 171 ++
test/svg/svg1.2/images/pinksquidj.png | Bin 0 -> 31090 bytes
test/svg/svg1.2/images/plant.jpg | Bin 0 -> 145806 bytes
test/svg/svg1.2/images/pref_image0.jpg | Bin 0 -> 63849 bytes
test/svg/svg1.2/images/pref_image1.jpg | Bin 0 -> 64670 bytes
test/svg/svg1.2/images/pref_image2.jpg | Bin 0 -> 66110 bytes
test/svg/svg1.2/images/pref_image3.jpg | Bin 0 -> 67683 bytes
test/svg/svg1.2/images/pref_image4.jpg | Bin 0 -> 68979 bytes
test/svg/svg1.2/images/pref_image5.jpg | Bin 0 -> 70114 bytes
test/svg/svg1.2/images/pref_image6.jpg | Bin 0 -> 71142 bytes
test/svg/svg1.2/images/pref_image7.jpg | Bin 0 -> 72444 bytes
test/svg/svg1.2/images/pref_image8.jpg | Bin 0 -> 74023 bytes
test/svg/svg1.2/images/pref_image9.jpg | Bin 0 -> 75214 bytes
test/svg/svg1.2/images/purplesquidj.png | Bin 0 -> 48672 bytes
test/svg/svg1.2/images/rects.svg | 11 +
test/svg/svg1.2/images/rects_b.svg | 6 +
test/svg/svg1.2/images/resources.svg | 10 +
test/svg/svg1.2/images/rgbalpha.png | Bin 0 -> 13717 bytes
test/svg/svg1.2/images/rightarrow.png | Bin 0 -> 963 bytes
test/svg/svg1.2/images/rotate20.png | Bin 0 -> 1434 bytes
test/svg/svg1.2/images/script1.js | 1 +
test/svg/svg1.2/images/script10.js | 1 +
test/svg/svg1.2/images/script2.js | 1 +
test/svg/svg1.2/images/script3.js | 1 +
test/svg/svg1.2/images/script4.js | 1 +
test/svg/svg1.2/images/script5.js | 1 +
test/svg/svg1.2/images/script6.js | 1 +
test/svg/svg1.2/images/script7.js | 1 +
test/svg/svg1.2/images/script8.js | 1 +
test/svg/svg1.2/images/script9.js | 1 +
test/svg/svg1.2/images/scriptresource.svg | 13 +
test/svg/svg1.2/images/shapes-ellipse-01-b.svg | 59 +
test/svg/svg1.2/images/shapes-ellipse-01-f.png | Bin 0 -> 31126 bytes
test/svg/svg1.2/images/shapes-ellipse-01-f.svg | 111 ++
test/svg/svg1.2/images/shapes-rect-01-b.svg | 60 +
test/svg/svg1.2/images/shapes-rect-01-f.png | Bin 0 -> 26453 bytes
test/svg/svg1.2/images/shapes-rect-01-f.svg | 113 ++
test/svg/svg1.2/images/sign.png | Bin 0 -> 10647 bytes
test/svg/svg1.2/images/skier.3gp | Bin 0 -> 159700 bytes
test/svg/svg1.2/images/skier.jpg | Bin 0 -> 107590 bytes
test/svg/svg1.2/images/smiley.png | Bin 0 -> 2856 bytes
test/svg/svg1.2/images/smiley.svg | 9 +
test/svg/svg1.2/images/sphere.png | Bin 0 -> 5923 bytes
test/svg/svg1.2/images/stefan_252_tRNS_opti.png | Bin 0 -> 12777 bytes
test/svg/svg1.2/images/struct-frag-01-B.svg | 55 +
test/svg/svg1.2/images/struct-image-01.jpg | Bin 0 -> 4751 bytes
test/svg/svg1.2/images/struct-image-01.png | Bin 0 -> 63238 bytes
test/svg/svg1.2/images/struct-image-02.jpg | Bin 0 -> 3779 bytes
test/svg/svg1.2/images/struct-image-02.png | Bin 0 -> 35887 bytes
test/svg/svg1.2/images/struct-image-11-b.svg | 8 +
test/svg/svg1.2/images/struct-image-12-b-cycle.svg | 9 +
test/svg/svg1.2/images/struct-symbol-01.png | Bin 0 -> 71497 bytes
test/svg/svg1.2/images/struct-use-08-t-cycles.svg | 8 +
test/svg/svg1.2/images/struct-use-206-resource.svg | 8 +
test/svg/svg1.2/images/struct-use-209-t-cycles.svg | 9 +
test/svg/svg1.2/images/success.svg | 36 +
test/svg/svg1.2/images/svgRef1.svg | 49 +
test/svg/svg1.2/images/svgRef12.svg | 40 +
test/svg/svg1.2/images/svgRef13.svg | 49 +
test/svg/svg1.2/images/svgRef4.css | 4 +
test/svg/svg1.2/images/svgRef4.svg | 41 +
test/svg/svg1.2/images/svglib.svg | 1058 +++++++++++
test/svg/svg1.2/images/svglib2.svg | 16 +
test/svg/svg1.2/images/svglib3.svg | 12 +
test/svg/svg1.2/images/text-align-01-f.svg | 95 +
test/svg/svg1.2/images/text-align-02-f.svg | 146 ++
test/svg/svg1.2/images/text-align-03-f.svg | 96 +
test/svg/svg1.2/images/text-altglyph-01-f.svg | 202 +++
test/svg/svg1.2/images/text-extTref-BE-18-targ.svg | 58 +
test/svg/svg1.2/images/text-intro-01-f.svg | 106 ++
test/svg/svg1.2/images/text-tref-01-f.svg | 160 ++
test/svg/svg1.2/images/text-ws-01-f.svg | 130 ++
test/svg/svg1.2/images/timed-lyrics.svg | 29 +
test/svg/svg1.2/images/timed-lyrics2.svg | 33 +
test/svg/svg1.2/images/toc-sv.svg | 114 ++
test/svg/svg1.2/images/toc-svcmp.svg | 114 ++
test/svg/svg1.2/images/uparrow.png | Bin 0 -> 1232 bytes
test/svg/svg1.2/images/viewport-fill-img.png | Bin 0 -> 15273 bytes
test/svg/svg1.2/images/welcome.wav | Bin 0 -> 94012 bytes
test/svg/svg1.2/images/xmltree.xml | 4 +
test/svg/svg1.2/svg/animate-elem-02-t.png | Bin 0 -> 7552 bytes
test/svg/svg1.2/svg/animate-elem-02-t.svg | 83 +
test/svg/svg1.2/svg/animate-elem-03-t.png | Bin 0 -> 21522 bytes
test/svg/svg1.2/svg/animate-elem-03-t.svg | 75 +
test/svg/svg1.2/svg/animate-elem-04-t.png | Bin 0 -> 14968 bytes
test/svg/svg1.2/svg/animate-elem-04-t.svg | 57 +
test/svg/svg1.2/svg/animate-elem-05-t.png | Bin 0 -> 14381 bytes
test/svg/svg1.2/svg/animate-elem-05-t.svg | 59 +
test/svg/svg1.2/svg/animate-elem-06-t.png | Bin 0 -> 15291 bytes
test/svg/svg1.2/svg/animate-elem-06-t.svg | 57 +
test/svg/svg1.2/svg/animate-elem-07-t.png | Bin 0 -> 15152 bytes
test/svg/svg1.2/svg/animate-elem-07-t.svg | 59 +
test/svg/svg1.2/svg/animate-elem-08-t.png | Bin 0 -> 12275 bytes
test/svg/svg1.2/svg/animate-elem-08-t.svg | 66 +
test/svg/svg1.2/svg/animate-elem-09-t.png | Bin 0 -> 11074 bytes
test/svg/svg1.2/svg/animate-elem-09-t.svg | 85 +
test/svg/svg1.2/svg/animate-elem-10-t.png | Bin 0 -> 11582 bytes
test/svg/svg1.2/svg/animate-elem-10-t.svg | 81 +
test/svg/svg1.2/svg/animate-elem-11-t.png | Bin 0 -> 11578 bytes
test/svg/svg1.2/svg/animate-elem-11-t.svg | 77 +
test/svg/svg1.2/svg/animate-elem-12-t.png | Bin 0 -> 11590 bytes
test/svg/svg1.2/svg/animate-elem-12-t.svg | 80 +
test/svg/svg1.2/svg/animate-elem-13-t.png | Bin 0 -> 13848 bytes
test/svg/svg1.2/svg/animate-elem-13-t.svg | 88 +
test/svg/svg1.2/svg/animate-elem-14-t.png | Bin 0 -> 17548 bytes
test/svg/svg1.2/svg/animate-elem-14-t.svg | 60 +
test/svg/svg1.2/svg/animate-elem-15-t.png | Bin 0 -> 17249 bytes
test/svg/svg1.2/svg/animate-elem-15-t.svg | 67 +
test/svg/svg1.2/svg/animate-elem-17-t.png | Bin 0 -> 16828 bytes
test/svg/svg1.2/svg/animate-elem-17-t.svg | 68 +
test/svg/svg1.2/svg/animate-elem-19-t.png | Bin 0 -> 16486 bytes
test/svg/svg1.2/svg/animate-elem-19-t.svg | 64 +
test/svg/svg1.2/svg/animate-elem-20-t.png | Bin 0 -> 8466 bytes
test/svg/svg1.2/svg/animate-elem-20-t.svg | 74 +
test/svg/svg1.2/svg/animate-elem-201-t.png | Bin 0 -> 43678 bytes
test/svg/svg1.2/svg/animate-elem-201-t.svg | 134 ++
test/svg/svg1.2/svg/animate-elem-202-t.png | Bin 0 -> 17481 bytes
test/svg/svg1.2/svg/animate-elem-202-t.svg | 126 ++
test/svg/svg1.2/svg/animate-elem-203-t.png | Bin 0 -> 24943 bytes
test/svg/svg1.2/svg/animate-elem-203-t.svg | 133 ++
test/svg/svg1.2/svg/animate-elem-205-t.png | Bin 0 -> 27729 bytes
test/svg/svg1.2/svg/animate-elem-205-t.svg | 348 ++++
test/svg/svg1.2/svg/animate-elem-206-t.png | Bin 0 -> 40094 bytes
test/svg/svg1.2/svg/animate-elem-206-t.svg | 151 ++
test/svg/svg1.2/svg/animate-elem-207-t.png | Bin 0 -> 26326 bytes
test/svg/svg1.2/svg/animate-elem-207-t.svg | 319 ++++
test/svg/svg1.2/svg/animate-elem-209-t.png | Bin 0 -> 13765 bytes
test/svg/svg1.2/svg/animate-elem-209-t.svg | 295 +++
test/svg/svg1.2/svg/animate-elem-21-t.png | Bin 0 -> 17216 bytes
test/svg/svg1.2/svg/animate-elem-21-t.svg | 84 +
test/svg/svg1.2/svg/animate-elem-210-t.png | Bin 0 -> 36331 bytes
test/svg/svg1.2/svg/animate-elem-210-t.svg | 337 ++++
test/svg/svg1.2/svg/animate-elem-211-t.png | Bin 0 -> 30539 bytes
test/svg/svg1.2/svg/animate-elem-211-t.svg | 287 +++
test/svg/svg1.2/svg/animate-elem-212-t.png | Bin 0 -> 34394 bytes
test/svg/svg1.2/svg/animate-elem-212-t.svg | 307 ++++
test/svg/svg1.2/svg/animate-elem-213-t.png | Bin 0 -> 34453 bytes
test/svg/svg1.2/svg/animate-elem-213-t.svg | 309 ++++
test/svg/svg1.2/svg/animate-elem-214-t.png | Bin 0 -> 33230 bytes
test/svg/svg1.2/svg/animate-elem-214-t.svg | 306 ++++
test/svg/svg1.2/svg/animate-elem-215-t.png | Bin 0 -> 34987 bytes
test/svg/svg1.2/svg/animate-elem-215-t.svg | 299 ++++
test/svg/svg1.2/svg/animate-elem-216-t.png | Bin 0 -> 36245 bytes
test/svg/svg1.2/svg/animate-elem-216-t.svg | 318 ++++
test/svg/svg1.2/svg/animate-elem-217-t.png | Bin 0 -> 33637 bytes
test/svg/svg1.2/svg/animate-elem-217-t.svg | 318 ++++
test/svg/svg1.2/svg/animate-elem-218-t.png | Bin 0 -> 26065 bytes
test/svg/svg1.2/svg/animate-elem-218-t.svg | 113 ++
test/svg/svg1.2/svg/animate-elem-219-t.png | Bin 0 -> 9537 bytes
test/svg/svg1.2/svg/animate-elem-219-t.svg | 170 ++
test/svg/svg1.2/svg/animate-elem-22-t.png | Bin 0 -> 9813 bytes
test/svg/svg1.2/svg/animate-elem-22-t.svg | 61 +
test/svg/svg1.2/svg/animate-elem-221-t.png | Bin 0 -> 14667 bytes
test/svg/svg1.2/svg/animate-elem-221-t.svg | 98 +
test/svg/svg1.2/svg/animate-elem-222-t.png | Bin 0 -> 14510 bytes
test/svg/svg1.2/svg/animate-elem-222-t.svg | 140 ++
test/svg/svg1.2/svg/animate-elem-225-t.png | Bin 0 -> 4576 bytes
test/svg/svg1.2/svg/animate-elem-225-t.svg | 64 +
test/svg/svg1.2/svg/animate-elem-226-t.png | Bin 0 -> 125207 bytes
test/svg/svg1.2/svg/animate-elem-226-t.svg | 116 ++
test/svg/svg1.2/svg/animate-elem-227-t.png | Bin 0 -> 15432 bytes
test/svg/svg1.2/svg/animate-elem-227-t.svg | 87 +
test/svg/svg1.2/svg/animate-elem-23-t.png | Bin 0 -> 10803 bytes
test/svg/svg1.2/svg/animate-elem-23-t.svg | 66 +
test/svg/svg1.2/svg/animate-elem-24-t.png | Bin 0 -> 18851 bytes
test/svg/svg1.2/svg/animate-elem-24-t.svg | 86 +
test/svg/svg1.2/svg/animate-elem-25-t.png | Bin 0 -> 10500 bytes
test/svg/svg1.2/svg/animate-elem-25-t.svg | 65 +
test/svg/svg1.2/svg/animate-elem-26-t.png | Bin 0 -> 30861 bytes
test/svg/svg1.2/svg/animate-elem-26-t.svg | 63 +
test/svg/svg1.2/svg/animate-elem-27-t.png | Bin 0 -> 10321 bytes
test/svg/svg1.2/svg/animate-elem-27-t.svg | 67 +
test/svg/svg1.2/svg/animate-elem-28-t.png | Bin 0 -> 18327 bytes
test/svg/svg1.2/svg/animate-elem-28-t.svg | 54 +
test/svg/svg1.2/svg/animate-elem-29-t.png | Bin 0 -> 17216 bytes
test/svg/svg1.2/svg/animate-elem-29-t.svg | 79 +
test/svg/svg1.2/svg/animate-elem-30-t.png | Bin 0 -> 19999 bytes
test/svg/svg1.2/svg/animate-elem-30-t.svg | 132 ++
test/svg/svg1.2/svg/animate-elem-31-t.png | Bin 0 -> 24476 bytes
test/svg/svg1.2/svg/animate-elem-31-t.svg | 114 ++
test/svg/svg1.2/svg/animate-elem-32-t.png | Bin 0 -> 7172 bytes
test/svg/svg1.2/svg/animate-elem-32-t.svg | 134 ++
test/svg/svg1.2/svg/animate-elem-33-t.png | Bin 0 -> 20539 bytes
test/svg/svg1.2/svg/animate-elem-33-t.svg | 134 ++
test/svg/svg1.2/svg/animate-elem-34-t.png | Bin 0 -> 28309 bytes
test/svg/svg1.2/svg/animate-elem-34-t.svg | 93 +
test/svg/svg1.2/svg/animate-elem-35-t.png | Bin 0 -> 34552 bytes
test/svg/svg1.2/svg/animate-elem-35-t.svg | 142 ++
test/svg/svg1.2/svg/animate-elem-36-t.png | Bin 0 -> 28870 bytes
test/svg/svg1.2/svg/animate-elem-36-t.svg | 118 ++
test/svg/svg1.2/svg/animate-elem-37-t.png | Bin 0 -> 23705 bytes
test/svg/svg1.2/svg/animate-elem-37-t.svg | 84 +
test/svg/svg1.2/svg/animate-elem-38-t.png | Bin 0 -> 30130 bytes
test/svg/svg1.2/svg/animate-elem-38-t.svg | 81 +
test/svg/svg1.2/svg/animate-elem-39-t.png | Bin 0 -> 33751 bytes
test/svg/svg1.2/svg/animate-elem-39-t.svg | 120 ++
test/svg/svg1.2/svg/animate-elem-40-t.png | Bin 0 -> 32839 bytes
test/svg/svg1.2/svg/animate-elem-40-t.svg | 175 ++
test/svg/svg1.2/svg/animate-elem-41-t.png | Bin 0 -> 17118 bytes
test/svg/svg1.2/svg/animate-elem-41-t.svg | 360 ++++
test/svg/svg1.2/svg/animate-elem-44-t.png | Bin 0 -> 31774 bytes
test/svg/svg1.2/svg/animate-elem-44-t.svg | 68 +
test/svg/svg1.2/svg/animate-elem-46-t.png | Bin 0 -> 16991 bytes
test/svg/svg1.2/svg/animate-elem-46-t.svg | 203 +++
test/svg/svg1.2/svg/animate-elem-52-t.png | Bin 0 -> 23926 bytes
test/svg/svg1.2/svg/animate-elem-52-t.svg | 103 ++
test/svg/svg1.2/svg/animate-elem-53-t.png | Bin 0 -> 21115 bytes
test/svg/svg1.2/svg/animate-elem-53-t.svg | 127 ++
test/svg/svg1.2/svg/animate-elem-61-t.png | Bin 0 -> 13193 bytes
test/svg/svg1.2/svg/animate-elem-61-t.svg | 140 ++
test/svg/svg1.2/svg/animate-elem-64-t.png | Bin 0 -> 9563 bytes
test/svg/svg1.2/svg/animate-elem-64-t.svg | 102 ++
test/svg/svg1.2/svg/animate-elem-65-t.png | Bin 0 -> 25494 bytes
test/svg/svg1.2/svg/animate-elem-65-t.svg | 174 ++
test/svg/svg1.2/svg/animate-elem-66-t.png | Bin 0 -> 25902 bytes
test/svg/svg1.2/svg/animate-elem-66-t.svg | 170 ++
test/svg/svg1.2/svg/animate-elem-67-t.png | Bin 0 -> 13251 bytes
test/svg/svg1.2/svg/animate-elem-67-t.svg | 137 ++
test/svg/svg1.2/svg/animate-elem-68-t.png | Bin 0 -> 14821 bytes
test/svg/svg1.2/svg/animate-elem-68-t.svg | 110 ++
test/svg/svg1.2/svg/animate-elem-69-t.png | Bin 0 -> 15419 bytes
test/svg/svg1.2/svg/animate-elem-69-t.svg | 124 ++
test/svg/svg1.2/svg/animate-elem-70-t.png | Bin 0 -> 11787 bytes
test/svg/svg1.2/svg/animate-elem-70-t.svg | 127 ++
test/svg/svg1.2/svg/animate-elem-77-t.png | Bin 0 -> 16328 bytes
test/svg/svg1.2/svg/animate-elem-77-t.svg | 256 +++
test/svg/svg1.2/svg/animate-elem-78-t.png | Bin 0 -> 33529 bytes
test/svg/svg1.2/svg/animate-elem-78-t.svg | 427 +++++
test/svg/svg1.2/svg/animate-elem-80-t.png | Bin 0 -> 36433 bytes
test/svg/svg1.2/svg/animate-elem-80-t.svg | 217 +++
test/svg/svg1.2/svg/animate-elem-81-t.png | Bin 0 -> 17691 bytes
test/svg/svg1.2/svg/animate-elem-81-t.svg | 126 ++
test/svg/svg1.2/svg/animate-elem-82-t.png | Bin 0 -> 32664 bytes
test/svg/svg1.2/svg/animate-elem-82-t.svg | 230 +++
test/svg/svg1.2/svg/animate-elem-83-t.png | Bin 0 -> 30497 bytes
test/svg/svg1.2/svg/animate-elem-83-t.svg | 168 ++
test/svg/svg1.2/svg/animate-elem-84-t.png | Bin 0 -> 6446 bytes
test/svg/svg1.2/svg/animate-elem-84-t.svg | 70 +
test/svg/svg1.2/svg/animate-elem-85-t.png | Bin 0 -> 14118 bytes
test/svg/svg1.2/svg/animate-elem-85-t.svg | 69 +
test/svg/svg1.2/svg/animate-elem-86-t.png | Bin 0 -> 9684 bytes
test/svg/svg1.2/svg/animate-elem-86-t.svg | 103 ++
test/svg/svg1.2/svg/conf-reader-201-t.png | Bin 0 -> 20595 bytes
test/svg/svg1.2/svg/conf-reader-201-t.svg | 153 ++
test/svg/svg1.2/svg/coords-constr-201-t.png | Bin 0 -> 15873 bytes
test/svg/svg1.2/svg/coords-constr-201-t.svg | 69 +
test/svg/svg1.2/svg/coords-constr-202-t.png | Bin 0 -> 19693 bytes
test/svg/svg1.2/svg/coords-constr-202-t.svg | 71 +
test/svg/svg1.2/svg/coords-constr-203-t.png | Bin 0 -> 20178 bytes
test/svg/svg1.2/svg/coords-constr-203-t.svg | 76 +
test/svg/svg1.2/svg/coords-constr-204-t.png | Bin 0 -> 4589 bytes
test/svg/svg1.2/svg/coords-constr-204-t.svg | 56 +
test/svg/svg1.2/svg/coords-coord-01-t.png | Bin 0 -> 4760 bytes
test/svg/svg1.2/svg/coords-coord-01-t.svg | 51 +
test/svg/svg1.2/svg/coords-pAR-201-t.png | Bin 0 -> 16058 bytes
test/svg/svg1.2/svg/coords-pAR-201-t.svg | 135 ++
test/svg/svg1.2/svg/coords-trans-01-t.png | Bin 0 -> 13511 bytes
test/svg/svg1.2/svg/coords-trans-01-t.svg | 223 +++
test/svg/svg1.2/svg/coords-trans-02-t.png | Bin 0 -> 9534 bytes
test/svg/svg1.2/svg/coords-trans-02-t.svg | 86 +
test/svg/svg1.2/svg/coords-trans-03-t.png | Bin 0 -> 8099 bytes
test/svg/svg1.2/svg/coords-trans-03-t.svg | 83 +
test/svg/svg1.2/svg/coords-trans-04-t.png | Bin 0 -> 6832 bytes
test/svg/svg1.2/svg/coords-trans-04-t.svg | 72 +
test/svg/svg1.2/svg/coords-trans-05-t.png | Bin 0 -> 10075 bytes
test/svg/svg1.2/svg/coords-trans-05-t.svg | 72 +
test/svg/svg1.2/svg/coords-trans-06-t.png | Bin 0 -> 10280 bytes
test/svg/svg1.2/svg/coords-trans-06-t.svg | 66 +
test/svg/svg1.2/svg/coords-trans-07-t.png | Bin 0 -> 13098 bytes
test/svg/svg1.2/svg/coords-trans-07-t.svg | 65 +
test/svg/svg1.2/svg/coords-trans-08-t.png | Bin 0 -> 16271 bytes
test/svg/svg1.2/svg/coords-trans-08-t.svg | 70 +
test/svg/svg1.2/svg/coords-trans-09-t.png | Bin 0 -> 23659 bytes
test/svg/svg1.2/svg/coords-trans-09-t.svg | 96 +
test/svg/svg1.2/svg/coords-units-01-t.png | Bin 0 -> 13979 bytes
test/svg/svg1.2/svg/coords-units-01-t.svg | 111 ++
test/svg/svg1.2/svg/coords-viewattr-05-t.png | Bin 0 -> 22622 bytes
test/svg/svg1.2/svg/coords-viewattr-05-t.svg | 90 +
test/svg/svg1.2/svg/extend-namespace-02-t.png | Bin 0 -> 30063 bytes
test/svg/svg1.2/svg/extend-namespace-02-t.svg | 212 +++
test/svg/svg1.2/svg/fonts-desc-02-t.png | Bin 0 -> 9971 bytes
test/svg/svg1.2/svg/fonts-desc-02-t.svg | 99 +
test/svg/svg1.2/svg/fonts-elem-01-t.png | Bin 0 -> 21651 bytes
test/svg/svg1.2/svg/fonts-elem-01-t.svg | 94 +
test/svg/svg1.2/svg/fonts-elem-02-t.png | Bin 0 -> 24414 bytes
test/svg/svg1.2/svg/fonts-elem-02-t.svg | 102 ++
test/svg/svg1.2/svg/fonts-elem-03-t.png | Bin 0 -> 21204 bytes
test/svg/svg1.2/svg/fonts-elem-03-t.svg | 85 +
test/svg/svg1.2/svg/fonts-elem-06-t.png | Bin 0 -> 12088 bytes
test/svg/svg1.2/svg/fonts-elem-06-t.svg | 88 +
test/svg/svg1.2/svg/fonts-glyph-02-t.png | Bin 0 -> 8860 bytes
test/svg/svg1.2/svg/fonts-glyph-02-t.svg | 68 +
test/svg/svg1.2/svg/fonts-glyph-03-t.png | Bin 0 -> 9165 bytes
test/svg/svg1.2/svg/fonts-glyph-03-t.svg | 62 +
test/svg/svg1.2/svg/fonts-glyph-04-t.png | Bin 0 -> 5171 bytes
test/svg/svg1.2/svg/fonts-glyph-04-t.svg | 50 +
test/svg/svg1.2/svg/fonts-glyph-201-t.png | Bin 0 -> 40857 bytes
test/svg/svg1.2/svg/fonts-glyph-201-t.svg | 174 ++
test/svg/svg1.2/svg/fonts-glyph-202-t.png | Bin 0 -> 39880 bytes
test/svg/svg1.2/svg/fonts-glyph-202-t.svg | 175 ++
test/svg/svg1.2/svg/fonts-glyph-203-t.png | Bin 0 -> 11898 bytes
test/svg/svg1.2/svg/fonts-glyph-203-t.svg | 97 +
test/svg/svg1.2/svg/fonts-kern-01-t.png | Bin 0 -> 19201 bytes
test/svg/svg1.2/svg/fonts-kern-01-t.svg | 238 +++
test/svg/svg1.2/svg/fonts-overview-201-t.png | Bin 0 -> 10707 bytes
test/svg/svg1.2/svg/fonts-overview-201-t.svg | 114 ++
test/svg/svg1.2/svg/ignore-struct-use-201-t.svg | 94 +
.../svg/ignore-struct-use-recursion-01-t.svg | 59 +
test/svg/svg1.2/svg/interact-dom-02-t.png | Bin 0 -> 22923 bytes
test/svg/svg1.2/svg/interact-dom-02-t.svg | 124 ++
test/svg/svg1.2/svg/interact-event-201-t.png | Bin 0 -> 16326 bytes
test/svg/svg1.2/svg/interact-event-201-t.svg | 68 +
test/svg/svg1.2/svg/interact-event-202-t.png | Bin 0 -> 26242 bytes
test/svg/svg1.2/svg/interact-event-202-t.svg | 86 +
test/svg/svg1.2/svg/interact-event-203-t.png | Bin 0 -> 46739 bytes
test/svg/svg1.2/svg/interact-event-203-t.svg | 104 ++
test/svg/svg1.2/svg/interact-focus-201-t.png | Bin 0 -> 10752 bytes
test/svg/svg1.2/svg/interact-focus-201-t.svg | 79 +
test/svg/svg1.2/svg/interact-focus-202-t.png | Bin 0 -> 26641 bytes
test/svg/svg1.2/svg/interact-focus-202-t.svg | 173 ++
test/svg/svg1.2/svg/interact-focus-203-t.png | Bin 0 -> 18421 bytes
test/svg/svg1.2/svg/interact-focus-203-t.svg | 82 +
test/svg/svg1.2/svg/interact-focus-204-t.png | Bin 0 -> 22499 bytes
test/svg/svg1.2/svg/interact-focus-204-t.svg | 127 ++
test/svg/svg1.2/svg/interact-focus-205-t.png | Bin 0 -> 14753 bytes
test/svg/svg1.2/svg/interact-focus-205-t.svg | 75 +
test/svg/svg1.2/svg/interact-focus-206-t.png | Bin 0 -> 16410 bytes
test/svg/svg1.2/svg/interact-focus-206-t.svg | 75 +
test/svg/svg1.2/svg/interact-focus-207-t.png | Bin 0 -> 20089 bytes
test/svg/svg1.2/svg/interact-focus-207-t.svg | 61 +
test/svg/svg1.2/svg/interact-focus-208-t.png | Bin 0 -> 16969 bytes
test/svg/svg1.2/svg/interact-focus-208-t.svg | 122 ++
test/svg/svg1.2/svg/interact-focus-209-t.png | Bin 0 -> 21480 bytes
test/svg/svg1.2/svg/interact-focus-209-t.svg | 171 ++
test/svg/svg1.2/svg/interact-focus-210-t.png | Bin 0 -> 17480 bytes
test/svg/svg1.2/svg/interact-focus-210-t.svg | 107 ++
test/svg/svg1.2/svg/interact-focus-211-t.png | Bin 0 -> 49622 bytes
test/svg/svg1.2/svg/interact-focus-211-t.svg | 76 +
test/svg/svg1.2/svg/interact-focus-212-t.png | Bin 0 -> 19345 bytes
test/svg/svg1.2/svg/interact-focus-212-t.svg | 84 +
test/svg/svg1.2/svg/interact-order-04-t.png | Bin 0 -> 25222 bytes
test/svg/svg1.2/svg/interact-order-04-t.svg | 111 ++
test/svg/svg1.2/svg/interact-order-05-t.png | Bin 0 -> 23436 bytes
test/svg/svg1.2/svg/interact-order-05-t.svg | 99 +
test/svg/svg1.2/svg/interact-order-06-t.png | Bin 0 -> 30960 bytes
test/svg/svg1.2/svg/interact-order-06-t.svg | 103 ++
test/svg/svg1.2/svg/interact-pevents-02-t.png | Bin 0 -> 12295 bytes
test/svg/svg1.2/svg/interact-pevents-02-t.svg | 223 +++
test/svg/svg1.2/svg/interact-pevents-05-t.png | Bin 0 -> 31633 bytes
test/svg/svg1.2/svg/interact-pevents-05-t.svg | 211 +++
test/svg/svg1.2/svg/interact-pevents-06-t.png | Bin 0 -> 28345 bytes
test/svg/svg1.2/svg/interact-pevents-06-t.svg | 200 +++
test/svg/svg1.2/svg/interact-pevents-07-t.png | Bin 0 -> 28192 bytes
test/svg/svg1.2/svg/interact-pevents-07-t.svg | 110 ++
test/svg/svg1.2/svg/interact-pevents-08-t.png | Bin 0 -> 12531 bytes
test/svg/svg1.2/svg/interact-pevents-08-t.svg | 120 ++
test/svg/svg1.2/svg/interact-zoom-01-t.png | Bin 0 -> 6574 bytes
test/svg/svg1.2/svg/interact-zoom-01-t.svg | 60 +
test/svg/svg1.2/svg/interact-zoom-02-t.png | Bin 0 -> 6653 bytes
test/svg/svg1.2/svg/interact-zoom-02-t.svg | 60 +
test/svg/svg1.2/svg/interact-zoom-03-t.png | Bin 0 -> 16783 bytes
test/svg/svg1.2/svg/interact-zoom-03-t.svg | 61 +
test/svg/svg1.2/svg/intro-compat-201-t.png | Bin 0 -> 20649 bytes
test/svg/svg1.2/svg/intro-compat-201-t.svg | Bin 0 -> 7154 bytes
test/svg/svg1.2/svg/jpeg-required-201-t.png | Bin 0 -> 175082 bytes
test/svg/svg1.2/svg/jpeg-required-201-t.svg | 49 +
test/svg/svg1.2/svg/jpeg-required-202-t.png | Bin 0 -> 175255 bytes
test/svg/svg1.2/svg/jpeg-required-202-t.svg | 49 +
test/svg/svg1.2/svg/jpeg-required-203-t.png | Bin 0 -> 175479 bytes
test/svg/svg1.2/svg/jpeg-required-203-t.svg | 49 +
test/svg/svg1.2/svg/jpeg-required-204-t.png | Bin 0 -> 86401 bytes
test/svg/svg1.2/svg/jpeg-required-204-t.svg | 49 +
test/svg/svg1.2/svg/jpeg-required-205-t.png | Bin 0 -> 168601 bytes
test/svg/svg1.2/svg/jpeg-required-205-t.svg | 50 +
test/svg/svg1.2/svg/jpeg-required-206-t.png | Bin 0 -> 170192 bytes
test/svg/svg1.2/svg/jpeg-required-206-t.svg | 50 +
test/svg/svg1.2/svg/jpeg-required-207-t.png | Bin 0 -> 182391 bytes
test/svg/svg1.2/svg/jpeg-required-207-t.svg | 48 +
test/svg/svg1.2/svg/jpeg-required-208-t.png | Bin 0 -> 158044 bytes
test/svg/svg1.2/svg/jpeg-required-208-t.svg | 52 +
test/svg/svg1.2/svg/jpeg-required-209-t.png | Bin 0 -> 144953 bytes
test/svg/svg1.2/svg/jpeg-required-209-t.svg | 50 +
test/svg/svg1.2/svg/linking-a-03-t.png | Bin 0 -> 7801 bytes
test/svg/svg1.2/svg/linking-a-03-t.svg | 48 +
test/svg/svg1.2/svg/linking-a-08-t.png | Bin 0 -> 15205 bytes
test/svg/svg1.2/svg/linking-a-08-t.svg | 53 +
test/svg/svg1.2/svg/linking-a-201-t.png | Bin 0 -> 8629 bytes
test/svg/svg1.2/svg/linking-a-201-t.svg | 66 +
test/svg/svg1.2/svg/linking-frag-201-t.png | Bin 0 -> 15205 bytes
test/svg/svg1.2/svg/linking-frag-201-t.svg | 154 ++
test/svg/svg1.2/svg/linking-frag-202-t.png | Bin 0 -> 83658 bytes
test/svg/svg1.2/svg/linking-frag-202-t.svg | 153 ++
test/svg/svg1.2/svg/linking-frag-203-t.png | Bin 0 -> 10056 bytes
test/svg/svg1.2/svg/linking-frag-203-t.svg | 72 +
test/svg/svg1.2/svg/linking-frag-204-t.png | Bin 0 -> 4377 bytes
test/svg/svg1.2/svg/linking-frag-204-t.svg | 52 +
test/svg/svg1.2/svg/linking-refs-201-t.png | Bin 0 -> 24344 bytes
test/svg/svg1.2/svg/linking-refs-201-t.svg | 79 +
test/svg/svg1.2/svg/linking-refs-202-t.png | Bin 0 -> 75618 bytes
test/svg/svg1.2/svg/linking-refs-202-t.svg | 62 +
test/svg/svg1.2/svg/linking-refs-203-t.png | Bin 0 -> 27228 bytes
test/svg/svg1.2/svg/linking-refs-203-t.svg | 113 ++
test/svg/svg1.2/svg/linking-refs-204-t.png | Bin 0 -> 19266 bytes
test/svg/svg1.2/svg/linking-refs-204-t.svg | 91 +
test/svg/svg1.2/svg/linking-refs-205-t.png | Bin 0 -> 76666 bytes
test/svg/svg1.2/svg/linking-refs-205-t.svg | 66 +
test/svg/svg1.2/svg/linking-refs-206-t.png | Bin 0 -> 49082 bytes
test/svg/svg1.2/svg/linking-refs-206-t.svg | 91 +
test/svg/svg1.2/svg/linking-uri-03-t.png | Bin 0 -> 15205 bytes
test/svg/svg1.2/svg/linking-uri-03-t.svg | 78 +
test/svg/svg1.2/svg/media-alevel-201-t.png | Bin 0 -> 14160 bytes
test/svg/svg1.2/svg/media-alevel-201-t.svg | 141 ++
test/svg/svg1.2/svg/media-alevel-202-t.png | Bin 0 -> 13578 bytes
test/svg/svg1.2/svg/media-alevel-202-t.svg | 138 ++
test/svg/svg1.2/svg/media-alevel-203-t.png | Bin 0 -> 9870 bytes
test/svg/svg1.2/svg/media-alevel-203-t.svg | 67 +
test/svg/svg1.2/svg/media-alevel-204-t.png | Bin 0 -> 16073 bytes
test/svg/svg1.2/svg/media-alevel-204-t.svg | 89 +
test/svg/svg1.2/svg/media-alevel-205-t.png | Bin 0 -> 13024 bytes
test/svg/svg1.2/svg/media-alevel-205-t.svg | 70 +
test/svg/svg1.2/svg/media-alevel-206-t.png | Bin 0 -> 23463 bytes
test/svg/svg1.2/svg/media-alevel-206-t.svg | 75 +
test/svg/svg1.2/svg/media-alevel-207-t.png | Bin 0 -> 21156 bytes
test/svg/svg1.2/svg/media-alevel-207-t.svg | 58 +
test/svg/svg1.2/svg/media-alevel-208-t.png | Bin 0 -> 20329 bytes
test/svg/svg1.2/svg/media-alevel-208-t.svg | 58 +
test/svg/svg1.2/svg/media-anim-201-t.png | Bin 0 -> 43718 bytes
test/svg/svg1.2/svg/media-anim-201-t.svg | 98 +
test/svg/svg1.2/svg/media-anim-202-t.png | Bin 0 -> 60044 bytes
test/svg/svg1.2/svg/media-anim-202-t.svg | 108 ++
test/svg/svg1.2/svg/media-anim-203-t.png | Bin 0 -> 47875 bytes
test/svg/svg1.2/svg/media-anim-203-t.svg | 96 +
test/svg/svg1.2/svg/media-anim-204-t.png | Bin 0 -> 70701 bytes
test/svg/svg1.2/svg/media-anim-204-t.svg | 132 ++
test/svg/svg1.2/svg/media-anim-205-t.png | Bin 0 -> 33742 bytes
test/svg/svg1.2/svg/media-anim-205-t.svg | 86 +
test/svg/svg1.2/svg/media-anim-206-t.png | Bin 0 -> 32954 bytes
test/svg/svg1.2/svg/media-anim-206-t.svg | 72 +
test/svg/svg1.2/svg/media-anim-207-t.png | Bin 0 -> 47269 bytes
test/svg/svg1.2/svg/media-anim-207-t.svg | 83 +
test/svg/svg1.2/svg/media-anim-208-t.png | Bin 0 -> 70063 bytes
test/svg/svg1.2/svg/media-anim-208-t.svg | 139 ++
test/svg/svg1.2/svg/media-anim-209-t.png | Bin 0 -> 24291 bytes
test/svg/svg1.2/svg/media-anim-209-t.svg | 73 +
test/svg/svg1.2/svg/media-anim-210-t.png | Bin 0 -> 21453 bytes
test/svg/svg1.2/svg/media-anim-210-t.svg | 67 +
test/svg/svg1.2/svg/media-anim-211-t.png | Bin 0 -> 12205 bytes
test/svg/svg1.2/svg/media-anim-211-t.svg | 62 +
test/svg/svg1.2/svg/media-anim-212-t.png | Bin 0 -> 26953 bytes
test/svg/svg1.2/svg/media-anim-212-t.svg | 70 +
test/svg/svg1.2/svg/media-anim-213-t.png | Bin 0 -> 7418 bytes
test/svg/svg1.2/svg/media-anim-213-t.svg | 42 +
test/svg/svg1.2/svg/media-audio-201-t.png | Bin 0 -> 9949 bytes
test/svg/svg1.2/svg/media-audio-201-t.svg | 59 +
test/svg/svg1.2/svg/media-audio-202-t.png | Bin 0 -> 8903 bytes
test/svg/svg1.2/svg/media-audio-202-t.svg | 59 +
test/svg/svg1.2/svg/media-audio-203-t.png | Bin 0 -> 9678 bytes
test/svg/svg1.2/svg/media-audio-203-t.svg | 58 +
test/svg/svg1.2/svg/media-audio-204-t.png | Bin 0 -> 9752 bytes
test/svg/svg1.2/svg/media-audio-204-t.svg | 63 +
test/svg/svg1.2/svg/media-audio-205-t.png | Bin 0 -> 7784 bytes
test/svg/svg1.2/svg/media-audio-205-t.svg | 56 +
test/svg/svg1.2/svg/media-audio-206-t.png | Bin 0 -> 9957 bytes
test/svg/svg1.2/svg/media-audio-206-t.svg | 79 +
test/svg/svg1.2/svg/media-audio-207-t.png | Bin 0 -> 9958 bytes
test/svg/svg1.2/svg/media-audio-207-t.svg | 73 +
test/svg/svg1.2/svg/media-audio-208-t.png | Bin 0 -> 13890 bytes
test/svg/svg1.2/svg/media-audio-208-t.svg | 60 +
test/svg/svg1.2/svg/media-audio-209-t.png | Bin 0 -> 11702 bytes
test/svg/svg1.2/svg/media-audio-209-t.svg | 63 +
test/svg/svg1.2/svg/media-audio-210-t.png | Bin 0 -> 11185 bytes
test/svg/svg1.2/svg/media-audio-210-t.svg | 68 +
test/svg/svg1.2/svg/media-audio-211-t.png | Bin 0 -> 13376 bytes
test/svg/svg1.2/svg/media-audio-211-t.svg | 64 +
test/svg/svg1.2/svg/media-audio-212-t.png | Bin 0 -> 23245 bytes
test/svg/svg1.2/svg/media-audio-212-t.svg | 109 ++
test/svg/svg1.2/svg/media-audio-213-t.png | Bin 0 -> 16032 bytes
test/svg/svg1.2/svg/media-audio-213-t.svg | 117 ++
test/svg/svg1.2/svg/media-audio-214-t.png | Bin 0 -> 21885 bytes
test/svg/svg1.2/svg/media-audio-214-t.svg | 60 +
test/svg/svg1.2/svg/media-audio-215-t.png | Bin 0 -> 31946 bytes
test/svg/svg1.2/svg/media-audio-215-t.svg | 249 +++
test/svg/svg1.2/svg/media-video-201-t.png | Bin 0 -> 20126 bytes
test/svg/svg1.2/svg/media-video-201-t.svg | 58 +
test/svg/svg1.2/svg/media-video-202-t.png | Bin 0 -> 99181 bytes
test/svg/svg1.2/svg/media-video-202-t.svg | 55 +
test/svg/svg1.2/svg/media-video-203-t.png | Bin 0 -> 70214 bytes
test/svg/svg1.2/svg/media-video-203-t.svg | 66 +
test/svg/svg1.2/svg/media-video-204-t.png | Bin 0 -> 127524 bytes
test/svg/svg1.2/svg/media-video-204-t.svg | 68 +
test/svg/svg1.2/svg/media-video-205-t.png | Bin 0 -> 101331 bytes
test/svg/svg1.2/svg/media-video-205-t.svg | 64 +
test/svg/svg1.2/svg/media-video-206-t.png | Bin 0 -> 101163 bytes
test/svg/svg1.2/svg/media-video-206-t.svg | 65 +
test/svg/svg1.2/svg/media-video-207-t.png | Bin 0 -> 102925 bytes
test/svg/svg1.2/svg/media-video-207-t.svg | 64 +
test/svg/svg1.2/svg/media-video-208-t.png | Bin 0 -> 84783 bytes
test/svg/svg1.2/svg/media-video-208-t.svg | 65 +
test/svg/svg1.2/svg/media-video-209-t.png | Bin 0 -> 84233 bytes
test/svg/svg1.2/svg/media-video-209-t.svg | 64 +
test/svg/svg1.2/svg/media-video-210-t.png | Bin 0 -> 84242 bytes
test/svg/svg1.2/svg/media-video-210-t.svg | 65 +
test/svg/svg1.2/svg/media-video-211-t.png | Bin 0 -> 92202 bytes
test/svg/svg1.2/svg/media-video-211-t.svg | 66 +
test/svg/svg1.2/svg/media-video-212-t.png | Bin 0 -> 83710 bytes
test/svg/svg1.2/svg/media-video-212-t.svg | 105 ++
test/svg/svg1.2/svg/media-video-213-t.png | Bin 0 -> 74147 bytes
test/svg/svg1.2/svg/media-video-213-t.svg | 77 +
test/svg/svg1.2/svg/media-video-214-t.png | Bin 0 -> 48590 bytes
test/svg/svg1.2/svg/media-video-214-t.svg | 67 +
test/svg/svg1.2/svg/media-video-215-t.png | Bin 0 -> 87874 bytes
test/svg/svg1.2/svg/media-video-215-t.svg | 70 +
test/svg/svg1.2/svg/media-video-216-t.png | Bin 0 -> 133802 bytes
test/svg/svg1.2/svg/media-video-216-t.svg | 85 +
test/svg/svg1.2/svg/media-video-218-t.png | Bin 0 -> 80671 bytes
test/svg/svg1.2/svg/media-video-218-t.svg | 109 ++
test/svg/svg1.2/svg/media-video-219-t.png | Bin 0 -> 63645 bytes
test/svg/svg1.2/svg/media-video-219-t.svg | 82 +
test/svg/svg1.2/svg/media-video-220-t.png | Bin 0 -> 36669 bytes
test/svg/svg1.2/svg/media-video-220-t.svg | 75 +
test/svg/svg1.2/svg/media-video-221-t.png | Bin 0 -> 56245 bytes
test/svg/svg1.2/svg/media-video-221-t.svg | 90 +
test/svg/svg1.2/svg/media-video-222-t.png | Bin 0 -> 21517 bytes
test/svg/svg1.2/svg/media-video-222-t.svg | 57 +
test/svg/svg1.2/svg/metadata-example-01-t.png | Bin 0 -> 36979 bytes
test/svg/svg1.2/svg/metadata-example-01-t.svg | 138 ++
test/svg/svg1.2/svg/paint-color-01-t.png | Bin 0 -> 13004 bytes
test/svg/svg1.2/svg/paint-color-01-t.svg | 72 +
test/svg/svg1.2/svg/paint-color-03-t.png | Bin 0 -> 11467 bytes
test/svg/svg1.2/svg/paint-color-03-t.svg | 95 +
test/svg/svg1.2/svg/paint-color-04-t.png | Bin 0 -> 22850 bytes
test/svg/svg1.2/svg/paint-color-04-t.svg | 84 +
test/svg/svg1.2/svg/paint-color-05-t.png | Bin 0 -> 4711 bytes
test/svg/svg1.2/svg/paint-color-05-t.svg | 44 +
test/svg/svg1.2/svg/paint-color-201-t.png | Bin 0 -> 13144 bytes
test/svg/svg1.2/svg/paint-color-201-t.svg | 109 ++
test/svg/svg1.2/svg/paint-fill-01-t.png | Bin 0 -> 11256 bytes
test/svg/svg1.2/svg/paint-fill-01-t.svg | 49 +
test/svg/svg1.2/svg/paint-fill-02-t.png | Bin 0 -> 13649 bytes
test/svg/svg1.2/svg/paint-fill-02-t.svg | 55 +
test/svg/svg1.2/svg/paint-fill-03-t.png | Bin 0 -> 15814 bytes
test/svg/svg1.2/svg/paint-fill-03-t.svg | 49 +
test/svg/svg1.2/svg/paint-fill-04-t.png | Bin 0 -> 4869 bytes
test/svg/svg1.2/svg/paint-fill-04-t.svg | 64 +
test/svg/svg1.2/svg/paint-fill-05-t.png | Bin 0 -> 4927 bytes
test/svg/svg1.2/svg/paint-fill-05-t.svg | 60 +
test/svg/svg1.2/svg/paint-grad-04-t.png | Bin 0 -> 25614 bytes
test/svg/svg1.2/svg/paint-grad-04-t.svg | 81 +
test/svg/svg1.2/svg/paint-grad-05-t.png | Bin 0 -> 59245 bytes
test/svg/svg1.2/svg/paint-grad-05-t.svg | 88 +
test/svg/svg1.2/svg/paint-grad-07-t.png | Bin 0 -> 14430 bytes
test/svg/svg1.2/svg/paint-grad-07-t.svg | 70 +
test/svg/svg1.2/svg/paint-grad-08-t.png | Bin 0 -> 19539 bytes
test/svg/svg1.2/svg/paint-grad-08-t.svg | 88 +
test/svg/svg1.2/svg/paint-grad-09-t.png | Bin 0 -> 21653 bytes
test/svg/svg1.2/svg/paint-grad-09-t.svg | 92 +
test/svg/svg1.2/svg/paint-grad-11-t.png | Bin 0 -> 44204 bytes
test/svg/svg1.2/svg/paint-grad-11-t.svg | 95 +
test/svg/svg1.2/svg/paint-grad-12-t.png | Bin 0 -> 27062 bytes
test/svg/svg1.2/svg/paint-grad-12-t.svg | 93 +
test/svg/svg1.2/svg/paint-grad-15-t.png | Bin 0 -> 11960 bytes
test/svg/svg1.2/svg/paint-grad-15-t.svg | 60 +
test/svg/svg1.2/svg/paint-grad-16-t.png | Bin 0 -> 4567 bytes
test/svg/svg1.2/svg/paint-grad-16-t.svg | 66 +
test/svg/svg1.2/svg/paint-grad-17-t.png | Bin 0 -> 21192 bytes
test/svg/svg1.2/svg/paint-grad-17-t.svg | 80 +
test/svg/svg1.2/svg/paint-grad-18-t.png | Bin 0 -> 4639 bytes
test/svg/svg1.2/svg/paint-grad-18-t.svg | 74 +
test/svg/svg1.2/svg/paint-grad-19-t.png | Bin 0 -> 4762 bytes
test/svg/svg1.2/svg/paint-grad-19-t.svg | 89 +
test/svg/svg1.2/svg/paint-grad-201-t.png | Bin 0 -> 18480 bytes
test/svg/svg1.2/svg/paint-grad-201-t.svg | 73 +
test/svg/svg1.2/svg/paint-grad-202-t.png | Bin 0 -> 36046 bytes
test/svg/svg1.2/svg/paint-grad-202-t.svg | 82 +
test/svg/svg1.2/svg/paint-grad-203-t.png | Bin 0 -> 13204 bytes
test/svg/svg1.2/svg/paint-grad-203-t.svg | 77 +
test/svg/svg1.2/svg/paint-grad-204-t.png | Bin 0 -> 7521 bytes
test/svg/svg1.2/svg/paint-grad-204-t.svg | 61 +
test/svg/svg1.2/svg/paint-grad-205-t.png | Bin 0 -> 4779 bytes
test/svg/svg1.2/svg/paint-grad-205-t.svg | 52 +
test/svg/svg1.2/svg/paint-nsstroke-201-t.png | Bin 0 -> 29102 bytes
test/svg/svg1.2/svg/paint-nsstroke-201-t.svg | 83 +
test/svg/svg1.2/svg/paint-nsstroke-203-t.png | Bin 0 -> 59289 bytes
test/svg/svg1.2/svg/paint-nsstroke-203-t.svg | 116 ++
test/svg/svg1.2/svg/paint-other-201-t.png | Bin 0 -> 16826 bytes
test/svg/svg1.2/svg/paint-other-201-t.svg | 65 +
test/svg/svg1.2/svg/paint-other-203-t.png | Bin 0 -> 7896 bytes
test/svg/svg1.2/svg/paint-other-203-t.svg | 75 +
test/svg/svg1.2/svg/paint-stroke-01-t.png | Bin 0 -> 15706 bytes
test/svg/svg1.2/svg/paint-stroke-01-t.svg | 56 +
test/svg/svg1.2/svg/paint-stroke-02-t.png | Bin 0 -> 18048 bytes
test/svg/svg1.2/svg/paint-stroke-02-t.svg | 57 +
test/svg/svg1.2/svg/paint-stroke-03-t.png | Bin 0 -> 19152 bytes
test/svg/svg1.2/svg/paint-stroke-03-t.svg | 56 +
test/svg/svg1.2/svg/paint-stroke-04-t.png | Bin 0 -> 18058 bytes
test/svg/svg1.2/svg/paint-stroke-04-t.svg | 57 +
test/svg/svg1.2/svg/paint-stroke-05-t.png | Bin 0 -> 7571 bytes
test/svg/svg1.2/svg/paint-stroke-05-t.svg | 81 +
test/svg/svg1.2/svg/paint-stroke-06-t.png | Bin 0 -> 5667 bytes
test/svg/svg1.2/svg/paint-stroke-06-t.svg | 73 +
test/svg/svg1.2/svg/paint-stroke-07-t.png | Bin 0 -> 8295 bytes
test/svg/svg1.2/svg/paint-stroke-07-t.svg | 53 +
test/svg/svg1.2/svg/paint-stroke-08-t.png | Bin 0 -> 7629 bytes
test/svg/svg1.2/svg/paint-stroke-08-t.svg | 76 +
test/svg/svg1.2/svg/paint-stroke-201-t.png | Bin 0 -> 19640 bytes
test/svg/svg1.2/svg/paint-stroke-201-t.svg | 128 ++
test/svg/svg1.2/svg/paint-stroke-202-t.png | Bin 0 -> 34800 bytes
test/svg/svg1.2/svg/paint-stroke-202-t.svg | 175 ++
test/svg/svg1.2/svg/paint-stroke-204-t.png | Bin 0 -> 19683 bytes
test/svg/svg1.2/svg/paint-stroke-204-t.svg | 181 ++
test/svg/svg1.2/svg/paint-stroke-205-t.png | Bin 0 -> 22514 bytes
test/svg/svg1.2/svg/paint-stroke-205-t.svg | 395 ++++
test/svg/svg1.2/svg/paint-stroke-207-t.png | Bin 0 -> 16186 bytes
test/svg/svg1.2/svg/paint-stroke-207-t.svg | 106 ++
test/svg/svg1.2/svg/paint-vfill-201-t.png | Bin 0 -> 25317 bytes
test/svg/svg1.2/svg/paint-vfill-201-t.svg | 66 +
test/svg/svg1.2/svg/paint-vfill-202-t.png | Bin 0 -> 15093 bytes
test/svg/svg1.2/svg/paint-vfill-202-t.svg | 50 +
test/svg/svg1.2/svg/paint-vfill-203-t.png | Bin 0 -> 9620 bytes
test/svg/svg1.2/svg/paint-vfill-203-t.svg | 50 +
test/svg/svg1.2/svg/paint-vfill-204-t.png | Bin 0 -> 22139 bytes
test/svg/svg1.2/svg/paint-vfill-204-t.svg | 50 +
test/svg/svg1.2/svg/paint-vfill-205-t.png | Bin 0 -> 9727 bytes
test/svg/svg1.2/svg/paint-vfill-205-t.svg | 49 +
test/svg/svg1.2/svg/paint-vfill-206-t.png | Bin 0 -> 22741 bytes
test/svg/svg1.2/svg/paint-vfill-206-t.svg | 70 +
test/svg/svg1.2/svg/paths-data-01-t.png | Bin 0 -> 28621 bytes
test/svg/svg1.2/svg/paths-data-01-t.svg | 132 ++
test/svg/svg1.2/svg/paths-data-02-t.png | Bin 0 -> 36637 bytes
test/svg/svg1.2/svg/paths-data-02-t.svg | 105 ++
test/svg/svg1.2/svg/paths-data-04-t.png | Bin 0 -> 19019 bytes
test/svg/svg1.2/svg/paths-data-04-t.svg | 65 +
test/svg/svg1.2/svg/paths-data-05-t.png | Bin 0 -> 17706 bytes
test/svg/svg1.2/svg/paths-data-05-t.svg | 63 +
test/svg/svg1.2/svg/paths-data-06-t.png | Bin 0 -> 10910 bytes
test/svg/svg1.2/svg/paths-data-06-t.svg | 68 +
test/svg/svg1.2/svg/paths-data-07-t.png | Bin 0 -> 10369 bytes
test/svg/svg1.2/svg/paths-data-07-t.svg | 67 +
test/svg/svg1.2/svg/paths-data-08-t.png | Bin 0 -> 18416 bytes
test/svg/svg1.2/svg/paths-data-08-t.svg | 63 +
test/svg/svg1.2/svg/paths-data-09-t.png | Bin 0 -> 17091 bytes
test/svg/svg1.2/svg/paths-data-09-t.svg | 61 +
test/svg/svg1.2/svg/paths-data-10-t.png | Bin 0 -> 30979 bytes
test/svg/svg1.2/svg/paths-data-10-t.svg | 97 +
test/svg/svg1.2/svg/paths-data-12-t.png | Bin 0 -> 13794 bytes
test/svg/svg1.2/svg/paths-data-12-t.svg | 56 +
test/svg/svg1.2/svg/paths-data-13-t.png | Bin 0 -> 7667 bytes
test/svg/svg1.2/svg/paths-data-13-t.svg | 47 +
test/svg/svg1.2/svg/paths-data-14-t.png | Bin 0 -> 16366 bytes
test/svg/svg1.2/svg/paths-data-14-t.svg | 49 +
test/svg/svg1.2/svg/paths-data-15-t.png | Bin 0 -> 10316 bytes
test/svg/svg1.2/svg/paths-data-15-t.svg | 52 +
test/svg/svg1.2/svg/render-elems-01-t.png | Bin 0 -> 7547 bytes
test/svg/svg1.2/svg/render-elems-01-t.svg | 54 +
test/svg/svg1.2/svg/render-elems-02-t.png | Bin 0 -> 10893 bytes
test/svg/svg1.2/svg/render-elems-02-t.svg | 57 +
test/svg/svg1.2/svg/render-elems-03-t.png | Bin 0 -> 10651 bytes
test/svg/svg1.2/svg/render-elems-03-t.svg | 53 +
test/svg/svg1.2/svg/render-elems-06-t.png | Bin 0 -> 8893 bytes
test/svg/svg1.2/svg/render-elems-06-t.svg | 56 +
test/svg/svg1.2/svg/render-elems-07-t.png | Bin 0 -> 11892 bytes
test/svg/svg1.2/svg/render-elems-07-t.svg | 56 +
test/svg/svg1.2/svg/render-elems-08-t.png | Bin 0 -> 13396 bytes
test/svg/svg1.2/svg/render-elems-08-t.svg | 56 +
test/svg/svg1.2/svg/render-groups-01-t.png | Bin 0 -> 29180 bytes
test/svg/svg1.2/svg/render-groups-01-t.svg | 74 +
test/svg/svg1.2/svg/render-groups-03-t.png | Bin 0 -> 29191 bytes
test/svg/svg1.2/svg/render-groups-03-t.svg | 76 +
test/svg/svg1.2/svg/script-element-201-t.png | Bin 0 -> 4692 bytes
test/svg/svg1.2/svg/script-element-201-t.svg | 62 +
test/svg/svg1.2/svg/script-element-202-t.png | Bin 0 -> 4573 bytes
test/svg/svg1.2/svg/script-element-202-t.svg | 77 +
test/svg/svg1.2/svg/script-element-203-t.png | Bin 0 -> 7427 bytes
test/svg/svg1.2/svg/script-element-203-t.svg | 121 ++
test/svg/svg1.2/svg/script-handle-05-t.png | Bin 0 -> 11211 bytes
test/svg/svg1.2/svg/script-handle-05-t.svg | 74 +
test/svg/svg1.2/svg/script-handle-06-t.png | Bin 0 -> 21242 bytes
test/svg/svg1.2/svg/script-handle-06-t.svg | 100 +
test/svg/svg1.2/svg/script-handle-07-t.png | Bin 0 -> 21351 bytes
test/svg/svg1.2/svg/script-handle-07-t.svg | 100 +
test/svg/svg1.2/svg/script-handle-08-t.png | Bin 0 -> 21981 bytes
test/svg/svg1.2/svg/script-handle-08-t.svg | 100 +
test/svg/svg1.2/svg/script-handle-201-t.png | Bin 0 -> 9925 bytes
test/svg/svg1.2/svg/script-handle-201-t.svg | 108 ++
test/svg/svg1.2/svg/script-handle-202-t.png | Bin 0 -> 7725 bytes
test/svg/svg1.2/svg/script-handle-202-t.svg | 87 +
test/svg/svg1.2/svg/script-listener-201-t.png | Bin 0 -> 5854 bytes
test/svg/svg1.2/svg/script-listener-201-t.svg | 83 +
test/svg/svg1.2/svg/script-listener-202-t.png | Bin 0 -> 5983 bytes
test/svg/svg1.2/svg/script-listener-202-t.svg | 65 +
test/svg/svg1.2/svg/script-listener-203-t.png | Bin 0 -> 5422 bytes
test/svg/svg1.2/svg/script-listener-203-t.svg | 77 +
test/svg/svg1.2/svg/script-listener-204-t.png | Bin 0 -> 5529 bytes
test/svg/svg1.2/svg/script-listener-204-t.svg | 95 +
test/svg/svg1.2/svg/shapes-circle-01-t.png | Bin 0 -> 18031 bytes
test/svg/svg1.2/svg/shapes-circle-01-t.svg | 46 +
test/svg/svg1.2/svg/shapes-circle-02-t.png | Bin 0 -> 13233 bytes
test/svg/svg1.2/svg/shapes-circle-02-t.svg | 52 +
test/svg/svg1.2/svg/shapes-circle-03-t.png | Bin 0 -> 19516 bytes
test/svg/svg1.2/svg/shapes-circle-03-t.svg | 86 +
test/svg/svg1.2/svg/shapes-ellipse-01-t.png | Bin 0 -> 19172 bytes
test/svg/svg1.2/svg/shapes-ellipse-01-t.svg | 59 +
test/svg/svg1.2/svg/shapes-ellipse-02-t.png | Bin 0 -> 13295 bytes
test/svg/svg1.2/svg/shapes-ellipse-02-t.svg | 50 +
test/svg/svg1.2/svg/shapes-ellipse-03-t.png | Bin 0 -> 17204 bytes
test/svg/svg1.2/svg/shapes-ellipse-03-t.svg | 82 +
test/svg/svg1.2/svg/shapes-intro-01-t.png | Bin 0 -> 10910 bytes
test/svg/svg1.2/svg/shapes-intro-01-t.svg | 96 +
test/svg/svg1.2/svg/shapes-line-01-t.png | Bin 0 -> 13622 bytes
test/svg/svg1.2/svg/shapes-line-01-t.svg | 68 +
test/svg/svg1.2/svg/shapes-line-02-t.png | Bin 0 -> 17773 bytes
test/svg/svg1.2/svg/shapes-line-02-t.svg | 66 +
test/svg/svg1.2/svg/shapes-polygon-01-t.png | Bin 0 -> 21892 bytes
test/svg/svg1.2/svg/shapes-polygon-01-t.svg | 64 +
test/svg/svg1.2/svg/shapes-polygon-02-t.png | Bin 0 -> 31871 bytes
test/svg/svg1.2/svg/shapes-polygon-02-t.svg | 63 +
test/svg/svg1.2/svg/shapes-polyline-01-t.png | Bin 0 -> 21486 bytes
test/svg/svg1.2/svg/shapes-polyline-01-t.svg | 70 +
test/svg/svg1.2/svg/shapes-polyline-02-t.png | Bin 0 -> 31484 bytes
test/svg/svg1.2/svg/shapes-polyline-02-t.svg | 64 +
test/svg/svg1.2/svg/shapes-rect-01-t.png | Bin 0 -> 12065 bytes
test/svg/svg1.2/svg/shapes-rect-01-t.svg | 60 +
test/svg/svg1.2/svg/shapes-rect-02-t.png | Bin 0 -> 9396 bytes
test/svg/svg1.2/svg/shapes-rect-02-t.svg | 55 +
test/svg/svg1.2/svg/shapes-rect-03-t.png | Bin 0 -> 15792 bytes
test/svg/svg1.2/svg/shapes-rect-03-t.svg | 64 +
test/svg/svg1.2/svg/struct-class-201-t.png | Bin 0 -> 8515 bytes
test/svg/svg1.2/svg/struct-class-201-t.svg | 92 +
test/svg/svg1.2/svg/struct-common-201-t.png | Bin 0 -> 11187 bytes
test/svg/svg1.2/svg/struct-common-201-t.svg | 110 ++
test/svg/svg1.2/svg/struct-cond-01-t.png | Bin 0 -> 4715 bytes
test/svg/svg1.2/svg/struct-cond-01-t.svg | 46 +
test/svg/svg1.2/svg/struct-cond-02-t.png | Bin 0 -> 9432 bytes
test/svg/svg1.2/svg/struct-cond-02-t.svg | 336 ++++
test/svg/svg1.2/svg/struct-cond-03-t.png | Bin 0 -> 13139 bytes
test/svg/svg1.2/svg/struct-cond-03-t.svg | 97 +
test/svg/svg1.2/svg/struct-cond-204-t.png | Bin 0 -> 28085 bytes
test/svg/svg1.2/svg/struct-cond-204-t.svg | 150 ++
test/svg/svg1.2/svg/struct-cond-205-t.png | Bin 0 -> 92017 bytes
test/svg/svg1.2/svg/struct-cond-205-t.svg | 249 +++
test/svg/svg1.2/svg/struct-cond-209-t.png | Bin 0 -> 5312 bytes
test/svg/svg1.2/svg/struct-cond-209-t.svg | 74 +
test/svg/svg1.2/svg/struct-cond-210-t.png | Bin 0 -> 7307 bytes
test/svg/svg1.2/svg/struct-cond-210-t.svg | 82 +
test/svg/svg1.2/svg/struct-defs-01-t.png | Bin 0 -> 4711 bytes
test/svg/svg1.2/svg/struct-defs-01-t.svg | 49 +
test/svg/svg1.2/svg/struct-defs-201-t.png | Bin 0 -> 12812 bytes
test/svg/svg1.2/svg/struct-defs-201-t.svg | 104 ++
test/svg/svg1.2/svg/struct-discard-201-t.png | Bin 0 -> 22825 bytes
test/svg/svg1.2/svg/struct-discard-201-t.svg | 97 +
test/svg/svg1.2/svg/struct-discard-204-t.png | Bin 0 -> 8342 bytes
test/svg/svg1.2/svg/struct-discard-204-t.svg | 71 +
test/svg/svg1.2/svg/struct-discard-205-t.png | Bin 0 -> 14841 bytes
test/svg/svg1.2/svg/struct-discard-205-t.svg | 72 +
test/svg/svg1.2/svg/struct-discard-206-t.png | Bin 0 -> 11101 bytes
test/svg/svg1.2/svg/struct-discard-206-t.svg | 65 +
test/svg/svg1.2/svg/struct-discard-207-t.png | Bin 0 -> 15440 bytes
test/svg/svg1.2/svg/struct-discard-207-t.svg | 85 +
test/svg/svg1.2/svg/struct-frag-02-t.png | Bin 0 -> 6561 bytes
test/svg/svg1.2/svg/struct-frag-02-t.svg | 45 +
test/svg/svg1.2/svg/struct-frag-03-t.png | Bin 0 -> 6561 bytes
test/svg/svg1.2/svg/struct-frag-03-t.svg | 45 +
test/svg/svg1.2/svg/struct-frag-04-t.png | Bin 0 -> 6561 bytes
test/svg/svg1.2/svg/struct-frag-04-t.svg | 45 +
test/svg/svg1.2/svg/struct-frag-05-t.png | Bin 0 -> 11018 bytes
test/svg/svg1.2/svg/struct-frag-05-t.svg | 53 +
test/svg/svg1.2/svg/struct-frag-06-t.png | Bin 0 -> 18946 bytes
test/svg/svg1.2/svg/struct-frag-06-t.svg | 56 +
test/svg/svg1.2/svg/struct-group-01-t.png | Bin 0 -> 6398 bytes
test/svg/svg1.2/svg/struct-group-01-t.svg | 55 +
test/svg/svg1.2/svg/struct-group-03-t.png | Bin 0 -> 19933 bytes
test/svg/svg1.2/svg/struct-group-03-t.svg | 226 +++
test/svg/svg1.2/svg/struct-image-01-t.png | Bin 0 -> 116596 bytes
test/svg/svg1.2/svg/struct-image-01-t.svg | 42 +
test/svg/svg1.2/svg/struct-image-03-t.png | Bin 0 -> 9190 bytes
test/svg/svg1.2/svg/struct-image-03-t.svg | 46 +
test/svg/svg1.2/svg/struct-image-04-t.png | Bin 0 -> 78559 bytes
test/svg/svg1.2/svg/struct-image-04-t.svg | 42 +
test/svg/svg1.2/svg/struct-image-06-t.png | Bin 0 -> 10590 bytes
test/svg/svg1.2/svg/struct-image-06-t.svg | 78 +
test/svg/svg1.2/svg/struct-image-07-t.png | Bin 0 -> 13544 bytes
test/svg/svg1.2/svg/struct-image-07-t.svg | 59 +
test/svg/svg1.2/svg/struct-image-08-t.png | Bin 0 -> 50149 bytes
test/svg/svg1.2/svg/struct-image-08-t.svg | 45 +
test/svg/svg1.2/svg/struct-image-09-t.png | Bin 0 -> 56081 bytes
test/svg/svg1.2/svg/struct-image-09-t.svg | 44 +
test/svg/svg1.2/svg/struct-image-10-t.png | Bin 0 -> 85878 bytes
test/svg/svg1.2/svg/struct-image-10-t.svg | 45 +
test/svg/svg1.2/svg/struct-progressive-201-t.png | Bin 0 -> 9586 bytes
test/svg/svg1.2/svg/struct-progressive-201-t.svg | 1886 ++++++++++++++++++++
test/svg/svg1.2/svg/struct-progressive-202-t.png | Bin 0 -> 10900 bytes
test/svg/svg1.2/svg/struct-progressive-202-t.svg | 1886 ++++++++++++++++++++
test/svg/svg1.2/svg/struct-progressive-203-t.png | Bin 0 -> 14798 bytes
test/svg/svg1.2/svg/struct-progressive-203-t.svg | 1397 +++++++++++++++
test/svg/svg1.2/svg/struct-progressive-204-t.png | Bin 0 -> 13735 bytes
test/svg/svg1.2/svg/struct-progressive-204-t.svg | 1397 +++++++++++++++
test/svg/svg1.2/svg/struct-svg-201-t.png | Bin 0 -> 26901 bytes
test/svg/svg1.2/svg/struct-svg-201-t.svg | 87 +
test/svg/svg1.2/svg/struct-svg-202-t.png | Bin 0 -> 28021 bytes
test/svg/svg1.2/svg/struct-svg-202-t.svg | 86 +
test/svg/svg1.2/svg/struct-svg-203-t.png | Bin 0 -> 7706 bytes
test/svg/svg1.2/svg/struct-svg-203-t.svg | 68 +
test/svg/svg1.2/svg/struct-svg-204-t.png | Bin 0 -> 862 bytes
test/svg/svg1.2/svg/struct-svg-204-t.svg | 49 +
test/svg/svg1.2/svg/struct-use-01-t.png | Bin 0 -> 27819 bytes
test/svg/svg1.2/svg/struct-use-01-t.svg | 88 +
test/svg/svg1.2/svg/struct-use-03-t.png | Bin 0 -> 10748 bytes
test/svg/svg1.2/svg/struct-use-03-t.svg | 53 +
test/svg/svg1.2/svg/struct-use-09-t.png | Bin 0 -> 4719 bytes
test/svg/svg1.2/svg/struct-use-09-t.svg | 81 +
test/svg/svg1.2/svg/struct-use-201-t.png | Bin 0 -> 16569 bytes
test/svg/svg1.2/svg/struct-use-202-t.png | Bin 0 -> 14819 bytes
test/svg/svg1.2/svg/struct-use-202-t.svg | 66 +
test/svg/svg1.2/svg/struct-use-203-t.png | Bin 0 -> 23887 bytes
test/svg/svg1.2/svg/struct-use-203-t.svg | 47 +
test/svg/svg1.2/svg/struct-use-204-t.png | Bin 0 -> 23887 bytes
test/svg/svg1.2/svg/struct-use-204-t.svg | 47 +
test/svg/svg1.2/svg/struct-use-205-t.png | Bin 0 -> 9718 bytes
test/svg/svg1.2/svg/struct-use-205-t.svg | 188 ++
test/svg/svg1.2/svg/struct-use-206-t.png | Bin 0 -> 4334 bytes
test/svg/svg1.2/svg/struct-use-206-t.svg | 48 +
test/svg/svg1.2/svg/struct-use-207-t.png | Bin 0 -> 24322 bytes
test/svg/svg1.2/svg/struct-use-207-t.svg | 78 +
test/svg/svg1.2/svg/struct-use-208-t.png | Bin 0 -> 8301 bytes
test/svg/svg1.2/svg/struct-use-208-t.svg | 57 +
test/svg/svg1.2/svg/struct-use-209-t.png | Bin 0 -> 26923 bytes
test/svg/svg1.2/svg/struct-use-209-t.svg | 64 +
test/svg/svg1.2/svg/struct-use-recursion-01-t.png | Bin 0 -> 15275 bytes
test/svg/svg1.2/svg/struct-use-recursion-02-t.png | Bin 0 -> 16415 bytes
test/svg/svg1.2/svg/struct-use-recursion-02-t.svg | 58 +
test/svg/svg1.2/svg/struct-use-recursion-03-t.png | Bin 0 -> 16112 bytes
test/svg/svg1.2/svg/struct-use-recursion-03-t.svg | 58 +
test/svg/svg1.2/svg/styling-inherit-01-t.png | Bin 0 -> 32532 bytes
test/svg/svg1.2/svg/styling-inherit-01-t.svg | 61 +
test/svg/svg1.2/svg/styling-inherit-02-t.png | Bin 0 -> 4750 bytes
test/svg/svg1.2/svg/styling-inherit-02-t.svg | 101 ++
test/svg/svg1.2/svg/styling-inherit-03-t.png | Bin 0 -> 4607 bytes
test/svg/svg1.2/svg/styling-inherit-03-t.svg | 126 ++
test/svg/svg1.2/svg/styling-pres-01-t.png | Bin 0 -> 4402 bytes
test/svg/svg1.2/svg/styling-pres-01-t.svg | 47 +
test/svg/svg1.2/svg/text-align-01-t.png | Bin 0 -> 19600 bytes
test/svg/svg1.2/svg/text-align-01-t.svg | 63 +
test/svg/svg1.2/svg/text-align-07-t.png | Bin 0 -> 7651 bytes
test/svg/svg1.2/svg/text-align-07-t.svg | 58 +
test/svg/svg1.2/svg/text-align-08-t.png | Bin 0 -> 7963 bytes
test/svg/svg1.2/svg/text-align-08-t.svg | 75 +
test/svg/svg1.2/svg/text-align-201-t.png | Bin 0 -> 14904 bytes
test/svg/svg1.2/svg/text-align-201-t.svg | 61 +
test/svg/svg1.2/svg/text-align-202-t.png | Bin 0 -> 24380 bytes
test/svg/svg1.2/svg/text-align-202-t.svg | 895 ++++++++++
test/svg/svg1.2/svg/text-area-201-t.png | Bin 0 -> 76469 bytes
test/svg/svg1.2/svg/text-area-201-t.svg | 68 +
test/svg/svg1.2/svg/text-area-202-t.png | Bin 0 -> 56721 bytes
test/svg/svg1.2/svg/text-area-202-t.svg | 152 ++
test/svg/svg1.2/svg/text-area-203-t.png | Bin 0 -> 101025 bytes
test/svg/svg1.2/svg/text-area-203-t.svg | 74 +
test/svg/svg1.2/svg/text-area-204-t.png | Bin 0 -> 67421 bytes
test/svg/svg1.2/svg/text-area-204-t.svg | 61 +
test/svg/svg1.2/svg/text-area-205-t.png | Bin 0 -> 90346 bytes
test/svg/svg1.2/svg/text-area-205-t.svg | 52 +
test/svg/svg1.2/svg/text-area-206-t.png | Bin 0 -> 34164 bytes
test/svg/svg1.2/svg/text-area-206-t.svg | 71 +
test/svg/svg1.2/svg/text-area-207-t.png | Bin 0 -> 85345 bytes
test/svg/svg1.2/svg/text-area-207-t.svg | 88 +
test/svg/svg1.2/svg/text-area-208-t.png | Bin 0 -> 73187 bytes
test/svg/svg1.2/svg/text-area-208-t.svg | 79 +
test/svg/svg1.2/svg/text-area-209-t.png | Bin 0 -> 106809 bytes
test/svg/svg1.2/svg/text-area-209-t.svg | 60 +
test/svg/svg1.2/svg/text-area-210-t.png | Bin 0 -> 46429 bytes
test/svg/svg1.2/svg/text-area-210-t.svg | 66 +
test/svg/svg1.2/svg/text-area-211-t.png | Bin 0 -> 76679 bytes
test/svg/svg1.2/svg/text-area-211-t.svg | 72 +
test/svg/svg1.2/svg/text-area-213-t.png | Bin 0 -> 59687 bytes
test/svg/svg1.2/svg/text-area-213-t.svg | 94 +
test/svg/svg1.2/svg/text-area-220-t.png | Bin 0 -> 69042 bytes
test/svg/svg1.2/svg/text-area-220-t.svg | 59 +
test/svg/svg1.2/svg/text-area-221-t.png | Bin 0 -> 38817 bytes
test/svg/svg1.2/svg/text-area-221-t.svg | 72 +
test/svg/svg1.2/svg/text-area-222-t.png | Bin 0 -> 59277 bytes
test/svg/svg1.2/svg/text-area-222-t.svg | 63 +
test/svg/svg1.2/svg/text-edit-201-t.png | Bin 0 -> 25255 bytes
test/svg/svg1.2/svg/text-edit-201-t.svg | 130 ++
test/svg/svg1.2/svg/text-fonts-01-t.png | Bin 0 -> 21818 bytes
test/svg/svg1.2/svg/text-fonts-01-t.svg | 52 +
test/svg/svg1.2/svg/text-fonts-02-t.png | Bin 0 -> 18939 bytes
test/svg/svg1.2/svg/text-fonts-02-t.svg | 60 +
test/svg/svg1.2/svg/text-fonts-03-t.png | Bin 0 -> 17697 bytes
test/svg/svg1.2/svg/text-fonts-03-t.svg | 62 +
test/svg/svg1.2/svg/text-fonts-04-t.png | Bin 0 -> 24613 bytes
test/svg/svg1.2/svg/text-fonts-04-t.svg | 76 +
test/svg/svg1.2/svg/text-fonts-202-t.png | Bin 0 -> 19382 bytes
test/svg/svg1.2/svg/text-fonts-202-t.svg | 85 +
test/svg/svg1.2/svg/text-intro-01-t.png | Bin 0 -> 20284 bytes
test/svg/svg1.2/svg/text-intro-01-t.svg | 61 +
test/svg/svg1.2/svg/text-intro-04-t.png | Bin 0 -> 21256 bytes
test/svg/svg1.2/svg/text-intro-04-t.svg | 53 +
test/svg/svg1.2/svg/text-intro-05-t.png | Bin 0 -> 15083 bytes
test/svg/svg1.2/svg/text-intro-05-t.svg | 45 +
test/svg/svg1.2/svg/text-intro-06-t.png | Bin 0 -> 15183 bytes
test/svg/svg1.2/svg/text-intro-06-t.svg | 56 +
test/svg/svg1.2/svg/text-intro-201-t.png | Bin 0 -> 28456 bytes
test/svg/svg1.2/svg/text-intro-201-t.svg | 55 +
test/svg/svg1.2/svg/text-text-04-t.png | Bin 0 -> 12932 bytes
test/svg/svg1.2/svg/text-text-04-t.svg | 171 ++
test/svg/svg1.2/svg/text-text-06-t.png | Bin 0 -> 7922 bytes
test/svg/svg1.2/svg/text-text-06-t.svg | 95 +
test/svg/svg1.2/svg/text-text-07-t.png | Bin 0 -> 13615 bytes
test/svg/svg1.2/svg/text-text-07-t.svg | 43 +
test/svg/svg1.2/svg/text-text-08-t.png | Bin 0 -> 40736 bytes
test/svg/svg1.2/svg/text-text-08-t.svg | 42 +
test/svg/svg1.2/svg/text-text-09-t.png | Bin 0 -> 20871 bytes
test/svg/svg1.2/svg/text-text-09-t.svg | 55 +
test/svg/svg1.2/svg/text-tselect-03-t.png | Bin 0 -> 11797 bytes
test/svg/svg1.2/svg/text-tselect-03-t.svg | 87 +
test/svg/svg1.2/svg/text-ws-01-t.png | Bin 0 -> 39464 bytes
test/svg/svg1.2/svg/text-ws-01-t.svg | 58 +
test/svg/svg1.2/svg/text-ws-02-t.png | Bin 0 -> 41173 bytes
test/svg/svg1.2/svg/text-ws-02-t.svg | 65 +
test/svg/svg1.2/svg/udom-conform-201-t.png | Bin 0 -> 15150 bytes
test/svg/svg1.2/svg/udom-conform-201-t.svg | 159 ++
test/svg/svg1.2/svg/udom-dom-201-t.png | Bin 0 -> 6525 bytes
test/svg/svg1.2/svg/udom-dom-201-t.svg | 93 +
test/svg/svg1.2/svg/udom-dom-202-t.png | Bin 0 -> 7030 bytes
test/svg/svg1.2/svg/udom-dom-202-t.svg | 105 ++
test/svg/svg1.2/svg/udom-dom-203-t.png | Bin 0 -> 7385 bytes
test/svg/svg1.2/svg/udom-dom-203-t.svg | 135 ++
test/svg/svg1.2/svg/udom-dom-204-t.png | Bin 0 -> 8492 bytes
test/svg/svg1.2/svg/udom-dom-204-t.svg | 159 ++
test/svg/svg1.2/svg/udom-dom-206-t.png | Bin 0 -> 13645 bytes
test/svg/svg1.2/svg/udom-dom-206-t.svg | 142 ++
test/svg/svg1.2/svg/udom-dom-207-t.png | Bin 0 -> 12622 bytes
test/svg/svg1.2/svg/udom-dom-207-t.svg | 116 ++
test/svg/svg1.2/svg/udom-dom-209-t.png | Bin 0 -> 8768 bytes
test/svg/svg1.2/svg/udom-dom-209-t.svg | 120 ++
test/svg/svg1.2/svg/udom-dom-210-t.png | Bin 0 -> 11984 bytes
test/svg/svg1.2/svg/udom-dom-210-t.svg | 162 ++
test/svg/svg1.2/svg/udom-dom-211-t.png | Bin 0 -> 6827 bytes
test/svg/svg1.2/svg/udom-dom-211-t.svg | 64 +
test/svg/svg1.2/svg/udom-dom-213-t.png | Bin 0 -> 6252 bytes
test/svg/svg1.2/svg/udom-dom-213-t.svg | 110 ++
test/svg/svg1.2/svg/udom-event-201-t.png | Bin 0 -> 8222 bytes
test/svg/svg1.2/svg/udom-event-201-t.svg | 102 ++
test/svg/svg1.2/svg/udom-event-202-t.png | Bin 0 -> 10488 bytes
test/svg/svg1.2/svg/udom-event-202-t.svg | 101 ++
test/svg/svg1.2/svg/udom-event-203-t.png | Bin 0 -> 10493 bytes
test/svg/svg1.2/svg/udom-event-203-t.svg | 97 +
test/svg/svg1.2/svg/udom-event-204-t.png | Bin 0 -> 11635 bytes
test/svg/svg1.2/svg/udom-event-204-t.svg | 120 ++
test/svg/svg1.2/svg/udom-event-205-t.png | Bin 0 -> 22289 bytes
test/svg/svg1.2/svg/udom-event-205-t.svg | 164 ++
test/svg/svg1.2/svg/udom-event-207-t.png | Bin 0 -> 11601 bytes
test/svg/svg1.2/svg/udom-event-207-t.svg | 93 +
test/svg/svg1.2/svg/udom-event-208-t.png | Bin 0 -> 15913 bytes
test/svg/svg1.2/svg/udom-event-208-t.svg | 115 ++
test/svg/svg1.2/svg/udom-event-209-t.png | Bin 0 -> 10488 bytes
test/svg/svg1.2/svg/udom-event-209-t.svg | 101 ++
test/svg/svg1.2/svg/udom-event-210-t.png | Bin 0 -> 7833 bytes
test/svg/svg1.2/svg/udom-event-210-t.svg | 79 +
test/svg/svg1.2/svg/udom-glob-201-t.png | Bin 0 -> 7469 bytes
test/svg/svg1.2/svg/udom-glob-201-t.svg | 87 +
test/svg/svg1.2/svg/udom-glob-202-t.png | Bin 0 -> 16621 bytes
test/svg/svg1.2/svg/udom-glob-202-t.svg | 56 +
test/svg/svg1.2/svg/udom-glob-203-t.png | Bin 0 -> 40300 bytes
test/svg/svg1.2/svg/udom-glob-203-t.svg | 234 +++
test/svg/svg1.2/svg/udom-glob-204-t.png | Bin 0 -> 40375 bytes
test/svg/svg1.2/svg/udom-glob-204-t.svg | 229 +++
test/svg/svg1.2/svg/udom-node-201-t.png | Bin 0 -> 11610 bytes
test/svg/svg1.2/svg/udom-node-201-t.svg | 79 +
test/svg/svg1.2/svg/udom-node-202-t.png | Bin 0 -> 21464 bytes
test/svg/svg1.2/svg/udom-node-202-t.svg | 85 +
test/svg/svg1.2/svg/udom-node-204-t.png | Bin 0 -> 10800 bytes
test/svg/svg1.2/svg/udom-node-204-t.svg | 81 +
test/svg/svg1.2/svg/udom-over-01-t.png | Bin 0 -> 7846 bytes
test/svg/svg1.2/svg/udom-over-01-t.svg | 100 +
test/svg/svg1.2/svg/udom-smil-201-t.png | Bin 0 -> 10041 bytes
test/svg/svg1.2/svg/udom-smil-201-t.svg | 117 ++
test/svg/svg1.2/svg/udom-smil-202-t.png | Bin 0 -> 14052 bytes
test/svg/svg1.2/svg/udom-smil-202-t.svg | 135 ++
test/svg/svg1.2/svg/udom-smil-203-t.png | Bin 0 -> 9821 bytes
test/svg/svg1.2/svg/udom-smil-203-t.svg | 125 ++
test/svg/svg1.2/svg/udom-svg-201-t.png | Bin 0 -> 7252 bytes
test/svg/svg1.2/svg/udom-svg-201-t.svg | 78 +
test/svg/svg1.2/svg/udom-svg-204-t.png | Bin 0 -> 9794 bytes
test/svg/svg1.2/svg/udom-svg-204-t.svg | 148 ++
test/svg/svg1.2/svg/udom-svg-205-t.png | Bin 0 -> 8160 bytes
test/svg/svg1.2/svg/udom-svg-205-t.svg | 86 +
test/svg/svg1.2/svg/udom-svg-206-t.png | Bin 0 -> 10868 bytes
test/svg/svg1.2/svg/udom-svg-206-t.svg | 100 +
test/svg/svg1.2/svg/udom-svg-208-t.png | Bin 0 -> 13174 bytes
test/svg/svg1.2/svg/udom-svg-208-t.svg | 257 +++
test/svg/svg1.2/svg/udom-svg-209-t.png | Bin 0 -> 12105 bytes
test/svg/svg1.2/svg/udom-svg-209-t.svg | 416 +++++
test/svg/svg1.2/svg/udom-svg-210-t.png | Bin 0 -> 18038 bytes
test/svg/svg1.2/svg/udom-svg-210-t.svg | 156 ++
test/svg/svg1.2/svg/udom-svg-211-t.png | Bin 0 -> 15669 bytes
test/svg/svg1.2/svg/udom-svg-211-t.svg | 152 ++
test/svg/svg1.2/svg/udom-svg-213-t.png | Bin 0 -> 13847 bytes
test/svg/svg1.2/svg/udom-svg-213-t.svg | 111 ++
test/svg/svg1.2/svg/udom-svg-216-t.png | Bin 0 -> 8454 bytes
test/svg/svg1.2/svg/udom-svg-216-t.svg | 68 +
test/svg/svg1.2/svg/udom-svg-218-t.png | Bin 0 -> 24510 bytes
test/svg/svg1.2/svg/udom-svg-218-t.svg | 168 ++
test/svg/svg1.2/svg/udom-svg-220-t.png | Bin 0 -> 7178 bytes
test/svg/svg1.2/svg/udom-svg-220-t.svg | 231 +++
test/svg/svg1.2/svg/udom-svg-224-t.png | Bin 0 -> 19903 bytes
test/svg/svg1.2/svg/udom-svg-224-t.svg | 251 +++
test/svg/svg1.2/svg/udom-svg-225-t.png | Bin 0 -> 10981 bytes
test/svg/svg1.2/svg/udom-svg-225-t.svg | 253 +++
test/svg/svg1.2/svg/udom-svg-226-t.png | Bin 0 -> 16648 bytes
test/svg/svg1.2/svg/udom-svg-226-t.svg | 208 +++
test/svg/svg1.2/svg/udom-svg-227-t.png | Bin 0 -> 15822 bytes
test/svg/svg1.2/svg/udom-svg-227-t.svg | 237 +++
test/svg/svg1.2/svg/udom-svg-228-t.png | Bin 0 -> 21502 bytes
test/svg/svg1.2/svg/udom-svg-228-t.svg | 221 +++
test/svg/svg1.2/svg/udom-svg-231-t.png | Bin 0 -> 46123 bytes
test/svg/svg1.2/svg/udom-svg-231-t.svg | 119 ++
test/svg/svg1.2/svg/udom-svg-232-t.png | Bin 0 -> 45705 bytes
test/svg/svg1.2/svg/udom-svg-232-t.svg | 121 ++
test/svg/svg1.2/svg/udom-svg-233-t.png | Bin 0 -> 39663 bytes
test/svg/svg1.2/svg/udom-svg-233-t.svg | 113 ++
test/svg/svg1.2/svg/udom-svg-236-t.png | Bin 0 -> 36676 bytes
test/svg/svg1.2/svg/udom-svg-236-t.svg | 124 ++
test/svg/svg1.2/svg/udom-svg-237-t.png | Bin 0 -> 50259 bytes
test/svg/svg1.2/svg/udom-svg-237-t.svg | 128 ++
test/svg/svg1.2/svg/udom-svgcolor-201-t.png | Bin 0 -> 34879 bytes
test/svg/svg1.2/svg/udom-svgcolor-201-t.svg | 113 ++
test/svg/svg1.2/svg/udom-svglocatable-201-t.png | Bin 0 -> 39783 bytes
test/svg/svg1.2/svg/udom-svglocatable-201-t.svg | 187 ++
test/svg/svg1.2/svg/udom-svglocatable-202-t.png | Bin 0 -> 15741 bytes
test/svg/svg1.2/svg/udom-svglocatable-202-t.svg | 179 ++
test/svg/svg1.2/svg/udom-svglocatable-203-t.png | Bin 0 -> 15387 bytes
test/svg/svg1.2/svg/udom-svglocatable-203-t.svg | 266 +++
test/svg/svg1.2/svg/udom-svgmatrix-201-t.png | Bin 0 -> 16477 bytes
test/svg/svg1.2/svg/udom-svgmatrix-201-t.svg | 151 ++
test/svg/svg1.2/svg/udom-svgmatrix-202-t.png | Bin 0 -> 18029 bytes
test/svg/svg1.2/svg/udom-svgmatrix-202-t.svg | 172 ++
test/svg/svg1.2/svg/udom-svgmatrix-203-t.png | Bin 0 -> 27045 bytes
test/svg/svg1.2/svg/udom-svgmatrix-203-t.svg | 158 ++
test/svg/svg1.2/svg/udom-svgmatrix-204-t.png | Bin 0 -> 24380 bytes
test/svg/svg1.2/svg/udom-svgmatrix-204-t.svg | 222 +++
test/svg/svg1.2/svg/udom-svgmatrix-205-t.png | Bin 0 -> 24215 bytes
test/svg/svg1.2/svg/udom-svgmatrix-205-t.svg | 151 ++
test/svg/svg1.2/svg/udom-svgmatrix-206-t.png | Bin 0 -> 24463 bytes
test/svg/svg1.2/svg/udom-svgmatrix-206-t.svg | 152 ++
test/svg/svg1.2/svg/udom-svgpath-201-t.png | Bin 0 -> 30912 bytes
test/svg/svg1.2/svg/udom-svgpath-201-t.svg | 263 +++
test/svg/svg1.2/svg/udom-svgpath-202-t.png | Bin 0 -> 25923 bytes
test/svg/svg1.2/svg/udom-svgpath-202-t.svg | 259 +++
test/svg/svg1.2/svg/udom-svgpoint-201-t.png | Bin 0 -> 24519 bytes
test/svg/svg1.2/svg/udom-svgpoint-201-t.svg | 138 ++
test/svg/svg1.2/svg/udom-svgrect-201-t.png | Bin 0 -> 15297 bytes
test/svg/svg1.2/svg/udom-svgrect-201-t.svg | 124 ++
test/svg/svg1.2/svg/udom-textcontent-201-t.png | Bin 0 -> 19022 bytes
test/svg/svg1.2/svg/udom-textcontent-201-t.svg | 115 ++
test/svg/svg1.2/svg/udom-textcontent-202-t.png | Bin 0 -> 9285 bytes
test/svg/svg1.2/svg/udom-textcontent-202-t.svg | 79 +
test/svg/svg1.2/svg/udom-traitaccess-201-t.png | Bin 0 -> 11326 bytes
test/svg/svg1.2/svg/udom-traitaccess-201-t.svg | 84 +
test/svg/svg1.2/svg/udom-traitaccess-202-t.png | Bin 0 -> 47077 bytes
test/svg/svg1.2/svg/udom-traitaccess-202-t.svg | 131 ++
test/svg/svg1.2/svg/udom-traitaccess-203-t.png | Bin 0 -> 28774 bytes
test/svg/svg1.2/svg/udom-traitaccess-203-t.svg | 103 ++
test/svg/svg1.2/svg/udom-traitaccess-204-t.png | Bin 0 -> 21232 bytes
test/svg/svg1.2/svg/udom-traitaccess-204-t.svg | 79 +
test/svg/svg1.2/svg/udom-traitaccess-205-t.png | Bin 0 -> 7204 bytes
test/svg/svg1.2/svg/udom-traitaccess-205-t.svg | 53 +
test/svg/svg1.2/svg/udom-traitaccess-206-t.png | Bin 0 -> 9026 bytes
test/svg/svg1.2/svg/udom-traitaccess-206-t.svg | 53 +
test/svg/svg1.2/svg/udom-traitaccess-207-t.png | Bin 0 -> 10712 bytes
test/svg/svg1.2/svg/udom-traitaccess-207-t.svg | 52 +
1210 files changed, 67809 insertions(+), 0 deletions(-)
---
diff --git a/test/svg/svg1.2/images/1pixelred.png b/test/svg/svg1.2/images/1pixelred.png
new file mode 100644
index 0000000..9c2f025
Binary files /dev/null and b/test/svg/svg1.2/images/1pixelred.png differ
diff --git a/test/svg/svg1.2/images/1pixelwhite.png b/test/svg/svg1.2/images/1pixelwhite.png
new file mode 100644
index 0000000..adcee30
Binary files /dev/null and b/test/svg/svg1.2/images/1pixelwhite.png differ
diff --git a/test/svg/svg1.2/images/20x20.png b/test/svg/svg1.2/images/20x20.png
new file mode 100644
index 0000000..32399c6
Binary files /dev/null and b/test/svg/svg1.2/images/20x20.png differ
diff --git a/test/svg/svg1.2/images/CNN.3gp b/test/svg/svg1.2/images/CNN.3gp
new file mode 100644
index 0000000..4929a53
Binary files /dev/null and b/test/svg/svg1.2/images/CNN.3gp differ
diff --git a/test/svg/svg1.2/images/DisplaceChecker.png b/test/svg/svg1.2/images/DisplaceChecker.png
new file mode 100644
index 0000000..25c77d0
Binary files /dev/null and b/test/svg/svg1.2/images/DisplaceChecker.png differ
diff --git a/test/svg/svg1.2/images/SVG-1.1-monolithic-fixed.dtd b/test/svg/svg1.2/images/SVG-1.1-monolithic-fixed.dtd
new file mode 100644
index 0000000..d028699
--- /dev/null
+++ b/test/svg/svg1.2/images/SVG-1.1-monolithic-fixed.dtd
@@ -0,0 +1,1622 @@
+<!-- =====================================================================
+ This is the DTD for SVG 1.1.
+
+ The specification for SVG that corresponds to this DTD is available at:
+
+ http://www.w3.org/TR/2002/WD-SVG11-20020215/
+
+ Copyright (c) 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
+
+ For SVG 1.1:
+
+ Namespace:
+ http://www.w3.org/2000/svg
+
+ Public identifier:
+ PUBLIC "-//W3C//DTD SVG 1.1//EN"
+
+ URI for the DTD:
+ http://www.w3.org/TR/2002/WD-SVG11-20020215/DTD/svg11.dtd
+============================================================================= -->
+<!-- ==============================================================
+ ENTITY DECLARATIONS: Data types
+ ============================================================== -->
+<!ENTITY % BaselineShiftValue "CDATA">
+<!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
+<!ENTITY % Boolean "(false | true)">
+<!-- feature specification -->
+<!ENTITY % ClassList "CDATA">
+<!-- list of classes -->
+<!ENTITY % ClipValue "CDATA">
+<!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
+<!ENTITY % ClipPathValue "CDATA">
+<!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
+<!-- 'clip-rule' or fill-rule property/attribute value -->
+<!ENTITY % ContentType "CDATA">
+<!-- media type, as per [RFC2045] -->
+<!ENTITY % Coordinate "CDATA">
+<!-- a <coordinate> -->
+<!ENTITY % Coordinates "CDATA">
+<!-- a list of <coordinate>s -->
+<!ENTITY % Color "CDATA">
+<!-- a <color> value -->
+<!ENTITY % CursorValue "CDATA">
+<!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
+<!ENTITY % EnableBackgroundValue "CDATA">
+<!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
+<!ENTITY % ExtensionList "CDATA">
+<!-- extension list specification -->
+<!ENTITY % FeatureList "CDATA">
+<!-- feature list specification -->
+<!ENTITY % FilterValue "CDATA">
+<!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % FontFamilyValue "CDATA">
+<!-- 'font-family' property/attribute value (i.e., list of fonts) -->
+<!ENTITY % FontSizeValue "CDATA">
+<!-- 'font-size' property/attribute value -->
+<!ENTITY % FontSizeAdjustValue "CDATA">
+<!-- 'font-size-adjust' property/attribute value -->
+<!ENTITY % GlyphOrientationHorizontalValue "CDATA">
+<!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
+<!ENTITY % GlyphOrientationVerticalValue "CDATA">
+<!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
+<!ENTITY % Integer "CDATA">
+<!-- a <integer> -->
+<!ENTITY % KerningValue "CDATA">
+<!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
+<!ENTITY % LanguageCode "NMTOKEN">
+<!-- a language code, as per [RFC3066] -->
+<!ENTITY % LanguageCodes "CDATA">
+<!-- comma-separated list of language codes, as per [RFC3066] -->
+<!ENTITY % Length "CDATA">
+<!-- a <length> -->
+<!ENTITY % Lengths "CDATA">
+<!-- a list of <length>s -->
+<!ENTITY % LinkTarget "NMTOKEN">
+<!-- link to this target -->
+<!ENTITY % MarkerValue "CDATA">
+<!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % MaskValue "CDATA">
+<!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % MediaDesc "CDATA">
+<!-- comma-separated list of media descriptors. -->
+<!ENTITY % Number "CDATA">
+<!-- a <number> -->
+<!ENTITY % NumberOptionalNumber "CDATA">
+<!-- list of <number>s, but at least one and at most two -->
+<!ENTITY % NumberOrPercentage "CDATA">
+<!-- a <number> or a <percentage> -->
+<!ENTITY % Numbers "CDATA">
+<!-- a list of <number>s -->
+<!ENTITY % OpacityValue "CDATA">
+<!-- opacity value (e.g., <number>) -->
+<!ENTITY % Paint "CDATA">
+<!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
+<!ENTITY % PathData "CDATA">
+<!-- a path data specification -->
+<!ENTITY % Points "CDATA">
+<!-- a list of points -->
+<!ENTITY % PreserveAspectRatioSpec "CDATA">
+<!-- 'preserveAspectRatio' attribute specification -->
+<!ENTITY % Script "CDATA">
+<!-- script expression -->
+<!ENTITY % SpacingValue "CDATA">
+<!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
+<!ENTITY % StrokeDashArrayValue "CDATA">
+<!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
+<!ENTITY % StrokeDashOffsetValue "CDATA">
+<!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
+<!ENTITY % StrokeMiterLimitValue "CDATA">
+<!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
+<!ENTITY % StrokeWidthValue "CDATA">
+<!-- 'stroke-width' property/attribute value (e.g., <length>) -->
+<!ENTITY % StructuredText "content CDATA #FIXED 'structured text'">
+<!ENTITY % StyleSheet "CDATA">
+<!-- style sheet data -->
+<!ENTITY % SVGColor "CDATA">
+<!-- An SVG color value (RGB plus optional ICC) -->
+<!ENTITY % Text "CDATA">
+<!-- arbitrary text string -->
+<!ENTITY % TextDecorationValue "CDATA">
+<!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
+<!ENTITY % TransformList "CDATA">
+<!-- list of transforms -->
+<!ENTITY % URI "CDATA">
+<!-- a Uniform Resource Identifier, see [URI] -->
+<!ENTITY % ViewBoxSpec "CDATA">
+<!-- 'viewBox' attribute specification -->
+<!-- ==============================================================
+ ENTITY DECLARATIONS: Collections of common attributes
+ ============================================================== -->
+<!-- All elements have an ID. -->
+<!ENTITY % stdAttrs "id ID #IMPLIED
+ xml:base %URI; #IMPLIED">
+<!-- Common attributes for elements that might contain character data content. -->
+<!ENTITY % langSpaceAttrs "xml:lang %LanguageCode; #IMPLIED
+ xml:space (default|preserve) #IMPLIED">
+<!-- Common attributes to check for system capabilities. -->
+<!ENTITY % testAttrs "requiredFeatures %FeatureList; #IMPLIED
+ requiredExtensions %ExtensionList; #IMPLIED
+ systemLanguage %LanguageCodes; #IMPLIED">
+<!-- For most uses of URI referencing:
+ standard XLink attributes other than xlink:href. -->
+<!ENTITY % xlinkRefAttrs "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
+ xlink:type (simple) #FIXED 'simple'
+ xlink:role %URI; #IMPLIED
+ xlink:arcrole %URI; #IMPLIED
+ xlink:title CDATA #IMPLIED
+ xlink:show (other) 'other'
+ xlink:actuate (onLoad) #FIXED 'onLoad'">
+<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
+<!ENTITY % xlinkRefAttrsEmbed "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
+ xlink:type (simple) #FIXED 'simple'
+ xlink:role %URI; #IMPLIED
+ xlink:arcrole %URI; #IMPLIED
+ xlink:title CDATA #IMPLIED
+ xlink:show (embed) 'embed'
+ xlink:actuate (onLoad) #FIXED 'onLoad'">
+<!ENTITY % graphicsElementEvents "onfocusin %Script; #IMPLIED
+ onfocusout %Script; #IMPLIED
+ onactivate %Script; #IMPLIED
+ onclick %Script; #IMPLIED
+ onmousedown %Script; #IMPLIED
+ onmouseup %Script; #IMPLIED
+ onmouseover %Script; #IMPLIED
+ onmousemove %Script; #IMPLIED
+ onmouseout %Script; #IMPLIED
+ onload %Script; #IMPLIED">
+<!ENTITY % documentEvents "onunload %Script; #IMPLIED
+ onabort %Script; #IMPLIED
+ onerror %Script; #IMPLIED
+ onresize %Script; #IMPLIED
+ onscroll %Script; #IMPLIED
+ onzoom %Script; #IMPLIED">
+<!ENTITY % animationEvents "onbegin %Script; #IMPLIED
+ onend %Script; #IMPLIED
+ onrepeat %Script; #IMPLIED">
+<!-- This entity allows for at most one of desc, title and metadata,
+ supplied in any order -->
+<!ENTITY % descTitleMetadata "(((desc,((title,metadata?)|(metadata,title?))?)|
+ (title,((desc,metadata?)|(metadata,desc?))?)|
+ (metadata,((desc,title?)|(title,desc?))?))?)">
+<!-- ==============================================================
+ ENTITY DECLARATIONS: Collections of presentation attributes
+ ============================================================== -->
+<!-- The following presentation attributes have to do with specifying color. -->
+<!ENTITY % PresentationAttributes-Color "color %Color; #IMPLIED
+ color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
+ color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED ">
+<!-- The following presentation attributes apply to container elements. -->
+<!ENTITY % PresentationAttributes-Containers "enable-background %EnableBackgroundValue; #IMPLIED ">
+<!-- The following presentation attributes apply to 'feFlood' elements. -->
+<!ENTITY % PresentationAttributes-feFlood "flood-color %SVGColor; #IMPLIED
+ flood-opacity %OpacityValue; #IMPLIED ">
+<!-- The following presentation attributes apply to filling and stroking operations. -->
+<!ENTITY % PresentationAttributes-FillStroke "fill %Paint; #IMPLIED
+ fill-opacity %OpacityValue; #IMPLIED
+ fill-rule %ClipFillRule; #IMPLIED
+ stroke %Paint; #IMPLIED
+ stroke-dasharray %StrokeDashArrayValue; #IMPLIED
+ stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
+ stroke-linecap (butt | round | square | inherit) #IMPLIED
+ stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
+ stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
+ stroke-opacity %OpacityValue; #IMPLIED
+ stroke-width %StrokeWidthValue; #IMPLIED ">
+<!-- The following presentation attributes apply to filter primitives. -->
+<!ENTITY % PresentationAttributes-FilterPrimitives "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED ">
+<!-- The following presentation attributes have to do with selecting a font to use. -->
+<!ENTITY % PresentationAttributes-FontSpecification "font-family %FontFamilyValue; #IMPLIED
+ font-size %FontSizeValue; #IMPLIED
+ font-size-adjust %FontSizeAdjustValue; #IMPLIED
+ font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed |
+ condensed | semi-condensed | semi-expanded | expanded |
+ extra-expanded | ultra-expanded | inherit) #IMPLIED
+ font-style (normal | italic | oblique | inherit) #IMPLIED
+ font-variant (normal | small-caps | inherit) #IMPLIED
+ font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 |
+ 400 | 500 | 600 | 700 | 800 | 900 | inherit) #IMPLIED ">
+<!-- The following presentation attributes apply to gradient 'stop' elements. -->
+<!ENTITY % PresentationAttributes-Gradients "stop-color %SVGColor; #IMPLIED
+ stop-opacity %OpacityValue; #IMPLIED ">
+<!-- The following presentation attributes apply to 'solid-color' elements. -->
+<!ENTITY % PresentationAttributes-SolidColor "solid-color %SVGColor; #IMPLIED
+ solid-opacity %OpacityValue; #IMPLIED ">
+<!-- The following presentation attributes apply to graphics elements. -->
+<!ENTITY % PresentationAttributes-Graphics "clip-path %ClipPathValue; #IMPLIED
+ clip-rule %ClipFillRule; #IMPLIED
+ cursor %CursorValue; #IMPLIED
+ display (inline | block | list-item | run-in | compact | marker |
+ table | inline-table | table-row-group | table-header-group |
+ table-footer-group | table-row | table-column-group | table-column |
+ table-cell | table-caption | none | inherit) #IMPLIED
+ filter %FilterValue; #IMPLIED
+ image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
+ mask %MaskValue; #IMPLIED
+ opacity %OpacityValue; #IMPLIED
+ pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
+ painted | fill | stroke | all | none | inherit) #IMPLIED
+ shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
+ text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
+ visibility (visible | hidden | inherit) #IMPLIED ">
+<!-- The following presentation attributes apply to 'image' elements. -->
+<!ENTITY % PresentationAttributes-Images "color-profile CDATA #IMPLIED ">
+<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
+<!ENTITY % PresentationAttributes-LightingEffects "lighting-color %SVGColor; #IMPLIED ">
+<!-- The following presentation attributes apply to marker operations. -->
+<!ENTITY % PresentationAttributes-Markers "marker-start %MarkerValue; #IMPLIED
+ marker-mid %MarkerValue; #IMPLIED
+ marker-end %MarkerValue; #IMPLIED ">
+<!-- The following presentation attributes apply to text content elements. -->
+<!ENTITY % PresentationAttributes-TextContentElements "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
+ middle | bottom | after-edge | text-bottom | text-after-edge |
+ ideographic | lower | hanging | mathematical | inherit) #IMPLIED
+ baseline-shift %BaselineShiftValue; #IMPLIED
+ direction (ltr | rtl | inherit) #IMPLIED
+ dominant-baseline (auto | autosense-script | no-change | reset|
+ ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
+ glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
+ glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
+ kerning %KerningValue; #IMPLIED
+ letter-spacing %SpacingValue; #IMPLIED
+ text-anchor (start | middle | end | inherit) #IMPLIED
+ text-decoration %TextDecorationValue; #IMPLIED
+ unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
+ word-spacing %SpacingValue; #IMPLIED ">
+<!-- The following presentation attributes apply to 'text' elements. -->
+<!ENTITY % PresentationAttributes-TextElements "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED ">
+<!-- The following presentation attributes apply to elements that establish viewports. -->
+<!ENTITY % PresentationAttributes-Viewports "clip %ClipValue; #IMPLIED
+ overflow (visible | hidden | scroll | auto | inherit) #IMPLIED ">
+<!--The following represents the complete list of presentation attributes. -->
+<!ENTITY % PresentationAttributes-All "%PresentationAttributes-Color;
+ %PresentationAttributes-Containers;
+ %PresentationAttributes-feFlood;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FilterPrimitives;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Gradients;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Images;
+ %PresentationAttributes-LightingEffects;
+ %PresentationAttributes-Markers;
+ %PresentationAttributes-TextContentElements;
+ %PresentationAttributes-TextElements;
+ %PresentationAttributes-Viewports;">
+<!-- ==============================================================
+ ENTITY DECLARATIONS: DTD extensions
+ ============================================================== -->
+<!-- Allow for extending the DTD with internal subset for
+ container and graphics elements -->
+<!ENTITY % ceExt "">
+<!ENTITY % geExt "">
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Document Structure
+ ============================================================== -->
+<!ENTITY % svgExt "">
+<!ELEMENT svg (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%svgExt;)* >
+<!ATTLIST svg
+ xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ zoomAndPan (disable | magnify) "magnify"
+ %graphicsElementEvents;
+ %documentEvents;
+ version %Number; #FIXED "1.0"
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ contentScriptType %ContentType; "text/ecmascript"
+ contentStyleType %ContentType; "text/css"
+>
+<!ENTITY % gExt "">
+<!ELEMENT g (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%gExt;)* >
+<!ATTLIST g
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+>
+<!ENTITY % defsExt "">
+<!ELEMENT defs (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%defsExt;)* >
+<!ATTLIST defs
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+>
+<!ENTITY % descExt "">
+<!ELEMENT desc (#PCDATA %descExt;)* >
+<!ATTLIST desc
+ %stdAttrs;
+ %langSpaceAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %StructuredText;
+>
+<!ENTITY % titleExt "">
+<!ELEMENT title (#PCDATA %titleExt;)* >
+<!ATTLIST title
+ %stdAttrs;
+ %langSpaceAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %StructuredText;
+>
+<!ENTITY % symbolExt "">
+<!ELEMENT symbol (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%symbolExt;)* >
+<!ATTLIST symbol
+ %stdAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ %graphicsElementEvents;
+>
+<!ENTITY % useExt "">
+<!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%useExt;)*) >
+<!ATTLIST use
+ %stdAttrs;
+ %xlinkRefAttrsEmbed;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+<!ENTITY % imageExt "">
+<!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%imageExt;)*) >
+<!ATTLIST image
+ %stdAttrs;
+ %xlinkRefAttrsEmbed;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Images;
+ %PresentationAttributes-Viewports;
+ transform %TransformList; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+>
+<!ENTITY % switchExt "">
+<!ELEMENT switch (%descTitleMetadata;,
+ (path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|switch|a|foreignObject|
+ animate|set|animateMotion|animateColor|animateTransform
+ %ceExt;%switchExt;)*) >
+<!ATTLIST switch
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Styling
+ ============================================================== -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+ %stdAttrs;
+ xml:space (preserve) #FIXED "preserve"
+ type %ContentType; #REQUIRED
+ media %MediaDesc; #IMPLIED
+ title %Text; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Paths
+ ============================================================== -->
+<!ENTITY % pathExt "">
+<!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%pathExt;)*) >
+<!ATTLIST path
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ d %PathData; #REQUIRED
+ pathLength %Number; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Basic Shapes
+ ============================================================== -->
+<!ENTITY % rectExt "">
+<!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%rectExt;)*) >
+<!ATTLIST rect
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+ rx %Length; #IMPLIED
+ ry %Length; #IMPLIED
+>
+<!ENTITY % circleExt "">
+<!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%circleExt;)*) >
+<!ATTLIST circle
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ cx %Coordinate; #IMPLIED
+ cy %Coordinate; #IMPLIED
+ r %Length; #REQUIRED
+>
+<!ENTITY % ellipseExt "">
+<!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%ellipseExt;)*) >
+<!ATTLIST ellipse
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ cx %Coordinate; #IMPLIED
+ cy %Coordinate; #IMPLIED
+ rx %Length; #REQUIRED
+ ry %Length; #REQUIRED
+>
+<!ENTITY % lineExt "">
+<!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%lineExt;)*) >
+<!ATTLIST line
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x1 %Coordinate; #IMPLIED
+ y1 %Coordinate; #IMPLIED
+ x2 %Coordinate; #IMPLIED
+ y2 %Coordinate; #IMPLIED
+>
+<!ENTITY % polylineExt "">
+<!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%polylineExt;)*) >
+<!ATTLIST polyline
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ points %Points; #REQUIRED
+>
+<!ENTITY % polygonExt "">
+<!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%polygonExt;)*) >
+<!ATTLIST polygon
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ points %Points; #REQUIRED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Text
+ ============================================================== -->
+<!ENTITY % textExt "">
+<!ELEMENT text (#PCDATA|desc|title|metadata|
+ tspan|tref|textPath|altGlyph|a|animate|set|
+ animateMotion|animateColor|animateTransform
+ %geExt;%textExt;)* >
+<!ATTLIST text
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %PresentationAttributes-TextElements;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+>
+<!ENTITY % tspanExt "">
+<!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
+ %tspanExt;)* >
+<!ATTLIST tspan
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+>
+<!ENTITY % trefExt "">
+<!ELEMENT tref (desc|title|metadata|animate|set|animateColor
+ %trefExt;)* >
+<!ATTLIST tref
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+>
+<!ENTITY % divExt "">
+<!--ELEMENT div (#PCDATA | region | div | p | span | animate | set | animateMotion | animateColor | animateTransform | %divExt;)*-->
+<!ELEMENT div (#PCDATA | region | div | p | span | animate | set | animateMotion | animateColor | animateTransform %ceExt;%divExt;)*>
+
+<!ATTLIST div
+ %stdAttrs;
+ %langSpaceAttrs;
+ %testAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ spacing (auto | exact) #IMPLIED
+>
+<!ENTITY % pExt "">
+<!--ELEMENT p (#PCDATA | p | div | span | animate | set | animateMotion | animateColor | animateTransform | %pExt;)*-->
+<!ELEMENT p (#PCDATA | p | div | span | animate | set | animateMotion | animateColor | animateTransform %ceExt;%pExt;)*>
+<!ATTLIST p
+ %stdAttrs;
+ %langSpaceAttrs;
+ %testAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+>
+<!ENTITY % spanExt "">
+<!ELEMENT span (#PCDATA | animate | set | animateMotion | animateColor | animateTransform %ceExt;%spanExt;)*>
+<!--ELEMENT span (#PCDATA | animate | set | animateMotion | animateColor | animateTransform | %spanExt;)*-->
+
+<!ATTLIST span
+ %stdAttrs;
+ %langSpaceAttrs;
+ %testAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+>
+<!ENTITY % regionExt "">
+<!--ELEMENT region (rect | use | %regionExt;)*-->
+<!ELEMENT region (rect | use %ceExt;%regionExt;)*>
+<!ATTLIST region
+ %stdAttrs;
+ %langSpaceAttrs;
+ %testAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ %graphicsElementEvents;
+>
+<!ENTITY % brExt "">
+<!-- dont think this can be extended from EMPTY to having coontent
+<!ELEMENT br (%ceExt;%brExt;)*-->
+<!ELEMENT br EMPTY >
+<!ATTLIST br
+ %stdAttrs;
+ %testAttrs;
+>
+<!ENTITY % textPathExt "">
+<!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
+ %textPathExt;)* >
+<!ATTLIST textPath
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ %langSpaceAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ startOffset %Length; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+ method (align | stretch) #IMPLIED
+ spacing (auto | exact) #IMPLIED
+>
+<!ENTITY % altGlyphExt "">
+<!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
+<!ATTLIST altGlyph
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ glyphRef CDATA #IMPLIED
+ format CDATA #IMPLIED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+>
+<!ENTITY % altGlyphDefExt "">
+<!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
+<!ATTLIST altGlyphDef
+ %stdAttrs;
+>
+<!ENTITY % altGlyphItemExt "">
+<!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
+<!ATTLIST altGlyphItem
+ %stdAttrs;
+>
+<!ELEMENT glyphRef EMPTY>
+<!ATTLIST glyphRef
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-FontSpecification;
+ glyphRef CDATA #IMPLIED
+ format CDATA #IMPLIED
+ x %Number; #IMPLIED
+ y %Number; #IMPLIED
+ dx %Number; #IMPLIED
+ dy %Number; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols
+ ============================================================== -->
+<!ENTITY % markerExt "">
+<!ELEMENT marker (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%markerExt;)* >
+<!ATTLIST marker
+ %stdAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ refX %Coordinate; #IMPLIED
+ refY %Coordinate; #IMPLIED
+ markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
+ markerWidth %Length; #IMPLIED
+ markerHeight %Length; #IMPLIED
+ orient CDATA #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Color
+ ============================================================== -->
+<!ELEMENT color-profile (%descTitleMetadata;)>
+<!ATTLIST color-profile
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ local CDATA #IMPLIED
+ name CDATA #REQUIRED
+ rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto"
+>
+<!ENTITY % solidColorExt "">
+<!--ELEMENT solidColor (%descTitleMetadata;, (stop | animate | set | animateTransform | animateColor | animateMotion | %solidExt;)*)-->
+<!ELEMENT solidColor (%descTitleMetadata;, (stop | animate | set | animateTransform | animateColor | animateMotion %ceExt;%solidColorExt;)*)>
+
+<!ATTLIST solidColor
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-SolidColor;
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Gradients and Patterns
+ ============================================================== -->
+<!ENTITY % linearGradientExt "">
+<!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
+ %linearGradientExt;)*) >
+<!ATTLIST linearGradient
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Gradients;
+ gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ gradientTransform %TransformList; #IMPLIED
+ x1 %Coordinate; #IMPLIED
+ y1 %Coordinate; #IMPLIED
+ x2 %Coordinate; #IMPLIED
+ y2 %Coordinate; #IMPLIED
+ spreadMethod (pad | reflect | repeat) #IMPLIED
+>
+<!ENTITY % radialGradientExt "">
+<!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
+ %radialGradientExt;)*) >
+<!ATTLIST radialGradient
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Gradients;
+ gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ gradientTransform %TransformList; #IMPLIED
+ cx %Coordinate; #IMPLIED
+ cy %Coordinate; #IMPLIED
+ r %Length; #IMPLIED
+ fx %Coordinate; #IMPLIED
+ fy %Coordinate; #IMPLIED
+ spreadMethod (pad | reflect | repeat) #IMPLIED
+>
+<!ENTITY % stopExt "">
+<!ELEMENT stop (animate|set|animateColor
+ %stopExt;)* >
+<!ATTLIST stop
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Gradients;
+ offset %NumberOrPercentage; #REQUIRED
+>
+<!ENTITY % patternExt "">
+<!ELEMENT pattern (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%patternExt;)* >
+<!ATTLIST pattern
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ patternTransform %TransformList; #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing
+ ============================================================== -->
+<!ENTITY % clipPathExt "">
+<!ELEMENT clipPath (%descTitleMetadata;,
+ (path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|animate|set|animateMotion|animateColor|animateTransform
+ %ceExt;%clipPathExt;)*) >
+<!ATTLIST clipPath
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %PresentationAttributes-TextElements;
+ transform %TransformList; #IMPLIED
+ clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+>
+<!ENTITY % maskExt "">
+<!ELEMENT mask (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%maskExt;)* >
+<!ATTLIST mask
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Filter Effects
+ ============================================================== -->
+<!ENTITY % filterExt "">
+<!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
+ feColorMatrix|feComponentTransfer|
+ feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
+ feGaussianBlur|feImage|feMerge|
+ feMorphology|feOffset|feSpecularLighting|
+ feTile|feTurbulence|
+ animate|set
+ %filterExt;)*) >
+<!ATTLIST filter
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ filterRes %NumberOptionalNumber; #IMPLIED
+>
+<!ENTITY % filter_primitive_attributes "x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ result CDATA #IMPLIED">
+<!ENTITY % filter_primitive_attributes_with_in "%filter_primitive_attributes;
+ in CDATA #IMPLIED">
+<!ELEMENT feDistantLight (animate | set)*>
+<!ATTLIST feDistantLight
+ %stdAttrs;
+ azimuth %Number; #IMPLIED
+ elevation %Number; #IMPLIED
+>
+<!ELEMENT fePointLight (animate | set)*>
+<!ATTLIST fePointLight
+ %stdAttrs;
+ x %Number; #IMPLIED
+ y %Number; #IMPLIED
+ z %Number; #IMPLIED
+>
+<!ELEMENT feSpotLight (animate | set)*>
+<!ATTLIST feSpotLight
+ %stdAttrs;
+ x %Number; #IMPLIED
+ y %Number; #IMPLIED
+ z %Number; #IMPLIED
+ pointsAtX %Number; #IMPLIED
+ pointsAtY %Number; #IMPLIED
+ pointsAtZ %Number; #IMPLIED
+ specularExponent %Number; #IMPLIED
+ limitingConeAngle %Number; #IMPLIED
+>
+<!ELEMENT feBlend (animate | set)*>
+<!ATTLIST feBlend
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ in2 CDATA #REQUIRED
+ mode (normal | multiply | screen | darken | lighten) "normal"
+>
+<!ELEMENT feColorMatrix (animate | set)*>
+<!ATTLIST feColorMatrix
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
+ values CDATA #IMPLIED
+>
+<!ELEMENT feComponentTransfer (feFuncR?, feFuncG?, feFuncB?, feFuncA?)>
+<!ATTLIST feComponentTransfer
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+>
+<!ENTITY % component_transfer_function_attributes "type (identity | table | discrete | linear | gamma) #REQUIRED
+ tableValues CDATA #IMPLIED
+ slope %Number; #IMPLIED
+ intercept %Number; #IMPLIED
+ amplitude %Number; #IMPLIED
+ exponent %Number; #IMPLIED
+ offset %Number; #IMPLIED">
+<!ELEMENT feFuncR (animate | set)*>
+<!ATTLIST feFuncR
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feFuncG (animate | set)*>
+<!ATTLIST feFuncG
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feFuncB (animate | set)*>
+<!ATTLIST feFuncB
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feFuncA (animate | set)*>
+<!ATTLIST feFuncA
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feComposite (animate | set)*>
+<!ATTLIST feComposite
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ in2 CDATA #REQUIRED
+ operator (over | in | out | atop | xor | arithmetic) "over"
+ k1 %Number; #IMPLIED
+ k2 %Number; #IMPLIED
+ k3 %Number; #IMPLIED
+ k4 %Number; #IMPLIED
+>
+<!ELEMENT feConvolveMatrix (animate | set)*>
+<!ATTLIST feConvolveMatrix
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ order %NumberOptionalNumber; #REQUIRED
+ kernelMatrix CDATA #REQUIRED
+ divisor %Number; #IMPLIED
+ bias %Number; #IMPLIED
+ targetX %Integer; #IMPLIED
+ targetY %Integer; #IMPLIED
+ edgeMode (duplicate | wrap | none) "duplicate"
+ kernelUnitLength %NumberOptionalNumber; #IMPLIED
+ preserveAlpha %Boolean; #IMPLIED
+>
+<!ELEMENT feDiffuseLighting ((feDistantLight | fePointLight | feSpotLight), (animate | set | animateColor)*)>
+<!ATTLIST feDiffuseLighting
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FilterPrimitives;
+ %PresentationAttributes-LightingEffects;
+ %filter_primitive_attributes_with_in;
+ surfaceScale %Number; #IMPLIED
+ diffuseConstant %Number; #IMPLIED
+ kernelUnitLength %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feDisplacementMap (animate | set)*>
+<!ATTLIST feDisplacementMap
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ in2 CDATA #REQUIRED
+ scale %Number; #IMPLIED
+ xChannelSelector (R | G | B | A) "A"
+ yChannelSelector (R | G | B | A) "A"
+>
+<!ELEMENT feFlood (animate | set | animateColor)*>
+<!ATTLIST feFlood
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-feFlood;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+>
+<!ELEMENT feGaussianBlur (animate | set)*>
+<!ATTLIST feGaussianBlur
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ stdDeviation %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feImage (animate | set | animateTransform)*>
+<!ATTLIST feImage
+ %stdAttrs;
+ %xlinkRefAttrsEmbed;
+ xlink:href %URI; #REQUIRED
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %filter_primitive_attributes;
+ %PresentationAttributes-All;
+>
+<!ELEMENT feMerge (feMergeNode)*>
+<!ATTLIST feMerge
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes;
+>
+<!ELEMENT feMergeNode (animate | set)*>
+<!ATTLIST feMergeNode
+ %stdAttrs;
+ in CDATA #IMPLIED
+>
+<!ELEMENT feMorphology (animate | set)*>
+<!ATTLIST feMorphology
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ operator (erode | dilate) "erode"
+ radius %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feOffset (animate | set)*>
+<!ATTLIST feOffset
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ dx %Number; #IMPLIED
+ dy %Number; #IMPLIED
+>
+<!ELEMENT feSpecularLighting ((feDistantLight | fePointLight | feSpotLight), (animate | set | animateColor)*)>
+<!ATTLIST feSpecularLighting
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FilterPrimitives;
+ %PresentationAttributes-LightingEffects;
+ %filter_primitive_attributes_with_in;
+ surfaceScale %Number; #IMPLIED
+ specularConstant %Number; #IMPLIED
+ specularExponent %Number; #IMPLIED
+ kernelUnitLength %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feTile (animate | set)*>
+<!ATTLIST feTile
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+>
+<!ELEMENT feTurbulence (animate | set)*>
+<!ATTLIST feTurbulence
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes;
+ baseFrequency %NumberOptionalNumber; #IMPLIED
+ numOctaves %Integer; #IMPLIED
+ seed %Number; #IMPLIED
+ stitchTiles (stitch | noStitch) "noStitch"
+ type (fractalNoise | turbulence) "turbulence"
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Interactivity
+ ============================================================== -->
+<!ELEMENT cursor (%descTitleMetadata;)>
+<!ATTLIST cursor
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Linking
+ ============================================================== -->
+<!ENTITY % aExt "">
+<!ELEMENT a (#PCDATA|desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%aExt;)* >
+<!ATTLIST a
+ %stdAttrs;
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type (simple) #FIXED "simple"
+ xlink:role %URI; #IMPLIED
+ xlink:arcrole %URI; #IMPLIED
+ xlink:title CDATA #IMPLIED
+ xlink:show (new | replace) "replace"
+ xlink:actuate (onRequest) #FIXED "onRequest"
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ target %LinkTarget; #IMPLIED
+>
+<!ENTITY % viewExt "">
+<!ELEMENT view (%descTitleMetadata;%viewExt;) >
+<!ATTLIST view
+ %stdAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ zoomAndPan (disable | magnify) "magnify"
+ viewTarget CDATA #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Scripting
+ ============================================================== -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ externalResourcesRequired %Boolean; #IMPLIED
+ type %ContentType; #REQUIRED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Animation
+ ============================================================== -->
+<!ENTITY % animElementAttrs "%xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED">
+<!ENTITY % animAttributeAttrs "attributeName CDATA #REQUIRED
+ attributeType CDATA #IMPLIED">
+<!ENTITY % animTimingAttrs "begin CDATA #IMPLIED
+ dur CDATA #IMPLIED
+ end CDATA #IMPLIED
+ min CDATA #IMPLIED
+ max CDATA #IMPLIED
+ restart (always | never | whenNotActive) 'always'
+ repeatCount CDATA #IMPLIED
+ repeatDur CDATA #IMPLIED
+ fill (remove | freeze) 'remove'">
+<!ENTITY % animValueAttrs "calcMode (discrete | linear | paced | spline) 'linear'
+ values CDATA #IMPLIED
+ keyTimes CDATA #IMPLIED
+ keySplines CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED
+ by CDATA #IMPLIED">
+<!ENTITY % animAdditionAttrs "additive (replace | sum) 'replace'
+ accumulate (none | sum) 'none'">
+<!ENTITY % animateExt "">
+<!ELEMENT animate (%descTitleMetadata;%animateExt;) >
+<!ATTLIST animate
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ %animValueAttrs;
+ %animAdditionAttrs;
+>
+<!ENTITY % setExt "">
+<!ELEMENT set (%descTitleMetadata;%setExt;) >
+<!ATTLIST set
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ to CDATA #IMPLIED
+>
+<!ENTITY % animateMotionExt "">
+<!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
+<!ATTLIST animateMotion
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animTimingAttrs;
+ calcMode (discrete | linear | paced | spline) "paced"
+ values CDATA #IMPLIED
+ keyTimes CDATA #IMPLIED
+ keySplines CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED
+ by CDATA #IMPLIED
+ %animAdditionAttrs;
+ path CDATA #IMPLIED
+ keyPoints CDATA #IMPLIED
+ rotate CDATA #IMPLIED
+ origin CDATA #IMPLIED
+>
+<!ENTITY % mpathExt "">
+<!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
+<!ATTLIST mpath
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ externalResourcesRequired %Boolean; #IMPLIED
+>
+<!ENTITY % animateColorExt "">
+<!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
+<!ATTLIST animateColor
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ %animValueAttrs;
+ %animAdditionAttrs;
+>
+<!ENTITY % animateTransformExt "">
+<!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
+<!ATTLIST animateTransform
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ %animValueAttrs;
+ %animAdditionAttrs;
+ type (translate | scale | rotate | skewX | skewY) "translate"
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Fonts
+ ============================================================== -->
+<!ENTITY % fontExt "">
+<!ELEMENT font (%descTitleMetadata;,font-face,
+ missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
+<!ATTLIST font
+ %stdAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ horiz-origin-x %Number; #IMPLIED
+ horiz-origin-y %Number; #IMPLIED
+ horiz-adv-x %Number; #REQUIRED
+ vert-origin-x %Number; #IMPLIED
+ vert-origin-y %Number; #IMPLIED
+ vert-adv-y %Number; #IMPLIED
+>
+<!ENTITY % glyphExt "">
+<!ELEMENT glyph (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %glyphExt;)* >
+<!ATTLIST glyph
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ unicode CDATA #IMPLIED
+ glyph-name CDATA #IMPLIED
+ d %PathData; #IMPLIED
+ orientation CDATA #IMPLIED
+ arabic-form CDATA #IMPLIED
+ lang %LanguageCodes; #IMPLIED
+ horiz-adv-x %Number; #IMPLIED
+ vert-origin-x %Number; #IMPLIED
+ vert-origin-y %Number; #IMPLIED
+ vert-adv-y %Number; #IMPLIED
+>
+<!ENTITY % missing-glyphExt "">
+<!ELEMENT missing-glyph (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|solidColor|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %missing-glyphExt;)* >
+<!ATTLIST missing-glyph
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ d %PathData; #IMPLIED
+ horiz-adv-x %Number; #IMPLIED
+ vert-origin-x %Number; #IMPLIED
+ vert-origin-y %Number; #IMPLIED
+ vert-adv-y %Number; #IMPLIED
+>
+<!ELEMENT hkern EMPTY>
+<!ATTLIST hkern
+ %stdAttrs;
+ u1 CDATA #IMPLIED
+ g1 CDATA #IMPLIED
+ u2 CDATA #IMPLIED
+ g2 CDATA #IMPLIED
+ k %Number; #REQUIRED
+>
+<!ELEMENT vkern EMPTY>
+<!ATTLIST vkern
+ %stdAttrs;
+ u1 CDATA #IMPLIED
+ g1 CDATA #IMPLIED
+ u2 CDATA #IMPLIED
+ g2 CDATA #IMPLIED
+ k %Number; #REQUIRED
+>
+<!ELEMENT font-face (%descTitleMetadata;, font-face-src?, definition-src?)>
+<!ATTLIST font-face
+ %stdAttrs;
+ font-family CDATA #IMPLIED
+ font-style CDATA #IMPLIED
+ font-variant CDATA #IMPLIED
+ font-weight CDATA #IMPLIED
+ font-stretch CDATA #IMPLIED
+ font-size CDATA #IMPLIED
+ unicode-range CDATA #IMPLIED
+ units-per-em %Number; #IMPLIED
+ panose-1 CDATA #IMPLIED
+ stemv %Number; #IMPLIED
+ stemh %Number; #IMPLIED
+ slope %Number; #IMPLIED
+ cap-height %Number; #IMPLIED
+ x-height %Number; #IMPLIED
+ accent-height %Number; #IMPLIED
+ ascent %Number; #IMPLIED
+ descent %Number; #IMPLIED
+ widths CDATA #IMPLIED
+ bbox CDATA #IMPLIED
+ ideographic %Number; #IMPLIED
+ alphabetic %Number; #IMPLIED
+ mathematical %Number; #IMPLIED
+ hanging %Number; #IMPLIED
+ v-ideographic %Number; #IMPLIED
+ v-alphabetic %Number; #IMPLIED
+ v-mathematical %Number; #IMPLIED
+ v-hanging %Number; #IMPLIED
+ underline-position %Number; #IMPLIED
+ underline-thickness %Number; #IMPLIED
+ strikethrough-position %Number; #IMPLIED
+ strikethrough-thickness %Number; #IMPLIED
+ overline-position %Number; #IMPLIED
+ overline-thickness %Number; #IMPLIED
+>
+<!ELEMENT font-face-src (font-face-uri | font-face-name)+>
+<!ATTLIST font-face-src
+ %stdAttrs;
+>
+<!ELEMENT font-face-uri (font-face-format*)>
+<!ATTLIST font-face-uri
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+>
+<!ELEMENT font-face-format EMPTY>
+<!ATTLIST font-face-format
+ %stdAttrs;
+ string CDATA #IMPLIED
+>
+<!ELEMENT font-face-name EMPTY>
+<!ATTLIST font-face-name
+ %stdAttrs;
+ name CDATA #IMPLIED
+>
+<!ELEMENT definition-src EMPTY>
+<!ATTLIST definition-src
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Metadata
+ ============================================================== -->
+<!ENTITY % metadataExt "">
+<!ELEMENT metadata (#PCDATA %metadataExt;)* >
+<!ATTLIST metadata
+ %stdAttrs;
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Extensibility
+ ============================================================== -->
+<!ENTITY % foreignObjectExt "">
+<!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
+<!ATTLIST foreignObject
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+ %StructuredText;
+>
diff --git a/test/svg/svg1.2/images/SVGFreeSans-ISO-8859-1.svg b/test/svg/svg1.2/images/SVGFreeSans-ISO-8859-1.svg
new file mode 100644
index 0000000..159a33a
--- /dev/null
+++ b/test/svg/svg1.2/images/SVGFreeSans-ISO-8859-1.svg
@@ -0,0 +1,1305 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
+<metadata>
+Copyleft 2002, 2003 Free Software Foundation.
+</metadata>
+<defs>
+ <font id="iso_8859_1" horiz-adv-x="1000" >
+ <font-face
+ font-family="SVGFreeSansISO-8859-1"
+ units-per-em="1000"
+ panose-1="2 11 5 4 2 2 2 2 2 4"
+ ascent="800"
+ descent="-200"
+ alphabetic="0" />
+ <missing-glyph horiz-adv-x="432"
+d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+ <glyph glyph-name="uniFB4F" unicode="אל" horiz-adv-x="640"
+d="M72 580v169h87v-149l229 -325q25 17 32 28q47 61 57 86q9 25 10 61v150h87v-150l-3 -43q-11 -62 -69 -135q-5 -5 -10 -12q-20 -25 -58 -50l148 -210h-102z" />
+ <glyph glyph-name=".notdef" horiz-adv-x="432"
+d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+ <glyph glyph-name=".null" horiz-adv-x="0"
+ />
+ <glyph glyph-name="nonmarkingreturn" unicode="
" horiz-adv-x="333"
+ />
+ <glyph glyph-name="space" unicode=" " horiz-adv-x="278"
+ />
+ <glyph glyph-name="exclam" unicode="!" horiz-adv-x="278"
+d="M208 729v-338l-22 -223h-39l-22 223v338h83zM208 104v-104h-84v104h84z" />
+ <glyph glyph-name="quotedbl" unicode=""" horiz-adv-x="355"
+d="M52 709h93v-111l-27 -134h-39l-27 134v111zM212 709h93v-111l-27 -134h-39l-27 134v111z" />
+ <glyph glyph-name="numbersign" unicode="#" horiz-adv-x="556"
+d="M485 697l-36 -196h93v-68h-106l-31 -174h105v-68h-117l-39 -211h-76l38 211h-124l-39 -211h-76l38 211h-101v68h114l31 174h-108v68h121l36 196h76l-36 -196h125l35 196h77zM360 433h-124l-32 -174h125z" />
+ <glyph glyph-name="dollar" unicode="$" horiz-adv-x="556"
+d="M243 770h59v-54q126 -9 173 -102q19 -38 21 -85v-10h-79q-1 77 -58 111q-20 11 -44 15q-6 1 -13 1v-249q100 -31 131 -48q85 -48 85 -154q0 -104 -68 -165q-11 -10 -24 -18q-49 -29 -124 -35v-103h-59v103q-154 10 -197 127q-14 39 -13 87v17h79q7 -74 21 -98q2 -3 4 -7
+q35 -48 106 -57v272q-93 28 -126 52q-71 51 -71 146q0 146 140 188q26 8 57 12v54zM243 405v240q-96 -13 -113 -89q-3 -14 -3 -30q0 -90 116 -121zM302 309v-263q61 7 92 37q42 40 42 100q0 61 -47 91q-29 18 -87 35z" />
+ <glyph glyph-name="percent" unicode="%" horiz-adv-x="889"
+d="M199 685q84 0 135 -66l18 -28q18 -37 18 -79q0 -79 -63 -130q-47 -39 -107 -39q-81 0 -133 63q-38 48 -38 108q0 81 63 133q47 38 107 38zM199 615q-54 0 -84 -46l-12 -23q-5 -16 -5 -32q0 -53 45 -84q26 -17 57 -17q54 0 84 45q17 25 17 55q0 57 -48 87q-24 15 -54 15z
+M609 709h66l-395 -729h-66zM688 322q85 0 136 -66q35 -46 35 -106q0 -79 -63 -130q-47 -39 -107 -39q-81 0 -133 63q-38 48 -38 108q0 81 64 132q47 38 106 38zM688 252q-54 0 -84 -45q-17 -25 -17 -55q0 -55 47 -85q25 -16 55 -16q54 0 84 45q17 25 17 54q0 57 -48 87
+l-23 10q-15 5 -31 5z" />
+ <glyph glyph-name="ampersand" unicode="&" horiz-adv-x="667"
+d="M493 334h80q0 -94 -58 -183l122 -151h-109l-62 78q-49 -48 -77 -65q-56 -36 -132 -36q-116 0 -172 82q-33 49 -33 117q0 81 52 134q36 36 110 79q-70 88 -79 136q-2 13 -2 27q0 77 65 124q46 33 106 33q90 0 136 -66l15 -28q9 -21 11 -45q1 -9 1 -18q0 -69 -55 -118
+q-29 -26 -83 -56l133 -163q31 54 31 114v5zM285 431q81 51 96 88q7 15 7 35q0 52 -45 75q-19 10 -42 10q-60 0 -80 -50q-6 -16 -6 -36q0 -33 25 -68zM418 137l-160 200q-94 -60 -114 -110q-8 -20 -8 -44q0 -65 54 -103q35 -25 77 -25q67 0 135 65q8 8 16 17z" />
+ <glyph glyph-name="quotesingle" unicode="'" horiz-adv-x="191"
+d="M48 709h94v-111l-27 -134h-40l-27 134v111z" />
+ <glyph glyph-name="parenleft" unicode="(" horiz-adv-x="333"
+d="M236 729h55q-124 -200 -136 -429q-1 -21 -1 -41q0 -233 122 -446q7 -13 15 -25h-55q-113 148 -150 340q-13 68 -13 131q0 179 93 358q31 61 70 112z" />
+ <glyph glyph-name="parenright" unicode=")" horiz-adv-x="333"
+d="M93 -212h-55q124 200 136 429q1 21 1 41q0 233 -122 446q-7 13 -15 25h55q113 -148 150 -340q13 -68 13 -131q0 -179 -93 -358q-31 -61 -70 -112z" />
+ <glyph glyph-name="asterisk" unicode="*" horiz-adv-x="389"
+d="M160 729h63l-5 -112l106 38l19 -59l-108 -30l70 -89l-51 -36l-62 93l-63 -93l-50 36l69 89l-108 30l19 59l106 -38z" />
+ <glyph glyph-name="plus" unicode="+" horiz-adv-x="584"
+d="M534 267v-70h-207v-207h-70v207h-207v70h207v207h70v-207h207z" />
+ <glyph glyph-name="comma" unicode="," horiz-adv-x="278"
+d="M87 104h105v-120q0 -131 -105 -131v38q43 2 53 33q7 19 7 58v18h-60v104z" />
+ <glyph glyph-name="hyphen" unicode="-" horiz-adv-x="333"
+d="M284 312v-72h-238v72h238z" />
+ <glyph glyph-name="period" unicode="." horiz-adv-x="278"
+d="M191 104v-104h-104v104h104z" />
+ <glyph glyph-name="slash" unicode="/" horiz-adv-x="278"
+d="M229 729h55l-237 -749h-55z" />
+ <glyph glyph-name="zero" unicode="0" horiz-adv-x="556"
+d="M275 709q218 0 231 -329q1 -21 1 -43q0 -271 -138 -340q-42 -20 -94 -20q-176 0 -219 216q-13 66 -13 150q0 195 69 288q54 71 149 78h14zM275 631q-142 0 -142 -289q0 -292 140 -292q118 0 139 192q5 46 5 103q0 286 -142 286z" />
+ <glyph glyph-name="one" unicode="1" horiz-adv-x="556"
+d="M259 505h-157v63q102 13 132 36q30 22 51 93l4 12h58v-709h-88v505z" />
+ <glyph glyph-name="two" unicode="2" horiz-adv-x="556"
+d="M284 709q121 0 185 -80l19 -30q23 -44 23 -98q0 -132 -150 -214l-100 -54q-91 -53 -115 -102q-9 -20 -13 -44h373v-87h-472q7 128 57 195q42 55 142 112l92 52q96 55 96 140q0 72 -60 111q-35 22 -80 22q-75 0 -115 -57l-7 -12q-17 -32 -21 -100h-88q3 100 38 154
+q60 92 196 92z" />
+ <glyph glyph-name="three" unicode="3" horiz-adv-x="556"
+d="M266 -23q-197 0 -229 184q-3 21 -5 45h88q8 -132 113 -148q17 -3 36 -3q104 0 136 79q11 28 11 63q0 129 -147 129l-37 -1h-11v75q113 2 147 33q27 25 27 78q0 85 -70 112q-24 9 -55 9q-78 0 -113 -53l-6 -10q-15 -29 -16 -89h-88q4 210 190 228q15 1 32 1q140 0 192 -94
+q24 -43 24 -101q0 -108 -99 -147q93 -32 113 -108q7 -26 7 -61q0 -123 -94 -183q-60 -38 -146 -38z" />
+ <glyph glyph-name="four" unicode="4" horiz-adv-x="556"
+d="M327 170h-299v93l322 446h65v-460h105v-79h-105v-170h-88v170zM327 249v310l-222 -310h222z" />
+ <glyph glyph-name="five" unicode="5" horiz-adv-x="556"
+d="M476 709v-87h-295l-28 -198q59 43 131 43q120 0 184 -87q45 -61 45 -149q0 -129 -87 -201q-64 -53 -156 -53q-112 0 -177 67q-8 9 -15 18q-27 33 -43 112h88q31 -119 145 -119q101 0 139 81q16 36 16 83q0 109 -76 151q-34 19 -79 19q-64 0 -109 -43q-10 -10 -21 -23h-81
+l53 386h366z" />
+ <glyph glyph-name="six" unicode="6" horiz-adv-x="556"
+d="M281 -23q-238 0 -238 346q0 185 64 285q56 84 156 99q17 2 34 2q115 0 170 -93q23 -40 31 -92h-88q-18 88 -91 104q-13 3 -28 3q-111 0 -145 -144q-13 -54 -13 -125q58 79 163 79q111 0 173 -83q44 -59 44 -142q0 -119 -82 -187q-62 -52 -150 -52zM285 363
+q-85 0 -125 -66q-22 -36 -22 -83q0 -86 61 -132q36 -27 83 -27q76 0 116 63q25 40 25 91q0 102 -71 139q-29 15 -67 15z" />
+ <glyph glyph-name="seven" unicode="7" horiz-adv-x="556"
+d="M520 709v-74q-202 -268 -268 -539q-12 -47 -20 -96h-94q50 218 143 389q55 101 148 233h-383v87h474z" />
+ <glyph glyph-name="eight" unicode="8" horiz-adv-x="556"
+d="M391 373q122 -58 122 -177q0 -112 -86 -173q-63 -46 -152 -46q-124 0 -191 82q-47 58 -47 138q0 118 121 176q-72 45 -88 93q-8 23 -8 54q0 99 81 152q55 37 132 37q116 0 175 -76q38 -48 38 -113q0 -68 -45 -109l-32 -26q-9 -6 -20 -12zM275 631q-80 0 -110 -58l-10 -26
+l-3 -28q0 -70 61 -98q27 -13 62 -13q80 0 110 57q13 24 13 53q0 75 -65 102q-25 11 -58 11zM275 334q-89 0 -128 -64q-20 -33 -20 -75q0 -82 66 -120q34 -20 80 -20q91 0 130 65q20 33 20 75q0 82 -67 120q-35 19 -81 19z" />
+ <glyph glyph-name="nine" unicode="9" horiz-adv-x="556"
+d="M270 709q239 0 239 -346q0 -185 -65 -285q-53 -81 -150 -98q-20 -3 -40 -3q-115 0 -170 93q-23 40 -31 92h88q18 -88 91 -104q13 -3 28 -3q111 0 145 144q13 54 13 125q-70 -77 -162 -79q-112 0 -174 83q-44 59 -44 142q0 119 82 187q62 52 150 52zM269 632
+q-76 0 -116 -64l-15 -30l-8 -35q-2 -13 -2 -26q0 -102 71 -139q29 -15 67 -15q83 0 124 65q23 36 23 84q0 87 -61 133q-37 27 -83 27z" />
+ <glyph glyph-name="colon" unicode=":" horiz-adv-x="278"
+d="M214 104v-104h-104v104h104zM214 524v-104h-104v104h104z" />
+ <glyph glyph-name="semicolon" unicode=";" horiz-adv-x="278"
+d="M215 524v-104h-104v104h104zM110 104h105v-120q0 -131 -105 -131v38q43 2 53 33q7 19 7 58v18h-60v104z" />
+ <glyph glyph-name="less" unicode="<" horiz-adv-x="584"
+d="M45 198v69l489 207v-79l-394 -161l394 -164v-79z" />
+ <glyph glyph-name="equal" unicode="=" horiz-adv-x="584"
+d="M534 353v-70h-484v70h484zM534 181v-70h-484v70h484z" />
+ <glyph glyph-name="greater" unicode=">" horiz-adv-x="584"
+d="M539 267v-69l-489 -207v79l394 161l-394 164v79z" />
+ <glyph glyph-name="question" unicode="?" horiz-adv-x="556"
+d="M330 199h-90v55q0 50 28 87q17 22 52 55l24 21q74 66 75 132q0 70 -61 100l-31 10q-17 4 -36 4q-82 0 -112 -58q-17 -34 -17 -98h-85q0 211 180 232q19 2 39 2q126 0 182 -83l16 -30q15 -36 15 -79q0 -70 -51 -129q-19 -23 -49 -50q-63 -58 -73 -85q-6 -15 -6 -39v-47z
+M330 104v-104h-90v104h90z" />
+ <glyph glyph-name="at" unicode="@" horiz-adv-x="1015"
+d="M665 501h83l-90 -280q-12 -35 -12 -50q0 -27 29 -40q10 -4 21 -4q64 0 117 72q51 71 51 158q0 120 -97 209q-99 92 -240 98h-15q-147 0 -260 -102l-34 -34q-99 -113 -99 -255q0 -141 105 -238q108 -100 270 -100q79 0 193 32l28 -67q-112 -42 -226 -42q-180 0 -311 107
+q-122 100 -141 247q-3 23 -3 46q0 154 95 284q28 39 63 70q108 98 259 123q37 6 74 6q166 0 289 -101q116 -94 134 -229q3 -21 3 -42q0 -121 -86 -223q-76 -89 -186 -89q-96 0 -110 77q-66 -72 -142 -72q-82 0 -129 69q-34 49 -34 114q0 109 79 193q77 83 178 84
+q84 0 122 -87zM515 458q-66 0 -116 -71q-45 -63 -45 -143q0 -67 47 -101q24 -17 52 -17q58 0 102 65q33 48 49 132q4 22 5 39l-2 26q-11 48 -58 64q-16 6 -34 6z" />
+ <glyph glyph-name="A" unicode="A" horiz-adv-x="667"
+d="M474 219h-281l-77 -219h-99l260 729h120l256 -729h-104zM448 297l-112 332l-120 -332h232z" />
+ <glyph glyph-name="B" unicode="B" horiz-adv-x="667"
+d="M79 0v729h296q103 0 158 -51q58 -52 58 -134q0 -112 -101 -159q105 -41 126 -121q6 -20 7 -43v-13q0 -88 -56 -147q-57 -61 -159 -61h-329zM172 415h180q72 0 106 26q40 31 40 90t-40 90q-34 26 -106 26h-180v-232zM530 207q0 87 -71 115q-26 11 -60 11h-227v-251h227
+q65 0 97 35q34 36 34 90z" />
+ <glyph glyph-name="C" unicode="C" horiz-adv-x="722"
+d="M662 503h-95q-15 75 -53 110q-54 44 -144 46q-128 0 -189 -115q-40 -75 -40 -187q0 -170 95 -249q59 -49 142 -49q109 0 160 77q6 8 10 17q22 42 33 113h96q-33 -289 -300 -289q-141 0 -223 85q-106 109 -106 294q0 183 102 294q82 91 231 91q238 0 281 -238z" />
+ <glyph glyph-name="D" unicode="D" horiz-adv-x="722"
+d="M89 0v729h281q163 0 242 -132l22 -43q33 -81 33 -189q0 -209 -116 -304q-73 -61 -181 -61h-281zM182 82h172q174 0 211 181q9 45 9 101q0 246 -168 278q-25 5 -52 5h-172v-565z" />
+ <glyph glyph-name="E" unicode="E" horiz-adv-x="667"
+d="M183 332v-250h430v-82h-523v729h505v-82h-412v-233h397v-82h-397z" />
+ <glyph glyph-name="F" unicode="F" horiz-adv-x="611"
+d="M183 332v-332h-93v729h489v-82h-396v-233h348v-82h-348z" />
+ <glyph glyph-name="G" unicode="G" horiz-adv-x="778"
+d="M709 385v-389h-59l-23 97q-104 -116 -249 -116q-153 0 -247 114q-87 104 -87 266q0 176 102 286q14 15 30 28q85 70 218 70q179 0 260 -118q33 -49 45 -115h-95q-21 98 -116 134q-42 17 -95 17q-132 0 -203 -104q-53 -78 -53 -193q0 -126 61 -210q8 -10 16 -19
+q72 -72 184 -74q114 0 180 80q49 60 49 144v20h-222v82h304z" />
+ <glyph glyph-name="H" unicode="H" horiz-adv-x="722"
+d="M551 332h-374v-332h-94v729h93v-315h375v315h93v-729h-93v332z" />
+ <glyph glyph-name="I" unicode="I" horiz-adv-x="278"
+d="M194 729v-729h-94v729h94z" />
+ <glyph glyph-name="J" unicode="J" horiz-adv-x="500"
+d="M333 729h93v-547q0 -124 -90 -177q-49 -28 -116 -28q-124 0 -176 86q-27 46 -27 107v64h95v-47q0 -111 81 -129q13 -3 28 -3q58 0 89 45q23 34 23 116v513z" />
+ <glyph glyph-name="K" unicode="K" horiz-adv-x="667"
+d="M172 255v-255h-93v729h93v-369l363 369h120l-297 -297l300 -432h-110l-257 374z" />
+ <glyph glyph-name="L" unicode="L" horiz-adv-x="556"
+d="M173 729v-647h360v-82h-453v729h93z" />
+ <glyph glyph-name="M" unicode="M" horiz-adv-x="833"
+d="M468 0h-98l-207 611v-611h-88v729h129l216 -635l212 635h129v-729h-88v611z" />
+ <glyph glyph-name="N" unicode="N" horiz-adv-x="722"
+d="M646 729v-729h-105l-377 591v-591h-88v729h101l381 -596v596h88z" />
+ <glyph glyph-name="O" unicode="O" horiz-adv-x="778"
+d="M389 741q174 0 271 -123l26 -38q56 -96 56 -227q0 -148 -82 -253q-20 -26 -44 -46q-91 -77 -226 -77q-167 0 -265 117q-87 104 -87 265q0 184 111 291q95 91 240 91zM389 659q-130 0 -202 -102q-56 -80 -56 -198q0 -158 95 -241q67 -59 164 -59q129 0 201 100
+q58 79 58 196q0 165 -98 248q-66 56 -162 56z" />
+ <glyph glyph-name="P" unicode="P" horiz-adv-x="667"
+d="M184 309v-309h-93v729h301q161 0 208 -118q17 -41 17 -96q0 -97 -63 -154q-58 -52 -141 -52h-229zM184 391h194q102 0 132 74q10 24 10 54q0 90 -79 118l-34 8q-14 2 -29 2h-194v-256z" />
+ <glyph glyph-name="Q" unicode="Q" horiz-adv-x="778"
+d="M733 -1l-47 -58l-105 87q-86 -51 -191 -51q-167 0 -265 117q-87 104 -87 265q0 184 111 291q96 91 241 91q166 0 264 -116q88 -104 88 -264q0 -172 -103 -285zM481 205l89 -73q79 89 79 228q0 157 -94 240q-68 59 -165 59q-131 0 -203 -102q-56 -80 -56 -198
+q0 -159 95 -242q67 -58 163 -58q60 0 120 28l-74 62z" />
+ <glyph glyph-name="R" unicode="R" horiz-adv-x="722"
+d="M186 314v-314h-93v729h336q170 0 211 -120q11 -33 11 -75q0 -98 -72 -149q-19 -13 -43 -25q62 -27 81 -67q17 -37 18 -123q2 -96 19 -123q9 -13 25 -24v-23h-113q-21 48 -21 119l1 65q0 109 -80 126q-18 4 -40 4h-240zM186 396h225q121 0 139 86q4 17 4 39q0 66 -38 98
+q-32 28 -105 28h-225v-251z" />
+ <glyph glyph-name="S" unicode="S" horiz-adv-x="667"
+d="M596 515h-88q-1 111 -110 140q-32 8 -72 8q-104 0 -145 -62l-12 -24q-6 -17 -6 -37q0 -56 54 -84q25 -13 66 -24l183 -49q120 -33 148 -130q7 -25 7 -53q0 -84 -58 -147q-11 -11 -22 -20q-73 -56 -205 -56q-169 0 -245 104q-42 57 -43 151h88l3 -38q7 -41 35 -74
+q51 -61 168 -61q89 0 134 31q44 31 51 87q1 7 1 14q0 76 -110 111l-24 7l-181 48q-143 37 -143 170q0 124 104 180q64 34 155 34q176 0 239 -111q28 -49 28 -115z" />
+ <glyph glyph-name="T" unicode="T" horiz-adv-x="611"
+d="M354 647v-647h-93v647h-240v82h572v-82h-239z" />
+ <glyph glyph-name="U" unicode="U" horiz-adv-x="722"
+d="M552 729h93v-512q0 -130 -104 -195q-72 -45 -177 -45q-165 0 -238 101q-41 58 -41 139v512h93v-512q0 -117 110 -148q34 -10 76 -10q124 0 169 80q19 34 19 78v512z" />
+ <glyph glyph-name="V" unicode="V" horiz-adv-x="667"
+d="M392 0h-100l-262 729h100l214 -617l202 617h99z" />
+ <glyph glyph-name="W" unicode="W" horiz-adv-x="944"
+d="M744 0h-102l-168 599l-163 -599h-102l-187 729h104l137 -592l162 592h100l166 -592l134 592h104z" />
+ <glyph glyph-name="X" unicode="X" horiz-adv-x="667"
+d="M391 374l258 -374h-115l-199 304l-200 -304h-113l258 374l-242 355h113l187 -286l188 286h111z" />
+ <glyph glyph-name="Y" unicode="Y" horiz-adv-x="667"
+d="M387 286v-286h-93v286l-281 443h115l214 -355l208 355h111z" />
+ <glyph glyph-name="Z" unicode="Z" horiz-adv-x="611"
+d="M581 729v-84l-436 -563h438v-82h-555v82l438 565h-410v82h525z" />
+ <glyph glyph-name="bracketleft" unicode="[" horiz-adv-x="278"
+d="M250 729v-72h-103v-797h103v-72h-186v941h186z" />
+ <glyph glyph-name="backslash" unicode="\" horiz-adv-x="278"
+d="M47 729l237 -749h-55l-237 749h55z" />
+ <glyph glyph-name="bracketright" unicode="]" horiz-adv-x="278"
+d="M23 -212v72h103v797h-103v72h186v-941h-186z" />
+ <glyph glyph-name="asciicircum" unicode="^" horiz-adv-x="469"
+d="M197 709h73l155 -380h-69l-122 300l-121 -300h-69z" />
+ <glyph glyph-name="underscore" unicode="_" horiz-adv-x="556"
+d="M578 -126v-50h-600v50h600z" />
+ <glyph glyph-name="grave" unicode="`" horiz-adv-x="333"
+d="M135 740l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="a" unicode="a" horiz-adv-x="556"
+d="M535 49v-63q-35 -9 -57 -9q-71 0 -84 63l-2 14q-87 -76 -178 -77q-110 0 -153 75q-19 35 -19 80q0 102 92 140q36 15 130 27q16 2 38 5q73 9 84 38q3 8 3 20v22q0 64 -81 76q-17 2 -36 2q-103 0 -120 -75q-2 -9 -3 -18h-84q3 72 36 109q55 61 174 61q176 0 195 -116
+q2 -13 2 -27v-308q0 -41 45 -41q9 0 18 2zM389 165v94q-32 -15 -114 -26q-9 -1 -20 -3q-106 -15 -122 -69q-4 -12 -4 -27q0 -65 67 -80q16 -4 36 -4q72 0 124 47q32 29 33 68z" />
+ <glyph glyph-name="b" unicode="b" horiz-adv-x="556"
+d="M54 729h83v-276q57 86 162 86q128 0 187 -108q37 -68 37 -167q0 -161 -91 -238q-57 -49 -137 -49q-107 0 -166 90v-67h-75v729zM283 461q-83 0 -122 -84q-24 -50 -24 -119q0 -125 69 -177q33 -26 77 -26q84 0 126 79q27 51 27 121q0 127 -72 180q-37 25 -81 26z" />
+ <glyph glyph-name="c" unicode="c" horiz-adv-x="500"
+d="M471 348h-84q-13 97 -97 112l-27 2q-94 0 -129 -100q-16 -46 -16 -109q0 -137 79 -182q29 -17 68 -17q107 0 128 126h84q-11 -137 -115 -183q-43 -20 -99 -20q-129 0 -191 105q-41 70 -41 171q0 160 92 237q59 49 141 49q106 0 164 -68l8 -10q29 -43 35 -113z" />
+ <glyph glyph-name="d" unicode="d" horiz-adv-x="556"
+d="M495 729v-729h-74v69q-58 -83 -144 -91q-11 -1 -23 -1q-130 0 -190 112q-38 71 -38 174q0 154 89 229q57 47 136 47q108 0 161 -81v271h83zM265 461q-85 0 -126 -82q-20 -38 -25 -89q-1 -16 -1 -32q0 -122 70 -176q36 -27 83 -27q83 0 122 82q24 50 24 119q0 131 -72 182
+q-33 23 -75 23z" />
+ <glyph glyph-name="e" unicode="e" horiz-adv-x="556"
+d="M513 234h-386q1 -72 28 -112q43 -68 126 -68q102 0 137 105h84q-22 -121 -126 -164q-44 -18 -98 -18q-136 0 -199 110q-39 68 -39 168q0 158 94 235q60 49 146 49q115 0 180 -82q20 -25 32 -56q21 -55 21 -167zM129 302h294q1 2 1 6q0 80 -59 125q-38 29 -86 29
+q-85 0 -126 -75q-20 -36 -24 -85z" />
+ <glyph glyph-name="f" unicode="f" horiz-adv-x="278"
+d="M258 524v-68h-87v-456h-83v456h-70v68h70v89q0 88 74 112q22 7 49 7q23 0 47 -5v-69q-19 1 -29 1q-58 0 -58 -53v-82h87z" />
+ <glyph glyph-name="g" unicode="g" horiz-adv-x="556"
+d="M412 524h77v-438q0 -154 -41 -218q-7 -10 -14 -19q-48 -60 -157 -66q-11 -1 -22 -1q-138 0 -188 88q-17 31 -21 70h85q6 -39 32 -60q36 -28 95 -28q81 0 116 49q30 41 30 143v27q-59 -82 -132 -92l-27 -2q-83 0 -144 64l-6 6q-66 77 -66 206q0 153 85 232q57 54 138 54
+q98 0 160 -91v76zM261 462q-88 0 -125 -90q-20 -48 -20 -114q0 -139 78 -186q29 -18 68 -18q89 0 124 92q18 46 18 109q0 150 -82 193q-27 14 -61 14z" />
+ <glyph glyph-name="h" unicode="h" horiz-adv-x="556"
+d="M70 729h83v-277q54 70 120 83q21 4 48 4q110 0 149 -74q16 -30 16 -69v-396h-83v363q0 55 -34 79q-32 24 -74 24q-84 0 -121 -77q-21 -42 -21 -100v-289h-83v729z" />
+ <glyph glyph-name="i" unicode="i" horiz-adv-x="222"
+d="M150 524v-524h-83v524h83zM150 729v-105h-84v105h84z" />
+ <glyph glyph-name="j" unicode="j" horiz-adv-x="222"
+d="M70 524h83v-633q0 -103 -128 -109h-15q-13 0 -28 3v71q17 -1 20 -1q52 0 63 32q5 14 5 37v600zM153 729v-105h-83v105h83z" />
+ <glyph glyph-name="k" unicode="k" horiz-adv-x="500"
+d="M141 729v-427l222 222h107l-182 -181l214 -343h-103l-177 284l-81 -80v-204h-83v729h83z" />
+ <glyph glyph-name="l" unicode="l" horiz-adv-x="222"
+d="M152 729v-729h-84v729h84z" />
+ <glyph glyph-name="m" unicode="m" horiz-adv-x="833"
+d="M70 524h77v-74q54 76 128 87q15 2 33 2q89 0 132 -65q5 -7 9 -15q54 65 117 76q20 4 44 4q122 0 147 -98q5 -22 5 -48v-393h-84v361q0 81 -63 100q-16 5 -34 5q-61 0 -98 -54q-25 -37 -25 -83v-329h-84v361q0 87 -71 102q-12 3 -26 3q-62 0 -99 -56q-24 -36 -24 -81v-329
+h-84v524z" />
+ <glyph glyph-name="n" unicode="n" horiz-adv-x="556"
+d="M70 524h77v-88q54 85 130 99q20 4 44 4q105 0 147 -70q19 -32 19 -73v-396h-83v363q0 70 -59 94q-21 9 -49 9q-84 0 -121 -77q-21 -42 -21 -100v-289h-84v524z" />
+ <glyph glyph-name="o" unicode="o" horiz-adv-x="556"
+d="M272 539q152 0 209 -129q29 -65 29 -156q0 -167 -102 -238q-56 -39 -135 -39q-144 0 -204 119q-33 67 -33 162q0 174 105 244q55 37 131 37zM273 462q-93 0 -131 -92q-19 -48 -19 -112q0 -137 78 -185q31 -19 72 -19q90 0 129 88q21 47 21 113q0 145 -82 191
+q-30 16 -68 16z" />
+ <glyph glyph-name="p" unicode="p" horiz-adv-x="556"
+d="M54 -218v742h77v-79q59 94 167 94q127 0 187 -111q38 -71 38 -175q0 -154 -89 -229q-39 -33 -91 -43q-21 -4 -44 -4q-97 0 -161 78v-273h-84zM284 461q-83 0 -122 -84q-24 -50 -24 -119q0 -125 69 -177q33 -26 77 -26q84 0 126 81q26 50 26 119q0 127 -71 180
+q-35 26 -81 26z" />
+ <glyph glyph-name="q" unicode="q" horiz-adv-x="556"
+d="M495 -218h-83v278q-57 -83 -162 -83q-128 0 -187 108q-37 68 -37 167q0 161 91 238q57 49 137 49q107 0 167 -85v70h74v-742zM266 461q-84 0 -126 -81q-27 -51 -27 -122q0 -122 70 -176q36 -27 83 -27q82 0 122 81q24 50 24 119q0 131 -71 182q-33 24 -75 24z" />
+ <glyph glyph-name="r" unicode="r" horiz-adv-x="333"
+d="M69 524h77v-95q58 93 116 107q13 3 27 3q11 0 32 -3v-85q-72 -1 -103 -22l-6 -4q-59 -43 -59 -153v-272h-84v524z" />
+ <glyph glyph-name="s" unicode="s" horiz-adv-x="500"
+d="M438 378h-88q-3 84 -105 84q-82 0 -105 -49q-6 -14 -6 -30q0 -45 66 -67q14 -4 31 -8l80 -19q118 -28 141 -98q7 -21 7 -48q0 -96 -90 -140q-52 -26 -126 -26q-194 0 -208 162q-1 8 -1 17h88q6 -47 24 -67q33 -35 104 -35q84 0 112 47q10 16 10 35q0 46 -54 65l-27 8
+l-78 19q-119 29 -150 80q-16 28 -16 71q0 93 84 135q49 25 117 25q145 0 180 -101q10 -27 10 -60z" />
+ <glyph glyph-name="t" unicode="t" horiz-adv-x="278"
+d="M254 524v-68h-86v-359q0 -38 22 -44q9 -3 24 -3q25 0 40 4v-70q-39 -7 -68 -7q-89 0 -100 67q-1 7 -1 16v396h-71v68h71v144h83v-144h86z" />
+ <glyph glyph-name="u" unicode="u" horiz-adv-x="556"
+d="M482 0h-75v73q-56 -79 -130 -92q-20 -4 -45 -4q-107 0 -148 70q-19 32 -19 73v404h83v-371q0 -70 59 -94q22 -9 49 -9q85 0 123 78q20 42 20 99v297h83v-524z" />
+ <glyph glyph-name="v" unicode="v" horiz-adv-x="500"
+d="M285 0h-91l-184 524h94l140 -425l148 425h94z" />
+ <glyph glyph-name="w" unicode="w" horiz-adv-x="722"
+d="M554 0h-95l-106 411l-101 -411h-94l-152 524h92l107 -408l100 408h102l103 -408l104 408h94z" />
+ <glyph glyph-name="x" unicode="x" horiz-adv-x="500"
+d="M292 271l181 -271h-97l-131 201l-133 -201h-95l185 267l-175 257h95l126 -190l126 190h94z" />
+ <glyph glyph-name="y" unicode="y" horiz-adv-x="500"
+d="M388 524h90l-233 -634q-22 -57 -57 -83q-34 -25 -78 -25q-31 0 -56 13v75q27 -6 44 -6q45 0 63 40q2 5 4 11l32 83l-177 526h89l134 -408z" />
+ <glyph glyph-name="z" unicode="z" horiz-adv-x="500"
+d="M443 524v-74l-311 -377h325v-73h-426v75l313 376h-292v73h391z" />
+ <glyph glyph-name="braceleft" unicode="{" horiz-adv-x="334"
+d="M276 729v-65h-15q-47 0 -58 -27l-5 -26v-14v-181q0 -98 -41 -133l-23 -16q-8 -4 -18 -8q82 -38 82 -158v-181q0 -50 25 -61q13 -6 38 -6h15v-65h-46q-82 0 -103 80q-6 23 -6 51v167q0 93 -35 120q-16 12 -43 18v69q54 11 68 55q10 29 10 83v167q0 102 71 125q18 6 38 6
+h46z" />
+ <glyph glyph-name="bar" unicode="|" horiz-adv-x="260"
+d="M100 729h60v-941h-60v941z" />
+ <glyph glyph-name="braceright" unicode="}" horiz-adv-x="334"
+d="M29 -212v65h16q48 0 59 27q5 14 5 40v181q0 120 82 157q-82 38 -82 158v181q0 50 -26 61q-13 6 -38 6h-16v65h47q83 0 104 -81q6 -23 6 -50v-167q0 -94 36 -121q15 -12 40 -17v-69q-52 -11 -67 -57q-9 -28 -9 -81v-167q0 -103 -73 -126q-17 -5 -37 -5h-47z" />
+ <glyph glyph-name="asciitilde" unicode="~" horiz-adv-x="584"
+d="M455 411h53v-16q0 -85 -57 -115q-21 -12 -48 -12q-39 0 -81 26l-98 63q-23 14 -43 14q-29 0 -45 -35q-5 -14 -8 -43h-53q7 131 91 144q8 1 17 1q27 0 54 -16l117 -69q28 -17 50 -17q44 0 50 49z" />
+ <glyph glyph-name="nonbreakingspace" unicode=" " horiz-adv-x="278"
+ />
+ <glyph glyph-name="exclamdown" unicode="¡" horiz-adv-x="333"
+d="M122 -205v338l22 223h39l22 -223v-338h-83zM121 420v104h84v-104h-84z" />
+ <glyph glyph-name="cent" unicode="¢" horiz-adv-x="556"
+d="M312 462v-409q96 11 114 127h84q-7 -124 -100 -176q-43 -24 -98 -27v-97h-42v98q-129 11 -185 123q-33 64 -33 152q0 163 98 239q51 39 120 46v90h42v-89q136 -9 178 -118q12 -33 14 -73h-84q-9 85 -78 108q-14 5 -30 6zM270 55v406q-131 -24 -131 -208q0 -138 85 -183
+q21 -11 46 -15z" />
+ <glyph glyph-name="sterling" unicode="£" horiz-adv-x="556"
+d="M366 376v-55h-136q15 -43 15 -71q0 -55 -58 -124q-23 -28 -60 -65q59 39 122 39q35 0 82 -15q55 -16 79 -16q40 0 83 30l42 -66q-57 -56 -131 -56q-44 0 -127 28q-9 3 -19 7q-33 11 -66 11q-53 0 -109 -37l-48 66q102 88 120 151q5 19 5 40q0 38 -24 78h-110v55h81
+q-46 76 -51 109q-2 12 -2 30q0 99 80 162q66 52 158 52q113 0 175 -74q9 -12 17 -25q27 -46 28 -133h-88q-4 154 -136 154q-89 0 -125 -63q-16 -29 -16 -65q0 -38 22 -80l21 -39q4 -4 16 -28h160z" />
+ <glyph glyph-name="currency" unicode="¤" horiz-adv-x="556"
+d="M485 190l-58 -54l-53 53q-40 -30 -100 -30q-53 0 -94 25l-51 -51l-56 57l48 49q-32 43 -32 102q0 57 32 102l-54 55l56 53l55 -55q44 26 97 26q58 0 98 -28l59 53l57 -58l-55 -55q26 -41 26 -93q0 -50 -29 -97zM274 445q-57 0 -88 -47l-12 -24q-6 -17 -6 -34
+q0 -55 47 -86q27 -18 60 -18q55 0 87 45q19 27 19 58q0 58 -48 89q-27 17 -59 17z" />
+ <glyph glyph-name="yen" unicode="¥" horiz-adv-x="556"
+d="M495 354v-51h-170v-77h170v-51h-170v-175h-88v175h-172v51h172v77h-172v51h151l-205 355h85l185 -322l179 322h85l-201 -355h151z" />
+ <glyph glyph-name="brokenbar" unicode="¦" horiz-adv-x="260"
+d="M100 729h60v-401h-60v401zM100 189h60v-401h-60v401z" />
+ <glyph glyph-name="section" unicode="§" horiz-adv-x="556"
+d="M464 524h-84v26q0 71 -55 94q-19 8 -42 8q-54 0 -78 -43l-9 -23q-2 -9 -2 -19q0 -36 43 -67l14 -10l146 -94q82 -53 101 -109q8 -25 8 -58q0 -115 -109 -156q48 -55 52 -103q1 -7 1 -15q0 -85 -71 -134q-50 -34 -116 -34q-100 0 -152 69q-15 20 -23 44q-11 33 -11 86h85
+q0 -54 18 -78q29 -44 84 -44q64 0 87 47q9 18 9 39q0 50 -55 88l-170 117q-84 58 -91 139q-1 9 -1 18q0 84 79 135q12 8 26 15q-44 51 -44 102q0 79 68 128q50 37 117 37q99 0 147 -74q28 -43 28 -103v-28zM188 229l166 -123q73 39 73 102q0 61 -73 112l-161 109
+q-62 -40 -69 -82q-2 -9 -2 -19q0 -41 30 -70q13 -12 36 -29z" />
+ <glyph glyph-name="dieresis" unicode="¨" horiz-adv-x="333"
+d="M134 715v-103h-104v103h104zM296 715v-103h-104v103h104z" />
+ <glyph glyph-name="copyright" unicode="©" horiz-adv-x="737"
+d="M250 358q0 -95 54 -143q31 -27 71 -27q82 0 104 114l2 10h71q-16 -79 -41 -116q-49 -70 -136 -70q-101 0 -155 85q-39 61 -39 146q0 131 80 195q49 40 117 40q120 0 159 -129l7 -26h-71q-20 77 -70 90q-12 3 -28 3q-75 0 -107 -76q-18 -41 -18 -96zM369 742
+q151 0 261 -103q108 -101 120 -248q1 -15 1 -30q0 -155 -106 -265q-103 -108 -256 -117q-13 -1 -25 -1q-145 0 -254 102q-107 101 -121 244q-2 18 -2 36q0 151 103 261q102 108 249 120q15 1 30 1zM369 680q-129 0 -221 -93t-93 -227q0 -130 91 -224q95 -94 219 -96
+q135 0 227 95q91 93 91 226q0 131 -92 225q-91 93 -222 94z" />
+ <glyph glyph-name="ordfeminine" unicode="ª" horiz-adv-x="370"
+d="M320 354v-51h-277v51h277zM333 449v-44q-16 -6 -32 -6q-44 0 -54 37q0 3 -1 6q-49 -43 -105 -43q-74 0 -97 56q-7 18 -7 40q0 62 57 87q32 13 100 18q43 3 48 22q1 5 1 11v13q0 43 -67 44q-47 0 -60 -28q-5 -11 -8 -28h-59q3 103 118 108h11q122 0 122 -94v-179
+q0 -23 23 -23q4 0 10 3zM243 517v51q-14 -6 -76 -16q-63 -8 -71 -40l-1 -14q9 -43 57 -47q52 0 79 35q12 15 12 31z" />
+ <glyph glyph-name="guillemotleft" unicode="«" horiz-adv-x="556"
+d="M98 227v89l152 122v-83l-106 -83l106 -83v-83zM303 227v89l152 122v-83l-106 -83l106 -83v-83z" />
+ <glyph glyph-name="logicalnot" unicode="¬" horiz-adv-x="584"
+d="M40 375h504v-289h-70v219h-434v70z" />
+ <glyph glyph-name="softhyphen" unicode="­" horiz-adv-x="333"
+d="M284 312v-72h-238v72h238z" />
+ <glyph glyph-name="registered" unicode="®" horiz-adv-x="737"
+d="M272 325v-185h-70v445h206q141 0 141 -126q0 -51 -32 -81l-22 -18q33 -21 40 -50q4 -19 5 -62q1 -61 14 -75q3 -4 9 -8v-25h-79q-15 35 -15 77l1 40q0 59 -46 67l-18 1h-134zM272 388h129q71 9 75 67q0 58 -52 65l-23 2h-129v-134zM369 742q151 0 261 -103
+q108 -101 120 -248q1 -15 1 -30q0 -155 -106 -265q-103 -108 -256 -117q-13 -1 -25 -1q-145 0 -254 102q-107 101 -121 244q-2 18 -2 36q0 151 103 261q102 108 249 120q15 1 30 1zM369 680q-129 0 -221 -93t-93 -227q0 -130 91 -224q95 -94 219 -96q135 0 227 95
+q91 93 91 226q0 131 -92 225q-91 93 -222 94z" />
+ <glyph glyph-name="macron" unicode="¯" horiz-adv-x="333"
+d="M302 701v-70h-274v70h274z" />
+ <glyph glyph-name="degree" unicode="°" horiz-adv-x="606"
+d="M303 686q74 0 119 -59q32 -41 32 -92q0 -76 -60 -121q-41 -31 -93 -31q-72 0 -118 59q-32 41 -32 93q0 74 60 120q40 31 92 31zM303 629q-52 0 -80 -44q-15 -23 -15 -50q0 -51 44 -80q23 -15 49 -15q55 0 82 46q14 22 14 49q0 52 -44 80q-23 14 -50 14z" />
+ <glyph glyph-name="plusminus" unicode="±" horiz-adv-x="584"
+d="M534 416v-70h-207v-207h-70v207h-207v70h207v207h70v-207h207zM534 59v-70h-484v70h484z" />
+ <glyph glyph-name="twosuperior" unicode="²" horiz-adv-x="351"
+d="M323 342v-58h-304q4 85 42 127q26 29 85 60l58 31q59 32 59 79q0 45 -43 66q-19 9 -42 9q-51 0 -74 -39q-10 -17 -13 -60h-62q4 145 138 152h13q87 0 126 -59l13 -25q7 -20 7 -42q0 -82 -96 -129l-63 -32q-49 -26 -65 -60l-8 -20h229z" />
+ <glyph glyph-name="threesuperior" unicode="³" horiz-adv-x="351"
+d="M135 476v51q85 0 102 26q8 13 8 35q0 52 -50 65l-26 3q-53 0 -72 -35q-9 -17 -9 -54h-63q3 142 144 142q96 0 128 -66q11 -24 11 -54q0 -59 -57 -85q71 -24 71 -100q0 -82 -71 -116q-36 -18 -84 -18q-113 0 -142 86q-9 25 -9 56h62q4 -78 67 -87q11 -2 24 -2q72 0 87 56
+q3 11 3 25q0 46 -40 64q-8 4 -18 6q-15 2 -66 2z" />
+ <glyph glyph-name="acute" unicode="´" horiz-adv-x="333"
+d="M188 740h113l-149 -148h-60z" />
+ <glyph glyph-name="mu" unicode="µ" horiz-adv-x="556"
+d="M544 49v-63q-33 -9 -57 -9q-79 0 -85 73q-1 5 -1 10q-59 -83 -163 -83q-54 0 -90 26v-223h-83v744h83v-371q0 -70 58 -94q22 -9 49 -9q85 0 123 78q20 42 20 99v297h83v-436q0 -41 45 -41q8 0 18 2z" />
+ <glyph glyph-name="paragraph" unicode="¶" horiz-adv-x="537"
+d="M522 729v-64h-57v-842h-64v842h-82v-842h-64v436q-77 4 -125 44q-73 61 -81 166q-1 10 -1 20q0 112 77 183q62 57 147 57h250z" />
+ <glyph glyph-name="periodcentered" unicode="·" horiz-adv-x="278"
+d="M211 427v-125h-124v125h124z" />
+ <glyph glyph-name="cedilla" unicode="¸" horiz-adv-x="333"
+d="M165 0h38l-23 -56q13 2 28 2q70 0 78 -55q1 -5 1 -12q0 -63 -66 -85q-25 -8 -57 -8q-44 0 -107 26q-8 4 -18 8l21 40l9 -4q57 -28 89 -29q38 0 51 29q3 7 3 16q-7 34 -46 37q-15 0 -31 -8l-12 7z" />
+ <glyph glyph-name="onesuperior" unicode="¹" horiz-adv-x="351"
+d="M160 580h-99v46l15 1q61 6 79 26q13 15 24 56h43v-425h-62v296z" />
+ <glyph glyph-name="ordmasculine" unicode="º" horiz-adv-x="365"
+d="M314 354v-51h-263v51h263zM182 742q108 0 134 -106q8 -31 8 -68q0 -119 -79 -156q-28 -13 -63 -13q-101 0 -131 95q-11 34 -11 77q0 126 84 160q26 11 58 11zM182 690q-59 0 -78 -67l-6 -38v-14q0 -93 55 -115q14 -5 29 -5q59 0 78 67q6 22 6 51q0 97 -58 117
+q-12 4 -26 4z" />
+ <glyph glyph-name="guillemotright" unicode="»" horiz-adv-x="556"
+d="M252 317v-89l-154 -122v83l108 83l-108 83v83zM451 317v-89l-154 -122v83l108 83l-108 83v83z" />
+ <glyph glyph-name="onequarter" unicode="¼" horiz-adv-x="869"
+d="M160 580h-99v46l15 1q61 6 79 26q13 15 24 56h43v-425h-62v296zM643 709h58l-452 -729h-58zM720 100h-188v59l204 266h46v-272h67v-53h-67v-100h-62v100zM720 153v170l-129 -170h129z" />
+ <glyph glyph-name="onehalf" unicode="½" horiz-adv-x="869"
+d="M160 580h-99v46l15 1q61 6 79 26q13 15 24 56h43v-425h-62v296zM619 709h58l-452 -729h-58zM841 58v-58h-304q4 85 42 127q26 29 85 60l58 31q59 32 59 79q0 45 -43 66q-19 9 -42 9q-51 0 -74 -39q-10 -17 -13 -60h-62q4 145 138 152h13q87 0 126 -59l13 -25q7 -20 7 -42
+q0 -82 -96 -129l-63 -32q-49 -26 -65 -60q-5 -9 -8 -20h229z" />
+ <glyph glyph-name="threequarters" unicode="¾" horiz-adv-x="869"
+d="M135 476v51q85 0 102 26q8 13 8 35q0 52 -50 65l-26 3q-53 0 -72 -35q-9 -17 -9 -54h-63q3 142 144 142q96 0 128 -66q11 -24 11 -54q0 -59 -57 -85q71 -24 71 -100q0 -82 -71 -116q-36 -18 -84 -18q-113 0 -142 86q-9 25 -9 56h62q4 -78 67 -87q11 -2 24 -2q72 0 87 56
+q3 11 3 25q0 46 -40 64q-8 4 -18 6q-15 2 -66 2zM653 709h58l-452 -729h-58zM720 100h-188v59l204 266h46v-272h67v-53h-67v-100h-62v100zM720 153v170l-129 -170h129z" />
+ <glyph glyph-name="questiondown" unicode="¿" horiz-adv-x="611"
+d="M275 325h90v-55q0 -50 -28 -87q-18 -23 -59 -59q-5 -5 -18 -17q-74 -66 -75 -132q0 -70 61 -100q30 -14 68 -14q82 0 112 58q17 34 17 98h85q0 -211 -180 -232q-19 -2 -39 -2q-129 0 -184 85q-30 45 -30 107q0 70 49 128q20 22 51 51q63 57 74 83q6 15 6 41v47zM275 420
+v104h90v-104h-90z" />
+ <glyph glyph-name="Agrave" unicode="À" horiz-adv-x="667"
+d="M474 219h-281l-77 -219h-99l260 729h120l256 -729h-104zM448 297l-112 332l-120 -332h232zM304 939l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="Aacute" unicode="Á" horiz-adv-x="667"
+d="M474 219h-281l-77 -219h-99l260 729h120l256 -729h-104zM448 297l-112 332l-120 -332h232zM370 939h113l-149 -148h-60z" />
+ <glyph glyph-name="Acircumflex" unicode="Â" horiz-adv-x="667"
+d="M474 219h-281l-77 -219h-99l260 729h120l256 -729h-104zM448 297l-112 332l-120 -332h232zM288 940h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="Atilde" unicode="Ã" horiz-adv-x="667"
+d="M474 219h-281l-77 -219h-99l260 729h120l256 -729h-104zM448 297l-112 332l-120 -332h232zM434 916h58q-15 -104 -89 -104q-21 0 -85 25q-35 13 -49 13q-23 0 -33 -37h-58q16 93 75 102q5 1 11 1q23 0 65 -17q2 -1 5 -2q39 -18 63 -18q25 0 37 37z" />
+ <glyph glyph-name="Adieresis" unicode="Ä" horiz-adv-x="667"
+d="M474 219h-281l-77 -219h-99l260 729h120l256 -729h-104zM448 297l-112 332l-120 -332h232zM306 914v-103h-104v103h104zM468 914v-103h-104v103h104z" />
+ <glyph glyph-name="Aring" unicode="Å" horiz-adv-x="667"
+d="M474 219h-281l-77 -219h-99l260 729h120l256 -729h-104zM448 297l-112 332l-120 -332h232zM335 953q50 0 76 -43l9 -23q3 -11 3 -22q0 -49 -43 -75q-21 -12 -45 -12q-48 0 -75 42q-13 21 -13 46q0 47 42 74q21 13 46 13zM335 909q-29 0 -41 -27q-3 -8 -3 -16
+q0 -29 27 -40q8 -4 17 -4q29 0 41 27q3 8 3 16q0 31 -28 41q-8 3 -16 3z" />
+ <glyph glyph-name="AE" unicode="Æ"
+d="M468 214h-269l-85 -214h-103l299 729h622v-82h-371v-233h352v-82h-352v-250h389v-82h-482v214zM468 296v351h-100l-138 -351h238z" />
+ <glyph glyph-name="Ccedilla" unicode="Ç" horiz-adv-x="722"
+d="M379 -23l-13 -33q13 2 28 2q70 0 78 -55q1 -5 1 -12q0 -63 -66 -85q-25 -8 -57 -8q-46 0 -114 29q-5 2 -11 5l21 40l9 -4q57 -29 89 -29q38 0 51 29q3 7 3 16q-7 34 -46 37q-15 0 -31 -8l-11 7l31 69q-85 12 -130 39l-19 13q-109 78 -136 237q-8 43 -8 90q0 178 97 289
+q3 2 5 5q82 91 231 91q238 0 281 -238h-95q-15 75 -53 110q-55 43 -143 46q-129 0 -190 -115q-40 -75 -40 -187q0 -172 96 -251q59 -48 141 -48q109 0 160 77q6 8 10 17q22 43 33 114h96q-33 -289 -298 -289z" />
+ <glyph glyph-name="Egrave" unicode="È" horiz-adv-x="667"
+d="M183 332v-250h430v-82h-523v729h505v-82h-412v-233h397v-82h-397zM320 939l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="Eacute" unicode="É" horiz-adv-x="667"
+d="M183 332v-250h430v-82h-523v729h505v-82h-412v-233h397v-82h-397zM366 939h113l-149 -148h-60z" />
+ <glyph glyph-name="Ecircumflex" unicode="Ê" horiz-adv-x="667"
+d="M183 332v-250h430v-82h-523v729h505v-82h-412v-233h397v-82h-397zM297 940h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="Edieresis" unicode="Ë" horiz-adv-x="667"
+d="M183 332v-250h430v-82h-523v729h505v-82h-412v-233h397v-82h-397zM315 914v-103h-104v103h104zM477 914v-103h-104v103h104z" />
+ <glyph glyph-name="Igrave" unicode="Ì" horiz-adv-x="278"
+d="M193 729v-729h-93v729h93zM114 939l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="Iacute" unicode="Í" horiz-adv-x="278"
+d="M193 729v-729h-93v729h93zM167 939h113l-149 -148h-60z" />
+ <glyph glyph-name="Icircumflex" unicode="Î" horiz-adv-x="278"
+d="M193 729v-729h-93v729h93zM95 940h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="Idieresis" unicode="Ï" horiz-adv-x="278"
+d="M193 729v-729h-93v729h93zM113 907v-103h-104v103h104zM275 907v-103h-104v103h104z" />
+ <glyph glyph-name="Eth" unicode="Ð" horiz-adv-x="722"
+d="M89 339h-69v67h69v323h282q163 0 241 -132l22 -43q33 -81 33 -189q0 -211 -117 -306q-73 -59 -179 -59h-282v339zM182 339v-257h173q178 0 212 191q7 42 7 92q0 239 -161 276q-27 6 -58 6h-173v-241h171v-67h-171z" />
+ <glyph glyph-name="Ntilde" unicode="Ñ" horiz-adv-x="722"
+d="M646 729v-729h-105l-377 591v-591h-88v729h101l381 -596v596h88zM467 916h58q-15 -104 -89 -104q-21 0 -85 25q-35 13 -49 13q-23 0 -33 -37h-58q16 93 75 102q5 1 11 1q23 0 65 -17q2 -1 5 -2q39 -18 63 -18q25 0 37 37z" />
+ <glyph glyph-name="Ograve" unicode="Ò" horiz-adv-x="778"
+d="M389 741q174 0 271 -123l26 -38q56 -96 56 -227q0 -148 -82 -253q-20 -26 -44 -46q-91 -77 -226 -77q-167 0 -265 117q-87 104 -87 265q0 184 111 291q95 91 240 91zM389 659q-130 0 -202 -102q-56 -80 -56 -198q0 -158 95 -241q67 -59 164 -59q129 0 201 100
+q58 79 58 196q0 165 -98 248q-66 56 -162 56zM359 939l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="Oacute" unicode="Ó" horiz-adv-x="778"
+d="M389 741q174 0 271 -123l26 -38q56 -96 56 -227q0 -148 -82 -253q-20 -26 -44 -46q-91 -77 -226 -77q-167 0 -265 117q-87 104 -87 265q0 184 111 291q95 91 240 91zM389 659q-130 0 -202 -102q-56 -80 -56 -198q0 -158 95 -241q67 -59 164 -59q129 0 201 100
+q58 79 58 196q0 165 -98 248q-66 56 -162 56zM418 939h113l-149 -148h-60z" />
+ <glyph glyph-name="Ocircumflex" unicode="Ô" horiz-adv-x="778"
+d="M389 741q174 0 271 -123l26 -38q56 -96 56 -227q0 -148 -82 -253q-20 -26 -44 -46q-91 -77 -226 -77q-167 0 -265 117q-87 104 -87 265q0 184 111 291q95 91 240 91zM389 659q-130 0 -202 -102q-56 -80 -56 -198q0 -158 95 -241q67 -59 164 -59q129 0 201 100
+q58 79 58 196q0 165 -98 248q-66 56 -162 56zM343 940h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="Otilde" unicode="Õ" horiz-adv-x="778"
+d="M389 741q174 0 271 -123l26 -38q56 -96 56 -227q0 -148 -82 -253q-20 -26 -44 -46q-91 -77 -226 -77q-167 0 -265 117q-87 104 -87 265q0 184 111 291q95 91 240 91zM389 659q-130 0 -202 -102q-56 -80 -56 -198q0 -158 95 -241q67 -59 164 -59q129 0 201 100
+q58 79 58 196q0 165 -98 248q-66 56 -162 56zM492 916h58q-15 -104 -89 -104q-21 0 -85 25q-35 13 -49 13q-23 0 -33 -37h-58q16 93 75 102q5 1 11 1q23 0 65 -17q2 -1 5 -2q39 -18 63 -18q25 0 37 37z" />
+ <glyph glyph-name="Odieresis" unicode="Ö" horiz-adv-x="778"
+d="M389 741q174 0 271 -123l26 -38q56 -96 56 -227q0 -148 -82 -253q-20 -26 -44 -46q-91 -77 -226 -77q-167 0 -265 117q-87 104 -87 265q0 184 111 291q95 91 240 91zM389 659q-130 0 -202 -102q-56 -80 -56 -198q0 -158 95 -241q67 -59 164 -59q129 0 201 100
+q58 79 58 196q0 165 -98 248q-66 56 -162 56zM361 914v-103h-104v103h104zM523 914v-103h-104v103h104z" />
+ <glyph glyph-name="multiply" unicode="×" horiz-adv-x="584"
+d="M438 427l49 -50l-146 -146l147 -147l-50 -50l-147 147l-146 -146l-50 49l147 147l-146 146l49 49l146 -145z" />
+ <glyph glyph-name="Oslash" unicode="Ø" horiz-adv-x="778"
+d="M30 19l81 89q-76 106 -76 252q0 184 112 290q95 91 240 91q137 0 230 -81l87 95l40 -36l-89 -97q84 -106 84 -264q0 -184 -112 -290q-95 -91 -240 -91q-144 0 -241 90l-77 -84zM174 176l384 419q-73 64 -171 64q-132 0 -204 -103q-55 -79 -55 -196q0 -104 46 -184z
+M593 554l-387 -421q74 -74 181 -74q132 0 204 103q55 79 55 196q0 114 -53 196z" />
+ <glyph glyph-name="Ugrave" unicode="Ù" horiz-adv-x="722"
+d="M552 729h93v-512q0 -130 -104 -195q-72 -45 -177 -45q-165 0 -238 101q-41 58 -41 139v512h93v-512q0 -117 110 -148q34 -10 76 -10q124 0 169 80q19 34 19 78v512zM334 939l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="Uacute" unicode="Ú" horiz-adv-x="722"
+d="M552 729h93v-512q0 -130 -104 -195q-72 -45 -177 -45q-165 0 -238 101q-41 58 -41 139v512h93v-512q0 -117 110 -148q34 -10 76 -10q124 0 169 80q19 34 19 78v512zM387 939h113l-149 -148h-60z" />
+ <glyph glyph-name="Ucircumflex" unicode="Û" horiz-adv-x="722"
+d="M552 729h93v-512q0 -130 -104 -195q-72 -45 -177 -45q-165 0 -238 101q-41 58 -41 139v512h93v-512q0 -117 110 -148q34 -10 76 -10q124 0 169 80q19 34 19 78v512zM318 940h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="Udieresis" unicode="Ü" horiz-adv-x="722"
+d="M552 729h93v-512q0 -130 -104 -195q-72 -45 -177 -45q-165 0 -238 101q-41 58 -41 139v512h93v-512q0 -117 110 -148q34 -10 76 -10q124 0 169 80q19 34 19 78v512zM336 914v-103h-104v103h104zM498 914v-103h-104v103h104z" />
+ <glyph glyph-name="Yacute" unicode="Ý" horiz-adv-x="666"
+d="M387 286v-286h-93v286l-281 443h115l214 -355l208 355h111zM365 939h113l-149 -148h-60z" />
+ <glyph glyph-name="Thorn" unicode="Þ" horiz-adv-x="666"
+d="M184 189v-189h-93v729h93v-120h208q139 0 195 -95q29 -49 29 -117q0 -110 -78 -168q-53 -40 -125 -40h-229zM184 271h194q100 0 129 75q9 24 9 53q0 91 -78 118q-26 10 -60 10h-194v-256z" />
+ <glyph glyph-name="germandbls" unicode="ß" horiz-adv-x="611"
+d="M294 427q148 9 155 113q0 74 -75 100l-38 9q-18 3 -39 3q-115 0 -136 -86l-6 -40v-16v-510h-88v532q0 113 93 165q56 31 138 31q147 0 208 -83q31 -41 31 -97q0 -95 -79 -146q-1 0 -3 -2q64 -17 98 -91q18 -39 18 -75q0 -180 -142 -232q-49 -17 -110 -17q-20 0 -53 7v75
+q22 -3 44 -3q164 0 170 140v10q0 133 -152 140h-18h-16v73z" />
+ <glyph glyph-name="agrave" unicode="à" horiz-adv-x="556"
+d="M535 49v-63q-35 -9 -57 -9q-71 0 -84 63l-2 14q-87 -76 -178 -77q-110 0 -153 75q-19 35 -19 80q0 102 92 140q36 15 130 27q16 2 38 5q73 9 84 38q3 8 3 20v22q0 64 -81 76q-17 2 -36 2q-103 0 -120 -75q-2 -9 -3 -18h-84q3 72 36 109q55 61 174 61q176 0 195 -116
+q2 -13 2 -27v-308q0 -41 45 -41q9 0 18 2zM389 165v94q-32 -15 -114 -26q-9 -1 -20 -3q-106 -15 -122 -69q-4 -12 -4 -27q0 -65 67 -80q16 -4 36 -4q72 0 124 47q32 29 33 68zM250 740l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="aacute" unicode="á" horiz-adv-x="556"
+d="M535 49v-63q-35 -9 -57 -9q-71 0 -84 63l-2 14q-87 -76 -178 -77q-110 0 -153 75q-19 35 -19 80q0 102 92 140q36 15 130 27q16 2 38 5q73 9 84 38q3 8 3 20v22q0 64 -81 76q-17 2 -36 2q-103 0 -120 -75q-2 -9 -3 -18h-84q3 72 36 109q55 61 174 61q176 0 195 -116
+q2 -13 2 -27v-308q0 -41 45 -41q9 0 18 2zM389 165v94q-32 -15 -114 -26q-9 -1 -20 -3q-106 -15 -122 -69q-4 -12 -4 -27q0 -65 67 -80q16 -4 36 -4q72 0 124 47q32 29 33 68zM303 740h113l-149 -148h-60z" />
+ <glyph glyph-name="acircumflex" unicode="â" horiz-adv-x="556"
+d="M535 49v-63q-35 -9 -57 -9q-71 0 -84 63l-2 14q-87 -76 -178 -77q-110 0 -153 75q-19 35 -19 80q0 102 92 140q36 15 130 27q16 2 38 5q73 9 84 38q3 8 3 20v22q0 64 -81 76q-17 2 -36 2q-103 0 -120 -75q-2 -9 -3 -18h-84q3 72 36 109q55 61 174 61q176 0 195 -116
+q2 -13 2 -27v-308q0 -41 45 -41q9 0 18 2zM389 165v94q-32 -15 -114 -26q-9 -1 -20 -3q-106 -15 -122 -69q-4 -12 -4 -27q0 -65 67 -80q16 -4 36 -4q72 0 124 47q32 29 33 68zM228 741h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="atilde" unicode="ã" horiz-adv-x="556"
+d="M535 49v-63q-35 -9 -57 -9q-71 0 -84 63l-2 14q-87 -76 -178 -77q-110 0 -153 75q-19 35 -19 80q0 102 92 140q36 15 130 27q16 2 38 5q73 9 84 38q3 8 3 20v22q0 64 -81 76q-17 2 -36 2q-103 0 -120 -75q-2 -9 -3 -18h-84q3 72 36 109q55 61 174 61q176 0 195 -116
+q2 -13 2 -27v-308q0 -41 45 -41q9 0 18 2zM389 165v94q-32 -15 -114 -26q-9 -1 -20 -3q-106 -15 -122 -69q-4 -12 -4 -27q0 -65 67 -80q16 -4 36 -4q72 0 124 47q32 29 33 68zM374 717h58q-15 -104 -89 -104q-21 0 -85 25q-35 13 -49 13q-23 0 -33 -37h-58q16 93 75 102
+q5 1 11 1q23 0 65 -17q2 -1 5 -2q39 -18 63 -18q25 0 37 37z" />
+ <glyph glyph-name="adieresis" unicode="ä" horiz-adv-x="556"
+d="M535 49v-63q-35 -9 -57 -9q-71 0 -84 63l-2 14q-87 -76 -178 -77q-110 0 -153 75q-19 35 -19 80q0 102 92 140q36 15 130 27q16 2 38 5q73 9 84 38q3 8 3 20v22q0 64 -81 76q-17 2 -36 2q-103 0 -120 -75q-2 -9 -3 -18h-84q3 72 36 109q55 61 174 61q176 0 195 -116
+q2 -13 2 -27v-308q0 -41 45 -41q9 0 18 2zM389 165v94q-32 -15 -114 -26q-9 -1 -20 -3q-106 -15 -122 -69q-4 -12 -4 -27q0 -65 67 -80q16 -4 36 -4q72 0 124 47q32 29 33 68zM244 715v-103h-104v103h104zM406 715v-103h-104v103h104z" />
+ <glyph glyph-name="aring" unicode="å" horiz-adv-x="556"
+d="M535 49v-63q-35 -9 -57 -9q-71 0 -84 63l-2 14q-87 -76 -178 -77q-110 0 -153 75q-19 35 -19 80q0 102 92 140q36 15 130 27q16 2 38 5q73 9 84 38q3 8 3 20v22q0 64 -81 76q-17 2 -36 2q-103 0 -120 -75q-2 -9 -3 -18h-84q3 72 36 109q55 61 174 61q176 0 195 -116
+q2 -13 2 -27v-308q0 -41 45 -41q9 0 18 2zM389 165v94q-32 -15 -114 -26q-9 -1 -20 -3q-106 -15 -122 -69q-4 -12 -4 -27q0 -65 67 -80q16 -4 36 -4q72 0 124 47q32 29 33 68zM275 754q50 0 76 -43l9 -23q3 -11 3 -22q0 -49 -43 -75q-21 -12 -45 -12q-48 0 -75 42
+q-13 21 -13 46q0 47 42 74q21 13 46 13zM275 710q-29 0 -41 -27q-3 -8 -3 -16q0 -29 27 -41q8 -3 17 -3q29 0 41 27q3 8 3 16q0 31 -28 41q-8 3 -16 3z" />
+ <glyph glyph-name="ae" unicode="æ" horiz-adv-x="889"
+d="M751 159h84q-22 -118 -122 -162q-51 -18 -101 -20q-107 0 -166 67l-12 16q-4 6 -16 27q-93 -97 -184 -108q-16 -2 -32 -2q-103 0 -146 72q-22 36 -22 83q0 105 100 142q54 20 160 29q70 6 82 32q5 10 5 27v22q0 78 -118 78q-103 0 -119 -77q-2 -7 -3 -16h-84q3 72 36 109
+q55 61 172 61q128 0 175 -82q49 69 143 80q15 2 30 2q111 0 177 -80q15 -18 25 -39q5 -9 9 -19q21 -55 21 -167h-386q1 -72 28 -112q43 -68 126 -68q101 0 138 105zM381 157v101q-33 -14 -124 -28q-5 0 -10 -1q-103 -15 -121 -63q-5 -14 -5 -32q0 -61 60 -79q18 -5 40 -5
+q61 0 111 38q49 38 49 69zM461 302h294q0 93 -65 137q-34 23 -79 23q-85 0 -126 -75q-20 -36 -24 -85z" />
+ <glyph glyph-name="ccedilla" unicode="ç" horiz-adv-x="500"
+d="M264 -23l-13 -33q14 2 28 2q67 0 77 -50q2 -8 2 -17q0 -63 -66 -85q-25 -8 -57 -8q-44 0 -104 24l-21 9l21 41l9 -4q55 -29 89 -29q38 0 51 29q3 7 3 16q-7 34 -46 37q-15 0 -31 -8l-12 7l31 71q-57 11 -93 37q-90 64 -100 206q-1 15 -1 31q0 160 92 237q59 49 141 49
+q106 0 164 -68l8 -10q29 -43 35 -113h-84q-13 97 -97 112l-27 2q-94 0 -129 -100q-16 -46 -16 -110q0 -137 79 -182q29 -17 68 -17q107 0 128 127h84q-7 -122 -98 -175q-50 -28 -115 -28z" />
+ <glyph glyph-name="egrave" unicode="è" horiz-adv-x="556"
+d="M513 234h-386q1 -72 28 -112q43 -68 126 -68q102 0 137 105h84q-22 -121 -126 -164q-44 -18 -98 -18q-136 0 -199 110q-39 68 -39 168q0 158 94 235q60 49 146 49q115 0 180 -82q20 -25 32 -56q21 -55 21 -167zM129 302h294q1 2 1 6q0 80 -59 125q-38 29 -86 29
+q-85 0 -126 -75q-20 -36 -24 -85zM252 740l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="eacute" unicode="é" horiz-adv-x="556"
+d="M513 234h-386q1 -72 28 -112q43 -68 126 -68q102 0 137 105h84q-22 -121 -126 -164q-44 -18 -98 -18q-136 0 -199 110q-39 68 -39 168q0 158 94 235q60 49 146 49q115 0 180 -82q20 -25 32 -56q21 -55 21 -167zM129 302h294q1 2 1 6q0 80 -59 125q-38 29 -86 29
+q-85 0 -126 -75q-20 -36 -24 -85zM308 740h113l-149 -148h-60z" />
+ <glyph glyph-name="ecircumflex" unicode="ê" horiz-adv-x="556"
+d="M513 234h-386q1 -72 28 -112q43 -68 126 -68q102 0 137 105h84q-22 -121 -126 -164q-44 -18 -98 -18q-136 0 -199 110q-39 68 -39 168q0 158 94 235q60 49 146 49q115 0 180 -82q20 -25 32 -56q21 -55 21 -167zM129 302h294q1 2 1 6q0 80 -59 125q-38 29 -86 29
+q-85 0 -126 -75q-20 -36 -24 -85zM239 741h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="edieresis" unicode="ë" horiz-adv-x="556"
+d="M513 234h-386q1 -72 28 -112q43 -68 126 -68q102 0 137 105h84q-22 -121 -126 -164q-44 -18 -98 -18q-136 0 -199 110q-39 68 -39 168q0 158 94 235q60 49 146 49q115 0 180 -82q20 -25 32 -56q21 -55 21 -167zM129 302h294q1 2 1 6q0 80 -59 125q-38 29 -86 29
+q-85 0 -126 -75q-20 -36 -24 -85zM257 715v-103h-104v103h104zM419 715v-103h-104v103h104z" />
+ <glyph glyph-name="igrave" unicode="ì" horiz-adv-x="278"
+d="M177 524v-524h-83v524h83zM108 740l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="iacute" unicode="í" horiz-adv-x="278"
+d="M177 524v-524h-83v524h83zM161 740h113l-149 -148h-60z" />
+ <glyph glyph-name="icircumflex" unicode="î" horiz-adv-x="278"
+d="M177 524v-524h-83v524h83zM89 741h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="idieresis" unicode="ï" horiz-adv-x="278"
+d="M177 524v-524h-83v524h83zM107 708v-103h-104v103h104zM269 708v-103h-104v103h104z" />
+ <glyph glyph-name="eth" unicode="ð" horiz-adv-x="556"
+d="M219 613l-97 -45l-36 39l85 40q-30 23 -82 52l44 44q37 -16 111 -63l97 45l40 -37l-90 -41q89 -68 136 -133l11 -17q67 -102 72 -215v-23q0 -193 -121 -256q-50 -26 -116 -26q-155 0 -211 132q-26 62 -26 149q0 178 104 244q52 35 114 35q24 0 63 -13q-39 40 -98 89z
+M273 462q-93 0 -131 -92q-19 -48 -19 -112q0 -135 77 -184q32 -20 73 -20q90 0 129 88q21 47 21 113q0 145 -82 191q-30 16 -68 16z" />
+ <glyph glyph-name="ntilde" unicode="ñ" horiz-adv-x="556"
+d="M70 524h77v-88q54 85 130 99q20 4 44 4q105 0 147 -70q19 -32 19 -73v-396h-83v363q0 70 -59 94q-21 9 -49 9q-84 0 -121 -77q-21 -42 -21 -100v-289h-84v524zM378 717h58q-15 -104 -89 -104q-21 0 -85 25q-35 13 -49 13q-23 0 -33 -37h-58q16 93 75 102q5 1 11 1
+q23 0 65 -17q2 -1 5 -2q39 -18 63 -18q25 0 37 37z" />
+ <glyph glyph-name="ograve" unicode="ò" horiz-adv-x="556"
+d="M272 539q152 0 209 -129q29 -65 29 -156q0 -167 -102 -238q-56 -39 -135 -39q-144 0 -204 119q-33 67 -33 162q0 174 105 244q55 37 131 37zM273 462q-93 0 -131 -92q-19 -48 -19 -112q0 -137 78 -185q31 -19 72 -19q90 0 129 88q21 47 21 113q0 145 -82 191
+q-30 16 -68 16zM245 740l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="oacute" unicode="ó" horiz-adv-x="556"
+d="M272 539q152 0 209 -129q29 -65 29 -156q0 -167 -102 -238q-56 -39 -135 -39q-144 0 -204 119q-33 67 -33 162q0 174 105 244q55 37 131 37zM273 462q-93 0 -131 -92q-19 -48 -19 -112q0 -137 78 -185q31 -19 72 -19q90 0 129 88q21 47 21 113q0 145 -82 191
+q-30 16 -68 16zM298 740h113l-149 -148h-60z" />
+ <glyph glyph-name="ocircumflex" unicode="ô" horiz-adv-x="556"
+d="M272 539q152 0 209 -129q29 -65 29 -156q0 -167 -102 -238q-56 -39 -135 -39q-144 0 -204 119q-33 67 -33 162q0 174 105 244q55 37 131 37zM273 462q-93 0 -131 -92q-19 -48 -19 -112q0 -137 78 -185q31 -19 72 -19q90 0 129 88q21 47 21 113q0 145 -82 191
+q-30 16 -68 16zM226 741h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="otilde" unicode="õ" horiz-adv-x="556"
+d="M272 539q152 0 209 -129q29 -65 29 -156q0 -167 -102 -238q-56 -39 -135 -39q-144 0 -204 119q-33 67 -33 162q0 174 105 244q55 37 131 37zM273 462q-93 0 -131 -92q-19 -48 -19 -112q0 -137 78 -185q31 -19 72 -19q90 0 129 88q21 47 21 113q0 145 -82 191
+q-30 16 -68 16zM375 717h58q-15 -104 -89 -104q-21 0 -85 25q-35 13 -49 13q-23 0 -33 -37h-58q16 93 75 102q5 1 11 1q23 0 65 -17q2 -1 5 -2q39 -18 63 -18q25 0 37 37z" />
+ <glyph glyph-name="odieresis" unicode="ö" horiz-adv-x="556"
+d="M272 539q152 0 209 -129q29 -65 29 -156q0 -167 -102 -238q-56 -39 -135 -39q-144 0 -204 119q-33 67 -33 162q0 174 105 244q55 37 131 37zM273 462q-93 0 -131 -92q-19 -48 -19 -112q0 -137 78 -185q31 -19 72 -19q90 0 129 88q21 47 21 113q0 145 -82 191
+q-30 16 -68 16zM244 715v-103h-104v103h104zM406 715v-103h-104v103h104z" />
+ <glyph glyph-name="divide" unicode="÷" horiz-adv-x="584"
+d="M534 271v-70h-484v70h484zM344 104v-104h-104v104h104zM344 472v-104h-104v104h104z" />
+ <glyph glyph-name="oslash" unicode="ø" horiz-adv-x="611"
+d="M529 511l-63 -71q44 -73 44 -182q0 -176 -106 -246q-55 -35 -130 -35q-103 0 -163 62l-61 -69l-32 28l66 74q-48 71 -48 186q0 175 106 245q55 36 131 36q101 0 166 -65l58 65zM405 371l-238 -269q43 -48 106 -48q93 0 131 92q19 48 19 112q0 66 -18 113zM144 141
+l239 269q-41 52 -110 52q-93 0 -131 -92q-19 -48 -19 -112q0 -68 21 -117z" />
+ <glyph glyph-name="ugrave" unicode="ù" horiz-adv-x="556"
+d="M482 0h-75v73q-56 -79 -130 -92q-20 -4 -45 -4q-107 0 -148 70q-19 32 -19 73v404h83v-371q0 -70 59 -94q22 -9 49 -9q85 0 123 78q20 42 20 99v297h83v-524zM243 740l96 -148h-60l-149 148h113z" />
+ <glyph glyph-name="uacute" unicode="ú" horiz-adv-x="556"
+d="M482 0h-75v73q-56 -79 -130 -92q-20 -4 -45 -4q-107 0 -148 70q-19 32 -19 73v404h83v-371q0 -70 59 -94q22 -9 49 -9q85 0 123 78q20 42 20 99v297h83v-524zM296 740h113l-149 -148h-60z" />
+ <glyph glyph-name="ucircumflex" unicode="û" horiz-adv-x="556"
+d="M482 0h-75v73q-56 -79 -130 -92q-20 -4 -45 -4q-107 0 -148 70q-19 32 -19 73v404h83v-371q0 -70 59 -94q22 -9 49 -9q85 0 123 78q20 42 20 99v297h83v-524zM227 741h95l96 -150h-63l-81 96l-79 -96h-64z" />
+ <glyph glyph-name="udieresis" unicode="ü" horiz-adv-x="556"
+d="M482 0h-75v73q-56 -79 -130 -92q-20 -4 -45 -4q-107 0 -148 70q-19 32 -19 73v404h83v-371q0 -70 59 -94q22 -9 49 -9q85 0 123 78q20 42 20 99v297h83v-524zM245 715v-103h-104v103h104zM407 715v-103h-104v103h104z" />
+ <glyph glyph-name="yacute" unicode="ý" horiz-adv-x="500"
+d="M388 524h90l-233 -634q-22 -57 -57 -83q-34 -25 -78 -25q-31 0 -56 13v75q27 -6 44 -6q45 0 63 40q2 5 4 11l32 83l-177 526h89l134 -408zM271 740h113l-149 -148h-60z" />
+ <glyph glyph-name="thorn" unicode="þ" horiz-adv-x="555"
+d="M54 -218v932h83v-255q60 78 161 80q120 0 181 -105q43 -73 43 -181q0 -154 -89 -229q-39 -33 -91 -43q-21 -4 -44 -4q-97 0 -161 78v-273h-83zM283 461q-83 0 -122 -84q-24 -50 -24 -119q0 -125 69 -177q33 -26 77 -26q84 0 126 81q26 50 26 119q0 127 -71 180
+q-35 26 -81 26z" />
+ <glyph glyph-name="ydieresis" unicode="ÿ" horiz-adv-x="500"
+d="M388 524h90l-233 -634q-22 -57 -57 -83q-34 -25 -78 -25q-31 0 -56 13v75q27 -6 44 -6q45 0 63 40q2 5 4 11l32 83l-177 526h89l134 -408zM217 715v-103h-104v103h104zM379 715v-103h-104v103h104z" />
+ <hkern u1="A" u2="ç" k="10" />
+ <hkern u1="A" u2="Ü" k="37" />
+ <hkern u1="A" u2="Û" k="37" />
+ <hkern u1="A" u2="Ú" k="37" />
+ <hkern u1="A" u2="Ù" k="37" />
+ <hkern u1="A" u2="Ö" k="33" />
+ <hkern u1="A" u2="Ç" k="36" />
+ <hkern u1="A" u2="«" k="44" />
+ <hkern u1="A" u2="y" k="34" />
+ <hkern u1="A" u2="w" k="21" />
+ <hkern u1="A" u2="v" k="31" />
+ <hkern u1="A" u2="u" k="12" />
+ <hkern u1="A" u2="t" k="16" />
+ <hkern u1="A" u2="q" k="8" />
+ <hkern u1="A" u2="o" k="13" />
+ <hkern u1="A" u2="g" k="10" />
+ <hkern u1="A" u2="e" k="16" />
+ <hkern u1="A" u2="d" k="8" />
+ <hkern u1="A" u2="c" k="11" />
+ <hkern u1="A" u2="b" k="-4" />
+ <hkern u1="A" u2="a" k="4" />
+ <hkern u1="A" u2="Y" k="99" />
+ <hkern u1="A" u2="W" k="51" />
+ <hkern u1="A" u2="V" k="75" />
+ <hkern u1="A" u2="U" k="37" />
+ <hkern u1="A" u2="T" k="93" />
+ <hkern u1="A" u2="Q" k="32" />
+ <hkern u1="A" u2="O" k="33" />
+ <hkern u1="A" u2="G" k="35" />
+ <hkern u1="A" u2="C" k="36" />
+ <hkern u1="A" u2="." k="-5" />
+ <hkern u1="A" u2="-" k="3" />
+ <hkern u1="A" u2="," k="-5" />
+ <hkern u1="B" u2="Ø" k="1" />
+ <hkern u1="B" u2="Ö" k="7" />
+ <hkern u1="B" u2="Ô" k="7" />
+ <hkern u1="B" u2="Ó" k="7" />
+ <hkern u1="B" u2="Ò" k="7" />
+ <hkern u1="B" u2="Æ" k="21" />
+ <hkern u1="B" u2="Å" k="21" />
+ <hkern u1="B" u2="Ä" k="21" />
+ <hkern u1="B" u2="Ã" k="21" />
+ <hkern u1="B" u2="Â" k="21" />
+ <hkern u1="B" u2="Á" k="21" />
+ <hkern u1="B" u2="Y" k="44" />
+ <hkern u1="B" u2="W" k="25" />
+ <hkern u1="B" u2="V" k="41" />
+ <hkern u1="B" u2="O" k="7" />
+ <hkern u1="B" u2="A" k="21" />
+ <hkern u1="C" u2="Ö" k="8" />
+ <hkern u1="C" u2="Ó" k="8" />
+ <hkern u1="C" u2="Æ" k="33" />
+ <hkern u1="C" u2="Å" k="32" />
+ <hkern u1="C" u2="Ä" k="32" />
+ <hkern u1="C" u2="Á" k="32" />
+ <hkern u1="C" u2="O" k="8" />
+ <hkern u1="C" u2="K" k="10" />
+ <hkern u1="C" u2="H" k="12" />
+ <hkern u1="C" u2="A" k="32" />
+ <hkern u1="D" u2="Å" k="42" />
+ <hkern u1="D" u2="Ä" k="42" />
+ <hkern u1="D" u2="Ã" k="42" />
+ <hkern u1="D" u2="Â" k="42" />
+ <hkern u1="D" u2="Á" k="42" />
+ <hkern u1="D" u2="À" k="42" />
+ <hkern u1="D" u2="Y" k="63" />
+ <hkern u1="D" u2="X" k="53" />
+ <hkern u1="D" u2="W" k="29" />
+ <hkern u1="D" u2="V" k="51" />
+ <hkern u1="D" u2="T" k="45" />
+ <hkern u1="D" u2="J" k="5" />
+ <hkern u1="D" u2="A" k="42" />
+ <hkern u1="F" u2="ø" k="21" />
+ <hkern u1="F" u2="ö" k="21" />
+ <hkern u1="F" u2="ó" k="21" />
+ <hkern u1="F" u2="é" k="24" />
+ <hkern u1="F" u2="æ" k="29" />
+ <hkern u1="F" u2="å" k="33" />
+ <hkern u1="F" u2="ä" k="33" />
+ <hkern u1="F" u2="á" k="33" />
+ <hkern u1="F" u2="Ö" k="22" />
+ <hkern u1="F" u2="Å" k="69" />
+ <hkern u1="F" u2="Ä" k="69" />
+ <hkern u1="F" u2="Ã" k="69" />
+ <hkern u1="F" u2="Â" k="69" />
+ <hkern u1="F" u2="Á" k="69" />
+ <hkern u1="F" u2="À" k="69" />
+ <hkern u1="F" u2="u" k="33" />
+ <hkern u1="F" u2="r" k="35" />
+ <hkern u1="F" u2="o" k="21" />
+ <hkern u1="F" u2="j" k="12" />
+ <hkern u1="F" u2="i" k="10" />
+ <hkern u1="F" u2="e" k="24" />
+ <hkern u1="F" u2="a" k="33" />
+ <hkern u1="F" u2="O" k="22" />
+ <hkern u1="F" u2="J" k="51" />
+ <hkern u1="F" u2="A" k="69" />
+ <hkern u1="F" u2="." k="108" />
+ <hkern u1="F" u2="-" k="14" />
+ <hkern u1="F" u2="," k="108" />
+ <hkern u1="G" u2="Æ" k="3" />
+ <hkern u1="G" u2="Å" k="6" />
+ <hkern u1="G" u2="Ä" k="6" />
+ <hkern u1="G" u2="Ã" k="6" />
+ <hkern u1="G" u2="Â" k="6" />
+ <hkern u1="G" u2="Á" k="6" />
+ <hkern u1="G" u2="À" k="6" />
+ <hkern u1="G" u2="Y" k="62" />
+ <hkern u1="G" u2="W" k="28" />
+ <hkern u1="G" u2="V" k="50" />
+ <hkern u1="G" u2="T" k="44" />
+ <hkern u1="G" u2="A" k="6" />
+ <hkern u1="J" u2="Æ" k="31" />
+ <hkern u1="J" u2="Å" k="32" />
+ <hkern u1="J" u2="Ä" k="32" />
+ <hkern u1="J" u2="A" k="32" />
+ <hkern u1="K" u2="ü" k="19" />
+ <hkern u1="K" u2="ö" k="29" />
+ <hkern u1="K" u2="ó" k="29" />
+ <hkern u1="K" u2="æ" k="7" />
+ <hkern u1="K" u2="å" k="11" />
+ <hkern u1="K" u2="ä" k="11" />
+ <hkern u1="K" u2="Ö" k="48" />
+ <hkern u1="K" u2="Ó" k="48" />
+ <hkern u1="K" u2="y" k="62" />
+ <hkern u1="K" u2="u" k="19" />
+ <hkern u1="K" u2="o" k="29" />
+ <hkern u1="K" u2="e" k="32" />
+ <hkern u1="K" u2="a" k="11" />
+ <hkern u1="K" u2="T" k="-20" />
+ <hkern u1="K" u2="S" k="38" />
+ <hkern u1="K" u2="O" k="48" />
+ <hkern u1="K" u2="G" k="51" />
+ <hkern u1="K" u2="C" k="51" />
+ <hkern u1="K" u2="-" k="47" />
+ <hkern u1="L" u2="ü" k="7" />
+ <hkern u1="L" u2="Ü" k="35" />
+ <hkern u1="L" u2="Ö" k="41" />
+ <hkern u1="L" u2="Õ" k="41" />
+ <hkern u1="L" u2="Ô" k="41" />
+ <hkern u1="L" u2="Ó" k="41" />
+ <hkern u1="L" u2="Ò" k="41" />
+ <hkern u1="L" u2="Ç" k="37" />
+ <hkern u1="L" u2="Æ" k="-20" />
+ <hkern u1="L" u2="Å" k="-17" />
+ <hkern u1="L" u2="Ä" k="-17" />
+ <hkern u1="L" u2="Á" k="-17" />
+ <hkern u1="L" u2="y" k="56" />
+ <hkern u1="L" u2="u" k="7" />
+ <hkern u1="L" u2="Y" k="121" />
+ <hkern u1="L" u2="W" k="68" />
+ <hkern u1="L" u2="V" k="105" />
+ <hkern u1="L" u2="U" k="35" />
+ <hkern u1="L" u2="T" k="105" />
+ <hkern u1="L" u2="S" k="19" />
+ <hkern u1="L" u2="O" k="41" />
+ <hkern u1="L" u2="G" k="42" />
+ <hkern u1="L" u2="C" k="41" />
+ <hkern u1="L" u2="A" k="-17" />
+ <hkern u1="L" u2="-" k="125" />
+ <hkern u1="N" u2="ø" k="-4" />
+ <hkern u1="N" u2="ö" k="-2" />
+ <hkern u1="N" u2="ó" k="-2" />
+ <hkern u1="N" u2="æ" k="2" />
+ <hkern u1="N" u2="å" k="5" />
+ <hkern u1="N" u2="ä" k="5" />
+ <hkern u1="N" u2="á" k="5" />
+ <hkern u1="N" u2="Ç" k="3" />
+ <hkern u1="N" u2="Æ" k="6" />
+ <hkern u1="N" u2="Å" k="9" />
+ <hkern u1="N" u2="Ä" k="9" />
+ <hkern u1="N" u2="Á" k="9" />
+ <hkern u1="N" u2="o" k="-2" />
+ <hkern u1="N" u2="a" k="5" />
+ <hkern u1="N" u2="G" k="2" />
+ <hkern u1="N" u2="C" k="3" />
+ <hkern u1="N" u2="A" k="9" />
+ <hkern u1="N" u2="." k="7" />
+ <hkern u1="N" u2="," k="7" />
+ <hkern u1="O" u2="Æ" k="39" />
+ <hkern u1="O" u2="Å" k="35" />
+ <hkern u1="O" u2="Ä" k="35" />
+ <hkern u1="O" u2="Á" k="35" />
+ <hkern u1="O" u2="Y" k="59" />
+ <hkern u1="O" u2="X" k="46" />
+ <hkern u1="O" u2="W" k="23" />
+ <hkern u1="O" u2="V" k="45" />
+ <hkern u1="O" u2="T" k="42" />
+ <hkern u1="O" u2="A" k="35" />
+ <hkern u1="P" u2="ø" k="27" />
+ <hkern u1="P" u2="ö" k="27" />
+ <hkern u1="P" u2="ó" k="27" />
+ <hkern u1="P" u2="é" k="31" />
+ <hkern u1="P" u2="æ" k="24" />
+ <hkern u1="P" u2="å" k="28" />
+ <hkern u1="P" u2="ä" k="28" />
+ <hkern u1="P" u2="á" k="28" />
+ <hkern u1="P" u2="Æ" k="86" />
+ <hkern u1="P" u2="Å" k="78" />
+ <hkern u1="P" u2="Ä" k="78" />
+ <hkern u1="P" u2="Á" k="78" />
+ <hkern u1="P" u2="o" k="27" />
+ <hkern u1="P" u2="e" k="31" />
+ <hkern u1="P" u2="a" k="28" />
+ <hkern u1="P" u2="J" k="78" />
+ <hkern u1="P" u2="A" k="78" />
+ <hkern u1="P" u2="." k="135" />
+ <hkern u1="P" u2="-" k="40" />
+ <hkern u1="P" u2="," k="135" />
+ <hkern u1="R" u2="ü" k="9" />
+ <hkern u1="R" u2="ú" k="9" />
+ <hkern u1="R" u2="ö" k="9" />
+ <hkern u1="R" u2="ó" k="9" />
+ <hkern u1="R" u2="é" k="12" />
+ <hkern u1="R" u2="æ" k="12" />
+ <hkern u1="R" u2="å" k="15" />
+ <hkern u1="R" u2="ä" k="15" />
+ <hkern u1="R" u2="á" k="15" />
+ <hkern u1="R" u2="Ü" k="17" />
+ <hkern u1="R" u2="Ö" k="13" />
+ <hkern u1="R" u2="Ó" k="13" />
+ <hkern u1="R" u2="Ç" k="16" />
+ <hkern u1="R" u2="y" k="8" />
+ <hkern u1="R" u2="u" k="9" />
+ <hkern u1="R" u2="o" k="9" />
+ <hkern u1="R" u2="e" k="12" />
+ <hkern u1="R" u2="a" k="15" />
+ <hkern u1="R" u2="Y" k="43" />
+ <hkern u1="R" u2="W" k="27" />
+ <hkern u1="R" u2="V" k="39" />
+ <hkern u1="R" u2="U" k="17" />
+ <hkern u1="R" u2="T" k="23" />
+ <hkern u1="R" u2="O" k="13" />
+ <hkern u1="R" u2="G" k="15" />
+ <hkern u1="R" u2="C" k="16" />
+ <hkern u1="R" u2="-" k="2" />
+ <hkern u1="S" u2="Æ" k="22" />
+ <hkern u1="S" u2="Å" k="22" />
+ <hkern u1="S" u2="Ä" k="22" />
+ <hkern u1="S" u2="Á" k="22" />
+ <hkern u1="S" u2="t" k="3" />
+ <hkern u1="S" u2="Y" k="48" />
+ <hkern u1="S" u2="W" k="28" />
+ <hkern u1="S" u2="V" k="42" />
+ <hkern u1="S" u2="T" k="28" />
+ <hkern u1="S" u2="A" k="22" />
+ <hkern u1="T" u2="ø" k="87" />
+ <hkern u1="T" u2="æ" k="97" />
+ <hkern u1="T" u2="Ø" k="41" />
+ <hkern u1="T" u2="Ö" k="42" />
+ <hkern u1="T" u2="Õ" k="42" />
+ <hkern u1="T" u2="Ô" k="42" />
+ <hkern u1="T" u2="Ó" k="42" />
+ <hkern u1="T" u2="Ò" k="42" />
+ <hkern u1="T" u2="Æ" k="97" />
+ <hkern u1="T" u2="Å" k="95" />
+ <hkern u1="T" u2="Ä" k="95" />
+ <hkern u1="T" u2="Ã" k="95" />
+ <hkern u1="T" u2="Â" k="95" />
+ <hkern u1="T" u2="Á" k="95" />
+ <hkern u1="T" u2="À" k="95" />
+ <hkern u1="T" u2="«" k="121" />
+ <hkern u1="T" u2="y" k="100" />
+ <hkern u1="T" u2="w" k="93" />
+ <hkern u1="T" u2="v" k="95" />
+ <hkern u1="T" u2="u" k="91" />
+ <hkern u1="T" u2="s" k="92" />
+ <hkern u1="T" u2="r" k="92" />
+ <hkern u1="T" u2="o" k="92" />
+ <hkern u1="T" u2="j" k="5" />
+ <hkern u1="T" u2="i" k="3" />
+ <hkern u1="T" u2="g" k="89" />
+ <hkern u1="T" u2="e" k="95" />
+ <hkern u1="T" u2="c" k="90" />
+ <hkern u1="T" u2="a" k="100" />
+ <hkern u1="T" u2="Y" k="-20" />
+ <hkern u1="T" u2="W" k="-16" />
+ <hkern u1="T" u2="V" k="-12" />
+ <hkern u1="T" u2="S" k="24" />
+ <hkern u1="T" u2="O" k="42" />
+ <hkern u1="T" u2="J" k="100" />
+ <hkern u1="T" u2="G" k="45" />
+ <hkern u1="T" u2="C" k="44" />
+ <hkern u1="T" u2="A" k="95" />
+ <hkern u1="T" u2=";" k="129" />
+ <hkern u1="T" u2=":" k="133" />
+ <hkern u1="T" u2="." k="100" />
+ <hkern u1="T" u2="-" k="77" />
+ <hkern u1="T" u2="," k="100" />
+ <hkern u1="U" u2="Æ" k="39" />
+ <hkern u1="U" u2="Å" k="36" />
+ <hkern u1="U" u2="Ä" k="36" />
+ <hkern u1="U" u2="Ã" k="36" />
+ <hkern u1="U" u2="Â" k="36" />
+ <hkern u1="U" u2="Á" k="36" />
+ <hkern u1="U" u2="r" k="4" />
+ <hkern u1="U" u2="p" k="-3" />
+ <hkern u1="U" u2="n" k="4" />
+ <hkern u1="U" u2="m" k="4" />
+ <hkern u1="U" u2="A" k="36" />
+ <hkern u1="U" u2="." k="25" />
+ <hkern u1="U" u2="," k="27" />
+ <hkern u1="V" u2="ø" k="50" />
+ <hkern u1="V" u2="æ" k="55" />
+ <hkern u1="V" u2="Ø" k="33" />
+ <hkern u1="V" u2="Ö" k="40" />
+ <hkern u1="V" u2="Õ" k="40" />
+ <hkern u1="V" u2="Ô" k="40" />
+ <hkern u1="V" u2="Ó" k="40" />
+ <hkern u1="V" u2="Ò" k="40" />
+ <hkern u1="V" u2="Æ" k="78" />
+ <hkern u1="V" u2="Å" k="71" />
+ <hkern u1="V" u2="Ä" k="71" />
+ <hkern u1="V" u2="Ã" k="71" />
+ <hkern u1="V" u2="Â" k="71" />
+ <hkern u1="V" u2="Á" k="71" />
+ <hkern u1="V" u2="À" k="71" />
+ <hkern u1="V" u2="«" k="83" />
+ <hkern u1="V" u2="y" k="20" />
+ <hkern u1="V" u2="u" k="41" />
+ <hkern u1="V" u2="r" k="42" />
+ <hkern u1="V" u2="o" k="54" />
+ <hkern u1="V" u2="i" k="5" />
+ <hkern u1="V" u2="g" k="50" />
+ <hkern u1="V" u2="e" k="57" />
+ <hkern u1="V" u2="a" k="59" />
+ <hkern u1="V" u2="T" k="-15" />
+ <hkern u1="V" u2="S" k="35" />
+ <hkern u1="V" u2="O" k="40" />
+ <hkern u1="V" u2="G" k="42" />
+ <hkern u1="V" u2="C" k="43" />
+ <hkern u1="V" u2="A" k="71" />
+ <hkern u1="V" u2=";" k="66" />
+ <hkern u1="V" u2=":" k="66" />
+ <hkern u1="V" u2="." k="89" />
+ <hkern u1="V" u2="-" k="38" />
+ <hkern u1="V" u2="," k="89" />
+ <hkern u1="W" u2="ø" k="25" />
+ <hkern u1="W" u2="æ" k="34" />
+ <hkern u1="W" u2="Ø" k="13" />
+ <hkern u1="W" u2="Ö" k="20" />
+ <hkern u1="W" u2="Õ" k="20" />
+ <hkern u1="W" u2="Ô" k="20" />
+ <hkern u1="W" u2="Ó" k="20" />
+ <hkern u1="W" u2="Ò" k="20" />
+ <hkern u1="W" u2="Æ" k="56" />
+ <hkern u1="W" u2="Å" k="50" />
+ <hkern u1="W" u2="Ä" k="50" />
+ <hkern u1="W" u2="Ã" k="50" />
+ <hkern u1="W" u2="Â" k="50" />
+ <hkern u1="W" u2="Á" k="50" />
+ <hkern u1="W" u2="À" k="50" />
+ <hkern u1="W" u2="«" k="58" />
+ <hkern u1="W" u2="y" k="6" />
+ <hkern u1="W" u2="u" k="28" />
+ <hkern u1="W" u2="r" k="28" />
+ <hkern u1="W" u2="o" k="29" />
+ <hkern u1="W" u2="i" k="1" />
+ <hkern u1="W" u2="g" k="25" />
+ <hkern u1="W" u2="e" k="32" />
+ <hkern u1="W" u2="a" k="38" />
+ <hkern u1="W" u2="T" k="-19" />
+ <hkern u1="W" u2="S" k="24" />
+ <hkern u1="W" u2="O" k="20" />
+ <hkern u1="W" u2="G" k="22" />
+ <hkern u1="W" u2="C" k="23" />
+ <hkern u1="W" u2="A" k="50" />
+ <hkern u1="W" u2=";" k="53" />
+ <hkern u1="W" u2=":" k="52" />
+ <hkern u1="W" u2="." k="56" />
+ <hkern u1="W" u2="-" k="13" />
+ <hkern u1="W" u2="," k="56" />
+ <hkern u1="X" u2="Ö" k="45" />
+ <hkern u1="X" u2="y" k="61" />
+ <hkern u1="X" u2="u" k="24" />
+ <hkern u1="X" u2="o" k="33" />
+ <hkern u1="X" u2="e" k="36" />
+ <hkern u1="X" u2="a" k="15" />
+ <hkern u1="X" u2="Q" k="44" />
+ <hkern u1="X" u2="O" k="45" />
+ <hkern u1="X" u2="C" k="48" />
+ <hkern u1="X" u2="-" k="51" />
+ <hkern u1="Y" u2="ø" k="82" />
+ <hkern u1="Y" u2="æ" k="84" />
+ <hkern u1="Y" u2="Ø" k="54" />
+ <hkern u1="Y" u2="Ö" k="56" />
+ <hkern u1="Y" u2="Õ" k="56" />
+ <hkern u1="Y" u2="Ô" k="56" />
+ <hkern u1="Y" u2="Ó" k="56" />
+ <hkern u1="Y" u2="Ò" k="56" />
+ <hkern u1="Y" u2="Æ" k="103" />
+ <hkern u1="Y" u2="Å" k="96" />
+ <hkern u1="Y" u2="Ä" k="96" />
+ <hkern u1="Y" u2="Ã" k="96" />
+ <hkern u1="Y" u2="Â" k="96" />
+ <hkern u1="Y" u2="Á" k="96" />
+ <hkern u1="Y" u2="À" k="96" />
+ <hkern u1="Y" u2="«" k="123" />
+ <hkern u1="Y" u2="v" k="36" />
+ <hkern u1="Y" u2="u" k="63" />
+ <hkern u1="Y" u2="p" k="54" />
+ <hkern u1="Y" u2="o" k="86" />
+ <hkern u1="Y" u2="i" k="-3" />
+ <hkern u1="Y" u2="g" k="83" />
+ <hkern u1="Y" u2="e" k="89" />
+ <hkern u1="Y" u2="a" k="88" />
+ <hkern u1="Y" u2="T" k="-23" />
+ <hkern u1="Y" u2="S" k="41" />
+ <hkern u1="Y" u2="O" k="56" />
+ <hkern u1="Y" u2="G" k="58" />
+ <hkern u1="Y" u2="C" k="58" />
+ <hkern u1="Y" u2="A" k="96" />
+ <hkern u1="Y" u2=";" k="88" />
+ <hkern u1="Y" u2=":" k="87" />
+ <hkern u1="Y" u2="." k="111" />
+ <hkern u1="Y" u2="-" k="84" />
+ <hkern u1="Y" u2="," k="111" />
+ <hkern u1="Z" u2="y" k="38" />
+ <hkern u1="Z" u2="v" k="33" />
+ <hkern u1="a" u2="y" k="26" />
+ <hkern u1="a" u2="w" k="13" />
+ <hkern u1="a" u2="v" k="21" />
+ <hkern u1="a" u2="j" k="4" />
+ <hkern u1="b" u2="y" k="15" />
+ <hkern u1="b" u2="w" k="3" />
+ <hkern u1="b" u2="v" k="11" />
+ <hkern u1="c" u2="k" k="-7" />
+ <hkern u1="c" u2="h" k="-1" />
+ <hkern u1="e" u2="y" k="19" />
+ <hkern u1="e" u2="x" k="27" />
+ <hkern u1="e" u2="w" k="9" />
+ <hkern u1="e" u2="v" k="15" />
+ <hkern u1="e" u2="t" k="10" />
+ <hkern u1="f" u2="ø" k="9" />
+ <hkern u1="f" u2="ö" k="10" />
+ <hkern u1="f" u2="ó" k="10" />
+ <hkern u1="f" u2="é" k="15" />
+ <hkern u1="f" u2="æ" k="5" />
+ <hkern u1="f" u2="å" k="9" />
+ <hkern u1="f" u2="ä" k="9" />
+ <hkern u1="f" u2="á" k="9" />
+ <hkern u1="f" u2="t" k="-24" />
+ <hkern u1="f" u2="o" k="10" />
+ <hkern u1="f" u2="l" k="3" />
+ <hkern u1="f" u2="j" k="4" />
+ <hkern u1="f" u2="i" k="2" />
+ <hkern u1="f" u2="f" k="-22" />
+ <hkern u1="f" u2="e" k="15" />
+ <hkern u1="f" u2="a" k="9" />
+ <hkern u1="g" u2="ö" k="-3" />
+ <hkern u1="g" u2="ó" k="-3" />
+ <hkern u1="g" u2="æ" k="1" />
+ <hkern u1="g" u2="å" k="5" />
+ <hkern u1="g" u2="ä" k="5" />
+ <hkern u1="g" u2="a" k="5" />
+ <hkern u1="h" u2="y" k="18" />
+ <hkern u1="i" u2="j" k="3" />
+ <hkern u1="i" u2="T" k="7" />
+ <hkern u1="k" u2="ü" k="6" />
+ <hkern u1="k" u2="ö" k="19" />
+ <hkern u1="k" u2="ó" k="19" />
+ <hkern u1="k" u2="é" k="21" />
+ <hkern u1="k" u2="æ" k="-2" />
+ <hkern u1="k" u2="å" k="2" />
+ <hkern u1="k" u2="ä" k="2" />
+ <hkern u1="k" u2="á" k="2" />
+ <hkern u1="k" u2="u" k="11" />
+ <hkern u1="k" u2="s" k="3" />
+ <hkern u1="k" u2="o" k="19" />
+ <hkern u1="k" u2="g" k="16" />
+ <hkern u1="k" u2="e" k="21" />
+ <hkern u1="k" u2="a" k="2" />
+ <hkern u1="k" u2="-" k="41" />
+ <hkern u1="l" u2="y" k="5" />
+ <hkern u1="m" u2="y" k="18" />
+ <hkern u1="m" u2="w" k="7" />
+ <hkern u1="m" u2="v" k="13" />
+ <hkern u1="m" u2="p" k="-5" />
+ <hkern u1="n" u2="y" k="18" />
+ <hkern u1="n" u2="w" k="7" />
+ <hkern u1="n" u2="v" k="13" />
+ <hkern u1="n" u2="p" k="-5" />
+ <hkern u1="n" u2="T" k="96" />
+ <hkern u1="o" u2="y" k="22" />
+ <hkern u1="o" u2="x" k="27" />
+ <hkern u1="o" u2="w" k="10" />
+ <hkern u1="o" u2="v" k="18" />
+ <hkern u1="o" u2="t" k="10" />
+ <hkern u1="o" u2="T" k="99" />
+ <hkern u1="p" u2="y" k="16" />
+ <hkern u1="p" u2="t" k="4" />
+ <hkern u1="q" u2="u" k="-4" />
+ <hkern u1="q" u2="c" k="-8" />
+ <hkern u1="r" u2="ø" k="6" />
+ <hkern u1="r" u2="ö" k="6" />
+ <hkern u1="r" u2="ô" k="6" />
+ <hkern u1="r" u2="ó" k="6" />
+ <hkern u1="r" u2="ò" k="6" />
+ <hkern u1="r" u2="ê" k="11" />
+ <hkern u1="r" u2="é" k="11" />
+ <hkern u1="r" u2="è" k="11" />
+ <hkern u1="r" u2="ç" k="9" />
+ <hkern u1="r" u2="æ" k="1" />
+ <hkern u1="r" u2="å" k="5" />
+ <hkern u1="r" u2="ä" k="5" />
+ <hkern u1="r" u2="â" k="5" />
+ <hkern u1="r" u2="á" k="5" />
+ <hkern u1="r" u2="à" k="5" />
+ <hkern u1="r" u2="z" k="-9" />
+ <hkern u1="r" u2="y" k="-24" />
+ <hkern u1="r" u2="x" k="-20" />
+ <hkern u1="r" u2="w" k="-31" />
+ <hkern u1="r" u2="v" k="-29" />
+ <hkern u1="r" u2="u" k="-2" />
+ <hkern u1="r" u2="t" k="-28" />
+ <hkern u1="r" u2="s" k="-4" />
+ <hkern u1="r" u2="q" k="3" />
+ <hkern u1="r" u2="p" k="-8" />
+ <hkern u1="r" u2="o" k="6" />
+ <hkern u1="r" u2="l" k="-1" />
+ <hkern u1="r" u2="k" k="-6" />
+ <hkern u1="r" u2="i" k="-1" />
+ <hkern u1="r" u2="g" k="4" />
+ <hkern u1="r" u2="f" k="-26" />
+ <hkern u1="r" u2="e" k="11" />
+ <hkern u1="r" u2="d" k="1" />
+ <hkern u1="r" u2="c" k="6" />
+ <hkern u1="r" u2="a" k="5" />
+ <hkern u1="r" u2=";" k="22" />
+ <hkern u1="r" u2=":" k="22" />
+ <hkern u1="r" u2="." k="69" />
+ <hkern u1="r" u2="-" k="47" />
+ <hkern u1="r" u2="," k="69" />
+ <hkern u1="s" u2="t" k="3" />
+ <hkern u1="t" u2="ö" k="12" />
+ <hkern u1="t" u2="ó" k="12" />
+ <hkern u1="t" u2="é" k="14" />
+ <hkern u1="t" u2="æ" k="-2" />
+ <hkern u1="t" u2="å" k="1" />
+ <hkern u1="t" u2="ä" k="1" />
+ <hkern u1="t" u2="á" k="1" />
+ <hkern u1="t" u2="o" k="12" />
+ <hkern u1="t" u2="h" k="3" />
+ <hkern u1="t" u2="e" k="14" />
+ <hkern u1="t" u2="a" k="1" />
+ <hkern u1="t" u2="S" k="8" />
+ <hkern u1="t" u2=";" k="28" />
+ <hkern u1="t" u2=":" k="28" />
+ <hkern u1="v" u2="ø" k="17" />
+ <hkern u1="v" u2="ö" k="17" />
+ <hkern u1="v" u2="ó" k="17" />
+ <hkern u1="v" u2="ò" k="17" />
+ <hkern u1="v" u2="ê" k="21" />
+ <hkern u1="v" u2="é" k="21" />
+ <hkern u1="v" u2="è" k="21" />
+ <hkern u1="v" u2="æ" k="14" />
+ <hkern u1="v" u2="å" k="18" />
+ <hkern u1="v" u2="ä" k="18" />
+ <hkern u1="v" u2="ã" k="18" />
+ <hkern u1="v" u2="â" k="18" />
+ <hkern u1="v" u2="á" k="18" />
+ <hkern u1="v" u2="à" k="18" />
+ <hkern u1="v" u2="s" k="9" />
+ <hkern u1="v" u2="o" k="17" />
+ <hkern u1="v" u2="g" k="14" />
+ <hkern u1="v" u2="e" k="21" />
+ <hkern u1="v" u2="c" k="16" />
+ <hkern u1="v" u2="a" k="18" />
+ <hkern u1="v" u2=";" k="23" />
+ <hkern u1="v" u2=":" k="23" />
+ <hkern u1="v" u2="." k="69" />
+ <hkern u1="v" u2="-" k="12" />
+ <hkern u1="v" u2="," k="69" />
+ <hkern u1="w" u2="ø" k="6" />
+ <hkern u1="w" u2="ö" k="9" />
+ <hkern u1="w" u2="ó" k="9" />
+ <hkern u1="w" u2="ò" k="9" />
+ <hkern u1="w" u2="ê" k="12" />
+ <hkern u1="w" u2="é" k="12" />
+ <hkern u1="w" u2="è" k="12" />
+ <hkern u1="w" u2="æ" k="11" />
+ <hkern u1="w" u2="å" k="15" />
+ <hkern u1="w" u2="ä" k="15" />
+ <hkern u1="w" u2="ã" k="15" />
+ <hkern u1="w" u2="â" k="15" />
+ <hkern u1="w" u2="á" k="15" />
+ <hkern u1="w" u2="à" k="15" />
+ <hkern u1="w" u2="s" k="5" />
+ <hkern u1="w" u2="o" k="9" />
+ <hkern u1="w" u2="g" k="6" />
+ <hkern u1="w" u2="e" k="12" />
+ <hkern u1="w" u2="c" k="7" />
+ <hkern u1="w" u2="a" k="15" />
+ <hkern u1="w" u2=";" k="23" />
+ <hkern u1="w" u2=":" k="23" />
+ <hkern u1="w" u2="." k="50" />
+ <hkern u1="w" u2="-" k="1" />
+ <hkern u1="w" u2="," k="50" />
+ <hkern u1="x" u2="é" k="28" />
+ <hkern u1="x" u2="q" k="20" />
+ <hkern u1="x" u2="o" k="25" />
+ <hkern u1="x" u2="e" k="28" />
+ <hkern u1="x" u2="c" k="23" />
+ <hkern u1="x" u2="a" k="17" />
+ <hkern u1="y" u2="ø" k="19" />
+ <hkern u1="y" u2="ö" k="20" />
+ <hkern u1="y" u2="ó" k="20" />
+ <hkern u1="y" u2="ò" k="20" />
+ <hkern u1="y" u2="ê" k="24" />
+ <hkern u1="y" u2="é" k="24" />
+ <hkern u1="y" u2="è" k="24" />
+ <hkern u1="y" u2="æ" k="18" />
+ <hkern u1="y" u2="å" k="22" />
+ <hkern u1="y" u2="ä" k="22" />
+ <hkern u1="y" u2="ã" k="22" />
+ <hkern u1="y" u2="â" k="22" />
+ <hkern u1="y" u2="á" k="22" />
+ <hkern u1="y" u2="à" k="22" />
+ <hkern u1="y" u2="s" k="12" />
+ <hkern u1="y" u2="o" k="20" />
+ <hkern u1="y" u2="l" k="4" />
+ <hkern u1="y" u2="g" k="17" />
+ <hkern u1="y" u2="e" k="24" />
+ <hkern u1="y" u2="c" k="19" />
+ <hkern u1="y" u2="a" k="22" />
+ <hkern u1="y" u2=";" k="27" />
+ <hkern u1="y" u2=":" k="27" />
+ <hkern u1="y" u2="." k="70" />
+ <hkern u1="y" u2="-" k="14" />
+ <hkern u1="y" u2="," k="70" />
+ <hkern u1="À" u2="Y" k="99" />
+ <hkern u1="À" u2="W" k="51" />
+ <hkern u1="À" u2="V" k="75" />
+ <hkern u1="À" u2="U" k="37" />
+ <hkern u1="À" u2="T" k="93" />
+ <hkern u1="À" u2="Q" k="32" />
+ <hkern u1="À" u2="O" k="33" />
+ <hkern u1="À" u2="G" k="35" />
+ <hkern u1="À" u2="C" k="36" />
+ <hkern u1="À" u2="." k="-5" />
+ <hkern u1="À" u2="," k="-5" />
+ <hkern u1="Á" u2="«" k="44" />
+ <hkern u1="Á" u2="y" k="34" />
+ <hkern u1="Á" u2="w" k="21" />
+ <hkern u1="Á" u2="v" k="31" />
+ <hkern u1="Á" u2="u" k="12" />
+ <hkern u1="Á" u2="t" k="16" />
+ <hkern u1="Á" u2="q" k="8" />
+ <hkern u1="Á" u2="o" k="13" />
+ <hkern u1="Á" u2="g" k="10" />
+ <hkern u1="Á" u2="e" k="16" />
+ <hkern u1="Á" u2="d" k="8" />
+ <hkern u1="Á" u2="c" k="11" />
+ <hkern u1="Á" u2="b" k="-4" />
+ <hkern u1="Á" u2="a" k="4" />
+ <hkern u1="Á" u2="Y" k="99" />
+ <hkern u1="Á" u2="W" k="51" />
+ <hkern u1="Á" u2="V" k="75" />
+ <hkern u1="Á" u2="U" k="37" />
+ <hkern u1="Á" u2="T" k="93" />
+ <hkern u1="Á" u2="Q" k="32" />
+ <hkern u1="Á" u2="O" k="33" />
+ <hkern u1="Á" u2="G" k="35" />
+ <hkern u1="Á" u2="C" k="36" />
+ <hkern u1="Á" u2="." k="-5" />
+ <hkern u1="Á" u2="-" k="3" />
+ <hkern u1="Á" u2="," k="-5" />
+ <hkern u1="Â" u2="Y" k="99" />
+ <hkern u1="Â" u2="W" k="51" />
+ <hkern u1="Â" u2="V" k="75" />
+ <hkern u1="Â" u2="U" k="37" />
+ <hkern u1="Â" u2="T" k="93" />
+ <hkern u1="Â" u2="Q" k="32" />
+ <hkern u1="Â" u2="O" k="33" />
+ <hkern u1="Â" u2="G" k="35" />
+ <hkern u1="Â" u2="C" k="36" />
+ <hkern u1="Â" u2="." k="-5" />
+ <hkern u1="Â" u2="," k="-5" />
+ <hkern u1="Ã" u2="Y" k="99" />
+ <hkern u1="Ã" u2="W" k="51" />
+ <hkern u1="Ã" u2="V" k="75" />
+ <hkern u1="Ã" u2="U" k="37" />
+ <hkern u1="Ã" u2="T" k="93" />
+ <hkern u1="Ã" u2="Q" k="32" />
+ <hkern u1="Ã" u2="O" k="33" />
+ <hkern u1="Ã" u2="G" k="35" />
+ <hkern u1="Ã" u2="C" k="36" />
+ <hkern u1="Ã" u2="." k="-5" />
+ <hkern u1="Ã" u2="," k="-5" />
+ <hkern u1="Ä" u2="«" k="44" />
+ <hkern u1="Ä" u2="y" k="34" />
+ <hkern u1="Ä" u2="w" k="21" />
+ <hkern u1="Ä" u2="v" k="31" />
+ <hkern u1="Ä" u2="u" k="12" />
+ <hkern u1="Ä" u2="t" k="16" />
+ <hkern u1="Ä" u2="q" k="8" />
+ <hkern u1="Ä" u2="o" k="13" />
+ <hkern u1="Ä" u2="g" k="10" />
+ <hkern u1="Ä" u2="d" k="8" />
+ <hkern u1="Ä" u2="c" k="11" />
+ <hkern u1="Ä" u2="b" k="-4" />
+ <hkern u1="Ä" u2="a" k="4" />
+ <hkern u1="Ä" u2="Y" k="99" />
+ <hkern u1="Ä" u2="W" k="51" />
+ <hkern u1="Ä" u2="V" k="75" />
+ <hkern u1="Ä" u2="U" k="37" />
+ <hkern u1="Ä" u2="T" k="93" />
+ <hkern u1="Ä" u2="Q" k="32" />
+ <hkern u1="Ä" u2="O" k="33" />
+ <hkern u1="Ä" u2="G" k="35" />
+ <hkern u1="Ä" u2="C" k="36" />
+ <hkern u1="Ä" u2="." k="-5" />
+ <hkern u1="Ä" u2="-" k="3" />
+ <hkern u1="Ä" u2="," k="-5" />
+ <hkern u1="Å" u2="«" k="44" />
+ <hkern u1="Å" u2="y" k="34" />
+ <hkern u1="Å" u2="w" k="21" />
+ <hkern u1="Å" u2="v" k="31" />
+ <hkern u1="Å" u2="u" k="12" />
+ <hkern u1="Å" u2="t" k="16" />
+ <hkern u1="Å" u2="q" k="8" />
+ <hkern u1="Å" u2="o" k="13" />
+ <hkern u1="Å" u2="g" k="10" />
+ <hkern u1="Å" u2="e" k="16" />
+ <hkern u1="Å" u2="d" k="8" />
+ <hkern u1="Å" u2="c" k="11" />
+ <hkern u1="Å" u2="b" k="-4" />
+ <hkern u1="Å" u2="a" k="4" />
+ <hkern u1="Å" u2="Y" k="99" />
+ <hkern u1="Å" u2="W" k="51" />
+ <hkern u1="Å" u2="V" k="75" />
+ <hkern u1="Å" u2="U" k="37" />
+ <hkern u1="Å" u2="T" k="93" />
+ <hkern u1="Å" u2="Q" k="32" />
+ <hkern u1="Å" u2="O" k="33" />
+ <hkern u1="Å" u2="G" k="35" />
+ <hkern u1="Å" u2="C" k="36" />
+ <hkern u1="Å" u2="." k="-5" />
+ <hkern u1="Å" u2="-" k="3" />
+ <hkern u1="Å" u2="," k="-5" />
+ <hkern u1="Ç" u2="A" k="31" />
+ <hkern u1="Ò" u2="Y" k="59" />
+ <hkern u1="Ò" u2="V" k="45" />
+ <hkern u1="Ò" u2="T" k="42" />
+ <hkern u1="Ó" u2="Y" k="59" />
+ <hkern u1="Ó" u2="W" k="23" />
+ <hkern u1="Ó" u2="V" k="45" />
+ <hkern u1="Ó" u2="T" k="42" />
+ <hkern u1="Ó" u2="A" k="35" />
+ <hkern u1="Ô" u2="Y" k="59" />
+ <hkern u1="Ô" u2="V" k="45" />
+ <hkern u1="Ô" u2="T" k="42" />
+ <hkern u1="Õ" u2="Y" k="59" />
+ <hkern u1="Õ" u2="V" k="45" />
+ <hkern u1="Õ" u2="T" k="42" />
+ <hkern u1="Ö" u2="Y" k="59" />
+ <hkern u1="Ö" u2="X" k="46" />
+ <hkern u1="Ö" u2="W" k="23" />
+ <hkern u1="Ö" u2="V" k="45" />
+ <hkern u1="Ö" u2="T" k="42" />
+ <hkern u1="Ö" u2="A" k="35" />
+ <hkern u1="Ø" u2="A" k="33" />
+ <hkern u1="Ù" u2="A" k="36" />
+ <hkern u1="Ú" u2="r" k="4" />
+ <hkern u1="Ú" u2="p" k="-3" />
+ <hkern u1="Ú" u2="n" k="4" />
+ <hkern u1="Ú" u2="m" k="4" />
+ <hkern u1="Ú" u2="A" k="36" />
+ <hkern u1="Ú" u2="." k="25" />
+ <hkern u1="Ú" u2="," k="27" />
+ <hkern u1="Û" u2="A" k="36" />
+ <hkern u1="Ü" u2="r" k="4" />
+ <hkern u1="Ü" u2="p" k="-3" />
+ <hkern u1="Ü" u2="n" k="4" />
+ <hkern u1="Ü" u2="m" k="4" />
+ <hkern u1="Ü" u2="b" k="-3" />
+ <hkern u1="Ü" u2="A" k="36" />
+ <hkern u1="Ü" u2="." k="25" />
+ <hkern u1="Ü" u2="," k="27" />
+ <hkern u1="à" u2="y" k="26" />
+ <hkern u1="à" u2="w" k="13" />
+ <hkern u1="à" u2="v" k="21" />
+ <hkern u1="á" u2="y" k="26" />
+ <hkern u1="á" u2="w" k="13" />
+ <hkern u1="á" u2="v" k="21" />
+ <hkern u1="ä" u2="y" k="26" />
+ <hkern u1="ä" u2="w" k="13" />
+ <hkern u1="ä" u2="v" k="21" />
+ <hkern u1="å" u2="y" k="26" />
+ <hkern u1="å" u2="w" k="13" />
+ <hkern u1="å" u2="v" k="21" />
+ <hkern u1="æ" u2="y" k="20" />
+ <hkern u1="æ" u2="w" k="10" />
+ <hkern u1="æ" u2="v" k="16" />
+ <hkern u1="é" u2="y" k="19" />
+ <hkern u1="é" u2="w" k="9" />
+ <hkern u1="é" u2="v" k="15" />
+ <hkern u1="ê" u2="y" k="19" />
+ <hkern u1="ê" u2="w" k="9" />
+ <hkern u1="ê" u2="v" k="15" />
+ <hkern u1="ò" u2="y" k="22" />
+ <hkern u1="ò" u2="w" k="10" />
+ <hkern u1="ò" u2="v" k="18" />
+ <hkern u1="ó" u2="y" k="22" />
+ <hkern u1="ó" u2="w" k="10" />
+ <hkern u1="ó" u2="v" k="18" />
+ <hkern u1="ô" u2="t" k="10" />
+ <hkern u1="ö" u2="y" k="22" />
+ <hkern u1="ö" u2="x" k="27" />
+ <hkern u1="ö" u2="w" k="10" />
+ <hkern u1="ö" u2="v" k="18" />
+ <hkern u1="ö" u2="t" k="10" />
+ </font>
+</defs>
+<g font-family="SVGFreeSansISO-8859-1" font-size="18">
+ <text x="20" y="60"> !"#$%&'()*+,-./0123456789:;<>?</text>
+ <text x="20" y="120">@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_</text>
+ <text x="20" y="180">`abcdefghijklmnopqrstuvwxyz|{}~</text>
+ <text x="20" y="240">¡¢£¤¥¦§¨©ª«¬Â®¯°±²³´µ¶·¸¹º»¼½¾¿</text>
+ <text x="20" y="300">Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?Ã?</text>
+ <text x="20" y="360">à áâãäåæçèéêëìÃîïðñòóôõö÷øùúûüýþÿ</text>
+</g>
+</svg>
diff --git a/test/svg/svg1.2/images/SVGFreeSans.svg b/test/svg/svg1.2/images/SVGFreeSans.svg
new file mode 100644
index 0000000..6aa1105
--- /dev/null
+++ b/test/svg/svg1.2/images/SVGFreeSans.svg
@@ -0,0 +1,568 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" >
+<defs >
+<font horiz-adv-x="481" id="ascii">
+ <font-face
+ font-family="SVGFreeSansASCII"
+ units-per-em="1000"
+ panose-1="2 11 5 4 2 2 2 2 2 4"
+ ascent="800"
+ descent="-200"
+ alphabetic="0" />
+<missing-glyph horiz-adv-x="432" d="M33 0V666H366V0H33ZM66 33H333V633H66V33Z" />
+<glyph unicode=" " glyph-name="space" horiz-adv-x="278" />
+<glyph unicode="!" glyph-name="exclam" horiz-adv-x="278" d="M208 729V391L186 168H147L125 391V729H208ZM208 104V0H124V104H208Z" />
+<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="355" d="M52 709H145V598L118 464H79L52 598V709ZM212 709H305V598L278 464H239L212 598V709Z" />
+<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="556" d="M485 697L449 501H542V433H436L405 259H510V191H393L354 -20H278L316 191H192L153 -20H77L115 191H14V259H128L159 433H51V501H172L208 697H284L248 501H373L408 697H485ZM360 433H236L204 259H329L360
+433Z" />
+<glyph unicode="$" glyph-name="dollar" horiz-adv-x="556" d="M243 770H302V716Q427 707 474 615Q496 574 496 520V519H417Q416 596 359 630Q339 641 315 645L302 646V397Q402 366 431 350L433 349Q517 301 518 196V195Q518 91 450 30L426 12Q377 -17 302 -23V-126H243V-23Q89
+-13 46 104Q30 150 33 208H112Q119 134 133 110L137 103Q172 55 243 46V318Q150 346 117 370Q46 421 46 515V516Q46 662 186 704Q212 712 243 716V770ZM243 405V645Q147 632 130 556L127 526Q127 436 243 405ZM302 309V46Q363 53 394 83Q436 123 436 182V183Q436
+244 389 274Q360 292 302 309Z" />
+<glyph unicode="%" glyph-name="percent" horiz-adv-x="889" d="M199 685Q283 685 334 619H335Q370 573 370 513V512Q370 433 307 382Q260 343 200 343Q119 343 67 406Q29 453 29 513V514Q29 595 92 647Q139 685 199 685ZM199 615Q145 615 115 569H114Q98 544
+98 515V514Q98 461 143 430Q169 413 200 413Q254 413 284 458Q301 483 301 512V513Q301 570 253 600Q229 615 199 615ZM609 709H675L280 -20H214L609 709ZM688 322Q773 322 824 256Q859 210 859 151V150Q859 71 796 20Q749 -19 689 -19Q608 -19 556 44Q518 91 518
+151V152Q518 233 582 284Q629 322 688 322ZM688 252Q634 252 604 207Q587 182 587 153V152Q587 97 634 67H635V66Q636 66 636 66Q636 65 637 65Q661 51 689 51Q743 51 773 96Q790 120 790 149V150Q790 207 742 237V237L741 238Q724 248 704 251Q700 251 695 252Q693
+252 690 252H688Z" />
+<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="667" d="M493 334H573Q573 240 515 151L637 0H528L466 78Q417 30 389 13Q333 -23 257 -23Q141 -23 85 59Q52 108 52 175V176Q52 257 104 310Q140 346 214 389Q144 477 135 525V525Q135 527 135 530Q134
+532 134 535L133 552Q133 628 197 675Q244 709 304 709Q394 709 440 643V642Q467 604 467 553V552Q467 483 412 434Q383 409 330 379L329 378L462 215Q495 272 493 334ZM285 431Q366 482 381 519Q388 534 388 553V554Q388 606 343 629Q324 639 301 639Q241 639
+221 589Q215 573 215 554V553Q215 520 240 485L241 484V484L242 483L243 482V482L285 431ZM418 137L258 337Q164 277 144 227Q136 207 136 184V183Q136 118 190 80Q225 55 267 55Q334 55 402 120Q409 127 416 135Q417 135 417 136L418 137Z" />
+<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="191" d="M48 709H142V598L115 464H75L48 598V709Z" />
+<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="333" d="M236 729H291Q167 529 155 300L154 259Q154 26 276 -187Q283 -200 291 -212H236Q123 -64 86 128Q73 196 73 258V259Q73 438 166 617Q197 678 236 729Z" />
+<glyph unicode=")" glyph-name="parenright" horiz-adv-x="333" d="M93 -212H38Q162 -12 174 217Q175 258 175 258Q175 491 53 704L38 729H93Q206 581 243 389Q256 321 256 259V258Q256 79 163 -100Q132 -161 93 -212Z" />
+<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="389" d="M160 729H223L218 617L324 655L343 596L235 566L305 477L254 441L192 534L129 441L79 477L148 566L40 596L59 655L165 617L160 729Z" />
+<glyph unicode="+" glyph-name="plus" horiz-adv-x="584" d="M534 267V197H327V-10H257V197H50V267H257V474H327V267H534Z" />
+<glyph unicode="," glyph-name="comma" horiz-adv-x="278" d="M87 104H192V-16Q192 -147 87 -147V-109Q130 -107 140 -76Q147 -58 147 -19V-18V0H87V104Z" />
+<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="333" d="M284 312V240H46V312H284Z" />
+<glyph unicode="." glyph-name="period" horiz-adv-x="278" d="M191 104V0H87V104H191Z" />
+<glyph unicode="/" glyph-name="slash" horiz-adv-x="278" d="M229 729H284L47 -20H-8L229 729Z" />
+<glyph unicode="0" glyph-name="zero" horiz-adv-x="556" d="M275 709Q378 709 436 634Q437 632 438 631Q507 537 507 338V337Q507 66 369 -3Q327 -23 275 -23Q99 -23 56 193Q43 258 43 342V343Q43 538 112 631Q166 702 261 709Q268 709 275 709ZM275 631Q133
+631 133 344Q133 344 133 344V342Q133 50 273 50Q391 50 412 242Q417 287 417 344V345Q417 631 275 631Z" />
+<glyph unicode="1" glyph-name="one" horiz-adv-x="556" d="M259 505H102V568Q204 581 234 604H235Q245 611 252 621Q271 645 289 709H347V0H259V505Z" />
+<glyph unicode="2" glyph-name="two" horiz-adv-x="556" d="M506 87V0H34Q41 128 91 195Q133 250 233 307L325 359Q420 413 421 498V499Q421 571 361 610Q326 632 282 632H281Q206 632 166 575Q163 571 161 566L159 563Q142 531 138 463H50Q53 563 88 617Q148
+709 284 709Q383 709 445 653Q511 594 511 502V501Q511 369 361 287L261 233Q170 180 146 131Q137 111 133 87H506Z" />
+<glyph unicode="3" glyph-name="three" horiz-adv-x="556" d="M221 325V400Q305 401 338 415Q394 438 395 509V511Q395 596 325 623Q301 632 270 632Q192 632 157 579L156 578L151 569Q136 540 135 480H47Q51 690 237 708L269 709Q408 709 460 616Q485 573 485
+515V514Q485 406 386 367Q479 335 499 259Q506 233 506 199V198Q506 75 412 15Q352 -23 266 -23Q118 -23 64 79L63 80Q37 128 32 206H120Q128 74 233 58Q250 55 269 55Q373 55 405 134Q416 161 416 196V197Q416 326 269 326L232 325H221Z" />
+<glyph unicode="4" glyph-name="four" horiz-adv-x="556" d="M327 170H28V263L350 709H415V249H520V170H415V0H327V170ZM327 249V559L105 249H327Z" />
+<glyph unicode="5" glyph-name="five" horiz-adv-x="556" d="M476 709V622H181L153 424Q212 467 284 467Q404 467 468 380Q513 319 513 232V231Q513 102 426 30Q362 -23 270 -23Q159 -23 94 44L78 62Q51 95 35 172V174H123Q154 55 268 55Q369 55 407 136Q423 171
+423 218V219Q423 328 347 370Q313 389 268 389Q204 389 159 346L138 323H57L110 709H476Z" />
+<glyph unicode="6" glyph-name="six" horiz-adv-x="556" d="M498 524H410Q392 611 321 628Q307 631 291 631Q180 631 146 487Q133 433 133 362Q191 441 296 441Q407 441 469 358Q513 299 513 217V216Q513 97 431 29Q369 -23 281 -23Q162 -23 103 65Q45 153 43
+312Q43 317 43 322V323Q43 508 107 608Q163 692 263 707Q280 709 297 709Q412 709 467 616Q490 577 498 525V524ZM285 363Q200 363 160 297Q138 262 138 215V214Q138 128 199 82Q235 55 282 55Q358 55 398 118Q423 157 423 208V209Q423 311 352 348Q323 363 285
+363Z" />
+<glyph unicode="7" glyph-name="seven" horiz-adv-x="556" d="M520 709V635Q318 367 252 96Q240 49 232 0H138Q188 218 281 389Q336 490 429 622H46V709H520Z" />
+<glyph unicode="8" glyph-name="eight" horiz-adv-x="556" d="M391 373Q512 315 513 197V196Q513 84 427 23Q364 -23 275 -23Q151 -23 84 59Q37 116 37 196V197Q37 315 158 373Q86 418 70 466Q62 488 62 519V520Q62 619 143 672Q198 709 275 709Q391 709 450 633Q488
+586 488 521V520Q488 452 443 411Q443 410 442 410Q423 392 391 373ZM275 631Q195 631 165 573L164 572V572Q152 549 152 520V519Q152 449 213 421Q240 408 274 408H275Q355 408 385 465Q386 465 386 466Q398 488 398 516V517V518Q398 593 333 620Q308 631 275
+631ZM275 334Q186 334 147 270Q127 238 127 196V195Q127 113 193 75Q227 55 273 55Q364 55 403 120Q423 152 423 194V195Q423 277 356 315Q321 334 275 334Z" />
+<glyph unicode="9" glyph-name="nine" horiz-adv-x="556" d="M53 162H141Q159 75 230 58Q244 55 260 55Q371 55 405 199Q418 253 418 324Q354 247 262 245H256Q144 245 82 328Q38 387 38 469V470Q38 589 120 657Q182 709 270 709Q389 709 449 621Q507 533 509
+374Q509 369 509 364V363Q509 178 444 78Q391 -3 294 -20L254 -23Q139 -23 84 70Q61 110 53 162ZM269 632Q193 632 153 568L152 567Q128 529 128 478V477Q128 375 199 338Q228 323 266 323Q349 323 390 388Q413 424 413 471V472Q413 559 352 605Q315 632 269 632Z"
+/>
+<glyph unicode=":" glyph-name="colon" horiz-adv-x="278" d="M214 104V0H110V104H214ZM214 524V420H110V524H214Z" />
+<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="278" d="M215 524V420H111V524H215ZM110 104H215V-16Q215 -147 110 -147V-109Q153 -107 163 -76Q170 -58 170 -19V-18V0H110V104Z" />
+<glyph unicode="<" glyph-name="less" horiz-adv-x="584" d="M45 198V267L534 474V395L140 234L534 70V-9L45 198Z" />
+<glyph unicode="=" glyph-name="equal" horiz-adv-x="584" d="M534 353V283H50V353H534ZM534 181V111H50V181H534Z" />
+<glyph unicode=">" glyph-name="greater" horiz-adv-x="584" d="M539 267V198L50 -9V70L444 231L50 395V474L539 267Z" />
+<glyph unicode="?" glyph-name="question" horiz-adv-x="556" d="M330 199H240V254Q240 304 268 341Q285 363 320 396L322 397L344 417Q418 483 419 547Q419 547 419 547Q419 547 419 548V549Q419 619 358 649H357Q328 663 291 663Q209 663 179 605Q162 571 162
+508V507H77Q77 718 257 739L296 741Q422 741 478 658L479 657V657V656Q509 611 509 550V549Q509 479 458 420Q439 397 409 370Q346 312 336 285Q330 270 330 247V246V199ZM330 104V0H240V104H330Z" />
+<glyph unicode="@" glyph-name="at" horiz-adv-x="1015" d="M665 501H748L658 221Q646 187 646 172V171Q646 144 675 131H676Q685 127 696 127Q760 127 813 199Q864 270 864 356V357Q864 477 767 566Q668 658 528 664H512Q365 664 252 562L221 531Q119 418 119
+274V273Q119 132 224 35Q332 -65 493 -65H494Q573 -65 687 -33L715 -100Q603 -142 489 -142Q309 -142 178 -35Q56 65 37 212Q34 258 34 258Q34 412 129 542Q141 558 154 573Q155 574 156 575Q157 576 158 577Q172 593 188 608L192 612Q300 710 451 735Q488 741
+525 741Q691 741 814 640Q930 546 948 411Q951 390 951 370V369Q951 248 867 149Q866 147 865 146Q789 57 679 57Q583 57 569 134Q503 62 428 62H427Q345 62 298 131Q264 179 264 244V245Q264 354 343 438Q420 521 519 522H521Q604 522 642 436L643 435L665 501ZM515
+458Q449 458 399 387Q354 324 354 245V244Q354 177 401 143H402Q425 126 452 126H453Q511 126 555 191Q588 239 604 323L609 362Q612 417 566 444Q543 458 515 458Z" />
+<glyph unicode="A" glyph-name="A" horiz-adv-x="667" d="M474 219H193L116 0H17L277 729H397L653 0H549L474 219ZM448 297L336 629L216 297H448Z" />
+<glyph unicode="B" glyph-name="B" horiz-adv-x="667" d="M79 0V729H375Q478 729 533 678Q591 627 591 545V544Q591 432 490 385Q595 344 616 264Q622 244 623 221Q623 215 623 209V208Q623 120 567 61Q511 0 409 0H408H79ZM172 415H352Q424 415 458 441Q498 471
+498 530V531Q498 590 458 621Q424 647 352 647H172V415ZM172 82H399Q463 82 495 116L496 117Q530 152 530 206V207Q530 262 496 298Q464 333 399 333H172V82Z" />
+<glyph unicode="C" glyph-name="C" horiz-adv-x="722" d="M662 503H567Q552 578 514 613Q467 657 377 659H370Q242 659 181 544Q141 469 141 358V357Q141 187 236 108Q295 59 378 59Q487 59 538 136Q544 144 548 153Q570 195 581 266H677Q644 -23 377 -23Q236
+-23 154 62Q48 171 48 355V356Q48 539 150 650Q232 741 380 741H381Q619 741 662 503Z" />
+<glyph unicode="D" glyph-name="D" horiz-adv-x="722" d="M89 0V729H370Q533 729 612 597Q613 596 613 595Q667 504 667 366V365Q667 156 551 61Q478 0 370 0H89ZM182 82H354Q528 82 565 263Q574 308 574 363V364Q574 610 406 642Q381 647 354 647H182V82Z" />
+<glyph unicode="E" glyph-name="E" horiz-adv-x="667" d="M183 332V82H613V0H90V729H595V647H183V414H580V332H183Z" />
+<glyph unicode="F" glyph-name="F" horiz-adv-x="611" d="M183 332V0H90V729H579V647H183V414H531V332H183Z" />
+<glyph unicode="G" glyph-name="G" horiz-adv-x="778" d="M709 385V-4H650L627 93Q523 -23 379 -23H378Q225 -23 131 91Q44 195 44 356V357Q44 533 146 643Q160 658 176 671Q261 741 393 741H394Q573 741 654 623Q687 574 699 508H604Q583 606 488 642Q446 659
+393 659Q261 659 190 555Q137 477 137 363V362Q137 236 198 152L214 133Q280 61 392 59Q395 59 398 59Q512 59 578 139Q627 199 627 282V283V303H405V385H709Z" />
+<glyph unicode="H" glyph-name="H" horiz-adv-x="722" d="M551 332H177V0H83V729H176V414H551V729H644V0H551V332Z" />
+<glyph unicode="I" glyph-name="I" horiz-adv-x="278" d="M194 729V0H100V729H194Z" />
+<glyph unicode="J" glyph-name="J" horiz-adv-x="500" d="M333 729H426V182Q426 58 336 5Q287 -23 220 -23Q96 -23 44 63Q17 108 17 169V170V234H112V187Q112 76 193 58L221 55Q279 55 309 98L310 100Q333 134 333 215V216V729Z" />
+<glyph unicode="K" glyph-name="K" horiz-adv-x="667" d="M172 255V0H79V729H172V360L535 729H655L358 432L658 0H548L291 374L172 255Z" />
+<glyph unicode="L" glyph-name="L" horiz-adv-x="556" d="M173 729V82H533V0H80V729H173Z" />
+<glyph unicode="M" glyph-name="M" horiz-adv-x="833" d="M468 0H370L163 611V0H75V729H204L420 94L632 729H761V0H673V611L468 0Z" />
+<glyph unicode="N" glyph-name="N" horiz-adv-x="722" d="M646 729V0H541L164 591V0H76V729H177L558 133V729H646Z" />
+<glyph unicode="O" glyph-name="O" horiz-adv-x="778" d="M389 741Q563 741 660 618L661 617Q662 616 663 615Q723 536 738 422Q742 389 742 354V353Q742 205 660 100Q640 74 616 54Q525 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q244 741
+389 741ZM389 659Q259 659 187 557Q131 478 131 360V359Q131 201 226 118Q293 59 390 59Q519 59 591 159Q649 237 649 354V355Q649 520 551 603Q485 659 389 659Z" />
+<glyph unicode="P" glyph-name="P" horiz-adv-x="667" d="M184 309V0H91V729H392Q553 729 600 611Q617 570 617 516V515Q617 418 554 361Q496 309 414 309H413H184ZM184 391H378Q480 391 510 465Q520 488 520 518V519Q520 609 441 637Q441 637 440 637Q413 647
+378 647H184V391Z" />
+<glyph unicode="Q" glyph-name="Q" horiz-adv-x="778" d="M733 -1L686 -59L581 28Q495 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q245 741 390 741Q556 741 654 625Q742 522 742 362V361Q742 189 639 76L733 -1ZM481 205L570 132Q649 221
+649 359V360Q649 517 555 600Q487 659 390 659Q259 659 187 557Q131 478 131 360V359Q131 200 226 117Q293 59 389 59Q449 59 509 87L435 149L481 205Z" />
+<glyph unicode="R" glyph-name="R" horiz-adv-x="722" d="M186 314V0H93V729H429Q599 729 640 609Q651 576 651 535V534Q651 436 579 385Q560 372 536 360Q598 333 617 293Q634 256 635 170Q637 74 654 47Q663 34 679 23V0H566Q545 48 545 118V119L546 184Q546
+293 466 310Q448 314 426 314H186ZM186 396H411Q532 396 550 482Q554 499 554 520V521Q554 587 516 619Q484 647 411 647H186V396Z" />
+<glyph unicode="S" glyph-name="S" horiz-adv-x="667" d="M596 515H508Q507 626 398 655Q366 663 326 663Q222 663 181 601V601Q163 574 163 541V540Q163 484 217 456Q242 443 283 432L466 383Q586 350 614 253Q621 228 621 201V200Q621 116 563 53L541 33Q468
+-23 336 -23Q167 -23 91 81Q49 138 48 232H136Q135 167 174 120Q225 59 342 59Q431 59 476 90Q520 121 527 176L528 191Q528 267 418 302Q407 306 395 309H394L213 357Q71 394 70 525V527Q70 651 174 707Q238 741 329 741Q505 741 568 630Q596 581 596 515Z" />
+<glyph unicode="T" glyph-name="T" horiz-adv-x="611" d="M354 647V0H261V647H21V729H593V647H354Z" />
+<glyph unicode="U" glyph-name="U" horiz-adv-x="722" d="M552 729H645V217Q645 87 541 22Q469 -23 364 -23Q199 -23 126 78Q86 135 85 215Q85 217 85 217V729H178V217Q178 138 231 97Q284 59 364 59Q487 59 532 138Q551 171 552 215Q552 215 552 216V217V729Z" />
+<glyph unicode="V" glyph-name="V" horiz-adv-x="667" d="M392 0H292L30 729H130L344 112L546 729H645L392 0Z" />
+<glyph unicode="W" glyph-name="W" horiz-adv-x="944" d="M744 0H642L474 599L311 0H209L22 729H126L263 137L425 729H525L691 137L825 729H929L744 0Z" />
+<glyph unicode="X" glyph-name="X" horiz-adv-x="667" d="M391 374L649 0H534L335 304L135 0H22L280 374L38 729H151L338 443L526 729H637L391 374Z" />
+<glyph unicode="Y" glyph-name="Y" horiz-adv-x="667" d="M387 286V0H294V286L13 729H128L342 374L550 729H661L387 286Z" />
+<glyph unicode="Z" glyph-name="Z" horiz-adv-x="611" d="M581 729V645L145 82H583V0H28V82L466 647H56V729H581Z" />
+<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="278" d="M250 729V657H147V-140H250V-212H64V729H250Z" />
+<glyph unicode="\" glyph-name="backslash" horiz-adv-x="278" d="M47 729L284 -20H229L-8 729H47Z" />
+<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="278" d="M23 -212V-140H126V657H23V729H209V-212H23Z" />
+<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="469" d="M197 709H270L425 329H356L234 629L113 329H44L197 709Z" />
+<glyph unicode="_" glyph-name="underscore" horiz-adv-x="556" d="M578 -126V-176H-22V-126H578Z" />
+<glyph unicode="`" glyph-name="grave" horiz-adv-x="333" d="M135 740L231 592H171L22 740H135Z" />
+<glyph unicode="a" glyph-name="a" horiz-adv-x="556" d="M535 49V-14Q500 -23 478 -23Q407 -23 394 40Q393 47 392 54Q309 -22 218 -23H214Q104 -23 61 52Q42 86 42 131V132Q42 234 134 272Q170 287 264 299L302 304Q375 313 386 342V343V344L389 362V384Q389
+448 308 460Q291 462 272 462Q169 462 152 387Q150 378 149 369H65Q68 441 101 478Q156 539 275 539Q451 539 470 423Q472 411 472 397V396V88Q472 47 517 47L535 49ZM389 165V259Q357 244 275 233Q266 232 255 230Q149 215 133 161L129 135V134Q129 69 196 54Q212
+50 232 50Q304 50 356 97Q388 126 389 161Q389 162 389 162V162V163V163V165Z" />
+<glyph unicode="b" glyph-name="b" horiz-adv-x="556" d="M54 729H137V453Q194 539 299 539Q427 539 486 431Q523 363 523 265V264Q523 103 432 26Q375 -23 295 -23Q188 -23 129 67V0H54V729ZM283 461Q200 461 161 377Q137 328 137 259V258Q137 133 206 81Q239
+55 283 55Q367 55 409 134Q436 185 436 254V255Q436 382 364 435Q331 460 288 461Q285 461 283 461Z" />
+<glyph unicode="c" glyph-name="c" horiz-adv-x="500" d="M471 348H387Q374 445 290 460Q282 461 272 462H263Q169 462 134 362Q118 316 118 254V253Q118 116 197 71Q226 54 265 54Q372 54 393 180H477Q466 43 362 -3Q319 -23 263 -23Q134 -23 72 82Q31 151 31
+252V253Q31 413 123 490Q182 539 264 539Q370 539 428 471L436 461Q465 418 471 348Z" />
+<glyph unicode="d" glyph-name="d" horiz-adv-x="556" d="M495 729V0H421V69Q363 -14 277 -22Q266 -23 254 -23Q124 -23 64 89Q26 159 26 261Q26 261 26 262V263Q26 417 115 492Q172 539 251 539Q359 539 412 458V729H495ZM265 461Q180 461 139 379Q119 341 114
+290Q113 275 113 259V258Q113 136 183 82Q219 55 266 55Q348 55 387 136Q412 186 412 255V256Q412 387 340 438Q307 461 265 461Z" />
+<glyph unicode="e" glyph-name="e" horiz-adv-x="556" d="M513 234H127Q128 162 155 122Q198 54 281 54Q383 54 418 159H502Q480 38 376 -5Q332 -23 278 -23Q142 -23 79 87Q40 155 40 253V255Q40 413 134 490Q194 539 280 539Q395 539 460 457Q480 432 492 401Q513
+347 513 235V234ZM129 302H423L424 308Q424 388 365 433Q327 462 279 462Q194 462 153 387Q133 351 129 302Z" />
+<glyph unicode="f" glyph-name="f" horiz-adv-x="278" d="M258 524V456H171V0H88V456H18V524H88V613Q88 701 162 725Q184 732 211 732Q234 732 258 727V658L229 659Q172 659 171 608V606V524H258Z" />
+<glyph unicode="g" glyph-name="g" horiz-adv-x="556" d="M412 524H489V86Q489 -68 448 -132Q441 -142 434 -151Q386 -211 277 -217Q266 -218 255 -218Q117 -218 67 -130Q50 -99 46 -60H131Q137 -99 162 -119L163 -120Q199 -148 258 -148Q339 -148 374 -99Q404
+-58 404 43V44V71Q345 -11 272 -21Q261 -23 248 -23Q247 -23 245 -23Q162 -23 101 41Q98 44 95 47Q29 123 29 252V253Q29 404 112 483Q170 539 252 539Q350 539 412 448V524ZM261 462Q173 462 136 372Q116 325 116 259V258Q116 119 194 72Q223 54 262 54Q351 54
+386 146Q404 192 404 254V255Q404 405 322 448Q295 462 261 462Z" />
+<glyph unicode="h" glyph-name="h" horiz-adv-x="556" d="M70 729H153V452Q207 522 273 535Q294 539 321 539Q431 539 470 465Q486 435 486 397V396V0H403V363Q403 418 369 442Q337 466 295 466Q211 466 174 389Q153 347 153 290V289V0H70V729Z" />
+<glyph unicode="i" glyph-name="i" horiz-adv-x="222" d="M150 524V0H67V524H150ZM150 729V624H66V729H150Z" />
+<glyph unicode="j" glyph-name="j" horiz-adv-x="222" d="M70 524H153V-109Q153 -212 25 -218H10L-18 -215V-144L2 -145Q54 -145 65 -113Q70 -99 70 -77V-76V524ZM153 729V624H70V729H153Z" />
+<glyph unicode="k" glyph-name="k" horiz-adv-x="500" d="M141 729V302L363 524H470L288 343L502 0H399L222 284L141 204V0H58V729H141Z" />
+<glyph unicode="l" glyph-name="l" horiz-adv-x="222" d="M152 729V0H68V729H152Z" />
+<glyph unicode="m" glyph-name="m" horiz-adv-x="833" d="M70 524H147V450Q201 526 275 537Q284 538 295 539H308Q397 539 440 474Q445 467 449 459Q503 524 566 535Q574 537 583 538H584Q596 539 610 539Q732 539 757 441Q762 419 762 394V393V0H678V361Q678
+442 615 461Q599 466 581 466Q520 466 483 412Q458 376 458 330V329V0H374V361Q374 448 303 463L277 466Q215 466 178 410Q154 375 154 330V329V0H70V524Z" />
+<glyph unicode="n" glyph-name="n" horiz-adv-x="556" d="M70 524H147V436Q201 521 277 535Q297 539 321 539Q425 539 467 470Q486 439 487 398V396V0H404V363Q404 432 346 457Q324 466 296 466Q212 466 175 389Q154 347 154 290V289V0H70V524Z" />
+<glyph unicode="o" glyph-name="o" horiz-adv-x="556" d="M272 539Q424 539 481 410Q510 345 510 255V254Q510 87 408 16Q352 -23 273 -23Q129 -23 69 96Q36 162 36 257V258Q36 432 141 502Q196 539 272 539ZM273 462Q180 462 142 370Q123 323 123 259V258Q123
+121 201 73Q232 54 273 54Q363 54 402 142Q423 189 423 254V255Q423 400 341 446Q311 462 273 462Z" />
+<glyph unicode="p" glyph-name="p" horiz-adv-x="556" d="M54 -218V524H131V445Q190 539 298 539Q425 539 485 428Q523 357 523 254V253Q523 99 434 24Q395 -9 343 -19Q322 -23 299 -23Q202 -23 139 54L138 55V-218H54ZM284 461Q201 461 162 377Q138 328 138 259V258Q138
+133 207 81Q240 55 284 55Q368 55 409 134Q436 185 436 254V255Q436 382 365 435Q330 461 284 461Z" />
+<glyph unicode="q" glyph-name="q" horiz-adv-x="556" d="M495 -218H412V60Q355 -23 250 -23Q122 -23 63 85Q26 153 26 251V252Q26 413 117 490Q174 539 254 539Q361 539 421 454V524H495V-218ZM266 461Q182 461 140 380Q113 330 113 259V258Q113 136 183 82Q219
+55 266 55Q348 55 388 136Q412 186 412 254V255Q412 386 341 437Q308 461 266 461Z" />
+<glyph unicode="r" glyph-name="r" horiz-adv-x="333" d="M69 524H146V429Q204 522 262 536Q275 539 289 539L321 536V451Q249 450 218 429Q215 427 212 425Q153 382 153 273V272V0H69V524Z" />
+<glyph unicode="s" glyph-name="s" horiz-adv-x="500" d="M438 378H350Q347 462 245 462Q163 462 140 413Q134 400 134 384V383Q134 338 200 316L231 308L311 289Q429 261 452 191Q459 170 459 144V143Q459 47 369 3Q317 -23 243 -23Q49 -23 35 139L34 156H122Q128
+109 146 89Q179 54 250 54Q334 54 362 101Q372 116 372 135V136Q372 182 318 201Q309 204 299 207H298L291 209L213 228Q94 257 63 308Q54 324 50 345L47 379Q47 472 131 514Q180 539 248 539Q393 539 428 438Q438 411 438 378Z" />
+<glyph unicode="t" glyph-name="t" horiz-adv-x="278" d="M254 524V456H168V97Q168 59 190 53L214 50Q239 50 254 54V-16Q215 -23 186 -23Q97 -23 86 44Q85 60 85 60V456H14V524H85V668H168V524H254Z" />
+<glyph unicode="u" glyph-name="u" horiz-adv-x="556" d="M482 0H407V73Q351 -6 277 -19Q257 -23 232 -23Q125 -23 84 47Q65 78 65 119V120V524H148V153Q148 83 207 59Q228 50 255 50H256Q341 50 379 128Q399 170 399 226V227V524H482V0Z" />
+<glyph unicode="v" glyph-name="v" horiz-adv-x="500" d="M285 0H194L10 524H104L244 99L392 524H486L285 0Z" />
+<glyph unicode="w" glyph-name="w" horiz-adv-x="722" d="M554 0H459L353 411L252 0H158L6 524H98L205 116L305 524H407L510 116L614 524H708L554 0Z" />
+<glyph unicode="x" glyph-name="x" horiz-adv-x="500" d="M292 271L473 0H376L245 201L112 0H17L202 267L27 524H122L248 334L374 524H468L292 271Z" />
+<glyph unicode="y" glyph-name="y" horiz-adv-x="500" d="M388 524H478L245 -110Q223 -167 188 -193Q154 -218 110 -218Q79 -218 54 -205V-130Q81 -136 98 -136Q143 -136 161 -96Q163 -91 165 -85L197 -2L20 524H109L243 116L388 524Z" />
+<glyph unicode="z" glyph-name="z" horiz-adv-x="500" d="M443 524V450L132 73H457V0H31V75L344 451H52V524H443Z" />
+<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="334" d="M276 729V664H261Q214 664 203 637V637Q198 623 198 598V597V416Q198 318 157 283L156 282Q146 273 133 267Q125 263 116 259Q198 221 198 103V101V-80Q198 -130 223 -141Q236 -147 261 -147H276V-212H230Q148
+-212 127 -132Q121 -110 121 -82V-81V86Q121 179 86 206Q70 218 43 224V293Q97 304 111 348Q121 376 121 430V431V598Q121 700 192 723Q210 729 230 729H276Z" />
+<glyph unicode="|" glyph-name="bar" horiz-adv-x="260" d="M100 729H160V-212H100V729Z" />
+<glyph unicode="}" glyph-name="braceright" horiz-adv-x="334" d="M29 -212V-147H45Q93 -147 104 -120Q108 -109 109 -90V-80V101Q109 221 191 258Q109 296 109 414V416V597Q109 647 83 658Q70 664 45 664H29V729H76Q159 729 180 648Q186 626 186 599V598V431Q186
+337 222 310Q237 298 262 293V224Q210 213 195 167Q186 139 186 87V86V-81Q186 -184 113 -207Q96 -212 76 -212H29Z" />
+<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="584" d="M455 411H508V395Q508 310 451 280Q430 268 403 268Q364 268 322 294L224 357Q201 371 181 371Q152 371 136 336Q131 323 128 295V293H75Q82 424 166 437L183 438Q210 438 237 422L354 353Q382
+336 404 336Q448 336 454 385L455 411Z" />
+
+<hkern g1="comma" g2="one" k="100" />
+<hkern g1="hyphen" g2="A" k="7" />
+<hkern g1="hyphen" g2="T" k="80" />
+<hkern g1="hyphen" g2="V" k="46" />
+<hkern g1="hyphen" g2="W" k="19" />
+<hkern g1="hyphen" g2="Y" k="92" />
+<hkern g1="period" g2="one" k="101" />
+<hkern g1="zero" g2="one" k="46" />
+<hkern g1="zero" g2="four" k="2" />
+<hkern g1="zero" g2="seven" k="39" />
+<hkern g1="one" g2="comma" k="74" />
+<hkern g1="one" g2="period" k="74" />
+<hkern g1="one" g2="zero" k="62" />
+<hkern g1="one" g2="one" k="118" />
+<hkern g1="one" g2="two" k="69" />
+<hkern g1="one" g2="three" k="67" />
+<hkern g1="one" g2="four" k="81" />
+<hkern g1="one" g2="five" k="67" />
+<hkern g1="one" g2="six" k="62" />
+<hkern g1="one" g2="seven" k="90" />
+<hkern g1="one" g2="eight" k="65" />
+<hkern g1="one" g2="nine" k="65" />
+<hkern g1="two" g2="one" k="36" />
+<hkern g1="two" g2="four" k="37" />
+<hkern g1="two" g2="seven" k="25" />
+<hkern g1="three" g2="one" k="49" />
+<hkern g1="three" g2="four" k="2" />
+<hkern g1="three" g2="seven" k="33" />
+<hkern g1="four" g2="one" k="84" />
+<hkern g1="four" g2="four" k="-5" />
+<hkern g1="four" g2="seven" k="56" />
+<hkern g1="five" g2="one" k="76" />
+<hkern g1="five" g2="four" k="-1" />
+<hkern g1="five" g2="seven" k="26" />
+<hkern g1="six" g2="one" k="43" />
+<hkern g1="six" g2="four" k="-1" />
+<hkern g1="six" g2="seven" k="30" />
+<hkern g1="seven" g2="comma" k="119" />
+<hkern g1="seven" g2="period" k="119" />
+<hkern g1="seven" g2="one" k="53" />
+<hkern g1="seven" g2="two" k="28" />
+<hkern g1="seven" g2="three" k="23" />
+<hkern g1="seven" g2="four" k="93" />
+<hkern g1="seven" g2="five" k="30" />
+<hkern g1="seven" g2="six" k="40" />
+<hkern g1="seven" g2="seven" k="4" />
+<hkern g1="seven" g2="eight" k="28" />
+<hkern g1="seven" g2="colon" k="77" />
+<hkern g1="eight" g2="one" k="48" />
+<hkern g1="eight" g2="four" k="-1" />
+<hkern g1="eight" g2="seven" k="33" />
+<hkern g1="nine" g2="one" k="43" />
+<hkern g1="nine" g2="four" k="3" />
+<hkern g1="nine" g2="seven" k="37" />
+<hkern g1="A" g2="comma" k="-5" />
+<hkern g1="A" g2="hyphen" k="3" />
+<hkern g1="A" g2="period" k="-5" />
+<hkern g1="A" g2="C" k="36" />
+<hkern g1="A" g2="G" k="35" />
+<hkern g1="A" g2="O" k="33" />
+<hkern g1="A" g2="Q" k="32" />
+<hkern g1="A" g2="T" k="93" />
+<hkern g1="A" g2="U" k="37" />
+<hkern g1="A" g2="V" k="75" />
+<hkern g1="A" g2="W" k="51" />
+<hkern g1="A" g2="Y" k="99" />
+<hkern g1="A" g2="a" k="4" />
+<hkern g1="A" g2="b" k="-4" />
+<hkern g1="A" g2="c" k="11" />
+<hkern g1="A" g2="d" k="8" />
+<hkern g1="A" g2="e" k="16" />
+<hkern g1="A" g2="g" k="10" />
+<hkern g1="A" g2="o" k="13" />
+<hkern g1="A" g2="q" k="8" />
+<hkern g1="A" g2="t" k="16" />
+<hkern g1="A" g2="u" k="12" />
+<hkern g1="A" g2="v" k="31" />
+<hkern g1="A" g2="w" k="21" />
+<hkern g1="A" g2="y" k="34" />
+<hkern g1="B" g2="A" k="21" />
+<hkern g1="B" g2="O" k="7" />
+<hkern g1="B" g2="V" k="41" />
+<hkern g1="B" g2="W" k="25" />
+<hkern g1="B" g2="Y" k="44" />
+<hkern g1="C" g2="A" k="32" />
+<hkern g1="C" g2="H" k="12" />
+<hkern g1="C" g2="K" k="10" />
+<hkern g1="C" g2="O" k="8" />
+<hkern g1="D" g2="A" k="42" />
+<hkern g1="D" g2="J" k="5" />
+<hkern g1="D" g2="T" k="45" />
+<hkern g1="D" g2="V" k="51" />
+<hkern g1="D" g2="W" k="29" />
+<hkern g1="D" g2="X" k="53" />
+<hkern g1="D" g2="Y" k="63" />
+<hkern g1="F" g2="comma" k="108" />
+<hkern g1="F" g2="hyphen" k="14" />
+<hkern g1="F" g2="period" k="108" />
+<hkern g1="F" g2="A" k="69" />
+<hkern g1="F" g2="J" k="51" />
+<hkern g1="F" g2="O" k="22" />
+<hkern g1="F" g2="a" k="33" />
+<hkern g1="F" g2="e" k="24" />
+<hkern g1="F" g2="i" k="10" />
+<hkern g1="F" g2="j" k="12" />
+<hkern g1="F" g2="o" k="21" />
+<hkern g1="F" g2="r" k="35" />
+<hkern g1="F" g2="u" k="33" />
+<hkern g1="G" g2="A" k="6" />
+<hkern g1="G" g2="T" k="44" />
+<hkern g1="G" g2="V" k="50" />
+<hkern g1="G" g2="W" k="28" />
+<hkern g1="G" g2="Y" k="62" />
+<hkern g1="J" g2="A" k="32" />
+<hkern g1="K" g2="hyphen" k="47" />
+<hkern g1="K" g2="C" k="51" />
+<hkern g1="K" g2="G" k="51" />
+<hkern g1="K" g2="O" k="48" />
+<hkern g1="K" g2="S" k="38" />
+<hkern g1="K" g2="T" k="-20" />
+<hkern g1="K" g2="a" k="11" />
+<hkern g1="K" g2="e" k="32" />
+<hkern g1="K" g2="o" k="29" />
+<hkern g1="K" g2="u" k="19" />
+<hkern g1="K" g2="y" k="62" />
+<hkern g1="L" g2="hyphen" k="125" />
+<hkern g1="L" g2="A" k="-17" />
+<hkern g1="L" g2="C" k="41" />
+<hkern g1="L" g2="G" k="42" />
+<hkern g1="L" g2="O" k="41" />
+<hkern g1="L" g2="S" k="19" />
+<hkern g1="L" g2="T" k="105" />
+<hkern g1="L" g2="U" k="35" />
+<hkern g1="L" g2="V" k="105" />
+<hkern g1="L" g2="W" k="68" />
+<hkern g1="L" g2="Y" k="121" />
+<hkern g1="L" g2="u" k="7" />
+<hkern g1="L" g2="y" k="56" />
+<hkern g1="N" g2="comma" k="7" />
+<hkern g1="N" g2="period" k="7" />
+<hkern g1="N" g2="A" k="9" />
+<hkern g1="N" g2="C" k="3" />
+<hkern g1="N" g2="G" k="2" />
+<hkern g1="N" g2="a" k="5" />
+<hkern g1="N" g2="o" k="-2" />
+<hkern g1="O" g2="A" k="35" />
+<hkern g1="O" g2="T" k="42" />
+<hkern g1="O" g2="V" k="45" />
+<hkern g1="O" g2="W" k="23" />
+<hkern g1="O" g2="X" k="46" />
+<hkern g1="O" g2="Y" k="59" />
+<hkern g1="P" g2="comma" k="135" />
+<hkern g1="P" g2="hyphen" k="40" />
+<hkern g1="P" g2="period" k="135" />
+<hkern g1="P" g2="A" k="78" />
+<hkern g1="P" g2="J" k="78" />
+<hkern g1="P" g2="a" k="28" />
+<hkern g1="P" g2="e" k="31" />
+<hkern g1="P" g2="o" k="27" />
+<hkern g1="R" g2="hyphen" k="2" />
+<hkern g1="R" g2="C" k="16" />
+<hkern g1="R" g2="G" k="15" />
+<hkern g1="R" g2="O" k="13" />
+<hkern g1="R" g2="T" k="23" />
+<hkern g1="R" g2="U" k="17" />
+<hkern g1="R" g2="V" k="39" />
+<hkern g1="R" g2="W" k="27" />
+<hkern g1="R" g2="Y" k="43" />
+<hkern g1="R" g2="a" k="15" />
+<hkern g1="R" g2="e" k="12" />
+<hkern g1="R" g2="o" k="9" />
+<hkern g1="R" g2="u" k="9" />
+<hkern g1="R" g2="y" k="8" />
+<hkern g1="S" g2="A" k="22" />
+<hkern g1="S" g2="T" k="28" />
+<hkern g1="S" g2="V" k="42" />
+<hkern g1="S" g2="W" k="28" />
+<hkern g1="S" g2="Y" k="48" />
+<hkern g1="S" g2="t" k="3" />
+<hkern g1="T" g2="comma" k="100" />
+<hkern g1="T" g2="hyphen" k="77" />
+<hkern g1="T" g2="period" k="100" />
+<hkern g1="T" g2="colon" k="133" />
+<hkern g1="T" g2="semicolon" k="129" />
+<hkern g1="T" g2="A" k="95" />
+<hkern g1="T" g2="C" k="44" />
+<hkern g1="T" g2="G" k="45" />
+<hkern g1="T" g2="J" k="100" />
+<hkern g1="T" g2="O" k="42" />
+<hkern g1="T" g2="S" k="24" />
+<hkern g1="T" g2="V" k="-12" />
+<hkern g1="T" g2="W" k="-16" />
+<hkern g1="T" g2="Y" k="-20" />
+<hkern g1="T" g2="a" k="100" />
+<hkern g1="T" g2="c" k="90" />
+<hkern g1="T" g2="e" k="95" />
+<hkern g1="T" g2="g" k="89" />
+<hkern g1="T" g2="i" k="3" />
+<hkern g1="T" g2="j" k="5" />
+<hkern g1="T" g2="o" k="92" />
+<hkern g1="T" g2="r" k="92" />
+<hkern g1="T" g2="s" k="92" />
+<hkern g1="T" g2="u" k="91" />
+<hkern g1="T" g2="v" k="95" />
+<hkern g1="T" g2="w" k="93" />
+<hkern g1="T" g2="y" k="100" />
+<hkern g1="U" g2="comma" k="27" />
+<hkern g1="U" g2="period" k="25" />
+<hkern g1="U" g2="A" k="36" />
+<hkern g1="U" g2="m" k="4" />
+<hkern g1="U" g2="n" k="4" />
+<hkern g1="U" g2="p" k="-3" />
+<hkern g1="U" g2="r" k="4" />
+<hkern g1="V" g2="comma" k="89" />
+<hkern g1="V" g2="hyphen" k="38" />
+<hkern g1="V" g2="period" k="89" />
+<hkern g1="V" g2="colon" k="66" />
+<hkern g1="V" g2="semicolon" k="66" />
+<hkern g1="V" g2="A" k="71" />
+<hkern g1="V" g2="C" k="43" />
+<hkern g1="V" g2="G" k="42" />
+<hkern g1="V" g2="O" k="40" />
+<hkern g1="V" g2="S" k="35" />
+<hkern g1="V" g2="T" k="-15" />
+<hkern g1="V" g2="a" k="59" />
+<hkern g1="V" g2="e" k="57" />
+<hkern g1="V" g2="g" k="50" />
+<hkern g1="V" g2="i" k="5" />
+<hkern g1="V" g2="o" k="54" />
+<hkern g1="V" g2="r" k="42" />
+<hkern g1="V" g2="u" k="41" />
+<hkern g1="V" g2="y" k="20" />
+<hkern g1="W" g2="comma" k="56" />
+<hkern g1="W" g2="hyphen" k="13" />
+<hkern g1="W" g2="period" k="56" />
+<hkern g1="W" g2="colon" k="52" />
+<hkern g1="W" g2="semicolon" k="53" />
+<hkern g1="W" g2="A" k="50" />
+<hkern g1="W" g2="C" k="23" />
+<hkern g1="W" g2="G" k="22" />
+<hkern g1="W" g2="O" k="20" />
+<hkern g1="W" g2="S" k="24" />
+<hkern g1="W" g2="T" k="-19" />
+<hkern g1="W" g2="a" k="38" />
+<hkern g1="W" g2="e" k="32" />
+<hkern g1="W" g2="g" k="25" />
+<hkern g1="W" g2="i" k="1" />
+<hkern g1="W" g2="o" k="29" />
+<hkern g1="W" g2="r" k="28" />
+<hkern g1="W" g2="u" k="28" />
+<hkern g1="W" g2="y" k="6" />
+<hkern g1="X" g2="hyphen" k="51" />
+<hkern g1="X" g2="C" k="48" />
+<hkern g1="X" g2="O" k="45" />
+<hkern g1="X" g2="Q" k="44" />
+<hkern g1="X" g2="a" k="15" />
+<hkern g1="X" g2="e" k="36" />
+<hkern g1="X" g2="o" k="33" />
+<hkern g1="X" g2="u" k="24" />
+<hkern g1="X" g2="y" k="61" />
+<hkern g1="Y" g2="comma" k="111" />
+<hkern g1="Y" g2="hyphen" k="84" />
+<hkern g1="Y" g2="period" k="111" />
+<hkern g1="Y" g2="colon" k="87" />
+<hkern g1="Y" g2="semicolon" k="88" />
+<hkern g1="Y" g2="A" k="96" />
+<hkern g1="Y" g2="C" k="58" />
+<hkern g1="Y" g2="G" k="58" />
+<hkern g1="Y" g2="O" k="56" />
+<hkern g1="Y" g2="S" k="41" />
+<hkern g1="Y" g2="T" k="-23" />
+<hkern g1="Y" g2="a" k="88" />
+<hkern g1="Y" g2="e" k="89" />
+<hkern g1="Y" g2="g" k="83" />
+<hkern g1="Y" g2="i" k="-3" />
+<hkern g1="Y" g2="o" k="86" />
+<hkern g1="Y" g2="p" k="54" />
+<hkern g1="Y" g2="u" k="63" />
+<hkern g1="Y" g2="v" k="36" />
+<hkern g1="Z" g2="v" k="33" />
+<hkern g1="Z" g2="y" k="38" />
+<hkern g1="a" g2="j" k="4" />
+<hkern g1="a" g2="v" k="21" />
+<hkern g1="a" g2="w" k="13" />
+<hkern g1="a" g2="y" k="26" />
+<hkern g1="b" g2="v" k="11" />
+<hkern g1="b" g2="w" k="3" />
+<hkern g1="b" g2="y" k="15" />
+<hkern g1="c" g2="h" k="-1" />
+<hkern g1="c" g2="k" k="-7" />
+<hkern g1="e" g2="t" k="10" />
+<hkern g1="e" g2="v" k="15" />
+<hkern g1="e" g2="w" k="9" />
+<hkern g1="e" g2="x" k="27" />
+<hkern g1="e" g2="y" k="19" />
+<hkern g1="f" g2="a" k="9" />
+<hkern g1="f" g2="e" k="15" />
+<hkern g1="f" g2="f" k="-22" />
+<hkern g1="f" g2="i" k="2" />
+<hkern g1="f" g2="j" k="4" />
+<hkern g1="f" g2="l" k="3" />
+<hkern g1="f" g2="o" k="10" />
+<hkern g1="f" g2="t" k="-24" />
+<hkern g1="g" g2="a" k="5" />
+<hkern g1="h" g2="y" k="18" />
+<hkern g1="i" g2="T" k="7" />
+<hkern g1="i" g2="j" k="3" />
+<hkern g1="k" g2="hyphen" k="41" />
+<hkern g1="k" g2="a" k="2" />
+<hkern g1="k" g2="e" k="21" />
+<hkern g1="k" g2="g" k="16" />
+<hkern g1="k" g2="o" k="19" />
+<hkern g1="k" g2="s" k="3" />
+<hkern g1="k" g2="u" k="11" />
+<hkern g1="l" g2="y" k="5" />
+<hkern g1="m" g2="p" k="-5" />
+<hkern g1="m" g2="v" k="13" />
+<hkern g1="m" g2="w" k="7" />
+<hkern g1="m" g2="y" k="18" />
+<hkern g1="n" g2="T" k="96" />
+<hkern g1="n" g2="p" k="-5" />
+<hkern g1="n" g2="v" k="13" />
+<hkern g1="n" g2="w" k="7" />
+<hkern g1="n" g2="y" k="18" />
+<hkern g1="o" g2="T" k="99" />
+<hkern g1="o" g2="t" k="10" />
+<hkern g1="o" g2="v" k="18" />
+<hkern g1="o" g2="w" k="10" />
+<hkern g1="o" g2="x" k="27" />
+<hkern g1="o" g2="y" k="22" />
+<hkern g1="p" g2="t" k="4" />
+<hkern g1="p" g2="y" k="16" />
+<hkern g1="q" g2="c" k="-8" />
+<hkern g1="q" g2="u" k="-4" />
+<hkern g1="r" g2="comma" k="69" />
+<hkern g1="r" g2="hyphen" k="47" />
+<hkern g1="r" g2="period" k="69" />
+<hkern g1="r" g2="colon" k="22" />
+<hkern g1="r" g2="semicolon" k="22" />
+<hkern g1="r" g2="a" k="5" />
+<hkern g1="r" g2="c" k="6" />
+<hkern g1="r" g2="d" k="1" />
+<hkern g1="r" g2="e" k="11" />
+<hkern g1="r" g2="f" k="-26" />
+<hkern g1="r" g2="g" k="4" />
+<hkern g1="r" g2="i" k="-1" />
+<hkern g1="r" g2="k" k="-6" />
+<hkern g1="r" g2="l" k="-1" />
+<hkern g1="r" g2="o" k="6" />
+<hkern g1="r" g2="p" k="-8" />
+<hkern g1="r" g2="q" k="3" />
+<hkern g1="r" g2="s" k="-4" />
+<hkern g1="r" g2="t" k="-28" />
+<hkern g1="r" g2="u" k="-2" />
+<hkern g1="r" g2="v" k="-29" />
+<hkern g1="r" g2="w" k="-31" />
+<hkern g1="r" g2="x" k="-20" />
+<hkern g1="r" g2="y" k="-24" />
+<hkern g1="r" g2="z" k="-9" />
+<hkern g1="s" g2="t" k="3" />
+<hkern g1="t" g2="colon" k="28" />
+<hkern g1="t" g2="semicolon" k="28" />
+<hkern g1="t" g2="S" k="8" />
+<hkern g1="t" g2="a" k="1" />
+<hkern g1="t" g2="e" k="14" />
+<hkern g1="t" g2="h" k="3" />
+<hkern g1="t" g2="o" k="12" />
+<hkern g1="v" g2="comma" k="69" />
+<hkern g1="v" g2="hyphen" k="12" />
+<hkern g1="v" g2="period" k="69" />
+<hkern g1="v" g2="colon" k="23" />
+<hkern g1="v" g2="semicolon" k="23" />
+<hkern g1="v" g2="a" k="18" />
+<hkern g1="v" g2="c" k="16" />
+<hkern g1="v" g2="e" k="21" />
+<hkern g1="v" g2="g" k="14" />
+<hkern g1="v" g2="o" k="17" />
+<hkern g1="v" g2="s" k="9" />
+<hkern g1="w" g2="comma" k="50" />
+<hkern g1="w" g2="hyphen" k="1" />
+<hkern g1="w" g2="period" k="50" />
+<hkern g1="w" g2="colon" k="23" />
+<hkern g1="w" g2="semicolon" k="23" />
+<hkern g1="w" g2="a" k="15" />
+<hkern g1="w" g2="c" k="7" />
+<hkern g1="w" g2="e" k="12" />
+<hkern g1="w" g2="g" k="6" />
+<hkern g1="w" g2="o" k="9" />
+<hkern g1="w" g2="s" k="5" />
+<hkern g1="x" g2="a" k="17" />
+<hkern g1="x" g2="c" k="23" />
+<hkern g1="x" g2="e" k="28" />
+<hkern g1="x" g2="o" k="25" />
+<hkern g1="x" g2="q" k="20" />
+<hkern g1="y" g2="comma" k="70" />
+<hkern g1="y" g2="hyphen" k="14" />
+<hkern g1="y" g2="period" k="70" />
+<hkern g1="y" g2="colon" k="27" />
+<hkern g1="y" g2="semicolon" k="27" />
+<hkern g1="y" g2="a" k="22" />
+<hkern g1="y" g2="c" k="19" />
+<hkern g1="y" g2="e" k="24" />
+<hkern g1="y" g2="g" k="17" />
+<hkern g1="y" g2="l" k="4" />
+<hkern g1="y" g2="o" k="20" />
+<hkern g1="y" g2="s" k="12" />
+</font>
+</defs>
+<g font-family="SVGFreeSansASCII" font-size="18">
+<text x="20" y="60"> !"#$%&'()*+,-./0123456789:;<>?</text>
+<text x="20" y="120">@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_</text>
+<text x="20" y="180">`abcdefghijklmnopqrstuvwxyz|{}~</text>
+</g>
+</svg>
diff --git a/test/svg/svg1.2/images/SVGImageTest.svg b/test/svg/svg1.2/images/SVGImageTest.svg
new file mode 100644
index 0000000..ffeb8ba
--- /dev/null
+++ b/test/svg/svg1.2/images/SVGImageTest.svg
@@ -0,0 +1,27 @@
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" >
+
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript version="$Revision: 1.1 $" testname="" >
+ <Paragraph>
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title" > </title>
+ <desc id="test-desc" > </desc>
+
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <rect x="001" y="001" width="239" height="179" fill="gold" stroke="none" />
+ <rect x="240" y="001" width="239" height="179" fill="blue" stroke="none" />
+ <rect x="001" y="180" width="239" height="179" fill="blue" stroke="none" />
+ <rect x="240" y="180" width="239" height="179" fill="gold" stroke="none" />
+
+ <text font-size="35" x="240" y="35" text-anchor="middle" >SVGImageTest.svg</text>
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.1 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+</svg>
+
+
diff --git a/test/svg/svg1.2/images/TraitAccess.common.es b/test/svg/svg1.2/images/TraitAccess.common.es
new file mode 100644
index 0000000..518a59c
--- /dev/null
+++ b/test/svg/svg1.2/images/TraitAccess.common.es
@@ -0,0 +1,672 @@
+var svg_ns = "http://www.w3.org/2000/svg";
+var xlink_ns = "http://www.w3.org/1999/xlink";
+
+var count=0;
+var column = 0;
+var topsvg = document.documentElement;
+var startY = 50;
+var rowHeight = 8;
+var rowWidth = 240;
+var fontSize = "8";
+var isPassed = true;
+
+
+/************************************************************************
+ ************************************************************************
+ * Utility Functions
+ ************************************************************************
+ ************************************************************************/
+
+
+function drawString( text, color )
+{
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5 +( column * rowWidth );
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+ if ( count > 26 && column == 0 )
+ {
+ count = 1;
+ column++;
+ }
+}
+
+
+
+
+/**
+ * Get a string representation of the given SVGPath object.
+ */
+function getSVGPathString( path )
+{
+ if ( 0 == path.numberOfSegments )
+ {
+ return "";
+ }
+
+ var str = "[ ";
+ for ( var segNum = 0; segNum < path.numberOfSegments; ++segNum )
+ {
+ var pathSeg = path.getSegment( segNum );
+
+ var numParams = 2;
+ switch( pathSeg )
+ {
+ case SVGPath.MOVE_TO:
+ str += "M";
+ break;
+
+ case SVGPath.LINE_TO:
+ str += "L";
+ break;
+
+ case SVGPath.CURVE_TO:
+ str += "C";
+ numParams = 6;
+ break;
+
+ case SVGPath.QUAD_TO:
+ str += "Q";
+ numParams = 4;
+ break;
+
+ case SVGPath.CLOSE:
+ str += "Z";
+ numParams = 0;
+ break;
+
+ default:
+ // Should not happen.
+ return 0;
+ }
+
+ str += " ";
+
+ for ( var parNum = 0; parNum < numParams; ++parNum )
+ {
+ str += path.getSegmentParam( segNum, parNum ).toString();
+ str += " ";
+ }
+
+ str += " ";
+ }
+
+ str += "]";
+ return str;
+}
+
+
+/**
+ * Check if two SVGPath objects are equal.
+ * p1 : first path
+ * p2 : second path
+ * dev : allowed +/- deviation for float values
+ * Returns 1 if they are equal, 0 otherwise.
+ */
+function isEqualSVGPath( p1, p2, dev )
+{
+ if ( p1.numberOfSegments != p2.numberOfSegments )
+ {
+ return 0;
+ }
+
+ for ( var segNum = 0; segNum < p1.numberOfSegments; ++segNum )
+ {
+ var p1Seg = p1.getSegment( segNum );
+ var p2Seg = p2.getSegment( segNum );
+ if ( p1Seg != p2Seg )
+ {
+ return 0;
+ }
+
+ var numParams = 2;
+ switch( p1Seg )
+ {
+ case SVGPath.MOVE_TO:
+ break;
+
+ case SVGPath.LINE_TO:
+ break;
+
+ case SVGPath.CURVE_TO:
+ numParams = 6;
+ break;
+
+ case SVGPath.QUAD_TO:
+ numParams = 4;
+ break;
+
+ case SVGPath.CLOSE:
+ numParams = 0;
+ break;
+
+ default:
+ // Should not happen.
+ return 0;
+ }
+
+ for ( var parNum = 0; parNum < numParams; ++parNum )
+ {
+ var p1Param = p1.getSegmentParam( segNum, parNum );
+ var p2Param = p2.getSegmentParam( segNum, parNum );
+ if
+ (
+ ( ( p1Param < ( p2Param - dev ) ) || ( p1Param >( p2Param + dev ) ) ) &&
+ ( ( p2Param < ( p1Param - dev ) ) || ( p2Param >( p1Param + dev ) ) )
+ )
+ {
+ return 0;
+ }
+ }
+ }
+ return 1;
+}
+
+
+/************************************************************************
+ ************************************************************************
+ * Test Iteration Object Definitions
+ ************************************************************************
+ ************************************************************************/
+
+
+/**
+ * Create a get*Trait() test iteration object.
+ * id : iter id
+ * fnName : function name (e.g. getTrait, getTraitNS, etc.)
+ * ns : namespace
+ * elem : SVG element
+ * attr : attribute/property name
+ * expected : expected value, 0 if no value is expected
+ * dev : allowed +/- deviation for float values
+ * ecode : expected exception code, 0 if no exception is expected
+ * ename : expected exception string, for display purposes, 0 if no exception is expected
+ */
+function getTraitIter
+(
+ id,
+ fnName,
+ ns,
+ elem,
+ attr,
+ expected,
+ dev,
+ ecode,
+ ename
+)
+{
+ this.id = id;
+ this.fnName = fnName;
+ this.ns = ns;
+ this.elem = elem;
+ this.attr = attr;
+ this.expected = expected;
+ this.dev = dev;
+ this.ecode = ecode;
+ this.ename = ename;
+}
+
+
+/**
+ * Create a set*Trait() test iteration object.
+ * id : iter id
+ * fnName : function name (e.g. setTrait, setTraitNS, etc.)
+ * getFnName : getter function name (e.g. getTrait, getTraitNS, etc.), used for verification
+ * ns : namespace
+ * elem : SVG element
+ * attr : attribute/property name
+ * value : value to set
+ * expected : expected value from getter function, 0 if no value expected
+ * dev : allowed +/- deviation for float values
+ * ecode : expected exception code, 0 if no exception expected
+ * ename : expected exception string, for display purposes, 0 if no exception expected
+ */
+function setTraitIter
+(
+ id,
+ fnName,
+ getFnName,
+ ns,
+ elem,
+ attr,
+ value,
+ expected,
+ dev,
+ ecode,
+ ename
+)
+{
+ this.id = id;
+ this.fnName = fnName;
+ this.getFnName = getFnName;
+ this.ns = ns;
+ this.elem = elem;
+ this.attr = attr;
+ this.value = value;
+ this.expected = expected;
+ this.dev = dev;
+ this.ecode = ecode;
+ this.ename = ename;
+}
+
+
+/************************************************************************
+ ************************************************************************
+ * Single Test Iteration Run Methods
+ ************************************************************************
+ ************************************************************************/
+
+
+/**
+ * Run a single get*Trait() test iteration.
+ * iter : a getTraitIter object
+ */
+function runSingleGetTraitIter( iter )
+{
+ //DEBUG
+ //drawString( "runSingleGetTraitIter( "
+ // + "id=" + iter.id
+ // + ", fnName=" + iter.fnName
+ // + ", ns=" + iter.ns
+ // + ", elem=" + iter.elem
+ // + ", attr=" + iter.attr
+ // + ", expected=" + iter.expected
+ // + ", dev=" + iter.dev
+ // + ", ecode=" + iter.ecode
+ // + ", ename=" + iter.ename
+ // + " )" );
+
+ try
+ {
+ var cmd = iter.id + ": ";
+ var fnNameLen = iter.fnName.length;
+ var fnNameSuffix = iter.fnName.substring( fnNameLen - 2, fnNameLen );
+ if ( fnNameSuffix == "NS" )
+ {
+ cmd += iter.elem.id
+ + "."
+ + iter.fnName
+ + "( "
+ + iter.ns
+ + ", \""
+ + iter.attr
+ + "\" )";
+ value = iter.elem[iter.fnName]( iter.ns, iter.attr );
+ }
+ else if ( fnNameSuffix == "it" )
+ {
+ cmd += iter.elem.id
+ + "."
+ + iter.fnName
+ + "( \""
+ + iter.attr
+ + "\" )";
+ value = iter.elem[iter.fnName](iter.attr);
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "runSingleGetTraitIter: Invalid fnName = " + iter.fnName, "red" );
+ }
+
+ if ( iter.ecode )
+ {
+ isPassed = false;
+ drawString( "No exception was thrown! Expected " + iter.ename, "red" );
+ }
+ else if ( iter.fnName.match("Float") )
+ {
+ if ( ( value >= ( iter.expected - iter.dev ) ) && ( value <= ( iter.expected + iter.dev ) ) )
+ {
+ drawString( cmd + " = \"" + value + "\" (" + iter.expected + " +/- " + iter.dev + ")", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + " = \"" + value + "\", expected = " + iter.expected + " +/- " + iter.dev, "red" );
+ }
+ }
+ else if ( iter.fnName.match("Matrix") )
+ {
+ if
+ (
+ ( value.getComponent(0) >= ( iter.expected.getComponent(0) - iter.dev ) )
+ && ( value.getComponent(0) <= ( iter.expected.getComponent(0) + iter.dev ) )
+ && ( value.getComponent(1) >= ( iter.expected.getComponent(1) - iter.dev ) )
+ && ( value.getComponent(1) <= ( iter.expected.getComponent(1) + iter.dev ) )
+ && ( value.getComponent(2) >= ( iter.expected.getComponent(2) - iter.dev ) )
+ && ( value.getComponent(2) <= ( iter.expected.getComponent(2) + iter.dev ) )
+ && ( value.getComponent(3) >= ( iter.expected.getComponent(3) - iter.dev ) )
+ && ( value.getComponent(3) <= ( iter.expected.getComponent(3) + iter.dev ) )
+ && ( value.getComponent(4) >= ( iter.expected.getComponent(4) - iter.dev ) )
+ && ( value.getComponent(4) <= ( iter.expected.getComponent(4) + iter.dev ) )
+ && ( value.getComponent(5) >= ( iter.expected.getComponent(5) - iter.dev ) )
+ && ( value.getComponent(5) <= ( iter.expected.getComponent(5) + iter.dev ) )
+ )
+ {
+ drawString( cmd + " = ["
+ + value.getComponent(0) + " "
+ + value.getComponent(1) + " "
+ + value.getComponent(2) + " "
+ + value.getComponent(3) + " "
+ + value.getComponent(4) + " "
+ + value.getComponent(5)
+ + "] ( ["
+ + iter.expected.getComponent(0) + " "
+ + iter.expected.getComponent(1) + " "
+ + iter.expected.getComponent(2) + " "
+ + iter.expected.getComponent(3) + " "
+ + iter.expected.getComponent(4) + " "
+ + iter.expected.getComponent(5)
+ + "] +/- " + iter.dev + ")", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + " = ["
+ + value.getComponent(0) + " "
+ + value.getComponent(1) + " "
+ + value.getComponent(2) + " "
+ + value.getComponent(3) + " "
+ + value.getComponent(4) + " "
+ + value.getComponent(5)
+ + "], expected = ["
+ + iter.expected.getComponent(0) + " "
+ + iter.expected.getComponent(1) + " "
+ + iter.expected.getComponent(2) + " "
+ + iter.expected.getComponent(3) + " "
+ + iter.expected.getComponent(4) + " "
+ + iter.expected.getComponent(5)
+ + "] +/- " + iter.dev, "red" );
+ }
+ }
+ else if ( iter.fnName.match("Rect") )
+ {
+ if
+ (
+ ( value.x >= ( iter.expected.x - iter.dev ) )
+ && ( value.x <= ( iter.expected.x + iter.dev ) )
+ && ( value.y >= ( iter.expected.y - iter.dev ) )
+ && ( value.y <= ( iter.expected.y + iter.dev ) )
+ && ( value.width >= ( iter.expected.width - iter.dev ) )
+ && ( value.width <= ( iter.expected.width + iter.dev ) )
+ && ( value.height >= ( iter.expected.height - iter.dev ) )
+ && ( value.height <= ( iter.expected.height + iter.dev ) )
+ )
+ {
+ drawString( cmd + " = ["
+ + value.x + " "
+ + value.y + " "
+ + value.width + " "
+ + value.height
+ + "] ( ["
+ + iter.expected.x + " "
+ + iter.expected.y + " "
+ + iter.expected.width + " "
+ + iter.expected.height
+ + "] +/- " + iter.dev + ")", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + " = ["
+ + value.x + " "
+ + value.y + " "
+ + value.width + " "
+ + value.height
+ + "], expected = ["
+ + iter.expected.x + " "
+ + iter.expected.y + " "
+ + iter.expected.width + " "
+ + iter.expected.height
+ + "] +/- " + iter.dev, "red" );
+ }
+ }
+ else if ( iter.fnName.match("Path") )
+ {
+ if ( isEqualSVGPath ( value, iter.expected, iter.dev ) )
+ {
+ drawString( cmd + " = " + getSVGPathString(value)
+ + " ( " + getSVGPathString(iter.expected) + " +/- " + iter.dev + " )", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + " = " + getSVGPathString(value)
+ + ", expected = " + getSVGPathString(iter.expected) + " +/- " + iter.dev, "red" );
+ }
+ }
+ else if ( iter.fnName.match("RGBColor") )
+ {
+ if ( value == null && iter.expected == null )
+ {
+ drawString( cmd + " = [ null ] ( null ) ", "green" );
+ }
+ else if
+ (
+ ( value.red >= ( iter.expected.red - iter.dev ) ) &&
+ ( value.red <= ( iter.expected.red + iter.dev ) ) &&
+ ( value.green >= ( iter.expected.green - iter.dev ) ) &&
+ ( value.green <= ( iter.expected.green + iter.dev ) ) &&
+ ( value.blue >= ( iter.expected.blue - iter.dev ) ) &&
+ ( value.blue <= ( iter.expected.blue + iter.dev ) )
+ )
+ {
+ drawString( cmd + " = [ "
+ + value.red + ", "
+ + value.green + ", "
+ + value.blue
+ + " ] ( "
+ + iter.expected.red + ", "
+ + iter.expected.green + ", "
+ + iter.expected.blue
+ + " ] +/- " + iter.dev + " )", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + " = [ "
+ + value.red + ", "
+ + value.green + ", "
+ + value.blue
+ + " ], expected = [ "
+ + iter.expected.red + ", "
+ + iter.expected.green + ", "
+ + iter.expected.blue
+ + " ] +/- " + iter.dev, "red" );
+ }
+ }
+ else
+ {
+ if ( value == iter.expected )
+ {
+ drawString( cmd + " = \"" + value + "\"", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + " = \"" + value + "\", expected = \"" + iter.expected + "\"", "red" );
+ }
+ }
+ }
+ catch(e)
+ {
+ if ( e.code == iter.ecode )
+ {
+ drawString( cmd + ", got expected exception = " + iter.ename, "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + ", got unexpected exception = (" + e.code + ") "
+ + ", expecting = (" + iter.ecode + ") " + iter.ename, "red" );
+ }
+ }
+}
+
+
+/**
+ * Run a single set*Trait() test iteration.
+ * iter : a setTraitIter object
+ */
+function runSingleSetTraitIter( iter )
+{
+ //DEBUG
+ //drawString( "runSingleSetTraitIter( "
+ // + "id=" + iter.id
+ // + ", fnName=" + iter.fnName
+ // + ", getFnName=" + iter.getFnName
+ // + ", ns=" + iter.ns
+ // + ", elem=" + iter.elem
+ // + ", attr=" + iter.attr
+ // + ", value=" + iter.value
+ // + ", expected=" + iter.expected
+ // + ", dev=" + iter.dev
+ // + ", ecode=" + iter.ecode
+ // + ", ename=" + iter.ename
+ // + " )" );
+
+
+ try
+ {
+ var cmd = iter.id + ": ";
+ var fnNameLen = iter.fnName.length;
+ var fnNameSuffix = iter.fnName.substring( fnNameLen - 2, fnNameLen );
+ if ( fnNameSuffix == "NS" )
+ {
+ cmd += iter.elem.id
+ + "."
+ + iter.fnName
+ + "( "
+ + iter.ns
+ + ", \""
+ + iter.attr
+ + "\", \""
+ + iter.value
+ + "\" )";
+ iter.elem[iter.fnName]( iter.ns, iter.attr, iter.value );
+ drawString( cmd, "green" );
+ }
+ else if ( fnNameSuffix == "it" )
+ {
+ cmd += iter.elem.id
+ + "."
+ + iter.fnName
+ + "( \""
+ + iter.attr
+ + "\", \""
+ + iter.value
+ + "\" )";
+ iter.elem[iter.fnName]( iter.attr, iter.value );
+ drawString( cmd, "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "runSingleSetTraitIter: Invalid fnName = " + iter.fnName , "red");
+ }
+
+ if ( iter.ecode )
+ {
+ isPassed = false;
+ drawString( "No exception was thrown! Expected " + iter.ename, "red" );
+ }
+ else
+ {
+ runSingleGetTraitIter
+ (
+ new getTraitIter
+ (
+ iter.id,
+ iter.getFnName,
+ iter.ns,
+ iter.elem,
+ iter.attr,
+ iter.expected,
+ iter.dev,
+ 0,
+ 0
+ )
+ );
+ }
+
+ }
+ catch(e)
+ {
+ if ( e.code == iter.ecode )
+ {
+ drawString( cmd + ", got expected exception = " + iter.ename, "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( cmd + ", got unexpected exception = (" + e.code + ") "
+ + ", expecting = (" + iter.ecode + ") " + iter.ename, "red" );
+ }
+ }
+
+}
+
+
+/************************************************************************
+ ************************************************************************
+ * Bulk Test Iteration Run Methods
+ ************************************************************************
+ ************************************************************************/
+
+
+/**
+ * Run all given getTraitIters.
+ * iters : array of getTraitIter objects
+ */
+function runGetTraitIters( iters )
+{
+ var value = "";
+ var elem = 0;
+
+ for( var i = 0; i < iters.length; ++i )
+ {
+ try
+ {
+ runSingleGetTraitIter( iters[i] );
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString( "runGetTraitIter: Unexpected exception thrown! (" + e.code + ") ", "red" );
+ }
+ }
+}
+
+
+/**
+ * Run all given setTraitIters.
+ * iters : array of setTraitIter objects
+ */
+function runSetTraitIters( iters )
+{
+ var value = "";
+ var elem = 0;
+
+ for( var i = 0; i < iters.length; ++i )
+ {
+ try
+ {
+ runSingleSetTraitIter( iters[i] );
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString( "runSetTraitIters: Unexpected exception thrown! (" + e.code + ") ", "red" );
+ }
+ }
+}
+
+
+
diff --git a/test/svg/svg1.2/images/advice.wav b/test/svg/svg1.2/images/advice.wav
new file mode 100644
index 0000000..8935a35
Binary files /dev/null and b/test/svg/svg1.2/images/advice.wav differ
diff --git a/test/svg/svg1.2/images/animation-add-BE-09.svg b/test/svg/svg1.2/images/animation-add-BE-09.svg
new file mode 100644
index 0000000..efb9ab3
--- /dev/null
+++ b/test/svg/svg1.2/images/animation-add-BE-09.svg
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- animation-add-BE-09.svg -->
+<!-- -->
+<!-- Test 'additive' and 'accumulate' attributes. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 11-Aug-2000 -->
+<!-- -->
+<!-- History: -->
+<!-- 11-Aug-2000, JF: Serial#1 created. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="450" height="450">
+
+<SVGTestCase xmlns="http://www.w3.org/2000/svg/test" chapter="animation" focus="add" testType="BE" BENumber="09" >
+
+<!-- For the BE-01 case, 'Previous' elt. should target previous chapter-focus. -->
+
+ <Previous chapter="animation" focus="values" BENumber="08" />
+ <Next chapter="animation" focus="inherit" BENumber="10" />
+ <Parent chapter="toc" />
+ <Child testType="DT" DTNumber="01" />
+
+ <OperatorScript>
+ <Paragraph>
+Test 'additive' and 'accumulate' attributes.
+</Paragraph>
+<Paragraph>
+Eight animations have been defined.
+For each animation, ruler lines and text are provided to help show
+what the correct behavior is.
+The red text shows the values for attributes 'additive' and 'accumulate'.
+The black text and ruler lines help show the change in height of
+the rectangles over time.
+</Paragraph>
+<Paragraph>
+In the first row, a single animation which changes the height of the rectangle
+is defined for each picture.
+The height changes from 10 to 25, and the animation repeats (total of two loops).
+The four pictures show the effect with the four possible combinations of
+'additive' (either 'replace' or 'sum') and 'accumulate' (either 'none' or 'sum').
+</Paragraph>
+<Paragraph>
+In the second row, two identical animations change the height of the rectangle,
+with each animation exactly the same as the corresponding animation in the first row.
+Again, the four pictures show the effect with the four possible combinations of
+'additive' (either 'replace' or 'sum') and 'accumulate' (either 'none' or 'sum').
+Because two animations are animating the height, the effects of 'additive' and
+'accumulate' are sometimes different than when there is only a single animation.
+</Paragraph>
+ </OperatorScript>
+
+</SVGTestCase>
+
+ <title id="test-title">animation-add-BE-09</title>
+ <desc id="test-desc">Test 'additive' and 'accumulate' attributes.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text font-family="Helvetica" font-size="14" text-anchor="middle" x="225" y="25">Test 'additive' and 'accumulate' attributes.</text>
+ <g xml:space="preserve" font-family="Helvetica" font-size="13.5" text-anchor="end" stroke-width="3" >
+ <g transform="translate(75,60)">
+ <text x="-10" y="14">0,4 sec. </text>
+ <line x1="-10" y1="10" x2="20" y2="10" fill="none" stroke="#880000" />
+ <text x="-10" y="29">4,8+ sec. </text>
+ <line x1="-10" y1="25" x2="20" y2="25" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="replace" accumulate="none" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="100" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='replace'</text>
+ <text x="-15" y="115" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='none'</text>
+ </g>
+ <g transform="translate(185,60)">
+ <text x="-10" y="39">0,4 sec. </text>
+ <line x1="-10" y1="35" x2="20" y2="35" fill="none" stroke="#880000" />
+ <text x="-10" y="54">4,8+ sec. </text>
+ <line x1="-10" y1="50" x2="20" y2="50" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="sum" accumulate="none" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="100" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='sum'</text>
+ <text x="-15" y="115" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='none'</text>
+ </g>
+ <g transform="translate(295,60)">
+ <text x="-10" y="14">0 sec. </text>
+ <line x1="-10" y1="10" x2="20" y2="10" fill="none" stroke="#880000" />
+ <text x="-10" y="29">4 sec. </text>
+ <line x1="-10" y1="25" x2="20" y2="25" fill="none" stroke="#880000" />
+ <text x="-10" y="39">4 sec. </text>
+ <line x1="-10" y1="35" x2="20" y2="35" fill="none" stroke="#880000" />
+ <text x="-10" y="54">8+ sec. </text>
+ <line x1="-10" y1="50" x2="20" y2="50" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="replace" accumulate="sum" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="100" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='replace'</text>
+ <text x="-15" y="115" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='sum'</text>
+ </g>
+ <g transform="translate(405,60)">
+ <text x="-10" y="39">0 sec. </text>
+ <line x1="-10" y1="35" x2="20" y2="35" fill="none" stroke="#880000" />
+ <text x="-10" y="54">4 sec. </text>
+ <line x1="-10" y1="50" x2="20" y2="50" fill="none" stroke="#880000" />
+ <text x="-10" y="64">4 sec. </text>
+ <line x1="-10" y1="60" x2="20" y2="60" fill="none" stroke="#880000" />
+ <text x="-10" y="79">8+ sec. </text>
+ <line x1="-10" y1="75" x2="20" y2="75" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="sum" accumulate="sum" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="100" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='sum'</text>
+ <text x="-15" y="115" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='sum'</text>
+ </g>
+ <g transform="translate(75,220)">
+ <text x="-10" y="14">0,4 sec. </text>
+ <line x1="-10" y1="10" x2="20" y2="10" fill="none" stroke="#880000" />
+ <text x="-10" y="29">4,8+ sec. </text>
+ <line x1="-10" y1="25" x2="20" y2="25" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="replace" accumulate="none" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ <animate attributeName="height" calcMode="discrete" additive="replace" accumulate="none" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="140" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='replace'</text>
+ <text x="-15" y="155" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='none'</text>
+ </g>
+ <g transform="translate(185,220)">
+ <text x="-10" y="49">0,4 sec. </text>
+ <line x1="-10" y1="45" x2="20" y2="45" fill="none" stroke="#880000" />
+ <text x="-10" y="79">4,8+ sec. </text>
+ <line x1="-10" y1="75" x2="20" y2="75" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="sum" accumulate="none" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ <animate attributeName="height" calcMode="discrete" additive="sum" accumulate="none" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="140" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='sum'</text>
+ <text x="-15" y="155" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='none'</text>
+ </g>
+ <g transform="translate(295,220)">
+ <text x="-10" y="14">0 sec. </text>
+ <line x1="-10" y1="10" x2="20" y2="10" fill="none" stroke="#880000" />
+ <text x="-10" y="29">4 sec. </text>
+ <line x1="-10" y1="25" x2="20" y2="25" fill="none" stroke="#880000" />
+ <text x="-10" y="39">4 sec. </text>
+ <line x1="-10" y1="35" x2="20" y2="35" fill="none" stroke="#880000" />
+ <text x="-10" y="54">8+ sec. </text>
+ <line x1="-10" y1="50" x2="20" y2="50" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="replace" accumulate="sum" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ <animate attributeName="height" calcMode="discrete" additive="replace" accumulate="sum" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="140" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='replace'</text>
+ <text x="-15" y="155" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='sum'</text>
+ </g>
+ <g transform="translate(405,220)">
+ <text x="-10" y="49">0 sec. </text>
+ <line x1="-10" y1="45" x2="20" y2="45" fill="none" stroke="#880000" />
+ <text x="-10" y="79">4 sec. </text>
+ <line x1="-10" y1="75" x2="20" y2="75" fill="none" stroke="#880000" />
+ <text x="-10" y="99">4 sec. </text>
+ <line x1="-10" y1="95" x2="20" y2="95" fill="none" stroke="#880000" />
+ <text x="-10" y="129">8+ sec. </text>
+ <line x1="-10" y1="125" x2="20" y2="125" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="20" height="25" fill="#44FFAA" stroke="#008888" stroke-width="4" >
+ <animate attributeName="height" calcMode="discrete" additive="sum" accumulate="sum" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ <animate attributeName="height" calcMode="discrete" additive="sum" accumulate="sum" repeatCount="2" from="10" to="25" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="-15" y="140" xml:space="default" text-anchor="middle" fill="red" font-size="12" >additive='sum'</text>
+ <text x="-15" y="155" xml:space="default" text-anchor="middle" fill="red" font-size="12" >accumulate='sum'</text>
+ </g>
+ </g>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="390" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 405 h275 M205 405 v35 M10 426 h195 M205 422 h80"/>
+ <text x="25" y="401">Scalable Vector Graphics (SVG) Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="437" fill="blue" >Copyright 2000 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="420">animation-add-BE-09</text>
+ <text font-size="10" x="210" y="417">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="435">Release 3.0</text>
+ <rect id="test-frame" x="1" y="1" width="448" height="448" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation-extRef-image1.svg b/test/svg/svg1.2/images/animation-extRef-image1.svg
new file mode 100644
index 0000000..1670b4d
--- /dev/null
+++ b/test/svg/svg1.2/images/animation-extRef-image1.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "SVG-1.1-monolithic-fixed.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="animation-extRef-image1" width="360" height="120" viewBox="0 0 360 120">
+ <g style="stroke: black; stroke-width:2">
+ <rect x="2" y="10" width="0" height="20" style="fill: lightgreen">
+ <animate attributeName="width" attributeType="XML" from="0" to="120" begin="1s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect x="2" y="50" width="0" height="20" style="fill: blue">
+ <animate attributeName="width" attributeType="XML" from="0" to="120" begin="1s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect x="2" y="90" width="0" height="20" style="fill: red">
+ <animate attributeName="width" attributeType="XML" from="0" to="120" begin="1s" dur="5s" fill="freeze"/>
+ </rect>
+ </g>
+ <g>
+ <text x="280" y="30" style="font-size:20">Image 1</text>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation-extRef-image2.svg b/test/svg/svg1.2/images/animation-extRef-image2.svg
new file mode 100644
index 0000000..f174ad5
--- /dev/null
+++ b/test/svg/svg1.2/images/animation-extRef-image2.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "SVG-1.1-monolithic-fixed.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="animation-extRef-image2" width="360" height="120" viewBox="0 0 360 120">
+ <g style="stroke: black; stroke-width:2">
+ <rect x="2" y="10" width="120" height="20" style="fill: lightgreen"/>
+ <rect x="2" y="50" width="120" height="20" style="fill: blue">
+ <animate attributeName="width" attributeType="XML" from="120" to="240" begin="1s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect x="2" y="90" width="120" height="20" style="fill: red">
+ <animate attributeName="width" attributeType="XML" from="120" to="240" begin="1s" dur="5s" fill="freeze"/>
+ </rect>
+ </g>
+ <g>
+ <text x="280" y="30" style="font-size:20">Image 2</text>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation-extRef-image3.svg b/test/svg/svg1.2/images/animation-extRef-image3.svg
new file mode 100644
index 0000000..7caefe4
--- /dev/null
+++ b/test/svg/svg1.2/images/animation-extRef-image3.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "SVG-1.1-monolithic-fixed.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="animation-extRef-image3" width="360" height="120" viewBox="0 0 360 120">
+ <g style="stroke: black; stroke-width:2">
+ <rect x="2" y="10" width="120" height="20" style="fill: lightgreen"/>
+ <rect x="2" y="50" width="240" height="20" style="fill: blue"/>
+ <rect x="2" y="90" width="240" height="20" style="fill: red">
+ <animate attributeName="width" attributeType="XML" from="240" to="356" begin="1s" dur="5s" fill="freeze"/>
+ </rect>
+ </g>
+ <g>
+ <text x="280" y="30" style="font-size:20">Image 3</text>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation-script.svg b/test/svg/svg1.2/images/animation-script.svg
new file mode 100644
index 0000000..ac9631d
--- /dev/null
+++ b/test/svg/svg1.2/images/animation-script.svg
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="6cm" height="5cm" viewBox="0 0 600 500" xmlns="http://www.w3.org/2000/svg" version="1.2"
+ baseProfile="tiny" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <desc>Example: invoke an ECMAScript function from an activate event </desc>
+ <!-- ECMAScript to change the radius -->
+ <script type="application/ecmascript">
+ <![CDATA[
+ function change(evt) {
+ var circle = evt.target;
+ var currentRadius = circle.getFloatTrait("r");
+ if (currentRadius == 100)
+ circle.setFloatTrait("r", currentRadius*2);
+ else
+ circle.setFloatTrait("r", currentRadius*0.5);
+ }
+ ]]>
+ </script>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <!-- Act on each activate event -->
+ <circle focusable="true" cx="300" cy="225" r="100" fill="red">
+ <handler type="application/ecmascript" ev:event="activate"> change(evt); </handler>
+ </circle>
+ <text x="300" y="480" font-family="SVGFreeSansASCII" font-size="35" text-anchor="middle"> Activate the
+ circle to change its size </text>
+</svg>
+
diff --git a/test/svg/svg1.2/images/animation-time-scale.svg b/test/svg/svg1.2/images/animation-time-scale.svg
new file mode 100644
index 0000000..219a1f2
--- /dev/null
+++ b/test/svg/svg1.2/images/animation-time-scale.svg
@@ -0,0 +1,42 @@
+<svg>
+ <defs>
+ <g id="time-scale">
+ <line x1="0" y1="0" x2="500" y2="0" stroke="#999" stroke-width="1.5"/>
+ <g text-anchor="middle" transform="translate(0,10)" font-size="8" fill="#555">
+ <text x="0">0</text>
+ <text x="20">1</text>
+ <text x="40">2</text>
+ <text x="60">3</text>
+ <text x="80">4</text>
+ <text x="100">5</text>
+ <text x="120">6</text>
+ <text x="140">7</text>
+ <text x="160">8</text>
+ <text x="180">9</text>
+ <text x="200">10</text>
+ <text x="220">11</text>
+ <text x="240">12</text>
+ <text x="260">13</text>
+ <text x="280">14</text>
+ <text x="300">15</text>
+ <text x="320">16</text>
+ <text x="340">17</text>
+ <text x="360">18</text>
+ <text x="380">19</text>
+ <text x="400">20</text>
+ <text x="420">21</text>
+ <text x="440">22</text>
+ <text x="460">23</text>
+ <text x="480">24</text>
+ <text x="500">25</text>
+ </g>
+
+ <line x1="0" y1="-5" x2="0" y2="13" stroke="red" stroke-width="2">
+ <animateTransform attributeName="transform" type="translate" from="0,0" to="500,0" begin="0" dur="25" fill="freeze"/>
+ </line>
+
+ <text x="250" y="22" text-anchor="middle" font-size="10" fill="#999">seconds</text>
+ </g>
+ </defs>
+
+</svg>
diff --git a/test/svg/svg1.2/images/animation1.svg b/test/svg/svg1.2/images/animation1.svg
new file mode 100644
index 0000000..5c0db1b
--- /dev/null
+++ b/test/svg/svg1.2/images/animation1.svg
@@ -0,0 +1,53 @@
+<svg version="1.2" baseProfile="tiny" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="myGrad">
+ <stop offset="5%" stop-color="#F60"/>
+ <stop offset="95%" stop-color="#FF6"/>
+ </linearGradient>
+ <circle id="myCircle" r="5" fill="url(#myGrad)"/>
+ </defs>
+ <g id="anim1">
+ <g transform="translate(-15,-15)">
+ <rect width="30" height="30" fill="blue" fill-opacity="0.5">
+ <animateTransform attributeName="transform" id="rect0" type="rotate" from="0,15,15" to="90,15,15" begin="0;rect1.end" dur=".5"/>
+ </rect>
+ </g>
+ <g transform="translate(15,-15)">
+ <rect width="30" height="30" fill="red" fill-opacity="0.5">
+ <animateTransform attributeName="transform" id="rect1" type="rotate" from="0,15,15" to="-90,15,15" begin="rect0.end" dur=".5"/>
+ </rect>
+ </g>
+ </g>
+ <rect transform="translate(-15,-15)" width="30" height="30" fill="black" focusable="true" id="activeRect1">
+ <set attributeName="fill" to="red" begin="activeRect1.focusin"/>
+ <set attributeName="fill" to="inherit" begin="activeRect1.focusout"/>
+ </rect>
+ <rect transform="translate(-15,-15)" width="30" height="30" id="activeRect2">
+ <set attributeName="fill" to="red" begin="activeRect2.mouseover"/>
+ <set attributeName="fill" to="inherit" begin="activeRect2.mouseout"/>
+ </rect>
+ <circle r="15" fill="#888" focusable="true" id="activeCircle1">
+ <set attributeName="fill" to="red" begin="activeCircle1.focusin"/>
+ <set attributeName="fill" to="inherit" begin="activeCircle1.focusout"/>
+ </circle>
+ <circle r="15" fill="#888" id="activeCircle2">
+ <set attributeName="fill" to="red" begin="activeCircle2.mouseover"/>
+ <set attributeName="fill" to="inherit" begin="activeCircle2.mouseout"/>
+ </circle>
+ <g id="gradRect2" transform="translate(-15,-15)">
+ <rect width="30" height="30" fill="url(#myGrad)">
+ <animateTransform attributeName="transform" type="rotate" from="0,15,15" to="360,15,15" begin="0" dur="2" repeatCount="indefinite"/>
+ </rect>
+ </g>
+ <g transform="translate(-15,-15)" id="useRect">
+ <g>
+ <rect width="30" height="30" fill="blue"/>
+ <use x="5" y="5" xlink:href="#myCircle"/>
+ <use x="15" y="15" xlink:href="#myCircle"/>
+ <use x="25" y="25" xlink:href="#myCircle"/>
+ <use x="25" y="5" xlink:href="#myCircle"/>
+ <use x="5" y="25" xlink:href="#myCircle"/>
+ <animateTransform attributeName="transform" type="rotate" from="360,15,15" to="0,15,15" begin="0" dur="2" repeatCount="indefinite"/>
+ </g>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation2.svg b/test/svg/svg1.2/images/animation2.svg
new file mode 100644
index 0000000..f49a174
--- /dev/null
+++ b/test/svg/svg1.2/images/animation2.svg
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 10 110 20">
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <g id="myScale">
+ <line x1="5" y1="0" x2="105" y2="0" stroke="black" stroke-width="3"/>
+ <g text-anchor="middle" font-family="SVGFreeSansASCII" transform="translate(5,10)" font-size="8" fill="#555">
+ <text x="0">0</text>
+ <text x="20">2</text>
+ <text x="40">4</text>
+ <text x="60">6</text>
+ <text x="80">8</text>
+ <text x="100">10</text>
+ </g>
+ </g>
+ </defs>
+ <g id="anim2">
+ <use xlink:href="#myScale"/>
+ <rect transform="translate(-2.5,-7)" width="5" height="14" fill="blue" fill-opacity="0.4" >
+ <animate attributeName="x" from="5" to="105" dur="10" fill="freeze"/>
+ </rect>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation3none.svg b/test/svg/svg1.2/images/animation3none.svg
new file mode 100644
index 0000000..ece86eb
--- /dev/null
+++ b/test/svg/svg1.2/images/animation3none.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"
+ viewport-fill="url(#myGrad)" viewport-fill-opacity="0.3"
+ version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <linearGradient id="myGrad">
+ <stop offset="0.05" stop-color="black"/>
+ <stop offset="0.95" stop-color="yellow"/>
+ </linearGradient>
+ </defs>
+ <g>
+ <g stroke="red" stroke-opacity=".2">
+ <line x1="50" y1="0" x2="50" y2="100"/>
+ <line x1="0" y1="20" x2="100" y2="20"/>
+ </g>
+ <g text-anchor="middle" font-size="6" font-family="SVGFreeSansASCII">
+ <text x="50" y="25">This is an embedded </text>
+ <text x="50" y="35"><animation></text>
+ <text x="50" y="45">A yellow rectangle </text>
+ <text x="50" y="55">animates to cover</text>
+ <text x="50" y="65">the entire viewBox</text>
+ </g>
+ <rect x="1" y="1" width="98" height="98" fill="yellow" fill-opacity=".5" stroke="black" stroke-width="2" stroke-opacity=".2">
+ <animate attributeName="width" values="98;0;98" dur="10s" repeatCount="indefinite"/>
+ <animate attributeName="height" values="98;0;98" dur="10s" repeatCount="indefinite"/>
+ </rect>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation4none.svg b/test/svg/svg1.2/images/animation4none.svg
new file mode 100644
index 0000000..7967bd5
--- /dev/null
+++ b/test/svg/svg1.2/images/animation4none.svg
@@ -0,0 +1,25 @@
+<svg width="100" height="100" viewBox="0 0 100 100" preserveAspectRatio="xMaxYMid" viewport-fill="url(#myGrad)" viewport-fill-opacity="0.3">
+ <defs>
+ <linearGradient id="myGrad">
+ <stop offset="5%" stop-color="black"/>
+ <stop offset="95%" stop-color="yellow"/>
+ </linearGradient>
+ </defs>
+ <g>
+ <g stroke="red" stroke-opacity=".2">
+ <line x1="50" y1="-20" x2="50" y2="120"/>
+ <line x1="-20" y1="20" x2="120" y2="20"/>
+ </g>
+ <g text-anchor="middle" font-size="6">
+ <text x="50" y="25">This is an embedded </text>
+ <text x="50" y="35"><animation></text>
+ <text x="50" y="45">A yellow rectangle </text>
+ <text x="50" y="55">animates to cover</text>
+ <text x="50" y="65">the entire viewBox</text>
+ </g>
+ <rect x="1" y="1" width="98" height="98" fill="yellow" fill-opacity=".5" stroke="black" stroke-width="2" stroke-opacity=".2">
+ <animate attributeName="width" values="98;0;98" dur="10s" repeatCount="indefinite"/>
+ <animate attributeName="height" values="98;0;98" dur="10s" repeatCount="indefinite"/>
+ </rect>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animation5none.svg b/test/svg/svg1.2/images/animation5none.svg
new file mode 100644
index 0000000..9cb6ae8
--- /dev/null
+++ b/test/svg/svg1.2/images/animation5none.svg
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg viewBox="0 0 100 100" preserveAspectRatio="xMinYMin"
+ viewport-fill="url(#myGrad)" viewport-fill-opacity="0.3"
+ version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <linearGradient id="myGrad">
+ <stop offset="0.05" stop-color="black"/>
+ <stop offset="0.95" stop-color="yellow"/>
+ </linearGradient>
+ </defs>
+ <g>
+ <g stroke="red" stroke-opacity=".2">
+ <line x1="50" y1="0" x2="50" y2="100"/>
+ <line x1="0" y1="20" x2="100" y2="20"/>
+ </g>
+ <g text-anchor="middle" font-size="6" font-family="SVGFreeSansASCII">
+ <text x="50" y="25">This is an embedded </text>
+ <text x="50" y="35"><animation></text>
+ <text x="50" y="45">A yellow rectangle </text>
+ <text x="50" y="55">animates to cover</text>
+ <text x="50" y="65">the entire viewBox</text>
+ </g>
+ <rect x="1" y="1" width="98" height="98" fill="yellow" fill-opacity=".5" stroke="black" stroke-width="2" stroke-opacity=".2">
+ <animate attributeName="width" values="98;0;98" dur="10s" repeatCount="indefinite"/>
+ <animate attributeName="height" values="98;0;98" dur="10s" repeatCount="indefinite"/>
+ </rect>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animationresource-activecircle1.svg b/test/svg/svg1.2/images/animationresource-activecircle1.svg
new file mode 100644
index 0000000..8a68188
--- /dev/null
+++ b/test/svg/svg1.2/images/animationresource-activecircle1.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <linearGradient id="myGrad">
+ <stop offset="0.05" stop-color="#F60"/>
+ <stop offset="0.95" stop-color="#FF6"/>
+ </linearGradient>
+ <circle id="myCircle" r="5" fill="url(#myGrad)"/>
+ </defs>
+ <circle cx="15" cy="15" r="15" fill="#888" focusable="true" id="activeCircle1">
+ <set attributeName="fill" to="red" begin="activeCircle1.focusin"/>
+ <set attributeName="fill" to="grey" begin="activeCircle1.focusout"/>
+ </circle>
+</svg>
+
diff --git a/test/svg/svg1.2/images/animationresource-activecircle2.svg b/test/svg/svg1.2/images/animationresource-activecircle2.svg
new file mode 100644
index 0000000..c1a3759
--- /dev/null
+++ b/test/svg/svg1.2/images/animationresource-activecircle2.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <linearGradient id="myGrad">
+ <stop offset="0.05" stop-color="#F60"/>
+ <stop offset="0.95" stop-color="#FF6"/>
+ </linearGradient>
+ <circle id="myCircle" r="5" fill="url(#myGrad)"/>
+ </defs>
+ <circle cx="15" cy="15" r="15" fill="#888" id="activeCircle2">
+ <set attributeName="fill" to="red" begin="activeCircle2.mouseover"/>
+ <set attributeName="fill" to="grey" begin="activeCircle2.mouseout"/>
+ </circle>
+</svg>
+
diff --git a/test/svg/svg1.2/images/animationresource-anim1.svg b/test/svg/svg1.2/images/animationresource-anim1.svg
new file mode 100644
index 0000000..81a4a86
--- /dev/null
+++ b/test/svg/svg1.2/images/animationresource-anim1.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg">
+ <g id="anim1" transform="translate(22,22)">
+ <g transform="translate(-15,-15)">
+ <rect width="30" height="30" fill="blue" fill-opacity="0.5">
+ <animateTransform attributeName="transform" id="rect0" type="rotate" from="0,15,15" to="90,15,15" begin="0;rect1.end" dur="0.5"/>
+ </rect>
+ </g>
+ <g transform="translate(15,-15)">
+ <rect width="30" height="30" fill="red" fill-opacity="0.5">
+ <animateTransform attributeName="transform" id="rect1" type="rotate" from="0,15,15" to="-90,15,15" begin="rect0.end" dur="0.5"/>
+ </rect>
+ </g>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/animationresource-gradrect2.svg b/test/svg/svg1.2/images/animationresource-gradrect2.svg
new file mode 100644
index 0000000..09ec7fb
--- /dev/null
+++ b/test/svg/svg1.2/images/animationresource-gradrect2.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <linearGradient id="myGrad">
+ <stop offset="0.05" stop-color="#F60"/>
+ <stop offset="0.95" stop-color="#FF6"/>
+ </linearGradient>
+ </defs>
+ <g id="gradRect2" transform="translate(15,15)">
+ <rect width="30" height="30" fill="url(#myGrad)">
+ <animateTransform attributeName="transform" type="rotate" from="0,15,15" to="360,15,15" begin="0" dur="2" repeatCount="indefinite"/>
+ </rect>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/animationresource-myscale.svg b/test/svg/svg1.2/images/animationresource-myscale.svg
new file mode 100644
index 0000000..15df7e1
--- /dev/null
+++ b/test/svg/svg1.2/images/animationresource-myscale.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 10 110 20">
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="myScale">
+ <line x1="5" y1="0" x2="105" y2="0" stroke="black" stroke-width="3"/>
+ <g text-anchor="middle" font-family="SVGFreeSansASCII,sans-serif" transform="translate(5,10)" font-size="8">
+ <text x="0">0</text>
+ <text x="20">2</text>
+ <text x="40">4</text>
+ <text x="60">6</text>
+ <text x="80">8</text>
+ <text x="100">10</text>
+ </g>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/animationresource-userect.svg b/test/svg/svg1.2/images/animationresource-userect.svg
new file mode 100644
index 0000000..1697320
--- /dev/null
+++ b/test/svg/svg1.2/images/animationresource-userect.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="myGrad">
+ <stop offset="0.05" stop-color="#F60"/>
+ <stop offset="0.95" stop-color="#FF6"/>
+ </linearGradient>
+ <circle id="myCircle" r="5" fill="url(#myGrad)"/>
+ </defs>
+ <g transform="translate(15,15)" id="useRect">
+ <g>
+ <rect width="30" height="30" fill="blue"/>
+ <use x="5" y="5" xlink:href="#myCircle"/>
+ <use x="15" y="15" xlink:href="#myCircle"/>
+ <use x="25" y="25" xlink:href="#myCircle"/>
+ <use x="25" y="5" xlink:href="#myCircle"/>
+ <use x="5" y="25" xlink:href="#myCircle"/>
+ <animateTransform attributeName="transform" type="rotate" from="360,15,15" to="0,15,15" begin="0" dur="2" repeatCount="indefinite"/>
+ </g>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/ball.svg b/test/svg/svg1.2/images/ball.svg
new file mode 100644
index 0000000..700e1c4
--- /dev/null
+++ b/test/svg/svg1.2/images/ball.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.2" baseProfile="tiny"
+ width="133" height="100">
+ <defs
+ id="defs2171">
+ <radialGradient
+ cx="87"
+ cy="40"
+ r="68"
+
+ id="rg" gradientUnits="userSpaceOnUse">
+ <stop
+ stop-color="#f0f18f" stop-opacity="0.33"
+ offset="0"/>
+ <stop
+ stop-color="#800080" stop-opacity="1"
+ offset="0.6"/>
+ <stop
+ stop-color="#800006" stop-opacity="0.6"
+ offset="0.8"/>
+ <stop
+ stop-color="#800080" stop-opacity="0.1"
+ offset="1"
+ id="stop3154" />
+ </radialGradient>
+ </defs>
+ <rect width="133" height="100" fill="#CCC"/>
+ <circle cx="67" cy="50" r="48"
+ fill="url(#rg)" stroke="#999" stroke-width="2"/>
+</svg>
diff --git a/test/svg/svg1.2/images/beep.wav b/test/svg/svg1.2/images/beep.wav
new file mode 100644
index 0000000..ec68bda
Binary files /dev/null and b/test/svg/svg1.2/images/beep.wav differ
diff --git a/test/svg/svg1.2/images/bluesquidj.png b/test/svg/svg1.2/images/bluesquidj.png
new file mode 100644
index 0000000..9f5c558
Binary files /dev/null and b/test/svg/svg1.2/images/bluesquidj.png differ
diff --git a/test/svg/svg1.2/images/boing_x.wav b/test/svg/svg1.2/images/boing_x.wav
new file mode 100644
index 0000000..468b068
Binary files /dev/null and b/test/svg/svg1.2/images/boing_x.wav differ
diff --git a/test/svg/svg1.2/images/bread.png b/test/svg/svg1.2/images/bread.png
new file mode 100644
index 0000000..4f20555
Binary files /dev/null and b/test/svg/svg1.2/images/bread.png differ
diff --git a/test/svg/svg1.2/images/bullet-small.png b/test/svg/svg1.2/images/bullet-small.png
new file mode 100644
index 0000000..2f92cc6
Binary files /dev/null and b/test/svg/svg1.2/images/bullet-small.png differ
diff --git a/test/svg/svg1.2/images/bullet-white.png b/test/svg/svg1.2/images/bullet-white.png
new file mode 100644
index 0000000..d4c4abf
Binary files /dev/null and b/test/svg/svg1.2/images/bullet-white.png differ
diff --git a/test/svg/svg1.2/images/bullet.png b/test/svg/svg1.2/images/bullet.png
new file mode 100644
index 0000000..e1495d9
Binary files /dev/null and b/test/svg/svg1.2/images/bullet.png differ
diff --git a/test/svg/svg1.2/images/bumpMap.png b/test/svg/svg1.2/images/bumpMap.png
new file mode 100644
index 0000000..1ac02a8
Binary files /dev/null and b/test/svg/svg1.2/images/bumpMap.png differ
diff --git a/test/svg/svg1.2/images/bumpMap2.png b/test/svg/svg1.2/images/bumpMap2.png
new file mode 100644
index 0000000..1609323
Binary files /dev/null and b/test/svg/svg1.2/images/bumpMap2.png differ
diff --git a/test/svg/svg1.2/images/clock.mp4 b/test/svg/svg1.2/images/clock.mp4
new file mode 100644
index 0000000..3ebff6b
Binary files /dev/null and b/test/svg/svg1.2/images/clock.mp4 differ
diff --git a/test/svg/svg1.2/images/cloud-ps411q4app.jpg b/test/svg/svg1.2/images/cloud-ps411q4app.jpg
new file mode 100644
index 0000000..13389f2
Binary files /dev/null and b/test/svg/svg1.2/images/cloud-ps411q4app.jpg differ
diff --git a/test/svg/svg1.2/images/cloud411q25s.jpg b/test/svg/svg1.2/images/cloud411q25s.jpg
new file mode 100644
index 0000000..0cb5052
Binary files /dev/null and b/test/svg/svg1.2/images/cloud411q25s.jpg differ
diff --git a/test/svg/svg1.2/images/cloud411q65float.jpg b/test/svg/svg1.2/images/cloud411q65float.jpg
new file mode 100644
index 0000000..1328ee8
Binary files /dev/null and b/test/svg/svg1.2/images/cloud411q65float.jpg differ
diff --git a/test/svg/svg1.2/images/cloud411q75o.jpg b/test/svg/svg1.2/images/cloud411q75o.jpg
new file mode 100644
index 0000000..a37bdb1
Binary files /dev/null and b/test/svg/svg1.2/images/cloud411q75o.jpg differ
diff --git a/test/svg/svg1.2/images/cloud411q75p.jpg b/test/svg/svg1.2/images/cloud411q75p.jpg
new file mode 100644
index 0000000..ad3f59e
Binary files /dev/null and b/test/svg/svg1.2/images/cloud411q75p.jpg differ
diff --git a/test/svg/svg1.2/images/cloud411q75s.jpg b/test/svg/svg1.2/images/cloud411q75s.jpg
new file mode 100644
index 0000000..6e42503
Binary files /dev/null and b/test/svg/svg1.2/images/cloud411q75s.jpg differ
diff --git a/test/svg/svg1.2/images/cloud444q65o.jpg b/test/svg/svg1.2/images/cloud444q65o.jpg
new file mode 100644
index 0000000..0fe8889
Binary files /dev/null and b/test/svg/svg1.2/images/cloud444q65o.jpg differ
diff --git a/test/svg/svg1.2/images/cloudgsq75s.jpg b/test/svg/svg1.2/images/cloudgsq75s.jpg
new file mode 100644
index 0000000..b01af94
Binary files /dev/null and b/test/svg/svg1.2/images/cloudgsq75s.jpg differ
diff --git a/test/svg/svg1.2/images/cloudoddq65o.jpg b/test/svg/svg1.2/images/cloudoddq65o.jpg
new file mode 100644
index 0000000..f7051ce
Binary files /dev/null and b/test/svg/svg1.2/images/cloudoddq65o.jpg differ
diff --git a/test/svg/svg1.2/images/cloudqllo.jpg b/test/svg/svg1.2/images/cloudqllo.jpg
new file mode 100644
index 0000000..0e8517a
Binary files /dev/null and b/test/svg/svg1.2/images/cloudqllo.jpg differ
diff --git a/test/svg/svg1.2/images/colorprof.png b/test/svg/svg1.2/images/colorprof.png
new file mode 100644
index 0000000..c03ab9c
Binary files /dev/null and b/test/svg/svg1.2/images/colorprof.png differ
diff --git a/test/svg/svg1.2/images/convolveImage.png b/test/svg/svg1.2/images/convolveImage.png
new file mode 100644
index 0000000..f8fb852
Binary files /dev/null and b/test/svg/svg1.2/images/convolveImage.png differ
diff --git a/test/svg/svg1.2/images/coords-pAR-t-xMaxYMax.svg b/test/svg/svg1.2/images/coords-pAR-t-xMaxYMax.svg
new file mode 100644
index 0000000..0b817ff
--- /dev/null
+++ b/test/svg/svg1.2/images/coords-pAR-t-xMaxYMax.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="30" height="40" viewBox="0 0 30 40" preserveAspectRatio="xMaxYMax">
+
+ <!-- Title and Description. -->
+ <title xml:id="test-title">$RCSfile: coords-pAR-t-xMaxYMax.svg,v $</title>
+ <desc>
+ Basic svg file used for external svg reference tests.
+ </desc>
+
+ <g xml:id="test-body-content">
+ <rect x='.5' y='.5' width='29' height='39' fill='black' stroke='red' />
+ <g transform='translate(0, 5)'>
+ <circle cx='15' cy='15' r='10' fill='yellow' />
+ <circle cx='12' cy='12' r='1.5' fill='black' />
+ <circle cx='17' cy='12' r='1.5' fill='black' />
+ <path d='M 10 19 L 15 23 20 19' stroke='black' stroke-width='2' />
+ </g>">
+ </g>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/coords-pAR-t-xMidYMid.svg b/test/svg/svg1.2/images/coords-pAR-t-xMidYMid.svg
new file mode 100644
index 0000000..052aaa5
--- /dev/null
+++ b/test/svg/svg1.2/images/coords-pAR-t-xMidYMid.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="30" height="40" viewBox="0 0 30 40" preserveAspectRatio="xMidYMid">
+
+ <!-- Title and Description. -->
+ <title xml:id="test-title">$RCSfile: coords-pAR-t-xMidYMid.svg,v $</title>
+ <desc>
+ Basic svg file used for external svg reference tests.
+ </desc>
+
+ <g xml:id="test-body-content">
+ <rect x='.5' y='.5' width='29' height='39' fill='black' stroke='red' />
+ <g transform='translate(0, 5)'>
+ <circle cx='15' cy='15' r='10' fill='yellow' />
+ <circle cx='12' cy='12' r='1.5' fill='black' />
+ <circle cx='17' cy='12' r='1.5' fill='black' />
+ <path d='M 10 19 L 15 23 20 19' stroke='black' stroke-width='2' />
+ </g>">
+ </g>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/coords-pAR-t-xMinYMin.svg b/test/svg/svg1.2/images/coords-pAR-t-xMinYMin.svg
new file mode 100644
index 0000000..1771e29
--- /dev/null
+++ b/test/svg/svg1.2/images/coords-pAR-t-xMinYMin.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="30" height="40" viewBox="0 0 30 40" preserveAspectRatio="xMinYMin">
+
+ <!-- Title and Description. -->
+ <title xml:id="test-title">$RCSfile: coords-pAR-t-xMinYMin.svg,v $</title>
+ <desc>
+ Basic svg file used for external svg reference tests.
+ </desc>
+
+ <g xml:id="test-body-content">
+ <rect x='.5' y='.5' width='29' height='39' fill='black' stroke='red' />
+ <g transform='translate(0, 5)'>
+ <circle cx='15' cy='15' r='10' fill='yellow' />
+ <circle cx='12' cy='12' r='1.5' fill='black' />
+ <circle cx='17' cy='12' r='1.5' fill='black' />
+ <path d='M 10 19 L 15 23 20 19' stroke='black' stroke-width='2' />
+ </g>">
+ </g>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/coords-units-01-f.png b/test/svg/svg1.2/images/coords-units-01-f.png
new file mode 100644
index 0000000..4a075c7
Binary files /dev/null and b/test/svg/svg1.2/images/coords-units-01-f.png differ
diff --git a/test/svg/svg1.2/images/coords-units-01-f.svg b/test/svg/svg1.2/images/coords-units-01-f.svg
new file mode 100644
index 0000000..6ac478e
--- /dev/null
+++ b/test/svg/svg1.2/images/coords-units-01-f.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!--======================================================================-->
+<!--= Copyright 2002 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- coords-units-01-f.svg -->
+<!-- 1.1 revision by Christophe Jolif -->
+<!-- -->
+<!-- Validate the processing rules for converting coordinates and -->
+<!-- lengths defined in fractions of the current object's bounding box -->
+<!-- to user space coordinates and length. -->
+<!-- -->
+<!-- Author : Vincent Hardy, 29-Feb-2000 -->
+<!-- -->
+<!-- History: -->
+<!-- 29-Feb-2000, VH: Created. Matches 20000302 SVG spec. -->
+<!-- 09-Mar-2000, LH: suite integration (name, editorial, ..), ser#2 -->
+<!-- 09-Mar-2000, LH: fix framing rect, ser#3. -->
+<!-- 24-Apr-2000, LH: remove text-anchor, ser#4. -->
+<!-- 02-Jun-2000, LH: fix fx,fy on radial grads" stroke lines; ser#5. -->
+<!-- 04-Jun-2000, LH: mark "NA" (in -patch) on PNG, for patterns" ser#6 -->
+<!-- 03-Aug-2000, LH: update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 16-Aug-2000, LH: rename ser#7. -->
+<!-- 29-Sep-2000, VH: fixed pattern reference problems" ser#8. -->
+<!-- 07-Dec-2000, JF: update to Nov. 2 spec, fix other errors. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+Verify the conversion processing of percentage and fraction values relative to
+object bounding boxes. This is used when defining linear and radial gradients
+as well as patterns.
+ </Paragraph>
+ <Paragraph>
+The test validates conversion for coordinates, width, height and length. The first
+test defines three corresponding linear gradients, which specify coordinates
+using percentages for one, fractions for the second and user coordinates for the
+third. The second test defines three corresponding radial gradients, which specify
+a length (radius) using percentages for the first, fractions for the second and
+user space for the third. Finally, the third test defines three corresponding patterns,
+which specify their width and height using percentages for the first, fractions for the
+second and user space coordinates for the last one.
+ </Paragraph>
+ <Paragraph>
+The rendered image should match the reference image. Also, the text may
+show minor differences, per CSS2 rules for font selection and matching.
+ </Paragraph>
+ <Paragraph>
+The test also assumes that linear and radial gradients,
+as well as patterns are implemented.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">coords-units-01-f</title>
+ <desc id="test-desc">This test validates the processing rules for converting coordinates and length defined in fractions of the current object's bounding box to user space coordinates and length. Note that this test assumes that linear and radial gradients, as well as patterns are implemented.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!-- ==================================================================== -->
+ <!-- The following gradients will be used to fill a rectangle with the -->
+ <!-- following geometry in User space: x=0, y=0, width=50 height=20 -->
+ <!-- The gradient vector, in linearBoundingBox, is defined as: (0%, 0%) -->
+ <!-- to (100%, 0%). -->
+ <!-- The gradient vector, in linearBoundingBoxFraction, is defined as: -->
+ <!-- (0, 0) to (1, 0), which is equivalent. -->
+ <!-- According to the spec, for our rectangle, this corresponds to the -->
+ <!-- following user space coordinates: -->
+ <!-- (0%, 0%) becomes (0, 0) and (100%, 0%) becomes (20, 0) -->
+ <!-- These values are used to define the linearUserSpace gradient. -->
+ <!-- If the test succeeds, all the gradient should fill the rectangles -->
+ <!-- the same way -->
+ <!-- ==================================================================== -->
+ <linearGradient id="linearBoundingBoxPercentage" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%">
+ <stop stop-color="red" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearBoundingBoxFraction" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="red" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearUserSpace" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="50" y2="0">
+ <stop stop-color="red" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <!-- Draw Text Comment -->
+ <text x="30" y="30">Bounding box relative coordinates (percentage and fraction)</text>
+ <g transform="translate(30, 40)">
+ <rect x="0" y="0" width="50" height="20" fill="url(#linearBoundingBoxPercentage)"/>
+ <rect x="0" y="0" width="50" height="20" transform="translate(0, 20)" fill="url(#linearBoundingBoxFraction)"/>
+ <rect x="0" y="0" width="50" height="20" transform="translate(0, 40)" fill="url(#linearUserSpace)"/>
+ <line x1="0" y1="20" x2="50" y2="20" stroke="#cccccc" stroke-width="1"/>
+ <line x1="0" y1="40" x2="50" y2="40" stroke="#cccccc" stroke-width="1"/>
+ <text x="60" y="15">Percentage</text>
+ <text x="60" y="35">Fraction</text>
+ <text x="60" y="55">User Space</text>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- The following gradients will be used to fill a rectangle with the -->
+ <!-- following geometry in User space: x=0, y=0, width=60 height=60 -->
+ <!-- The radial gradient outmost circle, in radialBoundingBox, is defined -->
+ <!-- as: cx=25% cy=25% r=25% -->
+ <!-- The radial gradient outmost circle, in radialBoundingBoxFraction, is -->
+ <!-- defined as: cx=0.25 cy=0.25 and r=0.25 -->
+ <!-- These two definition, for our rectangle, should be identical to the -->
+ <!-- following radial gradient outmost circle, in radialUserSpace: -->
+ <!-- cx=15 cy=15 r=15 -->
+ <!-- ==================================================================== -->
+ <radialGradient id="radialBoundingBoxPercentage" gradientUnits="objectBoundingBox" cx="25%" cy="25%" r="25%" fx="25%" fy="25%">
+ <stop stop-color="red" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </radialGradient>
+ <radialGradient id="radialBoundingBoxFraction" gradientUnits="objectBoundingBox" cx="0.25" cy="0.25" r="0.25" fx="0.25" fy="0.25">
+ <stop stop-color="red" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </radialGradient>
+ <radialGradient id="radialUserSpace" gradientUnits="userSpaceOnUse" cx="15" cy="15" r="15" fx="15" fy="15">
+ <stop stop-color="red" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </radialGradient>
+ <!-- Draw Text Comment -->
+ <text x="30" y="130">Bounding box relative length (percentage and fraction)</text>
+ <g transform="translate(30, 140)">
+ <rect x="0" y="0" width="60" height="60" fill="url(#radialBoundingBoxPercentage)"/>
+ <rect x="0" y="0" width="60" height="60" transform="translate(61, 0)" fill="url(#radialBoundingBoxFraction)"/>
+ <rect x="0" y="0" width="60" height="60" transform="translate(122, 0)" fill="url(#radialUserSpace)"/>
+ <text x="0" y="70">Percent.</text>
+ <text x="61" y="70">Fraction</text>
+ <text x="122" y="70">User Space</text>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- The following patterns will be used to fill a rectangle, with the -->
+ <!-- following geometry in User space: x=0, y=0, width=50 height=30 -->
+ <!-- The pattern tile, in patterBoundingBoxPercentage, is defined as: -->
+ <!-- x=25% y=25% width=50% height=50% -->
+ <!-- The pattern tile, in patternBoundingBoxFraction, is defined as: -->
+ <!-- x=0.25 y=0.25 width=0.50 height=0.50 -->
+ <!-- For our test rectangle, both correspond to the following User space -->
+ <!-- coordinates: x=12.5 y=7.5 width=25 height=15 -->
+ <!-- These coordinates are use to define the patternUserSpace tile -->
+ <!-- ==================================================================== -->
+ <pattern id="patternBoundingBoxPercentage" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox" x="25%" y="25%" width="50%" height="50%">
+ <circle cx="0.50" cy="0.50" r="0.25" fill="red"/>
+ <rect x="0.4" y="0.4" width=".2" height=".2" fill="blue"/>
+ </pattern>
+ <pattern id="patternBoundingBoxFraction" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox" x="0.25" y="0.25" width="0.50" height="0.50">
+ <circle cx="0.50" cy="0.50" r="0.25" fill="red"/>
+ <rect x="0.4" y="0.4" width=".2" height=".2" fill="blue"/>
+ </pattern>
+ <pattern id="patternUserSpace" patternUnits="userSpaceOnUse" patternContentUnits="userSpaceOnUse" x="12.5" y="7.5" width="25" height="15">
+ <circle id="patternContent" cx="25" cy="15" r="10" fill="red"/>
+ <rect x="20" y="12" width="10" height="6" fill="blue"/>
+ </pattern>
+ <!-- Draw Text Comment -->
+ <text x="30" y="240">Bounding box relative width/height (percentage and fraction)</text>
+ <g transform="translate(30, 250)">
+ <rect x="0" y="0" width="50" height="30" fill="url(#patternBoundingBoxPercentage)" stroke="black"/>
+ <rect x="0" y="0" width="50" height="30" transform="translate(150, 0)" fill="url(#patternBoundingBoxFraction)" stroke="black"/>
+ <rect x="0" y="0" width="50" height="30" transform="translate(300, 0)" fill="url(#patternUserSpace)" stroke="black"/>
+ <text x="60" y="20">Percentage</text>
+ <text x="210" y="20">Fraction</text>
+ <text x="360" y="20">User Space</text>
+ </g>
+ <!-- Test framing rectangle, drawn just inside viewport boundary. -->
+ <rect x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue">Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">coords-units-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/copyright-documents-19990405.html b/test/svg/svg1.2/images/copyright-documents-19990405.html
new file mode 100644
index 0000000..50fc9dd
--- /dev/null
+++ b/test/svg/svg1.2/images/copyright-documents-19990405.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html">
+<title>DOCUMENT NOTICE</title>
+<link rel="stylesheet" type="text/css" href="/StyleSheets/base.css">
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+
+<h1>W3C<sup>®</sup> DOCUMENT NOTICE AND LICENSE</h1>
+
+<h3>Copyright © 1994-2000 <a href="http://www.w3.org/">World Wide Web Consortium</a>, (<a
+href="http://www.lcs.mit.edu/">Massachusetts Institute of Technology</a>, <a
+href="http://www.inria.fr/">Institut National de Recherche en Informatique et en
+Automatique</a>, <a href="http://www.keio.ac.jp/">Keio University</a>). All Rights
+Reserved.<br>
+http://www.w3.org/Consortium/Legal/</h3>
+
+<p>Public documents on the W3C site are provided by the copyright holders under the
+following license. The software or Document Type Definitions (DTDs) associated with W3C
+specifications are governed by the <a
+href="http://www.w3.org/Consortium/Legal/copyright-software.html">Software Notice</a>. By
+using and/or copying this document, or the W3C document from which this statement is
+linked, you (the licensee) agree that you have read, understood, and will comply with the
+following terms and conditions:</p>
+
+<p>Permission to use, copy, and distribute the contents of this document, or the W3C
+document from which this statement is linked, in any medium for any purpose and without
+fee or royalty is hereby granted, provided that you include the following on <i>ALL</i>
+copies of the document, or portions thereof, that you use:
+
+<ol>
+ <li>A link or URL to the original W3C document.</li>
+ <li>The pre-existing copyright notice of the original author, or if it doesn't exist, a
+ notice of the form: "Copyright © [$date-of-document] <a href="http://www.w3.org/">World
+ Wide Web Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts Institute of
+ Technology</a>, <a href="http://www.inria.fr/">Institut National de Recherche en
+ Informatique et en Automatique</a>, <a href="http://www.keio.ac.jp/">Keio University</a>).
+ All Rights Reserved. http://www.w3.org/Consortium/Legal/" (Hypertext is preferred,
+ but a textual representation is permitted.)</li>
+ <li><em>If it exists</em>, the STATUS of the W3C document.</li>
+</ol>
+
+<p>When space permits, inclusion of the full text of this <b>NOTICE </b>should be
+provided. We request that authorship attribution be provided in any software, documents,
+or other items or products that you create pursuant to the implementation of the contents
+of this document, or any portion thereof.</p>
+
+<p>No right to create modifications or derivatives of W3C documents is granted pursuant to
+this license. However, if additional requirements (documented in the <a
+href="IPR-FAQ.html">Copyright FAQ</a>) are satisfied, the right to create modifications or
+derivatives is sometimes granted by the W3C to individuals complying with those
+requirements.</p>
+
+<p>THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
+REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR
+TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
+IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+TRADEMARKS OR OTHER RIGHTS.</p>
+
+<p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL
+DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE
+CONTENTS THEREOF.</p>
+
+<p>The name and trademarks of copyright holders may NOT be used in advertising or
+publicity pertaining to this document or its contents without specific, written prior
+permission. Title to copyright in this document will at all times remain with copyright
+holders.</p>
+
+<p>----------------------------------------------------------------------------</p>
+
+<p>This formulation of W3C's notice and license became active on April 05 1999 so as to
+account for the treatment of DTDs, schema's and bindings. See the <a
+href="copyright-documents-19990218.html">older formulation</a> for the policy prior to
+this date. Please see our <a href="IPR-FAQ.html">Copyright FAQ</a> for common questions
+about using materials from our site, including specific terms and conditions for packages
+like libwww, Amaya, and Jigsaw. Other questions about this notice can be directed to <a
+href="mailto:site-policy w3 org">site-policy w3 org</a>.</p>
+
+<address>
+ <a href="http://w3.org/Help/Webmaster.html">webmaster</a><br>
+ (last updated by reagle on 1999/04/99.)
+</address>
+</body>
+</html>
diff --git a/test/svg/svg1.2/images/diagarrow.png b/test/svg/svg1.2/images/diagarrow.png
new file mode 100644
index 0000000..4cd284e
Binary files /dev/null and b/test/svg/svg1.2/images/diagarrow.png differ
diff --git a/test/svg/svg1.2/images/disco.jpg b/test/svg/svg1.2/images/disco.jpg
new file mode 100644
index 0000000..74e14be
Binary files /dev/null and b/test/svg/svg1.2/images/disco.jpg differ
diff --git a/test/svg/svg1.2/images/dogandball.3gp b/test/svg/svg1.2/images/dogandball.3gp
new file mode 100644
index 0000000..bc67079
Binary files /dev/null and b/test/svg/svg1.2/images/dogandball.3gp differ
diff --git a/test/svg/svg1.2/images/dogandball.jpg b/test/svg/svg1.2/images/dogandball.jpg
new file mode 100644
index 0000000..67d5205
Binary files /dev/null and b/test/svg/svg1.2/images/dogandball.jpg differ
diff --git a/test/svg/svg1.2/images/dogandball.mov b/test/svg/svg1.2/images/dogandball.mov
new file mode 100644
index 0000000..86ec6af
Binary files /dev/null and b/test/svg/svg1.2/images/dogandball.mov differ
diff --git a/test/svg/svg1.2/images/duckfeeding.3gp b/test/svg/svg1.2/images/duckfeeding.3gp
new file mode 100644
index 0000000..6542154
Binary files /dev/null and b/test/svg/svg1.2/images/duckfeeding.3gp differ
diff --git a/test/svg/svg1.2/images/duckfeeding.mov b/test/svg/svg1.2/images/duckfeeding.mov
new file mode 100644
index 0000000..77c7344
Binary files /dev/null and b/test/svg/svg1.2/images/duckfeeding.mov differ
diff --git a/test/svg/svg1.2/images/excuse_me.wav b/test/svg/svg1.2/images/excuse_me.wav
new file mode 100644
index 0000000..1ce8d49
Binary files /dev/null and b/test/svg/svg1.2/images/excuse_me.wav differ
diff --git a/test/svg/svg1.2/images/ext-TestComic.svg b/test/svg/svg1.2/images/ext-TestComic.svg
new file mode 100644
index 0000000..19ad7bc
--- /dev/null
+++ b/test/svg/svg1.2/images/ext-TestComic.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <font horiz-adv-x="959" id="Font">
+ <font-face font-family="TestComic" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ã?" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+ </defs>
+</svg>
diff --git a/test/svg/svg1.2/images/externalscript.js b/test/svg/svg1.2/images/externalscript.js
new file mode 100644
index 0000000..cc0392c
--- /dev/null
+++ b/test/svg/svg1.2/images/externalscript.js
@@ -0,0 +1 @@
+document.getElementById("status").setAttribute("fill", "green");
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/fail.svg b/test/svg/svg1.2/images/fail.svg
new file mode 100644
index 0000000..dd3c39b
--- /dev/null
+++ b/test/svg/svg1.2/images/fail.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2007 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <!--
+ This document is used by some tests in a way such that if the viewer
+ navigates to this document, the test has failed.
+ -->
+ <title xml:id="test-title">Document indicating test failure</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='80' fill='red' font-size='64'>FAIL</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+</svg>
diff --git a/test/svg/svg1.2/images/filters-blend-01-f.svg b/test/svg/svg1.2/images/filters-blend-01-f.svg
new file mode 100644
index 0000000..181b211
--- /dev/null
+++ b/test/svg/svg1.2/images/filters-blend-01-f.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- filters-blend-BE-02.svg -->
+<!-- renamed to filters-blend-01-f.svg -->
+<!-- -->
+<!-- Verify correct operation of the five compositing modes of the -->
+<!-- feBlend filter primitive. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo, 15 March 2000 -->
+<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
+<!-- -->
+<!-- History: -->
+<!-- 15-Mar-2000, JF: Serial#1 created. Matches 20000303 SVG spec. -->
+<!-- 16-Mar-2000, LH="editorials" fix name (-02); fix Legend, ser#2. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 16-Aug-2000, LH="rename" ser#3. -->
+<!-- -->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Verify correct operation of the five compositing modes
+ of the feBlend filter primitive. Five text strings
+ blended into a gradient, with one text string for each of
+ the five feBlend modes. The string indicates the blend
+ mode.
+ </Paragraph>
+ <Paragraph>
+ The rendered picture should match the reference image
+ exactly, except for possible variations in the
+ labelling text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+ The test uses a nested 'svg' element, 'text' element,
+ the 'enable-background' property, and linear gradients.as
+ well as basic fill (solid primary colors), stroke (solid
+ primary colors with stroke-width lines), font-family
+ (Helvetica) and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">filters-blend-01-f</title>
+ <desc id="test-desc">Overall filter effects test case. Extracted from example filters00 in the March 3, 2000 spec.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!-- Sample Content: framing rectangle drawn just inside viewport boundary. -->
+ <g font-size="12" font-family="Verdana" >
+ <text x="20" y="30" font-weight="bold">Examples of the five</text>
+ <text x="20" y="45" font-weight="bold">feBlend modes.</text>
+ <text x="30" y="75">Five text strings blended</text>
+ <text x="30" y="90">into a gradient, with one</text>
+ <text x="30" y="105">text string for each of the</text>
+ <text x="30" y="120">five feBlend modes. The </text>
+ <text x="30" y="135">string indicates the blend</text>
+ <text x="30" y="150">mode.</text>
+ </g>
+ <!-- Here is the test case -->
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="200" y="20" width="260" height="260" viewBox="0 0 500 500">
+ <title>Example feBlend - Examples of feBlend modes</title>
+ <desc>Five text strings blended into a gradient, with one text string for each of the five feBlend modes.</desc>
+ <defs>
+ <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" x1="100" y1="0" x2="300" y2="0">
+ <stop offset="0" stop-color="#000000" />
+ <stop offset=".33" stop-color="#ffffff" />
+ <stop offset=".67" stop-color="#ff0000" />
+ <stop offset="1" stop-color="#808080" />
+ </linearGradient>
+ <filter id="Normal">
+ <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/>
+ </filter>
+ <filter id="Multiply">
+ <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/>
+ </filter>
+ <filter id="Screen">
+ <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/>
+ </filter>
+ <filter id="Darken">
+ <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/>
+ </filter>
+ <filter id="Lighten">
+ <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/>
+ </filter>
+ </defs>
+ <rect fill="none" stroke="blue" x="1" y="1" width="498" height="498"/>
+ <g enable-background="new" >
+ <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" />
+ <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" >
+ <text x="50" y="90" filter="url(#Normal)" >Normal</text>
+ <text x="50" y="180" filter="url(#Multiply)" >Multiply</text>
+ <text x="50" y="270" filter="url(#Screen)" >Screen</text>
+ <text x="50" y="360" filter="url(#Darken)" >Darken</text>
+ <text x="50" y="450" filter="url(#Lighten)" >Lighten</text>
+ </g>
+ </g>
+ </svg>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">filters-blend-01</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/filters-color-01-f.svg b/test/svg/svg1.2/images/filters-color-01-f.svg
new file mode 100644
index 0000000..3f7e90d
--- /dev/null
+++ b/test/svg/svg1.2/images/filters-color-01-f.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- filters-colorMtrx-BE-03.svg -->
+<!-- renamed for 1.1 suite to filters-color-01-f.svg -->
+<!-- -->
+<!-- Test which verifies the basic facilities of feColorMatrix. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 03-Apr-2000 -->
+<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
+<!-- -->
+<!-- History: -->
+<!-- 04-Apr-2000, JF: Serial#1 created. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 16-Aug-2000, LH="rename" ser#2. -->
+<!-- 10-Dec-2000, JF: Make reference gradient darker to compensate -->
+<!-- for lightnexx of linearRGB filter calculations. -->
+<!-- Adjust saturation to make it more obvious. -->
+<!-- -->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test which verifies the basic facilities of
+ feColorMatrix.
+ </Paragraph>
+ <Paragraph>
+ This test uses the following elements : a nested
+ <svg> with a viewBox attribute, <linearGradient>,
+ <filter>, <feColorMatrix>, <feComposite>
+ </Paragraph>
+ <Paragraph>
+ The test case shows five rectangles filled with a
+ gradient showing the effects of feColorMatrix: an
+ unfiltered rectangle acting as a reference, use of the
+ feColorMatrix matrix option to convert to grayscale,
+ use of the feColorMatrix saturate option, use of the
+ feColorMatrix hueRotate option, and use of the
+ feColorMatrix luminanceToAlpha option.
+ </Paragraph>
+ <Paragraph>
+ The test is somewhat self-explanatory as the strings
+ document the type of feColorMatrix operation that is
+ being used.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">filters-color-01-f</title>
+ <desc id="test-desc">Test which verifies the basic facilities of feColorMatrix.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="40" y="25" width="400" height="252" viewBox="0 0 800 500">
+ <title>Example feColorMatrix - Examples of feColorMatrix operations</title>
+ <desc>Five rectangles filled with a gradient showing the effects of feColorMatrix: an unfiltered rectangle acting as a reference, use of the feColorMatrix matrix option to convert to grayscale, use of the feColorMatrix saturate option, use of the feColorMatrix hueRotate option, and use of the feColorMatrix luminanceToAlpha option.</desc>
+ <defs>
+ <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" x1="100" y1="0" x2="500" y2="0">
+ <stop offset="0" stop-color="#dd00dd" />
+ <stop offset=".33" stop-color="#22cc22" />
+ <stop offset=".67" stop-color="#400000" />
+ <stop offset="1" stop-color="#a0a0ff" />
+ </linearGradient>
+ <filter id="Matrix" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feColorMatrix type="matrix" in="SourceGraphic" values=".33 .33 .33 0 0 .33 .33 .33 0 0 .33 .33 .33 0 0 .33 .33 .33 0 0"/>
+ </filter>
+ <filter id="Saturate40" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feColorMatrix type="saturate" in="SourceGraphic" values=".25"/>
+ </filter>
+ <filter id="HueRotate90" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/>
+ </filter>
+ <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/>
+ <feComposite in="SourceGraphic" in2="a" operator="in"/>
+ </filter>
+ </defs>
+ <g font-size="25" font-family="Verdana" >
+ <rect fill="none" stroke="blue" x="1" y="1" width="798" height="498"/>
+ <rect x="100" y="20" width="500" height="40" fill="url(#MyGradient)" />
+ <text x="100" y="85">Unfiltered</text>
+ <rect x="100" y="120" width="500" height="40" fill="url(#MyGradient)" filter="url(#Matrix)" />
+ <text x="100" y="185">type="matrix" (grayscale matrix)</text>
+ <rect x="100" y="220" width="500" height="40" fill="url(#MyGradient)" filter="url(#Saturate40)" />
+ <text x="100" y="285">type="saturate" values=".4"</text>
+ <rect x="100" y="320" width="500" height="40" fill="url(#MyGradient)" filter="url(#HueRotate90)" />
+ <text x="100" y="385">type="hueRotate" values="90"</text>
+ <rect x="100" y="420" width="500" height="40" fill="url(#MyGradient)" filter="url(#LuminanceToAlpha)" />
+ <text x="100" y="485">type="luminanceToAlpha"</text>
+ </g>
+ </svg>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">filters-color-01</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/filters-composite-01-f.svg b/test/svg/svg1.2/images/filters-composite-01-f.svg
new file mode 100644
index 0000000..962b6ce
--- /dev/null
+++ b/test/svg/svg1.2/images/filters-composite-01-f.svg
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- filters-composite-BE-05.svg -->
+<!-- renamed for 1.1 suite to filters-composite-01-f.svg -->
+<!-- -->
+<!-- Test which verifies the basic facilities of feComposite. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 03-Apr-2000 -->
+<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
+<!-- -->
+<!-- History: -->
+<!-- 04-Apr-2000, JF: Serial#1 created. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 16-Aug-2000, LH="rename" ser#2. -->
+<!-- -->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test which verifies the basic facilities of feComposite.
+ </Paragraph>
+ <Paragraph>
+ This test uses the following elements: <path>, <use>,
+ <linearGradient>, <filter> with, an enable-background
+ attribute, <feFlood>, <feComposite>, <feMerge>
+ </Paragraph>
+ <Paragraph>
+ The test case shows six pairs of overlapping triangles
+ depicting the six different feComposite operators. The
+ first row shows compositing when both triangles have
+ opacity=1. The second row shows compositing when both
+ triangles have opacity=.5. The six columns illustrate the
+ six types of compositing operations.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">filters-composite-01-f</title>
+ <desc id="test-desc">Test which verifies the basic facilities of feComposite.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content" transform="translate(15 -60)">
+ <title>Example feComposite - Examples of feComposite operations</title>
+ <desc>Six pairs of overlapping triangles depicting the six different feComposite operators.</desc>
+ <defs>
+ <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" />
+ <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" />
+ <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" />
+ <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" />
+ <filter id="over" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
+ <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="comp"/>
+ </feMerge>
+ </filter>
+ <filter id="in" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
+ <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="comp"/>
+ </feMerge>
+ </filter>
+ <filter id="out" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
+ <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="comp"/>
+ </feMerge>
+ </filter>
+ <filter id="atop" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
+ <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="comp"/>
+ </feMerge>
+ </filter>
+ <filter id="xor" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
+ <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="comp"/>
+ </feMerge>
+ </filter>
+ <filter id="arithmetic" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
+ <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="comp"/>
+ </feMerge>
+ </filter>
+ </defs>
+ <g font-family="Verdana" font-size="40" shape-rendering="crispEdges" transform="translate(5,150) scale(.4)">
+ <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="323"/>
+ <text x="15" y="75">opacity 1.0</text>
+ <text x="15" y="200">opacity 0.5</text>
+ <g transform="translate(275,25)" enable-background="new" >
+ <use xlink:href="#Blue100"/>
+ <use xlink:href="#Red100" filter="url(#over)" />
+ </g>
+ <g transform="translate(275,25)" enable-background="new" >
+ <use xlink:href="#Blue50"/>
+ <use xlink:href="#Red50" filter="url(#over)" />
+ <text x="5" y="275">over</text>
+ </g>
+ <g transform="translate(400,25)" enable-background="new" >
+ <use xlink:href="#Blue100"/>
+ <use xlink:href="#Red100" filter="url(#in)" />
+ </g>
+ <g transform="translate(400,25)" enable-background="new" >
+ <use xlink:href="#Blue50"/>
+ <use xlink:href="#Red50" filter="url(#in)" />
+ <text x="35" y="275">in</text>
+ </g>
+ <g transform="translate(525,25)" enable-background="new" >
+ <use xlink:href="#Blue100"/>
+ <use xlink:href="#Red100" filter="url(#out)" />
+ </g>
+ <g transform="translate(525,25)" enable-background="new" >
+ <use xlink:href="#Blue50"/>
+ <use xlink:href="#Red50" filter="url(#out)" />
+ <text x="15" y="275">out</text>
+ </g>
+ <g transform="translate(650,25)" enable-background="new" >
+ <use xlink:href="#Blue100"/>
+ <use xlink:href="#Red100" filter="url(#atop)" />
+ </g>
+ <g transform="translate(650,25)" enable-background="new" >
+ <use xlink:href="#Blue50"/>
+ <use xlink:href="#Red50" filter="url(#atop)" />
+ <text x="10" y="275">atop</text>
+ </g>
+ <g transform="translate(775,25)" enable-background="new" >
+ <use xlink:href="#Blue100"/>
+ <use xlink:href="#Red100" filter="url(#xor)" />
+ </g>
+ <g transform="translate(775,25)" enable-background="new" >
+ <use xlink:href="#Blue50"/>
+ <use xlink:href="#Red50" filter="url(#xor)" />
+ <text x="15" y="275">xor</text>
+ </g>
+ <g transform="translate(900,25)" enable-background="new" >
+ <use xlink:href="#Blue100"/>
+ <use xlink:href="#Red100" filter="url(#arithmetic)" />
+ </g>
+ <g transform="translate(900,25)" enable-background="new" >
+ <use xlink:href="#Blue50"/>
+ <use xlink:href="#Red50" filter="url(#arithmetic)" />
+ <text x="-25" y="275">arithmetic</text>
+ </g>
+ </g>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">filters-composite-01</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/filters-comptran-01-f.svg b/test/svg/svg1.2/images/filters-comptran-01-f.svg
new file mode 100644
index 0000000..dc00875
--- /dev/null
+++ b/test/svg/svg1.2/images/filters-comptran-01-f.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- filters-transfer-BE-04.svg -->
+<!-- renamed for 1.1 suite to filters-comptran-01-f.svg -->
+<!-- -->
+<!-- Test which verifies the basic facilities of feComponentTransfer. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 03-Apr-2000 -->
+<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
+<!-- -->
+<!-- History: -->
+<!-- 04-Apr-2000, JF: Serial#1 created. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 16-Aug-2000, LH="rename" ser#2. -->
+<!-- -->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test which verifies the basic facilities of
+ feComponentTransfer.
+ </Paragraph>
+ <Paragraph>
+ This test uses the following elements : a nested <svg>
+ with a viewBox attribute, <linearGradient>, <filter>,
+ <feComponentTransfer>
+ </Paragraph>
+ <Paragraph>
+ The test case shows four rectangles filled with a
+ gradient showing the effects of feComponentTransfer: an
+ identity function acting as a reference, use of the
+ feComponentTransfer table option, use of the
+ feComponentTransfer linear option, and use of the
+ feComponentTransfer gamma option.
+ </Paragraph>
+ <Paragraph>
+ The test is somewhat self-explanatory as the strings
+ document the type of feComponentTransfer operation that
+ is being used.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">filters-comptran-01-f</title>
+ <desc id="test-desc">Test which verifies the basic facilities of feComponentTransfer.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="35" y="50" width="400" height="200" viewBox="0 0 800 400">
+ <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title>
+ <desc>Four rectangles filled with a gradient showing the effects of feComponentTransfer: an identity function acting as a reference, use of the feComponentTransfer table option, use of the feComponentTransfer linear option, and use of the feComponentTransfer gamma option.</desc>
+ <defs>
+ <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" x1="100" y1="0" x2="600" y2="0">
+ <stop offset="0" stop-color="#ff0000" />
+ <stop offset=".33" stop-color="#00ff00" />
+ <stop offset=".67" stop-color="#0000ff" />
+ <stop offset="1" stop-color="#000000" />
+ </linearGradient>
+ <filter id="Identity" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="identity"/>
+ <feFuncG type="identity"/>
+ <feFuncB type="identity"/>
+ <feFuncA type="identity"/>
+ </feComponentTransfer>
+ </filter>
+ <filter id="Table" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="table" tableValues="0 0 1 1"/>
+ <feFuncG type="table" tableValues="1 1 0 0"/>
+ <feFuncB type="table" tableValues="0 1 1 0"/>
+ </feComponentTransfer>
+ </filter>
+ <filter id="Linear" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="linear" slope=".5" intercept=".25"/>
+ <feFuncG type="linear" slope=".5" intercept="0"/>
+ <feFuncB type="linear" slope=".5" intercept=".5"/>
+ </feComponentTransfer>
+ </filter>
+ <filter id="Gamma" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/>
+ <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/>
+ <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/>
+ </feComponentTransfer>
+ </filter>
+ </defs>
+ <rect fill="none" stroke="blue" x="1" y="1" width="798" height="398"/>
+ <g font-size="25" font-family="Verdana" >
+ <rect fill="none" stroke="blue" x="1" y="1" width="798" height="398"/>
+ <rect x="100" y="20" width="500" height="40" fill="url(#MyGradient)" filter="url(#Identity)" />
+ <text x="100" y="85">type="identity"</text>
+ <rect x="100" y="120" width="500" height="40" fill="url(#MyGradient)" filter="url(#Table)" />
+ <text x="100" y="185">type="table"</text>
+ <rect x="100" y="220" width="500" height="40" fill="url(#MyGradient)" filter="url(#Linear)" />
+ <text x="100" y="285">type="linear" slope=".5" intercepts:.25/0/.5</text>
+ <rect x="100" y="320" width="500" height="40" fill="url(#MyGradient)" filter="url(#Gamma)" />
+ <text x="100" y="385">type="gamma" amplitude="2" exponents:5/3/1</text>
+ </g>
+ </svg>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">filters-comptran-01</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/filters-conv-01-f.includeimage.png b/test/svg/svg1.2/images/filters-conv-01-f.includeimage.png
new file mode 100644
index 0000000..f8fb852
Binary files /dev/null and b/test/svg/svg1.2/images/filters-conv-01-f.includeimage.png differ
diff --git a/test/svg/svg1.2/images/filters-conv-01-f.svg b/test/svg/svg1.2/images/filters-conv-01-f.svg
new file mode 100644
index 0000000..8fbd277
--- /dev/null
+++ b/test/svg/svg1.2/images/filters-conv-01-f.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- filters-convolve-BE-06.svg -->
+<!-- renamed for 1.1 suite to filters-conv-01-f.svg -->
+<!-- -->
+<!-- Test which verifies the basic facilities of feConvolveMatrix. -->
+<!-- -->
+<!-- Author : Vincent Hardy 24-Apr-2000 -->
+<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
+<!-- -->
+<!-- History: -->
+<!-- 24-Apr-2000, VH: Serial#1 created. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 16-Aug-2000, LH="rename" ser#2. -->
+<!-- 17-Aug-2000, JF: Fix validation error. edgemode->edgeMode. -->
+<!-- 21-Aug-2000, VH: Added filterUnits and filter effect region to each -->
+<!-- filter definition. ser#3 -->
+<!-- -->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test which verifies the basic facilities of
+ feConvolveMatrix.
+ </Paragraph>
+ <Paragraph>
+ This test defines six filters that exercise traditional
+ convolutions: uniform blur, vertical and horizontal
+ blurs, edge detection, embossing and sharpening. Note
+ that the edge detection filter produces a fully
+ transparent image because the alpha chanel is convolved
+ and produces 0 values.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">filters-conv-01-f</title>
+ <desc id="test-desc">Test which verifies the basic facilities of feConvolveMatrix.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!--Generated by the Java 2D API Graphics2D SVG Generator, Sun Microsystems Inc.-->
+ <g transform="translate(20, 40)">
+ <defs id="defs1">
+ <filter id="convolve1" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111" edgeMode="none"/>
+ </filter>
+ <filter id="convolve2" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="-1 -1 -1 -1 8 -1 -1 -1 -1" edgeMode="none"/>
+ </filter>
+ <filter id="convolve3" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="-1 -1 -1 -1 9 -1 -1 -1 -1" edgeMode="none"/>
+ </filter>
+ <filter id="convolve4" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="-2 0 0 0 1 0 0 0 2" edgeMode="none"/>
+ </filter>
+ <filter id="convolve5" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 1" kernelMatrix="0.3333 0.3333 0.3333" edgeMode="none"/>
+ </filter>
+ <filter id="convolve6" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="1 3" kernelMatrix="0.3333 0.3333 0.3333" edgeMode="none"/>
+ </filter>
+ </defs>
+ <g shape-rendering="geometricPrecision" text-rendering="geometricPrecision" >
+ <text x="10" y="20" stroke="none" opacity="1" filter="none" >Blur (3x3)</text>
+ <g opacity="1" filter="none" >
+ <image width="50" height="63" xlink:href="filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve1)" />
+ </g>
+ <text x="10" y="20" transform="translate(150,0)" stroke="none" opacity="1" filter="none" >Edge Detection (3x3)</text>
+ <g transform="translate(150,0)" opacity="1" filter="none" >
+ <image width="50" height="63" xlink:href="filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve2)" />
+ </g>
+ <text x="10" y="20" transform="translate(300,0)" stroke="none" opacity="1" filter="none" >Sharpening (3x3)</text>
+ <g transform="translate(300,0)" opacity="1" filter="none" >
+ <image width="50" height="63" xlink:href="filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve3)" />
+ </g>
+ <text x="10" y="20" transform="translate(0,93)" stroke="none" opacity="1" filter="none" >Embossing (3x3)</text>
+ <g transform="translate(0,93)" opacity="1" filter="none" >
+ <image width="50" height="63" xlink:href="filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve4)" />
+ </g>
+ <text x="10" y="20" transform="translate(150,93)" stroke="none" opacity="1" filter="none" >Horizontal blur (3x1)</text>
+ <g transform="translate(150,93)" opacity="1" filter="none" >
+ <image width="50" height="63" xlink:href="filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve5)" />
+ </g>
+ <text x="10" y="20" transform="translate(300,93)" stroke="none" opacity="1" filter="none" >Vertical blur (1x3)</text>
+ <g transform="translate(300,93)" opacity="1" filter="none" >
+ <image width="50" height="63" xlink:href="filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve6)" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">filters-conv-01</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/filters-diffuse-01-f.svg b/test/svg/svg1.2/images/filters-diffuse-01-f.svg
new file mode 100644
index 0000000..7829e15
--- /dev/null
+++ b/test/svg/svg1.2/images/filters-diffuse-01-f.svg
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- filters-diffuseLt-BE-07.svg -->
+<!-- renamed for 1.1 suite to filters-diffuse-01-f.svg -->
+<!-- -->
+<!-- Tests operation of the feDiffuseLighting filter. -->
+<!-- -->
+<!-- Author : Vincent Hardy 06-08-2000 -->
+<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
+<!-- -->
+<!-- History: -->
+<!-- 06 08 2000, VH, created -->
+<!-- 09-aug-2000, LH, minor edits for integration; ser#2. -->
+<!-- 16-Aug-2000, LH="rename" ser#3. -->
+<!-- -->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Verify the basic operation of the feDiffuseLighting
+ element. The test shows three rows of 3 images. Each
+ rows tests a different aspect of the filter and shows
+ the result of the filtering operation.
+ </Paragraph>
+ <Paragraph>
+ The first row shows the result of varying the
+ surfaceScale attribute. The second row shows the result
+ of varying the diffuse constant (kd) attribute. The last
+ row shows the result of varying the lighting-color
+ property.
+ </Paragraph>
+ <Paragraph>
+ The rendered picture should match the reference image.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">filters-diffuse-01-f</title>
+ <desc id="test-desc">Validates operation of the feDiffuseLighting filter</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!-- Title -->
+ <text x="145" y="30" fill="black" font-size="12" font-family="Helvetica" font-weight="bold">Filters: feDiffuseLighting</text>
+ <!-- ===================================================================== -->
+ <!-- Filter definitions -->
+ <!-- ===================================================================== -->
+ <defs>
+ <!-- ================================================= -->
+ <!-- Surface scale -->
+ <!-- ================================================= -->
+ <filter id="surfaceScaleA" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="1">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="surfaceScaleB" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="surfaceScaleC" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="-10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- Diffuse Constants -->
+ <!-- ================================================= -->
+ <filter id="diffuseConstantA" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="0" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="diffuseConstantB" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="diffuseConstantC" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="2" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- Lighting colors -->
+ <!-- ================================================= -->
+ <filter id="lightingColorA" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="red" >
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="lightingColorB" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="yellow" >
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="lightingColorC" filterUnits="objectBoundingBox"
+ x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="blue" >
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ </defs>
+ <!-- ==================================================== -->
+ <!-- The same image is rendered multiple times with using -->
+ <!-- different filters. -->
+ <!-- ==================================================== -->
+ <!-- Various Surface Scales -->
+ <g transform="translate(0, 50)">
+ <text x="90" y="25">Various values for surfaceScale: 1, 10 and -10</text>
+ <image xlink:href="bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#surfaceScaleA)" />
+ <image xlink:href="bumpMap2.png" x="160" y="30" width="50" height="30" filter="url(#surfaceScaleB)" />
+ <image xlink:href="bumpMap2.png" x="230" y="30" width="50" height="30" filter="url(#surfaceScaleC)" />
+ </g>
+ <!-- Various Diffuse Constants -->
+ <g transform="translate(0, 120)">
+ <text x="90" y="25">Various values for diffuseConstants: 0, 1 and 2</text>
+ <image xlink:href="bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#diffuseConstantA)" />
+ <image xlink:href="bumpMap2.png" x="160" y="30" width="50" height="30" filter="url(#diffuseConstantB)" />
+ <image xlink:href="bumpMap2.png" x="230" y="30" width="50" height="30" filter="url(#diffuseConstantC)" />
+ </g>
+ <!-- Various Light Colors -->
+ <g transform="translate(0, 190)">
+ <text x="90" y="25">Various values for lighting color: red, yellow and blue</text>
+ <image xlink:href="bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#lightingColorA)" />
+ <image xlink:href="bumpMap2.png" x="160" y="30" width="50" height="30" filter="url(#lightingColorB)" />
+ <image xlink:href="bumpMap2.png" x="230" y="30" width="50" height="30" filter="url(#lightingColorC)" />
+ </g>
+ <!-- ===================================================== -->
+ <!-- Legends -->
+ <!-- ===================================================== -->
+ <!-- Surface Scale -->
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">filters-diffuse-01</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/filters-example-01-f.svg b/test/svg/svg1.2/images/filters-example-01-f.svg
new file mode 100644
index 0000000..3f96658
--- /dev/null
+++ b/test/svg/svg1.2/images/filters-example-01-f.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- filters-many-BE-01.svg -->
+<!-- renamed for 1.1 suite to filters-example-01-f.svg -->
+<!-- -->
+<!-- Overall filter effects test case. Extracted from example filters00 -->
+<!-- in the March 3, 2000 spec. Uses many filter effects in one image. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo, 15 March 2000 -->
+<!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002 -->
+<!-- -->
+<!-- History: -->
+<!-- 15-Mar-2000, JF: Serial#1 created. Matches 20000303 SVG spec. -->
+<!-- 16-Mar-2000, LH="editorials" fix name (-02); fix Legend, ser#2. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 16-Aug-2000, LH="rename" ser#3. -->
+<!-- 28-oct-2000, JF, change attr 'lightColor' to prop 'lighting-color' -->
+<!-- new version: #4. -->
+<!-- 10-Dec-2000, JF, fixed previous version merge problems, adjusted -->
+<!-- specular lighting parameters to make linearRGB -->
+<!-- result approximate previous reference image, which -->
+<!-- was done using sRGB. -->
+<!-- -->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Verify that a typical usage of filtering is operation.
+ This test case creates a 3D lightiing effect and requires
+ that several filters are working: feGaussianBlur, feOffset,
+ feSpecularLighting, feComposite and feMerge. The graphic
+ consisting of the string "SVG" sitting on top of oval
+ filled in red and surrounded by an oval outlined in red.
+ </Paragraph>
+ <Paragraph>
+ The rendered picture should match the reference image
+ exactly, except for possible variations in the labelling
+ text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+ The test uses a nested 'svg' element, 'rect' element,
+ 'path' element, as well as basic fill (solid primary
+ colors), stroke (solid primary colors with stroke-width
+ lines), font-family (Helvetica) and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">filters-example-01-f</title>
+ <desc id="test-desc">Overall filter effects test case. Extracted from example filters00 in the March 3, 2000 spec.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <g font-size="12" font-family="Verdana" >
+ <text x="20" y="30">A single filter that uses a combination of filter primitives. You should see</text>
+ <text x="20" y="45">a gray rectangle. Inside, there is an outer ring and an inner button with </text>
+ <text x="20" y="60">"SVG" on it, both in red with a 3D appearance and a lighting effect.</text>
+ <text x="20" y="75"></text>
+ </g>
+ <!-- Here is the test case -->
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="80" y="80" width="300" height="180" viewBox="0 0 200 120">
+ <title>Example filters01.svg - introducing filter effects</title>
+ <desc>An example which combines multiple filter primitives to produce a 3D lighting effect on a graphic consisting of the string "SVG" sitting on top of oval filled in red and surrounded by an oval outlined in red.</desc>
+ <defs>
+ <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="450" height="450">
+ <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
+ <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
+ <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" specularExponent="20" lighting-color="white" result="specOut">
+ <fePointLight x="-5000" y="-10000" z="20000"/>
+ </feSpecularLighting>
+ <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
+ <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
+ <feMerge>
+ <feMergeNode in="offsetBlur"/>
+ <feMergeNode in="litPaint"/>
+ </feMerge>
+ </filter>
+ </defs>
+ <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
+ <g filter="url(#MyFilter)" >
+ <g>
+ <path fill="none" stroke="#D90000" stroke-width="10" d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z"/>
+ <path fill="#D90000" d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z"/>
+ <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
+ <text x="52" y="76">SVG</text>
+ </g>
+ </g>
+ </g>
+ </svg>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">filters-example-01</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/focus-resource.svg b/test/svg/svg1.2/images/focus-resource.svg
new file mode 100644
index 0000000..4f26fca
--- /dev/null
+++ b/test/svg/svg1.2/images/focus-resource.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <rect id="myRect" width="240" height="40"/>
+ <use id="focusRect1" xlink:href="#myRect" focusable="true" fill-opacity="0.4" fill="blue">
+ <set attributeName="fill" to="red" begin="focusRect1.focusin"/>
+ <set attributeName="fill" to="blue" begin="focusRect1.focusout"/>
+ </use>
+ <g id="poem" transform="translate(7,15)">
+ <text y="0">There once was a curious frog</text>
+ <text y="12">Who sat by a pond on a log</text>
+ <text y="24">And, to see what resulted,</text>
+ <text y="36">In the pond catapulted</text>
+ <text y="48">With a water-noise heard round the bog.</text>
+ </g>
+ <g id="poem-w-rect">
+ <rect width="240" height="70"/>
+ <use xlink:href="#poem" fill-opacity="1" fill="white"/>
+ </g>
+ </defs>
+ <text x="10" y="20">This file only contains fragments used from other files</text>
+</svg>
diff --git a/test/svg/svg1.2/images/galpha.png b/test/svg/svg1.2/images/galpha.png
new file mode 100644
index 0000000..0698cdf
Binary files /dev/null and b/test/svg/svg1.2/images/galpha.png differ
diff --git a/test/svg/svg1.2/images/gam030.png b/test/svg/svg1.2/images/gam030.png
new file mode 100644
index 0000000..904c972
Binary files /dev/null and b/test/svg/svg1.2/images/gam030.png differ
diff --git a/test/svg/svg1.2/images/gam030b.png b/test/svg/svg1.2/images/gam030b.png
new file mode 100644
index 0000000..90e7184
Binary files /dev/null and b/test/svg/svg1.2/images/gam030b.png differ
diff --git a/test/svg/svg1.2/images/gam045.png b/test/svg/svg1.2/images/gam045.png
new file mode 100644
index 0000000..b649a8a
Binary files /dev/null and b/test/svg/svg1.2/images/gam045.png differ
diff --git a/test/svg/svg1.2/images/gam045b.png b/test/svg/svg1.2/images/gam045b.png
new file mode 100644
index 0000000..9885e33
Binary files /dev/null and b/test/svg/svg1.2/images/gam045b.png differ
diff --git a/test/svg/svg1.2/images/gam056.png b/test/svg/svg1.2/images/gam056.png
new file mode 100644
index 0000000..e5f959d
Binary files /dev/null and b/test/svg/svg1.2/images/gam056.png differ
diff --git a/test/svg/svg1.2/images/gam056b.png b/test/svg/svg1.2/images/gam056b.png
new file mode 100644
index 0000000..32af5b3
Binary files /dev/null and b/test/svg/svg1.2/images/gam056b.png differ
diff --git a/test/svg/svg1.2/images/gam100.png b/test/svg/svg1.2/images/gam100.png
new file mode 100644
index 0000000..6c7ba5f
Binary files /dev/null and b/test/svg/svg1.2/images/gam100.png differ
diff --git a/test/svg/svg1.2/images/gam100b.png b/test/svg/svg1.2/images/gam100b.png
new file mode 100644
index 0000000..a3e91e0
Binary files /dev/null and b/test/svg/svg1.2/images/gam100b.png differ
diff --git a/test/svg/svg1.2/images/gam200.png b/test/svg/svg1.2/images/gam200.png
new file mode 100644
index 0000000..daa20fc
Binary files /dev/null and b/test/svg/svg1.2/images/gam200.png differ
diff --git a/test/svg/svg1.2/images/gam200b.png b/test/svg/svg1.2/images/gam200b.png
new file mode 100644
index 0000000..2c337d8
Binary files /dev/null and b/test/svg/svg1.2/images/gam200b.png differ
diff --git a/test/svg/svg1.2/images/ghost.svg b/test/svg/svg1.2/images/ghost.svg
new file mode 100644
index 0000000..f2303b1
--- /dev/null
+++ b/test/svg/svg1.2/images/ghost.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://research.bitflash.com/svg/dtd/svg11-tiny-expanded.dtd">
+<!--
+ This test page was been created to test conformance with
+ the Mobile SVG Specification Version 1.1
+ Generation date: 2003/07/22 11:38:28
+ Copyright 2003 BitFlash
+-->
+<svg
+ viewBox="0 0 160 120"
+ font-family="Arial"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ baseProfile="tiny">
+ <rect id="slide-frame" x="0" y="0" width="160" height="120" fill="none" stroke-width="0.5" stroke="#aaa"/>
+ <text id="label" font-size="8" x="10" y="112">animate-motion-03-t-dt.svg</text>
+ <text id="copy" text-anchor="end" font-size="5" x="155" y="112" fill="#0000ff">2002 BitFlash</text>
+ <g id="grid" stroke="#ccc" stroke-width="0.5">
+ <g id="horlines">
+ <line x1="5" y1="5" x2="155" y2="5"/>
+ <line x1="5" y1="10" x2="155" y2="10"/>
+ <line x1="5" y1="15" x2="155" y2="15"/>
+ <line x1="5" y1="20" x2="155" y2="20"/>
+ <line x1="5" y1="25" x2="155" y2="25"/>
+ <line x1="5" y1="30" x2="155" y2="30"/>
+ <line x1="5" y1="35" x2="155" y2="35"/>
+ <line x1="5" y1="40" x2="155" y2="40"/>
+ <line x1="5" y1="45" x2="155" y2="45"/>
+ <line x1="5" y1="50" x2="155" y2="50"/>
+ <line x1="5" y1="55" x2="155" y2="55"/>
+ <line x1="5" y1="60" x2="155" y2="60"/>
+ <line x1="5" y1="65" x2="155" y2="65"/>
+ <line x1="5" y1="70" x2="155" y2="70"/>
+ <line x1="5" y1="75" x2="155" y2="75"/>
+ <line x1="5" y1="80" x2="155" y2="80"/>
+ <line x1="5" y1="85" x2="155" y2="85"/>
+ <line x1="5" y1="90" x2="155" y2="90"/>
+ <line x1="5" y1="95" x2="155" y2="95"/>
+ <line x1="5" y1="100" x2="155" y2="100"/>
+ </g>
+ <g id="vertlines">
+ <line x1="5" y1="5" x2="5" y2="100"/>
+ <line x1="10" y1="5" x2="10" y2="100"/>
+ <line x1="15" y1="5" x2="15" y2="100"/>
+ <line x1="20" y1="5" x2="20" y2="100"/>
+ <line x1="25" y1="5" x2="25" y2="100"/>
+ <line x1="30" y1="5" x2="30" y2="100"/>
+ <line x1="35" y1="5" x2="35" y2="100"/>
+ <line x1="40" y1="5" x2="40" y2="100"/>
+ <line x1="45" y1="5" x2="45" y2="100"/>
+ <line x1="50" y1="5" x2="50" y2="100"/>
+ <line x1="55" y1="5" x2="55" y2="100"/>
+ <line x1="60" y1="5" x2="60" y2="100"/>
+ <line x1="65" y1="5" x2="65" y2="100"/>
+ <line x1="70" y1="5" x2="70" y2="100"/>
+ <line x1="75" y1="5" x2="75" y2="100"/>
+ <line x1="80" y1="5" x2="80" y2="100"/>
+ <line x1="85" y1="5" x2="85" y2="100"/>
+ <line x1="90" y1="5" x2="90" y2="100"/>
+ <line x1="95" y1="5" x2="95" y2="100"/>
+ <line x1="100" y1="5" x2="100" y2="100"/>
+ <line x1="105" y1="5" x2="105" y2="100"/>
+ <line x1="110" y1="5" x2="110" y2="100"/>
+ <line x1="115" y1="5" x2="115" y2="100"/>
+ <line x1="120" y1="5" x2="120" y2="100"/>
+ <line x1="125" y1="5" x2="125" y2="100"/>
+ <line x1="130" y1="5" x2="130" y2="100"/>
+ <line x1="135" y1="5" x2="135" y2="100"/>
+ <line x1="140" y1="5" x2="140" y2="100"/>
+ <line x1="145" y1="5" x2="145" y2="100"/>
+ <line x1="150" y1="5" x2="150" y2="100"/>
+ <line x1="155" y1="5" x2="155" y2="100"/>
+ </g>
+ </g>
+ <path d="M25,35 C25,35 75,-15 125,35" fill="none" stroke="black" stroke-width="2"/>
+ <rect x="20" y="30" width="10" height="10" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="20" y="50">0 sec.</text>
+ <rect x="120" y="30" width="10" height="10" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="120" y="50">6+ sec.</text>
+ <path d="M-5,0 L0,-10 L5,0 z" fill="blue" stroke="red" stroke-width="2">
+ <animateMotion path="M25,35 C25,35 75,-15 125,35" rotate="90" begin="0s" dur="6s" fill="freeze"/>
+ </path>
+ <text x="38" y="40" fill="red" stroke="none" font-size="14">rotate='90'</text>
+ <path d="M25,75 C25,75 75,25 125,75" fill="none" stroke="black" stroke-width="2"/>
+ <rect x="20" y="70" width="10" height="10" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="20" y="90">0 sec.</text>
+ <rect x="120" y="70" width="10" height="10" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="120" y="90">6+ sec.</text>
+ <path d="M-5,0 L0,-10 L5,0 z" fill="blue" stroke="red" stroke-width="2">
+ <animateMotion path="M25,75 C25,75 75,25 125,75" rotate="auto" begin="0s" dur="6s" fill="freeze"/>
+ </path>
+ <text x="38" y="80" fill="red" stroke="none" font-size="14">rotate='auto'</text>
+ <a xlink:href="animate-motion-02-t-dt.svg">
+ <text x="3" y="117" font-size="5" fill="#888">Prev</text>
+ </a>
+ <g id="index">
+ <a xlink:href="toc-tiny.svg">
+ <text x="80" y="117" font-size="5" fill="#888" text-anchor="middle">Index</text>
+ </a>
+ </g>
+ <a xlink:href="animate-motion-04-t-dt.svg">
+ <text x="157" y="117" text-anchor="end" font-size="5" fill="#888">Next</text>
+ </a>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/greentopbutton.jpg b/test/svg/svg1.2/images/greentopbutton.jpg
new file mode 100644
index 0000000..be33a3c
Binary files /dev/null and b/test/svg/svg1.2/images/greentopbutton.jpg differ
diff --git a/test/svg/svg1.2/images/greentopbutton1.jpg b/test/svg/svg1.2/images/greentopbutton1.jpg
new file mode 100644
index 0000000..be33a3c
Binary files /dev/null and b/test/svg/svg1.2/images/greentopbutton1.jpg differ
diff --git a/test/svg/svg1.2/images/greentopbutton2.jpg b/test/svg/svg1.2/images/greentopbutton2.jpg
new file mode 100644
index 0000000..be33a3c
Binary files /dev/null and b/test/svg/svg1.2/images/greentopbutton2.jpg differ
diff --git a/test/svg/svg1.2/images/greentopbutton3.jpg b/test/svg/svg1.2/images/greentopbutton3.jpg
new file mode 100644
index 0000000..be33a3c
Binary files /dev/null and b/test/svg/svg1.2/images/greentopbutton3.jpg differ
diff --git a/test/svg/svg1.2/images/greentopbutton4.jpg b/test/svg/svg1.2/images/greentopbutton4.jpg
new file mode 100644
index 0000000..be33a3c
Binary files /dev/null and b/test/svg/svg1.2/images/greentopbutton4.jpg differ
diff --git a/test/svg/svg1.2/images/heroesLanding.3gp b/test/svg/svg1.2/images/heroesLanding.3gp
new file mode 100644
index 0000000..605ba43
Binary files /dev/null and b/test/svg/svg1.2/images/heroesLanding.3gp differ
diff --git a/test/svg/svg1.2/images/image.png b/test/svg/svg1.2/images/image.png
new file mode 100644
index 0000000..01b5792
Binary files /dev/null and b/test/svg/svg1.2/images/image.png differ
diff --git a/test/svg/svg1.2/images/image1.jpg b/test/svg/svg1.2/images/image1.jpg
new file mode 100644
index 0000000..40c1b25
Binary files /dev/null and b/test/svg/svg1.2/images/image1.jpg differ
diff --git a/test/svg/svg1.2/images/image1.png b/test/svg/svg1.2/images/image1.png
new file mode 100644
index 0000000..fa37f6d
Binary files /dev/null and b/test/svg/svg1.2/images/image1.png differ
diff --git a/test/svg/svg1.2/images/image1_b.png b/test/svg/svg1.2/images/image1_b.png
new file mode 100644
index 0000000..0197022
Binary files /dev/null and b/test/svg/svg1.2/images/image1_b.png differ
diff --git a/test/svg/svg1.2/images/image2/bread2.png b/test/svg/svg1.2/images/image2/bread2.png
new file mode 100644
index 0000000..4f20555
Binary files /dev/null and b/test/svg/svg1.2/images/image2/bread2.png differ
diff --git a/test/svg/svg1.2/images/image2/xlink1.svg b/test/svg/svg1.2/images/image2/xlink1.svg
new file mode 100644
index 0000000..3458af7
--- /dev/null
+++ b/test/svg/svg1.2/images/image2/xlink1.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ id="drawrects-structure-image-BE-06" viewBox="0 0 450 450" width="450" height="450" >
+ <g id="drawRects">
+ <rect x="225" y="0" width="225" height="225" fill="red" />
+ <rect x="0" y="225" width="225" height="225" fill="yellow" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/image2_b.jpg b/test/svg/svg1.2/images/image2_b.jpg
new file mode 100644
index 0000000..b9cf862
Binary files /dev/null and b/test/svg/svg1.2/images/image2_b.jpg differ
diff --git a/test/svg/svg1.2/images/image2_b.png b/test/svg/svg1.2/images/image2_b.png
new file mode 100644
index 0000000..0b84649
Binary files /dev/null and b/test/svg/svg1.2/images/image2_b.png differ
diff --git a/test/svg/svg1.2/images/interact-dom-01-f.svg b/test/svg/svg1.2/images/interact-dom-01-f.svg
new file mode 100644
index 0000000..a1d08aa
--- /dev/null
+++ b/test/svg/svg1.2/images/interact-dom-01-f.svg
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- dom-eventListener-BE-04.svg -->
+<!-- renamed for 1.1 suite to interact-dom-01-f.svg -->
+<!-- -->
+<!-- Tests DOM events support. The test uses ECMA Script -->
+<!-- -->
+<!-- Author : Vincent Hardy 06-08-2000 -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 06 08 2000, VH, created -->
+<!-- 30-oct-2000, LH, corrected "\" to "/" in "text/ecmascript"; ser#2 -->
+<!-- 16-nov-2000, CJ, corrected infinite loop in mutationEventDetected -->
+<!-- 12-dec-2000, JF, replace mutation event logic with more explicit -->
+<!-- test to ensure event listener is removed. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360" onload="initTest(evt)">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testSuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Verify basic support for DOM event listener registration. The root svg element
+ has an onload handler where a click event listener is registered on group element 'Start Button'.
+ </Paragraph>
+ <Paragraph>
+ If UI events listener registration is supported (and UI events),
+ when the user clicks on the button a text node is inserted reading "UI Event Listeners supported".
+ </Paragraph>
+ <Paragraph>
+ At the end of the test, the start test button in changed to pink,
+ and the click event listener is removed from the the start button.
+ </Paragraph>
+ <Paragraph>
+ Subsequent clicks on the start button should cause no effect if
+ the event listener has been removed successfully.
+ If additional lines of text appear in the document that say "UI Event Listeners supported",
+ then the implementation has not successfully removed the event listener.
+ </Paragraph>
+ <Paragraph>
+ After clicking at least once on the button,
+ the rendered image should be exactly as the reference image, except for
+ differences in text display.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+
+ <title id="test-title">interact-dom-01-f</title>
+ <desc id="test-desc">Checks if DOM/ECMA Script binding is supported. Checks that the DOM API
+supports event listener registration/unregistration.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+
+ <script type="text/ecmascript"><![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg"
+ var doc;
+ var content;
+ var startButton;
+ var buttonRect;
+ var yLocation = 100;
+ //
+ // onload handler for top level svg element. Sets a UI event listener for
+ // the test start button.
+ //
+ function initTest(evt){
+ // Get Document
+ var target = evt.target;
+ doc = target.ownerDocument;
+ content = doc.getElementById("test-body-content");
+
+ // Get start rect and add a UI listener
+ startButton = doc.getElementById("startButton");
+ buttonRect = doc.getElementById("buttonRect");
+ startButton.addEventListener("click", uiEventDetected, false);
+ }
+
+ //
+ // click handler for 'startButton' rect element.
+ //
+ function uiEventDetected(evt) {
+ //
+ // Add an element to show that UI event was detected
+ //
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('x', '50');
+ newText.setAttribute('y', yLocation);
+ var message = "UI Event Listeners supported";
+ var textContent = doc.createTextNode(message);
+ newText.appendChild(textContent);
+ content.appendChild(newText);
+
+ startButton.removeEventListener("click", uiEventDetected, false);
+
+ // Make start button pink
+ buttonRect.setAttribute("fill", "#ff8888");
+ buttonRect.setAttribute("stroke", "black");
+
+ // If test does not successfully remove the event listener, then
+ // a second click will cause a subsequent text string to appear 50 units
+ // below the first new text string.
+ yLocation = yLocation + 50;
+ }
+
+ ]]></script>
+
+ <!-- ===================================================================== -->
+ <!-- Start button -->
+ <!-- ===================================================================== -->
+ <g id="startButton">
+ <rect id="buttonRect" x="10" y="50" width="80" height="20" fill="#dddddd" stroke="black" />
+ <text x="15" y="65">Start Test</text>
+ </g>
+
+</g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">interact-dom-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/interact-order-02-t-targ.svg b/test/svg/svg1.2/images/interact-order-02-t-targ.svg
new file mode 100644
index 0000000..854f37c
--- /dev/null
+++ b/test/svg/svg1.2/images/interact-order-02-t-targ.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" standalone="no"?>
+
+<!--======================================================================-->
+<!--= Copyright 2000, 2002 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- interact-bubble-BE-04-target.svg -->
+<!-- renamed for 1.1 suite to interact-order-01-f-targ.svg -->
+<!-- renamed for 1.1 suite to interact-order-02-b-targ.svg -->
+<!-- renamed/modified for 1.2 Tiny suite to interact-order-02-t-targ.svg -->
+<!-- -->
+<!-- File that just serves as hyperlink target for test case -->
+<!-- interact-order-05-t.svg. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000 -->
+<!-- 1.1 revision by Thomas DeWeese 5-Feb-2002 -->
+<!-- 1.2 revision by Dr Olaf Hoffmann May-2007 -->
+<!-- -->
+<!-- History: -->
+<!-- 06-Aug-2000, JF: Serial#1 created. -->
+<!-- 11-May-2007, AG: Applied changes as per comments -->
+<!-- by Dr. Olaf Hoffmann -->
+<!-- -->
+<!--======================================================================-->
+
+<svg version="1.2" id="svg-root" width="80" height="60" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" >
+
+ <title id="test-title">$RCSfile: interact-order-02-t-targ.svg,v $</title>
+ <desc id="test-desc">
+ File that just serves as hyperlink target for test case
+ interact-order-05-t.svg.
+ </desc>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif">
+ <g font-size="40" text-anchor="middle">
+ <text x="240" y="40">
+ Hyperlink target for
+ </text>
+ <text x="240" y="85">
+ interact-order-05-t.svg
+ </text>
+ </g>
+
+ <a xlink:href="../svg/interact-order-05-t.svg">
+ <circle cx="240" cy="180" r="75" />
+ </a>
+
+ <g font-size="40" text-anchor="middle">
+ <text x="240" y="300">
+ Click to hyperlink back to
+ </text>
+ <text x="240" y="345">
+ interact-order-05-t.svg
+ </text>
+ </g>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/interact-order-03-t-targ.svg b/test/svg/svg1.2/images/interact-order-03-t-targ.svg
new file mode 100644
index 0000000..9039f41
--- /dev/null
+++ b/test/svg/svg1.2/images/interact-order-03-t-targ.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" standalone="no"?>
+
+<!--======================================================================-->
+<!--= Copyright 2000, 2002 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!-- -->
+<!-- interact-bubble-BE-04-target.svg -->
+<!-- renamed for 1.1 suite to interact-order-01-f-targ.svg -->
+<!-- renamed for 1.1 suite to interact-order-03-b-targ.svg -->
+<!-- renamed/modified for 1.2 Tiny suite to interact-order-03-t-targ.svg -->
+<!-- -->
+<!-- File that just serves as hyperlink target for test case -->
+<!-- interact-interact-order-06-t.svg. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000 -->
+<!-- 1.1 revision by Thomas DeWeese 5-Feb-2002 -->
+<!-- 1.2 revision by Dr Olaf Hoffmann May-2007 -->
+<!-- -->
+<!-- History: -->
+<!-- 06-Aug-2000, JF: Serial#1 created. -->
+<!-- 11-May-2007, AG: Applied changes as per comments -->
+<!-- by Dr. Olaf Hoffmann -->
+<!-- -->
+<!--======================================================================-->
+
+
+<svg version="1.2" id="svg-root" width="80" height="60" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" >
+
+ <title id="test-title">$RCSfile: interact-order-03-t-targ.svg,v $</title>
+ <desc id="test-desc">
+ File that just serves as hyperlink target for test case
+ interact-order-06-t.svg.
+ </desc>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif">
+ <g font-size="40" text-anchor="middle">
+ <text x="240" y="40">
+ Hyperlink target for
+ </text>
+ <text x="240" y="85">
+ interact-order-06-t.svg.
+ </text>
+ </g>
+
+ <a xlink:href="../svg/interact-order-06-t.svg.">
+ <circle cx="240" cy="180" r="75" />
+ </a>
+
+ <g font-size="40" text-anchor="middle">
+ <text x="240" y="300">
+ Click to hyperlink back to
+ </text>
+ <text x="240" y="345">
+ interact-order-06-t.svg.
+ </text>
+ </g>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/leftarrow.png b/test/svg/svg1.2/images/leftarrow.png
new file mode 100644
index 0000000..07fb487
Binary files /dev/null and b/test/svg/svg1.2/images/leftarrow.png differ
diff --git a/test/svg/svg1.2/images/linking-uri-01-b.svg b/test/svg/svg1.2/images/linking-uri-01-b.svg
new file mode 100644
index 0000000..febc3cb
--- /dev/null
+++ b/test/svg/svg1.2/images/linking-uri-01-b.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- =====================================================================-->
+<!-- -->
+<!-- linking-uri-01-b.svg -->
+<!-- -->
+<!-- Link test of the 'view' element and its attributes, 1 of 2, internal.-->
+<!-- -->
+<!-- Note. This is one of a pair, with linking-uri-02-b.svg, which is -->
+<!-- identical except that all of it's links refer to the objects in -->
+<!-- this file. -->
+<!-- -->
+<!-- Author : Lee Klosterman 01-February-2002 -->
+<!-- Revised for Mobile Profiles: Jun Fujisawa 16-Jul-2002 -->
+<!-- -->
+<!-- History: -->
+<!-- -->
+<!-- =====================================================================-->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
+
+
+ <title id="test-title">linking-uri-01-b</title>
+ <desc id="test-desc">Link test of the 'view' element and its attributes, 1 of 2, internal.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text x="65" y="16" font-size="12" >Link test of the 'view' element and its attributes, 1 of 2, internal.</text>
+ <g transform="translate(-150,75)">
+ <rect x="300" y="55" width="125" height="85" fill="#aaa" />
+ <a xlink:href="#rect-view">
+ <text x="320" y="70" fill="red" >Go to Rectangle</text>
+ </a>
+ <a xlink:href="#ellipse-view">
+ <text x="320" y="90" fill="blue" >Go to Ellipse</text>
+ </a>
+ <a xlink:href="#circle-view">
+ <text x="320" y="110" fill="yellow" >Go to Circle</text>
+ </a>
+ <a xlink:href="#polygon-view">
+ <text x="320" y="130" fill="green" >Go to Polygon</text>
+ </a>
+ <text x="315" y="150" font-size="12" >Click element's line</text>
+ <text x="315" y="162" font-size="12" >to link to its view</text>
+ </g>
+
+ <!-- View with no attributes. Picture should not change. -->
+ <view id="rect-view"/>
+ <rect id="rect-object" fill="red" x="295" y="36" width="135" height="68"/>
+ <text id="rect-label" x="340" y="116">Rectangle</text>
+ <rect x="292" y="29" width="141" height="91" fill="none" stroke="black" />
+ <text x="302" y="130" font-size="10" >No view attributes except id.</text>
+ <!-- Test viewBox. Should blow-up the ellipse in the frame. -->
+ <view id="ellipse-view" viewBox="294 221 152 83"/>
+ <ellipse id="ellipse-object" fill="blue" cx="370" cy="251" rx="72" ry="32"/>
+ <text id="ellipse-label" x="355" y="295">Ellipse</text>
+ <rect x="295" y="216" width="150" height="82" fill="none" stroke="black" />
+ <text x="315" y="214" font-size="10" >viewBox, should fill frame.</text>
+ <!-- Test preserveAspectRatio. -->
+ <view id="circle-view" viewBox="20 29 128 91.5" preserveAspectRatio="none"/>
+ <circle id="circle-object" fill="yellow" cx="85" cy="68" r="36"/>
+ <text id="circle-label" x="70" y="116">Circle</text>
+ <rect x="36" y="29" width="98" height="91" fill="none" stroke="black" />
+ <text x="36" y="128" font-size="10" >viewBox & non-uniform</text>
+ <text x="36" y="137" font-size="10" >preserveAspectRatio</text>
+ <!-- Test viewTarget attribute, should highlight the polygon. -->
+ <view id="polygon-view" viewTarget="polygon-object"/>
+ <polygon id="polygon-object" fill="green" points="87,211 134,238 116,283 57,283 39,238 87,211"/>
+ <text id="polygon-label" x="65" y="295">Polygon</text>
+ <rect x="36" y="208" width="100" height="89" fill="none" stroke="black" />
+ <text x="46" y="197" font-size="10" >viewTarget, should</text>
+ <text x="46" y="206" font-size="10" >highlight polygon</text>
+ </g>
+
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.1 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+</svg>
diff --git a/test/svg/svg1.2/images/linking-uri-01-f-1st.png b/test/svg/svg1.2/images/linking-uri-01-f-1st.png
new file mode 100644
index 0000000..60a63b4
Binary files /dev/null and b/test/svg/svg1.2/images/linking-uri-01-f-1st.png differ
diff --git a/test/svg/svg1.2/images/linking-uri-01-f-2nd.png b/test/svg/svg1.2/images/linking-uri-01-f-2nd.png
new file mode 100644
index 0000000..b67b091
Binary files /dev/null and b/test/svg/svg1.2/images/linking-uri-01-f-2nd.png differ
diff --git a/test/svg/svg1.2/images/linking-uri-01-f-3rd.png b/test/svg/svg1.2/images/linking-uri-01-f-3rd.png
new file mode 100644
index 0000000..b67b091
Binary files /dev/null and b/test/svg/svg1.2/images/linking-uri-01-f-3rd.png differ
diff --git a/test/svg/svg1.2/images/linking-uri-01-f-4th.png b/test/svg/svg1.2/images/linking-uri-01-f-4th.png
new file mode 100644
index 0000000..f608341
Binary files /dev/null and b/test/svg/svg1.2/images/linking-uri-01-f-4th.png differ
diff --git a/test/svg/svg1.2/images/linking-uri-01-f-start.png b/test/svg/svg1.2/images/linking-uri-01-f-start.png
new file mode 100644
index 0000000..b67b091
Binary files /dev/null and b/test/svg/svg1.2/images/linking-uri-01-f-start.png differ
diff --git a/test/svg/svg1.2/images/linking-uri-03-f-1st.png b/test/svg/svg1.2/images/linking-uri-03-f-1st.png
new file mode 100644
index 0000000..84bff57
Binary files /dev/null and b/test/svg/svg1.2/images/linking-uri-03-f-1st.png differ
diff --git a/test/svg/svg1.2/images/linking-uri-03-f-start.png b/test/svg/svg1.2/images/linking-uri-03-f-start.png
new file mode 100644
index 0000000..9e3599f
Binary files /dev/null and b/test/svg/svg1.2/images/linking-uri-03-f-start.png differ
diff --git a/test/svg/svg1.2/images/linkingCircle-f.svg b/test/svg/svg1.2/images/linkingCircle-f.svg
new file mode 100644
index 0000000..2789820
--- /dev/null
+++ b/test/svg/svg1.2/images/linkingCircle-f.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" standalone="no"?>
+<!-- ===================================================================== -->
+<!-- linkingCircle-f.svg -->
+<!-- Auxiliary file for linking tests. -->
+<!-- ====================================================================== -->
+<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:id="linkingCircle-f.svg" width="480" height="360">
+ <title xml:id="test-title">linkingCircle-f.svg</title>
+ <desc xml:id="test-desc">Some circles with ids, for linking tests.</desc>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif">
+ <text x="100" y="20" font-size="12">Some circles with ids, for linking tests.</text>
+ <circle xml:id="circle-1" cx="220" cy="140" r="35" fill="red" stroke="black"/>
+ <text font-size="12" x="203" y="99">circle-1</text>
+ <circle xml:id="circle-2" cx="100" cy="260" r="20" stroke="lime" fill="yellow" stroke-width="4"/>
+ <text font-size="12" x="80" y="295">circle-2</text>
+ <!-- Framing rect for circle-2 -->
+ <rect x="64" y="227" width="72" height="72" fill="none" stroke="black"/>
+ <circle xml:id="circle-3" cx="340" cy="260" r="50" stroke="blue" fill="none" stroke-width="10"/>
+ <text font-size="12" x="320" y="332">circle-3</text>
+ </g>
+ <g xml:id="test-legend">
+ <!-- Test-framing rectangle, drawn just inside viewport boundary. -->
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/linkingToc-t.svg b/test/svg/svg1.2/images/linkingToc-t.svg
new file mode 100644
index 0000000..ee01e75
--- /dev/null
+++ b/test/svg/svg1.2/images/linkingToc-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+
+<!-- ======================================================== -->
+<!-- linkingToc.svg -->
+<!-- -->
+<!-- Auxiliary file for linking BE tests ... a Table of -->
+<!-- Contents and index of the BE test cases. -->
+<!-- -->
+<!-- -->
+<!-- History: -->
+<!-- 02-apr-2000, LH: Created. -->
+<!-- 03-Aug-2000, LH: update DOCTYPE for CR DTD, 20000802; -->
+<!-- 23-Aug-2000, LH: fix it for rename of xlinkAttr-BE-02; -->
+<!-- 06-Feb-2002, LK: Modify for SVG 1.1 linking tests; -->
+<!-- -->
+<!-- ======================================================== -->
+<svg version="1.1" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="480" height="360" >
+
+ <text x="75" y="20" font-size="20">TOC & index of linking tests.</text>
+
+
+ <a xlink:href="../svg/linking-a-04-t.svg" >
+ <text x="20" y="70" fill="blue" font-size="12">
+ 1.) linking-a-04-t: Verify basic links out of SVG content ('a').
+ </text>
+ </a>
+
+ <a xlink:href="../svg/linking-uri-03-t.svg" >
+ <text x="20" y="100" fill="blue" font-size="12">
+ 2.) linking-uri-03-t: Verify handling of xlink attributes on 'a'.
+ </text>
+ </a>
+
+ <a xlink:href="../svglinking-a-02-b.svg" >
+ <text x="20" y="130" fill="blue" font-size="12">
+ 3.) linking-a-02-b: Verify links into SVG content and fragment syntax.
+ </text>
+ </a>
+
+ <a xlink:href="../svg/linking-uri-01-b.svg" >
+ <text x="20" y="160" fill="blue" font-size="12">
+ 4.) linking-uri-01-b: Verify 'view' element handling.
+ </text>
+ </a>
+
+ <a xlink:href="../svg/linking-uri-02-b.svg" >
+ <text x="20" y="190" fill="blue" font-size="12">
+ 5.) linking-uri-02-b: Verify 'view' element handling (companion to linking-uri-01-f).
+ </text>
+ </a>
+
+ <text x="20" y="230" fill="black" font-size="12">
+ [Note. This is not a linking test, but a supplemental file and link
+ </text>
+ <text x="20" y="242">
+ target for other linking tests.]
+ </text>
+
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+
+</svg>
diff --git a/test/svg/svg1.2/images/magnify.png b/test/svg/svg1.2/images/magnify.png
new file mode 100644
index 0000000..5713577
Binary files /dev/null and b/test/svg/svg1.2/images/magnify.png differ
diff --git a/test/svg/svg1.2/images/makealpha.svg b/test/svg/svg1.2/images/makealpha.svg
new file mode 100644
index 0000000..aab190c
--- /dev/null
+++ b/test/svg/svg1.2/images/makealpha.svg
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic-flat.dtd">
+<svg version="1.1" baseProfile="tiny" id="svg-root" width="160px" height="160px"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--svg version="1.1" baseProfile="tiny" id="svg-root" width="160px" height="160px"
+ viewBox="0 0 180 160" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"-->
+ <desc>Makes a simple graphic for testing alpha transparency</desc>
+ <radialGradient id="red" gradientUnits="objectBoundingBox">
+ <stop offset="0" stop-color="#f66"/>
+ <stop offset="0.3" stop-color="#f00" stop-opacity="0.5"/>
+ <stop offset="1" stop-color="#f00" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="green" gradientUnits="objectBoundingBox">
+ <stop offset="0" stop-color="#6f6"/>
+ <stop offset="0.3" stop-color="#0f0" stop-opacity="0.5"/>
+ <stop offset="1" stop-color="#0f0" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="blue" gradientUnits="objectBoundingBox">
+ <stop offset="0" stop-color="#66f"/>
+ <stop offset="0.3" stop-color="#00f" stop-opacity="0.5"/>
+ <stop offset="1" stop-color="#00f" stop-opacity="0"/>
+ </radialGradient>
+ <rect fill="none" stroke="#000" stroke-width="4" stroke-opacity="0.03" x="10" y="10" width="140"
+ height="140"/>
+ <rect fill="none" stroke="#000" stroke-width="4" stroke-opacity="0.06" x="20" y="20" width="120"
+ height="120"/>
+ <rect fill="none" stroke="#000" stroke-width="4" stroke-opacity="0.09" x="30" y="30" width="100"
+ height="100"/>
+ <circle r="50" cx="80" cy="50" fill="url(#red)" fill-opacity="0.8"/>
+ <circle r="50" cx="50" cy="110" fill="url(#green)" fill-opacity="0.8"/>
+ <circle r="50" cx="110" cy="110" fill="url(#blue)" fill-opacity="0.8"/>
+</svg>
diff --git a/test/svg/svg1.2/images/myimage.jpg b/test/svg/svg1.2/images/myimage.jpg
new file mode 100644
index 0000000..16009ed
Binary files /dev/null and b/test/svg/svg1.2/images/myimage.jpg differ
diff --git a/test/svg/svg1.2/images/nav_bullet.png b/test/svg/svg1.2/images/nav_bullet.png
new file mode 100644
index 0000000..f2f7c1f
Binary files /dev/null and b/test/svg/svg1.2/images/nav_bullet.png differ
diff --git a/test/svg/svg1.2/images/nav_down.png b/test/svg/svg1.2/images/nav_down.png
new file mode 100644
index 0000000..0e8fb8e
Binary files /dev/null and b/test/svg/svg1.2/images/nav_down.png differ
diff --git a/test/svg/svg1.2/images/nav_downleft.png b/test/svg/svg1.2/images/nav_downleft.png
new file mode 100644
index 0000000..8405698
Binary files /dev/null and b/test/svg/svg1.2/images/nav_downleft.png differ
diff --git a/test/svg/svg1.2/images/nav_downright.png b/test/svg/svg1.2/images/nav_downright.png
new file mode 100644
index 0000000..8397393
Binary files /dev/null and b/test/svg/svg1.2/images/nav_downright.png differ
diff --git a/test/svg/svg1.2/images/nav_frame.png b/test/svg/svg1.2/images/nav_frame.png
new file mode 100644
index 0000000..4eb974a
Binary files /dev/null and b/test/svg/svg1.2/images/nav_frame.png differ
diff --git a/test/svg/svg1.2/images/nav_left.png b/test/svg/svg1.2/images/nav_left.png
new file mode 100644
index 0000000..818c511
Binary files /dev/null and b/test/svg/svg1.2/images/nav_left.png differ
diff --git a/test/svg/svg1.2/images/nav_noframe.png b/test/svg/svg1.2/images/nav_noframe.png
new file mode 100644
index 0000000..9c5c872
Binary files /dev/null and b/test/svg/svg1.2/images/nav_noframe.png differ
diff --git a/test/svg/svg1.2/images/nav_right.png b/test/svg/svg1.2/images/nav_right.png
new file mode 100644
index 0000000..bcc3eea
Binary files /dev/null and b/test/svg/svg1.2/images/nav_right.png differ
diff --git a/test/svg/svg1.2/images/nav_svg.png b/test/svg/svg1.2/images/nav_svg.png
new file mode 100644
index 0000000..98bb21c
Binary files /dev/null and b/test/svg/svg1.2/images/nav_svg.png differ
diff --git a/test/svg/svg1.2/images/nav_up.png b/test/svg/svg1.2/images/nav_up.png
new file mode 100644
index 0000000..bab586c
Binary files /dev/null and b/test/svg/svg1.2/images/nav_up.png differ
diff --git a/test/svg/svg1.2/images/nav_upleft.png b/test/svg/svg1.2/images/nav_upleft.png
new file mode 100644
index 0000000..44e568b
Binary files /dev/null and b/test/svg/svg1.2/images/nav_upleft.png differ
diff --git a/test/svg/svg1.2/images/nav_upright.png b/test/svg/svg1.2/images/nav_upright.png
new file mode 100644
index 0000000..ffc2d92
Binary files /dev/null and b/test/svg/svg1.2/images/nav_upright.png differ
diff --git a/test/svg/svg1.2/images/pacman.wav b/test/svg/svg1.2/images/pacman.wav
new file mode 100644
index 0000000..0478d2f
Binary files /dev/null and b/test/svg/svg1.2/images/pacman.wav differ
diff --git a/test/svg/svg1.2/images/paths-data-01-f.png b/test/svg/svg1.2/images/paths-data-01-f.png
new file mode 100644
index 0000000..3886e79
Binary files /dev/null and b/test/svg/svg1.2/images/paths-data-01-f.png differ
diff --git a/test/svg/svg1.2/images/paths-data-01-f.svg b/test/svg/svg1.2/images/paths-data-01-f.svg
new file mode 100644
index 0000000..fe98a71
--- /dev/null
+++ b/test/svg/svg1.2/images/paths-data-01-f.svg
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!--======================================================================-->
+<!--= Copyright 2002 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- paths-data-01-f.svg -->
+<!-- 1.1 revision by Christophe Jolif -->
+<!-- -->
+<!-- Test that the viewer has the basic capability to handle the 'path' -->
+<!-- element and its data (d) attribute in combination with the cubic -->
+<!-- Bezier curveto commands, C, c, S, s (plus Mm and Zz). -->
+<!-- -->
+<!-- Author : Lofton Henderson, 29-Feb-2000 (based on work -->
+<!-- of Mark Sgarlato, Adobe). -->
+<!-- -->
+<!-- History: -->
+<!-- 29-Feb-2000, LRH, Ser#1 created. -->
+<!-- 12-Mar-2000, LH, fix test-framing rect; ser#2 -->
+<!-- 03-Aug-2000, LH: update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 15-Nov-2000, LH: add missing test-body-content group. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+Test that the viewer has the basic capability to handle the 'path'
+element and its data (d) attribute in combination with the cubic
+Bezier curveto commands, C, c, S, s (plus Mm and Zz).
+ </Paragraph>
+ <Paragraph>
+There are 8 subtests, each composed from the cubic Bezier path commands per
+the label by the subtest. On-curve control points (i.e., the curve position)
+are marked by small blue squares. Subtests are filled, or stroked, or
+both, using simple style properties and colors.
+ </Paragraph>
+ <Paragraph>
+The rendered picture should match the reference image exactly, except for possible
+variations in the labelling text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+The test uses the 'rect' element, as well as basic fill (solid primary colors),
+stroke (primary color 1-pixel lines), font-family (Helvetica) and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">paths-data-01-f</title>
+ <desc id="test-desc">Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the cubic Bezier curveto, both regular and shorthand/smooth forms - C, c, S, s (along with Mm and Zz).</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!-- ====================================================================== -->
+ <!-- First Curve "X" that has subpath utilizing M, C, S, m, c, & s ======== -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="100" y="14">Cubic bezier curves drawn with commands:</text>
+ <path id="X_curve_MCSmcs" fill="#FF0000" stroke="#00C000" d=" M 210 130 C 145 130 110 80 110 80 S 75 25 10 25 m 0 105 c 65 0 100 -50 100 -50 s 35 -55 100 -55 "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ===================================== -->
+ <!-- ====================================================================== -->
+ <rect x="208" y="128" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="108" y="78" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="8" y="23" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="8" y="128" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="108" y="78" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="208" y="23" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="5" y="82">M, C, S, m, c, s</text>
+ <!-- ====================================================================== -->
+ <!-- Infinity using M, c, c, c, C & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Infinity_McccCz" fill="none" stroke="#000000" d=" M 240 90 c 0 30 7 50 50 0 c 43 -50 50 -30 50 0 c 0 83 -68 -34 -90 -30 C 240 60 240 90 240 90 z "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="238" y="88" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="288" y="88" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="338" y="88" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="248" y="58" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="253" y="50">M, c, c, c, C, z</text>
+ <!-- ====================================================================== -->
+ <!-- Horizontal line utilizing M, C & Z =================================== -->
+ <!-- ====================================================================== -->
+ <path id="Line_MCZ" fill="none" stroke="#000000" d="M80 170 C100 170 160 170 180 170Z"/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="78" y="168" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="178" y="168" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="110" y="190">M, C, Z</text>
+ <!-- ====================================================================== -->
+ <!-- Inverted V using M, C, c & Z ========================================= -->
+ <!-- ====================================================================== -->
+ <path id="Inv_V_MCcZ" fill="#00C000" stroke="none" d="M5 260 C40 260 60 175 55 160 c -5 15 15 100 50 100Z"/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="3" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="53" y="158" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="103" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="85" y="220">M, C, c, Z</text>
+ <!-- ====================================================================== -->
+ <!-- Remembrance Ribbon using m, c & s ==================================== -->
+ <!-- ====================================================================== -->
+ <path id="Rem_Rib_mcs" fill="none" stroke="#000000" d="m 200 260 c 50 -40 50 -100 25 -100 s -25 60 25 100 "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="198" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="223" y="158" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="248" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="165" y="210">m, c, s</text>
+ <!-- ====================================================================== -->
+ <!-- 90 degree arc using M & C ============================================ -->
+ <!-- ====================================================================== -->
+ <path id="Arc_MC" fill="#0000FF" stroke="#000000" d=" M 360 100 C 420 90 460 140 450 190"/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="98" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="448" y="188" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="360" y="150">M, C</text>
+ <!-- ====================================================================== -->
+ <!-- Circle using M, c, s, s, s & z ======================================= -->
+ <!-- ====================================================================== -->
+ <path id="Circle_Mcssz" fill="#FFFF00" stroke="#000000" d="M360 210 c 0 20 -16 36 -36 36 s -36 -16 -36 -36 s 16 -36 36 -36 s 36 16 36 36 z "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="208" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="322" y="244" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="286" y="208" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="322" y="172" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="290" y="265">M, c, s, s, s, z</text>
+ <!-- ====================================================================== -->
+ <!-- Inverted horseshoe using m, c & z ==================================== -->
+ <!-- ====================================================================== -->
+ <path id="Horseshoe_Mcs" fill="#F0F0F0" stroke="#FF0000" d="m 360 325 c -40 -60 95 -100 80 0 z "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="323" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="438" y="323" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-family="Helvetica" font-size="12" x="380" y="340">m, c, z</text>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue">Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">paths-data-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/paths-data-02-f.png b/test/svg/svg1.2/images/paths-data-02-f.png
new file mode 100644
index 0000000..968ed60
Binary files /dev/null and b/test/svg/svg1.2/images/paths-data-02-f.png differ
diff --git a/test/svg/svg1.2/images/paths-data-02-f.svg b/test/svg/svg1.2/images/paths-data-02-f.svg
new file mode 100644
index 0000000..06473c6
--- /dev/null
+++ b/test/svg/svg1.2/images/paths-data-02-f.svg
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!--======================================================================-->
+<!--= Copyright 2002 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- paths-data-02-f.svg -->
+<!-- 1.1 revision by Christophe Jolif -->
+<!-- -->
+<!-- Test that the viewer has the basic capability to handle the 'path' -->
+<!-- element and its data (d) attribute in combination with the quadratic -->
+<!-- Bezier curveto commands, Q, q, T, t (plus Mm and Zz). -->
+<!-- -->
+<!-- Author : Lofton Henderson, 29-Feb-2000 (based on work -->
+<!-- of Mark Sgarlato, Adobe). -->
+<!-- -->
+<!-- History: -->
+<!-- 29-Feb-2000, LRH, Ser#1 created. -->
+<!-- 12-Mar-2000, LH, fix test-framing rect; ser#2 -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 17-Aug-2000, JF=" fix duplicate ID bug" ser#3. -->
+<!-- 15-Nov-2000, LH: add missing test-body-content group. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+Test that the viewer has the basic capability to handle the 'path'
+element and its data (d) attribute in combination with the quadratic
+Bezier curveto commands, Q, q, T, t (plus Mm and Zz).
+ </Paragraph>
+ <Paragraph>
+There are 7 subtests, each composed from the quadric Bezier path commands per
+the label by the subtest. On-curve control points (i.e., the curve position)
+are marked by small colored squares. Subtests are filled, or stroked, or
+both, using simple style properties and colors.
+ </Paragraph>
+ <Paragraph>
+The rendered picture should match the reference image exactly, except for possible
+variations in the labelling text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+The test uses the 'rect' element, as well as basic fill (solid primary colors),
+stroke (primary color wide and 1-pixel lines), font-family (Helvetica) and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+ <title id="test-title">paths-data-02-f</title>
+ <desc id="test-desc">Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the quadratic Bezier curveto commands, both regular and shorthand/smooth forms - Q, q, T, t (along with Mm and Zz).</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text font-family="Helvetica" font-size="12" x="120" y="14">Quadric bezier curves drawn with commands:</text>
+ <!-- ====================================================================== -->
+ <!-- Quad Bezier with sub-path using M, Q, M, q, & z ====================== -->
+ <!-- ====================================================================== -->
+ <path id="Bez_MQMqz" fill="none" stroke="#0000FF" stroke-width="3" d="M 15 20 Q 30 120 130 30 M 180 80 q -75 -100 -163 -60z"/>
+ <text font-family="Helvetica" font-size="12" x="80" y="86">M, Q, M, q, z</text>
+ <rect x="13" y="18" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="128" y="28" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="178" y="78" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="15" y="18" width="4" height="4" fill="#00C000" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Quad Bezier with sub-path using m, q, z, m, q, & z =================== -->
+ <!-- ====================================================================== -->
+ <path id="Bez_fill_MQzmqz" fill="#FFFF00" stroke="#CF0000" d="M372 130Q272 50 422 10zm70 0q50-150-80-90z"/>
+ <text font-family="Helvetica" font-size="12" x="352" y="150">m, q, z, m, q, z</text>
+ <rect x="370" y="128" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="420" y="8" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="440" y="128" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="360" y="38" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Simple Bezier using M, Q, & Z ======================================== -->
+ <!-- ====================================================================== -->
+ <path id="Bez_stroke_MQz" fill="none" stroke="#00FFFF" d="M224 103Q234 -12 304 33Z"/>
+ <text font-family="Helvetica" font-size="12" x="192" y="36">M, Q, Z</text>
+ <rect x="222" y="101" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="302" y="31" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Tri Bezier using M, Q, T, Q, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Tri_MQTQz" fill="#00C000" stroke="#000000" d="M208 168Q258 268 308 168T258 118Q128 88 208 168z"/>
+ <text font-family="Helvetica" font-size="12" x="308" y="188">M, Q, T, Q, z</text>
+ <rect x="206" y="166" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="306" y="166" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="256" y="116" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="206" y="206" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Double Bezier using M, Q, Q, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Inv_V_MCcZ" fill="#CF0000" stroke="none" d=" M 60 100 Q -40 150 60 200 Q 160 150 60 100 z "/>
+ <text font-family="Helvetica" font-size="12" x="80" y="200">M, Q, Q, z</text>
+ <rect x="58" y="98" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="58" y="198" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="58" y="98" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Sin Wave using M, q, t, t, t, t, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path id="Sin_Mqttttz" fill="none" stroke="#FF0000" d="M240 296q25-100 47 0t47 0t47 0t47 0t47 0z"/>
+ <text font-family="Helvetica" font-size="12" x="380" y="236">M, q, t, t, t, t, z</text>
+ <rect x="238" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="285" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="332" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="379" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="426" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="473" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Double Spade using M, q, Q, q, Q, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path id="Dbl_spd_MCcZ" fill="#0000C0" stroke="#00CF00" stroke-width="2" d="M172 193q-100 50 0 50Q72 243 172 293q100 -50 0 -50Q272 243 172 193z"/>
+ <text font-family="Helvetica" font-size="12" x="48" y="280">M, q, Q, q, Q, z</text>
+ <rect x="170" y="191" width="4" height="4" fill="#FF0000" stroke="none"/>
+ <rect x="170" y="241" width="4" height="4" fill="#FF0000" stroke="none"/>
+ <rect x="170" y="291" width="4" height="4" fill="#FF0000" stroke="none"/>
+ <rect x="170" y="241" width="4" height="4" fill="#FF0000" stroke="none"/>
+ <rect x="170" y="191" width="4" height="4" fill="#FF0000" stroke="none"/>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10">
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000"/>
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue">Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">paths-data-02-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/paths-data-03-f.png b/test/svg/svg1.2/images/paths-data-03-f.png
new file mode 100644
index 0000000..a5f466b
Binary files /dev/null and b/test/svg/svg1.2/images/paths-data-03-f.png differ
diff --git a/test/svg/svg1.2/images/paths-data-03-f.svg b/test/svg/svg1.2/images/paths-data-03-f.svg
new file mode 100644
index 0000000..6e524d2
--- /dev/null
+++ b/test/svg/svg1.2/images/paths-data-03-f.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- path-curves-BE-04.svg -->
+<!-- renamed for 1.1 suite to paths-data-03-f.svg -->
+<!-- -->
+<!-- Test that the viewer has the basic capability to handle the 'path' -->
+<!-- element and its data (d) attribute in combination with the elliptical -->
+<!-- arc curveto commands, A, a (plus Mm and Zz). -->
+<!-- -->
+<!-- Author : Lofton Henderson, 29-Feb-2000 (based on work -->
+<!-- of Mark Sgarlato, Adobe). -->
+<!-- -->
+<!-- History: -->
+<!-- 29-Feb-2000, LRH, Ser#1 created. -->
+<!-- 12-Mar-2000, LH, fix test-framing rect; ser#2 -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 29-Oct-2000, JF: add fill-rule:evenodd to one path to get same -->
+<!-- visual result as before. Necessary because default -->
+<!-- fill-rule is now nonzero. Update to ser#3. -->
+<!-- 15-Nov-2000, LH: add missing test-body-content group. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript>
+ <Paragraph>
+Test that the viewer has the basic capability to handle the 'path'
+element and its data (d) attribute in combination with the elliptical
+arc curveto commands, A, a (plus Mm and Zz).
+ </Paragraph>
+ <Paragraph>
+There are 6 subtests, each composed from the elliptical arc path commands per
+the label by the subtest. The curve positions
+are marked by small colored squares. Subtests are filled, or stroked, or
+both, using simple style properties and colors.
+ </Paragraph>
+ <Paragraph>
+The rendered picture should match the reference image exactly, except for possible
+variations in the labelling text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+The test uses the 'rect' element, as well as basic fill (solid primary colors),
+stroke (primary color wide and 1-pixel lines), font-family (Helvetica) and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">paths-data-03-f.svg</title>
+ <desc id="test-desc">Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the elliptical Arc curveto commands - A, a (along with Mm and Zz).</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text font-family="Helvetica" font-size="12" x="120" y="14">Elliptical arc curves drawn with commands:</text>
+ <!-- ====================================================================== -->
+ <!-- Simple circle using MAZ ============================ -->
+ <!-- ====================================================================== -->
+ <path id="Arc_MAZ" fill="none" stroke="#FF0000" stroke-width="10" d=" M 25 70 A 40 40 0 1 0 25 69 Z "/>
+ <text font-family="Helvetica" font-size="12" x="48" y="70">M, A, Z</text>
+ <rect x="23" y="68" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="23" y="67" width="4" height="4" fill="#00C000" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- filled arc using m, a, & z =================== -->
+ <!-- ====================================================================== -->
+ <path id="Arc_fill_maz" fill="#00FF00" stroke="#0000FF" d=" m 150 100 a 50 40 0 1 0 25 -70 z "/>
+ <text font-family="Helvetica" font-size="12" x="124" y="45">m, a, z</text>
+ <rect x="148" y="98" width="4" height="4" fill="#CF0000" stroke="none" />
+ <rect x="173" y="28" width="4" height="4" fill="#CF0000" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Unterminated arc using M & a ======================================== -->
+ <!-- ====================================================================== -->
+ <path id="Arc_Ma" fill="none" stroke="#000000" d=" M 350 245 a 40 40 0 1 0 80 60 "/>
+ <text font-family="Helvetica" font-size="12" x="390" y="300">M, a</text>
+ <rect x="348" y="243" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="428" y="303" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Triple Arc using M, A, a, a, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Tri_MAaaz" fill="#C0C000" stroke="none" fill-rule="evenodd" d=" M 270 30 A 50 50 0 1 0 345 30 a 50 50 0 1 0 50 0 a 50 50 0 1 0 25 0 z "/>
+ <text font-family="Helvetica" font-size="12" x="280" y="135">M, A, a, a, z</text>
+ <rect x="268" y="28" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="343" y="28" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="393" y="28" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="418" y="28" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Tripple arc using M, a, Z, m, A, Z, m, a & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Arc_MaZmAzmaz" fill="#CF0000" stroke="#000000" stroke-width="3" d=" M 30 150 a 40 40 0 0 1 65 50 Z m 30 30 A 20 20 0 0 0 125 230 Z m 40 24 a 20 20 0 0 1 65 50 z "/>
+ <text font-family="Helvetica" font-size="12" x="25" y="270">M, a, Z, m, A, Z, m, a, z</text>
+ <rect x="28" y="148" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="93" y="198" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="58" y="178" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="123" y="228" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="98" y="202" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="163" y="252" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Sin Wave using M, q, t, t, t, t, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path id="Sin_MAAAAA" fill="none" stroke="#FF0000" d=" M 215 190 A 40 200 10 0 0 265 190 A 40 200 20 0 1 315 190 A 40 200 30 0 0 365 190 A 40 200 40 0 1 415 190 A 40 200 50 0 0 465 190 "/>
+ <text font-family="Helvetica" font-size="12" x="215" y="246">M, A, A, A, A</text>
+ <rect x="213" y="188" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="263" y="188" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="313" y="188" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="363" y="188" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="413" y="188" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="463" y="188" width="4" height="4" fill="#0000FF" stroke="none" />
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">paths-data-03-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/paths-data-04-f.png b/test/svg/svg1.2/images/paths-data-04-f.png
new file mode 100644
index 0000000..ed52be5
Binary files /dev/null and b/test/svg/svg1.2/images/paths-data-04-f.png differ
diff --git a/test/svg/svg1.2/images/paths-data-04-f.svg b/test/svg/svg1.2/images/paths-data-04-f.svg
new file mode 100644
index 0000000..069c2c5
--- /dev/null
+++ b/test/svg/svg1.2/images/paths-data-04-f.svg
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- path-lines-BE-01.svg -->
+<!-- renamed for 1.1 suite to paths-data-04-f.svg -->
+<!-- -->
+<!-- Test that viewer has the basic capability to handle the <path> -->
+<!-- element and data (d) attribute in combination with the moveto, -->
+<!-- lineto, and closepath commands - M, L, Z, m, l, and z. -->
+<!-- -->
+<!-- Author : Lofton Henderson, 20-Jan-2000 (from Mark Sgarlato, Adobe). -->
+<!-- -->
+<!-- History: -->
+<!-- 20-Jan-2000, LH, Serial#1 created. Matches 20000110 SVG spec. -->
+<!-- 12-Mar-2000, LH, fix test-framing rect; ser#2 -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 29-Oct-2000, JF: add fill-rule:evenodd to two paths to get same -->
+<!-- visual result as before. Necessary because default -->
+<!-- fill-rule is now nonzero. Update to ser#3. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript>
+ <Paragraph>
+Verify the basic capability to handle the 'path' element, and its data attribute (d)
+in combination with the straight-line path commands.
+Four pairs of figures should be displayed in the
+four quadrants. The shapes in each pair are identical, with one stroked and
+one filled. Two pairs of concentric equilateral triangles are drawn using respectively
+M,L,Z and m,l,z. The fill-mode default of "even-odd" means that
+the inner triangle is hollow. Two pairs of staircase figures are drawn using
+respectively M,H,V,Z and m,h,v,z.
+ </Paragraph>
+ <Paragraph>
+The rendered picture should match the reference image exactly, except for possible
+variations in the labelling text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+The test uses the 'rect' element, as well as basic fill (solid primary colors),
+stroke (black 1-pixel lines), font-family (Helvetica) and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">paths-data-04-f</title>
+ <desc id="test-desc">Test that viewer has the basic capability to handle the <path> element and data (d) attribute in combination with the moveto, lineto, and closepath commands - M, L, Z, m, l, and z.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!-- ====================================================================== -->
+ <!-- First Group of Triangles using M, L & Z commands ===================== -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="160" y="14">Lines drawn with commands:</text>
+ <text font-family="Helvetica" font-size="12" x="88" y="30">M, L, L, L, Z,</text>
+ <text font-family="Helvetica" font-size="12" x="98" y="46">subpath</text>
+ <text font-family="Helvetica" font-size="12" x="88" y="61">M, L, L, L, Z</text>
+ <path id="Triangle_stroke_MLZ" fill="none" stroke="#000000" d=" M 62.00000 56.00000 L 113.96152 146.00000 L 10.03848 146.00000 L 62.00000 56.00000 Z M 62.00000 71.00000 L 100.97114 138.50000 L 23.02886 138.50000 L 62.00000 71.00000 Z "/>
+ <rect x="60.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="111.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="8.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="60.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="98.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="21.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <text font-family="Helvetica" font-size="12" x="42" y="162">stroked</text>
+ <path id="Triangle_fill_MLZ" fill="#FF0000" stroke="none" fill-rule="evenodd" d=" M 177.00000 56.00000 L 228.96152 146.00000 L 125.03848 146.00000 L 177.00000 56.00000 Z M 177.00000 71.00000 L 215.97114 138.50000 L 138.02886 138.50000 L 177.00000 71.00000 Z "/>
+ <rect x="175.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="226.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="123.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="175.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="213.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="136.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <text font-family="Helvetica" font-size="12" x="162" y="162">filled</text>
+ <!-- ====================================================================== -->
+ <!-- Second Group of Triangles using m, l & z commands===================== -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="96" y="180">m, l, l, l, z,</text>
+ <text font-family="Helvetica" font-size="12" x="100" y="194">subpath</text>
+ <text font-family="Helvetica" font-size="12" x="97" y="208">m, l, l, l, z</text>
+ <path id="Triangle_stroke_mlz" fill="none" stroke="#000000" d=" m 62.00000 190.00000 l 51.96152 90.00000 l -103.92304 0.00000 l 51.96152 -90.00000 z m 0.00000 15.00000 l 38.97114 67.50000 l -77.91228 0.00000 l 38.97114 -67.50000 z "/>
+ <rect x="60.00000" y="188.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="111.96152" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="8.03848" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="60.00000" y="203.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="98.97114" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="21.02886" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <path id="Triangle_fill_mlz" fill="#00C000" stroke="none" fill-rule="evenodd" d=" m 177.00000 190.00000 l 51.96152 90.00000 l -103.92304 0.00000 l 51.96152 -90.00000 z m 0.00000 15.00000 l 38.97114 67.50000 l -77.91228 0.00000 l 38.97114 -67.50000 z "/>
+ <rect x="175.00000" y="188.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="226.96152" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="123.03848" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="175.00000" y="203.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="213.97114" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="136.02886" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- First Group of Stairs using M, H, V & Z commands====================== -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="288" y="30">M, H, V, H,</text>
+ <text font-family="Helvetica" font-size="12" x="288" y="46">V. H, V, H,</text>
+ <text font-family="Helvetica" font-size="12" x="304" y="62">V, Z</text>
+ <path id="Stairs_stroke_MHVZ" fill="none" stroke="#000000" d=" M 240.00000 56.00000 H 270.00000 V 86.00000 H 300.00000 V 116.00000 H 330.00000 V 146.00000 H 240.00000 V 56.00000 Z "/>
+ <rect x="238.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="268.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="268.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="298.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="298.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="328.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="328.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="238.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <path id="Stairs_fill_MHVZ" fill="#0000FF" stroke="none" d=" M 350.00000 56.00000 H 380.00000 V 86.00000 H 410.00000 V 116.00000 H 440.00000 V 146.00000 H 350.00000 V 56.00000 Z "/>
+ <rect x="348.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="378.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="378.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="408.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="408.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="438.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="438.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="348.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Second Group of Stairs using m, h, v & z commands====================== -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="288" y="180">m, h, v, h</text>
+ <text font-family="Helvetica" font-size="12" x="288" y="194">v, h, v, h</text>
+ <text font-family="Helvetica" font-size="12" x="304" y="208">v, z</text>
+ <path id="Stairs_stroke_mhvz" fill="none" stroke="#000000" d=" m 240.00000 190.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h -90.00000 v -90.00000 z "/>
+ <rect x="238.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="268.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="268.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="298.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="298.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="328.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="328.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="238.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <path id="Stairs_fill_mhvz" fill="#FFFF00" stroke="none" d=" m 350.00000 190.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h -90.00000 v -90.00000 z "/>
+ <rect x="348.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="378.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="378.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="408.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="408.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="438.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="438.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="348.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">paths-data-04-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 3.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/pinksquidj.png b/test/svg/svg1.2/images/pinksquidj.png
new file mode 100644
index 0000000..e88ae4e
Binary files /dev/null and b/test/svg/svg1.2/images/pinksquidj.png differ
diff --git a/test/svg/svg1.2/images/plant.jpg b/test/svg/svg1.2/images/plant.jpg
new file mode 100644
index 0000000..8554121
Binary files /dev/null and b/test/svg/svg1.2/images/plant.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image0.jpg b/test/svg/svg1.2/images/pref_image0.jpg
new file mode 100644
index 0000000..d096dd1
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image0.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image1.jpg b/test/svg/svg1.2/images/pref_image1.jpg
new file mode 100644
index 0000000..556c5a8
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image1.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image2.jpg b/test/svg/svg1.2/images/pref_image2.jpg
new file mode 100644
index 0000000..663ffef
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image2.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image3.jpg b/test/svg/svg1.2/images/pref_image3.jpg
new file mode 100644
index 0000000..452daf7
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image3.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image4.jpg b/test/svg/svg1.2/images/pref_image4.jpg
new file mode 100644
index 0000000..6b6bc45
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image4.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image5.jpg b/test/svg/svg1.2/images/pref_image5.jpg
new file mode 100644
index 0000000..cfbac36
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image5.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image6.jpg b/test/svg/svg1.2/images/pref_image6.jpg
new file mode 100644
index 0000000..4f5380b
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image6.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image7.jpg b/test/svg/svg1.2/images/pref_image7.jpg
new file mode 100644
index 0000000..1b0cecd
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image7.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image8.jpg b/test/svg/svg1.2/images/pref_image8.jpg
new file mode 100644
index 0000000..88255c9
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image8.jpg differ
diff --git a/test/svg/svg1.2/images/pref_image9.jpg b/test/svg/svg1.2/images/pref_image9.jpg
new file mode 100644
index 0000000..16e1b01
Binary files /dev/null and b/test/svg/svg1.2/images/pref_image9.jpg differ
diff --git a/test/svg/svg1.2/images/purplesquidj.png b/test/svg/svg1.2/images/purplesquidj.png
new file mode 100644
index 0000000..90000a8
Binary files /dev/null and b/test/svg/svg1.2/images/purplesquidj.png differ
diff --git a/test/svg/svg1.2/images/rects.svg b/test/svg/svg1.2/images/rects.svg
new file mode 100644
index 0000000..ea0e57f
--- /dev/null
+++ b/test/svg/svg1.2/images/rects.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="drawrects-structure-image-BE-06" viewBox="0 0 450 450" width="450" height="450" >
+
+ <g id="drawRects">
+ <rect x="225" y="0" width="225" height="225" style="fill:red" />
+ <rect x="0" y="225" width="225" height="225" style="fill:yellow" />
+ </g>
+ </svg>
+
diff --git a/test/svg/svg1.2/images/rects_b.svg b/test/svg/svg1.2/images/rects_b.svg
new file mode 100644
index 0000000..5c25ea0
--- /dev/null
+++ b/test/svg/svg1.2/images/rects_b.svg
@@ -0,0 +1,6 @@
+<svg width="80" height="80" viewBox="0 0 80 80">
+ <rect fill="#f63" stroke="none" x="0" y="0" width="40" height="40"/>
+ <rect fill="#cc9" stroke="none" x="40" y="0" width="40" height="40"/>
+ <rect fill="#cc9" stroke="none" x="0" y="40" width="40" height="40"/>
+ <rect fill="#f63" stroke="none" x="40" y="40" width="40" height="40"/>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/resources.svg b/test/svg/svg1.2/images/resources.svg
new file mode 100644
index 0000000..fa56519
--- /dev/null
+++ b/test/svg/svg1.2/images/resources.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+
+ <rect xml:id="rect" width="480" height="360" fill="blue" fill-opacity="0.2"/>
+
+ <rect xml:id="rect" x="290" y="130" width="100" height="100" fill="blue"/>
+ <circle xml:id="circle" cx="100" cy="100" r="50" fill="green"/>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/rgbalpha.png b/test/svg/svg1.2/images/rgbalpha.png
new file mode 100644
index 0000000..c2e3baa
Binary files /dev/null and b/test/svg/svg1.2/images/rgbalpha.png differ
diff --git a/test/svg/svg1.2/images/rightarrow.png b/test/svg/svg1.2/images/rightarrow.png
new file mode 100644
index 0000000..c29fb8a
Binary files /dev/null and b/test/svg/svg1.2/images/rightarrow.png differ
diff --git a/test/svg/svg1.2/images/rotate20.png b/test/svg/svg1.2/images/rotate20.png
new file mode 100644
index 0000000..e566bfa
Binary files /dev/null and b/test/svg/svg1.2/images/rotate20.png differ
diff --git a/test/svg/svg1.2/images/script1.js b/test/svg/svg1.2/images/script1.js
new file mode 100644
index 0000000..0a3e7d8
--- /dev/null
+++ b/test/svg/svg1.2/images/script1.js
@@ -0,0 +1 @@
+document.getElementById('c1').setAttributeNS(null, 'fill','green');
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/script10.js b/test/svg/svg1.2/images/script10.js
new file mode 100644
index 0000000..b987cf0
--- /dev/null
+++ b/test/svg/svg1.2/images/script10.js
@@ -0,0 +1 @@
+document.getElementById('c8').setAttributeNS(null, 'fill','red');
diff --git a/test/svg/svg1.2/images/script2.js b/test/svg/svg1.2/images/script2.js
new file mode 100644
index 0000000..9722146
--- /dev/null
+++ b/test/svg/svg1.2/images/script2.js
@@ -0,0 +1 @@
+document.getElementById('c2').setAttributeNS(null, 'fill','red');
diff --git a/test/svg/svg1.2/images/script3.js b/test/svg/svg1.2/images/script3.js
new file mode 100644
index 0000000..b006731
--- /dev/null
+++ b/test/svg/svg1.2/images/script3.js
@@ -0,0 +1 @@
+document.getElementById('c3').setAttributeNS(null, 'fill','green');
diff --git a/test/svg/svg1.2/images/script4.js b/test/svg/svg1.2/images/script4.js
new file mode 100644
index 0000000..9e9c0ca
--- /dev/null
+++ b/test/svg/svg1.2/images/script4.js
@@ -0,0 +1 @@
+document.getElementById('c3').setAttributeNS(null, 'fill','red');
diff --git a/test/svg/svg1.2/images/script5.js b/test/svg/svg1.2/images/script5.js
new file mode 100644
index 0000000..dbd62a8
--- /dev/null
+++ b/test/svg/svg1.2/images/script5.js
@@ -0,0 +1 @@
+document.getElementById('c4').setAttributeNS(null, 'fill','red');
diff --git a/test/svg/svg1.2/images/script6.js b/test/svg/svg1.2/images/script6.js
new file mode 100644
index 0000000..2ddff15
--- /dev/null
+++ b/test/svg/svg1.2/images/script6.js
@@ -0,0 +1 @@
+document.getElementById('c6').setAttributeNS(null, 'fill','green');
diff --git a/test/svg/svg1.2/images/script7.js b/test/svg/svg1.2/images/script7.js
new file mode 100644
index 0000000..e3dfeb4
--- /dev/null
+++ b/test/svg/svg1.2/images/script7.js
@@ -0,0 +1 @@
+document.getElementById('c7').setAttributeNS(null, 'fill','red');
diff --git a/test/svg/svg1.2/images/script8.js b/test/svg/svg1.2/images/script8.js
new file mode 100644
index 0000000..7d9d2ba
--- /dev/null
+++ b/test/svg/svg1.2/images/script8.js
@@ -0,0 +1 @@
+document.getElementById('c7').setAttributeNS(null, 'fill','green');
diff --git a/test/svg/svg1.2/images/script9.js b/test/svg/svg1.2/images/script9.js
new file mode 100644
index 0000000..ef4c3f5
--- /dev/null
+++ b/test/svg/svg1.2/images/script9.js
@@ -0,0 +1 @@
+document.getElementById('c8').setAttributeNS(null, 'fill','green');
diff --git a/test/svg/svg1.2/images/scriptresource.svg b/test/svg/svg1.2/images/scriptresource.svg
new file mode 100644
index 0000000..4756578
--- /dev/null
+++ b/test/svg/svg1.2/images/scriptresource.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+
+ <g xml:id="g">
+ <rect xml:id="rect" width="80" height="80" fill="red"/>
+ <script>
+ var elm = document.getElementById("rect");
+ elm.setAttribute("fill", "green");
+ </script>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/shapes-ellipse-01-b.svg b/test/svg/svg1.2/images/shapes-ellipse-01-b.svg
new file mode 100644
index 0000000..20acffc
--- /dev/null
+++ b/test/svg/svg1.2/images/shapes-ellipse-01-b.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg11.dtd">
+<!-- =====================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!-- =====================================================================-->
+<!-- =====================================================================-->
+<!-- -->
+<!-- struct-cond-01-b.svg -->
+<!-- Test that viewer has the basic capability -->
+<!-- to handle the 'ellipse' element. -->
+<!-- Author : V.Katrushenko, BitFlash Inc., 2002 -->
+
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="160" height="120">
+ <title id="test-title">shapes-rect-01-b</title>
+ <desc id="test-desc">Test that viewer has the basic capability to render the 'ellipse'element</desc>
+
+<!--Content of Test Case follows...=======================================-->
+
+<g id="test-body-content">
+ <ellipse id="default" cx="24" cy="22" rx="14" ry="9"/>
+ <ellipse id="nofill" stroke="#066" fill="none" cx="60" cy="22" rx="14" ry="9"/>
+ <text font-size="10" x="12" y="42">default</text>
+
+ <ellipse id="nostroke" stroke="none" cx="24" cy="56" rx="14" ry="9" />
+ <ellipse id="strokeNfill" stroke="#006699" stroke-width="4" fill="#f90" cx="60" cy="56" rx="14" ry="9"/>
+ <text font-size="10" x="12" y="76">filled</text>
+
+ <ellipse id="rxNyx" cx="102" cy="20" rx="12" ry="12"/>
+ <ellipse id="nofill" stroke="#066" fill="none" cx="136" cy="20" rx="12" ry="12"/>
+ <text font-size="10" x="88" y="42">'rx'='ry'</text>
+
+ <ellipse id="allattr" fill="#f90" stroke="#069" stroke-width="4" cx="120" cy="56" rx="30" ry="9"/>
+ <text font-size="10" x="88" y="76">all attributes</text>
+
+
+</g>
+
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <rect id="slideframe" fill="none" stroke="#000000" stroke-width="1" x="1" y="1" width="158" height="118"/>
+ <g id="test-legend" fill="black" font-size="10" >
+ <rect x="3" y="81" width="154" height="36" fill="none" stroke="#000000" />
+ <text x="8" y="91">SVG v1.1 Conformance Suite</text>
+ <rect x="3" y="93" width="154" height="12" fill="none" stroke="#000000" />
+ <text font-size="9" x="8" y="103">shapes-ellipse-01-b</text>
+ <line stroke="#000000" x1="90" y1="93" x2="90" y2="117" />
+ <text font-size="9" x="91" y="103">$Revision: 1.1 $</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="20" y="115" fill="blue">©2002 W3C</text>
+ </a>
+ <text font-size="9" x="92" y="115">Release 1.0</text>
+ </g>
+
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/shapes-ellipse-01-f.png b/test/svg/svg1.2/images/shapes-ellipse-01-f.png
new file mode 100644
index 0000000..73e78ad
Binary files /dev/null and b/test/svg/svg1.2/images/shapes-ellipse-01-f.png differ
diff --git a/test/svg/svg1.2/images/shapes-ellipse-01-f.svg b/test/svg/svg1.2/images/shapes-ellipse-01-f.svg
new file mode 100644
index 0000000..18264af
--- /dev/null
+++ b/test/svg/svg1.2/images/shapes-ellipse-01-f.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- shapes-ellipse-BE-01.svg -->
+<!-- renamed for 1.1 suite to shapes-ellipse-01-f.svg -->
+<!-- -->
+<!-- Test that viewer has the basic capability to handle the <ellipse> -->
+<!-- element. -->
+<!-- -->
+<!-- Author : Kelvin R. Lawrence, 3-Feb-2000 -->
+<!-- -->
+<!-- History: -->
+<!-- 3-Feb-2000, KRL, Serial#1 created. Matches 20000202 SVG spec. -->
+<!-- 27-Feb-2000, LRH, Serial#2, fix TC name, formatting, create .XML -->
+<!-- 12-Mar-2000, LH, fix test-framing rect; ser#3 -->
+<!-- 04-Jun-2000, LH, fix label in Legend; ser#4 -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript>
+ <Paragraph>
+Verify the basic capability to handle the 'ellipse'
+shape element. Four pairs of ellipses should be displayed in the
+four quadrants, with the shapes in each pair being identical. Filling, stroking,
+and filling-plus-stroking are applied, and the cx,cy (center position) and
+rx,ry (ellipse radii) attributes are varied.
+ </Paragraph>
+ <Paragraph>
+The rendered picture should match the reference image, except for possible
+variations in the labelling text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+This test uses 'text', 'rect' and 'path' elements, as well as
+fill (solid primary colors), stroke (primary colors and wide lines),
+font-family ("Helvetica"), and font-size properties within the 'style' attribute.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">shapes-ellipse-01-f</title>
+ <desc id="test-desc">Test that viewer has the basic capability to handle the <ellipse> element.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!-- ====================================================================== -->
+ <!-- First pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="160" y="14">Basic ellipses</text>
+ <text font-family="Helvetica" font-size="12" x="82" y="20">rx=30</text>
+ <text font-family="Helvetica" font-size="12" x="82" y="38">ry=50</text>
+ <ellipse id="ellipse-01" fill="none" stroke="#000000" cx="50" cy="75" rx="30" ry="50"/>
+ <ellipse id="ellipse-02" fill="red" cx="160" cy="75" rx="30" ry="50"/>
+ <text font-family="Helvetica" font-size="12" x="32" y="142">stroked</text>
+ <text font-family="Helvetica" font-size="12" x="148" y="142">filled</text>
+ <!-- ====================================================================== -->
+ <!-- Second pair of ellipses, should actually draw circles. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="298" y="20">rx=35</text>
+ <text font-family="Helvetica" font-size="12" x="298" y="38">ry=35</text>
+ <ellipse id="ellipse-03" fill="none" stroke="#000000" cx="270" cy="80" rx="35" ry="35"/>
+ <ellipse id="ellipse-04" fill="red" cx="370" cy="80" rx="35" ry="35"/>
+ <text font-family="Helvetica" font-size="12" x="250" y="142">stroked</text>
+ <text font-family="Helvetica" font-size="12" x="358" y="142">filled</text>
+ <!-- ====================================================================== -->
+ <!-- Third pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="82" y="170">rx=30</text>
+ <text font-family="Helvetica" font-size="12" x="82" y="186">ry=50</text>
+ <ellipse id="ellipse-05" fill="none" stroke="#0000FF" stroke-width="8" cx="50" cy="220" rx="30" ry="50"/>
+ <ellipse id="ellipse-06" fill="#00FF00" stroke="#0000FF" stroke-width="8" cx="160" cy="220" rx="30" ry="50"/>
+ <text font-family="Helvetica" font-size="12" x="36" y="292">stroked</text>
+ <text font-family="Helvetica" font-size="12" x="118" y="292">filled & stroked</text>
+ <!-- ====================================================================== -->
+ <!-- Fourth pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="242" y="170">rx=70</text>
+ <text font-family="Helvetica" font-size="12" x="242" y="186">ry=40</text>
+ <ellipse id="ellipse-07" fill="#00FF00" stroke="#0000FF" stroke-width="8" cx="330" cy="220" rx="70" ry="40"/>
+ <text font-family="Helvetica" font-size="12" x="292" y="292">filled & stroked</text>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">shapes-ellipse-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/shapes-rect-01-b.svg b/test/svg/svg1.2/images/shapes-rect-01-b.svg
new file mode 100644
index 0000000..c003f46
--- /dev/null
+++ b/test/svg/svg1.2/images/shapes-rect-01-b.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg11.dtd">
+<!-- =====================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!-- =====================================================================-->
+<!-- =====================================================================-->
+<!-- -->
+<!-- struct-cond-01-b.svg -->
+<!-- Test that viewer has the basic capability -->
+<!-- to handle the 'rect' element. -->
+<!-- Author : V.Katrushenko, BitFlash Inc., 2002 -->
+
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="160" height="120">
+ <title id="test-title">shapes-rect-01-b</title>
+ <desc id="test-desc">Test that viewer has the basic capability to render the 'rect'element</desc>
+
+<!--Content of Test Case follows...=======================================-->
+
+<g id="test-body-content">
+ <rect id="default" x="12" y="14" width="24" height="18" />
+ <rect id="nofill" stroke="#066" fill="none" x="48" y="14" width="24" height="18"/>
+ <text font-size="10" x="12" y="42">default</text>
+
+ <rect id="nostroke" stroke="none" x="12" y="48" width="24" height="18" />
+ <rect id="stroke-fill" stroke="#006699" stroke-width="4" fill="#f90" x="48" y="48" width="24" height="18"/>
+ <text font-size="10" x="12" y="76">filled</text>
+
+ <rect id="roundcorner1" fill="none" stroke="#000" rx="9" x="88" y="14" width="24" height="18" />
+ <rect id="roundcorner2" fill="#f90" stroke="#069" stroke-width="4" rx="9" x="124" y="14" width="24" height="18"/>
+ <text font-size="10" x="88" y="42">rounded 'x'</text>
+
+ <rect id="rouncorner1" fill="none" stroke="#000" rx="12" ry="16" x="88" y="48" width="24" height="18" />
+ <rect id="rouncorner22" fill="#f90" stroke="#069" stroke-width="4" rx="12" ry="16" x="124" y="48" width="24" height="18"/>
+ <text font-size="10" x="88" y="76">rounded 'x', 'y'</text>
+
+
+</g>
+
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <rect id="slideframe" fill="none" stroke="#000000" stroke-width="1" x="1" y="1" width="158" height="118"/>
+ <g id="test-legend" fill="black" font-size="10" >
+ <rect x="3" y="81" width="154" height="36" fill="none" stroke="#000000" />
+ <text x="8" y="91">SVG v1.1 Conformance Suite</text>
+ <rect x="3" y="93" width="154" height="12" fill="none" stroke="#000000" />
+ <text x="8" y="103">shapes-rect-01-b</text>
+ <line stroke="#000000" x1="90" y1="93" x2="90" y2="117" />
+ <text font-size="9" x="91" y="103">$Revision: 1.1 $</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="20" y="115" fill="blue">©2002 W3C</text>
+ </a>
+ <text font-size="9" x="92" y="115">Release 1.0</text>
+ </g>
+
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/shapes-rect-01-f.png b/test/svg/svg1.2/images/shapes-rect-01-f.png
new file mode 100644
index 0000000..bf25fdf
Binary files /dev/null and b/test/svg/svg1.2/images/shapes-rect-01-f.png differ
diff --git a/test/svg/svg1.2/images/shapes-rect-01-f.svg b/test/svg/svg1.2/images/shapes-rect-01-f.svg
new file mode 100644
index 0000000..92988b4
--- /dev/null
+++ b/test/svg/svg1.2/images/shapes-rect-01-f.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- shapes-rect-BE-01.svg -->
+<!-- renamed for 1.1 suite to shapes-rect-01-f.svg -->
+<!-- -->
+<!-- Test that viewer has the basic capability to handle the <rect> -->
+<!-- element. -->
+<!-- -->
+<!-- Author : Kelvin R. Lawrence, 3-Feb-2000 -->
+<!-- -->
+<!-- History: -->
+<!-- 3-Feb-2000, KRL, Serial#1 created. Matches 20000202 SVG spec. -->
+<!-- 27-Feb-2000, LH, Serial#2, fix TC name, formatting, create .XML -->
+<!-- 12-Mar-2000, LH, fix test-framing rect; ser#3 -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+Verify that interpreter/viewer has basic capability to handle the 'rect'
+shape element. Four pairs of rectangles should be displayed in the
+four quadrants, with the shapes in each pair being identical to each other.
+Filling, stroking, and filling-plus-stroking are tested, as are the round-rect
+attributes.
+ </Paragraph>
+ <Paragraph>
+The rendered picture should match the reference image, except for possible
+variations in the labelling text (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+This test uses 'text' and 'path' elements, as well as
+fill (solid primary colors), stroke (primary colors and wide lines),
+font-family ("Helvetica"), and font-size properties within the 'style' attribute.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">shapes-rect-01-f</title>
+ <desc id="test-desc">Test that viewer has the basic capability to handle the <rect> element.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <!-- ====================================================================== -->
+ <!-- First of all draw two simple rectangles. One stroked , one filled. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="160" y="14">Basic rectangles</text>
+ <text font-family="Helvetica" font-size="12" x="82" y="20">width=50</text>
+ <text font-family="Helvetica" font-size="12" x="78" y="36">height=80</text>
+ <rect id="Simple-rect-no-fill" fill="none" stroke="#000000" x="30" y="46" width="50" height="80"/>
+ <rect id="Simple-rect-filled" fill="red" x="130" y="46" width="50" height="80"/>
+ <text font-family="Helvetica" font-size="12" x="36" y="142">stroked</text>
+ <text font-family="Helvetica" font-size="12" x="142" y="142">filled</text>
+ <!-- ====================================================================== -->
+ <!-- Second set of rectangles this time with rounded corners. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="302" y="20">width=50</text>
+ <text font-family="Helvetica" font-size="12" x="298" y="36">height=80</text>
+ <text font-family="Helvetica" font-size="12" x="310" y="52">rx=30</text>
+ <rect id="Simple-round-rect-no-fill" fill="none" stroke="#000000" x="250" y="46" width="50" height="80" rx="30"/>
+ <rect id="Simple-round-rect-filled" fill="red" x="350" y="46" width="50" height="80" rx="30"/>
+ <text font-family="Helvetica" font-size="12" x="256" y="142">stroked</text>
+ <text font-family="Helvetica" font-size="12" x="362" y="142">filled</text>
+ <!-- ====================================================================== -->
+ <!-- Third set of rectangles. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="82" y="170">width=50</text>
+ <text font-family="Helvetica" font-size="12" x="78" y="186">height=80</text>
+ <rect id="rect-03" fill="none" stroke="#0000FF" stroke-width="8" x="30" y="196" width="50" height="80"/>
+ <rect id="rect-04" fill="#00FF00" stroke="#0000FF" stroke-width="8" x="130" y="196" width="50" height="80"/>
+ <text font-family="Helvetica" font-size="12" x="36" y="292">stroked</text>
+ <text font-family="Helvetica" font-size="12" x="118" y="292">filled & stroked</text>
+ <!-- ====================================================================== -->
+ <!-- Fourth set of rectangles. -->
+ <!-- ====================================================================== -->
+ <text font-family="Helvetica" font-size="12" x="272" y="170">width=50, height=80</text>
+ <text font-family="Helvetica" font-size="12" x="296" y="186">rx=30 ry=50</text>
+ <rect id="rect-05" fill="none" stroke="#0000FF" stroke-width="8" x="250" y="196" width="50" height="80" rx="30" ry="50"/>
+ <rect id="rect-06" fill="#00FF00" x="350" y="196" width="50" height="80" rx="30" ry="50"/>
+ <text font-family="Helvetica" font-size="12" x="256" y="292">stroked</text>
+ <text font-family="Helvetica" font-size="12" x="362" y="292">filled</text>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">shapes-rect-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/sign.png b/test/svg/svg1.2/images/sign.png
new file mode 100644
index 0000000..6aac7e1
Binary files /dev/null and b/test/svg/svg1.2/images/sign.png differ
diff --git a/test/svg/svg1.2/images/skier.3gp b/test/svg/svg1.2/images/skier.3gp
new file mode 100644
index 0000000..7582bf9
Binary files /dev/null and b/test/svg/svg1.2/images/skier.3gp differ
diff --git a/test/svg/svg1.2/images/skier.jpg b/test/svg/svg1.2/images/skier.jpg
new file mode 100644
index 0000000..3b85c93
Binary files /dev/null and b/test/svg/svg1.2/images/skier.jpg differ
diff --git a/test/svg/svg1.2/images/smiley.png b/test/svg/svg1.2/images/smiley.png
new file mode 100644
index 0000000..5bcc67a
Binary files /dev/null and b/test/svg/svg1.2/images/smiley.png differ
diff --git a/test/svg/svg1.2/images/smiley.svg b/test/svg/svg1.2/images/smiley.svg
new file mode 100644
index 0000000..913662b
--- /dev/null
+++ b/test/svg/svg1.2/images/smiley.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 30 40">
+ <rect x='.5' y='.5' width='29' height='39' fill='black' stroke='red' />
+ <g transform='translate(0, 5)'>
+ <circle cx='15' cy='15' r='10' fill='yellow' />
+ <circle cx='12' cy='12' r='1.5' fill='black' />
+ <circle cx='17' cy='12' r='1.5' fill='black' />
+ <path d='M 10 19 L 15 23 20 19' stroke='black' stroke-width='2' />
+ </g>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/sphere.png b/test/svg/svg1.2/images/sphere.png
new file mode 100644
index 0000000..9e22388
Binary files /dev/null and b/test/svg/svg1.2/images/sphere.png differ
diff --git a/test/svg/svg1.2/images/stefan_252_tRNS_opti.png b/test/svg/svg1.2/images/stefan_252_tRNS_opti.png
new file mode 100644
index 0000000..1937a31
Binary files /dev/null and b/test/svg/svg1.2/images/stefan_252_tRNS_opti.png differ
diff --git a/test/svg/svg1.2/images/struct-frag-01-B.svg b/test/svg/svg1.2/images/struct-frag-01-B.svg
new file mode 100644
index 0000000..6de6938
--- /dev/null
+++ b/test/svg/svg1.2/images/struct-frag-01-B.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg11.dtd">
+<!-- =====================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!-- =====================================================================-->
+<!-- =====================================================================-->
+<!-- -->
+<!-- struct-frag-01.svg -->
+<!-- Test that 'svg' document fragments embedded
+ within other 'svg' document fragments will render correctly -->
+<!-- -->
+<!-- Author : Volodymyr Katrushenko, BitFlash Inc., 2002 -->
+
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="160" height="120">
+ <title id="test-title">struct-frag-01</title>
+ <desc id="test-desc">Test that 'svg' elements nested inside of each other will render correctly</desc>
+
+<!--Content of Test Case follows...=======================================-->
+
+ <g id="test-body-content">
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="lowerRight" x="80" y="40" width="79" height="39">
+ <rect x="0" y="0" width="79" height="39" fill="red" />
+ </svg>
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="upperRight" x="1" y="1" width="79" height="39">
+ <rect fill="blue" x="0" y="0" width="79" height="39"/>
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="childArea" x="20" y="10" width="40" height="20">
+ <rect fill="yellow" x="0" y="0" width="40" height="20"/>
+ </svg>
+ </svg>
+ </g>
+
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <rect id="slideframe" fill="none" stroke="#000000" stroke-width="1" x="1" y="1" width="158" height="118"/>
+ <g id="test-legend" fill="black" font-size="10" >
+
+ <rect x="3" y="81" width="154" height="36" fill="none" stroke="#000000" />
+ <rect x="3" y="93" width="154" height="12" fill="none" stroke="#000000" />
+ <rect x="66" y="105" width="52" height="12" fill="none" stroke="#000000" />
+
+ <text x="8" y="91">SVG v1.1 Conformance Suite</text>
+ <text x="8" y="103">struct-frag-01-B</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="8" y="115" fill="blue">©2002 W3C</text>
+ </a>
+ <text x="70" y="115">$Rev:1.0$</text>
+ <text x="122" y="115">Rel 1.1</text>
+ </g>
+
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/struct-image-01.jpg b/test/svg/svg1.2/images/struct-image-01.jpg
new file mode 100644
index 0000000..a74e072
Binary files /dev/null and b/test/svg/svg1.2/images/struct-image-01.jpg differ
diff --git a/test/svg/svg1.2/images/struct-image-01.png b/test/svg/svg1.2/images/struct-image-01.png
new file mode 100644
index 0000000..4ed0840
Binary files /dev/null and b/test/svg/svg1.2/images/struct-image-01.png differ
diff --git a/test/svg/svg1.2/images/struct-image-02.jpg b/test/svg/svg1.2/images/struct-image-02.jpg
new file mode 100644
index 0000000..9e44fec
Binary files /dev/null and b/test/svg/svg1.2/images/struct-image-02.jpg differ
diff --git a/test/svg/svg1.2/images/struct-image-02.png b/test/svg/svg1.2/images/struct-image-02.png
new file mode 100644
index 0000000..c609c46
Binary files /dev/null and b/test/svg/svg1.2/images/struct-image-02.png differ
diff --git a/test/svg/svg1.2/images/struct-image-11-b.svg b/test/svg/svg1.2/images/struct-image-11-b.svg
new file mode 100644
index 0000000..d0fd33f
--- /dev/null
+++ b/test/svg/svg1.2/images/struct-image-11-b.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" viewBox="0 0 450 450" width="450" height="450">
+ <g id="rects">
+ <rect x="225" y="0" width="225" height="225" style="fill:red" onclick="evt.currentTarget.style.fill = 'green';"/>
+ <rect x="0" y="225" width="225" height="225" style="fill:#f00" onclick="evt.currentTarget.setProperty('fill','green',null);"/>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/struct-image-12-b-cycle.svg b/test/svg/svg1.2/images/struct-image-12-b-cycle.svg
new file mode 100644
index 0000000..42841b6
--- /dev/null
+++ b/test/svg/svg1.2/images/struct-image-12-b-cycle.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" viewBox="0 0 450 450" width="450" height="450">
+ <g id="drawRects">
+ <rect x="225" y="0" width="225" height="225" fill="red"/>
+ <image x="0" y="225" width="225" height="225" xlink:href="../svg/struct-image-12-b.svg"/>
+ <rect x="0" y="225" width="225" height="225" fill="none" stroke="black"/>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/struct-symbol-01.png b/test/svg/svg1.2/images/struct-symbol-01.png
new file mode 100644
index 0000000..323a51f
Binary files /dev/null and b/test/svg/svg1.2/images/struct-symbol-01.png differ
diff --git a/test/svg/svg1.2/images/struct-use-08-t-cycles.svg b/test/svg/svg1.2/images/struct-use-08-t-cycles.svg
new file mode 100644
index 0000000..393ce84
--- /dev/null
+++ b/test/svg/svg1.2/images/struct-use-08-t-cycles.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" viewBox="0 0 450 450" width="450" height="450">
+ <rect x="225" y="0" width="225" height="225" fill="red"/>
+ <image id="image" x="0" y="225" width="225" height="225" xlink:href="../svg/struct-use-08-t.svg"/>
+ <use id="use" x="0" y="0" width="225" height="225" xlink:href="../svg/struct-use-08-t.svg#svg-root"/>
+ <rect x="0" y="225" width="225" height="225" fill="none" stroke="black"/>
+</svg>
+
diff --git a/test/svg/svg1.2/images/struct-use-206-resource.svg b/test/svg/svg1.2/images/struct-use-206-resource.svg
new file mode 100644
index 0000000..83e394a
--- /dev/null
+++ b/test/svg/svg1.2/images/struct-use-206-resource.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <g id="rects">
+ <rect x="120" y="0" width="120" height="120" fill="lime" />
+ <rect x="0" y="120" width="120" height="120" fill="#0f0"/>
+ </g>
+</svg>
+
diff --git a/test/svg/svg1.2/images/struct-use-209-t-cycles.svg b/test/svg/svg1.2/images/struct-use-209-t-cycles.svg
new file mode 100644
index 0000000..a00a9f2
--- /dev/null
+++ b/test/svg/svg1.2/images/struct-use-209-t-cycles.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:id="svg-root" viewBox="0 0 450 450" width="450" height="450">
+ <rect x="225" y="0" width="225" height="225" fill="yellow"/>
+ <image xml:id="image" x="0" y="225" xlink:href="../svg/struct-use-209-t.svg"/>
+ <use xml:id="use" x="0" y="0" xlink:href="../svg/struct-use-209-t.svg#svg-root"/>
+ <rect x="0" y="225" width="225" height="225" fill="none" stroke="black"/>
+</svg>
+
diff --git a/test/svg/svg1.2/images/success.svg b/test/svg/svg1.2/images/success.svg
new file mode 100644
index 0000000..c04d02e
--- /dev/null
+++ b/test/svg/svg1.2/images/success.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?oxygen RNGSchema="../../../relaxng/Tiny-1.2-NG/Tiny-1.2.rng" type="xml"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2007 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <!--
+ This document is used by some tests in a way such that if the viewer
+ navigates to this document, the test has passed.
+ -->
+ <title xml:id="test-title">Document indicating test success</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='80' fill='green' font-size='64'>SUCCESS!</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+</svg>
diff --git a/test/svg/svg1.2/images/svgRef1.svg b/test/svg/svg1.2/images/svgRef1.svg
new file mode 100644
index 0000000..7e605c9
--- /dev/null
+++ b/test/svg/svg1.2/images/svgRef1.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript version="$Revision: 1.2 $" testname="" >
+ <Paragraph>
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title" > </title>
+ <desc id="test-desc" > </desc>
+
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="testContent" color="ghostwhite" >
+ <defs>
+ <linearGradient id="linearGrad1" gradientUnits="objectBoundingBox" y1="0" x1="0" y2="1" x2="1" >
+ <stop offset="000%" stop-color="orange" />
+ <stop offset="033%" stop-color="red" />
+ <stop offset="050%" stop-color="gold" />
+ <stop offset="066%" stop-color="red" />
+ <stop offset="100%" stop-color="orange" />
+ </linearGradient>
+
+ <radialGradient id="radialGrad1" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.5" fx="0.15" fy="0.15" >
+ <stop offset="000%" stop-color="orange" />
+ <stop offset="033%" stop-color="red" />
+ <stop offset="050%" stop-color="gold" />
+ <stop offset="066%" stop-color="red" />
+ <stop offset="100%" stop-color="orange" />
+ </radialGradient>
+ </defs>
+
+ <g id="objects1" >
+ <rect id="rect1" x="001" y="050" width="239" height="125" stroke="none" />
+ <rect id="rect2" x="240" y="050" width="239" height="125" stroke="none" />
+ <rect id="rect3" x="001" y="175" width="239" height="125" stroke="none" fill="currentColor" />
+ <rect id="rect4" x="240" y="175" width="239" height="125" stroke="none" fill="url(#radialGrad1)" />
+ </g>
+ </g>
+
+ <text font-size="35" x="240" y="35" text-anchor="middle" fill="white" >svgRef1.svg</text>
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.2 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/svgRef12.svg b/test/svg/svg1.2/images/svgRef12.svg
new file mode 100644
index 0000000..0491e61
--- /dev/null
+++ b/test/svg/svg1.2/images/svgRef12.svg
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript version="$Revision: 1.2 $" testname="" >
+ <Paragraph>
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title" > </title>
+ <desc id="test-desc" > </desc>
+
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <defs>
+ <style type="text/css">
+ <![CDATA[
+ * {stroke:black; stroke-width:1;}
+ text {stroke:none;}
+
+ #test-frame {fill:none;}
+ ]]>
+ </style>
+ </defs>
+
+ <g id="testContent" >
+ <rect id="alpha" x="100" y="50" width="120" height="120" fill="red"/>
+ <circle id="beta" cx="320" cy="110" r="60" fill="yellow"/>
+ <polygon id="gamma" points="260,180 380,190 360,300" fill="blue" />
+ <ellipse id="delta" cx="160" cy="240" ry="60" rx="45" fill="green" />
+ </g>
+
+ <text font-size="35" x="240" y="35" text-anchor="middle" >svgRef4.svg</text>
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.2 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/svgRef13.svg b/test/svg/svg1.2/images/svgRef13.svg
new file mode 100644
index 0000000..88ce38f
--- /dev/null
+++ b/test/svg/svg1.2/images/svgRef13.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript version="$Revision: 1.1 $" testname="" >
+ <Paragraph>
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title xml:id="test-title" > </title>
+ <desc xml:id="test-desc" > </desc>
+
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g xml:id="testContent" color="ghostwhite" >
+ <defs>
+ <linearGradient xml:id="linearGrad1" gradientUnits="objectBoundingBox" y1="0" x1="0" y2="1" x2="1" >
+ <stop offset="0" stop-color="yellow" />
+ <stop offset="0.33" stop-color="red" />
+ <stop offset="0.5" stop-color="olive" />
+ <stop offset="0.66" stop-color="red" />
+ <stop offset="1.0" stop-color="yellow" />
+ </linearGradient>
+
+ <radialGradient xml:id="radialGrad1" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.5" >
+ <stop offset="0" stop-color="yellow" />
+ <stop offset="0.33" stop-color="red" />
+ <stop offset="0.5" stop-color="olive" />
+ <stop offset="0.66" stop-color="red" />
+ <stop offset="1.0" stop-color="yellow" />
+ </radialGradient>
+ </defs>
+
+ <g xml:id="objects1" >
+ <rect xml:id="rect1" x="001" y="050" width="239" height="125" stroke="none" />
+ <rect xml:id="rect2" x="240" y="050" width="239" height="125" stroke="none" />
+ <rect xml:id="rect3" x="001" y="175" width="239" height="125" stroke="none" fill="currentColor" />
+ <rect xml:id="rect4" x="240" y="175" width="239" height="125" stroke="none" fill="url(#radialGrad1)" />
+ </g>
+ </g>
+
+ <text font-size="35" x="240" y="35" text-anchor="middle" fill="white" >svgRef1.svg</text>
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.1 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/svgRef4.css b/test/svg/svg1.2/images/svgRef4.css
new file mode 100644
index 0000000..e97a488
--- /dev/null
+++ b/test/svg/svg1.2/images/svgRef4.css
@@ -0,0 +1,4 @@
+rect {fill:red;}
+circle {fill:blue;}
+polygon {fill:green;}
+ellipse {fill:gold;}
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/svgRef4.svg b/test/svg/svg1.2/images/svgRef4.svg
new file mode 100644
index 0000000..3295817
--- /dev/null
+++ b/test/svg/svg1.2/images/svgRef4.svg
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/css" href="svgRef4.css" ?>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript version="$Revision: 1.2 $" testname="" >
+ <Paragraph>
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title" > </title>
+ <desc id="test-desc" > </desc>
+
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <defs>
+ <style type="text/css">
+ <![CDATA[
+ * {stroke:black; stroke-width:1;}
+ text {stroke:none;}
+
+ #test-frame {fill:none;}
+ ]]>
+ </style>
+ </defs>
+
+ <g id="testContent" >
+ <rect id="alpha" x="100" y="50" width="120" height="120" />
+ <circle id="beta" cx="320" cy="110" r="60" />
+ <polygon id="gamma" points="260,180 380,190 360,300" />
+ <ellipse id="delta" cx="160" cy="240" ry="60" rx="45" />
+ </g>
+
+ <text font-size="35" x="240" y="35" text-anchor="middle" >svgRef4.svg</text>
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.2 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/svglib.svg b/test/svg/svg1.2/images/svglib.svg
new file mode 100644
index 0000000..5fb4265
--- /dev/null
+++ b/test/svg/svg1.2/images/svglib.svg
@@ -0,0 +1,1058 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <text x="10" y="20">This SVG file only contains data referenced by others</text>
+ <defs>
+ <font id="myFont" horiz-adv-x="393">
+ <font-face font-family="myFont" units-per-em="1000" panose-1="2 0 0 6 2 0 0 2 0 4" ascent="651" descent="-339" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="233" d="M 50 0 L50 500 300 500 300 0 z"/>
+ <glyph unicode="A" horiz-adv-x="581" d="M415 653L190 395L170 242L150 235L108 265L82 249L121 186L165 196L143 32L78 44L65 104L40 111L-23 10L59 -72L281 56L305 232L383 253L354 162L415 -40L584 46L589 96L524 81L511 203L593 416L543 589L415 653ZM407 332L315 297L340 488L415 549L441 439L407 332Z"/>
+ <glyph unicode="B" horiz-adv-x="573" d="M188 394L180 454L326 605L433 524L410 407L327 349L346 448L385 485L368 518L227 433L130 213L93 12L57 49L22 31L45 -53L277 99L315 289L356 314L408 146L313 29L206 39L194 4L297 -60L449 -1L557 115L559 230L469 363L568 429L591 518L525 627L299 651L117 528L115 428L160 380L188 394Z"/>
+ <glyph unicode="C" horiz-adv-x="468" d="M454 221L352 88L281 104L229 277L298 526L365 581L415 386L368 350L352 408L315 418L286 310L372 277L477 365L514 538L397 660L160 527L68 229L100 66L209 -41L313 -48L421 60L475 184L454 221Z"/>
+ <glyph unicode="X" horiz-adv-x="521" d="M398 402L352 542L259 647L124 535L133 477L201 492L262 306L147 225L69 35L37 47L23 133L-14 143L-57 10L68 -48L209 77L235 196L297 248L302 42L380 -48L548 25L535 69L462 72L466 195L415 344L562 434L590 563L497 656L387 594L395 555L466 549L486 473L398 402Z"/>
+ <glyph unicode="Y" horiz-adv-x="523" d="M341 193L279 153L246 217L347 528L265 659L95 593L96 542L152 546L176 487L96 212L159 5L315 108L264 -62L110 -183L-7 -158L8 -104L55 -140L106 -59L-16 -28L-105 -190L-47 -269L116 -315L348 -112L393 68L531 276L568 552L501 660L372 603L380 558L440 555L468 443L372 288L341 193Z"/>
+ <glyph unicode="Z" horiz-adv-x="597" d="M490 589L336 655L194 593L133 491L161 394L241 365L306 456L208 445L275 522L442 525L388 420L255 318L199 156L94 178L-11 50L50 -48L201 2L230 46L287 -32L483 -75L613 100L544 246L398 220L370 115L413 103L466 158L528 83L388 47L271 108L337 210L497 328L564 531L619 592L586 648L490 589ZM174 80L96 12L78 66L148 113L174 80Z"/>
+ </font>
+ <linearGradient id="myGrad1">
+ <stop offset="0.05" stop-color="#F60"/>
+ <stop offset="0.95" stop-color="#FF6"/>
+ </linearGradient>
+ <linearGradient x1="0" y1="0" x2="1" y2="1" id="myGrad2">
+ <stop offset="0.05" stop-color="blue"/>
+ <stop offset="0.95" stop-color="#f0f"/>
+ </linearGradient>
+ <radialGradient id="myGrad3">
+ <stop offset="0" stop-color="red"/>
+ <stop offset="1" stop-color="blue"/>
+ </radialGradient>
+ <circle id="myCircle" cx="5" cy="5" r="5" fill="url(#myGrad3)"/>
+ <textArea id="textArea1" x="0" y="0" width="30" height="30">abcdefghijklmnopqrst</textArea>
+ <text id="text1" text-anchor="middle">A<tspan fill="red">B</tspan>C</text>
+ <text id="text2" font-family="myFont" font-size="20">ABC</text>
+ <rect id="rect1" x="0" y="0" width="30" height="30" fill="red"/>
+ <g fill="red">
+ <rect id="rect2" x="0" y="0" width="30" height="30"/>
+ </g>
+ <rect id="rect3" x="0" y="0" width="30" height="30" fill="url(#myGrad1)" stroke="url(#myGrad2)"/>
+ <rect id="rect4" x="0" y="0" width="30" height="30" fill="url(#myGrad2)"/>
+ <rect id="rect5" x="-15" y="-15" width="30" height="30">
+ <animateTransform attributeName="transform" type="rotate" from="0" to="360" begin="0" dur="2" repeatCount="indefinite"/>
+ </rect>
+ <use id="rect6" xlink:href="#rect5">
+ <animate attributeName="x" values="0;30;0" begin="0" dur="4" repeatCount="indefinite"/>
+ </use>
+ <g id="g1">
+ <rect x="0" y="0" width="30" height="30"/>
+ <circle cx="15" cy="15" r="10" fill="blue"/>
+ </g>
+ <g id="g2">
+ <use xlink:href="#rect2" fill="url(#myGrad1)"/>
+ <use xlink:href="#myCircle"/>
+ <use x="10" y="10" xlink:href="#myCircle" fill="blue"/>
+ <use x="20" y="20" xlink:href="#myCircle"/>
+ </g>
+ <g id="g3">
+ <use xlink:href="svglib2.svg#rect1"/>
+ <use xlink:href="svglib2.svg#circle1"/>
+ </g>
+ <g id="gCircRef">
+ <use xlink:href="svglib2.svg#gCircRef2"/>
+ </g>
+ <rect id="nameClashTest" x="0" y="0" width="30" height="30" fill="green" />
+ <image id="img1" width="200" height="126" xlink:href="bread.jpg"/>
+ <image id="img2" width="200" height="126" xlink:href="bread.png"/>
+ <image id="img3" width="200" height="126" xlink:href="data:image/png;base64,
+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"/>
+ </defs>
+</svg>
diff --git a/test/svg/svg1.2/images/svglib2.svg b/test/svg/svg1.2/images/svglib2.svg
new file mode 100644
index 0000000..eefd521
--- /dev/null
+++ b/test/svg/svg1.2/images/svglib2.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<text x="10" y="20">This SVG file only contains data referenced by others</text>
+<defs>
+ <rect id="rect1" x="0" y="0" width="30" height="30" fill="green" />
+ <circle id="circle1" cx="15" cy="15" r="10" fill="yellow" />
+
+ <g id="gCircRef2">
+ <rect width="30" height="30" fill="blue" fill-opacity=".3" />
+ <use xlink:href="svglib.svg#gCircRef"/>
+ </g>
+
+ <rect id="nameClashTest" x="0" y="0" width="30" height="30" fill="red" />
+
+</defs>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/svglib3.svg b/test/svg/svg1.2/images/svglib3.svg
new file mode 100644
index 0000000..8731c8e
--- /dev/null
+++ b/test/svg/svg1.2/images/svglib3.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <text x="10" y="20">This SVG file only contains data referenced by others</text>
+ <defs>
+ <image id="img2" width="200" height="126" xlink:href="bread.png"/>
+ <g xml:base="image2/">
+ <a id="img1" xlink:href="xlink1.svg">
+ <image width="200" height="126" xlink:href="bread2.png"/>
+ </a>
+ </g>
+ </defs>
+</svg>
diff --git a/test/svg/svg1.2/images/text-align-01-f.svg b/test/svg/svg1.2/images/text-align-01-f.svg
new file mode 100644
index 0000000..d9d8f87
--- /dev/null
+++ b/test/svg/svg1.2/images/text-align-01-f.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- text-alignment-BE-10.svg -->
+<!-- renamed for 1.1 suite to text-align-01-f.svg -->
+<!-- -->
+<!-- Test 'text-anchor' and the 'baseline-shift' properties (horizontal). -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000 -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 06-Aug-2000, JF: Serial#1 created. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test 'text-anchor' and the 'baseline-shift' properties (horizonatal).
+ </Paragraph>
+ <Paragraph>
+ The topmost three lines test the three values for property 'text-anchor': start, middle and end.
+ </Paragraph>
+ <Paragraph>
+ The next three lines test property 'baseline-shift'.
+ The fourth line tests 'baseline-shift:7' (i.e., a length for 'baseline-shift').
+ The red text should shift upward by 7 pixels.
+ The fifth line tests 'baseline-shift:-70%' (i.e., a percentage for 'baseline-shift').
+ The red text should shift downward by 70% of the 'font-size'.
+ The sixth line tests the three keywords 'sub', 'super' and 'normal'.
+ You should see a subscript, superscript and return to normal.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">text-align-01-f</title>
+ <desc id="test-desc">Test 'text-anchor' and the 'baseline-shift' properties (horizontal).</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text font-family="Helvetica" font-size="14" x="40" y="20">Test 'text-anchor' and the 'baseline-shift' properties (horizontal).</text>
+ <g id="text-anchor" font-family="Helvetica" font-size="14" >
+ <g transform="translate(220,70)">
+ <line stroke="black" x2="50"/>
+ <circle r="3"/>
+ <text text-anchor="start" fill="red" >Text-anchor:start</text>
+ </g>
+ <g transform="translate(200,100)">
+ <line stroke="black" x1="-25" x2="25"/>
+ <circle r="3"/>
+ <text text-anchor="middle" fill="green" >Text-anchor:middle</text>
+ </g>
+ <g transform="translate(200,130)">
+ <line stroke="black" x1="-50" x2="0"/>
+ <circle r="3"/>
+ <text text-anchor="end" fill="blue" >Text-anchor:end</text>
+ </g>
+ </g>
+ <g id="baseline-shift" font-family="Helvetica" font-size="14" transform="translate(100,190)">
+ <text y="0">Normal text<tspan baseline-shift="7" fill="red" >baseline-shift:7</tspan>normal text</text>
+ <text y="40">Normal text<tspan baseline-shift="-70%" fill="red" >baseline-shift:-70%</tspan>normal text</text>
+ <text y="80">Normal text<tspan baseline-shift="sub" fill="red" >sub</tspan><tspan baseline-shift="super" fill="green" >super</tspan><tspan baseline-shift="baseline" fill="blue" >normal</tspan>text</text>
+ </g>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">text-align-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+
+</svg>
diff --git a/test/svg/svg1.2/images/text-align-02-f.svg b/test/svg/svg1.2/images/text-align-02-f.svg
new file mode 100644
index 0000000..30377d6
--- /dev/null
+++ b/test/svg/svg1.2/images/text-align-02-f.svg
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- text-textAnchor-BE-05.svg -->
+<!-- renamed for 1.1 suite to text-align-02-f.svg -->
+<!-- -->
+<!-- Test viewer basic capability to handle 'text-anchor' property. -->
+<!-- -->
+<!-- Author : Lofton Henderson, 05-aug-2000. -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 05-aug-2000, LH: Serial#1 created. -->
+<!-- 23-aug-2000, LH=" add test-body-content 'g'" ser#2 -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test for viewer capibility to handle the basics of the 'textAnchor'
+ alignment property for 'text' and related elements.
+ </Paragraph>
+ <Paragraph>
+ There are several groups of sub-tests. The first group at the top has an
+ initial sub-test with no text-anchor property ("none"), then
+ tests the three values of the text-anchor property -- start, middle, end --
+ for simple 'text' elements. In each case, the x-coordinate attribute of
+ the 'text' element corresponds to the position of the vertical red line.
+ </Paragraph>
+ <Paragraph>
+ The second group from the top contains sub-tests to verify that the
+ interpreter handles text-anchor when the text is comprised of other
+ text related elements, 'tspan', 'tref', and 'textPath'.
+ The text-anchor property is present on the containing 'text' element
+ in these cases, not on the contained child elements.
+ </Paragraph>
+ <Paragraph>
+ The third group from the top contains sub-tests to verify that
+ the interpreter correctly handles and applies the text-anchor
+ properties when present on "chunks", which are comprised of tspan elements
+ with absolute positioning, within the containing 'text' element.
+ </Paragraph>
+ <Paragraph>
+ The rendered picture should match the reference image, except for
+ possible variations in the text fonts and layout (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+ The test also uses the 'rect' element,
+ as well as basic fill (solid primary colors),
+ stroke (black 1-pixel lines), font-family (Helvetica)
+ and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">text-align-03-f</title>
+ <desc id="test-desc">Test viewer basic capability to handle 'text-anchor' property.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <defs>
+ <text id="tref-internal-reference">end. text w/ tref</text>
+ <path id="myPath" d="M 150 135 375 135"/>
+ </defs>
+ <text x="105" y="25" font-family="Helvetica" font-size="14" fill="black" >Basic test of 'text-anchor' alignment property.</text>
+ <text x="45" y="375" font-size="12" >(The red line corresponds to the "initial current text position".)</text>
+ <text x="5" y="55" font-family="Helvetica" font-size="14" fill="black" >Simple text.</text>
+ <!-- Test cases -->
+ <g font-size="12" fill="blue" >
+ <line x1="105" y1="60" x2="105" y2="145" stroke="red" />
+ <text x="105" y="75">none</text>
+ <text x="105" y="95" text-anchor="start" >start</text>
+ <text x="105" y="115" text-anchor="middle" >middle</text>
+ <text x="105" y="135" text-anchor="end" >end</text>
+ </g>
+ <!-- Labels -->
+ <g font-size="10" fill="black" >
+ <text x="20" y="75">none...</text>
+ <text x="20" y="95">start...</text>
+ <text x="20" y="115">middle...</text>
+ <text x="20" y="135">end...</text>
+ </g>
+ <text x="175" y="55" font-family="Helvetica" font-size="14" fill="black" >Tspan, tref, toap</text>
+ <!-- Test cases -->
+ <line x1="375" y1="60" x2="375" y2="145" stroke="red" />
+ <g font-family="Helvetica" font-size="10" fill="blue" >
+ <text x="375" y="75" text-anchor="start" >start. text w/<tspan xml:space="preserve" fill="red" > red tspan</tspan></text>
+ <text x="375" y="95" text-anchor="middle" >middle. text w/<tspan font-weight="bold" xml:space="preserve"> bold tspan</tspan></text>
+ <text x="375" y="115" text-anchor="end" >
+ <tref xlink:href="#tref-internal-reference"/>
+ </text>
+ <text text-anchor="end" >
+ <textPath text-anchor="end" startOffset="100%" xlink:href="#myPath">Text-anchor: end. Text on path</textPath>
+ </text>
+ </g>
+ <!-- Labels -->
+ <g font-family="Helvetica" font-size="10" fill="black" >
+ <text x="190" y="75">tspan...</text>
+ <text x="190" y="95">tspan...</text>
+ <text x="190" y="115">tref...</text>
+ <text x="190" y="135">textPath...</text>
+ </g>
+ <text x="5" y="190" font-family="Helvetica" font-size="14" fill="black" >Changes in chunks.</text>
+ <!-- Test cases -->
+ <line x1="225" y1="195" x2="225" y2="265" stroke="red" />
+ <g font-family="Helvetica" font-size="10" fill="blue" >
+ <text x="225" y="210" text-anchor="end" >Begin with "end" align,<tspan x="225" y="230" xml:space="preserve" text-anchor="middle" > and switch to middle in a tspan, </tspan><tspan x="225" y="250" text-anchor="start" >and finish with start in another tspan.</tspan></text>
+ </g>
+ <!-- Labels -->
+ <g font-family="Helvetica" font-size="10" fill="black" >
+ <text x="20" y="210">end...</text>
+ <text x="20" y="230">middle...</text>
+ <text x="20" y="250">start...</text>
+ </g>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">text-align-02-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+
+</svg>
diff --git a/test/svg/svg1.2/images/text-align-03-f.svg b/test/svg/svg1.2/images/text-align-03-f.svg
new file mode 100644
index 0000000..36dcbc9
--- /dev/null
+++ b/test/svg/svg1.2/images/text-align-03-f.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- text-alignment-BE-11.svg -->
+<!-- renamed for 1.1 suite to text-align-03-f.svg -->
+<!-- -->
+<!-- Test 'text-anchor' and the 'baseline-shift' properties (vertical). -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000 -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 06-Aug-2000, JF: Serial#1 created. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test 'text-anchor' and the 'baseline-shift' properties (vertical).
+ </Paragraph>
+ <Paragraph>
+ The leftmost three lines test the three values for property 'text-anchor': start, middle and end.
+ </Paragraph>
+ <Paragraph>
+ The next three lines test property 'baseline-shift'.
+ The fourth line tests 'baseline-shift:7' (i.e., a length for 'baseline-shift').
+ The red text should shift right by 7 pixels.
+ The fifth line tests 'baseline-shift:-70%' (i.e., a percentage for 'baseline-shift').
+ The red text should shift left by 70% of the 'font-size'.
+ The sixth line tests the three keywords 'sub', 'super' and 'normal'.
+ You should see a subscript, superscript and return to normal.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">text-align-03-f</title>
+ <desc id="test-desc">Test 'text-anchor' and the 'baseline-shift' properties (vertical).</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text font-family="Helvetica" font-size="16" x="10" y="20">Test 'text-anchor' and the 'baseline-shift' properties (vertical).</text>
+ <text font-family="Helvetica" font-size="16" x="80" y="80">text-anchor</text>
+ <text font-family="Helvetica" font-size="16" x="335" y="80">baseline-shift</text>
+ <g writing-mode="tb" glyph-orientation-vertical="0" >
+ <g id="text-anchor" font-family="Helvetica" font-size="12" transform="translate(80,150)">
+ <g transform="translate(0,0)">
+ <circle r="3"/>
+ <text text-anchor="start" fill="red" >start</text>
+ </g>
+ <g transform="translate(50,0)">
+ <circle r="3"/>
+ <text text-anchor="middle" fill="green" >middle</text>
+ </g>
+ <g transform="translate(100,0)">
+ <circle r="3"/>
+ <text text-anchor="end" fill="blue" >end</text>
+ </g>
+ </g>
+ <g id="baseline-shift" font-family="Helvetica" font-size="12" transform="translate(330,95)">
+ <text x="0">none<tspan baseline-shift="7" fill="red" >shift by 7</tspan>none</text>
+ <text x="50">none<tspan baseline-shift="-70%" fill="red" >shift by -70%</tspan>none</text>
+ <text x="100">none<tspan baseline-shift="sub" fill="red" >sub</tspan><tspan baseline-shift="super" fill="green" >super</tspan><tspan baseline-shift="baseline" fill="blue" >no </tspan>shift</text>
+ </g>
+ </g>
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">text-align-03-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+
+</svg>
diff --git a/test/svg/svg1.2/images/text-altglyph-01-f.svg b/test/svg/svg1.2/images/text-altglyph-01-f.svg
new file mode 100644
index 0000000..ee7fc95
--- /dev/null
+++ b/test/svg/svg1.2/images/text-altglyph-01-f.svg
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- text-altGlyph-BE-07.svg -->
+<!-- renamed for 1.1 suite to text-altglyph-01-f.svg -->
+<!-- -->
+<!-- Test 'altGlyph' facilities and many-to-many chars to glyphs. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 05-Aug-2000 -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 05-Aug-2000, JF: Serial#1 created. -->
+<!-- 30-Oct-2000, JF: Fix many, many bugs in test case. -->
+<!-- Update baseline names to match new spec. -->
+<!-- Update to serial#=2. -->
+<!-- 07-Dec-2000, JF: Pretty formatted broke the test by introducing -->
+<!-- undesirable white space. I removed the white space. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test 'altGlyph' facilities and many-to-many chars to glyphs.
+ </Paragraph>
+ <Paragraph>
+ Three text strings show: the word "HAPPY" in red, the word "SAD" in green
+ and the word "SASSY" in blue.
+ </Paragraph>
+ <Paragraph>
+ The "HAPPY" and "SAD" strings test the 'altGlyph' facility and
+ the ability to map multiple glyphs to a single character.
+ All characters except the "D" are bracketed by 'altGlyph' elements
+ to use two different glyphs to render each character.
+ For "HAPPY", the horizontal stroke through the center of the characters
+ is a smile stroke.
+ For "SAD", the horizontal stroke through the center of the characters
+ is a frown stroke.
+ </Paragraph>
+ <Paragraph>
+ The "SASSY" string tests a single glyph representing multiple characters
+ (a ligature). The SVG font in the test case contains an "SS" ligature
+ so that the "SS" in "SASSY" is rendered with a single glyph, where
+ the two parts of the "SS" are connected.
+ </Paragraph>
+ <Paragraph>
+ This test requires some support for SVG fonts.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">text-altglyph-01-f</title>
+ <desc id="test-desc">Test 'altGlyph' facilities and many-to-many chars to glyphs.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content" stroke-miterlimit="4" >
+ <text font-family="Helvetica" font-size="14" text-anchor="middle" x="225" y="30">Test 'altGlyph' facilities and many-to-many chars to glyphs</text>
+ <defs>
+ <!-- START OF ACTUAL TEST CASE CODE, which is active -->
+ <font id="Font1" horiz-adv-x="5">
+ <font-face font-family="HappySad" font-weight="bold" font-style="normal" units-per-em="8" cap-height="8" x-height="4" ascent="8" descent="2" alphabetic="0" mathematical="4" ideographic="-2" hanging="8">
+ <font-face-src>
+ <font-face-name name="HappySad"/>
+ </font-face-src>
+ </font-face>
+ <missing-glyph>
+ <path d="M1,3h2v2h-2z"/>
+ </missing-glyph>
+ <glyph id="A1" d="M0,0 L2,8 L4,0 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="H1" d="M0,0 V8 M4,0 V8 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="P1" d="M0,0 V8 H2 C3,8 4,7 4,6 V4 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="S1" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6 M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="Y1" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="A2" d="M0,0 L2,8 L4,0 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="H2" d="M0,0 V8 M4,0 V8 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="P2" d="M0,0 V8 H2 C3,8 4,7 4,6 V4 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="S2" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6 M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="Y2" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="SS" unicode="SS" horiz-adv-x="6" d=" M0,4 V6 C0,7 0,8 1,8 C2,8 2,7 2,6 M2,4 V2 C2,1 2,0 1,0 C0,0 0,1 0,2 M3,4 V6 C3,7 3,8 4,8 C5,8 5,7 5,6 M5,4 V2 C5,1 5,0 4,0 C3,0 3,1 3,2 M0,4 H5 "/>
+ <glyph id="A" unicode="A" d="M0,0 L2,8 L4,0 M0,4 H4"/>
+ <glyph id="D" unicode="D" d="M0,0 V8 C3,8 4,7 4,4 C4,1 3,0 0,0z"/>
+ <glyph id="S" unicode="S" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6 M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 H4"/>
+ <glyph id="Y" unicode="Y" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 H4"/>
+ </font>
+ <altGlyphDef id="Afrown">
+ <glyphRef xlink:href="#A2"/>
+ </altGlyphDef>
+ <altGlyphDef id="Asmile">
+ <glyphRef xlink:href="#A1"/>
+ </altGlyphDef>
+ <altGlyphDef id="Hsmile">
+ <glyphRef xlink:href="#H1"/>
+ </altGlyphDef>
+ <altGlyphDef id="Psmile">
+ <glyphRef xlink:href="#P1"/>
+ </altGlyphDef>
+ <altGlyphDef id="Sfrown">
+ <glyphRef xlink:href="#S2"/>
+ </altGlyphDef>
+ <altGlyphDef id="Ysmile">
+ <glyphRef xlink:href="#Y1"/>
+ </altGlyphDef>
+ <!-- END OF ACTUAL TEST CASE CODE, which is active -->
+ <!-- START OF PATCH CODE, which is commented out
+ <path id="Abasepath" d="M0,0 L2,8 L4,0"/>
+ <path id="Dpath" d="M0,0 V8 C3,8 4,7 4,4 C4,1 3,0 0,0z"/>
+ <path id="Hbasepath" d="M0,0 V8 M4,0 V8"/>
+ <path id="Pbasepath" d="M0,0 V8 H2 C3,8 4,7 4,6 V4"/>
+ <path id="Sbasepath" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6
+ M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2"/>
+ <path id="Ybasepath" d="M0,8 V4 M4,8 V4 M2,4 V0"/>
+ <path id="frownpath" d="M-5,4 C-4,5 -2,5 -1,4"/>
+ <path id="smilepath" d="M-5,4 C-4,3 -2,3 -1,4"/>
+ <path id="SSpath" d="
+ M0,4 V6 C0,7 0,8 1,8 C2,8 2,7 2,6
+ M2,4 V2 C2,1 2,0 1,0 C0,0 0,1 0,2
+ M3,4 V6 C3,7 3,8 4,8 C5,8 5,7 5,6
+ M5,4 V2 C5,1 5,0 4,0 C3,0 3,1 3,2
+ M0,4 H5
+ "/>
+ <path id="Apath" d="M0,0 L2,8 L4,0 M0,4 H4"/>
+ <path id="Spath" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6
+ M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 H4"/>
+ <path id="Ypath" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 H4"/>
+ END OF PATCH CODE, which is commented out -->
+ </defs>
+ <!-- START OF ACTUAL TEST CASE CODE, which is active -->
+ <g font-family="HappySad" font-size="60" fill="none" stroke-width="5" >
+ <text x="50" y="120" stroke="red" >
+<altGlyph xlink:href="#Hsmile">H</altGlyph>
+<altGlyph xlink:href="#Asmile">A</altGlyph>
+<altGlyph xlink:href="#Psmile">P</altGlyph>
+<altGlyph xlink:href="#Psmile">P</altGlyph>
+<altGlyph xlink:href="#Ysmile">Y</altGlyph>
+ </text>
+ <text x="50" y="200" stroke="green" ><altGlyph xlink:href="#Sfrown">S</altGlyph><altGlyph xlink:href="#Afrown">A</altGlyph>D</text>
+ <text x="50" y="280" stroke="blue" >SASSY</text>
+ </g>
+ <!-- END OF ACTUAL TEST CASE CODE, which is active. -->
+ <!-- START OF PATCH CODE, which is commented out
+ <g fill="none" stroke-width=".5" stroke-miterlimit="1" >
+ <g transform="translate(100, 150) scale(10) matrix(1 0 0 -1 0 0)"
+ stroke="red" >
+ <use x="0" xlink:href="#Hbasepath"/>
+ <use x="5" xlink:href="#smilepath"/>
+ <use x="5" xlink:href="#Abasepath"/>
+ <use x="10" xlink:href="#smilepath"/>
+ <use x="10" xlink:href="#Pbasepath"/>
+ <use x="15" xlink:href="#smilepath"/>
+ <use x="15" xlink:href="#Pbasepath"/>
+ <use x="20" xlink:href="#smilepath"/>
+ <use x="20" xlink:href="#Ybasepath"/>
+ <use x="25" xlink:href="#smilepath"/>
+ </g>
+ <g transform="translate(100, 250) scale(10) matrix(1 0 0 -1 0 0)"
+ stroke="green" >
+ <use x="0" xlink:href="#Sbasepath"/>
+ <use x="5" xlink:href="#frownpath"/>
+ <use x="5" xlink:href="#Abasepath"/>
+ <use x="10" xlink:href="#frownpath"/>
+ <use x="10" xlink:href="#Dpath"/>
+ </g>
+ <g transform="translate(100, 350) scale(10) matrix(1 0 0 -1 0 0)"
+ stroke="blue" >
+ <use x="0" xlink:href="#Spath"/>
+ <use x="5" xlink:href="#Apath"/>
+ <use x="10" xlink:href="#SSpath"/>
+ <use x="16" xlink:href="#Ypath"/>
+ </g>
+ </g>
+ END OF PATCH CODE, which is commented out -->
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">text-altglyph-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/text-extTref-BE-18-targ.svg b/test/svg/svg1.2/images/text-extTref-BE-18-targ.svg
new file mode 100644
index 0000000..aa947d1
--- /dev/null
+++ b/test/svg/svg1.2/images/text-extTref-BE-18-targ.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- text-extTref-BE-18-targ.svg -->
+<!-- -->
+<!-- Auxiliary file to provide external 'tref' target string for -->
+<!-- text-extTref-BE-18.svg. -->
+<!-- -->
+<!-- ===================================================================== -->
+
+
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="text-tref-BE-04" width="450" height="450" >
+
+<title id="test-title">text-extTref-BE-18-targ</title>
+
+<desc id="test-desc">
+Auxiliary ('tref' target) file for test case text-extTref-BE-18.
+</desc>
+
+<!-- There is no drawn content to this file, except for the legend & frame -->
+
+<g id="test-body-content">
+
+ <defs>
+
+ <text id="tref-external-reference">Simple external referenced text.</text>
+
+ </defs>
+
+</g>
+
+
+<!-- ====================================================================== -->
+<!-- Legend & frame: Title, suite and SVG document serialization==== -->
+<!-- ====================================================================== -->
+
+<g id="test-legend">
+
+ <rect x="10" y="390" width="270" height="50" style="fill:none;stroke:#000000"/>
+ <path style="fill:none;stroke:#000000" d="M10 405 h270 M195 405 v35 M195 422.5 h85"/>
+ <text style="font-family:Helvetica;font-size:10" x="30" y="401">Scalable Vector Graphics (SVG) Conformance Suite</text>
+ <text style="font-family:Helvetica;font-size:12" x="65" y="428">text-extTref-BE-18-targ</text>
+ <text style="font-family:Helvetica;font-size:12" x="205" y="418">Release 1.0</text>
+ <text style="font-family:Helvetica;font-size:10" x="205" y="435">$Revision: 1.1 $</text>
+
+ <!-- Test-framing rectangle, drawn just inside viewport boundary. -->
+ <rect id="test-frame" x="1" y="1" width="448" height="448" style="fill:none; stroke:#000000"/>
+
+</g>
+
+
+</svg>
+
diff --git a/test/svg/svg1.2/images/text-intro-01-f.svg b/test/svg/svg1.2/images/text-intro-01-f.svg
new file mode 100644
index 0000000..4fa023a
--- /dev/null
+++ b/test/svg/svg1.2/images/text-intro-01-f.svg
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- text-i18n-BE-09.svg -->
+<!-- renamed for 1.1 suite to text-intro-01-f.svg -->
+<!-- -->
+<!-- Test various aspects of internationalized text, including -->
+<!-- left-to-right, right-to-left, top-to-bottom, and the -->
+<!-- following properties: 'writing-mode', -->
+<!-- 'glyph-orientation-vertical', 'glyph-orientation-horizontal', -->
+<!-- 'direction' and 'unicode-bidi'. -->
+<!-- -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000 -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 06-Aug-2000, JF: Serial#1 created. -->
+<!-- 19-Aug-2000, LH: fix missing </g>. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase chapter="text" focus="i18n" testType="BE" BENumber="09" >
+ <OperatorScript>
+ <Paragraph>
+ Test various aspects of internationalized text, including
+ left-to-right, right-to-left, top-to-bottom, and the
+ following properties: 'writing-mode',
+ 'glyph-orientation-vertical', 'glyph-orientation-horizontal',
+ 'direction' and 'unicode-bidi'.
+ </Paragraph>
+ <Paragraph>
+ Various text strings in various languages appear. The main
+ purpose of the test is to verify that the correct characters
+ appear and that they appear in the correct order and orientation.
+ In particular, ensure that the three lines with Hebrew are ordered
+ correctly (test of bidi algorithms and support of 'unicode-bidi' and
+ 'direction' properties). Also, ensure that the two lines of
+ vertical Japanese text have the proper orientation
+ (test of 'glyph-orientation-vertical' property).
+ </Paragraph>
+ <Paragraph>
+ This test requires installation of a system font that supports
+ the various international characters used in this test case.
+ Due to differences across systems regarding system fonts and
+ font handling, for some implementations editing of the test case
+ may be necessary to specify the correct system font. To
+ minimize system dependencies, a future version of this test
+ might include all necessary glyphs as an SVG font.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">text-intro-01-f</title>
+ <desc id="test-desc">Test various aspects of internationalized text, including left-to-right, right-to-left, top-to-bottom, and the following properties: 'writing-mode', 'glyph-orientation-vertical', 'glyph-orientation-horizontal', 'direction' and 'unicode-bidi'.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text font-family="Helvetica" font-size="12" fill="red" x="10" y="20">Test combinations of left-to-right, right-to-left, top-to-bottom text.</text>
+ <g font-size="12" font-family="'LucidaSansUnicode','MS-Gothic'" >
+ <text x="10" y="60">Polish: MogÄ? jeÅ?Ä? szkÅ?o, i mi nie szkodzi.</text>
+ <text x="10" y="80">Russian: Я могÑ? еÑ?Ñ?Ñ? Ñ?Ñ?екло, Ñ?Ñ?о мне не вÑ?едиÑ?.</text>
+ <text x="10" y="100" font-size="11" >Greek: Î?Ï?οÏ?Ï? να Ï?άÏ? Ï?Ï?αÏ?μÎνα γÏ?αλιά Ï?Ï?Ï?ίÏ? να Ï?άθÏ? Ï?ίÏ?οÏ?α.</text>
+ <text x="10" y="120">Text "×?× ×? ×?×?×?×? ×?×?×?×?×? ×?×?×?×?×?ת ×?×?×? ×?×? ×?×?×?ק ×?×?" is in Hebrew</text>
+ <text x="10" y="140">Yiddish: ×?×?×? קע×? עס×? ×?×?×?Ö¸×? ×?×?×? עס ×?×?×? ×?×?ר × ×?ש×? װײ.</text>
+ </g>
+ <g font-size="12" font-family="'MS-Gothic','LucidaSansUnicode'" >
+ <text x="10" y="160">Chinese:æ??è?½å??ä¸?ç?»ç??è??ä¸?伤身ä½?ã??</text>
+ <text x="10" y="180" font-size="12" >Japanese: ç§?ã?¯ã?¬ã?©ã?¹ã??é£?ã?¹ã??ã??ã?¾ã??ã??ã??ã??ã?¯ç§?ã??å?·ã?¤ã??ã?¾ã??ã??ã??</text>
+ </g>
+ <text font-family="Helvetica" font-size="12" fill="red" x="10" y="200">unicode-bidi:bidi-override. First, direction:ltr, then direction:rtl.</text>
+ <g font-size="12" font-family="'LucidaSansUnicode','MS-Gothic'" >
+ <text x="10" y="220" unicode-bidi="bidi-override" direction="ltr" >Text "×?× ×? ×?×?×?×? ×?×?×?×?×? ×?×?×?×?×?ת ×?×?×? ×?×? ×?×?×?ק ×?×?" is in Hebrew</text>
+ <text x="10" y="240" unicode-bidi="bidi-override" direction="rtl" >Text "×?× ×? ×?×?×?×? ×?×?×?×?×? ×?×?×?×?×?ת ×?×?×? ×?×? ×?×?×?ק ×?×?" is in Hebrew</text>
+ </g>
+ <g font-size="12" font-family="'MS-Gothic','LucidaSansUnicode'" writing-mode="tb" ><text x="390" y="10">This text "æ??è?½å??ä¸?ç?»ç??è??ä¸?伤身ä½?ã??" is in Chinese</text><text x="410" y="10" font-size="10">Japanese: ç§?ã?¯ã?¬ã?©ã?¹ã??é£?ã?¹ã??ã??ã?¾ã??ã??ã??ã??ã?¯ç§?ã??å?·ã?¤ã??ã?¾ã??ã??ã??</text><text x="430" y="10" glyph-orientation-vertical="0" font-size="10" >Japanese: ç§?ã?¯ã?¬ã?©ã?¹ã??é£?ã?¹ã??ã??ã?¾ã??ã??ã??ã??ã?¯ç§?ã??å?·ã?¤ã??ã?¾ã??ã??ã??</text></g>
+ </g>
+
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">text-intro-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/text-tref-01-f.svg b/test/svg/svg1.2/images/text-tref-01-f.svg
new file mode 100644
index 0000000..5178486
--- /dev/null
+++ b/test/svg/svg1.2/images/text-tref-01-f.svg
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- -->
+<!-- text-tref-BE-04.svg -->
+<!-- renamed for 1.1 suite to text-tref-01-f.svg -->
+<!-- -->
+<!-- Test basic capability to handle 'tref' element and attributes. -->
+<!-- -->
+<!-- -->
+<!-- Author : Lofton Henderson, 20-Mar-2000. -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 20-Mar-2000, LH: Serial#1 created. -->
+<!-- 24-Apr-2000, LH=" fix bugs in 3rd and 4th tests" serial#2. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 24-Oct-2000, LH=" rmv external reference, per f2f" ser#3 -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+ <OperatorScript>
+ <Paragraph>
+ Test for viewer capability to handle the basics of the 'tref' element
+ and its attributes. Basic referencing is tested, as well as
+ the equivalence of 'tref' to 'tspan' in attributes handling.
+ There are five sub-tests.
+ </Paragraph>
+ <Paragraph>
+ The first box down from the top should contain green "Simple internal referenced text.",
+ which is obtained by a 'tref' element reference to a 'text' element in a 'defs'
+ section of this test file.
+ </Paragraph>
+ <Paragraph>
+ The second box from the top tests changing of visual properties
+ of 'tref' substrings. It should contain
+ the string "Change color within string.", blue except for the single
+ word "color" in red. Three 'tref' elements within the
+ 'text' element each point to a substring in the 'defs' section of
+ this test file -- the second 'tref' sets fill color to red and the
+ others set fill color to blue.
+ </Paragraph>
+ <Paragraph>
+ The third box from the top tests an x-coordinate list in a 'tref',
+ which individually places each character of the string "Char-by-char."
+ The string is in a single 'text' element in the 'defs' section.
+ </Paragraph>
+ <Paragraph>
+ The fourth box from the top tests that the x,y attributes of 'tref' behave
+ like those of 'tspan'. The string
+ "Bouncing up and down." is formed by four 'tref' elements pointing to 'text'
+ elements in the 'defs' section, and each 'tref' is individually
+ positioned by the x,y attributes.
+ </Paragraph>
+ <Paragraph>
+ The final sub-test actually involves the single-line test description at the very
+ top. It is written initially in blue, and then at the end is over-written in
+ black by a 'tref' pointing to the 'desc' element of the test.
+ </Paragraph>
+ <Paragraph>
+ The rendered picture should match the reference image, except that some color
+ "fuzziness" in the top line may result from anti-aliasing.
+ Also, variations are possible in the text fonts and layout (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+ The test also uses the 'rect' element,
+ as well as basic fill (solid primary colors),
+ stroke (black 1-pixel lines), font-family (Helvetica)
+ and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">text-tref-01-f</title>
+ <desc id="test-desc">Basic test of 'tref' element and its attributes.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <defs>
+ <text id="tref-internal-reference">Simple internal referenced text.</text>
+ <text id="tref-property-change-1">Change</text>
+ <text id="tref-property-change-2">color</text>
+ <text id="tref-property-change-3">within string.</text>
+ <text id="tref-position-change-1">Bouncing</text>
+ <text id="tref-position-change-2">up</text>
+ <text id="tref-position-change-3">and</text>
+ <text id="tref-position-change-4">down.</text>
+ <text id="tref-coord-list">Char-by-char.</text>
+ </defs>
+ <!-- Test case label: this should be overwritten in black by final test. -->
+ <text x="75" y="25" font-family="Helvetica" font-size="12" fill="blue" >Basic test of 'tref' element and its attributes.</text>
+ <!-- First sub-test, internal tref reference, within this file -->
+ <text x="185" y="70" font-size="16" font-family="Helvetica" fill="green" >
+ <tref xlink:href="#tref-internal-reference"/>
+ </text>
+ <rect x="180" y="55" width="230" height="18" fill="none" stroke="black" />
+ <text x="180" y="85" font-family="Helvetica" font-size="12" fill="black" >'tref', within file</text>
+ <!-- Second sub-test, tref like tspan, for changing properties -->
+ <text x="30" y="120" font-size="16" font-family="Helvetica" fill="blue" >
+ <tref xlink:href="#tref-property-change-1"/>
+ <tref xlink:href="#tref-property-change-2" fill="red" />
+ <tref xlink:href="#tref-property-change-3"/>
+ </text>
+ <rect x="25" y="105" width="215" height="18" fill="none" stroke="black" />
+ <text x="25" y="135" font-family="Helvetica" font-size="12" fill="black" >multiple 'tref' and property changes</text>
+ <!-- Third sub-test, tref like tspan, x,y position list -->
+ <text font-size="16" font-family="Helvetica" fill="red" >
+ <tref x="185 200 215 230 245 260 275 290 305 320 335 350 365" y="165" xlink:href="#tref-coord-list"/>
+ </text>
+ <rect x="180" y="150" width="230" height="18" fill="none" stroke="black" />
+ <text x="180" y="180" font-family="Helvetica" font-size="12" fill="black" >'tref' with x-coordinate list</text>
+ <!-- Fourth sub-test, tref like tspan, changing x,y position -->
+ <text font-size="16" font-family="Helvetica" fill="blue" >
+ <tref x="30" y="230" xlink:href="#tref-position-change-1"/>
+ <tref x="101" y="214" xlink:href="#tref-position-change-2"/>
+ <tref x="123.5" y="230" xlink:href="#tref-position-change-3"/>
+ <tref x="154.5" y="246" xlink:href="#tref-position-change-4"/>
+ </text>
+ <rect x="25" y="199" width="215" height="56" fill="none" stroke="black" />
+ <text x="25" y="267" font-family="Helvetica" font-size="12" fill="black" >'tref's with x/y attribute changes</text>
+ <!-- Final test: overwrite test label in black, by tref to 'desc' element
+ instead of reference to 'text' element(s) within 'defs'. -->
+ <text x="75" y="25" font-family="Helvetica" font-size="12" fill="black" >
+ <tref xlink:href="#test-desc"/>
+ </text>
+ <!-- Patch simululation of above...
+ <text x="75" y="25" font-family="Helvetica" font-size="12" fill="black" >
+ Basic test of 'tref' element and its attributes.
+ </text>
+-->
+ </g>
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">text-tref-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/text-ws-01-f.svg b/test/svg/svg1.2/images/text-ws-01-f.svg
new file mode 100644
index 0000000..824c2ec
--- /dev/null
+++ b/test/svg/svg1.2/images/text-ws-01-f.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+<!--======================================================================-->
+<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
+<!--= Institute of Technology, Institut National de Recherche en =-->
+<!--= Informatique et en Automatique, Keio University). All Rights =-->
+<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
+<!--======================================================================-->
+<!-- ===================================================================== -->
+<!-- -->
+<!-- text-whiteSpace-BE-06.svg -->
+<!-- renamed for 1.1 suite to text-ws-01-f.svg -->
+<!-- -->
+<!-- Test that viewer correctly handles whitespace -->
+<!-- and the "space" attribute. -->
+<!-- -->
+<!-- Author : Lofton Henderson, 10-Apr-2000 -->
+<!-- 1.1 revision by Vincent Hardy -->
+<!-- -->
+<!-- History: -->
+<!-- 10-Apr-2000, LH: Serial#1 created. -->
+<!-- 02-Jun-2000, LH=" rmv 1 extra SPACE before "indented", test 3" ser#2. -->
+<!-- 03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# . -->
+<!-- 12-Dec-2000, JF: test case 2 lost its linebreaks. restored. -->
+<!-- -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="480" height="360">
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" >
+ <OperatorScript>
+ <Paragraph>
+ Test for viewer correct handling of whitespace and the 'xml:space' attribute.
+ There are four sub-tests, two for xml:space value "default" and two for
+ value "preserve". In each test, the content of the 'text' element is written on
+ multiple lines. The first test of each pair has indented text with leading
+ space characters, tabs, etc. The second has no indentation, but a line break
+ before the content and after it. There are no space (or other whitespace)
+ characters at the ends of the lines.
+ </Paragraph>
+ <Paragraph>
+ The four test cases are self-descriptive. From the top; first, "default" value applied to
+ 3 lines of content with indents, space characters, tabs, etc; second, "default" applied to two lines content with no indent; third, "preserve" applied to essentially the same content as first; fourth, "preserve" applied to essentially the same content as second.
+ </Paragraph>
+ <Paragraph>
+ In each test, the test string is in blue and the reference
+ image is in black.
+ The rendered picture should approximately match the reference image,
+ however there is some question in the reference image concerning the
+ exact amount of space in the long-space areas. The third test uses the nbsp unicode character
+ to force the reference white spaces display, which provides an accurate match if the font in use
+ has the same metrics for that character and the default white space.
+ Also, variations are possible in the text fonts and layout (per CSS2 rules).
+ </Paragraph>
+ <Paragraph>
+ The test also uses the 'rect' element,
+ as well as basic fill (solid primary colors),
+ stroke (black 1-pixel lines), font-family (Helvetica)
+ and font-size properties.
+ </Paragraph>
+ </OperatorScript>
+ </SVGTestCase>
+
+ <title id="test-title">text-ws-01-f</title>
+ <desc id="test-desc">Test that viewer correctly handle whitespace and the "space" attribute.</desc>
+ <!--======================================================================-->
+ <!--Content of Test Case follows... =====================-->
+ <!--======================================================================-->
+ <g id="test-body-content">
+ <text x="75" y="20" font-size="10" font-family="Verdana" fill="black">Basic test of xml:space attribute & whitespace handling.</text>
+ <!-- Test 1: indented, spaces, tabs, and space='default' -->
+ <!-- Features=" line break and spaces before 1st line" tabs before 2nd line; -->
+ <!-- spaces before 3rd line; no space at ends of any lines. -->
+ <text x="25" y="55" fill="blue" font-size="12" font-family="helvetica" xml:space="default">WS example with indented lines.</text>
+ <text x="25" y="70" fill="black" font-size="12" font-family="helvetica" >WS example with indented lines.</text>
+ <rect x="25" y="80" width="100" height="12" fill="none" stroke="black" />
+ <text x="28" y="90" fill="black" font-size="10" font-family="helvetica" >xml:space='default'</text>
+ <!-- Test 2: non-indented,and space='default' -->
+ <!-- Features=" line break before 1st line" no space either at beginning -->
+ <!-- or end of any lines. -->
+ <text x="25" y="115" fill="blue" font-size="12" font-family="helvetica" xml:space="default">
+WS example
+non-indented lines.
+ </text>
+ <text x="25" y="130" fill="black" font-size="12" font-family="helvetica" >WS examplenon-indented lines.</text>
+ <rect x="25" y="140" width="100" height="12" fill="none" stroke="black" />
+ <text x="28" y="150" fill="black" font-size="10" font-family="helvetica" >xml:space='default'</text>
+ <!-- Test 3: indented, spaces, tabs, and space='preserve' -->
+ <!-- Features=" line break and spaces before 1st line" tabs before 2nd line; -->
+ <!-- spaces before 3rd line; no space at ends of any lines. -->
+ <text x="25" y="175" fill="blue" font-size="12" font-family="helvetica" xml:space="preserve">
+ WS example
+ with
+ indented lines.
+ </text>
+ <!-- should match this, with blank replacing HT, LF, etc -->
+ <text x="25" y="190" fill="black" font-size="12" font-family="helvetica" xml:space='preserve'>                  WS example    with                   indented lines.</text>
+
+ <rect x="25" y="200" width="100" height="12" fill="none" stroke="black" />
+ <text x="28" y="210" fill="black" font-size="10" font-family="helvetica" >xml:space='preserve'</text>
+ <!-- Test 4: non-indented, and space='preserve' -->
+ <!-- Features=" no line break before 1st line" no space either at beginning -->
+ <!-- or end of any lines. -->
+ <text x="25" y="235" fill="blue" font-size="12" font-family="helvetica" xml:space="preserve">WS example
+non-indented lines.
+ </text>
+ <text x="25" y="250" fill="black" font-size="12" font-family="helvetica" >WS example non-indented lines.</text>
+ <rect x="25" y="260" width="100" height="12" fill="none" stroke="black" />
+ <text x="28" y="270" fill="black" font-size="10" font-family="helvetica" >xml:space='preserve'</text>
+ </g>
+
+ <!--======================================================================-->
+ <!--Legend and frame: Title, suite and SVG document serialization====-->
+ <!--======================================================================-->
+ <g id="test-legend" fill="black" font-family="Helvetica" font-size="10" >
+ <rect x="10" y="300" width="275" height="50" fill="none" stroke="#000000" />
+ <path fill="none" stroke="#000000" d="M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80"/>
+ <text x="25" y="311">Scalable Vector Graphics (SVG) v1.1 Conformance Suite</text>
+ <a xlink:href="copyright-documents-19990405.html">
+ <text x="12" y="347" fill="blue" >Copyright 2002 W3C. All Rights Reserved.</text>
+ </a>
+ <text font-size="12" x="35" y="330">text-ws-01-f</text>
+ <text font-size="10" x="210" y="327">$Revision: 1.1 $</text>
+ <text font-size="10" x="210" y="345">Release 1.0</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000" />
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/images/timed-lyrics.svg b/test/svg/svg1.2/images/timed-lyrics.svg
new file mode 100644
index 0000000..78c02e5
--- /dev/null
+++ b/test/svg/svg1.2/images/timed-lyrics.svg
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <svg viewBox="0 0 617 617" height="100%" width="100%"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.2" baseProfile="tiny">
+
+ <desc>This document contains the textual lyrics to synchronize with some SVG content in the referencing document</desc>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g fill="blue" font-family="SVGFreeSansASCII,sans-serif" font-size="10" transform="translate(20, 20)">
+ <text xml:id="Text0" display="none">This is some text</text>
+ <set xlink:href="#Text0" attributeName="display" to="inline" begin="0" end="1"/>
+ <text xml:id="Text10" display="none">simulating some lyrics</text>
+ <set xlink:href="#Text10" attributeName="display" to="inline" begin="1.1" end="2"/>
+ <text xml:id="Text20" display="none">displayed synchronously</text>
+ <set xlink:href="#Text20" attributeName="display" to="inline" begin="2.1" end="3"/>
+ <text xml:id="Text30" display="none">with some SVG</text>
+ <set xlink:href="#Text30" attributeName="display" to="inline" begin="3.1" end="4"/>
+ <text xml:id="Text40" display="none">in a different document</text>
+ <set xlink:href="#Text40" attributeName="display" to="inline" begin="4.1" end="5"/>
+ </g>
+ </svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/timed-lyrics2.svg b/test/svg/svg1.2/images/timed-lyrics2.svg
new file mode 100644
index 0000000..a8dd89a
--- /dev/null
+++ b/test/svg/svg1.2/images/timed-lyrics2.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <svg viewBox="0 0 617 617" height="100%" width="100%"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.2" baseProfile="tiny">
+
+ <desc>This document contains the textual lyrics to synchronize with some SVG content in the referencing document</desc>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g fill="blue" font-family="SVGFreeSansASCII,sans-serif" font-size="10" transform="translate(20, 20)">
+ <text xml:id="Text0" display="none">This is some text</text>
+ <set xlink:href="#Text0" attributeName="display" to="inline" begin="0" end="2"/>
+ <text xml:id="Text10" display="none">simulating some lyrics</text>
+ <set xlink:href="#Text10" attributeName="display" to="inline" begin="2.1" end="4"/>
+ <text xml:id="Text20" display="none">displayed synchronously</text>
+ <set xlink:href="#Text20" attributeName="display" to="inline" begin="4.1" end="6"/>
+ <text xml:id="Text30" display="none">with some SVG</text>
+ <set xlink:href="#Text30" attributeName="display" to="inline" begin="6.1" end="8"/>
+ <text xml:id="Text40" display="none">in a different document</text>
+ <set xlink:href="#Text40" attributeName="display" to="inline" begin="8.1" end="10"/>
+ <text xml:id="Text50" display="none">with a skiier</text>
+ <set xlink:href="#Text50" attributeName="display" to="inline" begin="10.1" end="12"/>
+ <text xml:id="Text60" display="none">and noise</text>
+ <set xlink:href="#Text60" attributeName="display" to="inline" begin="12.1" end="14"/>
+ </g>
+ </svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/images/toc-sv.svg b/test/svg/svg1.2/images/toc-sv.svg
new file mode 100644
index 0000000..bada779
--- /dev/null
+++ b/test/svg/svg1.2/images/toc-sv.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450">
+
+<title>SVG Conformance Tests -- TOC-SV</title>
+
+<style type="text/css">
+<!--
+text { font-family: helvetica; font-size: 12 }
+a > text { fill: blue}
+.verdana0 { font-family: Verdana; font-size: 10pt; word-spacing: 0;
+ text-anchor: start }
+.verdana1 { font-family: Verdana; font-size: 10pt; word-spacing: 0;
+ text-anchor: start; }
+-->
+</style>
+
+<rect id="test-frame" x="1" y="1" width="448" height="448" style="fill:none; stroke:#000000"/>
+
+<text x="340" y="20" >26 December 2000</text>
+
+<text x="10" y="50" style="font-size:14">SVG Conformance Tests -- TOC (-SV) </text>
+<line x1="10" y1="55" x2="440" y2="55" style="stroke:gray"/>
+
+<text x="10" y="85" >Table of Contents</text>
+
+<a xlink:href="./rendering-orderGr-BE-01-nav.svg">
+<text x="10" y="105">3. Rendering Model</text>
+</a>
+
+<a xlink:href="./structure-empty-BE-01-nav.svg">
+<text x="10" y="120">5. Structure</text>
+</a>
+
+<a xlink:href="./style-selector-BE-01-nav.svg">
+<text x="10" y="135" >6. Styling</text>
+</a>
+
+<a xlink:href="./coords-units-BE-01-nav.svg">
+<text x="10" y="150">7. Coordinate Systems, Transformations, and Units</text>
+</a>
+
+<a xlink:href="./path-lines-BE-01-nav.svg">
+<text x="10" y="165" >8. Paths</text>
+</a>
+
+<a xlink:href="./shapes-rect-BE-01-nav.svg">
+<text x="10" y="180" >9. Basic Shapes</text>
+</a>
+
+<a xlink:href="./text-text-BE-01-nav.svg">
+<text x="10" y="195" >10. Text</text>
+</a>
+
+<a xlink:href="./paint-fill-BE-01-nav.svg">
+<text x="10" y="210" >11. Painting: Filling, Stroking, and Markers</text>
+</a>
+
+<a xlink:href="./color-datatypes-BE-01-nav.svg">
+<text x="10" y="225" >12. Color</text>
+</a>
+
+<a xlink:href="./gradPatt-linearGr-BE-01-nav.svg">
+<text x="10" y="240" >13. Gradients and Patterns</text>
+</a>
+
+<a xlink:href="./masking-clipPath-BE-01-nav.svg">
+<text x="10" y="255" >14. Clipping, Masking, Compositing</text>
+</a>
+
+<a xlink:href="./filters-many-BE-01-nav.svg">
+<text x="10" y="270" >15. Filter Effects</text>
+</a>
+
+<a xlink:href="./interact-zoomPan-BE-01-nav.svg">
+<text x="10" y="285" >16. Interactivity</text>
+</a>
+
+<a xlink:href="./linking-outBound-BE-01-nav.svg">
+<text x="10" y="300" >17. Linking</text>
+</a>
+
+<a xlink:href="./script-eventDom-BE-01-nav.svg">
+<text x="10" y="315" >18. Scripting</text>
+</a>
+
+<a xlink:href="./animation-overall-BE-01-nav.svg">
+<text x="10" y="330" >19. Animation</text>
+</a>
+
+<a xlink:href="./fonts-fontElement-BE-01-nav.svg">
+<text x="10" y="345" >20. Fonts</text>
+</a>
+
+<a xlink:href="./metadata-sample-BE-01-nav.svg">
+<text x="10" y="360" >21. Metadata</text>
+</a>
+
+<a xlink:href="./extend-multiNS-BE-01-nav.svg">
+<text x="10" y="375" >23. Extensibility</text>
+</a>
+
+<a xlink:href="./dom-core-BE-01-nav.svg">
+<text x="10" y="390" >B. DOM</text>
+</a>
+
+<!-- No related tests yet -->
+<text x="10" y="425" style="fill:black; ">F. Implementation requirements</text>
+<text x="10" y="440" style="fill:black; ">G. Conformance requirements</text>
+
+
+</svg>
diff --git a/test/svg/svg1.2/images/toc-svcmp.svg b/test/svg/svg1.2/images/toc-svcmp.svg
new file mode 100644
index 0000000..2a4e260
--- /dev/null
+++ b/test/svg/svg1.2/images/toc-svcmp.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450">
+
+<title>SVG Conformance Tests -- TOC-SV</title>
+
+<style type="text/css">
+<!--
+text { font-family: helvetica; font-size: 12 }
+a > text { fill: blue}
+.verdana0 { font-family: Verdana; font-size: 10pt; word-spacing: 0;
+ text-anchor: start }
+.verdana1 { font-family: Verdana; font-size: 10pt; word-spacing: 0;
+ text-anchor: start; }
+-->
+</style>
+
+<rect id="test-frame" x="1" y="1" width="448" height="448" style="fill:none; stroke:#000000"/>
+
+<text x="340" y="20" >26 December 2000</text>
+
+<text x="10" y="50" style="font-size:14">SVG Conformance Tests -- TOC (-SV) </text>
+<line x1="10" y1="55" x2="440" y2="55" style="stroke:gray"/>
+
+<text x="10" y="85" >Table of Contents</text>
+
+<a xlink:href="./rendering-orderGr-BE-01-cmpnav.svg">
+<text x="10" y="105">3. Rendering Model</text>
+</a>
+
+<a xlink:href="./structure-empty-BE-01-cmpnav.svg">
+<text x="10" y="120">5. Structure</text>
+</a>
+
+<a xlink:href="./style-selector-BE-01-cmpnav.svg">
+<text x="10" y="135" >6. Styling</text>
+</a>
+
+<a xlink:href="./coords-units-BE-01-cmpnav.svg">
+<text x="10" y="150">7. Coordinate Systems, Transformations, and Units</text>
+</a>
+
+<a xlink:href="./path-lines-BE-01-cmpnav.svg">
+<text x="10" y="165" >8. Paths</text>
+</a>
+
+<a xlink:href="./shapes-rect-BE-01-cmpnav.svg">
+<text x="10" y="180" >9. Basic Shapes</text>
+</a>
+
+<a xlink:href="./text-text-BE-01-cmpnav.svg">
+<text x="10" y="195" >10. Text</text>
+</a>
+
+<a xlink:href="./paint-fill-BE-01-cmpnav.svg">
+<text x="10" y="210" >11. Painting: Filling, Stroking, and Markers</text>
+</a>
+
+<a xlink:href="./color-datatypes-BE-01-cmpnav.svg">
+<text x="10" y="225" >12. Color</text>
+</a>
+
+<a xlink:href="./gradPatt-linearGr-BE-01-cmpnav.svg">
+<text x="10" y="240" >13. Gradients and Patterns</text>
+</a>
+
+<a xlink:href="./masking-clipPath-BE-01-cmpnav.svg">
+<text x="10" y="255" >14. Clipping, Masking, Compositing</text>
+</a>
+
+<a xlink:href="./filters-many-BE-01-cmpnav.svg">
+<text x="10" y="270" >15. Filter Effects</text>
+</a>
+
+<a xlink:href="./interact-zoomPan-BE-01-cmpnav.svg">
+<text x="10" y="285" >16. Interactivity</text>
+</a>
+
+<a xlink:href="./linking-outBound-BE-01-cmpnav.svg">
+<text x="10" y="300" >17. Linking</text>
+</a>
+
+<a xlink:href="./script-eventDom-BE-01-cmpnav.svg">
+<text x="10" y="315" >18. Scripting</text>
+</a>
+
+<a xlink:href="./animation-overall-BE-01-cmpnav.svg">
+<text x="10" y="330" >19. Animation</text>
+</a>
+
+<a xlink:href="./fonts-fontElement-BE-01-cmpnav.svg">
+<text x="10" y="345" >20. Fonts</text>
+</a>
+
+<a xlink:href="./metadata-sample-BE-01-cmpnav.svg">
+<text x="10" y="360" >21. Metadata</text>
+</a>
+
+<a xlink:href="./extend-multiNS-BE-01-cmpnav.svg">
+<text x="10" y="375" >23. Extensibility</text>
+</a>
+
+<a xlink:href="./dom-core-BE-01-cmpnav.svg">
+<text x="10" y="390" >B. DOM</text>
+</a>
+
+<!-- No related tests yet -->
+<text x="10" y="425" style="fill:black; ">F. Implementation requirements</text>
+<text x="10" y="440" style="fill:black; ">G. Conformance requirements</text>
+
+
+</svg>
diff --git a/test/svg/svg1.2/images/uparrow.png b/test/svg/svg1.2/images/uparrow.png
new file mode 100644
index 0000000..6fe9f09
Binary files /dev/null and b/test/svg/svg1.2/images/uparrow.png differ
diff --git a/test/svg/svg1.2/images/viewport-fill-img.png b/test/svg/svg1.2/images/viewport-fill-img.png
new file mode 100644
index 0000000..ad51db1
Binary files /dev/null and b/test/svg/svg1.2/images/viewport-fill-img.png differ
diff --git a/test/svg/svg1.2/images/welcome.wav b/test/svg/svg1.2/images/welcome.wav
new file mode 100644
index 0000000..b512109
Binary files /dev/null and b/test/svg/svg1.2/images/welcome.wav differ
diff --git a/test/svg/svg1.2/images/xmltree.xml b/test/svg/svg1.2/images/xmltree.xml
new file mode 100644
index 0000000..dafddea
--- /dev/null
+++ b/test/svg/svg1.2/images/xmltree.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.example.org/customnamespace">
+ <text>This is for testing xml in parsexml.</text>
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-02-t.png b/test/svg/svg1.2/svg/animate-elem-02-t.png
new file mode 100644
index 0000000..06d411e
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-02-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-02-t.svg b/test/svg/svg1.2/svg/animate-elem-02-t.svg
new file mode 100644
index 0000000..ea4d459
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-02-t.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test 'additive' and 'accumulate' attributes." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: animate-elem-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test 'additive' and 'accumulate' attributes.</p>
+ <p>
+ The four pictures show the effect with the four possible combinations of 'additive' (either 'replace' or 'sum') and
+ 'accumulate' (either 'none' or 'sum'). Because two animations are animating the height, the effects of 'additive' and
+ 'accumulate' are sometimes different than when there is only a single animation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(0, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4" />
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4" />
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4" />
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate xml:id="an5" attributeName="height" calcMode="discrete" additive="replace" accumulate="none" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze" />
+ </rect>
+ <text x="30" y="285" fill="navy">anim.5</text>
+ </g>
+ <g transform="translate(110, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4" />
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4" />
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4" />
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate xml:id="an6" attributeName="height" calcMode="discrete" additive="sum" accumulate="none" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze" />
+ </rect>
+ <text x="30" y="285" fill="navy">anim.6</text>
+ </g>
+ <g transform="translate(220, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4" />
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4" />
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4" />
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate xml:id="an7" attributeName="height" calcMode="discrete" additive="replace" accumulate="sum" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze" />
+ </rect>
+ <text x="30" y="285" fill="navy">anim.7</text>
+ </g>
+ <g transform="translate(330, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4" />
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4" />
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4" />
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate xml:id="an8" attributeName="height" calcMode="discrete" additive="sum" accumulate="sum" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze" />
+ </rect>
+ <text x="30" y="285" fill="navy">anim.8</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-03-t.png b/test/svg/svg1.2/svg/animate-elem-03-t.png
new file mode 100644
index 0000000..5afa9ed
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-03-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-03-t.svg b/test/svg/svg1.2/svg/animate-elem-03-t.svg
new file mode 100644
index 0000000..b02d77d
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-03-t.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test inheritance of animated properties." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test inheritance of animated properties.</p>
+ <p>
+ Three colored text strings appear. All three are inside of the same 'g' element. The 'g' element has its 'font-size'
+ animated from 30 to 40, and its 'fill' from #00f (blue) to #070 (green).
+ </p>
+ <p>
+ The first colored 'text' element has the font-size set, so the animation of the parent 'g' only affects the fill color.
+ The second has the fill set and font-size set, so no inherited values are used. The font-size and fill color stay
+ constant. The third colored 'text' element has neither of these properties specified and thus inherits both animated
+ values - the fill color changes and the text grows in size.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="MyDecFont" horiz-adv-x="466">
+ <font-face font-family="MyDecFont" />
+ <missing-glyph horiz-adv-x="233" d="M 50 0 L50 700 200 700 200 0 z" />
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="233" />
+ <glyph unicode="1" glyph-name="one" horiz-adv-x="558" d="M458 716L100 534V428L357 552V97H241V380L140 328V0H458V716Z" />
+ <glyph unicode="2" glyph-name="two" horiz-adv-x="585" d="M69 509Q82 523 102 541T147 575T203 603T268 614Q311 614 342 599T392 560T421 505T430 443Q430 420 423 398T405 352L343 201H444L492 309Q508 345 519 379T531 448Q531 504 511 552T454 635T369 691T262 711Q231 711 204 704T152 684T106 655T69 623V509ZM535 97H187L309 422Q316 441 315 457T306 483T287 500T265 506Q261 506 254 505T239 499T224 485T211 461L50 0H535V97Z" />
+ <glyph unicode="3" glyph-name="three" horiz-adv-x="542" d="M58 553Q109 588 148 601T220 614Q255 614 282 604T328 575T356 535T366 488Q366 475 364 460T355 429T336 397T302 368Q311 363 325 353T352 326T376 286T386 232Q386 203 376 177T345 130T295 98T227 86Q179 86 134 104T50 153V45Q59 38 74 29T111 10T163 -5T231 -11Q296 -11 345 8T426 58T475 131T492 218Q492 251 486 276T469 320T446 354T421 378Q438 396 454 425T470 503Q470 546 454 584T406 650T332 695T233 711Q179 711 137 696T58 655V553ZM156 255Q156 229 173 212T217 194Q243 194 260 211T278 255Q278 281 261 298T217 316Q191 316 174 299T156 255ZM161 467Q161 444 177 428T216 412Q225 412 234 415T252 425T265 442T271 467Q271 491 256 506T216 522Q202 522 192 517T174 503T164 486T161 467Z" />
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="629" d="M523 658Q479 681 426 696T317 711Q251 711 200 690T113 634T59 551T40 452Q40 404 59 356T114 270T198 210T304 194Q310 195 319 197T336 204T351 219T357 246Q357 261 351 270T337 285T320 291T305 294Q251 300 220 319T172 363T151 411T146 454Q146 478 154 506T183 558T237 598T322 614Q375 614 426 598T523 548V658ZM96 42Q140 19 193 4T302 -11Q368 -11 419 10T506 66T560 149T579 248Q579 296 560 344T505 431T421 490T315 506Q309 505 300 503T282 496T268 480T262 454Q262 439 268 430T282 415T299 409T314 406Q368 399 399 380T447 336T468 288T473 246Q473 222 465 194T436 142T382 102T297 86Q244 86 193 102T96 152V42Z" />
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="578" d="M450 0H548V198Q548 288 522 344T458 433T375 477T292 489Q240 489 194 470T114 418T60 339T40 240Q40 180 63 134T122 55T202 6T291 -11Q311 -11 325 -9T352 -1V96Q341 89 331 86T305 83Q265 83 234 96T182 132T149 183T138 242Q138 275 150 303T183 351T232 383T294 395Q306 395 332 391T384 368T430 311T450 203V0ZM236 239Q236 215 253 198T294 181Q318 181 335 198T352 239Q352 263 335 280T294 297Q270 297 253 280T236 239Z" />
+ <glyph unicode="m" glyph-name="m" horiz-adv-x="774" d="M40 0H138V231Q138 280 150 312T181 362T223 388T269 395Q294 395 314 388T349 370T374 346T392 318Q407 353 440 374T515 395Q531 395 553 390T596 368T631 319T646 231V0H744V231Q744 248 743 273T735 327T715 385T678 437T619 474T532 489Q504 489 482 484T443 470T412 451T390 431Q358 464 321 476T252 489Q222 489 185 481T116 445T62 367T40 231V0ZM242 0H542V246Q542 275 526 286T493 297Q473 297 459 283T444 246V94H340V246Q340 269 326 283T291 297Q275 297 259 286T242 246V0Z" />
+ <glyph unicode="p" glyph-name="p" horiz-adv-x="552" d="M40 -184H138V192H267Q284 192 300 204T316 239Q316 259 303 272T267 286H40V-184ZM40 384H261Q297 384 325 372T373 340T403 294T414 238Q414 209 403 183T373 137T326 106T264 94H236V0H264Q318 0 363 18T442 69T493 144T512 238Q512 288 494 332T442 408T363 459T263 478H40V384Z" />
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="380" d="M340 662H40V0H340V94H138V568H242V192H340V662Z" />
+ <glyph unicode="e" glyph-name="e" horiz-adv-x="530" d="M500 192V227Q500 296 480 346T428 427T354 474T271 489Q221 489 178 470T101 418T49 340T30 243Q30 204 43 161T87 83T171 24T303 0H482V94H298Q250 94 217 108T165 144T137 192T128 244Q128 276 139 303T171 351T218 383T275 395Q301 395 322 386T360 362T386 327T402 286H277Q253 286 240 272T226 239Q226 223 237 208T277 192H500Z" />
+ </font>
+ </defs>
+ <g font-family="MyDecFont" fill="#00f" stroke="none">
+ <g xml:id="AnimationTarget">
+ <text x="20" y="80" font-size="40">Sample 123</text>
+ <text x="20" y="155" font-size="60" fill="#00f">Sample 123</text>
+ <text x="20" y="250">Sample 123</text>
+ <animate attributeName="font-size" attributeType="CSS" begin="0s" dur="6s" fill="freeze" from="40" to="80" />
+ <animate attributeName="fill" attributeType="CSS" begin="0s" dur="6s" fill="freeze" from="#00f" to="#070" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-04-t.png b/test/svg/svg1.2/svg/animate-elem-04-t.png
new file mode 100644
index 0000000..308cfd0
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-04-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-04-t.svg b/test/svg/svg1.2/svg/animate-elem-04-t.svg
new file mode 100644
index 0000000..435c541
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-04-t.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test different ways of defining a motion path." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test different ways of defining a motion path.</p>
+ <p>
+ An animation moves a triangle along a path. Reference rectangles, lines and text are provided to help show what the
+ correct behavior is. The red text shows the way that the motion path is specified.
+ </p>
+ <p>This animation uses the 'from' and 'to' attributes to define the motion path.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95" fill="red">'from'/'to' attribute.</text>
+ <path d="M90,258 L390,180" fill="none" stroke="black" stroke-width="6" />
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="360" y="120" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="390" y="230" text-anchor="middle">3+ sec.</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="red" stroke-width="6">
+ <animateMotion from="90,258" to="390,180" begin="0s" dur="3s" fill="freeze" />
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-05-t.png b/test/svg/svg1.2/svg/animate-elem-05-t.png
new file mode 100644
index 0000000..e71aecc
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-05-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-05-t.svg b/test/svg/svg1.2/svg/animate-elem-05-t.svg
new file mode 100644
index 0000000..a1ad6af
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-05-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test different ways of defining a motion path." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test different ways of defining a motion path.</p>
+ <p>
+ An animation moves a triangle along a path. Reference rectangles, lines and text are provided to help show what
+ the correct behavior is. The red text shows the way that the motion path is specified.
+ </p>
+ <p>This animation uses the 'values' attribute to define the motion path, with a linear calcMode.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95" fill="red">'values' attribute.</text>
+ <path d="M90,258 L240,180 L390,180" fill="none" stroke="black" stroke-width="6" />
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="210" y="120" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="240" y="222" text-anchor="middle">3+</text>
+ <rect x="360" y="120" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="390" y="222" text-anchor="middle">6+</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="red" stroke-width="6">
+ <animateMotion values="90,258;240,180;390,180" begin="0s" dur="6s" calcMode="linear" fill="freeze" />
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-06-t.png b/test/svg/svg1.2/svg/animate-elem-06-t.png
new file mode 100644
index 0000000..067aac7
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-06-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-06-t.svg b/test/svg/svg1.2/svg/animate-elem-06-t.svg
new file mode 100644
index 0000000..e577a02
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-06-t.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test different ways of defining a motion path." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test different ways of defining a motion path.</p>
+ <p>
+ An animation moves a triangle along a path. Reference rectangles, lines and text are provided to help show what
+ the correct behavior is. The red text shows the way that the motion path is specified.
+ </p>
+ <p>This animation uses the 'path' attribute to define the motion path.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95" fill="red">'path' attribute.</text>
+ <path d="M90,258 C90,258 216,120 390,198" fill="none" stroke="black" stroke-width="6" />
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="360" y="138" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="390" y="240" text-anchor="middle">6+ sec.</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="red" stroke-width="6">
+ <animateMotion path="M90,258 C90,258 216,120 390,198" begin="0s" dur="6s" calcMode="linear" fill="freeze" />
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-07-t.png b/test/svg/svg1.2/svg/animate-elem-07-t.png
new file mode 100644
index 0000000..13d9fab
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-07-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-07-t.svg b/test/svg/svg1.2/svg/animate-elem-07-t.svg
new file mode 100644
index 0000000..178f673
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-07-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test different ways of defining a motion path." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test different ways of defining a motion path.</p>
+ <p>
+ An animation moves a triangle along a path. Reference rectangles, lines and text are provided to help show what the
+ correct behavior is. The red text shows the way that the motion path is specified.
+ </p>
+ <p>This animation uses the 'mpath' sub-element to define the motion path.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95" fill="red">'mpath' element.</text>
+ <path xml:id="mpathRef" d="M90,258 C90,258 216,120 390,198" fill="none" stroke="black" stroke-width="6" />
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="360" y="138" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6" />
+ <text x="390" y="240" text-anchor="middle">6+ sec.</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="red" stroke-width="6">
+ <animateMotion begin="0s" dur="6s" calcMode="linear" fill="freeze">
+ <mpath xlink:href="#mpathRef" />
+ </animateMotion>
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-08-t.png b/test/svg/svg1.2/svg/animate-elem-08-t.png
new file mode 100644
index 0000000..e5e2e18
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-08-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-08-t.svg b/test/svg/svg1.2/svg/animate-elem-08-t.svg
new file mode 100644
index 0000000..380b856
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-08-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test rotate='auto' and rotate='auto-reverse'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test rotate='auto' and rotate='auto-reverse'.</p>
+ <p>
+ Two animations have been defined that move a triangle along a path. The first animation specifies rotate='auto',
+ which causes the object to be rotated along the curve of the path. The second animation specifies rotate='auto-reverse',
+ which causes the object to be flipped and then rotated along the curve of the path.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="14" text-anchor="middle" x="225" y="25">Test rotate='auto' and rotate='auto-reverse'</text>
+ <g font-family="Arial" font-size="12" text-anchor="middle">
+ <path d="M25,225 C25,175 125,150 175,200" fill="none" stroke="black" stroke-width="2" />
+ <rect x="10" y="195" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4" />
+ <text x="25" y="240">0 sec.</text>
+ <rect x="160" y="170" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4" />
+ <text x="175" y="215">6+ sec.</text>
+ <path d="M-15,0 L0,-30 L15,0 z" fill="blue" stroke="red" stroke-width="2">
+ <animateMotion path="M25,225 C25,175 125,150 175,200" rotate="auto" begin="0s" dur="6s" calcMode="linear" fill="freeze" />
+ </path>
+ <text x="100" y="260" fill="red" stroke="none" font-size="14">rotate='auto'</text>
+ <path d="M275,225 C275,175 375,150 425,200" fill="none" stroke="black" stroke-width="2" />
+ <rect x="260" y="195" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4" />
+ <text x="275" y="240">0 sec.</text>
+ <rect x="410" y="170" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4" />
+ <text x="425" y="215">6+ sec.</text>
+ <path d="M-15,0 L0,-30 L15,0 z" fill="blue" stroke="red" stroke-width="2">
+ <animateMotion path="M275,225 C275,175 375,150 425,200" rotate="auto-reverse" begin="0s" dur="6s" calcMode="linear" fill="freeze" />
+ </path>
+ <text x="350" y="260" fill="red" stroke="none" font-size="14">rotate='auto-reverse'</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-09-t.png b/test/svg/svg1.2/svg/animate-elem-09-t.png
new file mode 100644
index 0000000..d42baee
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-09-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-09-t.svg b/test/svg/svg1.2/svg/animate-elem-09-t.svg
new file mode 100644
index 0000000..2c1d295
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-09-t.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'calcMode'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-09-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test possible values for 'calcMode="discrete"'</p>
+ <p>
+ Two animations have been defined. For each animation, ruler lines and text are provided to help show what the
+ correct behavior is. The black text and ruler lines help show the sizes and movement of the rectangles over time.
+ </p>
+ <p>
+ The discrete animations should show stair-stepping animations, with quantum-level jumps every two seconds in
+ these tests. The linear animations change constantly with each keyframe to keyframe section, with the result
+ that the change is faster when there is a larger change within a given amount of time. The paced animations
+ change constantly over the entire animation, regardless of the values at particular keyframes. For
+ calcMode='spline' in this test case, the initial rate of change is defined to be the same as linear, but the
+ last jump has an ease-in/ease-out effect where the change is slower at the start and end but faster in the
+ middle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:space="preserve" font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">0-2 sec.</text>
+ <text x="0" y="170">2-4 sec. </text>
+ <text x="0" y="114">4-6 sec. </text>
+ <text x="3" y="3">6+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="167" x2="170" y2="167" />
+ <line x1="120" y1="111" x2="170" y2="111" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" calcMode="discrete" values="210;177;121;10" begin="0s" dur="8s" fill="freeze" />
+ </rect>
+ </g>
+ <g transform="translate(250,50)">
+ <text x="0" y="203">0-2 sec.</text>
+ <text x="0" y="170">2-4 sec. </text>
+ <text x="0" y="114">4-6 sec. </text>
+ <text x="3" y="3">6+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="167" x2="170" y2="167" />
+ <line x1="120" y1="111" x2="170" y2="111" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="discrete" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="8s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-10-t.png b/test/svg/svg1.2/svg/animate-elem-10-t.png
new file mode 100644
index 0000000..d61c634
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-10-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-10-t.svg b/test/svg/svg1.2/svg/animate-elem-10-t.svg
new file mode 100644
index 0000000..498cacf
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-10-t.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'calcMode'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-10-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test possible values for 'calcMode="linear"'</p>
+ <p>
+ Two animations have been defined. For each animation, ruler lines and text are provided to help show what the
+ correct behavior is. The black text and ruler lines help show the sizes and movement of the rectangles over time.
+ </p>
+ <p>
+ The linear animations change constantly with each keyframe to keyframe section, with the result that the change
+ is faster when there is a larger change within a given amount of time.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-10-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="167" x2="170" y2="167" />
+ <line x1="120" y1="111" x2="170" y2="111" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <!-- Should use default of calcMode="linear" -->
+ <animate attributeName="height" values="210;177;121;10" begin="0s" dur="9s" fill="freeze" />
+ </rect>
+ </g>
+ <g transform="translate(250,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="167" x2="170" y2="167" />
+ <line x1="120" y1="111" x2="170" y2="111" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="linear" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="9s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-11-t.png b/test/svg/svg1.2/svg/animate-elem-11-t.png
new file mode 100644
index 0000000..5887bac
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-11-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-11-t.svg b/test/svg/svg1.2/svg/animate-elem-11-t.svg
new file mode 100644
index 0000000..cc96d1b
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-11-t.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'calcMode'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-11-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test possible values for 'calcMode="paced"'</p>
+ <p>
+ Two animations have been defined. For each animation, ruler lines and text are provided to help show what the
+ correct behavior is. The black text and ruler lines help show the sizes and movement of the rectangles over time.
+ </p>
+ <p>The paced animations change constantly over the entire animation, regardless of the values at particular keyframes.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-11-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="136.33">at 3 sec. </text>
+ <text x="0" y="69.66">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="133.33" x2="170" y2="133.33" />
+ <line x1="120" y1="66.66" x2="170" y2="66.66" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" calcMode="paced" values="210;177;121;10" begin="0s" dur="9s" fill="freeze" />
+ </rect>
+ </g>
+ <g transform="translate(250,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="136.33">at 3 sec. </text>
+ <text x="0" y="69.66">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="133.33" x2="170" y2="133.33" />
+ <line x1="120" y1="66.66" x2="170" y2="66.66" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="paced" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="9s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-12-t.png b/test/svg/svg1.2/svg/animate-elem-12-t.png
new file mode 100644
index 0000000..b9982cd
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-12-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-12-t.svg b/test/svg/svg1.2/svg/animate-elem-12-t.svg
new file mode 100644
index 0000000..87bcec1
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-12-t.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'calcMode'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-12-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test possible values for 'calcMode="spline"'</p>
+ <p>
+ Two animations have been defined. For each animation, ruler lines and text are provided to help show what the correct
+ behavior is. The black text and ruler lines help show the sizes and movement of the rectangles over time.
+ </p>
+ <p>
+ For calcMode='spline' in this test case, the initial rate of change is defined to be the same as linear, but the last
+ jump has an ease-in/ease-out effect where the change is slower at the start and end but faster in the middle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-12-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="167" x2="170" y2="167" />
+ <line x1="120" y1="111" x2="170" y2="111" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" calcMode="spline" keySplines="0,0,1,1;0,0,1,1;.75,0,0,.75" values="210;177;121;10" begin="0s" dur="9s" fill="freeze" />
+ </rect>
+ </g>
+ <g transform="translate(250,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200" />
+ <line x1="120" y1="167" x2="170" y2="167" />
+ <line x1="120" y1="111" x2="170" y2="111" />
+ <line x1="120" y1="0" x2="170" y2="0" />
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="spline" keySplines="0,0,1,1;0,0,1,1;.75,0,0,.75" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="9s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-13-t.png b/test/svg/svg1.2/svg/animate-elem-13-t.png
new file mode 100644
index 0000000..5f9c0b1
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-13-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-13-t.svg b/test/svg/svg1.2/svg/animate-elem-13-t.svg
new file mode 100644
index 0000000..c8e696c
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-13-t.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test 'from', 'by', 'to' and 'values'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-13-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test 'from', 'by', 'to' and 'values'</p>
+ <p>
+ Six animations have been defined. All six animations define the same simultaneous behavior, but use different
+ combinations of attributes 'from', 'by', 'to' and 'values'. In all cases, from time 2 seconds to time 5 seconds,
+ the rectangle should change from a width of 30 to a width of 300.
+ </p>
+ <p>The red text shows the attributes that were used for that particular animation.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-13-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <line x1="190" x2="190" y1="45" y2="300" stroke="#880000" stroke-width="4" />
+ <line x1="460" x2="460" y1="45" y2="300" stroke="#880000" stroke-width="4" />
+ <text x="156" y="32">0-2 sec.</text>
+ <text x="370" y="32">5+ sec.</text>
+ <g>
+ <rect x="160" y="60" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" from="30" to="300" begin="2s" dur="3s" fill="freeze" />
+ </rect>
+ <text x="20" y="85" fill="red">from to</text>
+ </g>
+ <g>
+ <rect x="160" y="100" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" from="30" by="270" begin="2s" dur="3s" fill="freeze" />
+ </rect>
+ <text x="20" y="125" fill="red">from by</text>
+ </g>
+ <g>
+ <rect x="160" y="140" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" by="270" begin="2s" dur="3s" fill="freeze" />
+ </rect>
+ <text x="20" y="165" fill="red">by</text>
+ </g>
+ <g>
+ <rect x="160" y="180" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" to="300" begin="2s" dur="3s" fill="freeze" />
+ </rect>
+ <text x="20" y="205" fill="red">to</text>
+ </g>
+ <g>
+ <rect x="160" y="220" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" values="30;300" begin="2s" dur="3s" fill="freeze" />
+ </rect>
+ <text x="20" y="245" fill="red">values</text>
+ </g>
+ <g>
+ <rect x="160" y="260" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" values="30;120;210;300" begin="2s" dur="3s" fill="freeze" />
+ </rect>
+ <text x="20" y="285" fill="red">values</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-14-t.png b/test/svg/svg1.2/svg/animate-elem-14-t.png
new file mode 100644
index 0000000..8e6d4cf
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-14-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-14-t.svg b/test/svg/svg1.2/svg/animate-elem-14-t.svg
new file mode 100644
index 0000000..0629685
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-14-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'keyTimes'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-14-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test 'calcMode'=discrete</p>
+ <p>One animation has been defined to animate the height of a rectangle. Ruler lines and text are provided to help show what the correct behavior is. The red text shows the values for the 'calcMode' and 'keyTimes' attributes. The black text and ruler lines help show the size and movement of the rectangle over time.</p>
+ <p>This test shows an animation with calcMode="discrete" (i.e., a jumping animation).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-14-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text fill="red" font-size="40" x="3" y="45">calcMode="discrete"</text>
+ <text fill="red" font-size="40" x="3" y="100">keyTimes="0;.2;.4;.6"</text>
+ <g xml:space="preserve" font-family="Arial" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="245" y="140">2</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="170" y="140">4</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="20" y="140">6</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="discrete" values="300;255;180;30" keyTimes="0;.2;.4;.6" begin="0s" dur="10s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-15-t.png b/test/svg/svg1.2/svg/animate-elem-15-t.png
new file mode 100644
index 0000000..42e9fb7
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-15-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-15-t.svg b/test/svg/svg1.2/svg/animate-elem-15-t.svg
new file mode 100644
index 0000000..5893aa3
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-15-t.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'keyTimes'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-15-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test 'calcMode'=paced</p>
+ <p>
+ One animation has been defined to animate the height of a rectangle. Ruler lines and text are provided to help show
+ what the correct behavior is. The red text shows the values for the 'calcMode' and 'keyTimes' attributes. The black
+ text and ruler lines help show the size and movement of the rectangle over time.
+ </p>
+ <p>
+ This test shows calcMode="paced" for an animation that has constant velocity, thus showing how 'values' and
+ 'keyTimes' are ignored.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-15-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text fill="red" font-size="40" x="3" y="45">calcMode="paced"</text>
+ <text fill="red" font-size="40" x="3" y="100">keyTimes="0;.25;.5;1"</text>
+ <g xml:space="preserve" font-family="Arial" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="230" y="140">1.5</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="170" y="140">4</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="20" y="140">9</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="paced" values="300;255;180;30" keyTimes="0;.25;.5;1" begin="0s" dur="9s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-17-t.png b/test/svg/svg1.2/svg/animate-elem-17-t.png
new file mode 100644
index 0000000..82b77d2
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-17-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-17-t.svg b/test/svg/svg1.2/svg/animate-elem-17-t.svg
new file mode 100644
index 0000000..c339215
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-17-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'keyTimes'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-17-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test 'calcMode'=spline</p>
+ <p>
+ One animation has been defined to animate the height of a rectangle. Ruler lines and text are provided to help
+ show what the correct behavior is. The red text shows the values for the 'calcMode' and 'keyTimes' attributes.
+ The black text and ruler lines help show the size and movement of the rectangle over time.
+ </p>
+ <p>
+ This animation shows calcMode="spline". Between time 4 seconds and 8 seconds, the animation displays an
+ ease-in/ease-out approach instead of a constant linear approach which would have been the case if calcMode had
+ been linear instead.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-17-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text fill="red" font-size="40" x="3" y="45">calcMode="spline"</text>
+ <text fill="red" font-size="40" x="3" y="100">keyTimes="0;.25;.5;1"</text>
+ <g xml:space="preserve" font-family="Arial" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="245" y="140">2</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="170" y="140">4</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="20" y="140">8</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="spline" values="300;255;180;30" keyTimes="0;.25;.5;1" keySplines="0,0,1,1;0,0,1,1;1,0,0,1" begin="0s" dur="8s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-19-t.png b/test/svg/svg1.2/svg/animate-elem-19-t.png
new file mode 100644
index 0000000..b33f766
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-19-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-19-t.svg b/test/svg/svg1.2/svg/animate-elem-19-t.svg
new file mode 100644
index 0000000..8b9b47c
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-19-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test possible values for 'keyTimes'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-19-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test 'calcMode'=linear</p>
+ <p>
+ One animation has been defined to animate the width of a rectangle. Ruler lines and text are provided to help show
+ what the correct behavior is. The red text shows the values for the 'calcMode' and 'keyTimes' attributes. The black
+ text and ruler lines help show the size and movement of the rectangle over time.
+ </p>
+ <p>This test shows an animation with calcMode="linear".</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-19-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text fill="red" font-size="40" x="3" y="45">calcMode="linear"</text>
+ <text fill="red" font-size="40" x="3" y="100">keyTimes="0;.5;.75;1"</text>
+ <g xml:space="preserve" font-family="Arial" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="245" y="140">4</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="170" y="140">6</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000" />
+ <text font-size="36" x="20" y="140">8</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000" />
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="linear" values="300;255;180;30" keyTimes="0;.5;.75;1" begin="0s" dur="8s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-20-t.png b/test/svg/svg1.2/svg/animate-elem-20-t.png
new file mode 100644
index 0000000..c71f261
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-20-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-20-t.svg b/test/svg/svg1.2/svg/animate-elem-20-t.svg
new file mode 100644
index 0000000..2907393
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-20-t.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="See if animation, triggered by links, works." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-20-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>A quick animation test.</p>
+ <p>
+ The assumption is that you will first click on "fade in" and then click on "fade out", each exactly once. The
+ first time you select the link 'fade in', you should see a red square appearing, gradually and smoothly fading
+ from white to red over the course of three seconds.
+ </p>
+ <p>
+ The rendered picture should match the reference image, (except for possible variations in the labeling text
+ (per CSS2 rules)) after activating the link on the fade-in button the first time and waiting three seconds for the
+ animation to compete. The picture should remain looking the same way indefinitely, until another link is activated.
+ </p>
+ <p>
+ With the second click on "fade in", however, the behavior might be different. In the case of having a first click
+ on "fade in", waiting three seconds, and then immediately perform a first click on "fade out", waiting three seconds,
+ and then immediately perform a second click on "fade in", you should see the following. After the first click on
+ "fade in", the red square goes from white to red. After the first click on "fade out", the red square goes from red
+ to white. After the second click on "fade in", however, the red square goes from white to red, and then goes back
+ from red to white. This is because of the hyperlinking rules as they relate to resolved start times in the SMIL
+ 2.1 specification.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-20-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect xml:id="pink" x="20" y="20" width="200" height="200" fill="#fff">
+ <animate xml:id="fadein" attributeName="fill" attributeType="auto" from="#fff" to="red" begin="indefinite" dur="3s" fill="freeze" />
+ <animate xml:id="fadeout" attributeName="fill" attributeType="auto" from="red" to="#fff" begin="indefinite" dur="3s" fill="freeze" />
+ </rect>
+ <!-- ok so this is testing dynamic compositing as well -->
+ <g xml:id="buttons">
+ <a xlink:href="#fadein">
+ <rect x="320" y="0" width="160" height="180" fill="green" />
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="90">Fade in</text>
+ </a>
+ <a xlink:href="#fadeout">
+ <rect x="320" y="180" width="160" height="180" fill="maroon" />
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="280">Fade out</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-201-t.png b/test/svg/svg1.2/svg/animate-elem-201-t.png
new file mode 100644
index 0000000..74ec290
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-201-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-201-t.svg b/test/svg/svg1.2/svg/animate-elem-201-t.svg
new file mode 100644
index 0000000..a78284b
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-201-t.svg
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test the animate-elements active intervals" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Five orange rectangles have one animation each. When an
+ animation is active it moves its orange rectangle from its
+ left marker to its right marker. The active intervals
+ are [1-2], [4-6] and [8-10].
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text text-anchor="middle" x="240" y="35" font-size="25">animate-elements active intervals</text>
+
+ <text text-anchor="middle" x="340" y="75" font-size="18">0-1s</text>
+ <text text-anchor="middle" x="340" y="94" font-size="18">2-4s</text>
+ <text text-anchor="middle" x="340" y="111" font-size="18">6-8s</text>
+ <text text-anchor="middle" x="340" y="129" font-size="18">>10s</text>
+
+ <text text-anchor="middle" x="420" y="75" font-size="18">1-2s</text>
+ <text text-anchor="middle" x="420" y="94" font-size="18">4-6s</text>
+ <text text-anchor="middle" x="420" y="111" font-size="18">8-10s</text>
+
+ <rect x="320" y="140" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="400" y="140" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="320" y="170" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="400" y="170" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="320" y="200" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="400" y="200" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="320" y="230" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="400" y="230" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="320" y="260" width="40" height="20" fill="#CCC" stroke="#555"/>
+ <rect x="400" y="260" width="40" height="20" fill="#CCC" stroke="#555"/>
+
+
+ <!-- No interval will be created at 11 s since the end attribute does
+ not contain a rule to end an interval starting later than 10 s. -->
+ <text x="315" y="155" text-anchor="end" font-size="14">Begin-value without matching end-value</text>
+
+ <rect x="320" y="140" width="40" height="20" fill="#FA5" stroke="#555">
+ <animate attributeName="x" from="400" to="400"
+ begin="1;4;8;11" end="2;6;10"/>
+ </rect>
+
+
+ <!-- The two intervals starting at 4 s and 8 s will both use the end
+ attributes 10 as interval end. -->
+ <text x="315" y="185" text-anchor="end" font-size="14">Two begin-values share one end-value</text>
+
+ <rect x="320" y="170" width="40" height="20" fill="#FA5" stroke="#555">
+ <animate attributeName="x" from="400" to="400" dur="2"
+ begin="1;4;8" end="2;10"/>
+ </rect>
+
+
+ <!-- The second interval will start late at 4s (instead of at 3 s) since
+ that is the earliest time it can get an end time to the interval. -->
+ <text x="315" y="215" text-anchor="end" font-size="14">Second interval will start late</text>
+
+ <rect x="320" y="200" width="40" height="20" fill="#FA5" stroke="#555">
+ <animate attributeName="x" from="400" to="400"
+ begin="1;3;8" end="syncbase01.begin+2"/>
+ </rect>
+
+ <set xml:id="syncbase01" attributeName="visibility" to="visible"
+ begin="0;4;5;8"/>
+
+
+ <!-- The animation will create several begin- and end instance times when
+ the sync base creates one interval. The instance times will result in
+ three intervals. -->
+ <text x="315" y="245" text-anchor="end" font-size="14">Several sync-dependencies to one sync-base</text>
+
+ <rect x="320" y="230" width="40" height="20" fill="#FA5" stroke="#555">
+ <animate attributeName="x" from="400" to="400"
+ begin="syncbase02.begin;syncbase02.end-5;syncbase02.end+2;syncbase02.begin+7"
+ end="syncbase02.end;syncbase02.begin-2;syncbase02.begin+6"/>
+ </rect>
+
+ <set xml:id="syncbase02" attributeName="visibility" to="visible"
+ begin="4" end="6"/>
+
+
+ <!-- Intervals can be ended by an event. Create intervals for all begin times.
+ First interval will be ended by the eventbase01s begin event. -->
+ <text x="315" y="275" text-anchor="end" font-size="14">Intervals are ended by an event-value</text>
+
+ <rect x="320" y="260" width="40" height="20" fill="#FA5" stroke="#555">
+ <animate attributeName="x" from="400" to="400" dur="2"
+ begin="1;4;8"
+ end="eventbase01.beginEvent"/>
+ </rect>
+
+ <set xml:id="eventbase01" attributeName="visibility" to="visible"
+ begin="2" end="6"/>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-202-t.png b/test/svg/svg1.2/svg/animate-elem-202-t.png
new file mode 100644
index 0000000..bdc2b98
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-202-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-202-t.svg b/test/svg/svg1.2/svg/animate-elem-202-t.svg
new file mode 100644
index 0000000..d96824d
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-202-t.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="DOH" desc="accumulative animateMotion with rotate" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: animate-elem-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Precision test for accumulative animateMotion.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of something
+ red and that circles are not centered below the paths given in gray.
+ </p>
+ <p>
+ Circles are moved along squares given with the path attribute,
+ repeatDur and accumulate with a repeatDur of 30s and repetition.
+ Different values for the rotate attribute are given too, this has no visible effect,
+ because centered circles are moved.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <g transform="translate(80,-20) scale(0.45)">
+ <g>
+ <circle cx="0" cy="0" r="70" fill="#f00">
+ <animateMotion
+ dur="8s"
+ path="M100,100L100,500 500,500 500,100 100,100"
+ repeatDur="30s"
+ accumulate="sum"
+ fill="freeze" />
+ </circle>
+ <circle cx="0" cy="0" r="60"
+ stroke="#00f" stroke-width="20.5"
+ fill="#f00">
+ <animateMotion
+ dur="8s"
+ path="M100,100L100,500 500,500 500,100 100,100"
+ repeatDur="30s"
+ accumulate="sum"
+ fill="freeze"
+ rotate="auto" />
+ </circle>
+ <circle cx="0" cy="0" r="40"
+ stroke="#00f" stroke-width="20.5"
+ fill="#f00">
+ <animateMotion
+ dur="8s"
+ path="M100,100L100,500 500,500 500,100 100,100"
+ repeatDur="30s"
+ accumulate="sum"
+ fill="freeze"
+ rotate="auto-reverse" />
+ </circle>
+ <circle cx="0" cy="0" r="20"
+ stroke="#00f" stroke-width="20.5"
+ fill="#f00">
+ <animateMotion
+ dur="8s"
+ path="M100,100L100,500 500,500 500,100 100,100"
+ repeatDur="30s"
+ accumulate="sum"
+ fill="freeze"
+ rotate="60" />
+ </circle>
+
+ </g>
+
+ <g fill="none" stroke-width="20"
+ stroke="#888" stroke-linecap="round" stroke-linejoin="round">
+ <rect x="100" y="100" width="400" height="400">
+ <set attributeName="display" to="none" begin="8s" />
+ </rect>
+ <rect x="200" y="200" width="400" height="400">
+ <set attributeName="display" to="none" begin="16s" />
+ </rect>
+ <rect x="300" y="300" width="400" height="400">
+ <set attributeName="display" to="none" begin="24s" />
+ </rect>
+ <path d="M400,400v400h400v-400" />
+ </g>
+ </g>
+
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="10" y="160">animateMotion</text>
+ <text x="10" y="180">accumulate</text>
+ <text x="10" y="250">red = wrong</text>
+ <text x="10" y="265">circle not centered</text>
+ <text x="10" y="280">below path = wrong</text>
+ </g>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-203-t.png b/test/svg/svg1.2/svg/animate-elem-203-t.png
new file mode 100644
index 0000000..1aeffbd
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-203-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-203-t.svg b/test/svg/svg1.2/svg/animate-elem-203-t.svg
new file mode 100644
index 0000000..05d5f9f
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-203-t.svg
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="additive animateMotion" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: animate-elem-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Precision test for additive animateMotion using,
+ mpath element, path attribute, values, from-to.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of the red fill
+ of the circle. A switch of the stroke of the circle from blue to gray indicates
+ the end of the test at 30s.
+ </p>
+ <p>
+ A circles is moved along some paths
+ (two of them indicated in gray) with
+ a duration of 30s using additive animateMotion.
+ The superposition is no motion.
+ The circle is positioned always at the bottom right.
+ The colour of the circle switches from blue to gray after
+ the animation is finished.
+ If the red center of the circle becomes visible, an error is
+ occured.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <path xml:id="p1"
+ d="M100,100C-300,200 2000,700 100,800" />
+ <path xml:id="p2"
+ d="M800,800C1200,700 -1100,200 800,100" />
+ </defs>
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <g transform="translate(120,0) scale(0.36)">
+ <g xml:id="am1" >
+ <circle xml:id="c1" cx="0" cy="0" r="60"
+ stroke="#00f" stroke-width="20"
+ fill="#f00">
+ <set attributeName="stroke"
+ to="#888"
+ begin="30s" />
+ </circle>
+
+ <animateMotion
+ dur="30s"
+ fill="freeze"
+ path="M0,0Q-10,-10 -800,-800" />
+ <animateMotion
+ dur="30s"
+ fill="freeze"
+ additive="sum">
+ <mpath xlink:href="#p1" />
+ </animateMotion>
+ <animateMotion
+ dur="30s"
+ fill="freeze"
+ additive="sum"
+ values="0,0;700,700;800,800" />
+ <animateMotion
+ dur="30s"
+ fill="freeze"
+ additive="sum"
+ from="0,-800"
+ to="-800,0" />
+ <animateMotion
+ dur="30s"
+ fill="freeze"
+ additive="sum">
+ <mpath xlink:href="#p2" />
+ </animateMotion>
+ <animateMotion
+ dur="30s"
+ fill="freeze"
+ additive="sum"
+ path="M0,800C1,799 790,10 800,0" />
+
+ </g>
+
+ <g fill="none" stroke-width="5"
+ stroke="#888" stroke-linecap="round" stroke-linejoin="round">
+ <use xlink:href="#p1" />
+ <use xlink:href="#p2" />
+ </g>
+ <circle xml:id="c2" cx="900" cy="900" r="50.5" fill="#888" />
+ </g>
+
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="10" y="160">animateMotion</text>
+ <text x="10" y="180">additive</text>
+ <text x="10" y="225">red = wrong</text>
+ <text x="10" y="245">motion = wrong</text>
+ <text x="10" y="265">circle not centered</text>
+ <text x="10" y="280">below marker = wrong</text>
+ <text x="10" y="300">timing = circle gray stroked: end of test at 30s</text>
+ </g>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-205-t.png b/test/svg/svg1.2/svg/animate-elem-205-t.png
new file mode 100644
index 0000000..cd5f541
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-205-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-205-t.svg b/test/svg/svg1.2/svg/animate-elem-205-t.svg
new file mode 100644
index 0000000..1ec04bf
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-205-t.svg
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Advanced test for linear animateMotion" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: animate-elem-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Precision test for linear animateMotion with separated path fragments,
+ mpath element, rotate auto.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of the red fill
+ of the test circle. The circle has to follow exactly the paths given
+ in gray.
+ </p>
+ <p>
+ A linear animateMotion of a blue stroked square with a centered
+ circle is compared with four animateMotion of a red square
+ with a centered circle.
+ The motion of the red square is following the
+ combination of four animateMotion following on
+ each other and is the same as the motion of the blue
+ square, because the timing is choosen in such a way.
+ Therefore the blue square covers always the red one
+ completely.
+ </p>
+ <p>
+ The path is given in gray. The red fill of the circle
+ is always covered with the gray path.
+ Eight gray stroked markers are lightened, when the circle
+ is exactly above the marker. The red fill of the marker
+ is exactly covered by the blue stroked circle.
+ If something red gets visible, an error is occured
+ and the animateMotion is not linear.
+ </p>
+ <p>
+ The exact timing is calculated using an analytical
+ integration of the path length of the sub paths
+ (this is available for quadratic or linear curves).
+ With this method the path position and the
+ time can be determined as functions of the usual
+ parametrisation of the used Bézier curves.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <path xml:id="path01"
+ d="M100 100c1,1 495,495 500,500M90,900c540,0 810,-270 810,-810M200,800q0,-600 600,-600M600,600q-1,-1 -500,-500" />
+ <path xml:id="path02" d="M100 100L600,600" />
+ <!-- pathLength 500*sqrt(2) = 707.106781187 ;
+ velocity 20*sqrt(2) px/s = 28.284271247px/s
+ marker size is 30px...
+ marker time = 1.060660172s round down -> 1s
+ marker offset = -0.530330086s -> 0.5s
+-->
+ <path xml:id="path03" d="M90,900Q900,900 900,90" />
+ <!--
+ i p f
+c(u)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+
+dc/du= 2(u-1) i + 2(1 -2u) p + 2u f
+ = (2(p-i) + 2u(i+f -2p))^2
+
+(1): (dc/cu)^2 = 4 (i+f -2p)^2 u^2 + 8(p-i)(i+f-2p)u + 4 (p - i)^2
+
+ add components ...
+ m = e ( a u^2 + b u + c )
+ for symmetry reasons with numbers:
+ m = 1620^2 (2 u^2 -2 u + 1)
+ h = m/e = 2 u^2 -2 u + 1
+ d = 4ac - b^2
+ numbers: 8 - 4 = 4 = d
+ k = 4a/d
+ numbers: k = 8/4 = 2
+
+integral... 0 to u <=1
+ (2au+b)sqrt(h)/4a + 1/(2k) g
+
+ g = 1/sqrt(a) ln(2sqrt(ah) + 2au +b)
+
+(2) 0: b/(4a) sqrt(c) +d/(8a sqrt(a)) ln(2sqrt(ac) +b)
+(3) 1: (2a+b)sqrt(a+b+c)/4a +d/(8a sqrt(a)) ln (2sqrt(a(a+b+c))+2a +b)
+numbers:
+-1/4 + 1/(4sqrt(2)) ln(2sqrt(2) -2)
+1/4 + 1/(4sqrt(2)) ln(2sqrt(2) +2)
+result = 1/2 + 1/(4sqrt(2)) (ln(2sqrt(2) +2) - ln(2sqrt(2) -2)) =
+ 1/2 + 1/(4sqrt(2)) ln((sqrt(2) +1)/(sqrt(2) -1))) =
+ 1/2 + 1/(4sqrt(2)) ln(3+2sqrt(2)) =
+ 0.81161262
+therefore pathLength = 1620*0.81161262 = 1314.812444514
+
+velocity = 52.592497781 px/s
+marker time = 0.570423564s round down -> 0.5s
+marker offset = 0.285211782s -> 0.25s
+
+
+integral 0 to u <=1
+(2u-1)/4 sqrt(2 u^2 -2 u + 1) + 1/(4sqrt(2)) ln (2sqrt(4u^2 -4u +2) +4u -2)
++ 1/4 - 1/(4sqrt(2)) ln(2sqrt(2) -2) =
+(2u-1)/4 sqrt(2 u^2 -2 u + 1) + 1/4 + 1/(4sqrt(2)) ln ((sqrt(4u^2 -4u +2) +2u -1)/(sqrt(2) -1))
+
+-->
+
+ <path xml:id="path04" d="M200,800Q200,200 800,200" />
+
+ <!--
+ i p f
+c(u)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+
+dc/du= 2(u-1) i + 2(1 -2u) p + 2u f
+ = (2(p-i) + 2u(i+f -2p))^2
+
+(1): (dc/cu)^2 = 4 (i+f -2p)^2 u^2 + 8(p-i)(i+f-2p)u + 4 (p - i)^2
+
+x: 1200^2 u^2
+y: 1200^2 u^2 + 2 * 1200^2 u + 1200^2
+
+ for symmetry reasons with numbers:
+ m = 1200^2 (2 u^2 -2 u + 1)
+ h = m/1200^2 = 2 u^2 -2 u + 1
+therefore pathLength = 1200*0.81161262 = 973.935144084;
+velocity= 38.957405763 px/s
+marker time: 0.770071811s round down -> 0.7s
+marker offset: -0.385035905s -> 0.35s
+
+-->
+ <path xml:id="path05" d="M600 600L100,100" />
+
+
+ <!--
+pathLength path01 = 3702.961151072
+fraction path02/path01 = 0.190957116 (the same for the last path fragment)
+fraction path03/path01 = 0.355070548
+fraction path04/path01 = 0.263015221
+
+fraction (path02+path03)/path01 = 0.546027664
+fraction (path02+path03+path04)/path01 = 0.809042885
+
+
+marker
+u= 0.1 path02
+u = 0.5 path02
+u = 0.9 path02
+
+these are the positions and times:
+
+(150,150) - 2.5s
+(350,350) - 12.5s
+(550,500) - 22.5s
+
+
+0 u path03 - 25s
+0.1u path03
+0.5u path03
+0.9u path03
+
+c(0.1)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+ = 0.81 (a,b) + 0.18 (b,b) + 0.01 (b,a)
+ = (0.81a +0.19b, 0.99b + 0.01a)
+ = (243.9, 891.9)
+
+
+integral... 0 to u <=0.1
+ h= 2 u^2 -2 u + 1 = 0.02-0.2 +1 = 0.82
+ (2u-1)sqrt(h)/4 + 1/4 g
+ -0.181107703 -0.006986405
+ g = 1/sqrt(2) ln(2sqrt(2h) + 4u -2)
+ -0.02794562
+0: -1/4 + 1/(4sqrt(2)) ln(2sqrt(2) -2) = -0.283274042
+0.1: -0.188094108
+0.095179934/0.81161262
+
+path fraction:
+0.421173612/0.81161262 = 0.117272615
+27.931815375s
+
+c(0.5) = 0.25 (a,b) + 0.5 (b,b) + 0.25 (b,a)
+ (0.25 a + 0.75 b, 0.25 a + 0.75 b)
+ (697.5, 697.5)
+
+path fraction: 0.5
+37.5s
+
+c(0.9)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+ = 0.01 (a,b) + 0.18 (b,b) + 0.81 (b,a)
+ = (0.01a + 0.99b, 0.19b + 0.81a)
+ = (891.9, 243.9)
+
+path fraction by symmetry to time
+47.068184625s
+
+
+0 u path04 - 50s
+0.1u path04
+... 0.81 (b,a) + 0.18 (b,b) + 0.01 (a,b)
+ (0.99b + 0.01a,0.81a + 0.19b)
+ (206, 686)
+
+time ...
+52.931815375s
+
+
+0.5u path04
+ (350,350)
+
+62.5s
+
+0.9u path04
+ (686,206)
+
+72.068184625s
+
+ path05
+0: 75s
+0.1: 77.5s
+0.5: 87.5s
+0.9: 97.5s
+
+
+-->
+ </defs>
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <g transform="translate(90,-22) scale(0.4) rotate(90 500 500)">
+ <g fill="none" stroke-width="40" stroke="#666">
+ <title>marker</title>
+ <circle cx="150" cy="150" r="35"/>
+ <circle cx="350" cy="350" r="35"/>
+ <circle cx="550" cy="550" r="35"/>
+ <circle cx="243.9" cy="891.9" r="35"/>
+ <circle cy="243.9" cx="891.9" r="35"/>
+ <circle cx="697.5" cy="697.5" r="35"/>
+ <circle cx="206" cy="686" r="35"/>
+ <circle cy="206" cx="686" r="35"/>
+
+ <g fill="red" stroke="#aaf">
+ <circle cx="150" cy="150" r="35" display="none">
+ <set attributeName="display" to="inline" begin="2s" dur="1s" />
+ <set attributeName="display" to="inline" begin="97s" dur="1s" />
+ </circle>
+ <circle cx="350" cy="350" r="35" display="none">
+ <set attributeName="display" to="inline" begin="12s" dur="1s" />
+ <set attributeName="display" to="inline" begin="87s" dur="1s" />
+ <set attributeName="display" to="inline" begin="62.15s" dur="0.7s" />
+ </circle>
+ <circle cx="550" cy="550" r="35" display="none">
+ <set attributeName="display" to="inline" begin="22s" dur="1s" />
+ <set attributeName="display" to="inline" begin="77s" dur="1s" />
+ </circle>
+
+ <circle cx="243.9" cy="891.9" r="35" display="none">
+ <set attributeName="display" to="inline" begin="27681.8154ms" dur="0.5s" />
+ </circle>
+
+ <circle cx="697.5" cy="697.5" r="35" display="none">
+ <set attributeName="display" to="inline" begin="37.25s" dur="0.5s" />
+ </circle>
+
+ <circle cy="243.9" cx="891.9" r="35" display="none">
+ <set attributeName="display" to="inline" begin="46.8182s" dur="0.5s" />
+ </circle>
+
+ <circle cx="206" cy="686" r="35" display="none">
+ <set attributeName="display" to="inline" begin="52.5818s" dur="0.7s" />
+ </circle>
+
+ <circle cy="206" cx="686" r="35" display="none">
+ <set attributeName="display" to="inline" begin="71.8182s" dur="0.7s" />
+ </circle>
+
+ </g>
+ </g>
+ <g>
+ <rect x="-50" y="-50" width="100" height="100" fill="none" stroke="#f00" stroke-width="10" />
+ <circle cx="0" cy="0" r="30" fill="#f00" />
+ <title>red: four times animateMotion using mpath</title>
+ <animateMotion dur="25s" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path02" />
+ </animateMotion>
+ <animateMotion begin="25s" dur="25s" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path03" />
+ </animateMotion>
+ <animateMotion begin="50s" dur="25s" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path04" />
+ </animateMotion>
+ <animateMotion begin="75s" dur="25s" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path05" />
+ </animateMotion>
+ </g>
+
+ <g>
+ <rect x="-50" y="-50" width="100" height="100" fill="none" stroke="#00f" stroke-width="10" />
+ <circle cx="0" cy="0" r="16" fill="#f00" stroke-width="28" stroke="blue" />
+ <title>blue: animateMotion calcMode linear using mpath</title>
+ <animateMotion dur="100s" calcMode="linear" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path01" />
+ </animateMotion>
+ </g>
+
+ <use xlink:href="#path01" fill="none" stroke-width="4" stroke="#ccc" stroke-linecap="round" />
+
+ </g>
+
+
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="10" y="180">animateMotion</text>
+ <text x="10" y="195">calcMode linear</text>
+ <text x="10" y="225">red = wrong</text>
+ <text x="10" y="245">no animation = wrong</text>
+ <text x="10" y="265">circle not centered</text>
+ <text x="10" y="280">below paths = wrong</text>
+ <text x="10" y="300">timing = lightened markers</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-206-t.png b/test/svg/svg1.2/svg/animate-elem-206-t.png
new file mode 100644
index 0000000..847136d
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-206-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-206-t.svg b/test/svg/svg1.2/svg/animate-elem-206-t.svg
new file mode 100644
index 0000000..2e36f3b
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-206-t.svg
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="animateMotion with animated mpath" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: animate-elem-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Precision tests for animateMotion with animated mpath.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of something
+ red and that circles are not centered below the paths given in gray.
+ </p>
+ <p>
+ Blue rectangles and a red circles are moved along
+ light blue paths with a duration of 30s. The paths itself are animated.
+ This results in motions along the gray paths. The rectangles
+ are aligned along the animated light blue paths.
+ The circle is always covered by the path given in gray.
+ If something red gets visible, an error is occured.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <path xml:id="pfad1"
+ d="M 100,100 L900,100"
+ fill="none" stroke-width="4"
+ stroke="#ddf" stroke-linecap="round" stroke-linejoin="round">
+ <animate
+ attributeName="d"
+ attributeType="XML"
+ from="M 100,100 L900,100"
+ to="M 900,100 L900,900"
+ dur="30s"
+ fill="freeze" />
+
+ </path>
+
+ <path xml:id="pfad2"
+ d="M 100,100 Q900,100 900,900"
+ fill="none" stroke-width="20"
+ stroke="#888" stroke-linecap="round" stroke-linejoin="round" />
+
+ <animateMotion xlink:href="#bluetestcase"
+ dur="30s"
+ fill="freeze"
+ rotate="auto">
+ <mpath xlink:href="#pfad1" />
+ </animateMotion>
+
+
+ <path xml:id="pfad3"
+ d="M100,100L500,900 900,100"
+ fill="none" stroke-width="4"
+ stroke="#ddf" stroke-linecap="round" stroke-linejoin="round">
+ <animate
+ attributeName="d"
+ attributeType="XML"
+ from="M100,100L500,900 900,100"
+ to="M100,900L500,100 900,900"
+ dur="30s"
+ fill="freeze" />
+
+ </path>
+
+ <path xml:id="pfad4"
+ d="M100,100Q300,700 500,500 700,300 900,900"
+ fill="none" stroke-width="20"
+ stroke="#888" stroke-linecap="round" stroke-linejoin="round" />
+
+ <animateMotion xlink:href="#bluetestcase2"
+ dur="30s"
+ fill="freeze"
+ rotate="auto">
+ <mpath xlink:href="#pfad3" />
+ </animateMotion>
+
+
+
+ </defs>
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <g transform="translate(100,-20) scale(0.40)">
+ <title>first test</title>
+ <g xml:id="bluetestcase" >
+ <rect x="-40" y="-20" width="80" height="40"
+ stroke="#00f" stroke-width="6"
+ fill="none" />
+ <circle cx="0" cy="0" r="10"
+ fill="#f00" />
+ </g>
+ <use xlink:href="#pfad2" />
+ <use xlink:href="#pfad1" />
+ </g>
+
+ <g transform="translate(40,-20) scale(0.40) rotate(-195 500 500)">
+ <title>second test</title>
+ <g xml:id="bluetestcase2">
+ <rect x="-40" y="-20" width="80" height="40"
+ stroke="#00f" stroke-width="6"
+ fill="none" />
+ <circle cx="0" cy="0" r="10"
+ fill="#f00" />
+ </g>
+
+
+ <use xlink:href="#pfad4" />
+ <use xlink:href="#pfad3" />
+
+ </g>
+ <g font-size="12" stroke="none" fill="#888">
+ <text x="10" y="225">animateMotion</text>
+ <text x="10" y="240">with animated mpath</text>
+ <text x="10" y="265">red = wrong</text>
+ <text x="10" y="280">no animation = wrong</text>
+ <text x="10" y="295">circle and rectangle not</text>
+ <text x="10" y="310">centered below path = wrong</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-207-t.png b/test/svg/svg1.2/svg/animate-elem-207-t.png
new file mode 100644
index 0000000..acee2a4
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-207-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-207-t.svg b/test/svg/svg1.2/svg/animate-elem-207-t.svg
new file mode 100644
index 0000000..03db855
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-207-t.svg
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE, AS" owner="DOH" desc="Advanced test for paced animateMotion" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: animate-elem-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Precision test for paced animateMotion with separated path fragments,
+ mpath element, rotate auto.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of the red fill
+ of the test circle. The circle has to follow exactly the paths given
+ in gray.
+ </p>
+ <p>
+ A paced animateMotion of a blue stroked square with a centered
+ circle is compared with four animateMotion of a red square
+ with a centered circle.
+ The motion of the red square is following the
+ combination of four animateMotion following on
+ each other and is the same as the motion of the blue
+ square, because the timing is choosen in such a way.
+ Therefore the blue square covers always the red one
+ completely.
+ </p>
+ <p>
+ The path is given in gray. The red fill of the circle
+ is always covered with the gray path.
+ Eight gray stroked markers are lightened, when the circle
+ is exactly above the marker. The red fill of the marker
+ is exactly covered by the blue stroked circle.
+ If something red gets visible, an error is occured
+ and the animateMotion is not paced.
+ </p>
+ <p>
+ The exact timing is calculated using an analytical
+ integration of the path length of the sub paths
+ (this is available for quadratic or linear curves).
+ With this method the path position and the
+ time can be determined as functions of the usual
+ parametrization of the used Bézier curves.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <path xml:id="path01" d="M100 100c1,1 495,495 500,500M90,900c540,0 810,-270 810,-810M200,800q0,-600 600,-600M550,550Z" />
+ <path xml:id="path02" d="M100 100L600,600" />
+ <!-- pathLength 500*sqrt(2) = 707.106781187 -->
+ <path xml:id="path03" d="M90,900Q900,900 900,90" />
+ <!--
+ i p f
+c(u)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+
+dc/du= 2(u-1) i + 2(1 -2u) p + 2u f
+ = (2(p-i) + 2u(i+f -2p))^2
+
+(1): (dc/cu)^2 = 4 (i+f -2p)^2 u^2 + 8(p-i)(i+f-2p)u + 4 (p - i)^2
+
+ add components ...
+ m = e ( a u^2 + b u + c )
+ for symmetry reasons with numbers:
+ m = 1620^2 (2 u^2 -2 u + 1)
+ h = m/e = 2 u^2 -2 u + 1
+ d = 4ac - b^2
+ numbers: 8 - 4 = 4 = d
+ k = 4a/d
+ numbers: k = 8/4 = 2
+
+integral... 0 to u <=1
+ (2au+b)sqrt(h)/4a + 1/(2k) g
+
+ g = 1/sqrt(a) ln(2sqrt(ah) + 2au +b)
+
+(2) 0: b/(4a) sqrt(c) +d/(8a sqrt(a)) ln(2sqrt(ac) +b)
+(3) 1: (2a+b)sqrt(a+b+c)/4a +d/(8a sqrt(a)) ln (2sqrt(a(a+b+c))+2a +b)
+numbers:
+-1/4 + 1/(4sqrt(2)) ln(2sqrt(2) -2)
+1/4 + 1/(4sqrt(2)) ln(2sqrt(2) +2)
+result = 1/2 + 1/(4sqrt(2)) (ln(2sqrt(2) +2) - ln(2sqrt(2) -2)) =
+ 1/2 + 1/(4sqrt(2)) ln((sqrt(2) +1)/(sqrt(2) -1))) =
+ 1/2 + 1/(4sqrt(2)) ln(3+2sqrt(2)) =
+ 0.81161262
+therefore pathLength = 1620*0.81161262 = 1314.812444514
+integral 0 to u <=1
+(2u-1)/4 sqrt(2 u^2 -2 u + 1) + 1/(4sqrt(2)) ln (2sqrt(4u^2 -4u +2) +4u -2)
++ 1/4 - 1/(4sqrt(2)) ln(2sqrt(2) -2) =
+(2u-1)/4 sqrt(2 u^2 -2 u + 1) + 1/4 + 1/(4sqrt(2)) ln ((sqrt(4u^2 -4u +2) +2u -1)/(sqrt(2) -1))
+
+-->
+
+ <path xml:id="path04" d="M200,800Q200,200 800,200" />
+
+ <!--
+ i p f
+c(u)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+
+dc/du= 2(u-1) i + 2(1 -2u) p + 2u f
+ = (2(p-i) + 2u(i+f -2p))^2
+
+(1): (dc/cu)^2 = 4 (i+f -2p)^2 u^2 + 8(p-i)(i+f-2p)u + 4 (p - i)^2
+
+x: 1200^2 u^2
+y: 1200^2 u^2 + 2 * 1200^2 u + 1200^2
+
+ for symmetry reasons with numbers:
+ m = 1200^2 (2 u^2 -2 u + 1)
+ h = m/1200^2 = 2 u^2 -2 u + 1
+therefore pathLength = 1200*0.81161262 = 973.935144084
+
+
+
+pathLength path01 = 2995.854369885
+fraction path02/path01 = 0.236028423
+fraction path03/path01 = 0.438877289
+fraction path04/path01 = 0.325094288
+
+fraction (path02+path03)/path01 = 0.674905712
+
+duration: 100s therefore velocity 29.95854369885 px/s
+
+marker
+u= 0.1 path02
+u = 0.5 path02
+u = 0.9 path02
+
+these are the positions and times:
+
+(150,150) - 2.36028423s
+(350,350) - 11.80142115s
+(550,500) - 21.24255807s
+
+
+0.1u path03
+0.5u path03
+0.9u path03
+
+c(0.1)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+ = 0.81 (a,b) + 0.18 (b,b) + 0.01 (b,a)
+ = (0.81a +0.19b, 0.99b + 0.01a)
+ = (243.9, 891.9)
+
+
+integral... 0 to u <=0.1
+ h= 2 u^2 -2 u + 1 = 0.02-0.2 +1 = 0.82
+ (2u-1)sqrt(h)/4 + 1/4 g
+ -0.181107703 -0.006986405
+ g = 1/sqrt(2) ln(2sqrt(2h) + 4u -2)
+ -0.02794562
+0: -1/4 + 1/(4sqrt(2)) ln(2sqrt(2) -2) = -0.283274042
+0.1: -0.188094108
+0.095179934/0.81161262
+
+path fraction:
+0.421173612/0.81161262 = 0.117272615
+23.6028423s + 5.146828735s = 28.749671035s
+
+c(0.5) = 0.25 (a,b) + 0.5 (b,b) + 0.25 (b,a)
+ (0.25 a + 0.75 b, 0.25 a + 0.75 b)
+ (697.5, 697.5)
+
+path fraction: 0.5
+23.6028423s +0.5 * 43.8877289s = 45.54670675s
+
+c(0.9)=(1 - u)^2 i + 2u(1-u) p + u^2 f
+ = 0.01 (a,b) + 0.18 (b,b) + 0.81 (b,a)
+ = (0.01a + 0.99b, 0.19b + 0.81a)
+ = (891.9, 243.9)
+
+path fraction by symmetry to time
+23.6028423s +(1-0.117272615)*43.8877289s =
+ 62.343742465s
+
+0.1u path04
+... 0.81 (b,a) + 0.18 (b,b) + 0.01 (a,b)
+ (0.99b + 0.01a,0.81a + 0.19b)
+ (206, 686)
+
+time ...
+67.4905712s + 0.117272615* 32.5094288s =
+71.303036928s
+
+
+0.5u path04
+ (350,350)
+
+67.4905712s + 0.5* 32.5094288s =
+83.7452856s
+
+0.9u path04
+ (686,206)
+
+67.4905712s + (1-0.117272615)* 32.5094288s =
+ 96.187534272s
+-->
+
+ </defs>
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <g transform="translate(90,-22) scale(0.4) rotate(90 500 500)">
+
+ <g fill="none" stroke-width="40" stroke="#666">
+ <title>marker</title>
+ <circle cx="150" cy="150" r="35"/>
+ <circle cx="350" cy="350" r="35"/>
+ <circle cx="550" cy="550" r="35"/>
+ <circle cx="243.9" cy="891.9" r="35"/>
+ <circle cy="243.9" cx="891.9" r="35"/>
+ <circle cx="697.5" cy="697.5" r="35"/>
+ <circle cx="206" cy="686" r="35"/>
+ <circle cy="206" cx="686" r="35"/>
+
+ <g fill="red" stroke="#aaf">
+ <circle cx="150" cy="150" r="35" display="none">
+ <set attributeName="display" to="inline" begin="1860.2842ms" dur="1s" />
+ </circle>
+ <circle cx="350" cy="350" r="35" display="none">
+ <set attributeName="display" to="inline" begin="11301.4211ms" dur="1s" />
+ <set attributeName="display" to="inline" begin="83.2453s" dur="1s" />
+ </circle>
+ <circle cx="550" cy="550" r="35" display="none">
+ <set attributeName="display" to="inline" begin="20742.5581ms" dur="1s" />
+ <set attributeName="display" to="inline" begin="100s" />
+ </circle>
+
+ <circle cx="243.9" cy="891.9" r="35" display="none">
+ <set attributeName="display" to="inline" begin="28249.6710ms" dur="1s" />
+ </circle>
+
+ <circle cx="697.5" cy="697.5" r="35" display="none">
+ <set attributeName="display" to="inline" begin="45.0467s" dur="1s" />
+ </circle>
+
+ <circle cy="243.9" cx="891.9" r="35" display="none">
+ <set attributeName="display" to="inline" begin="61.8437s" dur="1s" />
+ </circle>
+
+ <circle cx="206" cy="686" r="35" display="none">
+ <set attributeName="display" to="inline" begin="70.8030s" dur="1s" />
+ </circle>
+
+ <circle cy="206" cx="686" r="35" display="none">
+ <set attributeName="display" to="inline" begin="95.6875s" dur="1s" />
+ </circle>
+
+ </g>
+ </g>
+ <g>
+ <rect x="-50" y="-50" width="100" height="100" fill="none" stroke="#f00" stroke-width="10" />
+ <circle cx="0" cy="0" r="30" fill="#f00" />
+ <title>red: three times animateMotion using mpath, final position with values</title>
+ <animateMotion dur="23602.8423ms" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path02" />
+ </animateMotion>
+ <animateMotion begin="23602.8423ms" dur="43.8877s" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path03" />
+ </animateMotion>
+ <animateMotion begin="67.4906s" dur="32509.4288ms" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path04" />
+ </animateMotion>
+ <animateMotion begin="100s" rotate="auto" values="550,550" />
+ </g>
+
+ <g>
+ <rect x="-50" y="-50" width="100" height="100" fill="none" stroke="#00f" stroke-width="10" />
+ <circle cx="0" cy="0" r="16" fill="#f00" stroke-width="28" stroke="blue" />
+ <title>blue: animateMotion calcMode paced using mpath</title>
+ <animateMotion dur="100s" calcMode="paced" fill="freeze" rotate="auto">
+ <mpath xlink:href="#path01" />
+ </animateMotion>
+ </g>
+ <use xlink:href="#path01" fill="none" stroke-width="4" stroke="#ccc" stroke-linecap="round" />
+ </g>
+
+
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="10" y="180">animateMotion</text>
+ <text x="10" y="195">calcMode paced</text>
+ <text x="10" y="225">red = wrong</text>
+ <text x="10" y="245">no animation = wrong</text>
+ <text x="10" y="265">circle not centered</text>
+ <text x="10" y="280">below paths = wrong</text>
+ <text x="10" y="300">timing = lightened markers</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-209-t.png b/test/svg/svg1.2/svg/animate-elem-209-t.png
new file mode 100644
index 0000000..b5f668d
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-209-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-209-t.svg b/test/svg/svg1.2/svg/animate-elem-209-t.svg
new file mode 100644
index 0000000..0f7b4f6
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-209-t.svg
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animate with values animate." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animate with values animate.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ Additionally set animations can be replaced by values animations too.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>values="0;a" additive="sum"</td>
+ </tr>
+ <tr>
+ <td>set to="a"</td>
+ <td>values="a" additive="replace" accumulate="none"</td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space.)
+ </p>
+ <p>
+ The from-to, from-by and by animations applied to the attributes x, y, width, height
+ of blue rectangles are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red rectangles. Additionally underlying dark red
+ rectangles simulate the same behaviour using always the defaults additive replace and
+ accumulate replace. The blue rectangles cover all red rectangles. Therefore if something
+ red gets visible, an error is occured. Because fill is always not set and therefore remove,
+ the final value is only that of the set animation, not very interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="10">
+
+
+ <g transform="translate(320,0)">
+ <rect x="50" y="160" width="80" height="80" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ <animate attributeName="y" values="80" begin="2s" />
+ <animate attributeName="x" values="80" begin="2s" />
+ <animate attributeName="width" values="40" begin="2s" />
+ <animate attributeName="height" values="40" begin="2s" />
+
+ <animate attributeName="y" values="90;110" begin="4s" dur="5s" />
+ <animate attributeName="y" values="120;140" begin="9s" dur="5s" />
+ <animate attributeName="y" values="150;170" begin="14s" dur="5s" />
+
+ <animate attributeName="x" values="20;30" begin="4s" dur="5s" />
+ <animate attributeName="x" values="50;60" begin="9s" dur="5s" />
+ <animate attributeName="x" values="80;90" begin="14s" dur="5s" />
+
+ <animate attributeName="height" values="50;70" begin="4s" dur="5s" />
+ <animate attributeName="height" values="50;70" begin="9s" dur="5s" />
+ <animate attributeName="height" values="50;70" begin="14s" dur="5s" />
+
+ <animate attributeName="width" values="20;30" begin="4s" dur="5s" />
+ <animate attributeName="width" values="20;30" begin="9s" dur="5s" />
+ <animate attributeName="width" values="20;30" begin="14s" dur="5s" />
+ </rect>
+
+ <rect x="50" y="160" width="80" height="80" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animate attributeName="y" values="80" begin="2s" />
+ <animate attributeName="x" values="80" begin="2s" />
+ <animate attributeName="width" values="40" begin="2s" />
+ <animate attributeName="height" values="40" begin="2s" />
+
+ <animate attributeName="y" values="10;30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ <animate attributeName="x" values="20;30" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+ <animate attributeName="height" values="10;30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ <animate attributeName="width" values="20;30" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+ </rect>
+
+
+ <rect x="50" y="160" width="80" height="80" stroke="#00f">
+ <title>blue from-to animations</title>
+ <set attributeName="y" to="80" begin="2s" />
+ <set attributeName="x" to="80" begin="2s" />
+ <set attributeName="width" to="40" begin="2s" />
+ <set attributeName="height" to="40" begin="2s" />
+
+ <animate attributeName="y" from="10" to="30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ <animate attributeName="x" from="20" to="30" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+ <animate attributeName="height" from="10" to="30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ <animate attributeName="width" from="20" to="30" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+ </rect>
+
+ </g>
+
+
+
+ <g transform="translate(150,0)">
+
+ <rect x="50" y="160" width="80" height="80" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ <animate attributeName="y" values="80" begin="2s" />
+ <animate attributeName="x" values="80" begin="2s" />
+ <animate attributeName="width" values="40" begin="2s" />
+ <animate attributeName="height" values="40" begin="2s" />
+
+ <animate attributeName="y" values="90;110" begin="4s" dur="5s" />
+ <animate attributeName="y" values="120;140" begin="9s" dur="5s" />
+ <animate attributeName="y" values="150;170" begin="14s" dur="5s" />
+
+ <animate attributeName="x" values="20;30" begin="4s" dur="5s" />
+ <animate attributeName="x" values="50;60" begin="9s" dur="5s" />
+ <animate attributeName="x" values="80;90" begin="14s" dur="5s" />
+
+ <animate attributeName="height" values="50;70" begin="4s" dur="5s" />
+ <animate attributeName="height" values="50;70" begin="9s" dur="5s" />
+ <animate attributeName="height" values="50;70" begin="14s" dur="5s" />
+
+ <animate attributeName="width" values="20;30" begin="4s" dur="5s" />
+ <animate attributeName="width" values="20;30" begin="9s" dur="5s" />
+ <animate attributeName="width" values="20;30" begin="14s" dur="5s" />
+ </rect>
+
+
+ <rect x="50" y="160" width="80" height="80" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animate attributeName="y" values="80" begin="2s" />
+ <animate attributeName="x" values="80" begin="2s" />
+ <animate attributeName="width" values="40" begin="2s" />
+ <animate attributeName="height" values="40" begin="2s" />
+
+ <animate attributeName="y" values="10;30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ <animate attributeName="x" values="20;30" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+ <animate attributeName="height" values="10;30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ <animate attributeName="width" values="20;30" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+ </rect>
+
+
+ <rect x="50" y="160" width="80" height="80" stroke="#00f">
+ <title>blue from-by animations</title>
+ <set attributeName="y" to="80" begin="2s" />
+ <set attributeName="x" to="80" begin="2s" />
+ <set attributeName="width" to="40" begin="2s" />
+ <set attributeName="height" to="40" begin="2s" />
+
+ <animate attributeName="y" from="10" by="20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ <animate attributeName="x" from="20" by="10" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+ <animate attributeName="height" from="10" by="20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ <animate attributeName="width" from="20" by="10" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+ </rect>
+
+ </g>
+
+
+
+
+ <g transform="translate(-20,0)">
+ <rect x="50" y="160" width="80" height="80" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+ <animate attributeName="y" values="80" begin="2s" />
+ <animate attributeName="x" values="80" begin="2s" />
+ <animate attributeName="width" values="40" begin="2s" />
+ <animate attributeName="height" values="40" begin="2s" />
+
+ <animate attributeName="y" values="80;100" begin="4s" dur="5s" />
+ <animate attributeName="y" values="100;120" begin="9s" dur="5s" />
+ <animate attributeName="y" values="120;140" begin="14s" dur="5s" />
+
+ <animate attributeName="x" values="80;90" begin="4s" dur="5s" />
+ <animate attributeName="x" values="90;100" begin="9s" dur="5s" />
+ <animate attributeName="x" values="100;110" begin="14s" dur="5s" />
+
+ <animate attributeName="height" values="40;60" begin="4s" dur="5s" />
+ <animate attributeName="height" values="40;60" begin="9s" dur="5s" />
+ <animate attributeName="height" values="40;60" begin="14s" dur="5s" />
+
+ <animate attributeName="width" values="40;50" begin="4s" dur="5s" />
+ <animate attributeName="width" values="40;50" begin="9s" dur="5s" />
+ <animate attributeName="width" values="40;50" begin="14s" dur="5s" />
+ </rect>
+
+ <rect x="50" y="160" width="80" height="80" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animate attributeName="y" values="80" begin="2s" />
+ <animate attributeName="x" values="80" begin="2s" />
+ <animate attributeName="width" values="40" begin="2s" />
+ <animate attributeName="height" values="40" begin="2s" />
+
+ <animate attributeName="y" values="0;20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ <animate attributeName="x" values="0;10" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ <animate attributeName="height" values="0;20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ <animate attributeName="width" values="0;10" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ </rect>
+
+
+ <rect x="50" y="160" width="80" height="80" stroke="#00f">
+ <title>blue by animations</title>
+ <set attributeName="y" to="80" begin="2s" />
+ <set attributeName="x" to="80" begin="2s" />
+ <set attributeName="width" to="40" begin="2s" />
+ <set attributeName="height" to="40" begin="2s" />
+
+
+ <animate attributeName="y" by="20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ <animate attributeName="x" by="10" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+ <animate attributeName="height" by="20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ <animate attributeName="width" by="10" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+ </rect>
+
+ </g>
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="315">compare by, from-by, from-to</text>
+ <text x="300" y="330">with values animations</text>
+ <text x="300" y="350">red=wrong </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-21-t.png b/test/svg/svg1.2/svg/animate-elem-21-t.png
new file mode 100644
index 0000000..7d2de93
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-21-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-21-t.svg b/test/svg/svg1.2/svg/animate-elem-21-t.svg
new file mode 100644
index 0000000..5467c09
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-21-t.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="See if animation, triggered by links, works." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-21-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test for chained animations</p>
+ <p>
+ The assumption is that you will first click on "fade in" and then click on "fade out", each exactly once. The
+ first time you select the link 'fade in', you should see a red square appearing, gradually and smoothly fading
+ from white to red over the course of three seconds. This square is in front of and thus obscures the lower left
+ circle, but is behind the upper right circle. The fill color of these circles is also animated, from white to grey.
+ The animations are triggered by the start of the corresponding animation of the red square.
+ </p>
+ <p>
+ The rendered picture should match the reference image, (except for possible variations in the labeling text
+ (per CSS2 rules)) after activating the link on the fade-in button the first time and waiting three seconds for the
+ animation to compete. The picture should remain looking the same way indefinitely, until another link is activated.
+ </p>
+ <p>
+ With the second click on "fade in", however, the behavior might be different. In the case of having a first click
+ on "fade in", waiting three seconds, and then immediately perform a first click on "fade out", waiting three seconds,
+ and then immediately perform a second click on "fade in", you should see the following. After the first click on
+ "fade in", the red square goes from zero to 100% opacity. After the first click on "fade out", the red square goes
+ from red to white. After the second click on "fade in", however, the red square goes from white to red, and then
+ goes back from red to white. This is because of the hyperlinking rules as they relate to resolved start times in
+ the SMIL 2.1 specification.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-21-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle stroke="white" stroke-width="30" fill="none" cx="100" cy="200" r="60">
+ <animate xml:id="fadein" attributeName="stroke" attributeType="auto" from="white" to="#666" begin="indefinite" dur="3s" fill="freeze" />
+ <animate xml:id="fadeout" attributeName="stroke" attributeType="auto" from="#666" to="white" begin="indefinite" dur="3s" fill="freeze" />
+ </circle>
+ <rect xml:id="pink" x="20" y="20" width="180" height="180" fill="#fff">
+ <animate xml:id="fadein2" attributeName="fill" attributeType="auto" from="#fff" to="red" begin="fadein.begin" dur="3s" fill="freeze" />
+ <animate xml:id="fadeout2" attributeName="fill" attributeType="auto" from="red" to="#fff" begin="fadeout.begin" dur="3s" fill="freeze" />
+ </rect>
+ <circle stroke="white" stroke-width="20" fill="none" cx="200" cy="110" r="80">
+ <animate xml:id="fadein3" attributeName="stroke" attributeType="auto" from="white" to="#666" begin="fadein.begin" dur="3s" fill="freeze" />
+ <animate xml:id="fadeout3" attributeName="stroke" attributeType="auto" from="#666" to="white" begin="fadeout.begin" dur="3s" fill="freeze" />
+ </circle>
+ <!-- ok so this is testing dynamic compositing as well -->
+ <g xml:id="buttons">
+ <a xlink:href="#fadein">
+ <rect x="320" y="0" width="160" height="180" fill="green" />
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="90">Fade in</text>
+ </a>
+ <a xlink:href="#fadeout">
+ <rect x="320" y="180" width="160" height="180" fill="maroon" />
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="280">Fade out</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-210-t.png b/test/svg/svg1.2/svg/animate-elem-210-t.png
new file mode 100644
index 0000000..c4dab6c
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-210-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-210-t.svg b/test/svg/svg1.2/svg/animate-elem-210-t.svg
new file mode 100644
index 0000000..617e820
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-210-t.svg
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateColor with values animateColor and animate." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animateColor with values animateColor and animate.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animations. Therefore they have to be the same as the related values animation.
+ Additionally set animations can be replaced by values animations too.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>values="0;a" additive="sum"</td>
+ </tr>
+ <tr>
+ <td>set to="a"</td>
+ <td>values="a" additive="replace" accumulate="none"</td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. In the color space
+ 0 is represented by black, #000, #000000, rgb(0,0,0) etc. Addition is performed for each
+ of the three components of the color vector separately.)
+ </p>
+ <p>
+ The from-to, from-by and by animations applied to fill properties
+ of circles are compared with the related values animations including additive and
+ cumulative hehaviour for the stroke of the same circles. Additionally underlying
+ filled larger circles simulate the same behaviour using always the defaults additive replace and
+ accumulate replace. The fill of the background circle and stroke and fill of the smaller
+ test circle centered in it are always exactly the same. Therefore if
+ rings in each centered circle system with different color get visible, an error is occured.
+ But each separated circle system representing one of 12 subtests can have another color.
+ Because the fill attribute for animation is always not set and therefore remove,
+ the final value is only that of the set animation, not very interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-210-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="#ff0" stroke="#ff0" stroke-width="10">
+ <title>from-to animation for fill compared with values for stroke</title>
+ <circle cx="80" cy="50" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#882;#084" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#886;#088" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#88a;#08c" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="50" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#802" to="#004" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#802;#004" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ </circle>
+
+ <circle cx="80" cy="120" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#602;#004" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#606;#008" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#60a;#00c" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="120" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#602" to="#004" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#602;#004" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+ </circle>
+
+ <circle cx="80" cy="190" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#684;#088" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#684;#088" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#684;#088" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="190" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#604" to="#008" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#604;#008" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ </circle>
+
+ <circle cx="80" cy="260" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#604;#008" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#604;#008" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#604;#008" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="260" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#604" to="#008" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#604;#008" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+ </circle>
+ </g>
+
+
+
+ <g fill="#ff0" stroke="#ff0" stroke-width="10" transform="translate(160)">
+ <title>from-by animation for fill compared with values for stroke</title>
+ <circle cx="80" cy="50" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#082;#085" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#087;#08a" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#08c;#08f" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="50" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#002" by="#003" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#002;#005" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ </circle>
+
+ <circle cx="80" cy="120" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#002;#005" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#007;#00a" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#00c;#00f" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="120" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#002" by="#003" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#002;#005" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+ </circle>
+
+ <circle cx="80" cy="190" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#684;#689" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#684;#689" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#684;#689" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="190" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#604" by="#005" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#604;#609" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ </circle>
+
+ <circle cx="80" cy="260" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#604;#609" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#604;#609" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#604;#609" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="260" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" from="#604" by="#005" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#604;#609" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+ </circle>
+ </g>
+
+
+
+ <g fill="#ff0" stroke="#ff0" stroke-width="10" transform="translate(320)">
+ <title>by animation for fill compared with values for stroke</title>
+ <circle cx="80" cy="50" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#080;#084" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#084;#088" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#088;#08c" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="50" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" by="#004" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#000;#004" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ </circle>
+
+ <circle cx="80" cy="120" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#080;#084" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#084;#088" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#088;#08c" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="120" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" by="#004" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#000;#004" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum" />
+ </circle>
+
+ <circle cx="80" cy="190" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#080;#088" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#080;#088" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#080;#088" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="190" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" by="#008" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#000;#008" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ </circle>
+
+ <circle cx="80" cy="260" r="35" stroke="none">
+ <animate attributeName="fill" values="#080" begin="2s" />
+ <animate attributeName="fill" values="#080;#088" begin="4s" dur="5s" />
+ <animate attributeName="fill" values="#080;#088" begin="9s" dur="5s" />
+ <animate attributeName="fill" values="#080;#088" begin="14s" dur="5s" />
+ </circle>
+ <circle cx="80" cy="260" r="20">
+ <set attributeName="fill" to="#080" begin="2s" />
+ <animateColor attributeName="fill" by="#008" begin="4s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none" />
+
+ <animateColor attributeName="stroke" values="#080" begin="2s" />
+ <animateColor attributeName="stroke" values="#000;#008" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none" />
+ </circle>
+ </g>
+
+
+
+
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="270" y="315">compare from-to, from-by, by</text>
+ <text x="270" y="330">with values animate, animateColor</text>
+ <text x="270" y="350">different colored rings in circle=wrong </text>
+
+ <text x="120" y="30">attributes noted:</text>
+ <text x="280" y="30">attributes noted:</text>
+
+ <text x="120" y="50">cumulative</text>
+ <text x="120" y="65">additive</text>
+
+ <text x="120" y="120">cumulative</text>
+ <text x="120" y="135">not additive</text>
+
+ <text x="120" y="190">not cumulative</text>
+ <text x="120" y="205">additive</text>
+
+ <text x="120" y="260">not cumulative</text>
+ <text x="120" y="275">not additive</text>
+
+ <text x="280" y="50">cumulative</text>
+ <text x="280" y="65">additive</text>
+
+ <text x="280" y="120">cumulative</text>
+ <text x="280" y="135">not additive</text>
+
+ <text x="280" y="190">not cumulative</text>
+ <text x="280" y="205">additive</text>
+
+ <text x="280" y="260">not cumulative</text>
+ <text x="280" y="275">not additive</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-211-t.png b/test/svg/svg1.2/svg/animate-elem-211-t.png
new file mode 100644
index 0000000..2b564c7
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-211-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-211-t.svg b/test/svg/svg1.2/svg/animate-elem-211-t.svg
new file mode 100644
index 0000000..0f2c31b
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-211-t.svg
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateMotion with values animateMotion." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animateMotion with values animateMotion.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ The conversion is as follows:
+ </p>
+ <!--table>
+ <tr>
+ <th>used</th><th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td><td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td><td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td><td>values="0;a" additive="sum"
+ </td>
+ </tr>
+ </table -->
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. For animateMotion
+ the '0' is no motion or is related to a translation given in coordinates: 0,0.)
+ </p>
+ <p>
+ The from-to, from-by and by are applied to animateMotion of different blue stroked
+ paths and are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red paths. Additionally underlying dark red
+ paths simulate the same behaviour using always the defaults additive replace and
+ accumulate replace. The blue paths cover all red paths. Therefore if something
+ red gets visible, an error is occured. Because fill is always not set and therefore remove,
+ the final value is the value at 2s given with a simple values animateMotion, not very
+ interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-211-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+
+ <path id="fromto" xml:id="fromto" d="M-15,-20L-20,20 20,20C-10,-10 30,-20 -15,-20Z"/>
+ <path id="fromby" xml:id="fromby" d="M-20,-15L-20,15 20,20C20,0 -10,-20 -20,-15Z"/>
+ <path id="by" xml:id="by" d="M-20,-20C100,80 40,-60 20,20Z"/>
+
+ </defs>
+
+
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="10" stroke-linejoin="bevel">
+
+
+ <g>
+ <title>from-to animateMotion</title>
+ <use xlink:href="#fromto" x="40" y="80" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+
+ <animateMotion values="30,90;50,60" begin="4s" dur="5s"/>
+ <animateMotion values="60,130;80,100" begin="9s" dur="5s"/>
+ <animateMotion values="90,170;110,140" begin="14s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="20s" dur="5s"/>
+ <animateMotion values="40,110;60,80" begin="25s" dur="5s"/>
+ <animateMotion values="70,150;90,120" begin="30s" dur="5s"/>
+
+ <animateMotion values="30,90;50,60" begin="36s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="41s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="46s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="52s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="57s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="62s" dur="5s"/>
+
+ </use>
+
+ <use xlink:href="#fromto" x="40" y="80" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+ <animateMotion values="10,70;30,40" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateMotion values="10,70;30,40" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateMotion values="10,70;30,40" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateMotion values="10,70;30,40" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromto" x="40" y="80" stroke="#88f">
+ <title>blue from-to animations</title>
+ <animateMotion values="20,20" begin="2s" />
+ <animateMotion from="10,70" to="30,40" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateMotion from="10,70" to="30,40" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateMotion from="10,70" to="30,40" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateMotion from="10,70" to="30,40" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+
+ <g>
+ <title>from-by animateMotion</title>
+ <use xlink:href="#fromby" x="160" y="80" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+
+ <animateMotion values="30,90;50,60" begin="4s" dur="5s"/>
+ <animateMotion values="60,130;80,100" begin="9s" dur="5s"/>
+ <animateMotion values="90,170;110,140" begin="14s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="20s" dur="5s"/>
+ <animateMotion values="40,110;60,80" begin="25s" dur="5s"/>
+ <animateMotion values="70,150;90,120" begin="30s" dur="5s"/>
+
+ <animateMotion values="30,90;50,60" begin="36s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="41s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="46s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="52s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="57s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="62s" dur="5s"/>
+
+ </use>
+
+ <use xlink:href="#fromby" x="160" y="80" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+ <animateMotion values="10,70;30,40" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateMotion values="10,70;30,40" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateMotion values="10,70;30,40" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateMotion values="10,70;30,40" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromby" x="160" y="80" stroke="#88f">
+ <title>blue from-by animations</title>
+ <animateMotion values="20,20" begin="2s" />
+ <animateMotion from="10,70" by="20,-30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateMotion from="10,70" by="20,-30" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateMotion from="10,70" by="20,-30" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateMotion from="10,70" by="20,-30" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ <g>
+ <title>by animateMotion</title>
+ <use xlink:href="#by" x="300" y="200" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+
+ <animateMotion values="20,20;40,-10" begin="4s" dur="5s"/>
+ <animateMotion values="40,-10;60,-40" begin="9s" dur="5s"/>
+ <animateMotion values="60,-40;80,-70" begin="14s" dur="5s"/>
+
+ <animateMotion values="20,20;40,-10" begin="20s" dur="5s"/>
+ <animateMotion values="40,-10;60,-40" begin="25s" dur="5s"/>
+ <animateMotion values="60,-40;80,-70" begin="30s" dur="5s"/>
+
+ <animateMotion values="20,20;40,-10" begin="36s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="41s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="46s" dur="5s"/>
+
+ <animateMotion values="20,20;40,-10" begin="52s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="57s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="62s" dur="5s"/>
+
+ </use>
+
+ <use xlink:href="#by" x="300" y="200" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+ <animateMotion values="0,0;20,-30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateMotion values="0,0;20,-30" begin="20s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateMotion values="0,0;20,-30" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateMotion values="0,0;20,-30" begin="52s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#by" x="300" y="200" stroke="#88f">
+ <title>blue by animations</title>
+ <animateMotion values="20,20" begin="2s" />
+ <animateMotion by="20,-30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateMotion by="20,-30" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateMotion by="20,-30" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateMotion by="20,-30" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="315">compare from-to, from-by, by</text>
+ <text x="300" y="330">with values animateMotion</text>
+ <text x="300" y="350">red=wrong, no animation: wrong</text>
+ <text x="10" y="275">attributes noted:</text>
+ <text x="10" y="290">
+ <tspan fill="#88f">cumulative/additive;</tspan>
+ <tspan fill="#00f">cumulative/not additive;</tspan>
+ </text>
+ <text x="10" y="305">
+ <tspan fill="#00a">not cumulative/additive;</tspan>
+ <tspan fill="#006">not cumulative/not additive</tspan>
+ </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-212-t.png b/test/svg/svg1.2/svg/animate-elem-212-t.png
new file mode 100644
index 0000000..a427233
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-212-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-212-t.svg b/test/svg/svg1.2/svg/animate-elem-212-t.svg
new file mode 100644
index 0000000..eba6f7c
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-212-t.svg
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateTransform rotate with values animateTransform." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-212-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animateTransform rotate (around zero) with values animateTransform.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>
+ values="0;a" additive="sum"
+ </td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. For animateTransform
+ the '0' is the same as the zero matrix, not the unity or identity matrix.
+ For the rotate type this is a skew with an angle of 0.
+ Deviating from SMIL 2 in SVG it is specified, that for animateTranform the animation
+ effect has to be postmultiplied to the underlying value, if the animation is additive. Note
+ that for two additive rotate angles a, b the resulting angle is not a+b but atan(tan(a)+tan(b)).
+ </p>
+ <p>
+ The from-to, from-by and by are applied to animateTransform of the rotate type
+ of different blue stroked
+ paths and are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red paths. Additionally underlying dark red
+ paths simulate the same behaviour using always the defaults additive replace and
+ accumulate replace with animateMotion. The blue paths cover all red paths.
+ Therefore if something red gets visible, an error is occured.
+ Because fill is always not set and therefore remove,
+ the final value is the value at 2s given with a simple values animateTransform, not very
+ interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-212-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+
+ <path id="fromto" xml:id="fromto" d="M-20,40C-20,40 0,0 -20,-20 20,20 20,0 20,40C30,40 -20,0 -20,40"/>
+ <path id="fromby" xml:id="fromby" d="M-20,-30Q40,0 20,20M0,-40C40,-40 20,-20 30,40"/>
+ <path id="by" xml:id="by" d="M20,20Q40,-20 20,-20M-20,-20L20,40M0,-20L40,40"/>
+
+ </defs>
+
+
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="6" stroke-linejoin="round" stroke-linecap="round">
+
+
+ <g transform="translate(80,140)">
+ <title>from-to animateTransform rotate</title>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230;-300" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380;-450" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230;-300" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380;-450" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="62s" dur="5s"/>
+ <use xlink:href="#fromto" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#fromto" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromto" stroke="#88f">
+ <title>blue from-to animations</title>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" from="-80" to="-150" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80" to="-150" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80" to="-150" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80" to="-150" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+
+ <g transform="translate(240,140)">
+ <title>from-by animateTransform rotate</title>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230;-300" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380;-450" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230;-300" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380;-450" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="62s" dur="5s"/>
+ <use xlink:href="#fromby" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#fromby" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80;-150" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromby" stroke="#88f">
+ <title>blue from-by animations</title>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" from="-80" by="-70" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80" by="-70" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80" by="-70" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80" by="-70" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ <g transform="translate(400,140)">
+ <title>by animateTransform rotate</title>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" />
+ <use xlink:href="#by" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+
+ <animateTransform attributeName="transform" type="rotate" values="0;200" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="200;400" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="400;600" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="0;200" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="200;400" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="400;600" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="62s" dur="5s"/>
+ </use>
+ </g>
+
+ <use xlink:href="#by" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" values="0;200" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="0;200" begin="20s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" values="0;150" begin="52s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#by" stroke="#88f">
+ <title>blue by animations</title>
+ <animateTransform attributeName="transform" type="rotate" values="100" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" by="200" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" by="200" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" by="150" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" by="150" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="300">animateTransform rotate</text>
+ <text x="300" y="315">compare from-to, from-by, by</text>
+ <text x="300" y="330">with values</text>
+ <text x="300" y="350">red=wrong, no animation: wrong</text>
+ <text x="10" y="275">attributes noted:</text>
+ <text x="10" y="290">
+ <tspan fill="#88f">cumulative/additive;</tspan>
+ <tspan fill="#00f">cumulative/not additive;</tspan>
+ </text>
+ <text x="10" y="305">
+ <tspan fill="#00a">not cumulative/additive;</tspan>
+ <tspan fill="#006">not cumulative/not additive</tspan>
+ </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-213-t.png b/test/svg/svg1.2/svg/animate-elem-213-t.png
new file mode 100644
index 0000000..18fd7c0
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-213-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-213-t.svg b/test/svg/svg1.2/svg/animate-elem-213-t.svg
new file mode 100644
index 0000000..ea84272
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-213-t.svg
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateTransform rotate with values animateTransform." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-213-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animateTransform rotate with values animateTransform.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>
+ values="0;a" additive="sum"
+ </td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. For animateTransform
+ the '0' is the same as the zero matrix, not the unity or identity matrix.
+ For the rotate type this is a skew with an angle of 0.
+ Deviating from SMIL 2 in SVG it is specified, that for animateTranform the animation
+ effect has to be postmultiplied to the underlying value, if the animation is additive. Note
+ that for two additive rotate angles a, b the resulting angle is not a+b but atan(tan(a)+tan(b)).
+ </p>
+ <p>
+ The from-to, from-by and by are applied to animateTransform of the rotate type
+ of different blue stroked
+ paths and are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red paths. Additionally underlying dark red
+ paths simulate the same behaviour using always the defaults additive replace and
+ accumulate replace with animateMotion. The blue paths cover all red paths.
+ Therefore if something red gets visible, an error is occured.
+ Because fill is always not set and therefore remove,
+ the final value is the value at 2s given with a simple values animateTransform, not very
+ interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-213-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+
+ <path id="fromto" xml:id="fromto" d="M-20,40C-20,40 0,0 -20,-20 20,20 20,0 20,40C30,40 -20,0 -20,40"/>
+ <path id="fromby" xml:id="fromby" d="M-20,-30Q40,0 20,20M0,-40C40,-40 20,-20 30,40"/>
+ <path id="by" xml:id="by" d="M20,20Q40,-20 20,-20M-20,-20L20,40M0,-20L40,40"/>
+
+ </defs>
+
+
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="6" stroke-linejoin="round" stroke-linecap="round">
+
+
+ <g transform="translate(80,140)">
+ <title>from-to animateTransform rotate</title>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230,5,0;-300,10,-10" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380,10,-5;-450,15,-15" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230,5,0;-300,10,-10" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380,10,-5;-450,15,-15" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="62s" dur="5s"/>
+ <use xlink:href="#fromto" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#fromto" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromto" stroke="#88f">
+ <title>blue from-to animations</title>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" to="-150,5,-5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" to="-150,5,-5" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" to="-150,5,-5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" to="-150,5,-5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+
+ <g transform="translate(240,140)">
+ <title>from-by animateTransform rotate</title>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230,5,0;-300,10,-10" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380,10,-5;-450,15,-15" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-230,5,0;-300,10,-10" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-380,10,-5;-450,15,-15" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="62s" dur="5s"/>
+ <use xlink:href="#fromby" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+ <use xlink:href="#fromby" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" values="-80,0,5;-150,5,-5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromby" stroke="#88f">
+ <title>blue from-by animations</title>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" by="-70,5,-10" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" by="-70,5,-10" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" by="-70,5,-10" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" from="-80,0,5" by="-70,5,-10" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ <g transform="translate(400,140)">
+ <title>by animateTransform rotate</title>
+
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" />
+ <g>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="200,5,-5;400,10,-10" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="400,10,-10;600,15,-15" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="200,5,-5;400,10,-10" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="400,10,-10;600,15,-15" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="62s" dur="5s"/>
+
+ <use xlink:href="#by" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+
+ <use xlink:href="#by" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="20s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" values="0,0,0;200,5,-5" begin="52s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ </use>
+
+ <use xlink:href="#by" stroke="#88f">
+ <title>blue by animations</title>
+ <animateTransform attributeName="transform" type="rotate" values="100,-5,5" begin="2s" />
+ <animateTransform attributeName="transform" type="rotate" by="200,5,-5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" by="200,5,-5" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="rotate" by="200,5,-5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="rotate" by="200,5,-5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="300">animateTransform rotate</text>
+ <text x="300" y="315">compare from-to, from-by, by</text>
+ <text x="300" y="330">with values</text>
+ <text x="300" y="350">red=wrong, no animation: wrong</text>
+ <text x="10" y="275">attributes noted:</text>
+ <text x="10" y="290">
+ <tspan fill="#88f">cumulative/additive;</tspan>
+ <tspan fill="#00f">cumulative/not additive;</tspan>
+ </text>
+ <text x="10" y="305">
+ <tspan fill="#00a">not cumulative/additive;</tspan>
+ <tspan fill="#006">not cumulative/not additive</tspan>
+ </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-214-t.png b/test/svg/svg1.2/svg/animate-elem-214-t.png
new file mode 100644
index 0000000..df14283
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-214-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-214-t.svg b/test/svg/svg1.2/svg/animate-elem-214-t.svg
new file mode 100644
index 0000000..1c0764b
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-214-t.svg
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateTransform scale with values animateTransform." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-214-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animateTransform scale with values animateTransform.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>
+ values="0;a" additive="sum"
+ </td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. For animateTransform
+ the '0' is the same as the zero matrix, not the unity or identity matrix.
+ For the scale type this is a scaling with 0,0, this means no display if not added to another
+ value. Deviating from SMIL 2 in SVG it is specified, that for animateTranform the animation
+ effect has to be postmultiplied to the underlying value, if the animation is additive.)
+ </p>
+ <p>
+ The from-to, from-by and by are applied to animateTransform of the scale type
+ of different blue stroked
+ paths and are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red paths. Additionally underlying dark red
+ paths simulate the same behaviour using always the defaults additive replace and
+ accumulate replace with animateMotion. The blue paths cover all red paths.
+ Therefore if something red gets visible, an error is occured.
+ Because fill is always not set and therefore remove,
+ the final value is the value at 2s given with a simple values animateTransform, not very
+ interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-214-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+
+ <path id="fromto" xml:id="fromto" d="M20,-20C-30,-30 -30,20 -20,20S0,-20 0,0"/>
+ <path id="fromby" xml:id="fromby" d="M-20,20Q50,-40 0,-20T20,20"/>
+ <path id="by" xml:id="by" d="M-20,5Q-25,-25 20,-20Q25,25 -5,20M-6,-6L-10,5M3,-6L7,9"/>
+
+ </defs>
+
+
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="6" stroke-linejoin="round" stroke-linecap="round">
+
+
+ <g transform="translate(80,140)">
+ <title>from-to animateTransform scale</title>
+ <g>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0.6,-2.3;-1.2,-3" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,-3.8;-1.8,-4.5" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0.6,-2.3;-1.2,-3" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,-3.8;-1.8,-4.5" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="62s" dur="5s"/>
+ <use xlink:href="#fromto" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+ <use xlink:href="#fromto" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" />
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromto" stroke="#88f">
+ <title>blue from-to animations</title>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" />
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" to="-0.6,-1.5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" to="-0.6,-1.5" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" to="-0.6,-1.5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" to="-0.6,-1.5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+
+ <g transform="translate(220,140)">
+ <title>from-by animateTransform scale</title>
+ <g>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0.6,-2.3;-1.2,-3" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,-3.8;-1.8,-4.5" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0.6,-2.3;-1.2,-3" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,-3.8;-1.8,-4.5" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="62s" dur="5s"/>
+ <use xlink:href="#fromby" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#fromby" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" />
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="scale" values="1.2,-0.8;-0.6,-1.5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromby" stroke="#88f">
+ <title>blue from-by animations</title>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" />
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" by="-1.8,-0.7" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" by="-1.8,-0.7" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" by="-1.8,-0.7" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="scale" from="1.2,-0.8" by="-1.8,-0.7" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ <g transform="translate(360,140)">
+ <title>by animateTransform scale</title>
+ <g>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" />
+ <g>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.4,1" begin="4s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="-0.4,1;-0.8,2" begin="9s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="-0.8,2;-1.2,3" begin="14s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.4,1" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="-0.4,1;-0.8,2" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="-0.8,2;-1.2,3" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="62s" dur="5s"/>
+ <use xlink:href="#by" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+ <use xlink:href="#by" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" />
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.4,1" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.4,1" begin="20s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="scale" values="0,0;-0.7,1.5" begin="52s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#by" stroke="#88f">
+ <title>blue by animations</title>
+ <animateTransform attributeName="transform" type="scale" values="-1,1" begin="2s" />
+ <animateTransform attributeName="transform" type="scale" by="-0.4,1" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" by="-0.4,1" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="scale" by="-0.7,1.5" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="scale" by="-0.7,1.5" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="300">animateTransform scale</text>
+ <text x="300" y="315">compare from-to, from-by, by</text>
+ <text x="300" y="330">with values</text>
+ <text x="300" y="350">red=wrong, no animation: wrong</text>
+ <text x="10" y="275">attributes noted:</text>
+ <text x="10" y="290">
+ <tspan fill="#88f">cumulative/additive;</tspan>
+ <tspan fill="#00f">cumulative/not additive;</tspan>
+ </text>
+ <text x="10" y="305">
+ <tspan fill="#00a">not cumulative/additive;</tspan>
+ <tspan fill="#006">not cumulative/not additive</tspan>
+ </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-215-t.png b/test/svg/svg1.2/svg/animate-elem-215-t.png
new file mode 100644
index 0000000..819d010
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-215-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-215-t.svg b/test/svg/svg1.2/svg/animate-elem-215-t.svg
new file mode 100644
index 0000000..2c77056
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-215-t.svg
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateTransform translate with values animateTransform and animateMotion." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-215-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Compare from-to, from-by and by animateTransform translate with values
+ animateTransform and animateMotion.
+ </p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>
+ values="0;a" additive="sum"
+ </td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. For animateTransform
+ the '0' is the same as the zero matrix, not the unity or identity matrix.
+ For the translate type this is a translation given in coordinates: 0,0.)
+ </p>
+ <p>
+ The from-to, from-by and by are applied to animateTransform of the translate type
+ of different blue stroked
+ paths and are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red paths. Additionally underlying dark red
+ paths simulate the same behaviour using always the defaults additive replace and
+ accumulate replace with animateMotion. The blue paths cover all red paths.
+ Therefore if something red gets visible, an error is occured.
+ Because fill is always not set and therefore remove,
+ the final value is the value at 2s given with a simple values animateTransform, not very
+ interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-215-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+
+ <path id="fromto" xml:id="fromto" d="M-20,-20C120,-40 -80,-60 20,20"/>
+ <path id="fromby" xml:id="fromby" d="M-20,20Q5,-80 20,20"/>
+ <path id="by" xml:id="by" d="M-20,-10Q-20,20 20,20Q20,-20 -10,-20 M-0.1,-0.1L0.1,0.1"/>
+
+ </defs>
+
+
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="10" stroke-linejoin="round" stroke-linecap="round">
+
+
+ <g>
+ <title>from-to animateTransform translate</title>
+ <use xlink:href="#fromto" x="40" y="80" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+
+ <animateMotion values="30,90;50,60" begin="4s" dur="5s"/>
+ <animateMotion values="60,130;80,100" begin="9s" dur="5s"/>
+ <animateMotion values="90,170;110,140" begin="14s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="20s" dur="5s"/>
+ <animateMotion values="40,110;60,80" begin="25s" dur="5s"/>
+ <animateMotion values="70,150;90,120" begin="30s" dur="5s"/>
+
+ <animateMotion values="30,90;50,60" begin="36s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="41s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="46s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="52s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="57s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="62s" dur="5s"/>
+
+ </use>
+
+ <use xlink:href="#fromto" x="40" y="80" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="translate" values="20,20" begin="2s" />
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromto" x="40" y="80" stroke="#88f">
+ <title>blue from-to animations</title>
+ <animateTransform attributeName="transform" type="translate" values="20,20" begin="2s" />
+ <animateTransform attributeName="transform" type="translate" from="10,70" to="30,40" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" from="10,70" to="30,40" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" from="10,70" to="30,40" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="translate" from="10,70" to="30,40" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+
+ <g>
+ <title>from-by animateTransform translate</title>
+ <use xlink:href="#fromby" x="160" y="80" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+
+ <animateMotion values="30,90;50,60" begin="4s" dur="5s"/>
+ <animateMotion values="60,130;80,100" begin="9s" dur="5s"/>
+ <animateMotion values="90,170;110,140" begin="14s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="20s" dur="5s"/>
+ <animateMotion values="40,110;60,80" begin="25s" dur="5s"/>
+ <animateMotion values="70,150;90,120" begin="30s" dur="5s"/>
+
+ <animateMotion values="30,90;50,60" begin="36s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="41s" dur="5s"/>
+ <animateMotion values="30,90;50,60" begin="46s" dur="5s"/>
+
+ <animateMotion values="10,70;30,40" begin="52s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="57s" dur="5s"/>
+ <animateMotion values="10,70;30,40" begin="62s" dur="5s"/>
+
+ </use>
+
+ <use xlink:href="#fromby" x="160" y="80" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="translate" values="20,20" begin="2s" />
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="translate" values="10,70;30,40" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromby" x="160" y="80" stroke="#88f">
+ <title>blue from-by animations</title>
+ <animateTransform attributeName="transform" type="translate" values="20,20" begin="2s" />
+ <animateTransform attributeName="transform" type="translate" from="10,70" by="20,-30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" from="10,70" by="20,-30" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" from="10,70" by="20,-30" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="translate" from="10,70" by="20,-30" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ <g>
+ <title>by animateTransform translate</title>
+ <use xlink:href="#by" x="300" y="200" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+ <animateMotion values="20,20" begin="2s" />
+
+ <animateMotion values="20,20;40,-10" begin="4s" dur="5s"/>
+ <animateMotion values="40,-10;60,-40" begin="9s" dur="5s"/>
+ <animateMotion values="60,-40;80,-70" begin="14s" dur="5s"/>
+
+ <animateMotion values="20,20;40,-10" begin="20s" dur="5s"/>
+ <animateMotion values="40,-10;60,-40" begin="25s" dur="5s"/>
+ <animateMotion values="60,-40;80,-70" begin="30s" dur="5s"/>
+
+ <animateMotion values="20,20;40,-10" begin="36s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="41s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="46s" dur="5s"/>
+
+ <animateMotion values="20,20;40,-10" begin="52s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="57s" dur="5s"/>
+ <animateMotion values="20,20;40,-10" begin="62s" dur="5s"/>
+
+ </use>
+
+ <use xlink:href="#by" x="300" y="200" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="translate" values="20,20" begin="2s" />
+ <animateTransform attributeName="transform" type="translate" values="0,0;20,-30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" values="0,0;20,-30" begin="20s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" values="0,0;20,-30" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="translate" values="0,0;20,-30" begin="52s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#by" x="300" y="200" stroke="#88f">
+ <title>blue by animations</title>
+ <animateTransform attributeName="transform" type="translate" values="20,20" begin="2s" />
+ <animateTransform attributeName="transform" type="translate" by="20,-30" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" by="20,-30" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="translate" by="20,-30" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="translate" by="20,-30" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="300">animateTransform translate</text>
+ <text x="300" y="315">compare from-to, from-by, by</text>
+ <text x="300" y="330">with values and animateMotion</text>
+ <text x="300" y="350">red=wrong, no animation: wrong</text>
+ <text x="10" y="275">attributes noted:</text>
+ <text x="10" y="290">
+ <tspan fill="#88f">cumulative/additive;</tspan>
+ <tspan fill="#00f">cumulative/not additive;</tspan>
+ </text>
+ <text x="10" y="305">
+ <tspan fill="#00a">not cumulative/additive;</tspan>
+ <tspan fill="#006">not cumulative/not additive</tspan>
+ </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-216-t.png b/test/svg/svg1.2/svg/animate-elem-216-t.png
new file mode 100644
index 0000000..abcb0d9
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-216-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-216-t.svg b/test/svg/svg1.2/svg/animate-elem-216-t.svg
new file mode 100644
index 0000000..996cf59
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-216-t.svg
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateTransform skewX with values animateTransform." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-216-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animateTransform skewX with values animateTransform.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>
+ values="0;a" additive="sum"
+ </td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. For animateTransform
+ the '0' is the same as the zero matrix, not the unity or identity matrix.
+ For the skewX type this is a skew with an angle of 0.
+ Deviating from SMIL 2 in SVG it is specified, that for animateTranform the animation
+ effect has to be postmultiplied to the underlying value, if the animation is additive. Note
+ that for two additive skewX angles a, b the resulting angle is not a+b but atan(tan(a)+tan(b)).
+ </p>
+ <p>
+ The from-to, from-by and by are applied to animateTransform of the skewX type
+ of different blue stroked
+ paths and are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red paths. Additionally underlying dark red
+ paths simulate the same behaviour using always the defaults additive replace and
+ accumulate replace with animateMotion. The blue paths cover all red paths.
+ Therefore if something red gets visible, an error is occured.
+ Because fill is always not set and therefore remove,
+ the final value is the value at 2s given with a simple values animateTransform, not very
+ interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-216-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+
+ <path id="fromto" xml:id="fromto" d="M-20,40Q-20,-40 40,-40 20,0 20,40C30,80 -20,0 -20,40"/>
+ <path id="fromby" xml:id="fromby" d="M-20,40L20,-40M-20,-40C-20,40 0,0 20,40"/>
+ <path id="by" xml:id="by" d="M-20,0L20,40M-20,-40L20,-20M-10,-40L15,40"/>
+
+ </defs>
+
+
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="6" stroke-linejoin="round" stroke-linecap="round">
+
+
+ <g transform="translate(80,140)">
+ <title>from-to animateTransform skewX</title>
+ <g>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="4s" dur="5s"/>
+ <!-- -8;-15 2.0496;-5.2350 -->
+ <animateTransform attributeName="transform" type="skewX" values="-23;-30" begin="9s" dur="5s"/>
+ <!-- -23;-30 -13.9363;-21.8519 -->
+ <animateTransform attributeName="transform" type="skewX" values="-38;-45" begin="14s" dur="5s"/>
+ <!-- -38;-45 -31.1722;-39.4774 -->
+
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-23;-30" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-38;-45" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="62s" dur="5s"/>
+ <use xlink:href="#fromto" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#fromto" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromto" stroke="#88f">
+ <title>blue from-to animations</title>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewX" from="-8" to="-15" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" from="-8" to="-15" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" from="-8" to="-15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewX" from="-8" to="-15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+
+ <g transform="translate(200,140)">
+ <title>from-by animateTransform skewX</title>
+ <g>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="4s" dur="5s"/>
+ <!-- -8;-15 2.0496;-5.2350 -->
+ <animateTransform attributeName="transform" type="skewX" values="-23;-30" begin="9s" dur="5s"/>
+ <!-- -23;-30 -13.9363;-21.8519 -->
+ <animateTransform attributeName="transform" type="skewX" values="-38;-45" begin="14s" dur="5s"/>
+ <!-- -38;-45 -31.1722;-39.4774 -->
+
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-23;-30" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-38;-45" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="62s" dur="5s"/>
+ <use xlink:href="#fromby" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#fromby" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewX" values="-8;-15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromby" stroke="#88f">
+ <title>blue from-by animations</title>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewX" from="-8" by="-7" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" from="-8" by="-7" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" from="-8" by="-7" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewX" from="-8" by="-7" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ <g transform="translate(360,140)">
+ <title>by animateTransform skewX</title>
+ <g>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" />
+ <g>
+ <animateTransform attributeName="transform" type="skewX" values="0;20" begin="4s" dur="5s"/>
+ <!-- 0;20 10;28.3822-->
+ <animateTransform attributeName="transform" type="skewX" values="20;40" begin="9s" dur="5s"/>
+ <!-- 20;40 28.3822;45.4385 -->
+ <animateTransform attributeName="transform" type="skewX" values="40;60" begin="14s" dur="5s"/>
+ <!-- 40;60 45.4385;62.3452 -->
+
+ <animateTransform attributeName="transform" type="skewX" values="0;20" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="20;40" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="40;60" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="36s" dur="5s"/>
+ <!-- 0;15 10;23.9544 -->
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="62s" dur="5s"/>
+ <use xlink:href="#by" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+ <use xlink:href="#by" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewX" values="0;20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" values="0;20" begin="20s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewX" values="0;15" begin="52s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#by" stroke="#88f">
+ <title>blue by animations</title>
+ <animateTransform attributeName="transform" type="skewX" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewX" by="20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" by="20" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewX" by="15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewX" by="15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="300">animateTransform skewX</text>
+ <text x="300" y="315">compare from-to, from-by, by</text>
+ <text x="300" y="330">with values</text>
+ <text x="300" y="350">red=wrong, no animation: wrong</text>
+ <text x="10" y="275">attributes noted:</text>
+ <text x="10" y="290">
+ <tspan fill="#88f">cumulative/additive;</tspan>
+ <tspan fill="#00f">cumulative/not additive;</tspan>
+ </text>
+ <text x="10" y="305">
+ <tspan fill="#00a">not cumulative/additive;</tspan>
+ <tspan fill="#006">not cumulative/not additive</tspan>
+ </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-217-t.png b/test/svg/svg1.2/svg/animate-elem-217-t.png
new file mode 100644
index 0000000..1ab3dbb
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-217-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-217-t.svg b/test/svg/svg1.2/svg/animate-elem-217-t.svg
new file mode 100644
index 0000000..f7e0e16
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-217-t.svg
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="Compare from-to, from-by and by animateTransform skewY with values animateTransform." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-217-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Compare from-to, from-by and by animateTransform skewY with values animateTransform.</p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ SMIL 2 specifies, how from-to, from-by and by animations have to be converted into
+ values animation. Therefore they have to be the same as the related values animation.
+ The conversion is as follows:
+ </p>
+ <table>
+ <tr>
+ <th>used</th>
+ <th>converted</th>
+ </tr>
+ <tr>
+ <td>from="a" to="b"</td>
+ <td>values="a;b"</td>
+ </tr>
+ <tr>
+ <td>from="a" by="b"</td>
+ <td>values="a;a+b"</td>
+ </tr>
+ <tr>
+ <td>by="a"</td>
+ <td>
+ values="0;a" additive="sum"
+ </td>
+ </tr>
+ </table>
+ <p>
+ (by and from-by animations have only a meaning, if values can be added somehow.
+ '0' is used as a general symbol for the neutral element of addition for the related attribute,
+ this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the
+ related attribute, '0' is a predecessor of '1' in the related attribute space. For animateTransform
+ the '0' is the same as the zero matrix, not the unity or identity matrix.
+ For the skewY type this is a skew with an angle of 0.
+ Deviating from SMIL 2 in SVG it is specified, that for animateTranform the animation
+ effect has to be postmultiplied to the underlying value, if the animation is additive. Note
+ that for two additive skewY angles a, b the resulting angle is not a+b but atan(tan(a)+tan(b)).
+ </p>
+ <p>
+ The from-to, from-by and by are applied to animateTransform of the skewY type
+ of different blue stroked
+ paths and are compared with the related values animations including additive and
+ cumulative hehaviour for underlying red paths. Additionally underlying dark red
+ paths simulate the same behaviour using always the defaults additive replace and
+ accumulate replace with animateMotion. The blue paths cover all red paths.
+ Therefore if something red gets visible, an error is occured.
+ Because fill is always not set and therefore remove,
+ the final value is the value at 2s given with a simple values animateTransform, not very
+ interesting for the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-217-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+
+ <path id="fromto" xml:id="fromto" d="M-20,40Q-20,40 40,40 20,0 20,40C30,-80 -20,0 -20,-40"/>
+ <path id="fromby" xml:id="fromby" d="M-30,10L30,-10M-20,-40C20,-40 0,0 20,40"/>
+ <path id="by" xml:id="by" d="M20,0L0,40M-20,-50L-20,30M-20,50L40,40"/>
+
+ </defs>
+
+
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke="#f00" stroke-width="6" stroke-linejoin="round" stroke-linecap="round">
+
+
+ <g transform="translate(80,140)">
+ <title>from-to animateTransform skewY</title>
+ <g>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="4s" dur="5s"/>
+ <!-- -8;-15 2.0496;-5.2350 -->
+ <animateTransform attributeName="transform" type="skewY" values="-23;-30" begin="9s" dur="5s"/>
+ <!-- -23;-30 -13.9363;-21.8519 -->
+ <animateTransform attributeName="transform" type="skewY" values="-38;-45" begin="14s" dur="5s"/>
+ <!-- -38;-45 -31.1722;-39.4774 -->
+
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-23;-30" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-38;-45" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="62s" dur="5s"/>
+ <use xlink:href="#fromto" stroke="#800">
+ <title>dark red values comparsion for from-to animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#fromto" stroke="#f00">
+ <title>red values comparsion for from-to animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromto" stroke="#88f">
+ <title>blue from-to animations</title>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewY" from="-8" to="-15" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" from="-8" to="-15" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" from="-8" to="-15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewY" from="-8" to="-15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+
+ <g transform="translate(240,140)">
+ <title>from-by animateTransform skewY</title>
+ <g>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" dur="18s"/>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="35s" dur="17s"/>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="67s"/>
+ <g>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="4s" dur="5s"/>
+ <!-- -8;-15 2.0496;-5.2350 -->
+ <animateTransform attributeName="transform" type="skewY" values="-23;-30" begin="9s" dur="5s"/>
+ <!-- -23;-30 -13.9363;-21.8519 -->
+ <animateTransform attributeName="transform" type="skewY" values="-38;-45" begin="14s" dur="5s"/>
+ <!-- -38;-45 -31.1722;-39.4774 -->
+
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-23;-30" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-38;-45" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="36s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="62s" dur="5s"/>
+ <use xlink:href="#fromby" stroke="#800">
+ <title>dark red values comparsion for from-by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+ <use xlink:href="#fromby" stroke="#f00">
+ <title>red values comparsion for from-by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewY" values="-8;-15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#fromby" stroke="#88f">
+ <title>blue from-by animations</title>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewY" from="-8" by="-7" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" from="-8" by="-7" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" from="-8" by="-7" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewY" from="-8" by="-7" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ <g transform="translate(400,140)">
+ <title>by animateTransform skewY</title>
+ <g>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" />
+ <g>
+ <animateTransform attributeName="transform" type="skewY" values="0;20" begin="4s" dur="5s"/>
+ <!-- 0;20 10;28.3822-->
+ <animateTransform attributeName="transform" type="skewY" values="20;40" begin="9s" dur="5s"/>
+ <!-- 20;40 28.3822;45.4385 -->
+ <animateTransform attributeName="transform" type="skewY" values="40;60" begin="14s" dur="5s"/>
+ <!-- 40;60 45.4385;62.3452 -->
+
+ <animateTransform attributeName="transform" type="skewY" values="0;20" begin="20s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="20;40" begin="25s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="40;60" begin="30s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="36s" dur="5s"/>
+ <!-- 0;15 10;23.9544 -->
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="41s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="46s" dur="5s"/>
+
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="52s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="57s" dur="5s"/>
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="62s" dur="5s"/>
+ <use xlink:href="#by" stroke="#800">
+ <title>dark red values comparsion for by animations - if visible fail</title>
+ </use>
+ </g>
+ </g>
+
+ <use xlink:href="#by" stroke="#f00">
+ <title>red values comparsion for by animations - if visible fail</title>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewY" values="0;20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" values="0;20" begin="20s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewY" values="0;15" begin="52s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ </use>
+
+
+ <use xlink:href="#by" stroke="#88f">
+ <title>blue by animations</title>
+ <animateTransform attributeName="transform" type="skewY" values="10" begin="2s" />
+ <animateTransform attributeName="transform" type="skewY" by="20" begin="4s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" by="20" begin="20s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="sum"/>
+ <animateTransform attributeName="transform" type="skewY" by="15" begin="36s"
+ dur="5s" repeatCount="3" additive="sum" accumulate="none"/>
+ <animateTransform attributeName="transform" type="skewY" by="15" begin="52s"
+ dur="5s" repeatCount="3" additive="replace" accumulate="none"/>
+
+ <set attributeName="stroke" to="#00f" begin="20s" />
+ <set attributeName="stroke" to="#00a" begin="36s" />
+ <set attributeName="stroke" to="#006" begin="52s" />
+ </use>
+
+ </g>
+
+
+ </g>
+ <g id="myText" xml:id="myText" font-size="12">
+ <text x="300" y="300">animateTransform skewY</text>
+ <text x="300" y="315">compare from-to, from-by, by</text>
+ <text x="300" y="330">with values</text>
+ <text x="300" y="350">red=wrong, no animation: wrong</text>
+ <text x="10" y="275">attributes noted:</text>
+ <text x="10" y="290">
+ <tspan fill="#88f">cumulative/additive;</tspan>
+ <tspan fill="#00f">cumulative/not additive;</tspan>
+ </text>
+ <text x="10" y="305">
+ <tspan fill="#00a">not cumulative/additive;</tspan>
+ <tspan fill="#006">not cumulative/not additive</tspan>
+ </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-218-t.png b/test/svg/svg1.2/svg/animate-elem-218-t.png
new file mode 100644
index 0000000..08e970b
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-218-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-218-t.svg b/test/svg/svg1.2/svg/animate-elem-218-t.svg
new file mode 100644
index 0000000..3b3e0af
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-218-t.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="DOH" desc="xml:id or id? Identification of the element, that is target of an animation." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-218-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ xml:id or id? Identification of the element, that is target of an animation.
+ For authors it is recommended not to use different for id and xml:id for the same
+ element and not the same value for id in one element and the same value for
+ xml:id in another element. This is done in this document only as a (stupid) test,
+ not as an application.
+ </p>
+ <p>
+ The main indication for a failed test is the appearance of red or no animation after 2s.
+ </p>
+ <p>
+ Because for historical reasons, SVG tiny 1.2 has two fragment identifiers.
+ It is recommended, that xml:id is used and not only id. As a consequence
+ it is possible to have two different identifier values for one element.
+ In such a case, id is skipped and only xml:id has to be choosen.
+
+ In this test the height of the blue rectangle is set to another value. This is compared
+ with a set animation of another red rectangle, having the same value for xml:id and
+ id. The blue rectangle has to cover always the red one. If something red is visible,
+ an error is occured.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-218-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <set xlink:href="#rect" attributeName="height" to="150" begin="2s" />
+
+ <set xlink:href="#dummy" attributeName="height" to="50" begin="2s" />
+ <set xlink:href="#dummy" attributeName="width" to="50" begin="4s" />
+
+ <set xlink:href="#cp" attributeName="height" to="150" begin="2s" />
+ <set xlink:href="#cid" attributeName="height" to="150" begin="2s" />
+ <set xlink:href="#cxmlid" attributeName="height" to="150" begin="2s" />
+
+ <set xlink:href="#a" attributeName="height" to="150" begin="2s" />
+ <set xlink:href="#cpba" attributeName="height" to="150" begin="2s" />
+
+ <set xlink:href="#b" attributeName="width" to="150" begin="2s" />
+ <set xlink:href="#cpab" attributeName="width" to="150" begin="2s" />
+ </defs>
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <rect id="cp" xml:id="cp" x="180" y="140" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="#600" stroke-width="20" />
+ <rect xml:id="cid" x="180" y="140" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="#a00" stroke-width="20" />
+ <rect xml:id="cxmlid" x="180" y="140" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="#f44" stroke-width="20" />
+
+ <rect id="dummy" xml:id="rect" x="180" y="140" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="blue" stroke-width="20" />
+
+
+ <rect id="cpab" xml:id="cpab" x="310" y="30" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="red" stroke-width="20" />
+
+ <rect id="a" xml:id="b" x="310" y="30" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="blue" stroke-width="20" />
+
+
+ <rect id="cpba" xml:id="cpba" x="20" y="30" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="red" stroke-width="20" />
+
+ <rect id="b" xml:id="a" x="20" y="30" rx="50" ry="50" width="100" height="100"
+ fill="none" stroke="blue" stroke-width="20" />
+
+ <g id="myText" xml:id="myText" font-size="12" stroke="none">
+ <text x="300" y="285">xml:id or id?</text>
+ <text x="300" y="300">identifiy the animated element</text>
+ <text x="300" y="320">red=wrong </text>
+ <text x="300" y="340">timing: set at 2s</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-219-t.png b/test/svg/svg1.2/svg/animate-elem-219-t.png
new file mode 100644
index 0000000..1a8bff4
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-219-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-219-t.svg b/test/svg/svg1.2/svg/animate-elem-219-t.svg
new file mode 100644
index 0000000..62a30ef
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-219-t.svg
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="DOH" desc="Identify the attributeType and the priority of an animation." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-219-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Identify the attributeType and the priority of an animation.
+ </p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ With the top triangle is tested, that the points attribute of a
+ polygon is animated using attributeType auto or XML and
+ is not animated if CSS is used, because there is no CSS property
+ points applicable for the polygon element.
+ </p>
+ <p>
+ The bottom triangles test the priority for an animation with
+ attributeType CSS or auto over an XML animation, all for the
+ stroke attribute. Even if the attributeType is completely ignored,
+ the priority should still work for the bottom right triangle,
+ because the priority is set here with a later begin.
+ </p>
+ <p>
+ In all cases the coloring or positioning of elements is choosen in
+ such a way, that normally not visible lower priority or not
+ applicable animations are indicated with a red stroke,
+ higher priority or applicable animations with a blue stroke
+ or an animation in the blue range.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-219-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+
+ <animate xlink:href="#bluetestp1"
+ attributeName="points"
+ attributeType="auto"
+ from="10,10 110,10 110,110"
+ to="10,110 110,110 10,10"
+ dur="5s"
+ fill="freeze" />
+ <animate xlink:href="#redcomparep1"
+ attributeName="points"
+ attributeType="XML"
+ from="10,10 110,10 110,110"
+ to="10,110 110,110 10,10"
+ dur="5s"
+ fill="freeze" />
+ <animate xlink:href="#redcomparep0"
+ attributeName="points"
+ from="10,10 110,10 110,110"
+ to="10,110 110,110 10,10"
+ dur="5s"
+ fill="freeze" />
+
+ <animate xlink:href="#redcomparep1"
+ attributeName="points"
+ attributeType="CSS"
+ to="10,10 110,10 110,110"
+ from="10,110 110,110 10,10"
+ begin="5s"
+ dur="5s"
+ fill="freeze" />
+
+ <animate xlink:href="#test1"
+ attributeName="stroke"
+ attributeType="CSS"
+ from="#008"
+ to="#88f"
+ dur="10s"
+ fill="freeze" />
+ <animate xlink:href="#test1"
+ attributeName="stroke"
+ attributeType="XML"
+ from="#800"
+ to="#f44"
+ dur="6s"
+ begin="2s"
+ fill="freeze" />
+
+ <animate xlink:href="#test2"
+ attributeName="stroke"
+ attributeType="auto"
+ from="#008"
+ to="#88f"
+ dur="10s"
+ fill="freeze" />
+ <animate xlink:href="#test2"
+ attributeName="stroke"
+ attributeType="XML"
+ from="#800"
+ to="#f44"
+ dur="6s"
+ begin="2s"
+ fill="freeze" />
+
+ <animate xlink:href="#test3"
+ attributeName="stroke"
+ attributeType="auto"
+ from="#008"
+ to="#88f"
+ dur="6s"
+ begin="2s"
+ fill="freeze" />
+ <animate xlink:href="#test3"
+ attributeName="stroke"
+ attributeType="XML"
+ values="#008;#800;#f44;#88f"
+ calcMode="discrete"
+ dur="10s"
+ fill="freeze" />
+
+ </defs>
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g fill="none" stroke-width="10" stroke-linejoin="bevel">
+ <g transform="translate(190,25)">
+ <polygon id="redcomparep0" xml:id="redcomparep0" points="20,20 120,20 120,120" stroke="#800" />
+ <polygon id="redcomparep1" xml:id="redcomparep1" points="20,20 120,20 120,120" stroke="#f00" />
+ <polygon id="bluetestp1" xml:id="bluetestp1" points="20,20 120,20 20,120" stroke="#00f" />
+ </g>
+ <g>
+ <polygon id="test1" xml:id="test1" points="50,200 150,200 150,300" stroke="#f00" />
+ <polygon id="test2" xml:id="test2" points="200,200 200,300 300,300" stroke="#f00" />
+ <polygon id="test3" xml:id="test3" points="300,200 400,200 400,300" stroke="#f00" />
+ </g>
+ </g>
+
+ <g id="myText" xml:id="myText" font-size="12" stroke="none">
+ <text x="10" y="50">attributeType and priority</text>
+ <text x="10" y="70">red=wrong </text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-22-t.png b/test/svg/svg1.2/svg/animate-elem-22-t.png
new file mode 100644
index 0000000..c37f9fb
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-22-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-22-t.svg b/test/svg/svg1.2/svg/animate-elem-22-t.svg
new file mode 100644
index 0000000..8462452
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-22-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="JF" desc="Test which verifies that the basic facilities of declarative animation are working." status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: animate-elem-22-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test which verifies that the basic facilities of declarative animation are working.</p>
+ <p>This test uses the following element : 'animate'</p>
+ <p>The test is a nine second animation with no repeats. It shows a rectangle growing from small to big.</p>
+ <p>
+ The file includes various guides that can be used to verify the correctness of the animation. Outlines exist for
+ the rectangle size and location at times 0s, 3s and 9s.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-22-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Guide objects to show where the animation elements belong at which time -->
+ <g font-size="12">
+ <text x="200" y="131">Yellow rect at time 0s</text>
+ <rect x="200" y="135" width="50" height="50" fill="none" stroke="black" />
+ <text x="141.6666" y="102.6666">Yellow rect at time 3s</text>
+ <rect x="141.6666" y="106.6666" width="166.6666" height="111.6666" fill="none" stroke="rgb(0,0,255)" />
+ <text x="25" y="46">Yellow rect at time 9s</text>
+ <rect x="25" y="50" width="400" height="240" fill="none" stroke="rgb(0,0,255)" />
+ </g>
+ <rect xml:id="RectElement" x="200" y="135" width="50" height="50" fill="rgb(255,255,0)" fill-opacity=".5">
+ <animate attributeName="x" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="200" to="25" />
+ <animate attributeName="y" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="135" to="50" />
+ <animate attributeName="width" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="50" to="400" />
+ <animate attributeName="height" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="50" to="240" />
+ </rect>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-221-t.png b/test/svg/svg1.2/svg/animate-elem-221-t.png
new file mode 100644
index 0000000..5626ebb
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-221-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-221-t.svg b/test/svg/svg1.2/svg/animate-elem-221-t.svg
new file mode 100644
index 0000000..181c07c
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-221-t.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="DOH" desc="Correct timing with begin, end, dur, fill, max." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: animate-elem-221-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Correct timing with begin, end, dur, fill, max.
+ </p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ Simple from to animations for cx and cy of a blue stroked
+ circle are stopped with max attributes.
+ The gray path gives the correct trajectory.
+ If the red center of the circle becomes visible, an error is
+ occured.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-221-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g transform="scale(0.5)">
+ <circle cx="100" cy="100" r="40"
+ stroke="#00f" stroke-width="40"
+ fill="#f00">
+
+ <animate id="a1" xml:id="a1"
+ attributeName="cy"
+ attributeType="XML"
+ from="100"
+ to="2100"
+ dur="10s"
+ end="a1.begin+6s"
+ max="2.5s"
+ fill="remove" />
+
+ <animate
+ attributeName="cx"
+ attributeType="XML"
+ from="100"
+ to="1100"
+ begin="1s"
+ dur="10s"
+ end="a1.end+6s"
+ max="7.5s"
+ fill="freeze" />
+ </circle>
+ <path fill="none" stroke-width="40"
+ stroke="#888" stroke-linecap="round" stroke-linejoin="round"
+ d="M100,100 L100, 300 250,600 M250,100 L850,100"
+ />
+ </g>
+
+ <g id="myText" xml:id="myText" font-size="12" stroke="none">
+ <text x="250" y="200">begin, end, dur, max</text>
+ <text x="250" y="220">red=wrong </text>
+ <text x="250" y="240">circle not centered</text>
+ <text x="250" y="255">below gray path=wrong </text>
+ <text x="250" y="275">no animation=wrong </text>
+ </g>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-222-t.png b/test/svg/svg1.2/svg/animate-elem-222-t.png
new file mode 100644
index 0000000..f14f212
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-222-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-222-t.svg b/test/svg/svg1.2/svg/animate-elem-222-t.svg
new file mode 100644
index 0000000..7938643
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-222-t.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="DOH" desc="Correct timing with begin, end, dur, fill, min." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: animate-elem-222-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Correct timing with begin, end, dur, fill, min.
+ </p>
+ <p>
+ The main indication for a failed test is the appearance of red.
+ </p>
+ <p>
+ Simple from to animations for cx and cy of a blue stroked
+ circle are used with begin, dur, end, fill and min attributes and
+ correlated with syncbase values.
+ This is compared with simple animateMotion with the
+ same trajectory and timing.
+ The related red circle is always
+ covered by the blue stroke circle.
+ The gray path gives the correct trajectory.
+ </p>
+ <p>
+ The test is passed if the blue circle follows the defined path.
+ If part of the red circle becomes visible, the test is failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-222-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+
+ <g transform="translate(120,0) scale(0.36)">
+ <circle cx="0" cy="0" r="90" fill="#f00">
+ <title>red comparison using animateMotion</title>
+ <animateMotion
+ from="100,100"
+ to="900,100"
+ dur="5s"
+ fill="freeze" />
+ <animateMotion
+ values="100,100"
+ begin="5s"
+ fill="freeze" />
+ <animateMotion
+ from="100,100"
+ to="100,900"
+ begin="10s"
+ dur="5s"
+ fill="freeze" />
+ <animateMotion
+ from="100,900"
+ to="900,900"
+ begin="20s"
+ dur="5s"
+ fill="freeze" />
+ </circle>
+
+
+
+
+
+
+ <circle cx="100" cy="100" r="60" stroke="#00f" stroke-width="60" fill="#f00">
+ <title>blue test using from-to animate with begin, end, dur, min, fill</title>
+ <animate id="a1" xml:id="a1"
+ attributeName="cx"
+ attributeType="XML"
+ from="100"
+ to="900"
+ dur="5s"
+ end="2.5s"
+ min="10s"
+ fill="remove" />
+
+ <animate id="a2" xml:id="a2"
+ attributeName="cy"
+ attributeType="XML"
+ from="100"
+ to="900"
+ begin="a1.end"
+ dur="5s"
+ end="a1.end+2.5s"
+ min="10s"
+ fill="freeze" />
+
+ <animate
+ attributeName="cx"
+ attributeType="XML"
+ from="100"
+ to="900"
+ begin="a2.end"
+ dur="5s"
+ fill="freeze" />
+ </circle>
+
+
+ <path fill="none" stroke-width="60"
+ stroke="#888" stroke-linecap="round" stroke-linejoin="round"
+ d="M100,100 L900, 100 M100, 100 L100,900 900,900" />
+ </g>
+
+ <g id="myText" xml:id="myText" font-size="12" stroke="none">
+ <text x="10" y="50">begin, end, dur, min</text>
+ <text x="10" y="70">red=wrong </text>
+ </g>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-225-t.png b/test/svg/svg1.2/svg/animate-elem-225-t.png
new file mode 100644
index 0000000..6f2675b
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-225-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-225-t.svg b/test/svg/svg1.2/svg/animate-elem-225-t.svg
new file mode 100644
index 0000000..e18811b
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-225-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test error handling for the begin attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-225-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test verifies that error handling for the begin attribute is working.
+ An error in the begin-value-list means that the attribute as a whole is in error, and
+ that is the same as if the value was set to 'indefinite'.
+ </p>
+ <p>
+ There should be three green rects visible. If any of them turns red the test has failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-225-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(80 100)">
+ <rect fill="green" width="100" height="100">
+ <set xml:id="a" begin="1s; +-2s; 3s" attributeName="fill" to="red"/>
+ </rect>
+
+ <rect fill="green" x="110" width="100" height="100">
+ <set xml:id="b" begin="1++s" attributeName="fill" to="red"/>
+ </rect>
+
+ <rect fill="green" x="220" width="100" height="100">
+ <set xml:id="c" begin=".7s" attributeName="fill" to="red"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-226-t.png b/test/svg/svg1.2/svg/animate-elem-226-t.png
new file mode 100644
index 0000000..67e3e8a
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-226-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-226-t.svg b/test/svg/svg1.2/svg/animate-elem-226-t.svg
new file mode 100644
index 0000000..fc6e581
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-226-t.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="Test resolving of namespace names in animations" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: animate-elem-226-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The test is passed if you see a large swirly blue image, outlined in green. Below,
+ two smaller copies also outlined in green. Below that, a thick red outline that does
+ not have an image inside it. All three blue images with green outlines animate over
+ ten seconds, alternating between a blue and a pink image.
+ The animations all finish at the same time and display the pink image thereafter.
+ </p>
+ <p>
+ This tests the resolving of QNames in the attributeName attribute value. The
+ attribute tested is href, in the XLink namespace.
+ </p>
+ <p>
+ If an image is displayed on top of the red rectangle, or if the large image is not shown, or a
+ purple image with 'FAIL' is shown rather than blue, the implementation is using <em>magic prefixes</em>
+ and is only looking for the string 'xlink:href' rather than following the Namespaces in
+ XML specification.
+ </p>
+ <p>
+ If the right-most of the two small images animates but the left-most does not,
+ the implementation is only handling animation elements that are a direct child of
+ the element to be animated, and does not implement animation specified by an
+ XLink href. In that case, the large image will not animate either, but this does
+ not necessarily mean that namespace resolution is incorrect. (It does mean that
+ the test is failed, however).
+ </p>
+ <p>
+ If the two small images animate correctly but the large one does not, then
+ resolution of QNames in the 'attributeName' attribute is not following the
+ Namespaces in XML specification as required by the SVG specification.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-226-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+
+ <!-- outlines for elements that should display (green) and should not (red) -->
+ <g stroke-width="4" fill="none">
+ <rect stroke="green" x="35" y="50" width="410" height="160"/>
+ <rect stroke="green" x="280" y="260" width="82" height="32"/>
+ <rect stroke="green" x="380" y="260" width="82" height="32"/>
+ <rect stroke="red" x="380" y="310" width="82" height="32"/>
+ </g>
+
+ <!-- at the point of definition, the QName a:href resolves to the namespace name "http://www.w3.org/1999/xlink" and the local name "href" -->
+ <g xmlns:a="http://www.w3.org/1999/xlink">
+ <animate attributeName="a:href" xlink:href="#foo" dur="2s" repeatCount="5" to="../images/pinksquidj.png" fill="freeze"/>
+ </g>
+ <!-- if the initial blue image is not shown, or if a purple image is shown,
+ the implementation relies on magic prefixes and is broken.
+ if the animation does not happen, the implementation is not resolving QNames to
+ namespace names in the correct way. -->
+ <g xmlns:b="http://www.w3.org/1999/xlink" xmlns:xlink="http://example.net/bar">
+ <image xml:id="foo" b:href="../images/bluesquidj.png" xlink:href="../images/purplesquidj.png"
+ x="35" y="50" width="410" height="160"/>
+ </g>
+
+ <g>
+ <animate attributeName="xlink:href" to="../images/pinksquidj.png" dur="2s"
+ repeatCount="5" fill="freeze" xlink:href="#bar"/>
+ <image xml:id="bar" xlink:href="../images/bluesquidj.png" x="280" y="260" width="82" height="32"/>
+ </g>
+
+ <!-- test that simple animation with the most common prefix and with the
+ animation element as a child of the target element, works -->
+ <g>
+ <image xlink:href="../images/bluesquidj.png" x="380" y="260" width="82" height="32">
+ <animate attributeName="xlink:href" to="../images/pinksquidj.png" dur="2s"
+ repeatCount="5" fill="freeze"/>
+ </image>
+ </g>
+ <!-- test for magic prefixes; the image below should not display -->
+ <g xmlns:xlink="http://example.org/foo">
+ <image xlink:href="../images/bluesquidj.png" x="380" y="310" width="82" height="32"/>
+ </g>
+
+ <text x="35" y="280">QName in attributeName</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/animate-elem-227-t.png b/test/svg/svg1.2/svg/animate-elem-227-t.png
new file mode 100644
index 0000000..60bbe76
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-227-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-227-t.svg b/test/svg/svg1.2/svg/animate-elem-227-t.svg
new file mode 100644
index 0000000..ef0b9f3
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-227-t.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="test animateColor with currentColor, inherit and none" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: animate-elem-227-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
+ xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests animateColor with the values currentColor, inherit and none. The test is
+ passed if:
+ </p>
+ <ul>
+ <li>
+ <p>the four circles at the left animate smoothly from yellow to green</p>
+ </li>
+ <li>
+ <p>
+ the circle at the top right appears at 2.5 seconds
+ (discrete animation), with a green fill
+ </p>
+ </li>
+ <li>
+ <p>
+ the circle at the bottom right (with a green fill)
+ disappears at 2.5 seconds (discrete animation)
+ </p>
+ </li>
+ </ul>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-227-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="330" y="40" width="120" height="230" fill="#FDD" rx="10"/>
+ <circle r="50" cx="90" cy="100" fill="currentColor" color="yellow">
+ <animateColor attributeName="fill" dur="5s" to="green" fill="freeze"/>
+ </circle>
+ <g fill="yellow">
+ <circle r="50" cx="240" cy="100" fill="inherit">
+ <animateColor attributeName="fill" dur="5s" to="green" fill="freeze"/>
+ </circle>
+ </g>
+ <circle r="50" cx="390" cy="100" fill="none">
+ <animateColor attributeName="fill" dur="5s" to="green" fill="freeze"/>
+ </circle>
+
+ <circle r="50" cx="90" cy="220" fill="yellow" color="green">
+ <animateColor attributeName="fill" dur="5s" to="currentColor" fill="freeze"/>
+ </circle>
+ <g fill="green">
+ <circle r="50" cx="240" cy="220" fill="yellow">
+ <animateColor attributeName="fill" dur="5s" to="inherit" fill="freeze"/>
+ </circle>
+ </g>
+ <circle r="50" cx="390" cy="220" fill="yellow">
+ <animateColor attributeName="fill" dur="5s" to="none" fill="freeze"/>
+ </circle>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-23-t.png b/test/svg/svg1.2/svg/animate-elem-23-t.png
new file mode 100644
index 0000000..99d7823
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-23-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-23-t.svg b/test/svg/svg1.2/svg/animate-elem-23-t.svg
new file mode 100644
index 0000000..67b31be
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-23-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test which verifies that the basic facilities of declarative animation are working." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-23-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test which verifies that the basic facilities of declarative animation are working.</p>
+ <p>This test uses the following elements : 'set', and 'animateColor</p>
+ <p>The test is a nine second animation with no repeats. It shows a circle changing color from 3s to 9s.</p>
+ <p>
+ The file includes various guides that can be used to verify the correctness of the animation. Boxes on the left
+ show the correct circle color values at times 3s, 6s and 9s.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-23-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Guide objects to show where the animation elements belong at which time -->
+ <g font-size="12">
+ <text x="15" y="55">Color at 3s</text>
+ <rect x="15" y="60" width="30" height="30" />
+ <circle cx="30" cy="75" r="10" fill="rgb(0,0,255)" />
+ <text x="15" y="145">Color at 6s</text>
+ <rect x="15" y="150" width="30" height="30" />
+ <circle cx="30" cy="165" r="10" fill="rgb(64,0,127)" />
+ <text x="15" y="235">Color at 9s</text>
+ <rect x="15" y="240" width="30" height="30" />
+ <circle cx="30" cy="255" r="10" fill="rgb(128,0,0)" />
+ </g>
+ <g>
+ <!-- The following illustrates the use of the 'set', and 'animateColor' elements. The 'text' element below starts off hidden (i.e., invisible). At 3 seconds, it: * becomes visible * changes color from blue to dark red -->
+ <rect x="150" y="50" width="240" height="240" stroke="black" fill="black" />
+ <circle cx="270" cy="170" r="110" visibility="hidden">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="3s" dur="6s" fill="freeze" />
+ <animateColor attributeName="fill" attributeType="CSS" from="rgb(0,0,255)" to="rgb(128,0,0)" begin="3s" dur="6s" fill="freeze" />
+ </circle>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-24-t.png b/test/svg/svg1.2/svg/animate-elem-24-t.png
new file mode 100644
index 0000000..084d07a
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-24-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-24-t.svg b/test/svg/svg1.2/svg/animate-elem-24-t.svg
new file mode 100644
index 0000000..5c30de9
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-24-t.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test which verifies that the basic facilities of declarative animation are working." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-24-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test which verifies that the basic facilities of declarative animation are working.</p>
+ <p>This test uses the following elements : 'animateMotion' and 'animateTransform'</p>
+ <p>
+ The test is a nine second animation with no repeats. It shows the text string "It's alive" moving, rotating and
+ growing from time 3s to 9s.
+ </p>
+ <p>
+ The file includes various guides that can be used to verify the correctness of the animation. Pale blue guides
+ exist for the text size, location and orientation at times 3s, 6s and 9s.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-24-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="MyFont" horiz-adv-x="416">
+ <font-face font-family="MyFont" units-per-em="1000" panose-1="2 0 0 6 3 0 0 2 0 4" ascent="700" descent="-127" alphabetic="0" />
+ <missing-glyph horiz-adv-x="233" />
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="233" />
+ <glyph unicode="I" glyph-name="I" horiz-adv-x="330" d="M30 700V550H90V150H30V0H300V150H240V550H300V700H30Z" />
+ <glyph unicode="t" glyph-name="t" horiz-adv-x="417" d="M5 550V410H137V0H280V410H412V550H5Z" />
+ <glyph unicode="s" glyph-name="s" horiz-adv-x="468" d="M34 550V410V218H291V120H34V0H434V338H177V430H434V550H34Z" />
+ <glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="198" d="M35 700L73 483H125L163 700H35Z" />
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="435" d="M71 550L3 0H143L154 119H282L293 0H433L365 550H71ZM168 259L182 410H254L268 259H168Z" />
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="435" d="M37 0H425V130H180V550H37V410V0Z" />
+ <glyph unicode="i" glyph-name="i" horiz-adv-x="217" d="M37 550V410V0H180V550H37Z" />
+ <glyph unicode="v" glyph-name="v" horiz-adv-x="430" d="M73 0H357L430 550H282L235 140H195L148 550H0L19 410L73 0Z" />
+ <glyph unicode="e" glyph-name="e" horiz-adv-x="442" d="M37 550V410V0H419V130H180V210H299V340H180V420H419V550H37Z" />
+ <glyph unicode="!" glyph-name="exclam" horiz-adv-x="237" d="M46 145V0H191V145H46ZM58 220H179L194 700H43L58 220Z" />
+ </font>
+ </defs>
+ <g font-size="20">
+ <text x="70" y="110">Text from 0s to 3s</text>
+ <text x="100" y="185">Text at 6s</text>
+ <text x="100" y="220">Text at 9s</text>
+ </g>
+ <!-- Guide objects to show where the animation elements belong at which time -->
+ <g font-family="MyFont" stroke="none" fill="#bee">
+ <text transform="translate(50,90) rotate(-30)" font-size="20">It's alive!</text>
+ <text transform="translate(75,180) rotate(-15)" font-size="40">It's alive!</text>
+ <text x="100" y="270" font-size="60">It's alive!</text>
+ </g>
+ <!-- Set up a new user coordinate system so that the text string's origin is at (0,0), allowing rotation and scale relative to the new origin -->
+ <g transform="translate(50,90)">
+ <!-- The following illustrates the use of the 'animateMotion', and 'animateTransform' elements. At 3 seconds, the text: * continuously moves diagonally across the viewport * rotates from -30 to zero degrees * scales by a factor of three. -->
+ <text xml:id="TextElement" x="0" y="0" font-family="MyFont" font-size="20" fill="#f22" transform="rotate(-30)">It's alive!
+ <animateMotion path="M 0 0 L 50 180" begin="3s" dur="6s" fill="freeze" />
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-30" to="0" begin="3s" dur="6s" fill="freeze" />
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1" to="3" additive="sum" begin="3s" dur="6s" fill="freeze" />
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-25-t.png b/test/svg/svg1.2/svg/animate-elem-25-t.png
new file mode 100644
index 0000000..f74ea22
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-25-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-25-t.svg b/test/svg/svg1.2/svg/animate-elem-25-t.svg
new file mode 100644
index 0000000..0c7bc07
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-25-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test animation options for specifying the target attribute/property." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-25-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test animation options for specifying the target attribute/property.</p>
+ <p>
+ The left-hand rectangle animates an XML attribute without specifying a value for 'attributeType'. The right-hand rectangle
+ animates an XML attribute and does set 'attributeType' to 'XML'.
+ </p>
+ <p>
+ The left rectangle animates its height from 100 to 50, starting at time 3 seconds and ending at 6 seconds. The right
+ rectangle animates its height from 100 to 50, starting at time 6 seconds and ending at 9 seconds.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-25-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="14" x="30" y="40">Test animation options for specifying the target attribute/property.</text>
+ <g xml:space="preserve" font-size="14" stroke-width="3" transform="translate(0,50)">
+ <text x="20" y="164">0-3 sec. </text>
+ <line x1="80" y1="160" x2="200" y2="160" fill="none" stroke="green" />
+ <text x="20" y="124">at 6 sec. </text>
+ <line x1="80" y1="120" x2="200" y2="120" fill="none" stroke="green" />
+ <rect xml:id="rect1" x="100" y="80" width="100" height="80" fill="#FFFF00" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" from="80" to="40" begin="3s" dur="3s" fill="freeze" />
+ </rect>
+ <text x="240" y="164">0-6 sec. </text>
+ <line x1="305" y1="160" x2="425" y2="160" fill="none" stroke="green" />
+ <text x="240" y="124">at 9 sec. </text>
+ <line x1="305" y1="120" x2="425" y2="120" fill="none" stroke="green" />
+ <rect xml:id="rect2" x="325" y="80" width="100" height="80" fill="#FFFF00" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" attributeType="XML" from="80" to="40" begin="6s" dur="3s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-26-t.png b/test/svg/svg1.2/svg/animate-elem-26-t.png
new file mode 100644
index 0000000..4af9010
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-26-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-26-t.svg b/test/svg/svg1.2/svg/animate-elem-26-t.svg
new file mode 100644
index 0000000..ebbd598
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-26-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test animation options for specifying the target attribute/property." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-26-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test animation options for specifying the target attribute/property.</p>
+ <p>
+ On the left, a circle animates the stroke-width property without specifying a value for 'attributeType'. On the right
+ a circle animates the stroke-width property and does set 'attributeType' to 'CSS'.
+ </p>
+ <p>For each circle, guides shows what the stroke-width looks like initially and what it looks like at the end of the animation.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-26-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <circle cx="120" cy="140" r="70" fill="none" stroke="#36e" stroke-width="1">
+ <animate attributeName="stroke-width" from="1" to="60" begin="1s" dur="4s" fill="freeze" />
+ </circle>
+ <circle cx="120" cy="140" r="40" fill="none" stroke="black" stroke-width="1" />
+ <circle cx="120" cy="140" r="70" fill="none" stroke="black" stroke-width="1" />
+ <circle cx="120" cy="140" r="100" fill="none" stroke="black" stroke-width="1" />
+ <text x="70" y="280">anim. 1</text>
+ </g>
+ <g font-family="Arial" font-size="30">
+ <circle cx="360" cy="140" r="70" fill="none" stroke="#e3a" stroke-width="1">
+ <animate attributeName="stroke-width" attributeType="CSS" from="1" to="60" begin="4s" dur="3s" fill="freeze" />
+ </circle>
+ <circle cx="360" cy="140" r="40" fill="none" stroke="black" stroke-width="1" />
+ <circle cx="360" cy="140" r="70" fill="none" stroke="black" stroke-width="1" />
+ <circle cx="360" cy="140" r="100" fill="none" stroke="black" stroke-width="1" />
+ <text x="310" y="280">anim. 2</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-27-t.png b/test/svg/svg1.2/svg/animate-elem-27-t.png
new file mode 100644
index 0000000..0d76d50
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-27-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-27-t.svg b/test/svg/svg1.2/svg/animate-elem-27-t.svg
new file mode 100644
index 0000000..42b8a68
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-27-t.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test animation options for specifying the target element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-27-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test animation options for specifying the target element.</p>
+ <p>
+ The leftmost rectangle verifies the use of the 'xlink:href' attribute to indicate the target element to be
+ animated. The rightmost rectangle verifies animating the parent of the 'animate' element (in this case, a 'rect'
+ element) (i.e., the implicit parent of the 'animate' element).
+ </p>
+ <p>
+ At time 0, two rectangles filled with red and stroked with blue appear, each with width=100 and height=200.
+ Starting at time 3 seconds and ending at time 6 seconds, the height of the leftmost rectangle decreases from 200
+ to 50. Starting at time 6 seconds and ending at time 9 seconds, the rightmost rectangle decreases from 200 to 50.
+ Annotations on the picture show the correct positions at particular times.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-27-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="16" text-anchor="middle" x="225" y="40">Test animation options for specifying the target element.</text>
+ <g xml:space="preserve" font-family="Arial" font-size="14" text-anchor="end" stroke-width="3">
+ <text x="80" y="244">0 to 3 sec. </text>
+ <line x1="80" y1="240" x2="200" y2="240" fill="none" stroke="green" />
+ <text x="80" y="124">at 6 sec. </text>
+ <line x1="80" y1="120" x2="200" y2="120" fill="none" stroke="green" />
+ <rect xml:id="rect1" x="100" y="80" width="100" height="160" fill="red" stroke="blue" stroke-width="4" />
+ <animate xlink:href="#rect1" attributeName="height" attributeType="XML" from="160" to="40" begin="3s" dur="3s" fill="freeze" />
+ <text x="305" y="244">0 to 6 sec. </text>
+ <line x1="305" y1="240" x2="425" y2="240" fill="none" stroke="green" />
+ <text x="305" y="124">at 9 sec. </text>
+ <line x1="305" y1="120" x2="425" y2="120" fill="none" stroke="green" />
+ <rect xml:id="rect2" x="325" y="80" width="100" height="160" fill="red" stroke="blue" stroke-width="4">
+ <animate attributeName="height" attributeType="XML" from="160" to="40" begin="6s" dur="3s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-28-t.png b/test/svg/svg1.2/svg/animate-elem-28-t.png
new file mode 100644
index 0000000..df29f5e
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-28-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-28-t.svg b/test/svg/svg1.2/svg/animate-elem-28-t.svg
new file mode 100644
index 0000000..fc41580
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-28-t.svg
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="BB" desc="Test inheritance of animated properties." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-28-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test inheritance of animated properties.</p>
+ <p>
+ A yellow happy face should be displayed. The stroke for the smile and yellow circle are both animated, the stroke
+ goes from "#F1E900" to "#FF0000".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-28-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g stroke="#F1E900" fill="#F1E900" stroke-width="5">
+ <circle cx="240" cy="180" r="150" />
+ <!--circle cx="240" cy="180" r="150" stroke-opacity=".5"/-->
+ <g xml:id="eyes" stroke="#000077">
+ <path d="M260 131c0,-15 12,-28 28,-28 15,0 27,13 27,28 0,15 -12,28 -27,28 -16,0 -28,-13 -28,-28z" />
+ <path d="M165 131c0,-15 12,-28 28,-28 15,0 27,13 27,28 0,15 -12,28 -27,28 -16,0 -28,-13 -28,-28z" />
+ </g>
+ <path d="M151 227c46,52 138,52 184,0" />
+ <animate attributeName="stroke" attributeType="CSS" begin="0s" dur="4s" fill="freeze" from="#F1E900" to="#FF0000" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-29-t.png b/test/svg/svg1.2/svg/animate-elem-29-t.png
new file mode 100644
index 0000000..7d2de93
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-29-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-29-t.svg b/test/svg/svg1.2/svg/animate-elem-29-t.svg
new file mode 100644
index 0000000..8d3a244
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-29-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="See if animation, tiggered by links, works." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-29-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test compositing of animated fill opacity.</p>
+ <p>
+ The assumption is that you will first click on "fade in" and then click on "fade out", each exactly once. The
+ first time you select the link 'fade in', you should see a red square appearing, gradually and smoothly fading
+ from zero to 100% opacity over the course of three seconds. This square is in front of and thus obscures the
+ lower left circle, but is behind the upper right circle which is thus is composited on top of the animated red
+ square. Then, when you click on "fade out", the red square will gradually disappear, smoothly fading from 100%
+ to zero opacity over the course of three seconds.
+ </p>
+ <p>
+ The rendered picture should match the reference image, (except for possible variations in the labelling text
+ (per CSS2 rules)) after activating the link on the fade-in button the first time and waiting three seconds for
+ the animation to compete. The picture should remain looking the same way indefinitely, until another link is
+ activated.
+ </p>
+ <p>
+ With the second click on "fade in", however, the behavior might be different. In the case of having a first
+ click on "fade in", waiting three seconds, and then immediately perform a first click on "fade out", waiting
+ three seconds, and then immediately perform a second click on "fade in", you should see the following. After
+ the first click on "fade in", the red square goes from zero to 100% opacity. After the first click on "fade out",
+ the red square goes from 100% to zero opacity. After the second click on "fade in", however, the red square goes
+ from zero to 100% opacity, and then goes back from 100% to zero opacity. This is because of the hyperlinking rules
+ as they relate to resolved start times in the SMIL 2.1 specification.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-29-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle stroke="#666" stroke-width="30" fill="none" cx="100" cy="200" r="60" />
+ <rect xml:id="pink" x="20" y="20" width="180" height="180" fill="#f00" fill-opacity="0">
+ <animate xml:id="fadein" attributeName="fill-opacity" attributeType="auto" from="0" to="1" begin="indefinite" dur="3s" fill="freeze" />
+ <animate xml:id="fadeout" attributeName="fill-opacity" attributeType="auto" from="1" to="0" begin="indefinite" dur="3s" fill="freeze" />
+ </rect>
+ <circle stroke="#666" stroke-width="20" fill="none" cx="200" cy="110" r="80" />
+ <g xml:id="buttons">
+ <a xlink:href="#fadein">
+ <rect x="320" y="0" width="160" height="180" fill="green" />
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="90">Fade in</text>
+ </a>
+ <a xlink:href="#fadeout">
+ <rect x="320" y="180" width="160" height="180" fill="maroon" />
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="280">Fade out</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-30-t.png b/test/svg/svg1.2/svg/animate-elem-30-t.png
new file mode 100644
index 0000000..e61b1b0
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-30-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-30-t.svg b/test/svg/svg1.2/svg/animate-elem-30-t.svg
new file mode 100644
index 0000000..da4125a
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-30-t.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Tests various types of animations on referenced elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-30-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to test animated <use> where the referenced <defs> also is animated.</p>
+ <p>
+ The test shows 6 different elements, each element defined in a <defs> and referenced with a <use>.
+ All the elements are animated between 0-3 seconds. The expected animation transform is indicated with a gray
+ silhouette showing the border values (0 and 3 seconds) and an arrow indicating the movement in between. For the
+ two elements with a color animation, the colors goes from white to blue (the same blue color used for all
+ elements).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-30-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <line xml:id="lineID" x1="30" y1="50" x2="10" y2="10" stroke="rgb(16, 93, 140)" stroke-width="3">
+ <animate attributeName="x1" from="30" to="90" begin="0" dur="3" fill="freeze" />
+ </line>
+ </defs>
+ <defs>
+ <rect xml:id="rectID" x="10" y="60" width="60" height="20" fill="blue" stroke="black" stroke-width="2">
+ <animateColor attributeName="fill" from="white" to="rgb(16, 93, 140)" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="height" from="20" to="40" begin="0" dur="3" fill="freeze" />
+ </rect>
+ </defs>
+ <defs>
+ <circle xml:id="circleID" cx="20" cy="100" r="10" fill="rgb(16, 93, 140)" stroke="black">
+ <animate attributeName="cy" from="100" to="130" begin="0" dur="3" fill="freeze" />
+ <animateTransform attributeName="transform" type="scale" from="1" to="1.5" additive="sum" begin="0" dur="3" fill="freeze" />
+ </circle>
+ </defs>
+ <defs>
+ <polyline xml:id="polylineID" fill="none" stroke="rgb(16, 93, 140)" stroke-width="2" points="200,20 200,40 220,40 220,60">
+ <animateMotion path="M 0 0 l 0 100" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="stroke-width" from="2" to="9" begin="0" dur="3" fill="freeze" />
+ </polyline>
+ </defs>
+ <defs>
+ <polygon xml:id="polygonID" fill="green" stroke="black" points="240,20 240,40 260,40 260,20" stroke-width="2">
+ <animate attributeName="fill" from="white" to="rgb(16, 93, 140)" begin="0" dur="3" fill="freeze" />
+ </polygon>
+ </defs>
+ <defs>
+ <image xml:id="imageID" x="230" y="20" width="40" height="80" xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/4RX+RXhpZgAASUkqAAgAAAAJAA8BAgAGAAAAegAAABABAgAXAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAoAAAABsBBQABAAAAqAAAACgBAwABAAAAAgAAADIBAgAUAAAAsAAAABMCAwABAAAAAQAAAGmHBAABAAAAxAAAAGYFAABDYW5vbgBDYW5vbiBESUdJVEFMIElYVVMgMzAwAAAAAAAAAAAAALQAAAABAAAAtAAAAAEAAAAyMDAyOjAxOjE1IDA0OjQyOjU4ABsAmoIFAAEAAABWAwAAnYIFAAEAAABeAwAAAJAHAAQAAAAwMjEwA5ACABQAAAAOAgAABJACABQAAAAiAgAAAZEHAAQAAAABAgMAApEFAAEAAAA+AwAAAZIKAAEAAABGAwAAApIFAAEAAABOAwAABJIKAAEAAABmAwAABZIFAAEAAABuAwAABpIFAAEAAAB2AwAAB5IDAAEAAAAFAAAACZIDAAEAAAAAAAAACpIFAAEAAAB+AwAAfJIHAJoBAACGAwAAhpIHAAgBAAA2AgAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqADAAEAAABABgAAA6ADAAEAAACwBAAABaAEAAEAAAAwBQAADqIFAAEAAAAgBQAAD6IFAAEAAAAoBQAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAAAKMHAAEAAAADAAAAAAAAADIwMDI6MDE6MTUgMDQ6NDI6NTgAMjAwMjowMToxNSAwNDo0Mjo1OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAPUAAAAgAAAA1QAAACAAAAABAAAAyAAAAGQAAAAKAAAAAAAAAAMAAACs3QIAAAABAP//AADoAwAAMAEAACAAAAAMAAEAAwAmAAAAHAQAAAIAAwAEAAAAaAQAAAMAAwAEAAAAcAQAAAQAAwAaAAAAeAQAAAAAAwAGAAAArAQAAAAAAwAEAAAAuAQAAAYAAgAgAAAAwAQAAAcAAgAYAAAA4AQAAAgABAABAAAAcVYQAAkAAgAgAAAA+AQAABAABAABAAAAAAAEAQ0AAwAEAAAAGAUAAAAAAABMAAIAAAADAAEAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAwABAAEwAAD/////BgKtACAAdADVAP//AAAAAAAAAAAAAP//AABABkAGAgAwAdMAngAAAAAAAAAAADQAAACPAD8B1QD1AAAAAAAAAAEAAwAAAAAAAAAHMAAAAAAAAAAA//8AANUA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElNRzpESUdJVEFMIElYVVMgMzAwIEpQRUcAAAAAAAAARmlybXdhcmUgVmVyc2lvbiAxLjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAPQA9AD0AABqGADOAAAAgE8SAJsAAAAEAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAEQAwABAAAAQAYAAAIQAwABAAAAsAQ
AAAAAAAAGAAMBAwABAAAABgAAABoBBQABAAAAtAUAABsBBQABAAAAvAUAACgBAwABAAAAAgAAAAECBAABAAAA9AUAAAICBAABAAAA7g8AAAAAAAC0AAAAAQAAALQAAAABAAAA//////////////////////////////////////////////////9//////////////9j/2wCEAAkGBggGBQkIBwgKCQkLDRYPDQwMDRwTFRAWIR0jIiEcIB8kKTQsJCcxJx4fLT0tMTY3Ojo6Iio/RD44QjM3OTYBCQkJDAoMFAwMFA8KCgoPGhoKChoaTxoaGhoaT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT//AABEIAHgAoAMBIQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOxApcV7
J5goUngDNIVweaBC80oYjvRYLseszAY60FjI3c1HLZ3L5r6DjG46jFRFjTVmJtoA5qW3j3vuIBAokuVNgnzOxpKVA5xUNyY3TB4Fc0b3Oh2sZbqAxx0pMV2pnG9xNtJincA20hWmBMBT1XJrJuxaLf7pU4wKqScuayp3vqaTtbQABjmnRJunQdiRVtuz8kQlsa0kUUg+ZFP4VVeyUNuiJB9DXn060oabx6o7Z0oy12l3I5pMDawwcVTIrupbX6PY46u9uq3ExT0kZBxWrV9DNOw4zue9MZi3U0lFIbm2NwKTFUIMUmKYgxSYoAmAFP2+9Z3NLCbaTbzRcmw9baR13KpIp8ETLcpuUjnvWcqsbNXXMk9DSNOV07aX3NInFNPTmvLO8iljWVcN19az2hZZNmMkniuzC1LXg9t0c2Ihe0lv1JZrGWEZIBX1FV8V1U6iqK6+aOacHB2fyYYorQkMUmKYgxSYoEGKTFAyYCnYrM0FCM33VJ+go8mQfwN+VS5xWjaTDlk9kzSRBHGq+gpoO6ZB6mvLk7tvuz0ErK3YlkIQVAz0hkZamhlWRXIztNCdtVuDV9zRDBlBGCCKz7uyO8NCuQeoHatqFTkld/C9zOrDnj5rYYunSn7xVfqaf/Zn/TTn/drpli4p6Lm89jnjhn1dvIo3TRWt5HbGQNNICwUdQB3NGK3pVPaR5tvIyqQ5HbfzDFJitDMMUYoAlxSgVmaGlAAkCjvjNKeTXlzd5N92ehFWSXZCHmoyQjBj2qGUMkn3GojJQA0yUKGf7ozQBbtd6x4fgZ4qxmhMGGcCsjxP4ktvDGiS39yQSPljjzy79hTEcN8P7y51mbUNd1KQGSZxGrHgDP8ACPyFdtivRw1vZ6dHqcNe/P6rQcIXPRGP4UxsLJ5bEB8Z298etbc8b2ur9jLkklezt3DFGKsRLQKzLNFJULiPeofGduecfSiR/wB4qD6mvIb/ADPSQuPWqt+3lxKfV
gKT2AqmSk3E9KALUFkW+aTgelWtqhhGgx647Cj+kBI/3Pl7UwOCMijqBICGXNcj448Ax+MfLkN/NbyQqRGmA0fPcj+tMCPwz8PRpWnWcN/ePKYG83yovljL+p7nH4V1sjQWcLSyFIo0GWduAB9apSaVk7J7onlTd+q2Z5n4x+MKWxa08PKJW+610w4B/wBkd/rWr4Es7pdE/tDUpHlvb7EsjyHJ2/wj8j+tb4WN537IyxDtC3dnSYpMV6Jwkt8sktm6wSLFMynY5G7afpXkl3Y61qVyY7zVrkxkncN52kewBx+lediJuKWrSfQ76EVJvRO3Ut6zo0+p3Ed19rc3MUYRC3QADjGOhrofCGvz6bpPk61cyTXab9ryMWLDjA3f56VxKVzqcbGA/wAWdZtrly8CGLcdvm2xAx9Q2f0rc0P4lDxPKbae2t4XjXzN0UrENj/ZZRj86p/CQtzoZryKCJpZpFSNeSxPArk7z4iTC/UaMtkYUJ3SXT43n0AH86Fq7feGxq6Z8VbOWdLfVbY20zEKrwSCaMn8OR+VXbn4laFp9xLDJJcSzLkuIoSQvtk4FNiSuZU3xhtCT9i0i7nHrJIkf9TWx4Y8YxeIIpC8Is5g3+pMofH48UPa4Lsak3iTTbGyuJ7m6RI7Ztsp67T9PxqDTPG2ia7c/ZdMvBNMRu27COO55FF9ANHV9Zs9D097u+lEcSD8WPoBXhPjf4g6j4puWt4w9tYqflhBwW929aa19AMTw9aW93rlnDqEghtjMDIzdMelfREQR4lMJUxkfKV6Y9q7sK1Z9zkxKd12HbKPLrsucyRxsuuXeq25SOUKu8gPESpOPftWMblrWcLJueI/dmHI/E/1rw61R1Ja9NkevSgoR069TQVy6EoVbjiqsy3ZiO+GFXGNoEpIP47axNSgEvPNEF2trI0udqtKRkAc8bKbaaVGkpntbK383JV2W4ZcH0+7zVXttdE2vvZly4tLq8h8q5
t4pIyeVN45H/oFVR4cjwB/Zdpjtm6f/wCJpKVurHy+SLFto2m7leK3iEqHBKMTtYe9OGmafcM8hgjkdnIdjzn1pOTGoortoMIkbytNsiueCzkE/wDjpp8FobWbZb2llE57JMQf/QafN5sXL5IfPo8l4jR3SoiH5iEkLZYdCQRin2tzc6FeR3S+XIkYwX+6Rn17VUZW03RMoX12Zj+JdQufEOprcXOr26LH/q4lOQtZc2keYd0uqQMQOpQZquZ9mRZdyGDRx5+WvbfAPH3Rmuy0XXLzw/A/2cG7gJ4QPuVfy71pTquDvYmcFNWbNmx+JFoqyfb4pyxclfLjXCr2H3ucetaVt4+0W4OPOkiP/TRMfrXbHFQe90zklhpLazRyMNxZ21v5K288aHPApIb3TbW0S2iSZUUbQCCePQ15soy6pps7ozj0asgtLnTbIsIXmVDzsIOF+lWDqliwO6duTkEjpUtd0ylLzRQ1KPS9TMZkvZImiyFaNtp5x/hViyfT9Ph8q3uiUzn5jk/nQ2rWBb3Lkd/bYybhT7U4X9sDj7SnHvU6FXZS8i3NvPHHqAjMzM+4EAqSe1Q6fNp+kWotZNTEzK2Q0jYNVvsTe2uyJW16yQEC+gbHvTtN8S6PaXsk1xHFdyOVKlwMIADkA571SjZ9/IHJNb2H3niawu7xpYpEgjzxGqggD65rOnbTjayQx3yqkyjOV3EHGOxH5UW12Fdd9jMtvDmhxXsdw140qoM+U0eVc+/tTNV8PWd/J5kV4kSseALfvgZ6DNac2mxHKu5WPgm23AW+qOwZQDut2Xn04zxnFT2ng9LEiSLWbm3nGdzRWz4Ht2zS5vIfL5mja2chB+33kF1nAz5Tow/HFOm0mFoSI7xAwPyoyEjHfnH9PWpv6jS80dK8cJGdwz9aiFvHnOBXqSVzzouwvkJnBVc/SnizQ/8ALMflXPKKNVJgbCIjmMflUf2C3brEpH+7kVm4ItSGtpd
qRzBHj12CoG0mzbAMMeO3FR7MrmFGkWfCmEfhUM3hyykk3FXBPo5oVJBzsrt4QsHck+aPo/8A9aoz4K08E/vJP0P9Kr2fYnnI5PBViQQJZF/Af4VA3gi1B4nbp/cWj2TH7Qhk8GQAACZuneMCq0vhDYMpMufdf/r1SovuJ1UVz4WlLcNH9cH/ABqQeDLhjlZIPx3CmsPJ9SXWS6Cnwhfx/ceL8JmH9KP+Ea1ZD8s34i5Yf0p/Vp+TBYiPmd35eOgIoAJHBH511M50O29C4U47mnhQykBiT6BqxZqhwJTG4N9OtSrtY98+/Ws5eRcfMCgJzj2yKjaMZ64x6VCZTQ5VULyfxNIGRgR5gb2NUri0HeUj5GUcdhjpQzIBhlyvrkD+tUtfInReY37RbO2zcPTOajaKFXz5hI+uaaUkDcWRzRIVzge2BVaXYCBzitY/kZSsvmQmNQc5qSEAg7cH29K0iRIcSGGGcj2yKcANuA/Hck5NWQSzzKR8u/B6hRinIwAA+bH8qybNUSD/AH2A9MnFPDYXA5H51k0aIRkDMA0av6e1SCFduCij6VnJtFJJiGCI9ET64puVU4wc+oBqE2y7JApTdtXeD64OKcx6DJB9s1RIi5ZuCAMdQc0hWRELABiO3JNVdE2ZD+9UBinPcBj/AIUiXEj5DAoMd8mrsmTdr5jHBA+VcH1AzUTKyj69+laRsQ7kZXPynDe2KdHDGP8Alnj8K0RmxzBAOij0HSnxIsikMiqPUNVCHS28RxvJJ+tMEaRP8oOPUtmsWaIsIePf2pySgdT9NwrFo1TFNxs5YoR2waYssLO3mJHk9e+aVn0uO662BhCWyhUevz8flTiM/wCrOf8AgVRfv99i15fdcbmVcMUZiB0UgioJL64QkfZZAPUNVxSe1iJSa6MbHfSsQVtnXuS3FTfanYjfGoxxgfMavl8yObyHl02kLGcn/pkaYJJBn5MA+vGaSXdjv2RCbmYEqVXP
s1NeUsvJXPrWkUlsQ5N76EQjycb2+meKsIDj1x6CtIoiV+o/eQvfHuKA/wAvYfhVkjC0gHVQfXFRkXDYO9GI6DFYNmthn+mZz8uP9lQamjmuVA/csffgVDsylddCdLhgp3oE79aie5lxhFWQexJqeW3Urm8vkVvt8gfbIoA/3CDVhJVxlCg+oNJx82ClforoZNdXce0pFGy/3gc5pq307H96kZB7KDQoIHN9kSf2gVOFXr2KkU7+1sAB1z9Oark8xe0EXU4n6RsD9KSd4WQFhz24zTUXHzE5KXkQOY9uMNjsNtIEj2/xfTbjNap+RnZdxu1edq7f6frT0hdlyJG/4C55ql9xLEMjxcBps/gc09LknO/cfZkH+NNaAOUTyjLsY19AaUzJHncWPrmsWro1TsC38J6tge4NONxBMAFc59FJrFprbU1Ti9HoD2sLJhmbHo3SmJZwA5Bj46dqqM7kygiVJkiB+YnPbPFMa9jfcFwSPek43dxqSSsNa7mUbvLVB7tSHUHWLcYmHtkHNCh5sXP5EB1p0TAtHx6g4/lU0OqQyLlrd93q4z+tVZ9G0LnXVCyXdw5/cBMf7uaga+uQwLxIT6gYqlHzZLl5KwNcs7ZljOT6UmYznkp+JFaIhjMRqM+ac/72aljDsR+/z9GqkTYk8uRTnex+rVIszIMfOSfamB//2apR82S5eSsDXLO2ZYzk+lJmM//Y/+0O2lBob3Rvc2hvcCAzLjAAOEJJTQPtClJlc29sdXRpb24AAAAAEABIAAAAAQACAEgAAAABAAI4QklNBA0YRlggR2xvYmFsIExpZ2h0aW5nIEFuZ2xlAAAAAAQAAAAeOEJJTQQZEkZYIEdsb2JhbCBBbHRpdHVkZQAAAAAEAAAAHjhCSU0D8wtQcmludCBGbGFncwAAAAkAAAAAAAAAAAEAOEJJTQQKDkNvcHlyaWdodCBGbGFnAAAAAAEAADhCSU0nEBRKYXBhbmVzZ
SBQcmludCBGbGFncwAAAAAKAAEAAAAAAAAAAjhCSU0D9RdDb2xvciBIYWxmdG9uZSBTZXR0aW5ncwAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gXQ29sb3IgVHJhbnNmZXIgU2V0dGluZ3MAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAZHdWlkZXMAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4NVVJMIG92ZXJyaWRlcwAAAAQAAAAAOEJJTQQaBlNsaWNlcwAAAAB3AAAABgAAAAAAAAAAAAAAWgAAAHgAAAALAG8AcABlAHIAYQBfAGgAbwB1AHMAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAeAAAAFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEJJTQQREUlDQyBVbnRhZ2dlZCBGbGFnAAAAAQEAOEJJTQQUF0xheWVyIElEIEdlbmVyYXRvciBCYXNlAAAABAAAAAE4QklNBAwVTmV3IFdpbmRvd3MgVGh1bWJuYWlsAAALLwAAAAEAAABwAAAAVAAAAVAAAG5AAAALEwAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMER
EMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFQAcAMBIgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AOmAU2VPf9ETHJSDURr7GCG6BaJJ6NMeKJzdpjwTahTMkkn5pnTGunx0SvZHdKKcoMDw0lrhIjXRRrrdZu1gjkHlX2yK2DwaPyKFjQ/nQ/vDlVvvGpsDzDY9nQUT5FoPBa6FGXcSiW1uY4h2s8HxTPrex217S13gdFZiYkDY2wGwTvo2an1VMiQh5F1VjdsSeyBCUICAu7KuM1VMITQiEJoT7WMNqbapwlCNqf/Q6sBTZW95hgkjUplZxPovI5JA+5Xck+GJLVhHikAiZjWCxu8DbMnVWbX+09/xTmAQO5/ImcNCfAKpPIZ1daNiEBG66snlrWD4D8iC53igesXAGeQITbydBr5JlrkhcJDiNxaQ4D4K48V31gO9zHag9xPcKqzGfAdZpOjWjklHawVAMBkfx5KVnTwVQa4wXk+54A7dynODW1pc63Y1oLnvdDWtaBue97ifaxjfpK0
NeFx3+Md/1it6fX03peHc/DySPtmXUN8ydteJtq3W11bvfc9zP0v80pffyfvfgFnsw7Ovi5VGZQ3KxiXY9hd6NhEb2NcWNu2/mtt272fyEWFHpODlMxG0WUfZKMcMpxhbHqvrYxodfbSwv9H1Ld/p1P8A0npfzv6RR631PovQMcX9UyjW5wmrHrAddZH+ipn/AMEs2VKwM8BEXLWtdGA4ZWaGl90kJQhYN1uVh05N1P2Z17fUFBO5zGO91LbXQz9N6Wx9vt9n82jwpQbAPdjqi//R6D6xX9Qx+n+r0p9NWRuaHeqN52nT9CyW/pGrnas3602YRZZ1U15DrRcLamBpDWtLPs3t/wAE/wDnLPalaMzJqpdl0323k7R7txpDnH9J6jj9Gpuz6KakZlVjab632jtkMaQyR+bcyT6Lv/An/mJZcspHSxFOPGIjWiXSwfrP1LG6Re/qbftnWatwoZWw7Lmy30f5oNbvb+k9T+bVKr/GcW2DG6p0v7K+0hm8Pe0N3e3dtsbY13P76Fdhm1hrc/IIJgu0a4T+axzam+z+V/4IqdJtN/2V1GW2qpz2G+xrHVbBP2d9T3U/ztm36DvoKMSOui4xHd62/qfT8PGORk5NdWPUIdYXAzHthjQdz3Pj2LGx/wDGNg02usdjUuxjGwjIAytv77qXsON7/wDRttVduIwmRZYSNTLav/edK2Mf03tNl++xtRa4MhrX+19x9Khrv0aQl4JMPF23/wCMD6tsZRkOdkuGRW6yqsVDeGjcLH2TZsb/ADbm/SVGz/Gf0h5Apw7yyRNll1LC3X6fpNdY93/FrPx8pt2TkUV1PaKNgNjmQHEn3Gt30XMYpWFja33C+6QC8MYWdtdjG+kXJcfgrg8Xrx1/o7Ayx+ZWGW1WXNM/mVAWW7o+g/Z9Gt300uk/WPpfV7jX019zrGNFjvUpfUdjtGmsv/nNzv3Fy13S3041Vue4ltx/mTZVc2RB22Nqr/N3
LPtycnp4fZgMymWAij7NW4hz2Wbv0mM/32VtRBO1I4eoL0H1w+u/7GZZhdJr+09Qb7brtu6nGJ/NsI9luV/wX0Kv8KvOul+n1P6wY9vX8hxquuD8vJvl5cGje2l+jttdzw2r9yqtWG4+O3Edl2dKvrq3loabbd5MbnvcyPo7js9T8+z/AItV2ZWDW8XO6blBp9zQXOLYafcR6gc16cCQQaWEWKt9iIL/AHghweNwc2C0g67mub7dqbYV5vifWTIxqaqsa+7Bqa8PrxcmpzWF8+r7bqf55tn+Eru9Nlq1/wDnn1+gzk4+PY0Qfax7ZB/PZayx9StDmY9QQ1zy8uhBf//SC/pmKPoOIJ7Ne7+9MOnVNH85aB4ixytuDWHbMHwCeAAZPPYj+KsSxw/dH2NeM5dz9rXHTTGl14/tlI4FjSP1rI8hvn8FbDARMRroSf4Byk3cCQWkjsY5CiOOPYMgnLuWj9iuDdMy6PEkEf8AUqIx8sGRnWgdx7T/AN9WkS3ktOneFGAHTB1TeCPZdxy7uZkYXUrdhZ1S1gHGgjy42qpZ0jrTy6OruI7BzT+UPW+Tydp2nvIj/NTzXzHuHiATHyThCKDOXd5odE6wyNnUmeGrXAfDlMenfWMBv+UK3bRDY3cf5hXSOuLCP0YduMl2g/6MlRc2ppLgzbPYnUf2DuR9sI9yXd5l+P8AWVp3DMa4wRydPL3M9qGLPrQ1wAu3RwHODm/9L81dHZsk7WwSBogOaOQ2T3AMpwwx8VpzScYH63kfzm4Dgeo0/wDVOSFv1tYI2jaeRLII/lAXLcZu2CA4eIOhUgNCdr4/OiSnfd4eP4f96t+8T8H/05PZkB28OboPzi7/AL6p1OJEz8Cf9qC4vBEPY13jAJj71HZlfmPZH9Uz+VWZFrC240tPmR2EGfkkHMaQBo4nUOEx+IVXfcwAWmrXncQD9wCT8qn6IDNwGo2kg/cmEWuum4TYCI2OB8AZ/wCqc
1DLniR7te7SQNP5YZ7VUD73O2iljmd/T0Mf5zXf9FGDrhpWAHRoHgx83Nc5NqlwNsn5uMyA+yHd9Hc+b9j0qs3FfoHbxoZa0kT/AJqGLuonSxrXDuGz/wBUXKX2jJA1phvYOg/IJwH8rWkn+QZzjuJdIYXcgkA6eA9Ru1QYamglu93jALv836X/AFSTb8h3/aQx5QP+qTWixxaHVWb+4B0H4ohHl+SxdU7hrpI5cDz/AGoQvdOjRH3H7lElu73bh81DfXJDXAHydJ/KpAsJbQIiCSPiRP4p2BocXAy7xMfwQCS0Ai+Y/N3NEfDcFJj73HVu8eHt/wC+7U+1r//UGz0tvs/nO+6N0/20x+3bvZt2x7d0fjuXl6SsS2aw3/g+qV/bJHq7Nvlz89ym7kT6cfPn+wvKElGN/wDvWQ7f98+rH7Rr6e3nSP8AzJB/WIHr7v8Arcx5bvzti8vSTvs/7pb9v7H039N6b9vq+XO3+xv/ADkAftLc3Z9q/wCjt+Xqe1ecpIlH2vp1vrbB9t3bZ1mN3/R/QquPT3D0/V2eUxH/AFK85STo/RbL6/V9Lb638rbP50Qmd6kGfS51mV5qknrX0+v0tv5v9nd/FPp+bO3vG3/0Z7l5ekih/9kAOEJJTQQhGlZlcnNpb24gY29tcGF0aWJpbGl0eSBpbmZvAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAANgAuADAAAAABADhCSU0EBgxKUEVHIFF1YWxpdHkAAAAAB//+AAAAAQEA/+4ADkFkb2JlAGSAAAAAAf/bAIQAFBERGhIaKRgYKTMnICczJxwcHBwnIhcXFxcXIhEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEVGhohHSEiGBgiFA4ODhQUDg4ODhQRDA
wMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAWgB4AwEiAAIRAQMRAf/dAAQACP/EARsAAAMBAQEBAQEBAQEAAAAAAAEAAgMEBQYHCAkKCwEBAQEBAQEBAQEBAQEAAAAAAAECAwQFBgcICQoLEAACAgEDAgMEBwYDAwYCATUBAAIRAyESMQRBUSITYXEygZGxQqEF0cEU8FIjcjNi4YLxQzSSorIV0lMkc8JjBoOT4vKjRFRkJTVFFiZ0NlVls4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9hEAAgIABQEGBgEDAQMFAwYvAAERAiEDMUESUWFxgZEiEzLwobEEwdHh8UJSI2JyFJIzgkMkorI0U0Rjc8LSg5OjVOLyBRUlBhYmNWRFVTZ0ZbOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hv/aAAwDAQACEQMRAD8A9dIiTwoDYJi+o85BjSGibVoDGMjqFN3RdsOgbIvl5O8M6Kso5pRIYt2yRPycqd1cow8CoanV33gPMrWpCcFZCJcOdNIaiApFNUtNITSppUD/0PaSrpiGtvpbhScEpcGdF32gCmigvG1pOqrAwAAQSyZVoxucGiyWsVAEON3w6RgQbUgGTF3j9DIwyL0WrtXaRjijlnD04mUiAByw+L1f4kOt6uOCEqwYzuyS+zOWP/31ifcx/wA2InEGiLelbTqZtWNCVay7cETPJIRiO8izCQnESHBFu009DDTQqmlaQ//R9bqs8elh6kgSP8IeDH+MmUZShilYraJfbXP1ks8KiAI9/wDE82OYlpwfB1a+yJWu7PV6L8Tj1tjaYGHxCTcfxXpJGvUA/qEovjysWQDfjfxPBLpISu47SNfJJ5ybg+p9SMyZRIMTwQ55epxYK9WQjfD5GCWXBAQjZA/i2f8AbcJdNOUjMynuPe4KRB9Thy4px3YpCQ8Ync2
ckMY88gP6jtfk49NGN5BM2QYk2xL8Ph2s1/T/AO/VIg+rx9RjykjHKMq/gludgbflMEJdLLdCwT7YNZo5swAlI7QTLbu/i/8AKmFSIPo/2TD6nqbI7/4trxfif4xi/Dxt+LKeIfw/+PfNH4hk6bp/Rx0JjieSXwx/9+PiT6eWQ7pGJJ5lu+JskOnpZZvxjqonMbjHzyj9iMY/7v8A8yP1z8b0ccvTz3wkIn2S+J9+P4vGNDLEg/bl/wDAnrSyRztVs9OleWH4n009BOv6gVevJdTnxZ//0sSCAImAoeBWRMzZhqOPM9BJPKu3RGFdmXqS7wP0uOSEMkt08crHte0Jq3PE1yOYZa+zJP7QB9mX0PTtZMXPEvI4JjHKO0idXu0QevgNdsg+iIrsbxHI82H4nCE9+3cRp5wjJ+JY8hJmDR+yH0vT91olgHgD8m8ScjxcuTps/wAYkaG0fv6TOWXTZQBUogaAD/40+ueniR8I+hyl00DzEfQ3iycjyPR6Q95gfv8A+UnaEsGPSE5iP8JO+P8A7rez9kx3rEN/smH+FvBk5o5Tl6aX2iFen9ixfw/eVXtsvNH/06J1oNA+DBjE9liaezOKNBomrLIl4JJLk0VXtQdGdDoQgHwclLGq34MkS7EfNz/mX2+9pDY252Y66tDepvwpoBd6uZtJmfH7mTO3SMsFW1TAIDYmPEOkZDEX3VIKtB//1J0lwLX04ns19l55c93qzkb+mBxakyHA+lxj/qeg/P5MGBnsMvY3t2jU2svm49+6YRcowJ5+9aA03UiXbhwyc9vmgdIG74ZLu2nWX3PHj57fJ6u3b/V8TQEzB+0iz73Lx4SP3pqMlX4hom+AQx37uw4/N0QmMfaqnnsqB//Z">
+ <animate attributeName="y" from="5" to="145" begin="0" dur="3" fill="freeze" />
+ </image>
+ </defs>
+ <g transform=" translate(20 0) scale(1.3 1.3)">
+ <!-- SILHOUETTES-->
+ <path d="M210 40 C210 40 210 100 170 190" fill="none" stroke="#b4b4b4" />
+ <path d="M 171 188 l 10 -10 l -10 -4 z" fill="#b4b4b4" stroke="none" />
+ <polyline fill="none" stroke="#b4b4b4" stroke-width="2" points="200,20 200,40 220,40 220,60" />
+ <polyline transform="rotate(15)" fill="none" stroke="#b4b4b4" stroke-width="9" points="200,120 200,140 220,140 220,160" />
+ <line x1="40" y1="50" x2="20" y2="10" stroke="#b4b4b4" stroke-width="3" />
+ <line x1="160" y1="50" x2="80" y2="10" stroke="#b4b4b4" stroke-width="3" />
+ <line x1="30" y1="30" x2="120" y2="30" stroke="#b4b4b4" />
+ <path d="M 120 30 l -10 3 l 0 -6 z" fill="#b4b4b4" stroke="none" />
+ <line x1="70" y1="70" x2="145" y2="70" stroke="#b4b4b4" />
+ <rect x="10" y="60" width="60" height="20" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2" />
+ <rect x="145" y="60" width="30" height="40" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2" />
+ <path d="M 145 70 l -10 3 l 0 -6 z" fill="#b4b4b4" stroke="none" />
+ <circle cx="30" cy="100" r="10" fill="#b4b4b4" stroke="#b4b4b4" />
+ <circle cx="100" cy="195" r="15" fill="#b4b4b4" stroke="#b4b4b4" />
+ <line x1="37" y1="107" x2="89" y2="184" stroke="#b4b4b4" />
+ <path d="M 90 185 l -3 -12 l -6 5 z" fill="#b4b4b4" stroke="none" />
+ <rect x="300" y="10" width="20" height="20" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2" />
+ <rect x="300" y="170" width="20" height="40" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2" />
+ <line x1="310" y1="30" x2="310" y2="170" stroke="#b4b4b4" />
+ <path d="M 310 170 l -3 -10 l 6 0 z" fill="#b4b4b4" stroke="none" />
+ <rect x="230" y="7.5" width="40" height="7.5" fill="#b4b4b4" stroke="none" />
+ <rect x="230" y="170" width="40" height="30" fill="#b4b4b4" stroke="none" />
+ <line x1="250" y1="10" x2="250" y2="170" stroke="#b4b4b4" />
+ <path d="M 250 170 l -3 -10 l 6 0 z" fill="#b4b4b4" stroke="none" />
+ <!-- END OF SILHOUETTES-->
+ <!-- DEFS-->
+ <!-- END OF DEFS-->
+ <!-- ACTUAL TEST CONTENT-->
+ <use xlink:href="#lineID">
+ <animate attributeName="x" from="10" to="70" begin="0" dur="3" fill="freeze" />
+ </use>
+ <use xlink:href="#rectID">
+ <animateTransform attributeName="transform" type="translate" from="0 0" to="140 0" begin="0" dur="3" fill="freeze" />
+ <animateTransform attributeName="transform" type="scale" from="1 1" to="0.5 1" begin="0" dur="3" additive="sum" fill="freeze" />
+ </use>
+ <use xlink:href="#circleID">
+ <animate attributeName="x" from="10" to="70" begin="0" dur="3" fill="freeze" />
+ </use>
+ <use xlink:href="#polylineID">
+ <animateTransform attributeName="transform" type="rotate" from="0" to="15" additive="sum" begin="0" dur="3" fill="freeze" />
+ </use>
+ <use x="60" y="-10" xlink:href="#polygonID">
+ <animateMotion path="M 0 0 l 0 150" begin="0" dur="3" fill="freeze" />
+ <animateTransform attributeName="transform" type="scale" from="1 1" to="1 2" begin="0" dur="3" additive="sum" fill="freeze" />
+ </use>
+ <use xlink:href="#imageID">
+ <animateTransform attributeName="transform" type="scale" from="1 .25" to="1 1" begin="0" dur="3" additive="sum" fill="freeze" />
+ </use>
+ <!-- END OF ACTUAL TEST CONTENT-->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-31-t.png b/test/svg/svg1.2/svg/animate-elem-31-t.png
new file mode 100644
index 0000000..63a2815
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-31-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-31-t.svg b/test/svg/svg1.2/svg/animate-elem-31-t.svg
new file mode 100644
index 0000000..35cb03f
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-31-t.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Tests animation of the display attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-31-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to test animation of the display attribute.</p>
+ <p>
+ The test shows two gray rectangles which are filled with colored circles during the length of the animation
+ (8 sec). The circles in the top rectangle are displayed/hidden by animating the display attribute.The circles in
+ the bottom rectangle are serving as the reference and are displayed/hidden by animating the visibility attribute.
+ A correct implementation should display/hide circles with the same color from the top and bottom rectangle at the
+ same time.
+ </p>
+ <p>
+ In total there are 6 different circles (purple, green, red, blue, yellow, cyan) in 5 positions (blue and yellow
+ share position) that should be displayed during the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-31-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- GRAY TESTAREAS-->
+ <rect x="5" y="7.5" width="375" height="75" fill="silver" stroke="black" stroke-width="3" />
+ <rect x="5" y="112.5" width="375" height="75" fill="silver" stroke="black" stroke-width="3" />
+ <g transform="scale(1.5)" display="inline">
+ <!-- PURPLE CIRCLES-->
+ <circle display="inline" cx="30" cy="30" r="20" fill="purple" stroke="black" stroke-width="5" />
+ <circle display="inline" cx="30" cy="100" r="20" fill="purple" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="visible" to="hidden" begin="6" dur="2" />
+ </circle>
+ <!-- GREEN CIRCLES-->
+ <g display="none">
+ <circle display="inline" cx="80" cy="30" r="20" fill="green" stroke="black" stroke-width="5" />
+ <animate attributeName="display" from="none" to="inline" begin="0" dur="3" fill="freeze" />
+ </g>
+ <circle visibility="hidden" cx="80" cy="100" r="20" fill="green" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="hidden" to="visible" begin="0" dur="3" fill="freeze" />
+ </circle>
+ <!-- RED CIRCLES-->
+ <circle display="none" cx="130" cy="30" r="20" fill="red" stroke="black" stroke-width="5">
+ <set attributeName="display" to="inline" begin="2" dur="1" fill="freeze" />
+ </circle>
+ <circle visibility="hidden" cx="130" cy="100" r="20" fill="red" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="hidden" to="visible" begin="1" dur="2" fill="freeze" />
+ </circle>
+ <!-- BLUE CIRCLES-->
+ <g display="none">
+ <g display="inherit">
+ <circle display="inline" cx="180" cy="30" r="20" fill="blue" stroke="black" stroke-width="5" />
+ </g>
+ <animate attributeName="display" from="inline" to="none" begin="3" dur="3" fill="freeze" />
+ </g>
+ <circle visibility="hidden" cx="180" cy="100" r="20" fill="blue" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="visible" to="hidden" begin="3" dur="3" fill="freeze" />
+ </circle>
+ <!-- YELLOW CIRCLES-->
+ <g display="none">
+ <g display="inherit">
+ <circle display="inline" cx="180" cy="30" r="20" fill="yellow" stroke="black" stroke-width="5" />
+ </g>
+ <animate attributeName="display" from="none" to="inherit" begin="4" dur="3" fill="freeze" />
+ </g>
+ <circle visibility="hidden" cx="180" cy="100" r="20" fill="yellow" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="hidden" to="visible" begin="4" dur="3" fill="freeze" />
+ </circle>
+ <!-- CYAN CIRCLES-->
+ <g display="none">
+ <circle cx="230" cy="30" r="20" fill="#00ffff" stroke="black" stroke-width="5">
+ <animate attributeName="display" begin="0" dur="0.5" keyTimes="0; 0.5; 1" values="inherit; none; inherit" repeatCount="8" />
+ </circle>
+ <animate attributeName="display" begin="0" dur="2" keyTimes="0; 0.5; 1" values="inline; none; inline" repeatCount="2" fill="freeze" />
+ </g>
+ <g visibility="hidden">
+ <circle cx="230" cy="100" r="20" fill="#00ffff" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" begin="0" dur="0.5" keyTimes="0; 0.5; 1" values="inherit; hidden; inherit" repeatCount="8" />
+ </circle>
+ <animate attributeName="visibility" begin="0" dur="2" keyTimes="0; 0.5; 1" values="visible; hidden; visible" repeatCount="2" fill="freeze" />
+ </g>
+ <animate attributeName="display" from="inherit" to="none" begin="6" dur="2" />
+ </g>
+ <text x="385" y="40" font-size="16">display</text>
+ <text x="385" y="150" font-size="18">visibility</text>
+ <text x="5" y="235" font-size="28">Test of display attribute animation.</text>
+ <text x="5" y="265" font-size="18">Circles with same color should be visible at same time.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-32-t.png b/test/svg/svg1.2/svg/animate-elem-32-t.png
new file mode 100644
index 0000000..477dd58
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-32-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-32-t.svg b/test/svg/svg1.2/svg/animate-elem-32-t.svg
new file mode 100644
index 0000000..f25308e
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-32-t.svg
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="SH" desc="Test that viewer supports the animation to and from the degenerate cases of the basic shapes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-32-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests the animation to and from the degenerate cases of the basic shapes. The shapes are drawn within the black rectangles.</p>
+ <p>
+ The rendered picture should match the reference image at the end of the animation, except for possible variations in the
+ labelling text (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-32-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Draw the boxes to contain the shapes and the text labels for the boxes -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none" font-family="Arial" font-size="8">
+ <text x="5" y="90">Stroked</text>
+ <text x="5" y="195">Unstroked</text>
+ <text x="50" y="135">Zero width rect</text>
+ <text x="130" y="135">Zero height rect</text>
+ <text x="210" y="135">Zero radius circle</text>
+ <text x="315" y="135">Zero x radius ellipse</text>
+ <text x="394" y="135">Zero y radius ellipse</text>
+ <text x="210" y="290">Zero length line</text>
+ </g>
+ <g fill="none" stroke="#000000">
+ <!-- rects -->
+ <rect x="50" y="50" width="35" height="60" />
+ <rect x="50" y="155" width="35" height="60" />
+ <rect x="130" y="50" width="35" height="60" />
+ <rect x="130" y="155" width="35" height="60" />
+ <!-- circles -->
+ <rect x="210" y="50" width="60" height="60" />
+ <rect x="210" y="155" width="60" height="60" />
+ <!-- ellipses -->
+ <rect x="315" y="50" width="35" height="60" />
+ <rect x="315" y="155" width="35" height="60" />
+ <rect x="394" y="50" width="35" height="60" />
+ <rect x="394" y="155" width="35" height="60" />
+ <!-- line -->
+ <rect x="210" y="260" width="60" height="10" />
+ </g>
+ <!-- ====================================================================== -->
+ <!-- Draw 4 rectangles, two with zero width, two with zero height -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <rect xml:id="Zero-width-stroked-rect" fill="#00FF00" stroke="#000000" x="55" y="55" height="50" width="0">
+ <animate attributeName="width" from="0" to="25" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="width" from="25" to="0" begin="3" dur="3" fill="freeze" />
+ </rect>
+ <rect xml:id="Zero-height-stroked-rect" fill="#00FF00" stroke="#000000" x="135" y="55" width="25" height="0">
+ <animate attributeName="height" from="0" to="50" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="height" from="50" to="0" begin="3" dur="3" fill="freeze" />
+ </rect>
+ <rect xml:id="Zero-width-unstroked-rect" fill="#FF0000" stroke="none" x="55" y="160" height="50" width="0">
+ <animate attributeName="width" from="0" to="25" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="width" from="25" to="0" begin="3" dur="3" fill="freeze" />
+ </rect>
+ <rect xml:id="Zero-height-unstroked-rect" fill="#FF0000" stroke="none" x="135" y="160" width="25" height="0">
+ <animate attributeName="height" from="0" to="50" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="height" from="50" to="0" begin="3" dur="3" fill="freeze" />
+ </rect>
+ <!-- ====================================================================== -->
+ <!-- Draw two zero radius circles (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <circle xml:id="Zero-radius-stroked-circle" fill="#00FF00" stroke="#000000" cx="240" cy="80" r="0">
+ <animate attributeName="r" from="0" to="25" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="r" from="25" to="0" begin="3" dur="3" fill="freeze" />
+ </circle>
+ <circle xml:id="Zero-radius-unstroked-circle" fill="#FF0000" stroke="none" cx="240" cy="185" r="0">
+ <animate attributeName="r" from="0" to="25" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="r" from="25" to="0" begin="3" dur="3" fill="freeze" />
+ </circle>
+ <!-- ====================================================================== -->
+ <!-- Draw 4 ellipses, two with a zero x radius, two with a zero y radius -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <ellipse xml:id="Zero-x-radius-stroked-ellipse" fill="#00FF00" stroke="#0000FF" cx="332" cy="80" rx="0" ry="25">
+ <animate attributeName="rx" from="0" to="12" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="rx" from="12" to="0" begin="3" dur="3" fill="freeze" />
+ </ellipse>
+ <ellipse xml:id="Zero-x-radius-unstroked-ellipse" fill="#FF0000" stroke="none" cx="332" cy="185" rx="0" ry="25">
+ <animate attributeName="rx" from="0" to="12" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="rx" from="12" to="0" begin="3" dur="3" fill="freeze" />
+ </ellipse>
+ <ellipse xml:id="Zero-y-radius-stroked-ellipse" fill="#00FF00" stroke="#0000FF" cx="411" cy="80" rx="12" ry="0">
+ <animate attributeName="ry" from="0" to="25" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="ry" from="25" to="0" begin="3" dur="3" fill="freeze" />
+ </ellipse>
+ <ellipse xml:id="Zero-y-radius-unstroked-ellipse" fill="#FF0000" stroke="none" cx="411" cy="185" rx="12" ry="0">
+ <animate attributeName="ry" from="0" to="25" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="ry" from="25" to="0" begin="3" dur="3" fill="freeze" />
+ </ellipse>
+ <!-- ====================================================================== -->
+ <!-- Draw a zero-length line -->
+ <!-- ====================================================================== -->
+ <line xml:id="Zero-length-line" stroke="#0000FF" x1="240" y1="265" x2="240" y2="265">
+ <animate attributeName="x1" from="240" to="215" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="x2" from="240" to="265" begin="0" dur="3" fill="freeze" />
+ <animate attributeName="x1" from="215" to="240" begin="3" dur="3" fill="freeze" />
+ <animate attributeName="x2" from="265" to="240" begin="3" dur="3" fill="freeze" />
+ </line>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-33-t.png b/test/svg/svg1.2/svg/animate-elem-33-t.png
new file mode 100644
index 0000000..06dac6e
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-33-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-33-t.svg b/test/svg/svg1.2/svg/animate-elem-33-t.svg
new file mode 100644
index 0000000..f2d263f
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-33-t.svg
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Tests AnimateMotion with keyPoints and keyTimes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-33-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to test animateMotion with keyPoints and keyTimes.</p>
+ <p>
+ The test consists of 4 sub-tests. Each test has a purple circle which moves along a path. The path is indicated
+ with a dashed line and sample points where the circle should pass a certain position on the path is indicated with
+ gray circles. On top of each gray circle is a number which indicates the passing time in seconds. In the cases
+ where the purple circle should pass the gray circle two times the first passing time is written above the gray
+ circle and the second passing time is written below.
+ </p>
+ <p><a href="http://www.w3.org/TR/SVGMobile12/animate.html#AnimateMotionElement">
+ Section 16.2.13</a> in the spec. states that a motion path is defined by the path attribute or by values or from/to
+ attributes. So in the animateMotion case, values is just used for defining the motionPath and the number of values
+ do not have to relate to the number of keyTimes.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-33-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- FIRST TEST-->
+ <g transform="translate(110, 50) scale(0.6)">
+ <text x="-160" y="-30" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="-50" y="-30" font-size="30" stroke="none" fill="#ccc">0.8-3.2</text>
+ <text x="140" y="-30" font-size="30" stroke="none" fill="#ccc">4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-150,0 0,0 150,0" />
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-150" r="20" />
+ <circle r="20" />
+ <circle cx="150" r="20" />
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" values="-150 0; 150 0" calcMode="linear" fill="freeze" keyTimes="0; 0.2; 0.4; 0.6; 0.8; 1" keyPoints="0; 0.5; 0.5; 0.5; 0.5; 1" />
+ </circle>
+ </g>
+ <!-- SECOND TEST-->
+ <g transform="translate(370, 50) scale(0.6)">
+ <text x="-160" y="-30" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="-100" y="-30" font-size="30" stroke="none" fill="#ccc">2</text>
+ <text x="80" y="-30" font-size="30" stroke="none" fill="#ccc">2</text>
+ <text x="140" y="-30" font-size="30" stroke="none" fill="#ccc">4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-150,0 -90,0" />
+ <polyline points="90,0 150,0" />
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-150" r="20" />
+ <circle cx="-90" r="20" />
+ <circle cx="90" r="20" />
+ <circle cx="150" r="20" />
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" values="-150 0; 150 0" calcMode="linear" fill="freeze" keyTimes="0; 0.5; 0.5; 0.5; 0.5; 1" keyPoints="0; 0.2; 0.4; 0.6; 0.8; 1" />
+ </circle>
+ </g>
+ <!-- THIRD TEST-->
+ <!-- The lenght of the lines in the polyline (motionpath) are 100,50 and 100. The animated circle starts at the midpoint of one of the "legs" and also pass this point at time 1.4 since 1.4 = 4*(0.25) + (4*(0.75-0.25))*(1/5). Where 0.25 is the time at keyPoint 1 (2nd) and 1/5 since the control circle is at 1/5 of the distance between keyPoint 1 and 0 (2nd and 3rd).-->
+ <g transform="translate(110, 180) scale(0.6)">
+ <text x="-115" y="-30" font-size="30" stroke="none" fill="#ccc">3</text>
+ <text x="-85" y="-60" font-size="30" stroke="none" fill="#ccc">2.6</text>
+ <text x="60" y="-60" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="95" y="-30" font-size="30" stroke="none" fill="#ccc">1</text>
+ <text x="-75" y="20" font-size="30" stroke="none" fill="#ccc">4</text>
+ <text x="40" y="20" font-size="30" stroke="none" fill="#ccc">1.4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-105,0 -25,-60 25,-60 105,0" />
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-105" r="20" />
+ <circle cx="-65" cy="-30" r="20" />
+ <circle cx="65" cy="-30" r="20" />
+ <circle cx="105" r="20" />
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" path="M -105,0 L -25,-60 25,-60 105,0" calcMode="linear" fill="freeze" keyPoints="0.8; 1; 0; 0.2" keyTimes="0; 0.25; 0.75; 1" />
+ </circle>
+ </g>
+ <!-- FOURTH TEST-->
+ <g transform="translate(370, 160) scale(0.6)">
+ <text x="-135" y="-30" font-size="30" stroke="none" fill="#ccc">3</text>
+ <text x="-95" y="-30" font-size="30" stroke="none" fill="#ccc">2.6</text>
+ <text x="65" y="-30" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="115" y="-30" font-size="30" stroke="none" fill="#ccc">1</text>
+ <text x="-85" y="50" font-size="30" stroke="none" fill="#ccc">4</text>
+ <text x="50" y="50" font-size="30" stroke="none" fill="#ccc">1.4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-125,0 125,0" />
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-125" r="20" />
+ <circle cx="-75" r="20" />
+ <circle cx="75" r="20" />
+ <circle cx="125" r="20" />
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" from="-125,0" to="125,0" calcMode="linear" fill="freeze" keyPoints="0.8; 1; 0; 0.2" keyTimes="0; 0.25; 0.75; 1" />
+ </circle>
+ </g>
+ <text x="5" y="235" font-size="28">Test of keyPoints and keyTimes.</text>
+ <text x="5" y="265" font-size="18">Number indicates the circle's passing time in seconds.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-34-t.png b/test/svg/svg1.2/svg/animate-elem-34-t.png
new file mode 100644
index 0000000..f1749cf
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-34-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-34-t.svg b/test/svg/svg1.2/svg/animate-elem-34-t.svg
new file mode 100644
index 0000000..acc1f0e
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-34-t.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Tests animation of attributes 'points' and 'fill-rule'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-34-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to test animation of attributes points and fill-rule.</p>
+ <p>
+ The test consists of 2 sub-tests. The first test is a polygon shaped as a digit. The polygon has an animation on
+ its vertex points which morphs the polygon between the numbers 1, 2, 3 and 4. The gray outlines indicates the
+ expected position of the polygon at 1, 2, 3 and 4s. The second test is 4 paths in a u-shape. They have animated
+ fill-rules. Their initial fill-rules are, from left to right, nonzero, evenodd, nonzero (by default value, no
+ fill-rule attribute set) and nonzero (by default value, no fill-rule attribute set). This means, that the second
+ path is initially u-shaped, and all other paths are initially rect-shaped. All four animations are set to evenodd
+ as a last stage. The further expected result is that one path at a time is filled. The other three paths are not
+ filled but have the u-shape. The fourth animation from evenodd to nonzero happens by going back to the initial
+ state, because the fill attribute is not set to freeze. Which path that should be filled at which time is indicated
+ by the number above it (indicating time in seconds). To enhance the difference between the filled path and the rest,
+ the filled path should always have the same color as the morphing polygon. This is achieved by a discrete color
+ animation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-34-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(40,0) scale(0.8)">
+ <!-- GRAY SILHOUETTES INDICATING TIME IN SECONDS-->
+ <polygon points="248.5,38.5 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.5,119.5 282.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <polygon points="108.5,38.5 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <polygon points="26.5,32.5 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <polygon points="427.5,17.5 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <!-- FIRST TEST, POINTS-->
+ <polygon points="26.5,32.5 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5" fill="rgb(204,0,102)" stroke="rgb(0,0,0)" stroke-width="4">
+ <animate attributeName="points" values="26.5,32.5 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 ; 108.5,38.5 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5; 248.5,38.5 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.5,119.5 28
2.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5 ; 427.5,17.5 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5" fill="freeze" begin="1" dur="3s" />
+ </polygon>
+ <!-- SECOND TEST, FILL-RULE-->
+ <g transform="scale(0.3) translate(-450, 500)">
+ <path fill-rule="nonzero" fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="nonzero; evenodd; evenodd; evenodd" begin="1" dur="4" fill="freeze" />
+ <animate attributeName="fill" from="rgb(204,0,102)" to="#ccc" begin="0" dur="4" calcMode="discrete" fill="freeze" />
+ </path>
+ </g>
+ <g transform="scale(0.3) translate(-30, 500)">
+ <path fill-rule="evenodd" fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="evenodd; nonzero; evenodd; evenodd" begin="1" dur="4" fill="freeze" />
+ <animate attributeName="fill" from="#ccc" to="rgb(204,0,102)" begin="1" dur="2" calcMode="discrete" fill="remove" />
+ </path>
+ </g>
+ <g transform="scale(0.3) translate(390, 500)">
+ <path fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="evenodd; evenodd; nonzero; evenodd" begin="1" dur="4" fill="freeze" />
+ <animate attributeName="fill" from="#ccc" to="rgb(204,0,102)" begin="2" dur="2" calcMode="discrete" fill="remove" />
+ </path>
+ </g>
+ <g transform="scale(0.3) translate(810, 500)">
+ <path fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="evenodd; evenodd; evenodd" begin="1" dur="3" />
+ <animate attributeName="fill" from="#ccc" to="rgb(204,0,102)" begin="3" dur="2" calcMode="discrete" fill="freeze" />
+ </path>
+ </g>
+ </g>
+ <text x="5" y="225" font-size="28">Animation on: 'points' and 'fill-rule'.</text>
+ <text x="5" y="255" font-size="18">Digit should match outline at indicated time.</text>
+ <text x="5" y="275" font-size="18">Filled square should follow morphing digit discretely.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-35-t.png b/test/svg/svg1.2/svg/animate-elem-35-t.png
new file mode 100644
index 0000000..78b060f
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-35-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-35-t.svg b/test/svg/svg1.2/svg/animate-elem-35-t.svg
new file mode 100644
index 0000000..8fe790c
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-35-t.svg
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Tests animation of attributes stroke-dasharray, stroke-dashoffset, stroke-miterlimit, stroke-linecap and stroke-linjoin" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: animate-elem-35-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The purpose of this test is to test animation of attributes stroke-dasharray,
+ stroke-dashoffset, stroke-miterlimit, stroke-linecap and stroke-linjoin.
+ </p>
+ <p>
+ This file contains four tests, testing animation of five attributes.
+ The first test animates the stroke-dashoffset. There are seven reference polylines, all with
+ the same stroke-dasharray but with different values on their stroke-dashoffset. A red polyline
+ with the same stroke-dash array has an animation on its stroke-dasharray. The red polyline is
+ animated so that it stops by the reference polyline that has the right stroke-dashoffset at
+ that perticular time.
+ The second test animates stroke-linecap and stroke-linejoin. There are three reference
+ polylines. Comparsion is done in the same manner as in the previous test.
+ The third test animates the stroke-miterlimit. There are two sets offilled reference paths
+ (black) and two outlined paths (red) with animated stroke-miterlimit. The paths are shaped like
+ a capital A. In the upper test the animated path is drawn on top of the reference polygons and
+ in the lower test the reference path is drawn on top of the animated path. As the
+ stroke-miterlimit is animated to different values, different reference paths are used. To pass
+ the test, there should never be any part of the underlying geometry visible (black in the upper
+ or red in the lower).
+ The fourth test animates the stroke-dasharray. The initial stroke-dasharray gives a
+ short-dashed line. This pattern is animated into a pattern that on this short path gives a
+ solid line at 2 seconds.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-35-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0,0) scale(0.9)">
+ <g>
+ <g fill="none" stroke="gray" stroke-width="15">
+ <g stroke="black">
+ <polyline xml:id="poly" stroke-dasharray="90 20 5 15" points="240,20,300,20,240,80,300,80">
+ <animate begin="0" dur="10" attributeName="stroke-linecap" values="butt; round; square; square" keyTimes="0; 0.33; 0.66; 1" fill="freeze"/>
+ <animate begin="0" dur="10" attributeName="stroke-linejoin" values="miter; round; bevel; bevel" keyTimes="0; 0.33; 0.66; 1" fill="freeze"/>
+ </polyline>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly"/>
+ <animateTransform type="translate" begin="0" dur="10" values="0 0; 0 0; 0 95; 0 95; 0 190; 0 190" keyTimes="0; 0.3; 0.35; 0.65; 0.7; 1" attributeName="transform" fill="freeze"/>
+ </g>
+ <polyline xml:id="poly1" stroke-linecap="butt" stroke-linejoin="miter" stroke-dasharray="90 20 5 15" points="140,20,200,20,140,80,200,80"/>
+ <polyline xml:id="poly2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="90 20 5 15" points="140,115,200,115,140,175,200,175"/>
+ <polyline xml:id="poly3" stroke-linecap="square" stroke-linejoin="bevel" stroke-dasharray="90 20 5 15" points="140,210,200,210,140,270,200,270"/>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly1"/>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly2"/>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly3"/>
+ </g>
+ <g>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="-50" stroke-dasharray="5,5,20" stroke-width="5" points="10,10,50,10,10,40,50,40"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="-30" stroke-dasharray="5,5,20" stroke-width="5" points="10,50,50,50,10,80,50,80"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="-10" stroke-dasharray="5,5,20" stroke-width="5" points="10,90,50,90,10,120,50,120"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="0" stroke-dasharray="5,5,20" stroke-width="5" points="10,130,50,130,10,160,50,160"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="10" stroke-dasharray="5,5,20" stroke-width="5" points="10,170,50,170,10,200,50,200"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="30" stroke-dasharray="5,5,20" stroke-width="5" points="10,210,50,210,10,240,50,240"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="50" stroke-dasharray="5,5,20" stroke-width="5" points="10,250,50,250,10,280,50,280"/>
+ </g>
+ <g>
+ <polyline fill="none" stroke="red" stroke-dasharray="5,5,20" stroke-width="5" points="60,10,100,10,60,40,100,40">
+ <animate attributeName="stroke-dashoffset" begin="0" dur="10" values="-50; -50; -30; -30; -10; -10; 0; 0; 10; 10; 30; 30; 50; 50" keyTimes="0; 0.05; 0.1; 0.15; 0.2; 0.25; 0.3; 0.35; 0.4; 0.45; 0.5; 0.55; 0.6; 1" fill="freeze"/>
+ </polyline>
+ <animateTransform type="translate" begin="0" dur="10" values="0 0; 0 0; 0 40; 0 40; 0 80; 0 80; 0 120; 0 120; 0 160; 0 160; 0 200; 0 200; 0 240; 0 240" keyTimes="0; 0.05; 0.1; 0.15; 0.2; 0.25; 0.3; 0.35; 0.4; 0.45; 0.5; 0.55; 0.6; 1" attributeName="transform" fill="freeze"/>
+ </g>
+ </g>
+ <g xml:id="miterLimit" visibility="hidden" transform="scale(2.5) translate(130 2)">
+ <g xml:id="reference">
+ <g>
+ <path d="M16,51.1c0.8-2.9,2.5-9.2,3-11c2.1,0,8.9,0,11,0c0.5,1.7,2.5,8.2,3.3,11.1l1.9,1.4H47l1.9-2.6L33.8,1.4L31.9,0H17.5 l-1.9,1.4L0.8,49.9l1.9,2.6h11.4L16,51.1z M15.5,37.5c-0.8,2.9-2.5,9.2-3,11c-1.7,0-4.6,0-7.1,0C6.8,44,18.2,6.5,19,4 c2.1,0,9.3,0,11.4,0c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.5-1.7-2.5-8.2-3.3-11l-1.9-1.4H17.4L15.5,37.5z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-2.9,10.2l1.9,2.6h10.7l1.9-2.6l-3-10.3c0,0-2.5-9.3-2.5-9.3L22.3,9.8z M23.9,20.1 c0,0,0.2-0.8,0.4-1.8c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="0" dur="2" to="visible"/>
+ </g>
+ <g>
+ <path d="M31.9,0H16.1L0.8,49.9l1.9,2.6h12.9c0,0,2.8-10.2,3.4-12.5c2.1,0,8.9,0,11,0c0.7,2.2,3.7,12.5,3.7,12.5H47l1.9-2.6 L33.3,0H31.9z M30.4,4c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.7-2.2-3.7-12.5-3.7-12.5h-17c0,0-2.8,10.2-3.4,12.5 c-1.7,0-4.6,0-7.1,0C6.8,44,18.2,6.5,19,4C21.1,4,28.3,4,30.4,4z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-2.9,10.2l1.9,2.6h10.7l1.9-2.6l-3-10.3c0,0-2.5-9.3-2.5-9.3L22.3,9.8z M23.9,20.1 c0,0,0.2-0.8,0.4-1.8c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="2.5" dur="2" to="visible"/>
+ </g>
+ <g>
+ <path d="M31.9,0H16.1L0,52.5h15.6c0,0,2.8-10.2,3.4-12.5c2.1,0,8.9,0,11,0c0.7,2.2,3.7,12.5,3.7,12.5h16L33.3,0H31.9z M30.4,4 c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.7-2.2-3.7-12.5-3.7-12.5h-17c0,0-2.8,10.2-3.4,12.5c-1.7,0-4.6,0-7.1,0 C6.8,44,18.2,6.5,19,4C21.1,4,28.3,4,30.4,4z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-3.7,12.8h16.1L28.7,19c0,0-2.5-9.3-2.5-9.3L22.3,9.8z M23.9,20.1c0,0,0.2-0.8,0.4-1.8 c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="5" dur="2" to="visible"/>
+ </g>
+ <g>
+ <path d="M31.9,0H16.1L0,52.5h15.6c0,0,2.8-10.2,3.4-12.5c2.1,0,8.9,0,11,0c0.7,2.2,3.7,12.5,3.7,12.5h16L33.3,0H31.9z M30.4,4 c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.7-2.2-3.7-12.5-3.7-12.5h-17c0,0-2.8,10.2-3.4,12.5c-1.7,0-4.6,0-7.1,0 C6.8,44,18.2,6.5,19,4C21.1,4,28.3,4,30.4,4z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-3.7,12.8h16.1L28.7,19c0,0-2.5-9.3-2.5-9.3l-2-7.6L22.3,9.8z M23.9,20.1c0,0,0.2-0.8,0.4-1.8 c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="7.5" to="visible"/>
+ </g>
+ </g>
+ <g xml:id="animated">
+ <path fill="none" stroke="#FF0000" stroke-width="4" stroke-miterlimit="1" d="M17.5,38.1l-3.4,12.5H2.7L17.5,2h14.3L47,50.5 H35.2l-3.7-12.5H17.5z M29.8,29.9l-3-10.3C26,16.7,25,13,24.3,10.2c-0.6,2.9-1.5,6.6-2.3,9.4l-3,10.3H29.8z">
+ <animate attributeName="stroke-miterlimit" attributeType="CSS" begin="0" dur="10" keyTimes="0; 0.2; 0.25; 0.45; 0.5; 0.7; 0.75; 1" fill="freeze" values="1; 1; 1.5; 1.5; 2; 2; 5; 5"/>
+ </path>
+ <set attributeName="visibility" begin="0" dur="2" to="visible"/>
+ <set attributeName="visibility" begin="2.5" dur="2" to="visible"/>
+ <set attributeName="visibility" begin="5" dur="2" to="visible"/>
+ <set attributeName="visibility" begin="7.5" to="visible"/>
+ </g>
+ <use x="0" y="60" xlink:href="#animated"/>
+ <use x="0" y="60" xlink:href="#reference"/>
+ </g>
+ <path fill="none" stroke="blue" stroke-width="10" stroke-dasharray="5" transform="translate(520 20) scale(1 2) rotate(90)" d="M15.2,5.4C5.5,10.1,1.1,18.8,2,31.7c14.8,32.1,138.9-59,127.8-19.7C112.1,75.3,42.2-8.8,15.2,5.4">
+ <animate begin="1" dur="1" attributeName="stroke-dasharray" values="5; 500" keyTimes="0; 1" fill="freeze"/>
+ <animate begin="0" dur="10" attributeName="stroke-dashoffset" from="0" to="100"/>
+ </path>
+ </g>
+ <text x="5" y="280" font-size="18">Animation on: 'stroke-dasharray', 'stroke-dashoffset',</text>
+ <text x="5" y="305" font-size="18">'stroke-miterlimit', 'stroke-linecap' and 'stroke-linejoin'.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-36-t.png b/test/svg/svg1.2/svg/animate-elem-36-t.png
new file mode 100644
index 0000000..9477122
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-36-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-36-t.svg b/test/svg/svg1.2/svg/animate-elem-36-t.svg
new file mode 100644
index 0000000..a77be67
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-36-t.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Animation of transform on structure, hyperlinking and text elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-36-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates the animation of the transform attribute on structure elements, hyperlinks and text elements.</p>
+ <p>
+ The test applies an <animateTransform> on various element types: <g>, <use>, <image>,
+ <switch>, <a> and <text>. In all cases, the type is a rotation and all the elements should rotate
+ together about their centers, for 3s, starting at the document's load time.</p>
+ <p>The static reference image shows the final state of the animation.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-36-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="MyDecFont" horiz-adv-x="466">
+ <font-face font-family="MyDecFont" />
+ <missing-glyph horiz-adv-x="233" d="M 50 0 L50 700 200 700 200 0 z" />
+ <glyph unicode="1" glyph-name="one" horiz-adv-x="558" d="M458 716L100 534V428L357 552V97H241V380L140 328V0H458V716Z" />
+ <glyph unicode="2" glyph-name="two" horiz-adv-x="585" d="M69 509Q82 523 102 541T147 575T203 603T268 614Q311 614 342 599T392 560T421 505T430 443Q430 420 423 398T405 352L343 201H444L492 309Q508 345 519 379T531 448Q531 504 511 552T454 635T369 691T262 711Q231 711 204 704T152 684T106 655T69 623V509ZM535 97H187L309 422Q316 441 315 457T306 483T287 500T265 506Q261 506 254 505T239 499T224 485T211 461L50 0H535V97Z" />
+ <glyph unicode="3" glyph-name="three" horiz-adv-x="542" d="M58 553Q109 588 148 601T220 614Q255 614 282 604T328 575T356 535T366 488Q366 475 364 460T355 429T336 397T302 368Q311 363 325 353T352 326T376 286T386 232Q386 203 376 177T345 130T295 98T227 86Q179 86 134 104T50 153V45Q59 38 74 29T111 10T163 -5T231 -11Q296 -11 345 8T426 58T475 131T492 218Q492 251 486 276T469 320T446 354T421 378Q438 396 454 425T470 503Q470 546 454 584T406 650T332 695T233 711Q179 711 137 696T58 655V553ZM156 255Q156 229 173 212T217 194Q243 194 260 211T278 255Q278 281 261 298T217 316Q191 316 174 299T156 255ZM161 467Q161 444 177 428T216 412Q225 412 234 415T252 425T265 442T271 467Q271 491 256 506T216 522Q202 522 192 517T174 503T164 486T161 467Z" />
+ </font>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animateTransform> on structure,</text>
+ <text text-anchor="middle" x="240" y="45" font-size="16">hyperlinking and text elements</text>
+ <g transform="translate(0,0)">
+ <g transform="translate(60,90)">
+ <g xml:id="animatedG" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(90)" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(180)" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(270)" />
+ <rect x="-15" y="-15" width="30" height="30" />
+ </g>
+ <text y="60" text-anchor="middle"><g></text>
+ </g>
+ <g transform="translate(180,110)">
+ <g>
+ <use xlink:href="#animatedG" transform="translate(-20, -30) scale(0.4)" />
+ <use xlink:href="#animatedG" transform="translate(-20, 0) scale(0.4)" />
+ <use xlink:href="#animatedG" transform="translate(20, -30) scale(0.4)" />
+ <use xlink:href="#animatedG" transform="translate(20, 0) scale(0.4)" />
+ </g>
+ <text y="40" text-anchor="middle"><use></text>
+ </g>
+ <g transform="translate(300,90)">
+ <image xml:id="imageID" x="-30" y="-30" width="60" height="60" xlink:href="data:image/jpeg;base64,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">
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s" />
+ </image>
+ <text y="60" text-anchor="middle"><image></text>
+ </g>
+ <g transform="translate(420,90)">
+ <switch xml:id="animatedSwitch" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <g>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(90)" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(180)" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(270)" />
+ <rect x="-15" y="-15" width="30" height="30" />
+ </g>
+ <g xml:id="shouldNotShow">
+ <rect x="-200" y="-200" width="400" height="400" fill="red" />
+ </g>
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s" />
+ </switch>
+ <text y="60" text-anchor="middle"><switch></text>
+ </g>
+ <g transform="translate(60,220)">
+ <a xml:id="animatedAnchor" xlink:href="" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <g>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(90)" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(180)" />
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(270)" />
+ <rect x="-15" y="-15" width="30" height="30" />
+ </g>
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s" />
+ </a>
+ <text y="60" text-anchor="middle"><a></text>
+ </g>
+ <g transform="translate(180,220)">
+ <text xml:id="textID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" font-family="MyDecFont" font-size="40" text-anchor="middle">123</text>
+ <animateTransform attributeName="transform" xlink:href="#textID" type="rotate" values="0;360;180;360" dur="3s" />
+ <text y="60" text-anchor="middle"><text></text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-37-t.png b/test/svg/svg1.2/svg/animate-elem-37-t.png
new file mode 100644
index 0000000..18d6884
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-37-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-37-t.svg b/test/svg/svg1.2/svg/animate-elem-37-t.svg
new file mode 100644
index 0000000..08d9f76
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-37-t.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Animation of transform on shape elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-37-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates the animation of the transform attribute shape elements.</p>
+ <p>
+ The test applies an <animateTransform> on various element types: <g>, <use>, <image>,
+ <switch>, <a> and <text>. In all cases the animation should run for 3s, starting at the
+ document's load time. The <circle> has a scale animation, and all the rest of the elements should rotate
+ together about their centers. The static reference image shows the final state of the animation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-37-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animateTransform> shape elements</text>
+ <g transform="translate(0,0)">
+ <g transform="translate(60,90)">
+ <path xml:id="pathID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" d="M 0 0 Q 30 0 30 -30 Q 0 -30 0 0 Q 0 -30 -30 -30 Q -30 0 0 0 Q -30 0 -30 30 Q 0 30 0 0 Q 0 30 30 30 Q30 0 0 0 Z" />
+ <animateTransform attributeName="transform" xlink:href="#pathID" type="rotate" values="0;360;180;360" dur="3s" />
+ <text y="60" text-anchor="middle"><path></text>
+ </g>
+ <g transform="translate(180,90)">
+ <rect xml:id="rectID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" x="-30" y="-20" width="60" height="40" />
+ <animateTransform attributeName="transform" xlink:href="#rectID" type="rotate" values="0;360;180;360" dur="3s" />
+ <text y="60" text-anchor="middle"><rect></text>
+ </g>
+ <g transform="translate(300,90)">
+ <circle xml:id="circleID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" r="30" />
+ <animateTransform attributeName="transform" xlink:href="#circleID" type="scale" values="1;0.2;1.5;1" dur="3s" />
+ <text y="60" text-anchor="middle"><circle></text>
+ </g>
+ <g transform="translate(420,90)">
+ <ellipse xml:id="ellipseID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" rx="40" ry="20" />
+ <animateTransform attributeName="transform" xlink:href="#ellipseID" type="rotate" values="0;360;180;360" dur="3s" />
+ <text y="60" text-anchor="middle"><ellipse></text>
+ </g>
+ <g transform="translate(60,220)">
+ <line xml:id="lineID" stroke="rgb(255,180,0)" stroke-width="10" stroke-linecap="round" x1="-30" y1="-20" x2="30" y2="20" />
+ <animateTransform attributeName="transform" xlink:href="#lineID" type="rotate" values="0;360;180;360" dur="3s" />
+ <text y="60" text-anchor="middle"><line></text>
+ </g>
+ <g transform="translate(180,220)">
+ <polyline xml:id="polylineID" stroke="rgb(255,180,0)" stroke-width="10" stroke-linecap="round" fill="none" stroke-linejoin="round" points="-30 20 -30 -20 30 20 30 -20" />
+ <animateTransform attributeName="transform" xlink:href="#polylineID" type="rotate" values="0;360;180;360" dur="3s" />
+ <text y="60" text-anchor="middle"><polyline></text>
+ </g>
+ <g transform="translate(300,220)">
+ <polygon xml:id="polygonID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" points="-30 20 -30 -20 30 20 30 -20" />
+ <animateTransform attributeName="transform" xlink:href="#polygonID" type="rotate" values="0;360;180;360" dur="3s" />
+ <text y="60" text-anchor="middle"><polygon></text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-38-t.png b/test/svg/svg1.2/svg/animate-elem-38-t.png
new file mode 100644
index 0000000..4b4fa9b
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-38-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-38-t.svg b/test/svg/svg1.2/svg/animate-elem-38-t.svg
new file mode 100644
index 0000000..3dc4176
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-38-t.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events" preserveAspectRatio="none">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH, ED" owner="OA" desc="Tests animation of the viewBox attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-38-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to test animation of the viewBox attribute.</p>
+ <p>
+ This file tests animation of the viewBow attribute. The viewBox changes position and size several times. At each
+ new setting, a green indicator frame will flash a couple of times. This frame must only appear at the edges of
+ the SVG element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-38-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="elk" fill="rgb(246,255,129)" stroke="rgb(0,0,0)" transform="translate(40 5) scale(0.9 0.9)">
+ <path fill="rgb(191,48,0)" d="M39.4 149.4 C31 156.2 21.3 167 29.3 177.9 C39.6 191.8 60.5 190.6 70.3 176.5 C75.8 168.6 70.3 138.5 87.6 140.7 C101.1 142.4 97 174.9 96.6 184.7 C96.3 193.7 95.4 200.4 91.4 208.7 C88.2 215.2 82.2 221.7 81.6 228.7 C79.7 249.7 104.5 239.8 105.6 222.7 C106.7 205.9 101.8 190.2 103.6 173.7 C104.6 164.8 111 154.2 117.4 166.7 C121.5 174.8 117.1 183 115.6 190.7 C113.6 201 109 229.3 120.9 236.5 C134.1 244.5 141.3 215.2 139.7 205.7 C138.4 197.5 133.7 189.6 131.6 181.7 C130.7 178.3 126.2 161.8 128.8 158.9 C135.5 151.7 145.6 168.2 147.4 172.7 C150.5 180.4 150.3 189 147.8 196.7 C144.2 207.8 130.8 231.9 145.4 241.8 C166.7 256.2 164.8 218.6 163.4 208.7 C162.1 199.9 160.3 190.6 159.6 181.7 C158.7 169.5 163.8 167.6 175.4 167.7 C203.6 167.8 180.5 199.7 179.6 214.7 C179 224.2 183.4 236.6 194.7 237.7 C208.4 239 208.6 220.8 208.7 210.9 C208.9 189.8 197 171.5 198.9 150.8 C210.5 146.1 196.6 133.6 191.7 130.4 C182.6 124.5 172.3 122.1 161.7 120.6 C146.9 118.6 132 12
0.5 117.1 121 C110.5 121.2 104 121.4 97.5 120.1 C92.3 119 86.5 117.7 81.2 119.2 C77.7 120.2 71.6 122.5 68.6 124.6 C65.9 126.6 64.8 130.2 62.6 132.8 C56.4 140.2 46.8 143.3 39.5 149.3 z" />
+ <path d="M165.2 86.7 C184 67.3 201.2 47.5 188.2 19.7 C182.1 6.5 153.5 -12.8 154.5 13.9 C154.9 24.4 160.7 29.8 165.5 37.7 C168.8 43.2 172 60.8 158.7 57.6 C150.8 55.7 152.3 40.9 139.5 47.8 C130.2 52.8 133.8 60.1 138.3 66.8 C142.2 72.8 149.3 79.3 141.5 86 C134.6 91.9 126.9 84 127.3 75.9 C111 72.5 123.3 89.9 124.3 95.8 C114.3 103.2 117.2 93.4 111.2 90 C103.8 85.6 97 92.4 97.2 98 C97.4 105.8 105.2 105.2 96.7 113 C94 115.4 90.6 116.8 87.2 117.7 C85.5 118.2 83.8 118.6 82.1 119 C81.6 119.1 77.9 119.7 79.4 120.6 C80.9 121.4 82.8 120.7 84.4 120.7 C86 120.6 87.6 120.5 89.2 120.3 C92.5 120 95.9 119.5 99.2 118.9 C106.1 117.6 113 115.9 119.6 113.6 C126.4 111.3 133 108.5 139.3 105.3 C145.4 102.2 151.3 98.5 156.7 94.3 C159.7 92 162.5 89.5 165.1 86.8 z" />
+ <path d="M56.8 120.4 C57 120.6 57.3 120.8 57.5 121 C59.3 122.4 61.8 122.9 64.1 123.1 C65.3 123.3 66.6 123.3 67.8 123.4 C68.3 123.4 68.9 123.5 69.4 123.5 C69.7 123.5 70.5 123.3 70.8 123.6 C71.2 124.1 70.4 124.4 70.1 124.5 C68.8 125.1 67.3 124.7 66 124.9 C65.1 125 64.1 125.1 63.2 125.2 C59.5 125.5 55.8 125.8 52.1 126 C48.2 126.2 44.2 126.3 40.3 126.2 C36.4 126.1 32.5 125.8 28.6 125.3 C25 124.8 21.4 123.9 18 122.7 C14.9 121.5 11.8 120 9.2 117.9 C6.7 115.9 4.6 113.3 3.1 110.4 C1.5 107.1 0.7 103.3 0.6 99.6 C-0.1 81.8 22.3 81 17.9 99.6 C16.6 105.2 10.2 115 18.6 117.6 C28.6 120.7 26.5 109.2 24.8 104.7 C27.7 104.2 31.6 104.2 34.5 104.7 C34.3 109.3 33.6 117.7 40.6 117.6 C47.8 117.5 41.5 109.7 49.6 109.6 C57.6 109.5 53.3 116.4 56.9 120.3 z" />
+ <path fill="rgb(255,255,255)" d="M71.5 129.8 C72.3 131.6 75.3 131.5 75.4 129.3 C75.5 126.5 70.2 126.8 71.5 129.8" />
+ <path fill="rgb(255,255,255)" d="M80.1 130 C82.9 127.7 78.6 125 77.6 126.4 C76.6 127.9 77.6 132.1 80.1 130" />
+ </g>
+ <g stroke-width="5" fill="none" stroke="none">
+ <rect fill="none" x="0" y="0" width="300" height="300">
+ <animateColor attributeName="stroke" values="green; white" begin="1" dur="0.2" repeatCount="5" />
+ </rect>
+ <rect fill="none" x="100" y="100" width="100" height="100">
+ <animateColor attributeName="stroke" values="green; white" begin="3" dur="0.2" repeatCount="5" />
+ </rect>
+ <rect fill="none" x="0" y="100" width="100" height="100">
+ <animateColor attributeName="stroke" values="green; white" begin="5" dur="0.2" repeatCount="5" />
+ </rect>
+ <rect fill="none" x="200" y="0" width="100" height="100">
+ <animateColor attributeName="stroke" values="green; white" begin="7" dur="0.2" repeatCount="5" />
+ </rect>
+ <rect fill="none" x="100" y="0" width="200" height="200">
+ <animateColor attributeName="stroke" values="green; white" begin="9" dur="0.2" repeatCount="5" />
+ </rect>
+ <rect fill="none" x="0" y="100" width="200" height="200">
+ <animateColor attributeName="stroke" values="green; white" begin="11" dur="0.2" repeatCount="5" />
+ </rect>
+ <rect fill="none" x="0" y="100" width="300" height="200">
+ <animateColor attributeName="stroke" values="green; white" begin="13" dur="0.2" repeatCount="5" />
+ </rect>
+ <rect fill="none" x="0" y="0" width="300" height="300">
+ <animateColor attributeName="stroke" values="green; white" begin="15" dur="0.2" repeatCount="5" />
+ </rect>
+ </g>
+ <animate attributeName="viewBox" xlink:href="#svg-root" values="0 0 300 300; 0 0 300 300; 100 100 100 100; 100 100 100 100; 0 100 100 100; 0 100 100 100; 200 0 100 100; 200 0 100 100; 100 0 200 200; 100 0 200 200; 0 100 200 200; 0 100 200 200; 0 100 300 200; 0 100 300 200; 0 0 300 300; 0 0 300 300" keyTimes="0; 0.1; 0.15; 0.2; 0.25; 0.3; 0.35; 0.4; 0.45; 0.5; 0.55; 0.6; 0.65; 0.7; 0.75; 1" begin="0" dur="20" fill="freeze" />
+ <text x="5" y="240" font-size="14">Animation on: 'viewBox'. Flashing frame should</text>
+ <text x="5" y="260" font-size="14">only appear at the edges of the SVG element.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-39-t.png b/test/svg/svg1.2/svg/animate-elem-39-t.png
new file mode 100644
index 0000000..2ee685a
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-39-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-39-t.svg b/test/svg/svg1.2/svg/animate-elem-39-t.svg
new file mode 100644
index 0000000..de22d81
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-39-t.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Animation of xlink:href on the a, image and use elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-39-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test validates that the xlink:href attribute can be animated on the <a>, <image> and <use>
+ elements, using the <animate> or <set> animation elements.
+ </p>
+ <p>
+ For the <a> animation, showing on the left-most column, the number indicates the number of the animation
+ test currently linked by the xlink:href attribute. For example, when the xlink:href animated value is
+ "animate-elem-38-t.svg", the text displays "38". When the user clicks on the displayed number, the user agent
+ should open the corresponding link. For example, if the user clicks on 38, then the "animate-elem-38-t.svg" URI
+ should be followed. If the user clicks on 02, then the "animate-elem-02-t.svg" URI should be followed.
+ </p>
+ <p>
+ For the <image> animations, the image xlink:href attribute cycles through two values showing a sun set and
+ a picture of the sydney opera. The image should change every second and the images shown by the <set> and
+ <animate> animations should always match.
+ </p>
+ <p>
+ For the <use> animations, the use xlink:href attribute cycles through values "#useA" and "#useB" which
+ reference text elements displaying values "Use A" and "Use B". The change should happen every second and the text
+ shown for the two animations (<set> and <animation>) should always match.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-39-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <text xml:id="useA">Use A</text>
+ <text xml:id="useB">Use B</text>
+ <text xml:id="useC">Use C</text>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animate> on xlink:href</text>
+ <g>
+ <g transform="translate(60,90)">
+ <text text-anchor="middle" font-size="20" y="10"><set></text>
+ </g>
+ <g transform="translate(180,90)">
+ <a xlink:href="animate-elem-38-t.svg" text-anchor="middle" font-size="30">
+ <circle r="30" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" />
+ <text xml:id="initialAnchor" y="10" fill="gray" font-weight="bold">38</text>
+ <text xml:id="anchor1sto2s" y="10" display="none" fill="gray" font-weight="bold">02</text>
+ <set xml:id="hideInitial" xlink:href="#initialAnchor" attributeName="display" to="none" begin="1s;showAnchor.end+1s" dur="1s" />
+ <set xml:id="showAnchor" xlink:href="#anchor1sto2s" attributeName="display" to="inline" begin="1s;showAnchor.end+1s" dur="1s" />
+ <set attributeName="xlink:href" to="animate-elem-02-t.svg" begin="1s;showAnchor.end+1s" dur="1s" />
+ </a>
+ <text y="60" text-anchor="middle"><a></text>
+ </g>
+ <g transform="translate(300,90)">
+ <image x="-30" y="-30" width="60" height="60" xlink:href="data:image/jpg;base64,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">
+ <set attributeName="xlink:href" xml:id="imageHrefSet" to="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/4RX+RXhpZgAASUkqAAgAAAAJAA8BAgAGAAAAegAAABABAgAXAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAoAAAABsBBQABAAAAqAAAACgBAwABAAAAAgAAADIBAgAUAAAAsAAAABMCAwABAAAAAQAAAGmHBAABAAAAxAAAAGYFAABDYW5vbgBDYW5vbiBESUdJVEFMIElYVVMgMzAwAAAAAAAAAAAAALQAAAABAAAAtAAAAAEAAAAyMDAyOjAxOjE1IDA0OjQyOjU4ABsAmoIFAAEAAABWAwAAnYIFAAEAAABeAwAAAJAHAAQAAAAwMjEwA5ACABQAAAAOAgAABJACABQAAAAiAgAAAZEHAAQAAAABAgMAApEFAAEAAAA+AwAAAZIKAAEAAABGAwAAApIFAAEAAABOAwAABJIKAAEAAABmAwAABZIFAAEAAABuAwAABpIFAAEAAAB2AwAAB5IDAAEAAAAFAAAACZIDAAEAAAAAAAAACpIFAAEAAAB+AwAAfJIHAJoBAACGAwAAhpIHAAgBAAA2AgAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqADAAEAAABABgAAA6ADAAEAAACwBAAABaAEAAEAAAAwBQAADqIFAAEAAAAgBQAAD6IFAAEAAAAoBQAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAAAKMHAAEAAAADAAAAAAAAADIwMDI6MDE6MTUgMDQ6NDI6NTgAMjAwMjowMToxNSAwNDo0Mjo1OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAPUAAAAgAAAA1QAAACAAAAABAAAAyAAAAGQAAAAKAAAAAAAAAAMAAACs3QIAAAABAP//AADoAwAAMAEAACAAAAAMAAEAAwAmAAAAHAQAAAIAAwAEAAAAaAQAAAMAAwAEAAAAcAQAAAQAAwAaAAAAeAQAAAAAAwAGAAAArAQAAAAAAwAEAAAAuAQAAAYAAgAgAAAAwAQAAAcAAgAYAAAA4AQAAAgABAABAAAAcVYQAAkAAgAgAAAA+AQAABAABAABAAAAAAAEAQ0AAwAEAAAAGAUAAAAAAABMAAIAAAADAAEAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAwABAAEwAAD/////BgKtACAAdADVAP//AAAAAAAAAAAAAP//AABABkAGAgAwAdMAngAAAAAAAAAAADQAAACPAD8B1QD1AAAAAAAAAAEAAwAAAAAAAAAHMAAAAAAAAAAA//8AANUA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElNRzpESUdJVEFMIElYVVMgMzAwIEpQRUcAAAAAAAAARmlybXdhcmUgVmVyc2lvbiAxLjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAPQA9AD0AABqGADOAAAAgE8SAJsAAAAEAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAEQAwABAAAAQAYAAAIQAwABAAAAsAQAAAAAAAAGAAM
BAwABAAAABgAAABoBBQABAAAAtAUAABsBBQABAAAAvAUAACgBAwABAAAAAgAAAAECBAABAAAA9AUAAAICBAABAAAA7g8AAAAAAAC0AAAAAQAAALQAAAABAAAA//////////////////////////////////////////////////9//////////////9j/2wCEAAkGBggGBQkIBwgKCQkLDRYPDQwMDRwTFRAWIR0jIiEcIB8kKTQsJCcxJx4fLT0tMTY3Ojo6Iio/RD44QjM3OTYBCQkJDAoMFAwMFA8KCgoPGhoKChoaTxoaGhoaT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT//AABEIAHgAoAMBIQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOxApcV7J5goUngDNIVw
eaBC80oYjvRYLseszAY60FjI3c1HLZ3L5r6DjG46jFRFjTVmJtoA5qW3j3vuIBAokuVNgnzOxpKVA5xUNyY3TB4Fc0b3Oh2sZbqAxx0pMV2pnG9xNtJincA20hWmBMBT1XJrJuxaLf7pU4wKqScuayp3vqaTtbQABjmnRJunQdiRVtuz8kQlsa0kUUg+ZFP4VVeyUNuiJB9DXn060oabx6o7Z0oy12l3I5pMDawwcVTIrupbX6PY46u9uq3ExT0kZBxWrV9DNOw4zue9MZi3U0lFIbm2NwKTFUIMUmKYgxSYoAmAFP2+9Z3NLCbaTbzRcmw9baR13KpIp8ETLcpuUjnvWcqsbNXXMk9DSNOV07aX3NInFNPTmvLO8iljWVcN19az2hZZNmMkniuzC1LXg9t0c2Ihe0lv1JZrGWEZIBX1FV8V1U6iqK6+aOacHB2fyYYorQkMUmKYgxSYoEGKTFAyYCnYrM0FCM33VJ+go8mQfwN+VS5xWjaTDlk9kzSRBHGq+gpoO6ZB6mvLk7tvuz0ErK3YlkIQVAz0hkZamhlWRXIztNCdtVuDV9zRDBlBGCCKz7uyO8NCuQeoHatqFTkld/C9zOrDnj5rYYunSn7xVfqaf/Zn/TTn/drpli4p6Lm89jnjhn1dvIo3TRWt5HbGQNNICwUdQB3NGK3pVPaR5tvIyqQ5HbfzDFJitDMMUYoAlxSgVmaGlAAkCjvjNKeTXlzd5N92ehFWSXZCHmoyQjBj2qGUMkn3GojJQA0yUKGf7ozQBbtd6x4fgZ4qxmhMGGcCsjxP4ktvDGiS39yQSPljjzy79hTEcN8P7y51mbUNd1KQGSZxGrHgDP8ACPyFdtivRw1vZ6dHqcNe/P6rQcIXPRGP4UxsLJ5bEB8Z298etbc8b2ur9jLkklezt3DFGKsRLQKzLNFJULiPeofGduecfSiR/wB4qD6mvIb/ADPSQuPWqt+3lxKfVgKT2AqmSk3E9
KALUFkW+aTgelWtqhhGgx647Cj+kBI/3Pl7UwOCMijqBICGXNcj448Ax+MfLkN/NbyQqRGmA0fPcj+tMCPwz8PRpWnWcN/ePKYG83yovljL+p7nH4V1sjQWcLSyFIo0GWduAB9apSaVk7J7onlTd+q2Z5n4x+MKWxa08PKJW+610w4B/wBkd/rWr4Es7pdE/tDUpHlvb7EsjyHJ2/wj8j+tb4WN537IyxDtC3dnSYpMV6Jwkt8sktm6wSLFMynY5G7afpXkl3Y61qVyY7zVrkxkncN52kewBx+lediJuKWrSfQ76EVJvRO3Ut6zo0+p3Ed19rc3MUYRC3QADjGOhrofCGvz6bpPk61cyTXab9ryMWLDjA3f56VxKVzqcbGA/wAWdZtrly8CGLcdvm2xAx9Q2f0rc0P4lDxPKbae2t4XjXzN0UrENj/ZZRj86p/CQtzoZryKCJpZpFSNeSxPArk7z4iTC/UaMtkYUJ3SXT43n0AH86Fq7feGxq6Z8VbOWdLfVbY20zEKrwSCaMn8OR+VXbn4laFp9xLDJJcSzLkuIoSQvtk4FNiSuZU3xhtCT9i0i7nHrJIkf9TWx4Y8YxeIIpC8Is5g3+pMofH48UPa4Lsak3iTTbGyuJ7m6RI7Ztsp67T9PxqDTPG2ia7c/ZdMvBNMRu27COO55FF9ANHV9Zs9D097u+lEcSD8WPoBXhPjf4g6j4puWt4w9tYqflhBwW929aa19AMTw9aW93rlnDqEghtjMDIzdMelfREQR4lMJUxkfKV6Y9q7sK1Z9zkxKd12HbKPLrsucyRxsuuXeq25SOUKu8gPESpOPftWMblrWcLJueI/dmHI/E/1rw61R1Ja9NkevSgoR069TQVy6EoVbjiqsy3ZiO+GFXGNoEpIP47axNSgEvPNEF2trI0udqtKRkAc8bKbaaVGkpntbK383JV2W4ZcH0+7zVXttdE2vvZly4tLq8h8q5t4pIyeVN45H/
oFVR4cjwB/Zdpjtm6f/wCJpKVurHy+SLFto2m7leK3iEqHBKMTtYe9OGmafcM8hgjkdnIdjzn1pOTGoortoMIkbytNsiueCzkE/wDjpp8FobWbZb2llE57JMQf/QafN5sXL5IfPo8l4jR3SoiH5iEkLZYdCQRin2tzc6FeR3S+XIkYwX+6Rn17VUZW03RMoX12Zj+JdQufEOprcXOr26LH/q4lOQtZc2keYd0uqQMQOpQZquZ9mRZdyGDRx5+WvbfAPH3Rmuy0XXLzw/A/2cG7gJ4QPuVfy71pTquDvYmcFNWbNmx+JFoqyfb4pyxclfLjXCr2H3ucetaVt4+0W4OPOkiP/TRMfrXbHFQe90zklhpLazRyMNxZ21v5K288aHPApIb3TbW0S2iSZUUbQCCePQ15soy6pps7ozj0asgtLnTbIsIXmVDzsIOF+lWDqliwO6duTkEjpUtd0ylLzRQ1KPS9TMZkvZImiyFaNtp5x/hViyfT9Ph8q3uiUzn5jk/nQ2rWBb3Lkd/bYybhT7U4X9sDj7SnHvU6FXZS8i3NvPHHqAjMzM+4EAqSe1Q6fNp+kWotZNTEzK2Q0jYNVvsTe2uyJW16yQEC+gbHvTtN8S6PaXsk1xHFdyOVKlwMIADkA571SjZ9/IHJNb2H3niawu7xpYpEgjzxGqggD65rOnbTjayQx3yqkyjOV3EHGOxH5UW12Fdd9jMtvDmhxXsdw140qoM+U0eVc+/tTNV8PWd/J5kV4kSseALfvgZ6DNac2mxHKu5WPgm23AW+qOwZQDut2Xn04zxnFT2ng9LEiSLWbm3nGdzRWz4Ht2zS5vIfL5mja2chB+33kF1nAz5Tow/HFOm0mFoSI7xAwPyoyEjHfnH9PWpv6jS80dK8cJGdwz9aiFvHnOBXqSVzzouwvkJnBVc/SnizQ/8ALMflXPKKNVJgbCIjmMflUf2C3brEpH+7kVm4ItSGtpdqRzBHj12CoG0
mzbAMMeO3FR7MrmFGkWfCmEfhUM3hyykk3FXBPo5oVJBzsrt4QsHck+aPo/8A9aoz4K08E/vJP0P9Kr2fYnnI5PBViQQJZF/Af4VA3gi1B4nbp/cWj2TH7Qhk8GQAACZuneMCq0vhDYMpMufdf/r1SovuJ1UVz4WlLcNH9cH/ABqQeDLhjlZIPx3CmsPJ9SXWS6Cnwhfx/ceL8JmH9KP+Ea1ZD8s34i5Yf0p/Vp+TBYiPmd35eOgIoAJHBH511M50O29C4U47mnhQykBiT6BqxZqhwJTG4N9OtSrtY98+/Ws5eRcfMCgJzj2yKjaMZ64x6VCZTQ5VULyfxNIGRgR5gb2NUri0HeUj5GUcdhjpQzIBhlyvrkD+tUtfInReY37RbO2zcPTOajaKFXz5hI+uaaUkDcWRzRIVzge2BVaXYCBzitY/kZSsvmQmNQc5qSEAg7cH29K0iRIcSGGGcj2yKcANuA/Hck5NWQSzzKR8u/B6hRinIwAA+bH8qybNUSD/AH2A9MnFPDYXA5H51k0aIRkDMA0av6e1SCFduCij6VnJtFJJiGCI9ET64puVU4wc+oBqE2y7JApTdtXeD64OKcx6DJB9s1RIi5ZuCAMdQc0hWRELABiO3JNVdE2ZD+9UBinPcBj/AIUiXEj5DAoMd8mrsmTdr5jHBA+VcH1AzUTKyj69+laRsQ7kZXPynDe2KdHDGP8Alnj8K0RmxzBAOij0HSnxIsikMiqPUNVCHS28RxvJJ+tMEaRP8oOPUtmsWaIsIePf2pySgdT9NwrFo1TFNxs5YoR2waYssLO3mJHk9e+aVn0uO662BhCWyhUevz8flTiM/wCrOf8AgVRfv99i15fdcbmVcMUZiB0UgioJL64QkfZZAPUNVxSe1iJSa6MbHfSsQVtnXuS3FTfanYjfGoxxgfMavl8yObyHl02kLGcn/pkaYJJBn5MA+vGaSXdjv2RCbmYEqVXPs1NeUsvJXPrW
kUlsQ5N76EQjycb2+meKsIDj1x6CtIoiV+o/eQvfHuKA/wAvYfhVkjC0gHVQfXFRkXDYO9GI6DFYNmthn+mZz8uP9lQamjmuVA/csffgVDsylddCdLhgp3oE79aie5lxhFWQexJqeW3Urm8vkVvt8gfbIoA/3CDVhJVxlCg+oNJx82ClforoZNdXce0pFGy/3gc5pq307H96kZB7KDQoIHN9kSf2gVOFXr2KkU7+1sAB1z9Oark8xe0EXU4n6RsD9KSd4WQFhz24zTUXHzE5KXkQOY9uMNjsNtIEj2/xfTbjNap+RnZdxu1edq7f6frT0hdlyJG/4C55ql9xLEMjxcBps/gc09LknO/cfZkH+NNaAOUTyjLsY19AaUzJHncWPrmsWro1TsC38J6tge4NONxBMAFc59FJrFprbU1Ti9HoD2sLJhmbHo3SmJZwA5Bj46dqqM7kygiVJkiB+YnPbPFMa9jfcFwSPek43dxqSSsNa7mUbvLVB7tSHUHWLcYmHtkHNCh5sXP5EB1p0TAtHx6g4/lU0OqQyLlrd93q4z+tVZ9G0LnXVCyXdw5/cBMf7uaga+uQwLxIT6gYqlHzZLl5KwNcs7ZljOT6UmYznkp+JFaIhjMRqM+ac/72aljDsR+/z9GqkTYk8uRTnex+rVIszIMfOSfamB//2apR82S5eSsDXLO2ZYzk+lJmM//Y/+0O2lBob3Rvc2hvcCAzLjAAOEJJTQPtClJlc29sdXRpb24AAAAAEABIAAAAAQACAEgAAAABAAI4QklNBA0YRlggR2xvYmFsIExpZ2h0aW5nIEFuZ2xlAAAAAAQAAAAeOEJJTQQZEkZYIEdsb2JhbCBBbHRpdHVkZQAAAAAEAAAAHjhCSU0D8wtQcmludCBGbGFncwAAAAkAAAAAAAAAAAEAOEJJTQQKDkNvcHlyaWdodCBGbGFnAAAAAAEAADhCSU0nEBRKYXBhbmVzZSBQcmludCBGb
GFncwAAAAAKAAEAAAAAAAAAAjhCSU0D9RdDb2xvciBIYWxmdG9uZSBTZXR0aW5ncwAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gXQ29sb3IgVHJhbnNmZXIgU2V0dGluZ3MAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAZHdWlkZXMAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4NVVJMIG92ZXJyaWRlcwAAAAQAAAAAOEJJTQQaBlNsaWNlcwAAAAB3AAAABgAAAAAAAAAAAAAAWgAAAHgAAAALAG8AcABlAHIAYQBfAGgAbwB1AHMAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAeAAAAFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEJJTQQREUlDQyBVbnRhZ2dlZCBGbGFnAAAAAQEAOEJJTQQUF0xheWVyIElEIEdlbmVyYXRvciBCYXNlAAAABAAAAAE4QklNBAwVTmV3IFdpbmRvd3MgVGh1bWJuYWlsAAALLwAAAAEAAABwAAAAVAAAAVAAAG5AAAALEwAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDA
wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFQAcAMBIgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AOmAU2VPf9ETHJSDURr7GCG6BaJJ6NMeKJzdpjwTahTMkkn5pnTGunx0SvZHdKKcoMDw0lrhIjXRRrrdZu1gjkHlX2yK2DwaPyKFjQ/nQ/vDlVvvGpsDzDY9nQUT5FoPBa6FGXcSiW1uY4h2s8HxTPrex217S13gdFZiYkDY2wGwTvo2an1VMiQh5F1VjdsSeyBCUICAu7KuM1VMITQiEJoT7WMNqbapwlCNqf/Q6sBTZW95hgkjUplZxPovI5JA+5Xck+GJLVhHikAiZjWCxu8DbMnVWbX+09/xTmAQO5/ImcNCfAKpPIZ1daNiEBG66snlrWD4D8iC53igesXAGeQITbydBr5JlrkhcJDiNxaQ4D4K48V31gO9zHag9xPcKqzGfAdZpOjWjklHawVAMBkfx5KVnTwVQa4wXk+54A7dynODW1pc63Y1oLnvdDWtaBue97ifaxjfpK0NeFx3+Md/1it
6fX03peHc/DySPtmXUN8ydteJtq3W11bvfc9zP0v80pffyfvfgFnsw7Ovi5VGZQ3KxiXY9hd6NhEb2NcWNu2/mtt272fyEWFHpODlMxG0WUfZKMcMpxhbHqvrYxodfbSwv9H1Ld/p1P8A0npfzv6RR631PovQMcX9UyjW5wmrHrAddZH+ipn/AMEs2VKwM8BEXLWtdGA4ZWaGl90kJQhYN1uVh05N1P2Z17fUFBO5zGO91LbXQz9N6Wx9vt9n82jwpQbAPdjqi//R6D6xX9Qx+n+r0p9NWRuaHeqN52nT9CyW/pGrnas3602YRZZ1U15DrRcLamBpDWtLPs3t/wAE/wDnLPalaMzJqpdl0323k7R7txpDnH9J6jj9Gpuz6KakZlVjab632jtkMaQyR+bcyT6Lv/An/mJZcspHSxFOPGIjWiXSwfrP1LG6Re/qbftnWatwoZWw7Lmy30f5oNbvb+k9T+bVKr/GcW2DG6p0v7K+0hm8Pe0N3e3dtsbY13P76Fdhm1hrc/IIJgu0a4T+axzam+z+V/4IqdJtN/2V1GW2qpz2G+xrHVbBP2d9T3U/ztm36DvoKMSOui4xHd62/qfT8PGORk5NdWPUIdYXAzHthjQdz3Pj2LGx/wDGNg02usdjUuxjGwjIAytv77qXsON7/wDRttVduIwmRZYSNTLav/edK2Mf03tNl++xtRa4MhrX+19x9Khrv0aQl4JMPF23/wCMD6tsZRkOdkuGRW6yqsVDeGjcLH2TZsb/ADbm/SVGz/Gf0h5Apw7yyRNll1LC3X6fpNdY93/FrPx8pt2TkUV1PaKNgNjmQHEn3Gt30XMYpWFja33C+6QC8MYWdtdjG+kXJcfgrg8Xrx1/o7Ayx+ZWGW1WXNM/mVAWW7o+g/Z9Gt300uk/WPpfV7jX019zrGNFjvUpfUdjtGmsv/nNzv3Fy13S3041Vue4ltx/mTZVc2RB22Nqr/N3LPtycnp4fZgM
ymWAij7NW4hz2Wbv0mM/32VtRBO1I4eoL0H1w+u/7GZZhdJr+09Qb7brtu6nGJ/NsI9luV/wX0Kv8KvOul+n1P6wY9vX8hxquuD8vJvl5cGje2l+jttdzw2r9yqtWG4+O3Edl2dKvrq3loabbd5MbnvcyPo7js9T8+z/AItV2ZWDW8XO6blBp9zQXOLYafcR6gc16cCQQaWEWKt9iIL/AHghweNwc2C0g67mub7dqbYV5vifWTIxqaqsa+7Bqa8PrxcmpzWF8+r7bqf55tn+Eru9Nlq1/wDnn1+gzk4+PY0Qfax7ZB/PZayx9StDmY9QQ1zy8uhBf//SC/pmKPoOIJ7Ne7+9MOnVNH85aB4ixytuDWHbMHwCeAAZPPYj+KsSxw/dH2NeM5dz9rXHTTGl14/tlI4FjSP1rI8hvn8FbDARMRroSf4Byk3cCQWkjsY5CiOOPYMgnLuWj9iuDdMy6PEkEf8AUqIx8sGRnWgdx7T/AN9WkS3ktOneFGAHTB1TeCPZdxy7uZkYXUrdhZ1S1gHGgjy42qpZ0jrTy6OruI7BzT+UPW+Tydp2nvIj/NTzXzHuHiATHyThCKDOXd5odE6wyNnUmeGrXAfDlMenfWMBv+UK3bRDY3cf5hXSOuLCP0YduMl2g/6MlRc2ppLgzbPYnUf2DuR9sI9yXd5l+P8AWVp3DMa4wRydPL3M9qGLPrQ1wAu3RwHODm/9L81dHZsk7WwSBogOaOQ2T3AMpwwx8VpzScYH63kfzm4Dgeo0/wDVOSFv1tYI2jaeRLII/lAXLcZu2CA4eIOhUgNCdr4/OiSnfd4eP4f96t+8T8H/05PZkB28OboPzi7/AL6p1OJEz8Cf9qC4vBEPY13jAJj71HZlfmPZH9Uz+VWZFrC240tPmR2EGfkkHMaQBo4nUOEx+IVXfcwAWmrXncQD9wCT8qn6IDNwGo2kg/cmEWuum4TYCI2OB8AZ/wCqc1DLniR7te7SQ
NP5YZ7VUD73O2iljmd/T0Mf5zXf9FGDrhpWAHRoHgx83Nc5NqlwNsn5uMyA+yHd9Hc+b9j0qs3FfoHbxoZa0kT/AJqGLuonSxrXDuGz/wBUXKX2jJA1phvYOg/IJwH8rWkn+QZzjuJdIYXcgkA6eA9Ru1QYamglu93jALv836X/AFSTb8h3/aQx5QP+qTWixxaHVWb+4B0H4ohHl+SxdU7hrpI5cDz/AGoQvdOjRH3H7lElu73bh81DfXJDXAHydJ/KpAsJbQIiCSPiRP4p2BocXAy7xMfwQCS0Ai+Y/N3NEfDcFJj73HVu8eHt/wC+7U+1r//UGz0tvs/nO+6N0/20x+3bvZt2x7d0fjuXl6SsS2aw3/g+qV/bJHq7Nvlz89ym7kT6cfPn+wvKElGN/wDvWQ7f98+rH7Rr6e3nSP8AzJB/WIHr7v8Arcx5bvzti8vSTvs/7pb9v7H039N6b9vq+XO3+xv/ADkAftLc3Z9q/wCjt+Xqe1ecpIlH2vp1vrbB9t3bZ1mN3/R/QquPT3D0/V2eUxH/AFK85STo/RbL6/V9Lb638rbP50Qmd6kGfS51mV5qknrX0+v0tv5v9nd/FPp+bO3vG3/0Z7l5ekih/9kAOEJJTQQhGlZlcnNpb24gY29tcGF0aWJpbGl0eSBpbmZvAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAANgAuADAAAAABADhCSU0EBgxKUEVHIFF1YWxpdHkAAAAAB//+AAAAAQEA/+4ADkFkb2JlAGSAAAAAAf/bAIQAFBERGhIaKRgYKTMnICczJxwcHBwnIhcXFxcXIhEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEVGhohHSEiGBgiFA4ODhQUDg4ODhQRDAwMDAwREQwMDA
wMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAWgB4AwEiAAIRAQMRAf/dAAQACP/EARsAAAMBAQEBAQEBAQEAAAAAAAEAAgMEBQYHCAkKCwEBAQEBAQEBAQEBAQEAAAAAAAECAwQFBgcICQoLEAACAgEDAgMEBwYDAwYCATUBAAIRAyESMQRBUSITYXEygZGxQqEF0cEU8FIjcjNi4YLxQzSSorIV0lMkc8JjBoOT4vKjRFRkJTVFFiZ0NlVls4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9hEAAgIABQEGBgEDAQMFAwYvAAERAiEDMUESUWFxgZEiEzLwobEEwdHh8UJSI2JyFJIzgkMkorI0U0Rjc8LSg5OjVOLyBRUlBhYmNWRFVTZ0ZbOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hv/aAAwDAQACEQMRAD8A9dIiTwoDYJi+o85BjSGibVoDGMjqFN3RdsOgbIvl5O8M6Kso5pRIYt2yRPycqd1cow8CoanV33gPMrWpCcFZCJcOdNIaiApFNUtNITSppUD/0PaSrpiGtvpbhScEpcGdF32gCmigvG1pOqrAwAAQSyZVoxucGiyWsVAEON3w6RgQbUgGTF3j9DIwyL0WrtXaRjijlnD04mUiAByw+L1f4kOt6uOCEqwYzuyS+zOWP/31ifcx/wA2InEGiLelbTqZtWNCVay7cETPJIRiO8izCQnESHBFu009DDTQqmlaQ//R9bqs8elh6kgSP8IeDH+MmUZShilYraJfbXP1ks8KiAI9/wDE82OYlpwfB1a+yJWu7PV6L8Tj1tjaYGHxCTcfxXpJGvUA/qEovjysWQDfjfxPBLpISu47SNfJJ5ybg+p9SMyZRIMTwQ55epxYK9WQjfD5GCWXBAQjZA/i2f8AbcJdNOUjMynuPe4KRB9Thy4px3YpCQ8Ync2ckMY88gP6jtf
k49NGN5BM2QYk2xL8Ph2s1/T/AO/VIg+rx9RjykjHKMq/gludgbflMEJdLLdCwT7YNZo5swAlI7QTLbu/i/8AKmFSIPo/2TD6nqbI7/4trxfif4xi/Dxt+LKeIfw/+PfNH4hk6bp/Rx0JjieSXwx/9+PiT6eWQ7pGJJ5lu+JskOnpZZvxjqonMbjHzyj9iMY/7v8A8yP1z8b0ccvTz3wkIn2S+J9+P4vGNDLEg/bl/wDAnrSyRztVs9OleWH4n009BOv6gVevJdTnxZ//0sSCAImAoeBWRMzZhqOPM9BJPKu3RGFdmXqS7wP0uOSEMkt08crHte0Jq3PE1yOYZa+zJP7QB9mX0PTtZMXPEvI4JjHKO0idXu0QevgNdsg+iIrsbxHI82H4nCE9+3cRp5wjJ+JY8hJmDR+yH0vT91olgHgD8m8ScjxcuTps/wAYkaG0fv6TOWXTZQBUogaAD/40+ueniR8I+hyl00DzEfQ3iycjyPR6Q95gfv8A+UnaEsGPSE5iP8JO+P8A7rez9kx3rEN/smH+FvBk5o5Tl6aX2iFen9ixfw/eVXtsvNH/06J1oNA+DBjE9liaezOKNBomrLIl4JJLk0VXtQdGdDoQgHwclLGq34MkS7EfNz/mX2+9pDY252Y66tDepvwpoBd6uZtJmfH7mTO3SMsFW1TAIDYmPEOkZDEX3VIKtB//1J0lwLX04ns19l55c93qzkb+mBxakyHA+lxj/qeg/P5MGBnsMvY3t2jU2svm49+6YRcowJ5+9aA03UiXbhwyc9vmgdIG74ZLu2nWX3PHj57fJ6u3b/V8TQEzB+0iz73Lx4SP3pqMlX4hom+AQx37uw4/N0QmMfaqnnsqB//Z" begin="1s;imageHrefSet.end+1s" dur="1s" />
+ </image>
+ <text y="60" text-anchor="middle"><image></text>
+ </g>
+ <g transform="translate(420,90)">
+ <use xlink:href="#useA" font-size="30" fill="rgb(230,230,230)" text-anchor="middle" stroke="rgb(255,180,0)" font-weight="bold">
+ <set xml:id="useSet" attributeName="xlink:href" to="#useB" begin="0s;useSet.end+1s" dur="1s" />
+ </use>
+ <text y="60" text-anchor="middle"><use></text>
+ </g>
+ <g transform="translate(60,210)">
+ <text text-anchor="middle" font-size="20" y="10"><animate></text>
+ </g>
+ <g transform="translate(180,210)">
+ <a xlink:href="animate-elem-09-t.svg" text-anchor="middle" font-size="30">
+ <circle r="30" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" />
+ <text xml:id="initialAnchor2" y="10" fill="gray" font-weight="bold">09</text>
+ <text xml:id="anchor1sto2s2" y="10" display="none" fill="gray" font-weight="bold">03</text>
+ <set xml:id="hideInitial2" xlink:href="#initialAnchor2" attributeName="display" to="none" begin="1s;showAnchor2.end+1s" dur="1s" />
+ <set xml:id="showAnchor2" xlink:href="#anchor1sto2s2" attributeName="display" to="inline" begin="1s;showAnchor2.end+1s" dur="1s" />
+ <animate attributeName="xlink:href" from="animate-elem-09-t.svg" to="animate-elem-03-t.svg" begin="1s;showAnchor2.end+1s" dur="1s" />
+ </a>
+ <text y="60" text-anchor="middle"><a></text>
+ </g>
+ <g transform="translate(300,210)">
+ <image x="-30" y="-30" width="60" height="60" xlink:href="data:image/jpg;base64,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">
+ <animate attributeName="xlink:href" xml:id="imageHrefAnimate" begin="1s;imageHrefAnimate.end" dur="2s" to="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRM
FYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9
o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIKXzRVdgRTc+tO4rFrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqa
gnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyod1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yM
fKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcdaDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOKAD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn
/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kb
wqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wBPxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrMe2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEA
g0gmDHABoopFBvyO9LuJoooEf//Z" from="data:image/jpeg;base64,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" />
+ </image>
+ <text y="60" text-anchor="middle"><image></text>
+ </g>
+ <g transform="translate(420,210)">
+ <use xlink:href="#useA" font-size="30" fill="rgb(230,230,230)" text-anchor="middle" stroke="rgb(255,180,0)" font-weight="bold">
+ <animate xml:id="useAnimate" attributeName="xlink:href" from="#useB" to="#useA" begin="0s;useAnimate.end" dur="2s" />
+ </use>
+ <text y="60" text-anchor="middle"><use></text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-40-t.png b/test/svg/svg1.2/svg/animate-elem-40-t.png
new file mode 100644
index 0000000..c805ab7
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-40-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-40-t.svg b/test/svg/svg1.2/svg/animate-elem-40-t.svg
new file mode 100644
index 0000000..d1882a9
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-40-t.svg
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Animation of x/y on use, image, rect and text. Animation of width/height on image and rect." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-40-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test validates that the x and y attributes can be animated on <use>, <image>, <rect> and
+ <text> elements. The test also validates that the width and height attributes can be animated on <image>
+ and <rect>
+ </p>
+ <p>
+ For x and y animation, each test shows the reference positions at specific points in the animation. These markers
+ are highlighted at the time the target element's x/y position should match that of the marker. For the <text>
+ element, there are two tests. The first one tests animating a single value on the text's x and y attributes. The
+ second one tests animating x, y values where there are values for each of the text's characters. For that test
+ (bottom left), there is a set of reference markers for each of the characters ('1' and '2').
+ </p>
+ <p>
+ For width and height animation (the two tests on the bottom right), the outline showing the expected width and
+ height at given points in the animation is highlighted at the time the marker's width and height should match that
+ of the target element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-40-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="posMarker" x="-3" y="-3" width="6" height="6" />
+ <g xml:id="markerGroup" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <use xml:id="topLeft" xlink:href="#posMarker" x="-15" y="-15" />
+ <use xml:id="topRight" xlink:href="#posMarker" x="15" y="-15" />
+ <use xml:id="bottomRight" xlink:href="#posMarker" x="15" y="15" />
+ <use xml:id="bottomLeft" xlink:href="#posMarker" x="-15" y="15" />
+ <set xlink:href="#topLeft" attributeName="fill" to="rgb(255,180,0)" begin="0s;4s" dur="0.2s" />
+ <set xlink:href="#topRight" attributeName="fill" to="rgb(255,180,0)" begin="1s" dur="0.2s" />
+ <set xlink:href="#bottomRight" attributeName="fill" to="rgb(255,180,0)" begin="2s" dur="0.2s" />
+ <set xlink:href="#bottomLeft" attributeName="fill" to="rgb(255,180,0)" begin="3s" dur="0.2s" />
+ </g>
+ <path xml:id="pathID" d="M 0 0 Q 20 0 20 -20 Q 0 -20 0 0 Q 0 -20 -20 -20 Q -20 0 0 0 Q -20 0 -20 20 Q 0 20 0 0 Q 0 20 20 20 Q20 0 0 0 Z" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" />
+ </defs>
+ <defs>
+ <font xml:id="MyDecFont" horiz-adv-x="466">
+ <font-face font-family="MyDecFont" />
+ <missing-glyph horiz-adv-x="233" d="M 50 0 L50 700 200 700 200 0 z" />
+ <glyph unicode="1" glyph-name="one" horiz-adv-x="558" d="M458 716L100 534V428L357 552V97H241V380L140 328V0H458V716Z" />
+ <glyph unicode="2" glyph-name="two" horiz-adv-x="585" d="M69 509Q82 523 102 541T147 575T203 603T268 614Q311 614 342 599T392 560T421 505T430 443Q430 420 423 398T405 352L343 201H444L492 309Q508 345 519 379T531 448Q531 504 511 552T454 635T369 691T262 711Q231 711 204 704T152 684T106 655T69 623V509ZM535 97H187L309 422Q316 441 315 457T306 483T287 500T265 506Q261 506 254 505T239 499T224 485T211 461L50 0H535V97Z" />
+ <glyph unicode="3" glyph-name="three" horiz-adv-x="542" d="M58 553Q109 588 148 601T220 614Q255 614 282 604T328 575T356 535T366 488Q366 475 364 460T355 429T336 397T302 368Q311 363 325 353T352 326T376 286T386 232Q386 203 376 177T345 130T295 98T227 86Q179 86 134 104T50 153V45Q59 38 74 29T111 10T163 -5T231 -11Q296 -11 345 8T426 58T475 131T492 218Q492 251 486 276T469 320T446 354T421 378Q438 396 454 425T470 503Q470 546 454 584T406 650T332 695T233 711Q179 711 137 696T58 655V553ZM156 255Q156 229 173 212T217 194Q243 194 260 211T278 255Q278 281 261 298T217 316Q191 316 174 299T156 255ZM161 467Q161 444 177 428T216 412Q225 412 234 415T252 425T265 442T271 467Q271 491 256 506T216 522Q202 522 192 517T174 503T164 486T161 467Z" />
+ </font>
+ </defs>
+ <defs>
+ <g xml:id="markerGroup2" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <use xml:id="topLeft2" xlink:href="#posMarker" x="-15" y="-15" />
+ <use xml:id="topRight2" xlink:href="#posMarker" x="15" y="-15" />
+ <use xml:id="bottomRight2" xlink:href="#posMarker" x="15" y="15" />
+ <use xml:id="bottomLeft2" xlink:href="#posMarker" x="-15" y="15" />
+ <set xlink:href="#topLeft2" attributeName="fill" to="rgb(255,180,0)" begin="0s;4s" dur="0.2s" />
+ <set xlink:href="#topRight2" attributeName="fill" to="rgb(255,180,0)" begin="3s" dur="0.2s" />
+ <set xlink:href="#bottomRight2" attributeName="fill" to="rgb(255,180,0)" begin="2s" dur="0.2s" />
+ <set xlink:href="#bottomLeft2" attributeName="fill" to="rgb(255,180,0)" begin="1s" dur="0.2s" />
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animate> of x/y/width/height</text>
+ <g font-size="14">
+ <g transform="translate(60,90)">
+ <use xlink:href="#pathID" x="-15" y="-15">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s" />
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s" />
+ </use>
+ <use xlink:href="#markerGroup" />
+ <text text-anchor="middle" y="60">x/y on <use></text>
+ </g>
+ <g transform="translate(180,90)">
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5
pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIK
XzRVdgRTc+tO4r FrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqagnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyo
d1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yMfKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcd
aDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOK AD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h
7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kbwqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wB
PxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrM e2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEAg0gmDHABoopFBvyO9LuJoooEf//Z" x="-15" y="-15" width="50" height="50" preserveAspectRati
o="none">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s" />
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s" />
+ </image>
+ <use xlink:href="#markerGroup" />
+ <text text-anchor="middle" y="60">x/y on <image></text>
+ </g>
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="50" height="20" fill="black" stroke="rgb(255,180,0)">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s" />
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s" />
+ </rect>
+ <use xlink:href="#markerGroup" />
+ <text text-anchor="middle" y="60">x/y on <rect></text>
+ </g>
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="50" height="20" fill="black" stroke="rgb(255,180,0)">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s" />
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s" />
+ </rect>
+ <use xlink:href="#markerGroup" />
+ <text text-anchor="middle" y="60">x/y on <rect></text>
+ </g>
+ <g transform="translate(420,90)">
+ <text xml:id="textID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" font-family="MyDecFont" font-size="40" x="-15" y="-15">123</text>
+ <animate xlink:href="#textID" attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s" />
+ <animate xlink:href="#textID" attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s" />
+ <use xlink:href="#markerGroup" />
+ <text text-anchor="middle" y="60">x/y on <text></text>
+ </g>
+ <g transform="translate(60,210)">
+ <text xml:id="text2ID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" font-family="MyDecFont" font-size="40" x="-35 5" y="-15 -15">12</text>
+ <animate xlink:href="#text2ID" attributeName="x" values="-35 5;-5 5;-5 35;-35 35;-35 5" begin="0s" dur="4s" />
+ <animate xlink:href="#text2ID" attributeName="y" values="-15 -15;-15 15;15 15;15 -15;-15 -15" begin="0s" dur="4s" />
+ <use xlink:href="#markerGroup" x="-20" />
+ <use xlink:href="#markerGroup2" x="20" />
+ <text text-anchor="middle" y="60">x/y on <text>(2)</text>
+ </g>
+ <g transform="translate(180,210)">
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5
pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIK
XzRVdgRTc+tO4r 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" x="-40" y="-40" width="50" height="50" preserveAspectRati
o="none">
+ <animate attributeName="width" values="50;80;20;50" begin="0s" dur="3s" />
+ <animate attributeName="height" values="50;20;80;50" begin="0s" dur="3s" />
+ </image>
+ <rect x="-40" y="-40" width="50" height="50" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s;3s" dur="0.2s" />
+ </rect>
+ <rect x="-40" y="-40" width="80" height="20" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </rect>
+ <rect x="-40" y="-40" width="20" height="80" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="2s" dur="0.2s" />
+ </rect>
+ <text text-anchor="middle" y="60">width/height</text>
+ <text text-anchor="middle" y="75">on <image></text>
+ </g>
+ <g transform="translate(300,210)">
+ <rect x="-40" y="-40" width="50" height="50" fill="gray">
+ <animate attributeName="width" values="50;80;20;50" begin="0s" dur="3s" />
+ <animate attributeName="height" values="50;20;80;50" begin="0s" dur="3s" />
+ </rect>
+ <rect x="-40" y="-40" width="50" height="50" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s;3s" dur="0.2s" />
+ </rect>
+ <rect x="-40" y="-40" width="80" height="20" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </rect>
+ <rect x="-40" y="-40" width="20" height="80" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="2s" dur="0.2s" />
+ </rect>
+ <text text-anchor="middle" y="60">width/height</text>
+ <text text-anchor="middle" y="75">on <rect></text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-41-t.png b/test/svg/svg1.2/svg/animate-elem-41-t.png
new file mode 100644
index 0000000..b2eda25
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-41-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-41-t.svg b/test/svg/svg1.2/svg/animate-elem-41-t.svg
new file mode 100644
index 0000000..d79b129
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-41-t.svg
@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Animation of the various graphics properties with the animate element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-41-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test validates the operation of the animate element on the various graphics properties. This test is very
+ similar to animate-elem-78-t which uses the set element instead of the animate element to modify graphics properties.
+ </p>
+ <p>
+ For each of the graphics properties, there are three tests. One animates the graphics property directly on an
+ element (such as a rect or a line) which uses the property. The other two tests apply the animation on a container
+ element (g and a), and validate that the animated property is inherited by elements which are child of the container.
+ </p>
+ <p>
+ For each animation test, the element on which the animation is applied is also translated by an animation so that
+ the various states of the animation can be checked more easily. In most tests, there is a gray reference marker
+ which shows the expected animation state at the begining of the animation, mid-way, or at the end of the animation.
+ </p>
+ <p>
+ The following animations should show continuous changes: fill, stroke, stroke-width, stroke-miterlimit,
+ stroke-dashoffset and color. Note that visually, stroke-miterlimit shows a sharp transition, but that is because
+ the miter is cut off when the animated miter limit reaches the test sharp angle's miter value. The stroke-miterlimit
+ value is changed continously but that is not visible in this test.
+ </p>
+ <p>The following animations have a discrete behavior: fill-rule, stroke-linecap, stroke-linejoin, display and visibility.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-41-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="animateZeroRef">
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(204,0,102)" />
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(230,82,51)" transform="translate(15,0)" />
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(255,165,0)" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setOneRef" fill="#ccc" stroke="none">
+ <polyline stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10" />
+ <polyline fill-rule="evenodd" stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setTwoRef" fill="none" stroke-width="4">
+ <rect x="10" width="8" height="8" stroke="rgb(204,0,102)" />
+ <rect x="10" width="8" height="8" transform="translate(15,0)" stroke="rgb(230,82,51)" />
+ <rect x="10" width="8" height="8" transform="translate(30,0)" stroke="rgb(255,165,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setThreeRef">
+ <line x1="10" y1="3" x2="20" y2="3" stroke-width="1" stroke="gray" />
+ <line x1="10" y1="3" x2="20" y2="3" stroke-width="5" stroke="gray" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setFourRef" stroke-width="12">
+ <line x1="10" y1="8" x2="12" y2="8" stroke="#ccc" />
+ <line x1="10" y1="8" x2="12" y2="8" stroke-linecap="round" stroke="#ccc" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setFiveRef">
+ <polyline stroke="#ccc" points="5,2,20,5,5,8" />
+ <polyline stroke="#ccc" points="5,2,20,5,5,8" stroke-linejoin="bevel" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setSixRef">
+ <polyline points="5,0,20,5,5,10" stroke="#ccc" />
+ <polyline points="5,0,20,5,5,10" stroke="#ccc" stroke-miterlimit="10" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setSevenRef">
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc" />
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc" stroke-dashoffset="5.5" transform="translate(40,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setEightRef">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" display="none" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setNineRef">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="animateTenRef">
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(204,0,102)" />
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(230,82,51)" transform="translate(15,0)" />
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(255,165,0)" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="20">graphics</text>
+ <g transform="translate(80, 75)">
+ <g transform="translate(30,10)" text-anchor="end" font-size="12">
+ <text>fill</text>
+ <text y="20">fill-rule</text>
+ <text y="40">stroke</text>
+ <text y="60">stroke-width</text>
+ <text y="80">stroke-linecap</text>
+ <text y="100">stroke-linejoin</text>
+ <text y="120">stroke-miterlimit</text>
+ <text y="140">stroke-dashoffset</text>
+ <text y="160">display</text>
+ <text y="180">visibility</text>
+ <text y="200">color</text>
+ </g>
+ <g xml:id="type" transform="translate(90, -20)" text-anchor="middle" font-size="14">
+ <text x="20" y="3">element</text>
+ <text x="130" y="3"><g></text>
+ <text x="235" y="3"><a></text>
+ </g>
+ <g transform="translate(80,0)" fill="rgb(204,0,102)">
+ <g xml:id="setZero">
+ <use xlink:href="#animateZeroRef" />
+ <use xlink:href="#animateZeroRef" x="110" />
+ <use xlink:href="#animateZeroRef" x="220" />
+ <rect x="10" width="8" height="8" fill="rgb(204,0,102)">
+ <animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze" />
+ <animate attributeName="x" to="40" dur="3s" fill="freeze" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <rect x="10" width="8" height="8" />
+ <animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <rect x="10" width="8" height="8" />
+ <animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </a>
+ </g>
+ <g xml:id="setOne" transform="translate(5,15)" stroke="rgb(204,0,102)">
+ <use xlink:href="#setOneRef" />
+ <use xlink:href="#setOneRef" x="110" />
+ <use xlink:href="#setOneRef" x="220" />
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <animate attributeName="fill-rule" to="evenodd" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </polyline>
+ <g transform="translate(110, 0)">
+ <animate attributeName="fill-rule" to="evenodd" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="fill-rule" to="evenodd" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10" />
+ </a>
+ </g>
+ <g xml:id="setTwo" transform="translate(0,45)" fill="none">
+ <use xlink:href="#setTwoRef" />
+ <use xlink:href="#setTwoRef" x="110" />
+ <use xlink:href="#setTwoRef" x="220" />
+ <rect x="10" width="8" height="8" stroke-width="3">
+ <animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" stroke-width="3" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" stroke-width="3" />
+ </a>
+ </g>
+ <g xml:id="setThree" transform="translate(0,60)">
+ <use xlink:href="#setThreeRef" />
+ <use xlink:href="#setThreeRef" x="110" />
+ <use xlink:href="#setThreeRef" x="220" />
+ <line x1="10" y1="8" x2="20" y2="8" stroke="gray">
+ <animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </line>
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <line x1="10" y1="8" x2="20" y2="8" stroke="gray" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <line x1="10" y1="8" x2="20" y2="8" stroke="gray" />
+ </a>
+ </g>
+ <g xml:id="setFour" transform="translate(0,80)" stroke-width="4" stroke="rgb(204,0,102)">
+ <use xlink:href="#setFourRef" />
+ <use xlink:href="#setFourRef" x="110" />
+ <use xlink:href="#setFourRef" x="220" />
+ <line x1="10" y1="8" x2="12" y2="8" stroke-width="12">
+ <animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </line>
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <line x1="10" y1="8" x2="12" y2="8" stroke-width="12" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <line x1="10" y1="8" x2="12" y2="8" stroke-width="12" />
+ </a>
+ </g>
+ <g xml:id="setFive" transform="translate(5,100)" fill="none" stroke-miterlimit="10" stroke-width="3" stroke="rgb(204,0,102)">
+ <use xlink:href="#setFiveRef" />
+ <use xlink:href="#setFiveRef" x="110" />
+ <use xlink:href="#setFiveRef" x="220" />
+ <polyline points="5,2,20,5,5,8">
+ <animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </polyline>
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <polyline points="5,2,20,5,5,8" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <polyline points="5,2,20,5,5,8" />
+ </a>
+ </g>
+ <g xml:id="setSix" transform="translate(5,120)" stroke-miterlimit="1" fill="none" stroke-width="3" stroke="rgb(204,0,102)">
+ <use xlink:href="#setSixRef" />
+ <use xlink:href="#setSixRef" x="110" />
+ <use xlink:href="#setSixRef" x="220" />
+ <polyline points="5,0,20,5,5,10">
+ <animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </polyline>
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <polyline points="5,0,20,5,5,10" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <polyline points="5,0,20,5,5,10" />
+ </a>
+ </g>
+ <g xml:id="setSeven" transform="translate(-5,145)" stroke-dasharray="3,4,5" stroke-width="3" stroke="rgb(204,0,102)">
+ <use xlink:href="#setSevenRef" />
+ <use xlink:href="#setSevenRef" x="110" />
+ <use xlink:href="#setSevenRef" x="220" />
+ <line x1="0" y1="0" x2="25" y2="0">
+ <animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum" />
+ </line>
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum" />
+ <line x1="0" y1="0" x2="25" y2="0" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum" />
+ <line x1="0" y1="0" x2="25" y2="0" />
+ </a>
+ </g>
+ <g xml:id="setEight" transform="translate(0,160)">
+ <use xlink:href="#setEightRef" />
+ <use xlink:href="#setEightRef" x="110" />
+ <use xlink:href="#setEightRef" x="220" />
+ <rect x="10" width="8" height="8">
+ <animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" />
+ </a>
+ </g>
+ <g xml:id="setNine" transform="translate(0,180)">
+ <use xlink:href="#setNineRef" />
+ <use xlink:href="#setNineRef" x="110" />
+ <use xlink:href="#setNineRef" x="220" />
+ <rect x="10" width="8" height="8">
+ <animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" />
+ </a>
+ </g>
+ <g xml:id="setTen" color="rgb(204,0,102)" transform="translate(0,200)">
+ <use xlink:href="#animateTenRef" />
+ <use xlink:href="#animateTenRef" x="110" />
+ <use xlink:href="#animateTenRef" x="220" />
+ <rect x="10" width="8" height="8" fill="currentColor">
+ <animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ </rect>
+ <g transform="translate(110, 0)" fill="currentColor">
+ <animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" />
+ </g>
+ <a xlink:href="" transform="translate(220, 0)" fill="currentColor">
+ <animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze" />
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum" />
+ <rect x="10" width="8" height="8" />
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-44-t.png b/test/svg/svg1.2/svg/animate-elem-44-t.png
new file mode 100644
index 0000000..d48a7d6
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-44-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-44-t.svg b/test/svg/svg1.2/svg/animate-elem-44-t.svg
new file mode 100644
index 0000000..22a696b
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-44-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="OA" owner="SH" desc="Tests animation of attributes 'd' of path element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-44-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to test animation of the d attribute of the path element.</p>
+ <p>
+ This test consists of a path, specified as a series of lineto commands, whose d attribute is animated. The path
+ morphs between the numbers 1, 2, 3, and 4. The gray outlines indicates the expected position of the polygon at
+ 1, 2, 3 and 4s. The test contains an animated circle that indicates where the path should be at a given time.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-44-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(40,0) scale(0.8)">
+ <!-- GRAY SILHOUETTES INDICATING TIME IN SECONDS-->
+ <path xml:id="Number1" d="M 26.5,32.5 L 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <path xml:id="Number2" d="M 108.5,38.5 L 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <path xml:id="Number3" d="M 248.5,38.5 L 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.5,119.5 282.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <path xml:id="Number4" d="M 427.5,17.5 L 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1" />
+ <!-- Gray silhouettes indicating the positions of the marker circle -->
+ <circle r="30" cx="50" cy="200" fill="#ccc" />
+ <circle r="30" cx="173" cy="200" fill="#ccc" />
+ <circle r="30" cx="297" cy="200" fill="#ccc" />
+ <circle r="30" cx="420" cy="200" fill="#ccc" />
+ <!-- Test the animation of the d attribute -->
+ <path xml:id="animatedNumber" d="M 26.5,32.5 L 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 Z" fill="rgb(204,0,102)" stroke="rgb(0,0,0)" stroke-width="4">
+ <animate attributeName="d" values="M 26.5,32.5 L 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 Z; M 108.5,38.5 L 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5 Z; M 248.5,38.5 L 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.
5,119.5 282.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5 Z; M 427.5,17.5 L 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5 Z" fill="freeze" begin="1" dur="3s" />
+ </path>
+ <!-- the "bouncing ball" circle that shows where the path should be -->
+ <circle r="30" cx="50" cy="200" fill="rgb(204,0,102)">
+ <animate attributeName="cx" values="50; 173; 297; 420" begin="1" dur="4" calcMode="discrete" fill="freeze" />
+ </circle>
+ </g>
+ <text x="5" y="225" font-size="28">Animation on the 'd' attribute of path.</text>
+ <text x="5" y="255" font-size="18">Digit should match outline at indicated time.</text>
+ <text x="5" y="275" font-size="18">Filled circle should follow morphing digit discretely.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-46-t.png b/test/svg/svg1.2/svg/animate-elem-46-t.png
new file mode 100644
index 0000000..f2ee4d2
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-46-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-46-t.svg b/test/svg/svg1.2/svg/animate-elem-46-t.svg
new file mode 100644
index 0000000..4a4063a
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-46-t.svg
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Animation of text properties: text-anchor, font-size, font-family, font-style and font-weight" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-46-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test validates the operation of the animate element on the various text and font properties. This test is
+ very similar to animate-elem-77-t.svg which uses the set element instead of the animate element to modify graphics
+ properties.
+ </p>
+ <p>
+ For each text or font properties, there are three tests. One animates the text or font property directly on a
+ text element which uses the property. The other two tests apply the animation on a container element (g and a),
+ and validate that the animated property is inherited by children text elements.
+ </p>
+ <p>
+ For each animation test, the element on which the animation is applied is also translated by an animation so that
+ the various states of the animation can be checked more easily. There is a gray reference marker which shows the
+ expected animation state at the begining of the animation, mid-way, or at the end of the animation.
+ </p>
+ <p>Only the animation of font-size should show a continuous change of the font size.</p>
+ <p>The following animations have a discrete behavior: text-anchor, font-family, font-style, font-weight.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-46-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="animateZeroRef" font-size="30" font-weight="bold">
+ <text x="0" y="20" fill="#aaa" text-anchor="end">A</text>
+ <rect x="-2" y="18" width="4" height="4" fill="#aaa" />
+ <text x="0" y="20" fill="#aaa" text-anchor="middle" transform="translate(30,0)">A</text>
+ <rect x="-2" y="18" width="4" height="4" fill="#aaa" transform="translate(30,0)" />
+ <text x="0" y="20" fill="#aaa" text-anchor="start" transform="translate(60,0)">A</text>
+ <rect x="-2" y="18" width="4" height="4" fill="#aaa" transform="translate(60,0)" />
+ <rect x="-2" y="18" width="4" height="4">
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" dur="3s" fill="freeze" calcMode="discrete" />
+ </rect>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="animateOneRef" font-weight="bold" text-anchor="start">
+ <text x="0" y="20" fill="#aaa" font-size="30">A</text>
+ <text x="0" y="20" fill="#aaa" font-size="12" transform="translate(30,0)">A</text>
+ <text x="0" y="20" fill="#aaa" font-size="30" transform="translate(60,0)">A</text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="animateTwoRef" font-weight="bold" font-size="30">
+ <text x="0" y="20" fill="#aaa" font-family="sans-serif">A </text>
+ <text x="30" y="20" fill="#aaa" font-family="serif">A</text>
+ <text x="60" y="20" font-size="30" fill="#aaa" font-family="sans-serif">A</text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="animateThreeRef" font-size="30" font-weight="bold">
+ <text x="0" y="20" font-size="30" fill="#aaa" font-style="normal">A</text>
+ <text x="30" y="20" font-size="30" fill="#aaa" font-style="italic">A</text>
+ <text x="60" y="20" font-size="30" fill="#aaa" font-style="normal">A</text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="animateFourRef" font-size="30">
+ <text x="0" y="20" fill="#aaa" font-weight="bold">A</text>
+ <text x="30" y="20" fill="#aaa" font-weight="normal">A</text>
+ <text x="60" y="20" fill="#aaa" font-weight="bold">A</text>
+ </g>
+ </defs>
+ <g transform="translate(80, 80)">
+ <g transform="translate(20,10)" text-anchor="end" font-size="14">
+ <text x="5" y="15">text-anchor</text>
+ <text x="5" y="50">font-size</text>
+ <text x="5" y="85">font-family</text>
+ <text x="5" y="120">font-style</text>
+ <text x="5" y="155">font-weight</text>
+ </g>
+ <g xml:id="type" transform="translate(90, -10)" text-anchor="middle" font-size="14">
+ <text x="20" y="3"><text></text>
+ <text x="135" y="3"><g></text>
+ <text x="250" y="3"><a></text>
+ </g>
+ <g transform="translate(80,5)" text-anchor="start" font-size="20" fill="rgb(204,0,102)">
+ <g xml:id="animateZero">
+ <use xlink:href="#animateZeroRef" />
+ <use xlink:href="#animateZeroRef" x="110" />
+ <use xlink:href="#animateZeroRef" x="220" />
+ <text xml:id="textID_0" x="0" y="20" text-anchor="end" font-size="30" font-weight="bold">A</text>
+ <animate xlink:href="#textID_0" attributeName="text-anchor" values="end;middle;start" dur="3s" fill="freeze" />
+ <animateTransform xlink:href="#textID_0" attributeName="transform" type="translate" values="0;30;60" dur="3s" fill="freeze" calcMode="discrete" />
+ <g transform="translate(110, 0)" text-anchor="end" font-size="30" font-weight="bold">
+ <animate attributeName="text-anchor" values="end;middle;start" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)" text-anchor="end" font-size="30" font-weight="bold">
+ <animate attributeName="text-anchor" values="end;middle;start" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+ <g xml:id="animateOne" transform="translate(0,35)">
+ <use xlink:href="#animateOneRef" />
+ <use xlink:href="#animateOneRef" x="110" />
+ <use xlink:href="#animateOneRef" x="220" />
+ <text xml:id="textID_1" x="0" y="20" font-size="12" font-weight="bold">A</text>
+ <animate xlink:href="#textID_1" attributeName="font-size" values="30;12;30" dur="3s" fill="freeze" />
+ <animateTransform xlink:href="#textID_1" attributeName="transform" type="translate" from="0" to="60" dur="3s" fill="freeze" />
+ <g transform="translate(110, 0)" font-size="12" font-weight="bold">
+ <animate attributeName="font-size" values="30;12;30" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" from="0" to="60" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </g>
+ <a xlink:href="" transform="translate(220,0)" font-size="12" font-weight="bold">
+ <animate attributeName="font-size" values="30;12;30" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" from="0" to="60" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+ <g xml:id="animateTwo" transform="translate(0,70)">
+ <use xlink:href="#animateTwoRef" />
+ <use xlink:href="#animateTwoRef" x="110" />
+ <use xlink:href="#animateTwoRef" x="220" />
+ <text xml:id="textID_2" x="0" y="20" font-weight="bold" font-size="30">A</text>
+ <animate xlink:href="#textID_2" attributeName="font-family" values="sans-serif;serif;sans-serif" dur="3s" fill="freeze" />
+ <animateTransform xlink:href="#textID_2" attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" />
+ <g font-weight="bold" font-size="30" transform="translate(110,0)">
+ <animate attributeName="font-family" values="sans-serif;serif;sans-serif" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </g>
+ <a xlink:href="" font-weight="bold" font-size="30" transform="translate(220,0)">
+ <animate attributeName="font-family" values="sans-serif;serif;sans-serif" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+ <g xml:id="animateThree" transform="translate(0,105)">
+ <use xlink:href="#animateThreeRef" />
+ <use xlink:href="#animateThreeRef" x="110" />
+ <use xlink:href="#animateThreeRef" x="220" />
+ <text xml:id="textID_3" x="0" y="20" font-size="30" font-weight="bold">A</text>
+ <animate xlink:href="#textID_3" attributeName="font-style" values="normal;italic;normal" dur="3s" fill="freeze" />
+ <animateTransform xlink:href="#textID_3" attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" />
+ <g transform="translate(110,0)" font-size="30" font-weight="bold">
+ <animate attributeName="font-style" values="normal;italic;normal" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20" font-size="30">A</text>
+ </g>
+ <a xlink:href="" transform="translate(220,0)" font-size="30" font-weight="bold">
+ <animate attributeName="font-style" values="normal;italic;normal" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20" font-size="30">A</text>
+ </a>
+ </g>
+ <g xml:id="animateFour" transform="translate(0,140)">
+ <use xlink:href="#animateFourRef" />
+ <use xlink:href="#animateFourRef" x="110" />
+ <use xlink:href="#animateFourRef" x="220" />
+ <text xml:id="textID_4" x="0" y="20" font-size="30">A</text>
+ <animate xlink:href="#textID_4" attributeName="font-weight" values="bold;normal;bold" dur="3s" fill="freeze" />
+ <animateTransform xlink:href="#textID_4" attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" />
+ <g transform="translate(110,0)" font-size="30">
+ <animate attributeName="font-weight" values="bold;normal;bold" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </g>
+ <a xlink:href="" transform="translate(220,0)" font-size="30">
+ <animate attributeName="font-weight" values="bold;normal;bold" dur="3s" fill="freeze" />
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum" />
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-52-t.png b/test/svg/svg1.2/svg/animate-elem-52-t.png
new file mode 100644
index 0000000..5b2803e
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-52-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-52-t.svg b/test/svg/svg1.2/svg/animate-elem-52-t.svg
new file mode 100644
index 0000000..edf26af
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-52-t.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Test of eventbase targets" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: animate-elem-52-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to test eventbase targets.</p>
+ <p>
+ The test consists of 4 rectangles named A, B, C, D. The D rectangle contains three animations changing the color
+ of the animation target. Each animation applies to one of the other rectangles by using xlink:href="". Clicking on
+ rect A should change it's color immediately, clicking B changes its color after 2 seconds, clicking C changes its
+ color after 4 seconds and clicking D shows no visible change (although D contains the animations the event target
+ for each animation is the referenced rectangle, this rectangle is also the animation target.)
+ </p>
+ <p>
+ The following sections in <a href='http://www.w3.org/TR/SMIL2/'>SMIL 2.1</a> are relevant as
+ confirmation of this test:
+ </p>
+ <div>
+ <ul>
+ <li>
+ <a href='http://www.w3.org/TR/SMIL2/smil-timing.html#Timing-EventValueSyntax'>
+ 10.4.1
+ subsection "Event values"
+ </a> states: "If the Eventbase-element
+ term is missing, the event-base element defaults to the element on
+ which the eventbase timing is specified (the current element)."
+ </li>
+ <li>
+ <a href='http://www.w3.org/TR/SMIL2/animation.html#animationNS-SpecifyingTargetElement'>
+ 3.5.1
+ subsection "The target element"
+ </a> says that the animation target may
+ be defined explicitly through the targetElement="" IDREF or href=""
+ URI, according to the host language. SVG Tiny 1.2 uses the
+ xlink:href="" attribute to specify the target element, so in this
+ test, the animation target is defined through xlink:href="" and the
+ event base per definition is then also this referenced element.
+ </li>
+ </ul>
+ </div>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-52-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="65" y="50" font-size="30" stroke="none" fill="black">A</text>
+ <text x="165" y="50" font-size="30" stroke="none" fill="black">B</text>
+ <text x="265" y="50" font-size="30" stroke="none" fill="black">C</text>
+ <text x="365" y="50" font-size="30" stroke="none" fill="black">D</text>
+ <g transform="translate(0,45)">
+ <g xml:id="A" fill="rgb(126,143,250)">
+ <rect x="30" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2" />
+ <text x="50" y="40" font-size="20" stroke="none" fill="black">click A</text>
+ </g>
+ <g xml:id="B" fill="rgb(126,143,250)">
+ <rect x="130" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2" />
+ <text x="135" y="40" font-size="20" stroke="none" fill="black">click B+2</text>
+ </g>
+ <g xml:id="C" fill="rgb(126,143,250)">
+ <rect x="230" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2" />
+ <text x="235" y="40" font-size="20" stroke="none" fill="black">click C+4</text>
+ </g>
+ <g fill="rgb(126,143,250)">
+ <rect x="330" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2" />
+ <text x="350" y="40" font-size="20" stroke="none" fill="black">never</text>
+ <set begin="click" fill="freeze" xlink:href="#A" attributeName="fill" to="yellow" />
+ <set begin="click+2" fill="freeze" xlink:href="#B" attributeName="fill" to="yellow" />
+ <set begin="click+4" fill="freeze" xlink:href="#C" attributeName="fill" to="yellow" />
+ </g>
+ </g>
+ <text x="15" y="175" font-size="28">Test of Eventbase targets.</text>
+ <text x="15" y="245" font-size="18">Note that clicking rect D should give no result.</text>
+ <text x="15" y="205" font-size="18">Clicking a rectangle should change its color at the </text>
+ <text x="15" y="225" font-size="18">time for the click + delay as indicated in each rect.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-53-t.png b/test/svg/svg1.2/svg/animate-elem-53-t.png
new file mode 100644
index 0000000..a761086
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-53-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-53-t.svg b/test/svg/svg1.2/svg/animate-elem-53-t.svg
new file mode 100644
index 0000000..b00a245
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-53-t.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="OA" desc="Tests animation of attributes points with calc-mode" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-53-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The purpose of this test is to test animation of points and calcMode.
+ </p>
+ <p>
+ 1. The green squares should animate together side by side. This applies
+ to the red ones as well.
+ 2. The time values indicate when the squares should reach the
+ corresponding reference square.
+ 3. The total distance is 0+40+80+24.14=144.14
+ a. The "green animation" is 9 sec and linear so each interval
+ should get 3 sec.
+ b. The "red animation" is 8 sec and paced so the intervals
+ should get 2.22, 4.44 and 1.34 sec each.
+ </p>
+ <p>
+ Here comes a more detailed description of the animation.
+
+ The left green square (LG) is animated by animating the points with
+ a value array, consisting of 4 lists of points. This is an animation
+ with calcMode="linear" so an equal amount of time should be spent on
+ all 4 intervals. The right green square (RG) is animated by a simple
+ linear motion followed by a scale to follow LG.
+ The last scale by 1.9428 correspond to a movement of the lover right
+ corner of the square by sqrt((30*0.9428)^2 + (30*0.9428)^2) which is
+ approximately 40 distance units. This is the same distance as the first
+ interval in the values array (and half the second interval).
+ The length (in terms of distance) is not really important for the
+ green squares but for the red squares which are animated with
+ calcMode="paced" the length is used to calculate the time for each
+ interval.
+ Since the first and last interval are of the same length which
+ totals to the length of the middle interval, the interval should
+ be given time according to [27.75%(2.22sec);55.5%(4.44sec);16.75%(1.34sec)].
+
+ So the left red square (LR) is animated just as the LG square but
+ with calcMode="paced". The same applies to the right red square (RR)
+ that has default calcMode ("paced" for animateMotion) compared to the
+ RG square that has calcMode="linear".
+ The calcMode for the scale of RR (and RG) is not important since
+ it's not a value list type of animation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-53-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <polygon xml:id="p" points="0,0 30,0 30,30 0,30" fill="none" stroke="black"/>
+ </defs>
+ <g transform="translate(0,0)">
+ <use xlink:href="#p" x="10" y="10"/>
+ <text x="15" y="35" font-size="20">0s</text>
+ <use xlink:href="#p" x="10" y="50"/>
+ <text x="15" y="75" font-size="20">3s</text>
+ <use xlink:href="#p" x="10" y="130"/>
+ <text x="15" y="155" font-size="20">6s</text>
+ <rect x="10" y="130" width="58.28" height="58.28" fill="none" stroke="black"/>
+ <text x="45" y="185" font-size="20">9s</text>
+ <polygon xml:id="LG" points="0,0 30,0 30,30 0,30" fill="none" stroke="green">
+ <animate attributeName="points" begin="0" dur="9" fill="freeze" values="10,10 40,10 40,40 10,40; 10,50 40,50 40,80 10,80; 10,130 40,130 40,160 10,160; 10,130 68.28,130 68.28,188.28 10,188.28"/>
+ </polygon>
+ <g transform="translate(70,10)">
+ <polygon xml:id="RG" points="0,0 30,0 30,30 0,30" fill="none" stroke="green">
+ <animateMotion values="0,0;0,40;0,120" begin="0" dur="6" calcMode="linear" fill="freeze"/>
+ <animateTransform attributeName="transform" type="scale" from="1" to="1.9428" begin="6" dur="3" fill="freeze"/>
+ </polygon>
+ </g>
+ </g>
+ <g transform="translate(120,0)">
+ <use xlink:href="#p" x="10" y="10"/>
+ <text x="15" y="35" font-size="20">0s</text>
+ <use xlink:href="#p" x="10" y="50"/>
+ <text x="15" y="75" font-size="20">2.22s</text>
+ <use xlink:href="#p" x="10" y="130"/>
+ <text x="15" y="155" font-size="20">6.66s</text>
+ <rect x="10" y="130" width="58.28" height="58.28" fill="none" stroke="black"/>
+ <text x="45" y="185" font-size="20">8s</text>
+ <polygon xml:id="LR" points="10,10 40,10 40,40 10,40" fill="none" stroke="red">
+ <animate attributeName="points" begin="0" dur="8" calcMode="paced" fill="freeze" values="10,10 40,10 40,40 10,40; 10,50 40,50 40,80 10,80; 10,130 40,130 40,160 10,160; 10,130 68.28,130 68.28,188.28 10,188.28"/>
+ </polygon>
+ <g transform="translate(70,10)">
+ <polygon xml:id="RR" points="0,0 30,0 30,30 0,30" fill="none" stroke="red">
+ <animateMotion values="0,0;0,40;0,120" begin="0" dur="6.66" fill="freeze"/>
+ <animateTransform attributeName="transform" type="scale" from="1" to="1.9428" begin="6.66" dur="1.34" fill="freeze"/>
+ </polygon>
+ </g>
+ </g>
+ <text x="5" y="225" font-size="26">Animation on: 'points' with 'calc-mode'.</text>
+ <text x="5" y="255" font-size="16">Colored and black squares should match at indicated time.</text>
+ <text x="5" y="275" font-size="16">Same colored squares (green and red) should match at all times</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-61-t.png b/test/svg/svg1.2/svg/animate-elem-61-t.png
new file mode 100644
index 0000000..64ca8c2
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-61-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-61-t.svg b/test/svg/svg1.2/svg/animate-elem-61-t.svg
new file mode 100644
index 0000000..3d19644
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-61-t.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="VH" desc="Test on multiple begin conditions in begin attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-61-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests validates multiple begin conditions in the begin attribute, assuming support for the <set>
+ element and setting the fill attribute on a <rect> element.
+ </p>
+ <p>
+ The test validates the various possibilities for the begin attribute value: multiple offset values, multiple
+ event base values, multiple sync base values, multiple repeat values, and multiple accessKey values. Finally,
+ the test validates that begin values of different kinds can be mixed.
+ </p>
+ <p>The test shows 6 rows where a red rectangle' s x attribute is animated with <set> elements.</p>
+ <p>
+ On the first three rows, the red rectangles should show on the left from 0 to 1s. From 1 to 2s, the rectangles
+ should show on the right. Then the rectangles should show on the left from 2 to 4s, then on the right again from
+ 4 to 5s and come back to the left position and stay there after 5s.
+ </p>
+ <p>
+ On the fourth row, the rectangle's begin condition is event based and requires a user click. After the user clicks
+ on the rectangle, the rectangle should move to the right position for 1s, then move back to the left position for
+ 3 seconds, move again to the right position for 1 second before going back to the left position.
+ </p>
+ <p>
+ On the fifth row, the rectangle's begin condition is accessKey based and requires a user to press the 'a' key.
+ After the user presses that key the rectangle should move to the right position for 1s, then move back to the left
+ position for 3 seconds, move again to the right position for 1 second before going back to the left position.
+ </p>
+ <p>
+ The last row's rectangle has a begin condition with two offset values (1s;4s) and should behave like the rectangles
+ of the first three rows for the first 5 seconds of the document's timeline. In addition, the begin condition has a
+ click event base and thus, the rectangle should move to the right position for one second every time the user clicks
+ on it. Finally, the begin condition also has an accessKey condition for the 'b' character. Thus, the rectangle
+ should move to the right position every time the user presses the 'b' key.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-61-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">multiple begin</text>
+ <g transform="translate(100, 100)">
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>2 offsets</text>
+ <text y="25">2 sync bases</text>
+ <text y="50">2 repeat</text>
+ <text y="100">2 event base</text>
+ <text y="125">2 accessKeys</text>
+ <text y="150">misc</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>0-1s</text>
+ <text y="-20">2s-4s</text>
+ <text y="-40">> 5s</text>
+ <g transform="translate(40,0)">
+ <text>1-2s</text>
+ <text y="-20">4-5s</text>
+ </g>
+ </g>
+ <g transform="translate(150,20)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="40" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="34" begin="1s; 4s" dur="1s" />
+ </rect>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 25)">
+ <set xml:id="syncBase" attributeName="display" to="inline" begin="0s" dur="indefinite" />
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="40" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="syncBase.begin + 1s; syncBase.begin + 4s" dur="1s" />
+ </rect>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 50)">
+ <set xml:id="repeatBase" attributeName="display" to="inline" begin="0s" dur="1s" repeatDur="indefinite" />
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="40" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="repeatBase.repeat(1);repeatBase.repeat(4)" dur="1s" />
+ </rect>
+ </g>
+ <g xml:id="setFour" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="40" />
+ <rect xml:id="setFourTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="setFourTarget.click + 0s; setFourTarget.click+4s" dur="1s" />
+ </rect>
+ </g>
+ <g xml:id="setFive" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="40" />
+ <rect xml:id="setFiveTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="accessKey(a) + 0s;accessKey(a)+4s" dur="1s" />
+ </rect>
+ </g>
+ <g xml:id="setSix" transform="translate(0, 150)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="40" />
+ <rect xml:id="setSixTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="1s;4s;setSixTarget.click;accessKey(b)" dur="1s" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-64-t.png b/test/svg/svg1.2/svg/animate-elem-64-t.png
new file mode 100644
index 0000000..671f212
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-64-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-64-t.svg b/test/svg/svg1.2/svg/animate-elem-64-t.svg
new file mode 100644
index 0000000..79ae74e
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-64-t.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Basic Test on dur attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-64-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests performs basic tests on the dur attribute.</p>
+ <p>
+ 'The first row shows a red rectangle subject to a <set> animation with no begin attribute, no end attribute
+ and a dur attribute set to '2s'. Therefore, the animation should be active from 0 to 2 seconds and then terminate.
+ Consequently, the rectangle should show on the right for the first two seconds, and then move to the left position.
+ </p>
+ <p>
+ The second row shows a red rectangle subject to a <set> animation with no begin attribute, no end attribute
+ and a dur attribute set to 'indefinite'. Therefore, the animation should stay active indefinitely and the rectangle
+ should always be on the right position, never on the left position.
+ </p>
+ <p>
+ Finally, the third row shows red rectangle subject to a <set> animation with no begin attribute, no end
+ attribute and a dur attribute set to 'media'. In the context of SVG 1.1, this is equivalent to an 'indefinite'
+ value. Therefore, the animation should stay active indefinitely and the rectangle should always be on the right
+ position, never on the left position.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-64-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">dur</text>
+ <g transform="translate(100, 100)">
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>clock value</text>
+ <text y="65">indefinite</text>
+ <text y="130">media</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>> 2s</text>
+ <text x="80">0s-2s</text>
+ <g transform="translate(0, 65)">
+ <text>never</text>
+ <text x="80">> 0s</text>
+ </g>
+ <g transform="translate(0, 130)">
+ <text>never</text>
+ <text x="80">> 0s</text>
+ </g>
+ </g>
+ <g transform="translate(150,20)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="74" dur="2s" />
+ </rect>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 65)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="indefinite" />
+ </rect>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 130)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="media" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-65-t.png b/test/svg/svg1.2/svg/animate-elem-65-t.png
new file mode 100644
index 0000000..1de58f7
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-65-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-65-t.svg b/test/svg/svg1.2/svg/animate-elem-65-t.svg
new file mode 100644
index 0000000..c02390d
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-65-t.svg
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Basic tests on the min attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-65-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests performs basic tests on the min attribute. The test is based on the SMIL specification at:
+ http://www.w3.org/TR/smil20/smil-timing.html#Timing-MinMax.
+ </p>
+ <p>
+ Each row in the test shows different rectangles subject to <set> animations with different configurations
+ with regards to the min attribute. For each row but the last one, the animation should be active during the first
+ 5 seconds of the animations where the red rectangle should show in the right column. At five seconds into the
+ animation, all the rectangles should move to their left position.
+ </p>
+ <p>
+ On the first row, the first <set> animation (left rectangle) has an end value of 5s, and no min attribute.
+ The active duration resulting from the end attribute is 5s. The first row shows a second rectangle with a
+ <set> animation with the same configuration except that the min attribute value is set to 'media'. Because
+ the <set> element does not define a media, the behavior should be as if the attribute was not specified.
+ The active duration (5s) of the second <set> animation is therefore not constrained.
+ </p>
+ <p>
+ On the second row, the <set> animation has an end value of 5s, and a -6s min attribute. The active duration
+ resulting from the end attribute is 5s. The negative min value is invalid and, as per the specification, the
+ behavior should be as if the attribute was not specified. The active duration (5s) is therefore not constrained.
+ </p>
+ <p>
+ On the third row, the <set> animation has an end value of 5s, and a 3s min attribute. The active duration
+ resulting from the end attribute is 5s. The min value is less than the active duration, so the min attribute does
+ not actually constrain the active duration.
+ </p>
+ <p>
+ On the fourth row, the <set> animation has a dur value of indefinite, an end value of 2s, and a 5s min
+ attribute. The active duration resulting from the end attribute would be 2s. Because this is less than the min
+ value (2s < 5s) the (min constrained) active duration has to be corrected to 5s, despite a simple duration
+ (indefinite) that is greater than the min value.
+ </p>
+ <p>
+ On the fifth row, the <set> animation has a dur value of 1s, an end value of 2s, a repeatCount of 7 and
+ a 5s min attribute. The active duration resulting from dur, end and repeatCount would be 2s. Because this is
+ less than the min value (2s < 5s) the (min constrained) active duration has to be corrected to 5s.
+ </p>
+ <p>
+ On the sixth row, the <set> animation has a dur value of 1s, an end value of 2s, a repeatCount of 5 and
+ a 8s min attribute value. The active duration resulting from dur, end and repeatCount would be 2s, because this
+ is less than the min value (2s < 8s) the active duration has to be corrected to 8s. As the fill attribute is
+ set to 'remove' on the <set> animation, this remove is applied at 5s, the end of the repeatCount. Note,
+ that if the end of active duration would have been used as a syncbase-value for another animation, the corrected
+ end event at (begin + min) = 8s has to be used.
+ </p>
+ <p>
+ On the seventh row, the <set> animation has a dur value of 1s, an end value of 2s, a repeatCount of 5 and
+ a 8s min attribute value. The active duration resulting from dur, end and repeatCount would be 2s, because this
+ is less than the min value (2s < 8s) the active duration has to be corrected to 8s. As the fill attribute is
+ set to 'freeze' on the <set> animation, the animation is frozen at 5s, the end of the repeatCount, the
+ <set> applies indefinitely. Note, that if the end of active duration would have been used as a syncbase-value
+ for another animation, the corrected end event at (begin + min) = 8s has to be used.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-65-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">min</text>
+ <g transform="translate(100, 50)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>no min / media</text>
+ <text y="25">invalid min</text>
+ <text y="50">min < active dur</text>
+ <text y="75">min > active dur</text>
+ <text y="100">min < repeat dur</text>
+ <text y="125">min > repeat dur, remove</text>
+ <text y="180">min > repeat dur, freeze</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(150, 25)" text-anchor="middle" font-size="14">
+ <text>> 5s</text>
+ <text x="80">0s-5s</text>
+ <g transform="translate(0, 180)">
+ <text>never</text>
+ <text x="80">> 0s</text>
+ </g>
+ </g>
+ <g transform="translate(150,40)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="74" end="5s" />
+ </rect>
+ <g transform="translate(20, 0)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" end="5s" min="media" />
+ </rect>
+ </g>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="-6s" end="5s" />
+ </rect>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="3s" end="5s" />
+ </rect>
+ </g>
+ <g xml:id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="5s" dur="indefinite" end="2s" />
+ </rect>
+ </g>
+ <g xml:id="setFive" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="5s" end="2s" dur="1s" repeatCount="7" />
+ </rect>
+ </g>
+ <g xml:id="setSix" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="8s" end="2s" dur="1s" repeatCount="5" fill="remove" />
+ </rect>
+ </g>
+ <g xml:id="setSeven" transform="translate(0, 180)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="8s" end="2s" dur="1s" repeatCount="5" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-66-t.png b/test/svg/svg1.2/svg/animate-elem-66-t.png
new file mode 100644
index 0000000..becd086
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-66-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-66-t.svg b/test/svg/svg1.2/svg/animate-elem-66-t.svg
new file mode 100644
index 0000000..94c7da7
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-66-t.svg
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Basic test on the max attribute and combinations of the min and max attributes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-66-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests performs basic tests on the max attribute and on combinations of the min and max attributes. The test
+ is based on the SMIL specification at: http://www.w3.org/TR/smil20/smil-timing.html#Timing-MinMax.
+ </p>
+ <p>
+ Each row in the test shows different rectangles subject to <set> animations with different configurations
+ with regards to the max and min attributes. For each row, the animation should be active during the first 5
+ seconds of the animations where the red rectangle should show in the right column. At five seconds into the
+ animation, all the rectangles should move to their left position.
+ </p>
+ <p>
+ On the first row, the <set> animation has a (0s <= t < 5s) active duration and no max attribute so
+ the actual active duration is (0s <= t < 5s). The first row shows a second rectangle with a <set>
+ animation with the same configuration except that the max attribute value is set to 'media'. Because the <set>
+ element does not define a media, the behavior should be as if the attribute was not specified.
+ </p>
+ <p>
+ On the second row, the <set> animation has a (0s <= t < 5s) active duration and a min attribute set
+ to '-6s' for the first rectangle and to 'foo' for the second one. These values are invalid for max and, as per the
+ specification, the behavior should be as if the attribute was not specified. Consequently, the behavior is as for
+ the previous row and the actual active duration is (0s <= t < 5s).
+ </p>
+ <p>
+ On the third row, the <set> animation has a (0s <= t < 8s) initial active duration and a max attribute
+ set to '5s'. The max value is less than the active duration, so the max attribute constrains the active duration to
+ (0s <= t < 5s).
+ </p>
+ <p>
+ On the fourth row, the <set> animation has a (0s <= t < 5s) initial active duration, an indefinite
+ simple duration (dur is set to indefinite) and a max attribute set to '8s'. Because the initial active duration is
+ less than the max attribute the active duration is not constrained and is unchanged at (0s <= t < 5s).
+ </p>
+ <p>
+ On the fifth row, the <set> animation has a (0s <= t < indefinite) initial active duration, a min of 2s
+ and a max of 5s. Because the min value is less than the max value, both apply and the computed active duration is
+ (0s <= t < 5s).
+ </p>
+ <p>
+ On the sixth row, the <set> animation has a (0s <= t < indefinite) initial active duration, a min of 5s
+ and a max of 5s. Because the min value is equal to the max value, both apply and the computed active duration is
+ (0s <= t < 5s).
+ </p>
+ <p>
+ On the seventh row, the <set> animation has a [0s, 5s[[ initial active duration, a min of 8s and a max of 2s.
+ Because the min value is greater than the max value, both are ignored and the computed active duration is [0s, 5s[.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-66-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">max</text>
+ <text text-anchor="middle" x="240" y="190" font-size="20">min & max</text>
+ <g transform="translate(100, 30)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>no max / media</text>
+ <text y="25">invalid max values</text>
+ <text y="50">max < active dur</text>
+ <text y="75">max > active dur</text>
+ <text y="150">min < max</text>
+ <text y="175">min = max</text>
+ <text y="200">min > max (both ignored)</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(150, 25)" text-anchor="middle" font-size="14">
+ <text>> 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+ <g transform="translate(150,40)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="74" end="5s" />
+ </rect>
+ <g transform="translate(20, 0)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" end="5s" max="media" />
+ </rect>
+ </g>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" max="-6s" end="5s" />
+ </rect>
+ <g transform="translate(20, 0)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" end="5s" max="foo" />
+ </rect>
+ </g>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" max="5s" end="8s" />
+ </rect>
+ </g>
+ <g xml:id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" max="8s" dur="indefinite" end="5s" />
+ </rect>
+ </g>
+ <g xml:id="setFive" transform="translate(0, 150)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="2s" max="5s" dur="indefinite" />
+ </rect>
+ </g>
+ <g xml:id="setSix" transform="translate(0, 175)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="5s" max="5s" dur="indefinite" />
+ </rect>
+ </g>
+ <g xml:id="setSeven" transform="translate(0, 200)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="8s" max="2s" end="5s" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-67-t.png b/test/svg/svg1.2/svg/animate-elem-67-t.png
new file mode 100644
index 0000000..87d6a0e
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-67-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-67-t.svg b/test/svg/svg1.2/svg/animate-elem-67-t.svg
new file mode 100644
index 0000000..3eeda46
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-67-t.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Basic test on restart attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-67-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests performs basic tests on restart attribute</p>
+ <p>
+ Each row in the test shows different rectangles subject to <set> animations with different configurations
+ with regards to the restart attribute. For each row, the animation should be active during the first 5 seconds of
+ the animations where the red rectangle should show in the right column. At five seconds into the animation, all
+ the rectangles should move to their left position.
+ </p>
+ <p>
+ On the first row, the <set> animation has a begin attribute set to '0s;1s' and a dur attribute set to 4s.
+ This should result in a first interval of (0s <= t < 4s) which should be superceeded, at 1s, by a new
+ interval of (1s <= t < 5s) because the default restart behavior is 'always'. Consequently, the rectangle
+ should be in the right position during the (0s <= t < 5s) interval and move to the left position at 5s.
+ </p>
+ <p>
+ On the second row, the <set> animation has a begin attribute set to '0s;1s', a dur attribute set to 4s and
+ a restart attribute set to always. The behavior should be the same as for the first row.
+ </p>
+ <p>
+ On the third row, the first (left most) rectangle's <set> animation has a begin attribute set to '0s;1s',
+ a dur set to 5s and a restart attribute set to whenNotActive. Because of the rules for computing intervals, the
+ animation's interval is (0s <= t < 5s) and is not superseded by a (1s <= t < 6s) interval because of
+ the restart value. The second (right most) red rectangle's <set> animation has a begin attribute set to
+ '0s;2.5s' and a dur attribute set to 2.5s. This results in a first interval (0s <= t < 2.5s) which is
+ followed by a (2.5s <= t < 5s) interval. Consequently, the rectangle stays on its right position for the
+ first five seconds before it definitively moves to the left position.
+ </p>
+ <p>
+ On the fourth row, the <set> animation has a begin attribute set to '0s;5s' and a dur attribute set to 5s.
+ This results in a first interval of (0s <= t < 5s). Because the restart attribute is set to 'never', the
+ following possible interval, (5s <= t < 10s) does not apply and the animation is only active for the first
+ 5 seconds.
+ </p>
+ <p>
+ The fifth row shows a simple animated red rectangle which lasts for 5 seconds. It shows a reference of how the
+ other animations should behave visually: all red rectangles should have the same horizontal position as the one
+ on the reference row, at any time during the animation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-67-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">restart</text>
+ <g transform="translate(130, 80)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>no restart (defaults to always)</text>
+ <text y="25">restart="always"</text>
+ <text y="50">restart="whenNotActive"</text>
+ <text y="75">restart="never"</text>
+ <text y="100">reference</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(180, 25)" text-anchor="middle" font-size="14">
+ <text>> 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+ <g transform="translate(180,40)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="74" begin="0s;1s" dur="4s" />
+ </rect>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;1s" dur="4s" restart="always" />
+ </rect>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;1s" dur="5s" restart="whenNotActive" />
+ </rect>
+ <g transform="translate(20,0)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;2.5s" dur="2.5s" restart="whenNotActive" />
+ </rect>
+ </g>
+ </g>
+ <g xml:id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;5s" dur="5s" restart="never" />
+ </rect>
+ </g>
+ <g xml:id="reference" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="5s" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-68-t.png b/test/svg/svg1.2/svg/animate-elem-68-t.png
new file mode 100644
index 0000000..53b0bed
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-68-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-68-t.svg b/test/svg/svg1.2/svg/animate-elem-68-t.svg
new file mode 100644
index 0000000..e7e10d7
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-68-t.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Basic test on the repeatCount attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-68-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests the repeatCount attribute</p>
+ <p>
+ Each row in the test shows different rectangles subject to <set> animations with different configurations
+ with regards to the repeatCount attribute. For each row, the animation should be active during the first 5 seconds
+ of the animations where the red rectangle should show in the right column. At five seconds into the animation, all
+ the rectangles should move to their left position.
+ </p>
+ <p>
+ On the first row, the <set> animation has its dur attribute set to '5s' and its repeatCount unspecified.
+ Consequently, its only interval is (0s <= t < 5s).
+ </p>
+ <p>
+ On the second row, the <set> animation has its dur attribute set to 1s and its repeatCount set to 5.
+ Consequently, its only interval is (0s <= t < 5s (1s*5)).
+ </p>
+ <p>
+ On the third row, the <set> animation has its dur attribute set to 10s and its repeatCount set to 0.5.
+ Consequently, its only interval is (0s <= t < 5s (10s*0.5)).
+ </p>
+ <p>
+ On the fourth row, the <set> animation has its dur attribute set to 1s and its repeatCount set to
+ indefinite. It also has an end attribute set to 5s. Consequently, the repeat duration is indefinite, but the
+ active duration is limited by the end attribute and the active interval is (0s <= t < 5s).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-68-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">repeatCount</text>
+ <g transform="translate(130, 80)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>dur=5s repeatCount unspecified</text>
+ <text y="25">dur=1s repeatCount=5</text>
+ <text y="50">dur=10s repeatCount=0.5</text>
+ <text y="75">dur=1s repeatCount=indefinite</text>
+ <text y="90">end=5s</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(180, 25)" text-anchor="middle" font-size="14">
+ <text>> 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+ <g transform="translate(180,40)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="74" dur="5s" />
+ </rect>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" repeatCount="5" />
+ </rect>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="10s" repeatCount="0.5" />
+ </rect>
+ </g>
+ <g xml:id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" end="5s" repeatCount="indefinite" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-69-t.png b/test/svg/svg1.2/svg/animate-elem-69-t.png
new file mode 100644
index 0000000..cc649bb
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-69-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-69-t.svg b/test/svg/svg1.2/svg/animate-elem-69-t.svg
new file mode 100644
index 0000000..9c95937
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-69-t.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Basic test on the repeatDur attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-69-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests the repeatDur attribute</p>
+ <p>
+ Each row in the test shows different rectangles subject to <set> animations with different configurations
+ with regards to the repeatDur attribute. For each row, the animation should be active during the first 5 seconds
+ of the animations where the red rectangle should show in the right column. At five seconds into the animation,
+ all the rectangles should move to their left position.
+ </p>
+ <p>
+ On the first row, the <set> animation has its dur attribute set to '5s' and its repeatDur unspecified.
+ Consequently, its only interval is (0s <= t < 5s).
+ </p>
+ <p>
+ On the second row, the <set> animation has its dur attribute set to 1s and its repeatDur set to 5s.
+ Consequently, its only interval is (0s <= t < 5s).
+ </p>
+ <p>
+ On the third row, the <set> animation has its dur attribute set to 0.5s and its repeatDur set to 5s.
+ Consequently, its only interval is (0s <= t < 5s).
+ </p>
+ <p>
+ On the fourth row, the <set> animation has its dur attribute set to 1s and its repeatDur set to indefinite.
+ It also has an end attribute set to 5s. Consequently, the repeat duration is indefinite, but the active duration
+ is limited by the end attribute and the active interval is (0s <= t < 5s).
+ </p>
+ <p>
+ On the fifth row, the <set> animation has its dur attribute set to 0.7s and its repeatDur set to 5s.
+ Consequently, its only interval is (0s <= t < 5s). The difference with the 3rd row is that there is a
+ fractional number of simple durations in the active duration (7.1428) where there is a whole number of simple
+ durations in the third row (10).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-69-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">repeatDur</text>
+ <g transform="translate(130, 80)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>dur=5s repeatDur unspecified</text>
+ <text y="25">dur=1s repeatDur=5s</text>
+ <text y="50">dur=0.5s repeatDur=5s</text>
+ <text y="75">dur=1s repeatDur=indefinite</text>
+ <text y="90">end=5s</text>
+ <text y="125">dur=0.7s repeatDur=5s</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(180, 25)" text-anchor="middle" font-size="14">
+ <text>> 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+ <g transform="translate(180,40)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="74" dur="5s" />
+ </rect>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" repeatDur="5s" />
+ </rect>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="0.5s" repeatDur="5s" />
+ </rect>
+ </g>
+ <g xml:id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" end="5s" repeatDur="indefinite" />
+ </rect>
+ </g>
+ <g xml:id="setFive" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="0.7s" repeatDur="5s" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-70-t.png b/test/svg/svg1.2/svg/animate-elem-70-t.png
new file mode 100644
index 0000000..b109407
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-70-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-70-t.svg b/test/svg/svg1.2/svg/animate-elem-70-t.svg
new file mode 100644
index 0000000..72ed2da
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-70-t.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Basic test on the animation's fill attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-70-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the animation's SMIL 'fill' attribute.
+ </p>
+ <p>
+ On the first row, the <set> animation has its dur
+ attribute set to '1s' and its begin attribute set to '0s;
+ firstSet.end + 1s'. The fill attribute is unspecified, so
+ the effect is as if it was set to 'remove', because 'remove' is
+ the default value for fill.
+
+ Consequently, the first interval is (0s <= t < 1s), the second is
+ (2s <= t < 3s), the third, (4s <= t < 5s) etc.. The red rectangle starts on the
+ right position, moves to the left position for one second, moves
+ to the right for 1 second, and so on.
+ </p>
+ <p>
+ On the second row, the <set> animation
+ with the identifier 'firstSet' has its dur attribute
+ set to 1s and its begin attribute set to '0s; firstSet.end'. The fill attribute
+ is set to 'remove'. The behavior should be exactly the same as for the previous
+ row, and the rectangle moves from the right position to the left position
+ every second.
+ </p>
+ <p>
+ On the third row, the <set> animation has its dur attribute set to
+ 1s and its begin attribute set to '0s; firstSet.end'. The fill attribute
+ is set to 'freeze'. The first interval should be (0s <= t < 1s), the second (2s <= t < 3s),
+ the third, (4s <= t < 5s), etc. Between interval, the fill behavior should be applied,
+ so the red rectangle should stay on the right position and never go to the
+ left position.
+ </p>
+ <p>
+ On the fourth row, the <set> animation has its dur attribute set to
+ 1s and its begin attribute set to '0s'. The fill attribute
+ is set to 'freeze'. The first interval should be (0s <= t < 1s) and there is no
+ following interval. Because of the fill behavior, the <set> should
+ apply the last (and only) animation value after 1s. Consequently, the
+ red rectangle should stay on the right position and never go to the
+ left position.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-70-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1" />
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">fill</text>
+ <g transform="translate(130, 60)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>fill unspecified (remove)</text>
+ <text y="25">fill=remove</text>
+ <text y="100">fill=freeze (with restart)</text>
+ <text y="125">fill=freeze (no restart)</text>
+ </g>
+ <g xml:id="timeMarkersText" transform="translate(180, 125)" text-anchor="middle" font-size="14">
+ <text y="-15">never</text>
+ <text>here</text>
+ <text y="-15" x="80">always</text>
+ <text x="80">here</text>
+ </g>
+ <g transform="translate(180,40)" stroke="black">
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="firstSet" attributeName="x" to="74" begin="0s; firstSet.end + 1s" dur="1s" />
+ </rect>
+ </g>
+ <g xml:id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="secondSet" attributeName="x" to="74" begin="0s; secondSet.end + 1s" dur="1s" fill="remove" />
+ </rect>
+ </g>
+ <g xml:id="setThree" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="thirdSet" attributeName="x" to="74" begin="0s; thirdSet.end + 1s" dur="1s" fill="freeze" />
+ </rect>
+ </g>
+ <g xml:id="setFour" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0" />
+ <use xlink:href="#shadow" x="80" />
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set xml:id="fourthSet" attributeName="x" to="74" begin="0s" dur="1s" fill="freeze" />
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-77-t.png b/test/svg/svg1.2/svg/animate-elem-77-t.png
new file mode 100644
index 0000000..547b762
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-77-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-77-t.svg b/test/svg/svg1.2/svg/animate-elem-77-t.svg
new file mode 100644
index 0000000..7a9a613
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-77-t.svg
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="NR" desc="Test on the animation of text properties and inheritance of animated text properties" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-77-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test demonstrates how <set> elements change text properties on a <text> element. For each of the
+ text properties being tested, 3 <set> elements are set. The first <set> element acts directly on the
+ <text> element. The second <set> element acts on a <g> containing children. The third
+ <set> element acts on an <a> containing children. In each case the test validates that the animated
+ value set on the <g> and <a> elements is inherited by the <text> element. All the <set>
+ elements have a begin attribute set to 0s with an offset of 1s after end. So, the animation will apply 1s after
+ the document is loaded and will repeat every 1s after the animation ends.
+ </p>
+ <p>
+ The first <set> validates the transform property. When applied to the <text> element, the letter A
+ will be translated to the right every 1s, in the <text> column. When applied to the <g> element, the
+ letter A inherits the transform value and is translated to the right every 1s, as seen in the <g> column.
+ When applied to the <a> element, the letter A inherits the transform value and is translated to the right
+ every 1s, as seen in <a> column.
+ </p>
+ <p>
+ The second <set> validates the text-anchor attribute. When applied to the <text> element, the anchor
+ position of letter A is moved from start to end. When applied to the <g> and <a> element, the property
+ is inherited and hence the anchor position of letter A is moved from start to end in the second row.
+ </p>
+ <p>
+ The third <set> validates the font-size attribute. The font size of letter A is changed from 20 to 30. When
+ applied to <g> and <a> elements, the letter A inherits the font-size and hence in row 3, letter A has
+ a font-size of 30 in all 3 right columns of row 3.
+ </p>
+ <p>
+ The fourth <set> validates the font-family attribute. The font-family is changed from default to serif. When
+ applied to <g> and <a> elements, the letter A inherits the font-family attribute and hence in row 4,
+ letter A has serif font-family in all 3 columns.
+ </p>
+ <p>
+ The fifth <set> validates the font-style attribute. The font-style is changed from normal to italic. When
+ applied to <g> and <a> elements, the letter A inherits the font-style attribute and hence in row 5,
+ letter A is animated to italic in all 3 columns.
+ </p>
+ <p>
+ The sixth <set> validates the font-weight attribute. The font-weight is changed from normal to bold. When
+ applied to <g> and <a> elements, the letter A inherits the font-weight attribute and hence in row 6,
+ letter A is changed to bold on the right.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-77-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="setOneRef">
+ <text x="10" y="20" fill="#aaa">A </text>
+ <text x="10" y="20" fill="#aaa" transform="translate(30,0)">A </text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setTwoRef">
+ <text x="10" y="20" fill="#aaa">A </text>
+ <text x="10" y="20" fill="#aaa" transform="translate(40,0)" text-anchor="end">A</text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setThreeRef">
+ <text x="10" y="20" fill="#aaa">A </text>
+ <text x="40" y="20" font-size="30" fill="#aaa">A</text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setFourRef">
+ <text x="10" y="20" font-size="30" fill="#aaa" font-family="sans-serif">A</text>
+ <text x="40" y="20" font-size="30" fill="#aaa" font-family="serif">A</text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setFiveRef">
+ <text x="10" y="20" fill="#aaa">A</text>
+ <text x="40" y="20" fill="#aaa" font-style="italic">A</text>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setSixRef">
+ <text x="10" y="20" fill="#aaa">A</text>
+ <text x="40" y="20" fill="#aaa" font-weight="bold">A</text>
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="30" font-size="20">text</text>
+ <g transform="translate(80, 80)">
+ <g transform="translate(20,10)" text-anchor="end" font-size="14">
+ <text x="5" y="15">transform</text>
+ <text x="5" y="50">text-anchor</text>
+ <text x="5" y="85">font-size</text>
+ <text x="5" y="120">font-family</text>
+ <text x="5" y="155">font-style</text>
+ <text x="5" y="190">font-weight</text>
+ </g>
+ <g xml:id="type" transform="translate(90, -10)" text-anchor="middle" font-size="14">
+ <text x="20" y="3"><text></text>
+ <text x="135" y="3"><g></text>
+ <text x="250" y="3"><a></text>
+ </g>
+ <g transform="translate(80,5)" text-anchor="start" font-size="20" fill="rgb(204,0,102)">
+ <text xml:id="one" x="10" y="20" fill="#aaa">A </text>
+ <g xml:id="setOne">
+ <use xlink:href="#setOneRef" />
+ <use xlink:href="#setOneRef" x="110" />
+ <use xlink:href="#setOneRef" x="220" />
+ <text x="10" y="20">A
+ <animateTransform attributeName="transform" xml:id="firstSet" type="translate" from="30,0" to="30,0" begin="0s; firstSet.end + 1s" dur="1s" />
+ </text>
+ <g transform="translate(110, 0)">
+ <animateTransform attributeName="transform" xml:id="secondSet" type="translate" from="140,0" to="140,0" begin="0s; secondSet.end + 1s" dur="1s" />
+ <text x="10" y="20">A</text>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <animateTransform attributeName="transform" xml:id="thirdSet" type="translate" from="250,0" to="250,0" begin="0s; thirdSet.end + 1s" dur="1s" />
+ <text x="10" y="20">A</text>
+ </a>
+ </g>
+ <g xml:id="setTwo" transform="translate(0,35)">
+ <use xlink:href="#setTwoRef" />
+ <use xlink:href="#setTwoRef" x="110" />
+ <use xlink:href="#setTwoRef" x="220" />
+ <text x="10" y="20">A
+ <set xml:id="secondSet1" attributeName="text-anchor" to="end" begin="0s; secondSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="secondSet1_1" type="translate" from="40,0" to="40,0" begin="0s; secondSet1_1.end + 1s" dur="1s" />
+ </text>
+ <g>
+ <set xml:id="secondSet2" attributeName="text-anchor" to="end" begin="0s; secondSet2.end + 1s" dur="1s" />
+ <text x="120" y="20">A
+ <animateTransform attributeName="transform" xml:id="secondSet2_1" type="translate" from="40,0" to="40,0" begin="0s; secondSet2_1.end + 1s" dur="1s" />
+ </text>
+ </g>
+ <a>
+ <set xml:id="secondSet3" attributeName="text-anchor" to="end" begin="0s; secondSet3.end + 1s" dur="1s" />
+ <text x="230" y="20">A
+ <animateTransform attributeName="transform" xml:id="secondSet3_1" type="translate" from="40,0" to="40,0" begin="0s; secondSet3_1.end + 1s" dur="1s" />
+ </text>
+ </a>
+ </g>
+ <g xml:id="setThree" transform="translate(0,70)">
+ <use xlink:href="#setThreeRef" />
+ <use xlink:href="#setThreeRef" x="110" />
+ <use xlink:href="#setThreeRef" x="220" />
+ <text x="10" y="20">A
+ <set xml:id="thirdSet1" attributeName="font-size" to="30" begin="0s; thirdSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="thirdSet1_1" type="translate" from="30,0" to="30,0" begin="0s; thirdSet1_1.end + 1s" dur="1s" />
+ </text>
+ <g>
+ <set xml:id="thirdSet2" attributeName="font-size" to="30" begin="0s; thirdSet2.end + 1s" dur="1s" />
+ <text x="120" y="20">A
+ <animateTransform attributeName="transform" xml:id="thirdSet2_1" type="translate" from="30,0" to="30,0" begin="0s; thirdSet2_1.end + 1s" dur="1s" />
+ </text>
+ </g>
+ <a>
+ <set xml:id="thirdSet3" attributeName="font-size" to="30" begin="0s; thirdSet3.end + 1s" dur="1s" />
+ <text x="230" y="20">A
+ <animateTransform attributeName="transform" xml:id="thirdSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet3_1.end + 1s" dur="1s" />
+ </text>
+ </a>
+ </g>
+ <g xml:id="setFour" transform="translate(0,105)">
+ <use xlink:href="#setFourRef" />
+ <use xlink:href="#setFourRef" x="110" />
+ <use xlink:href="#setFourRef" x="220" />
+ <text x="10" y="20" font-size="30" font-family="sans-serif">A
+ <set xml:id="fourthSet1" attributeName="font-family" to="serif" begin="0s; fourthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="fourthSet1_1" type="translate" from="30,0" to="30,0" begin="0s; fourthSet1_1.end + 1s" dur="1s" />
+ </text>
+ <g transform="translate(110,0)" font-family="sans-serif">
+ <set xml:id="fourthSet2" attributeName="font-family" to="serif" begin="0s; fourthSet2.end + 1s" dur="1s" />
+ <text x="10" y="20" font-size="30">A
+ <animateTransform attributeName="transform" xml:id="fourthSet2_1" type="translate" from="30,0" to="30,0" begin="0s; fourthSet2_1.end + 1s" dur="1s" />
+ </text>
+ </g>
+ <a xlink:href="" transform="translate(220,0)" font-family="sans-serif">
+ <set xml:id="fourthSet3" attributeName="font-family" to="serif" begin="0s; fourthSet3.end + 1s" dur="1s" />
+ <text x="10" y="20" font-size="30">A
+ <animateTransform attributeName="transform" xml:id="fourthSet3_1" type="translate" from="30,0" to="30,0" begin="0s; fourthSet2_1.end + 1s" dur="1s" />
+ </text>
+ </a>
+ </g>
+ <g xml:id="setFive" transform="translate(0,140)">
+ <use xlink:href="#setFiveRef" />
+ <use xlink:href="#setFiveRef" x="110" />
+ <use xlink:href="#setFiveRef" x="220" />
+ <text x="10" y="20">A
+ <set xml:id="fifthSet1" attributeName="font-style" to="italic" begin="0s; fifthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="fifthSet1_1" type="translate" from="30,0" to="30,0" begin="0s; fifthSet1_1.end + 1s" dur="1s" />
+ </text>
+ <g transform="translate(110,0)">
+ <set xml:id="fifthSet2" attributeName="font-style" to="italic" begin="0s; fifthSet2.end + 1s" dur="1s" />
+ <text x="10" y="20">A
+ <animateTransform attributeName="transform" xml:id="fifthSet2_1" type="translate" from="30,0" to="30,0" begin="0s; fifthSet2_1.end + 1s" dur="1s" />
+ </text>
+ </g>
+ <a xlink:href="" transform="translate(220,0)">
+ <set xml:id="fifthSet3" attributeName="font-style" to="italic" begin="0s; fifthSet3.end + 1s" dur="1s" />
+ <text x="10" y="20">A
+ <animateTransform attributeName="transform" xml:id="fifthSet3_1" type="translate" from="30,0" to="30,0" begin="0s; fifthSet3_1.end + 1s" dur="1s" />
+ </text>
+ </a>
+ </g>
+ <g xml:id="setSix" transform="translate(0,175)">
+ <use xlink:href="#setSixRef" />
+ <use xlink:href="#setSixRef" x="110" />
+ <use xlink:href="#setSixRef" x="220" />
+ <text x="10" y="20">A
+ <set xml:id="sixthSet1" attributeName="font-weight" to="bold" begin="0s; sixthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="sixthSet1_1" type="translate" from="30,0" to="30,0" begin="0s; sixthSet1_1.end + 1s" dur="1s" />
+ </text>
+ <g transform="translate(110,0)">
+ <set xml:id="sixthSet2" attributeName="font-weight" to="bold" begin="0s; sixthSet2.end + 1s" dur="1s" />
+ <text x="10" y="20">A
+ <animateTransform attributeName="transform" xml:id="sixthSet2_1" type="translate" from="30,0" to="30,0" begin="0s; sixthSet2_1.end + 1s" dur="1s" />
+ </text>
+ </g>
+ <a xlink:href="" transform="translate(220,0)">
+ <set xml:id="sixthSet3" attributeName="font-weight" to="bold" begin="0s; sixthSet3.end + 1s" dur="1s" />
+ <text x="10" y="20">A
+ <animateTransform attributeName="transform" xml:id="sixthSet3_1" type="translate" from="30,0" to="30,0" begin="0s; sixthSet3_1.end + 1s" dur="1s" />
+ </text>
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-78-t.png b/test/svg/svg1.2/svg/animate-elem-78-t.png
new file mode 100644
index 0000000..722d702
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-78-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-78-t.svg b/test/svg/svg1.2/svg/animate-elem-78-t.svg
new file mode 100644
index 0000000..392220d
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-78-t.svg
@@ -0,0 +1,427 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="NR" desc="Test on the animation of graphic properties and the inheritance of animated graphics properties" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-78-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test demonstrates how <set> elements change graphics properties on elements from the 'Basic Shapes'
+ chapter. For each of the graphics properties being tested, 3 <set> animations are applied. The first <set>
+ element acts directly on 'Basic Shape' elements. The second <set> element acts on a <g> containing
+ children. The third <set> element acts on an <a> containing children. In each case the test validates
+ that the animated value set on the <g> and <a> elements is inherited by the 'Basic Shape' element. All
+ the <set> elements have a begin attribute set to 0s with an offset of 1s after the end. So, the animation will
+ apply 1s after the document is loaded and will repeat every 1s after the animation ends.
+ </p>
+ <p>
+ The first <set> validates the fill property, with fill set to orange. When applied directly to the 'Basic
+ Shape' element, the <rect> fill value will change to orange when it is translated to the right every 1s.
+ When applied to the <g> and <a> elements, the <rect> inherits the fill value and is orange.
+ </p>
+ <p>
+ The second <set> validates the fill-style property, with fill-style set to evenodd. When applied to the
+ 'Basic Shape' element, the <polyline> fill-style is changed from nonzero to evenodd. When applied to the
+ <g> and <a> elements, the <polyline> inherits the evenodd fill-style.
+ </p>
+ <p>
+ The third <set> validates the stroke property. In this case fill is set to none. When stroke is applied
+ to the 'Basic Shape' element, the <rect> on the right appears with the stroke color. When applied to the
+ <g> and <a> elements, the <rect> inherits the stroke property.
+ </p>
+ <p>
+ The fourth <set> validates the stroke-width property, with stroke-width set to 4. When stroke-width is
+ applied to the 'Basic Shape' element, the <line> on the right has a width of 4. When applied to the
+ <g> and <a> elements, the <line> inherits the stroke-width.
+ </p>
+ <p>
+ The fifth <set> validates the stroke-linecap property, with stroke-linecap set to round. When
+ stroke-linecap is applied to the 'Basic Shape' element, the <line> stroke-linecap value switches from
+ butt to round. When applied to the <g> and <a> elements, the <line> inherits the square
+ stroke-linecap.
+ </p>
+ <p>
+ The sixth <set> validates the stroke-linejoin property, with stroke-linejoin set to bevel. When
+ stroke-linejoin is applied to the 'Basic Shape' element, the <line> stroke-linejoin value switches
+ from miter to bevel. When applied to the <g> and <a> elements, the <line> inherits the
+ bevel stroke-linejoin.
+ </p>
+ <p>
+ The seventh <set> validates the stroke-miterlimit property, with stroke-miterlimit set to 10. When
+ stroke-miterlimit is applied to the 'Basic Shape' element, the miter-length to stroke-width ratio exceeds
+ the miter-limit and the <polyline> switches from bevel to miter.When applied to the <g> and
+ <a> elements,the <line> inherits the stroke-miterlimit.
+ </p>
+ <p>
+ The eighth <set> validates the stroke-dashoffset property, with stroke-dashoffset set to 5.5. When
+ stroke-dashoffset is applied to the 'Basic Shape' element, the <line> has a different dashing
+ pattern. When applied to the <g> and <a> elements, the <line> inherits the property.
+ </p>
+ <p>
+ The ninth <set> validates the display property, with display set to none. When display is applied to
+ the 'Basic Shape' element, the <rect> does not appear on the right. When applied to the <g> and
+ <a> elements, the <line> inherits the display property and hence is not seen.
+ </p>
+ <p>
+ The tenth <set> validates the visibility property, with visibility set to hidden. When visibility is
+ applied to the 'Basic Shape' element, the <rect> is hidden on the right. When applied to the
+ <g> and <a> elements, the <line> inherits the visibility property and hence is not seen.
+ </p>
+ <p>
+ The eleventh <set> validates the color property, with color set to blue. When color is applied to the
+ 'Basic Shape' element, the <rect> on the right switches from default color of black to blue. When
+ applied to the <g> and <a> elements, the <line> inherits the color property.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-78-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="setOneRef">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setTwoRef">
+ <polyline fill="#ccc" stroke="#ccc" stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10"> </polyline>
+ <polyline fill="#ccc" stroke="#ccc" fill-rule="evenodd" stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10" transform="translate(30,0)"> </polyline>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setThreeRef">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setFourRef">
+ <line x1="10" y1="8" x2="20" y2="0" stroke="#ccc"> </line>
+ <line x1="10" y1="8" x2="20" y2="0" stroke-width="4" stroke="#ccc" transform="translate(30,0)"> </line>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setFiveRef">
+ <line x1="10" y1="8" x2="20" y2="0" stroke="#ccc"> </line>
+ <line x1="10" y1="8" x2="20" y2="0" stroke-linecap="round" stroke="#ccc" transform="translate(30,0)"> </line>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setSixRef">
+ <polyline stroke="#ccc" points="5,2,20,5,5,8"> </polyline>
+ <polyline stroke="#ccc" points="5,2,20,5,5,8" stroke-linejoin="bevel" transform="translate(30,0)"> </polyline>
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setSevenRef">
+ <polyline points="5,0,20,5,5,10" stroke="#ccc" />
+ <polyline points="5,0,20,5,5,10" stroke="#ccc" stroke-miterlimit="10" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setEightRef">
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc" />
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc" stroke-dashoffset="5.5" transform="translate(40,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setNineRef">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setTenRef">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <defs>
+ <g xml:id="setElevenRef">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" />
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="20">graphics</text>
+ <g transform="translate(80, 75)">
+ <g transform="translate(30,10)" text-anchor="end" font-size="12">
+ <text>fill</text>
+ <text y="20">fill-rule</text>
+ <text y="40">stroke</text>
+ <text y="60">stroke-width</text>
+ <text y="80">stroke-linecap</text>
+ <text y="100">stroke-linejoin</text>
+ <text y="120">stroke-miterlimit</text>
+ <text y="140">stroke-dashoffset</text>
+ <text y="160">display</text>
+ <text y="180">visibility</text>
+ <text y="200">color</text>
+ </g>
+ <g xml:id="type" transform="translate(90, -20)" text-anchor="middle" font-size="14">
+ <text x="20" y="3">'Basic Shape'</text>
+ <text x="130" y="3"><g></text>
+ <text x="235" y="3"><a></text>
+ </g>
+ <g transform="translate(80,0)" fill="rgb(204,0,102)">
+ <rect x="10" width="8" height="8" fill="#ccc" />
+ <g xml:id="setOne">
+ <use xlink:href="#setOneRef" />
+ <use xlink:href="#setOneRef" x="110" />
+ <use xlink:href="#setOneRef" x="220" />
+ <rect x="10" width="8" height="8">
+ <set xml:id="firstSet1" attributeName="fill" to="rgb(255, 165, 0)" begin="0s; firstSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="firstSet1_1" type="translate" from="30,0" to="30,0" begin="0s; firstSet1_1.end + 1s" dur="1s" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <set xml:id="firstSet2" attributeName="fill" to="rgb(255, 165, 0)" begin="0s; firstSet2.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="firstSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; firstSet2_1.end + 1s" dur="1s" />
+ </rect>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="firstSet3" attributeName="fill" to="rgb(255, 165, 0)" begin="0s; firstSet3.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="firstSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; firstSet3_1.end + 1s" dur="1s" />
+ </rect>
+ </a>
+ </g>
+ <g xml:id="setTwo" transform="translate(5,15)" stroke="rgb(204,0,102)">
+ <use xlink:href="#setTwoRef" />
+ <use xlink:href="#setTwoRef" x="110" />
+ <use xlink:href="#setTwoRef" x="220" />
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <set xml:id="secondSet1" attributeName="fill-rule" to="evenodd" begin="0s; secondSet1_1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="secondSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; secondSet1_1.end + 1s" dur="1s" />
+ </polyline>
+ <g transform="translate(110, 0)">
+ <set xml:id="secondSet2" attributeName="fill-rule" to="evenodd" begin="0s; secondSet2_1.end + 1s" dur="1s" />
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <animateTransform attributeName="transform" xml:id="secondSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; secondSet2_1.end + 1s" dur="1s" />
+ </polyline>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="secondSet3" attributeName="fill-rule" to="evenodd" begin="0s; secondSet3_1.end + 1s" dur="1s" />
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <animateTransform attributeName="transform" xml:id="secondSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; secondSet3_1.end + 1s" dur="1s" />
+ </polyline>
+ </a>
+ </g>
+ <g xml:id="setThree" transform="translate(0,45)" fill="none">
+ <use xlink:href="#setThreeRef" />
+ <use xlink:href="#setThreeRef" x="110" />
+ <use xlink:href="#setThreeRef" x="220" />
+ <rect x="10" width="8" height="8">
+ <set xml:id="thirdSet1" attributeName="stroke" to="rgb(204,0,102)" begin="0s; thirdSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="thirdSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet1_1.end + 1s" dur="1s" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <set xml:id="thirdSet2" attributeName="stroke" to="rgb(204,0,102)" begin="0s; thirdSet2.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="thirdSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet2_1.end + 1s" dur="1s" />
+ </rect>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="thirdSet3" attributeName="stroke" to="rgb(204,0,102)" begin="0s; thirdSet3.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="thirdSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet3_1.end + 1s" dur="1s" />
+ </rect>
+ </a>
+ </g>
+ <g xml:id="setFour" transform="translate(0,60)" stroke="rgb(204,0,102)">
+ <use xlink:href="#setFourRef" />
+ <use xlink:href="#setFourRef" x="110" />
+ <use xlink:href="#setFourRef" x="220" />
+ <line x1="10" y1="8" x2="20" y2="0">
+ <set xml:id="fourthSet1" attributeName="stroke-width" to="4" begin="0s; fourthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="fourthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; fourthSet1_1.end + 1s" dur="1s" />
+ </line>
+ <g transform="translate(110, 0)">
+ <set xml:id="fourthSet2" attributeName="stroke-width" to="4" begin="0s; fourthSet2.end + 1s" dur="1s" />
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" xml:id="fourthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; fourthSet2_1.end + 1s" dur="1s" />
+ </line>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="fourthSet3" attributeName="stroke-width" to="4" begin="0s; fourthSet3.end + 1s" dur="1s" />
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" xml:id="fourthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; fourthSet3_1.end + 1s" dur="1s" />
+ </line>
+ </a>
+ </g>
+ <g xml:id="setFive" transform="translate(0,80)" stroke-width="4" stroke="rgb(204,0,102)">
+ <use xlink:href="#setFiveRef" />
+ <use xlink:href="#setFiveRef" x="110" />
+ <use xlink:href="#setFiveRef" x="220" />
+ <line x1="10" y1="8" x2="20" y2="0">
+ <set xml:id="fifthSet1" attributeName="stroke-linecap" to="round" begin="0s; fifthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="fifthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; fifthSet1_1.end + 1s" dur="1s" />
+ </line>
+ <g transform="translate(110, 0)">
+ <set xml:id="fifthSet2" attributeName="stroke-linecap" to="round" begin="0s; fifthSet2.end + 1s" dur="1s" />
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" xml:id="fifthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; fifthSet2_1.end + 1s" dur="1s" />
+ </line>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="fifthSet3" attributeName="stroke-linecap" to="round" begin="0s; fifthSet3.end + 1s" dur="1s" />
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" xml:id="fifthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; fifthSet3_1.end + 1s" dur="1s" />
+ </line>
+ </a>
+ </g>
+ <g xml:id="setSix" transform="translate(5,100)" fill="none" stroke-miterlimit="10" stroke-width="3" stroke="rgb(204,0,102)">
+ <use xlink:href="#setSixRef" />
+ <use xlink:href="#setSixRef" x="110" />
+ <use xlink:href="#setSixRef" x="220" />
+ <polyline points="5,2,20,5,5,8">
+ <set xml:id="sixthSet1" attributeName="stroke-linejoin" to="bevel" begin="0s; sixthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="sixthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; sixthSet1_1.end + 1s" dur="1s" />
+ </polyline>
+ <g transform="translate(110, 0)">
+ <set xml:id="sixthSet2" attributeName="stroke-linejoin" to="bevel" begin="0s; sixthSet2.end + 1s" dur="1s" />
+ <polyline points="5,2,20,5,5,8">
+ <animateTransform attributeName="transform" xml:id="sixthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; sixthSet2_1.end + 1s" dur="1s" />
+ </polyline>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="sixthSet3" attributeName="stroke-linejoin" to="bevel" begin="0s; sixthSet3.end + 1s" dur="1s" />
+ <polyline points="5,2,20,5,5,8">
+ <animateTransform attributeName="transform" xml:id="sixthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; sixthSet3_1.end + 1s" dur="1s" />
+ </polyline>
+ </a>
+ </g>
+ <g xml:id="setSeven" transform="translate(5,120)" stroke-miterlimit="1" fill="none" stroke-width="3" stroke="rgb(204,0,102)">
+ <use xlink:href="#setSevenRef" />
+ <use xlink:href="#setSevenRef" x="110" />
+ <use xlink:href="#setSevenRef" x="220" />
+ <polyline points="5,0,20,5,5,10">
+ <set xml:id="seventhSet1" attributeName="stroke-miterlimit" to="10" begin="0s; seventhSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="seventhSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; seventhSet1_1.end + 1s" dur="1s" />
+ </polyline>
+ <g transform="translate(110, 0)">
+ <set xml:id="seventhSet2" attributeName="stroke-miterlimit" to="10" begin="0s; seventhSet2.end + 1s" dur="1s" />
+ <polyline points="5,0,20,5,5,10">
+ <animateTransform attributeName="transform" xml:id="seventhSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; seventhSet2_1.end + 1s" dur="1s" />
+ </polyline>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="seventhSet3" attributeName="stroke-miterlimit" to="10" begin="0s; seventhSet3.end + 1s" dur="1s" />
+ <polyline points="5,0,20,5,5,10">
+ <animateTransform attributeName="transform" xml:id="seventhSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; seventhSet3_1.end + 1s" dur="1s" />
+ </polyline>
+ </a>
+ </g>
+ <g xml:id="setEight" transform="translate(-5,145)" stroke-dasharray="3,4,5" stroke-width="3" stroke="rgb(204,0,102)">
+ <use xlink:href="#setEightRef" />
+ <use xlink:href="#setEightRef" x="110" />
+ <use xlink:href="#setEightRef" x="220" />
+ <line x1="0" y1="0" x2="25" y2="0">
+ <set xml:id="eighthSet1" attributeName="stroke-dashoffset" to="5.5" begin="0s; eighthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="eighthSet1_1" type="translate" from="40, 0" to="40,0" begin="0s; eighthSet1_1.end + 1s" dur="1s" />
+ </line>
+ <g transform="translate(110, 0)">
+ <set xml:id="eighthSet2" attributeName="stroke-dashoffset" to="5.5" begin="0s; eighthSet2.end + 1s" dur="1s" />
+ <line x1="0" y1="0" x2="25" y2="0">
+ <animateTransform attributeName="transform" xml:id="eighthSet2_1" type="translate" from="40, 0" to="40,0" begin="0s; eighthSet2_1.end + 1s" dur="1s" />
+ </line>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="eighthSet3" attributeName="stroke-dashoffset" to="5.5" begin="0s; eighthSet3.end + 1s" dur="1s" />
+ <line x1="0" y1="0" x2="25" y2="0">
+ <animateTransform attributeName="transform" xml:id="eighthSet3_1" type="translate" from="40, 0" to="40,0" begin="0s; eighthSet3_1.end + 1s" dur="1s" />
+ </line>
+ </a>
+ </g>
+ <g xml:id="setNine" transform="translate(0,160)">
+ <use xlink:href="#setNineRef" />
+ <use xlink:href="#setNineRef" x="110" />
+ <use xlink:href="#setNineRef" x="220" />
+ <rect x="10" width="8" height="8">
+ <set xml:id="ninthSet1" attributeName="display" to="none" begin="0s; ninthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="ninthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; ninthSet1_1.end + 1s" dur="1s" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <set xml:id="ninthSet2" attributeName="display" to="none" begin="0s; ninthSet2.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="ninthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; ninthSet2_1.end + 1s" dur="1s" />
+ </rect>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="ninthSet3" attributeName="display" to="none" begin="0s; ninthSet3.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="ninthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; ninthSet3_1.end + 1s" dur="1s" />
+ </rect>
+ </a>
+ </g>
+ <g xml:id="setTen" transform="translate(0,180)">
+ <use xlink:href="#setTenRef" />
+ <use xlink:href="#setTenRef" x="110" />
+ <use xlink:href="#setTenRef" x="220" />
+ <rect x="10" width="8" height="8">
+ <set xml:id="tenthSet1" attributeName="visibility" to="hidden" begin="0s; tenthSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="tenthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; tenthSet1_1.end + 1s" dur="1s" />
+ </rect>
+ <g transform="translate(110, 0)">
+ <set xml:id="tenthSet2" attributeName="visibility" to="hidden" begin="0s; tenthSet2.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="tenthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; tenthSet2_1.end + 1s" dur="1s" />
+ </rect>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)">
+ <set xml:id="tenthSet3" attributeName="visibility" to="hidden" begin="0s; tenthSet3.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="tenthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; tenthSet3_1.end + 1s" dur="1s" />
+ </rect>
+ </a>
+ </g>
+ <g xml:id="setEleven" color="rgb(204,0,102)" transform="translate(0,200)">
+ <use xlink:href="#setElevenRef" />
+ <use xlink:href="#setElevenRef" x="110" />
+ <use xlink:href="#setTenRef" x="220" />
+ <rect x="10" width="8" height="8" fill="currentColor">
+ <set xml:id="eleventhSet1" attributeName="color" to="rgb(255, 165, 0)" begin="0s; eleventhSet1.end + 1s" dur="1s" />
+ <animateTransform attributeName="transform" xml:id="eleventhSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; eleventhSet1_1.end + 1s" dur="1s" />
+ </rect>
+ <g transform="translate(110, 0)" fill="currentColor">
+ <set xml:id="eleventhSet2" attributeName="color" to="rgb(255, 165, 0)" begin="0s; eleventhSet2.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="eleventhSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; eleventhSet2_1.end + 1s" dur="1s" />
+ </rect>
+ </g>
+ <a xlink:href="" transform="translate(220, 0)" fill="currentColor">
+ <set xml:id="eleventhSet3" attributeName="color" to="rgb(255, 165, 0)" begin="0s; eleventhSet3.end + 1s" dur="1s" />
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" xml:id="eleventhSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; eleventhSet3_1.end + 1s" dur="1s" />
+ </rect>
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-80-t.png b/test/svg/svg1.2/svg/animate-elem-80-t.png
new file mode 100644
index 0000000..b885f32
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-80-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-80-t.svg b/test/svg/svg1.2/svg/animate-elem-80-t.svg
new file mode 100644
index 0000000..952c825
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-80-t.svg
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Test on the animateTransform type attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-80-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test demonstrates validates the operation of the animateTransform element and validates the operation of
+ the different type attribute values.
+ </p>
+ <p>
+ There are 5 possible values for the type attribute and there is one animateTransform for each type and two for
+ the translate type.
+ </p>
+ <p>
+ For each transform type, the test has a corresponding animateTransform. The test uses references to show what
+ the expected transform should be at different points in the animation. For example, the top left
+ animateTransform, for type=rotate, shows circular markers which turn orange at the time of corresponding
+ transform value should be set by the animateTransform. The marker elements show the expected transform value
+ on reference markers in the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-80-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40" />
+ <line x1="-45" x2="45" />
+ <line y1="-45" y2="45" />
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animateTransform></text>
+ <g transform="translate(0,0)" font-size="14">
+ <g transform="translate(60,90)">
+ <use xlink:href="#ref" />
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(0)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s" />
+ </line>
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(90)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2.5s;5.5s" dur="0.2s" />
+ </line>
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(180)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s;5s" dur="0.2s" />
+ </line>
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(270)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.5s;4.5s" dur="0.2s" />
+ </line>
+ <line x2="40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="rotate" values="0;360;0" begin="2s" dur="4s" />
+ </line>
+ <text y="60" text-anchor="middle">type=rotate</text>
+ </g>
+ <g transform="translate(180,110)">
+ <line y2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewX(0)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s" />
+ </line>
+ <line y2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewX(45)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.333s" dur="0.2s" />
+ </line>
+ <line y2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewX(-45)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4.666s" dur="0.2s" />
+ </line>
+ <line y2="-40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="skewX" values="0;45;-45;0" begin="2s" dur="4s" />
+ </line>
+ <text y="40" text-anchor="middle">type=skewX</text>
+ </g>
+ <g transform="translate(300,90)">
+ <g transform="translate(15,0)">
+ <line x2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewY(0)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s" />
+ </line>
+ <line x2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewY(30)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.333s" dur="0.2s" />
+ </line>
+ <line x2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewY(-30)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4.666s" dur="0.2s" />
+ </line>
+ <line x2="-40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="skewY" values="0;30;-30;0" begin="2s" dur="4s" />
+ </line>
+ </g>
+ <text y="60" text-anchor="middle">type=skewY</text>
+ </g>
+ <g transform="translate(420,90)">
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="40" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="30" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="20" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s" />
+ </circle>
+ <circle fill="rgb(200,80,80)" r="10" transform="scale(4)">
+ <animateTransform attributeName="transform" type="scale" values="4,4;3,3;2,2;1,1" begin="2s" dur="3s" fill="freeze" />
+ </circle>
+ <text y="60" text-anchor="middle">type=scale</text>
+ <text y="75" text-anchor="middle">(sx and sy)</text>
+ </g>
+ <g transform="translate(20,180)">
+ <use xlink:href="#ref" x="40" y="40" />
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(0,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s" />
+ </line>
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(90,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2.5s;5.5s" dur="0.2s" />
+ </line>
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(180,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s;5s" dur="0.2s" />
+ </line>
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(270,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.5s;4.5s" dur="0.2s" />
+ </line>
+ <line x1="40" y1="40" x2="80" y2="40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="rotate" values="0 40 40;360 40 40;0 40 40" begin="2s" dur="4s" />
+ </line>
+ <text y="100" x="40" text-anchor="middle">type=rotate</text>
+ <text y="115" x="40" text-anchor="middle">(with cx/cy)</text>
+ </g>
+ <g transform="translate(180,220)">
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-40" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-20" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="0" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="20" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="40" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="6s" dur="0.2s" />
+ </circle>
+ <circle fill="rgb(200,80,80)" r="6" transform="translate(-40,0)">
+ <animateTransform attributeName="transform" type="translate" values="-40;-20;0;20;40" begin="2s" dur="4s" fill="freeze" />
+ </circle>
+ <text y="60" text-anchor="middle">type=translate</text>
+ <text y="75" text-anchor="middle">(tx only)</text>
+ </g>
+ <g transform="translate(300,220)">
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-40" cy="30" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-20" cy="15" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="0" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="20" cy="-15" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="40" cy="-30" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="6s" dur="0.2s" />
+ </circle>
+ <circle fill="rgb(200,80,80)" r="6" transform="translate(-40,30)">
+ <animateTransform attributeName="transform" type="translate" values="-40,30;-20,15;0,0;20,-15;40,-30" begin="2s" dur="4s" fill="freeze" />
+ </circle>
+ <text y="60" text-anchor="middle">type=translate</text>
+ <text y="75" text-anchor="middle">(tx and ty)</text>
+ </g>
+ <g transform="translate(420,220)">
+ <circle stroke="rgb(192,192,192)" stroke-width="1" r="10" fill="none" transform="scale(4,4)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="1.3333" r="10" fill="none" transform="scale(3,3)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="2" r="10" fill="none" transform="scale(2,2)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s" />
+ </circle>
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="10" fill="none" transform="scale(1,1)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s" />
+ </circle>
+ <circle fill="rgb(200,80,80)" r="10" transform="scale(4,4)">
+ <animateTransform attributeName="transform" type="scale" values="4;3;2;1" begin="2s" dur="3s" fill="freeze" />
+ </circle>
+ <text y="60" text-anchor="middle">type=scale</text>
+ <text y="75" text-anchor="middle">(sx only)</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-81-t.png b/test/svg/svg1.2/svg/animate-elem-81-t.png
new file mode 100644
index 0000000..f6bc32e
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-81-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-81-t.svg b/test/svg/svg1.2/svg/animate-elem-81-t.svg
new file mode 100644
index 0000000..5abfd89
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-81-t.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Test on the animateTransform additive behavior" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-81-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test validates the operation of the animateTransform's additive behavior, as described in the SVG 1.1
+ specification (see http://www.w3.org/TR/SVG11/animate.html#AnimateTransformElement).
+ </p>
+ <p>
+ The first two rectangles, on the top row, show the effect of the additive attribute on animateTransform. The
+ left-most animateTransforms have their additive attribute set to replace, so the effect of the two transform
+ animation is as if only the highest priority one applied because it replaces the underlying value. The second
+ animateTransforms (from left to right) have their additive attribute set to sum, which means the transforms they
+ roduce are concatenated.
+ </p>
+ <p>
+ The last two rectangles, on the top row, show the effect of the accumulate attribute on animateTransform. For the
+ left one (third on the row, from left to right), the accumulate attribute is set to none. There are two repeats for
+ the animateTransform. Therefore, the transform goes twice from a scale(1,1) to a scale(2,2). For the right-most
+ animateTransform, the accumulate attribute is set to sum. There are two repeats and the animation goes from scale(1,1)
+ to scale(2,2) for the first iteration and then from scale(2,2) to scale(4,4) (because the result of the second
+ iteration is concatenated to the scale(2,2) result of the previous, first iteration).
+ </p>
+ <p>
+ The rectangles on the bottom row show the combination of additive and cumulative behavior. The left rectangle's
+ animateTransform accumulate behavior is set to none but its additive behavior is set to sum. Therefore, the
+ transform's underlying value (skewX(30)) is always pre-concatenated to the animateTransform's result, which goes
+ from "skewX(30) scale(1,1)" to "skewX(30) scale(2,2)" in each of its two iterations. The right rectangle's
+ animateTransform accumulate behavior is set to sum and the additive behavior is also set to sum. Therefore, the
+ transform's underlying value is always pre-concatenated, so is the result of previous animation iterations.
+ Consequently, the transform goes from "skewX(30) scale(1,1)" to "skewX(30) scale(2,2)" for the first iteration
+ and then from "skewX(30) scale(2,2) scale(1,1)" to "skewX(30) scale(2,2) scale(2,2)" for the second iteration.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-81-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40" />
+ <line x1="-45" x2="45" />
+ <line y1="-45" y2="45" />
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animateTransform></text>
+ <g transform="translate(0,0)" font-size="14">
+ <g transform="translate(60,90)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0" to="90" dur="5s" additive="replace" fill="freeze" />
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="5s" additive="replace" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none" />
+ <text y="60" text-anchor="middle">additive=replace</text>
+ </g>
+ <g transform="translate(180,90)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0" to="90" dur="5s" additive="sum" fill="freeze" />
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="5s" additive="sum" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30) rotate(90) scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none" />
+ <text y="60" text-anchor="middle">additive=sum</text>
+ </g>
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="2.5s" repeatCount="2" accumulate="none" fill="freeze" additive="replace" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none" />
+ <text y="60" text-anchor="middle">accumulate=none</text>
+ <text y="75" text-anchor="middle">additive=replace</text>
+ </g>
+ <g transform="translate(420,90)">
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="skewX(30)" stroke="gray" stroke-width="2" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="2.5s" repeatCount="2" accumulate="sum" fill="freeze" additive="replace" />
+ </rect>
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="scale(4,4)" stroke="rgb(255,180,0)" stroke-width="2" fill="none" />
+ <text y="60" text-anchor="middle">accumulate=sum</text>
+ <text y="75" text-anchor="middle">additive=replace</text>
+ </g>
+ <g transform="translate(300,220)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="2.5s" repeatCount="2" accumulate="none" fill="freeze" additive="sum" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30) scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none" />
+ <text y="60" text-anchor="middle">accumulate=none</text>
+ <text y="75" text-anchor="middle">additive=sum</text>
+ </g>
+ <g transform="translate(420,220)">
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="skewX(30)" stroke="gray" stroke-width="2" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="2.5s" repeatCount="2" accumulate="sum" fill="freeze" additive="sum" />
+ </rect>
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="skewX(30) scale(4,4)" stroke="rgb(255,180,0)" stroke-width="2" fill="none" />
+ <text y="60" text-anchor="middle">accumulate=sum</text>
+ <text y="75" text-anchor="middle">additive=sum</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-82-t.png b/test/svg/svg1.2/svg/animate-elem-82-t.png
new file mode 100644
index 0000000..cfe073b
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-82-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-82-t.svg b/test/svg/svg1.2/svg/animate-elem-82-t.svg
new file mode 100644
index 0000000..e36a4d4
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-82-t.svg
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Test on the animateTransform additive behavior" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-82-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test demonstrates validates the operation of animateTransform with regards to the rotation center and with
+ regards to paced animation.
+ </p>
+ <p>
+ The following descriptions describe the various animations, going top bottom, left to right. For each animation,
+ orange rectangle markers show the expected position for the animated rectangle halfway through the animation. The
+ markers are drawn with a thick stroke for 0.2s, starting at the time when they reflect the expected position.
+ </p>
+ <p>
+ The first animateTransform has type='rotate' and goes from 45 degrees to 90 degrees over a period of 3s. The
+ rotation center for the from and to values is 0, 0. At 0 seconds, the expected transform should be rotate(45). At
+ 1.5 seconds, the expected transform is rotate(0.5 * (90 + 45)) = rotate(67.5). At 3s, the expected transform is
+ rotate(90).
+ </p>
+ <p>
+ The second animateTransform has type='rotate' but has a rotation center that varies between the from and to
+ values. The rotation goes from rotate(45,0,0) to rotate(90,-15,-15). At 0s, the expected transform is
+ rotate(45,0,0). At 1.5s, the expected transform is rotate(67.5, -7.5, -7.5). At 3s, the expected transform is
+ rotate(90, -15, -15).
+ </p>
+ <p>
+ The third animateTransform has type='translate' and calcMode='paced'. The animation goes from translate(-40,40)
+ to translate(-20,20) to translate(40,-40). At 0s, the expected transform is translate(-40,40). At 1.5s, the
+ expected transform is translate(0,0). At 3s, the expected transform is translate(40,-40).
+ </p>
+ <p>
+ The fourth animateTransform has type='translate' and calcMode='linear'. The animation goes from translate(-40,40)
+ to translate(-20,-20) to translate(40,-40). At 0s, the expected transform is translate(-40,40). At 1.5s, the
+ expected transform is translate(-20,-20). At 3s, the expected transform is translate(40,-40).
+ </p>
+ <p>
+ The fifth animateTransform has type='scale' and calcMode='paced'. The animation goes from scale(1,2) to scale(3,2)
+ to scale(1,1). The total length along the sx component is 2 + 2 = 4. The total length along the sy component is
+ 0 + 1 = 1. At 0s, the expected transform is scale(1,2). At 1.5s, the expected transform is scale(3,1.5) so that a
+ length of 2 has been run on the sx component and a length of 0.5 has been run on the sy component. At 3s, the
+ expected transform is scale(3,2).
+ </p>
+ <p>
+ The sixth animateTransform has type='scale' and calcMode='linear'. The animation goes from scale(1,2) to scale(3,2)
+ to scale(1,1). At 0s, the expected transform is scale(1,2). At 1.5s, the expected transform is scale(3,2). At 3s,
+ the expected transform is scale(1,1).
+ </p>
+ <p>
+ The seventh animateTransform has type="rotate" and calcMode='paced'. The animation goes from rotate(0,0,0) to
+ rotate(45,-15,-20) to rotate(180,30,50). The total length along the rotation angle component is
+ (45 - 0) + (180 - 45) = 180. The total length along the rotation center along the x axis is
+ (0 - (-15)) + (30 - (-15)) = 45 + 15 = 60. The total length along the rotation center along the y axis is
+ (0 - (-20)) + (50 - (-20)) = 20 + 70 = 90. At 0s, the expected transform is rotate(45,-15,-20). At 1.5s, the
+ expected transform is rotate(90,0,5) to achieve constant velocity along the rotation angle component, the x-axis
+ rotation center component and the y-axis rotation center component. At 1.5s, half the distance has been run on
+ each component. For the rotation angle, this means that 45 has been reached and that 45 more degrees in the
+ (45 <= r < 180) interval have been consumed. For the x-axis rotation center, this means that 30 units have
+ been run: the (0 >= x > -15) interval has been fully consumed (15 units long) and 15 units on the
+ (-15 <= x < 30) interval have been consumed, which explains the computed 0 value. For the y-axis rotation
+ center, this means that 45 units have been run: the (0 >= y > -20) interval has been fully consumed and 25
+ units have been consumed in the (-20 <= y < 50) interval, which explains the computed 5 value. At 3s, the
+ expected transform is rotate(180,30,50).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-82-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40" />
+ <line x1="-45" x2="45" />
+ <line y1="-45" y2="45" />
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animateTransform></text>
+ <g transform="translate(0,0)" font-size="14">
+ <g transform="translate(60,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="45" to="90" dur="3s" additive="replace" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(45)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(67.5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(90)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="60" text-anchor="middle">same rotation</text>
+ <text y="75" text-anchor="middle">center</text>
+ </g>
+ <g transform="translate(180,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="45,0,0" to="90,-15,-15" dur="3s" additive="replace" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(45,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(67.5,-7.5,-7.5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(90,-15,-15)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="60" text-anchor="middle">different rotation</text>
+ <text y="75" text-anchor="middle">centers</text>
+ </g>
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="translate" values="-40,40;-20,20;40,-40" dur="3s" calcMode="paced" additive="replace" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(-40,40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(40,-40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="75" text-anchor="middle">paced translation</text>
+ </g>
+ <g transform="translate(415,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="translate" values="-40,40;-20,-20;40,-40" dur="3s" calcMode="linear" additive="replace" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(-40,40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(-20,-20)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(40,-40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="75" text-anchor="middle">linear translation</text>
+ </g>
+ <g transform="translate(60,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="none" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" values="1,2;3,2;1,1" dur="3s" calcMode="paced" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-30" width="30" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-45" y="-22.5" width="90" height="45" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="60" text-anchor="middle">paced scale</text>
+ </g>
+ <g transform="translate(180,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="none" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" values="1,2;3,2;1,1" dur="3s" calcMode="linear" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-30" width="30" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-45" y="-30" width="90" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="scale(1,1)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="60" text-anchor="middle">linear scale</text>
+ </g>
+ <g transform="translate(275,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" values="0,0,0;45,-15,-20;180,30,50" dur="3s" calcMode="paced" additive="replace" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(0,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(90,0,5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(180,30,50)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="75" text-anchor="middle">paced rotation</text>
+ </g>
+ <g transform="translate(395,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" values="0,0,0;45,-15,-20;180,30,50" dur="3s" calcMode="linear" additive="replace" fill="freeze" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(0,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(45,-15,-20)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s" />
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(180,30,50)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s" />
+ </rect>
+ <text y="75" text-anchor="middle">linear rotation</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-83-t.png b/test/svg/svg1.2/svg/animate-elem-83-t.png
new file mode 100644
index 0000000..c09c7a6
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-83-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-83-t.svg b/test/svg/svg1.2/svg/animate-elem-83-t.svg
new file mode 100644
index 0000000..661f672
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-83-t.svg
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Path element's d attribute animation test." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-83-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates the operation of the animate element on the <path> element's d attribute.</p>
+ <p>
+ The following descriptions references to the tests by number. The first test is the one showing on the top left.
+ The last, sixth test is the one showing at the bottom right. Test numbers are alocated from left to right and
+ from top to bottom. For each test, there are reference outline markers which show the expected animated shape at
+ different times in the animation. At the time of the expected shape, the outline of the expected shape is drawn
+ with a thick stroke for 0.2s so the test user can visually check that the shapes are matching at the expected
+ times.
+ </p>
+ <p>
+ The first test validates a simple from-to animation on a path's d attribute made of M, C and Z commands where
+ both the from and to attributes are specified. The attributes are compatible with the path element's d attribute.
+ </p>
+ <p>
+ The second test validates a simple to-animation on a path's d attribute made of M, C and Z commands where the to
+ attribute is specified. The attribute is compatible with the path element's d attribute.
+ </p>
+ <p>
+ The third test validates a simple values-animation on a path's d attribute made of M, C and Z commands where the
+ values attribute is specified and specifies three seperate values. The attribute is compatible with the path
+ element's d attribute.
+ </p>
+ <p>
+ The fourth, fifth and sixth tests validate that interpolation between compatible path values (i.e., path values
+ which normalize to the compatible values) is supported.
+ </p>
+ <p>
+ The fourth tests interpolation between a path value containing H, V and L commands (in the from value) and a path
+ value containing compatible h, v and l commands (in the to value).
+ </p>
+ <p>
+ The fifth tests interpolation between a path value containing C and S commands (in the from value) and a path value
+ containing compatible c and s commands (in the to value).
+ </p>
+ <p>
+ The sixth tests interpolation between a path value containing Q, T and A commands (in the from value) and a path
+ value containing compatible q, t and a commands (in the to value).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-83-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g xml:id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40" />
+ <line x1="-45" x2="45" />
+ <line y1="-45" y2="45" />
+ </g>
+ </defs>
+ <text text-anchor="middle" x="240" y="25" font-size="16"><animate> on <path>'s d attribute</text>
+ <g transform="translate(0,0)" font-size="12">
+ <g xml:id="test_1" transform="translate(120,90)">
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" to="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" dur="3s" fill="freeze" begin="1s" />
+ </path>
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </path>
+ <path d="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s" />
+ </path>
+ <text y="60" text-anchor="middle">#1: from-to animation</text>
+ </g>
+ <g xml:id="test_2" transform="translate(240,90)">
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" to="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" dur="3s" fill="freeze" begin="1s" />
+ </path>
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </path>
+ <path d="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s" />
+ </path>
+ <text y="60" text-anchor="middle">#2: to animation</text>
+ </g>
+ <g xml:id="test_3" transform="translate(360,90)">
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" values="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z; M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z; M -45 0 C -15 0 0 -15 0 -45 C 0 -15 15 0 45 0 C 15 0 0 15 0 45 C 0 15 -15 0 -45 0 Z" dur="3s" fill="freeze" begin="1s" />
+ </path>
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </path>
+ <path d="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="2.5s" dur="0.2s" />
+ </path>
+ <path d="M -45 0 C -15 0 0 -15 0 -45 C 0 -15 15 0 45 0 C 15 0 0 15 0 45 C 0 15 -15 0 -45 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s" />
+ </path>
+ <text y="60" text-anchor="middle">#3: values animation</text>
+ </g>
+ <g xml:id="test_4" transform="translate(120,200)">
+ <path d="M -30 -30 L 30 0 V 30 H 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -30 -30 L 30 0 V 30 H 0 Z" to="M 30 30 l -60 -30 v -30 h 30 Z" dur="3s" fill="freeze" begin="1s" />
+ </path>
+ <path d="M -30 -30 L 30 0 V 30 H 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </path>
+ <path d="M 30 30 l -60 -30 v -30 h 30 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s" />
+ </path>
+ <text y="60" text-anchor="middle">#4: from-to animation</text>
+ <text y="75" text-anchor="middle">compatible H/h, V/v,</text>
+ <text y="90" text-anchor="middle">L/l segments</text>
+ </g>
+ <g xml:id="test_5" transform="translate(240,200)">
+ <path d="M -20 -20 C 20 -20 20 -20 20 20 S 20 40 -20 20 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -20 -20 C 20 -20 20 -20 20 20 S 20 40 -20 20 Z" to="M -20 -20 c 0 40 0 40 40 40 s 40 0 0 -40 z" dur="3s" fill="freeze" begin="1s" />
+ </path>
+ <path d="M -20 -20 C 20 -20 20 -20 20 20 S 20 40 -20 20 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </path>
+ <path d="M -20 -20 c 0 40 0 40 40 40 s 40 0 0 -40 z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s" />
+ </path>
+ <text y="60" text-anchor="middle">#5: from-to animation</text>
+ <text y="75" text-anchor="middle">compatible C/c</text>
+ <text y="90" text-anchor="middle">s/S segments</text>
+ </g>
+ <g xml:id="test_6" transform="translate(360,200)">
+ <path d="M -30 -30 Q 30 -30 30 0 T -30 30 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -30 -30 Q 30 -30 30 0 T -30 30 Z" to="M -30 -30 q 30 0 30 30 t -30 30 z" dur="3s" fill="freeze" begin="1s" />
+ </path>
+ <path d="M -30 -30 Q 30 -30 30 0 T -30 30 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s" />
+ </path>
+ <path d="M -30 -30 q 30 0 30 30 t -30 30 " stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s" />
+ </path>
+ <text y="60" text-anchor="middle">#6: from-to animation</text>
+ <text y="75" text-anchor="middle">compatible Q/q, T/t</text>
+ <text y="90" text-anchor="middle">segments</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-84-t.png b/test/svg/svg1.2/svg/animate-elem-84-t.png
new file mode 100644
index 0000000..8ebd1ae
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-84-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-84-t.svg b/test/svg/svg1.2/svg/animate-elem-84-t.svg
new file mode 100644
index 0000000..684d4eb
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-84-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CC" owner="CL" desc="test animation of keywords that resolve to rgb colors" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-84-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test animation of color keywords that resolve to animatable RGB values.</p>
+ <p>
+ Five black squares are shown. After two seconds, all five squares should turn red and then smoothly animate the
+ fill color to green over the next five seconds.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-84-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.1) translate (50,20)">
+ <rect color="green" fill="#000000" height="100" width="100">
+ <animateColor attributeName="fill" from="#f00" to="currentColor" begin="2s" dur="5s" fill="freeze" />
+ </rect>
+ <rect color="red" fill="#000000" height="100" width="100" y="150">
+ <animateColor attributeName="fill" from="currentColor" to="green" begin="2s" dur="5s" fill="freeze" />
+ </rect>
+ <rect color="green" fill="#000000" x="120" height="100" width="100" y="75">
+ <animateColor attributeName="fill" from="#f00" to="green" begin="2s" dur="5s" fill="freeze" />
+ </rect>
+ <g fill="#070">
+ <rect color="green" fill="#000000" x="240" height="100" width="100">
+ <animateColor attributeName="fill" from="#f00" to="inherit" begin="2s" dur="5s" fill="freeze" />
+ </rect>
+ </g>
+ <g fill="#F00">
+ <rect color="green" fill="#000000" x="240" height="100" width="100" y="150">
+ <animateColor attributeName="fill" from="inherit" to="green" begin="2s" dur="5s" fill="freeze" />
+ </rect>
+ </g>
+ <g text-anchor="middle" font-size="14">
+ <text x="50" y="130">currentColor</text>
+ <text x="170" y="55">green</text>
+ <text x="290" y="130">inherit</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-85-t.png b/test/svg/svg1.2/svg/animate-elem-85-t.png
new file mode 100644
index 0000000..da371cb
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-85-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-85-t.svg b/test/svg/svg1.2/svg/animate-elem-85-t.svg
new file mode 100644
index 0000000..7a02559
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-85-t.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DJ" owner="CL" desc="test animation with currentColor" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-85-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>All four rectangles at the top must smoothly animate from black to green over 5 seconds.</p>
+ <p>
+ During this time the bottom two rectangles must be red. Then, the bottom two rectangles must smoothly animate
+ from green( at five seconds), through khaki (at 7.5 seconds), to yellow (at 10 seconds and above). Colored
+ circles indicate the appropriate colors at these times.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-85-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect fill="#f00" x="30" y="50" height="100" width="90">
+ <animateColor attributeName="fill" from="#000000" to="green" begin="0s" dur="5s" fill="freeze" />
+ </rect>
+ <rect fill="#f00" x="140" y="50" height="100" width="90">
+ <animateColor attributeName="fill" from="#000000" to="#008000" begin="0s" dur="5s" fill="freeze" />
+ </rect>
+ <rect color="green" fill="#f00" x="250" y="50" height="100" width="90">
+ <animateColor attributeName="fill" from="#000000" to="currentColor" begin="0s" dur="5s" fill="freeze" />
+ </rect>
+ <rect color="black" fill="#f00" x="360" y="50" height="100" width="90">
+ <animateColor attributeName="fill" to="#008000" from="currentColor" begin="0s" dur="5s" fill="freeze" />
+ </rect>
+ <rect color="black" fill="#f00" x="100" y="180" height="60" width="280">
+ <animateColor attributeName="color" to="yellow" from="red" begin="5s" dur="5s" fill="freeze" />
+ <animateColor attributeName="fill" from="#008000" to="currentColor" begin="5s" dur="5s" fill="freeze" />
+ </rect>
+ <rect color="black" fill="#f00" x="100" y="245" height="60" width="280">
+ <animateColor attributeName="fill" from="#008000" to="currentColor" begin="5s" dur="5s" fill="freeze" />
+ <animateColor attributeName="color" to="yellow" from="#f00" begin="5s" dur="5s" fill="freeze" />
+ </rect>
+ <circle r="30" cx="100" cy="240" fill="#f00" />
+ <circle r="30" cx="193" cy="240" fill="#008000" />
+ <circle r="30" cx="287" cy="240" fill="#7F7B00" />
+ <circle r="30" cx="380" cy="240" fill="#ff0" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/animate-elem-86-t.png b/test/svg/svg1.2/svg/animate-elem-86-t.png
new file mode 100644
index 0000000..174e7ba
Binary files /dev/null and b/test/svg/svg1.2/svg/animate-elem-86-t.png differ
diff --git a/test/svg/svg1.2/svg/animate-elem-86-t.svg b/test/svg/svg1.2/svg/animate-elem-86-t.svg
new file mode 100644
index 0000000..0e9dcad
--- /dev/null
+++ b/test/svg/svg1.2/svg/animate-elem-86-t.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="ED" desc="Tests fill='freeze'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: animate-elem-86-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests fill="freeze" for the case where the duration has been constrained by an 'end' attribute
+ and calcMode="discrete".
+ </p>
+ <p>
+ The correct behaviour is defined by the SMIL time interval model.
+ Time intervals created by the test case from implicit begin, dur and calcMode discrete:
+ </p>
+ <ul>
+ <li>
+ [0;2s) <i>This means time including 0 seconds until (but not including) time 2 seconds</i>
+ </li>
+ <li>
+ [2s;4s) <i>Time including time 2 seconds until (but not including) time 4 seconds</i>
+ </li>
+ </ul>
+ <p>
+ Time intervals created by implicit begin and end:
+ </p>
+ <ul>
+ <li>[0;2s)</li>
+ </ul>
+ <p>
+ Therefore the frozen value will be 74, resulting in the purple fill
+ being in the right rectangle after 0 seconds.
+ </p>
+ <p>
+ The test has passed if the purple fill is on the right rect only after 0 seconds.
+ Fill must never be set to purple on the left rect, except for before the animation has begun.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: animate-elem-86-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text text-anchor="middle" x="240" y="30" font-size="20">fill="freeze" with discrete calcMode</text>
+
+ <g transform="translate(100, 100)">
+
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>discrete</text>
+ </g>
+
+ <g xml:id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>never</text>
+ <text x="80">>= 0s</text>
+ </g>
+
+ <g transform="translate(150,20)" stroke="black">
+ <defs>
+ <rect xml:id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g xml:id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <animate xml:id="firstSet" calcMode="discrete" attributeName="x"
+ values="74;-6" dur="4s" end="2s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/conf-reader-201-t.png b/test/svg/svg1.2/svg/conf-reader-201-t.png
new file mode 100644
index 0000000..7d5955e
Binary files /dev/null and b/test/svg/svg1.2/svg/conf-reader-201-t.png differ
diff --git a/test/svg/svg1.2/svg/conf-reader-201-t.svg b/test/svg/svg1.2/svg/conf-reader-201-t.svg
new file mode 100644
index 0000000..1cf19e1
--- /dev/null
+++ b/test/svg/svg1.2/svg/conf-reader-201-t.svg
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DS" owner="ED" desc="Test for namespaces in XML" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: conf-reader-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test checks that namespace prefixes are handled correctly.
+ </p>
+ <p>
+ First, a random 20-character string is generated. The string only contains characters that are valid NCName letters.
+ This string is then used as a custom prefix for an 'href' attribute in the XLink namespace.
+ An 'image' element is created and two image references are added, one is in the "http://www.this.is.not.an/xlink" namespace,
+ and one is in the XLink namespace. Only the attribute with the 20-character prefix is actually in the XLink namespace,
+ which means that that link should be the one that is used when rendering the 'image' element. This first subtest is
+ using the setAttributeNS method.
+ </p>
+ <p>
+ The second subtest generates a new prefix string, and makes sure it's not equal to the first prefix string.
+ Then an svg fragment is generated as a string, to be parsed by a call to the parseXML method.
+ The 'xlink' prefix is bound to the "http://example.net/bar" namespace, and the generated prefix is bound to the XLink namespace.
+ Similar to the first subtest, the image has two references but only one attribute is actually in the XLink namespace.
+ The fragment is parsed and the result is inserted into the document, which should make the 'image' element visible.
+ If an exception is thrown during the parsing or the insertion of the result output will be shown in the status part of the testcase.
+ </p>
+ <p>
+ The testcase has passed if after the script execution has taken place these conditions are met:
+ <ul>
+ <li>There are two pink images visible.</li>
+ <li>None of these two images shows the word "Fail"</li>
+ <li>The status message says "No exceptions"</li>
+ </ul>
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: conf-reader-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <script>
+ <![CDATA[
+ /**
+ * Generates a 20 character string consisting of characters from the inchars parameter.
+ * The output string will have no repetitions of a character.
+ */
+ function generatePrefix(inchars)
+ {
+ var ncNameStart = "_abcdefghijklmnopqrstuvwxyzåäöQWERTYUIOP���LKJHGFDSAZXCVBNM";
+
+ var prefix = ncNameStart[Math.floor(Math.random()*ncNameStart.length)];
+ var leftchars = inchars;
+ var char;
+ for(var i = 0; i < 19; i++)
+ {
+ char = leftchars[Math.floor(Math.random()*leftchars.length)];
+ leftchars = leftchars.replace(char, '');
+ prefix += char;
+ }
+ return prefix;
+ }
+
+ /**
+ * The main body of the test.
+ */
+ function test()
+ {
+ var letters = "abcdefghijklmnopqrstuvwxyzåäö_-.QWERTYUIOP���LKJHGFDSAZXCVBNM0123456789";
+ var prefix = generatePrefix(letters);
+ var g = document.getElementById("test-body-content");
+ var t = document.getElementById("prefix");
+ t.textContent = prefix;
+
+ var elm = document.createElementNS("http://www.w3.org/2000/svg", "image");
+ elm.setAttributeNS(null, "width", 100);
+ elm.setAttributeNS(null, "height", 100);
+ elm.setAttributeNS(null, "x", 100);
+ elm.setAttributeNS(null, "y", 100);
+ elm.setAttributeNS("http://www.w3.org/1999/xlink", prefix+":href", "../images/pinksquidj.png");
+ elm.setAttributeNS("http://www.this.is.not.an/xlink", "xlink:href", "../images/purplesquidj.png");
+ g.appendChild(elm);
+
+ var prefix2 = generatePrefix(letters);
+ while(prefix2 == prefix)
+ {
+ prefix2 = generatePrefix(letters);
+ }
+
+ var t2 = document.getElementById("prefix2");
+ t2.textContent = prefix2;
+ var fragment = "<g xmlns='http://www.w3.org/2000/svg' xmlns:"+prefix2+"='http://www.w3.org/1999/xlink' xmlns:xlink='http://example.net/bar'>" +
+ " <image xml:id='image2' width='100' height='100' x='210' y='100' xlink:href='../images/purplesquidj.png' " + prefix2 + ":href='../images/pinksquidj.png'/>" +
+ "</g>";
+ try
+ {
+ var doc = parseXML(fragment, document);
+ g.appendChild(doc);
+ }
+ catch(e)
+ {
+ document.getElementById("status").textContent = e;
+ }
+ }
+ ]]>
+ </script>
+
+ <text y="100" x="50">
+ Generated prefix 1: <tspan xml:id="prefix">...</tspan>
+ </text>
+ <text y="120" x="50">
+ Generated prefix 2: <tspan xml:id="prefix2">...</tspan>
+ </text>
+ <text y="220" x="50">
+ Status: <tspan xml:id="status">No exceptions.</tspan>
+ </text>
+
+ <g xmlns:xlink="http://example.net/bar">
+ <image xml:id="image2" width="100" height="100" x="210" y="100" xlink:href="../images/purplesquidj.png"/>
+ </g>
+
+ <handler xe:event="SVGLoad">
+ test();
+ </handler>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/coords-constr-201-t.png b/test/svg/svg1.2/svg/coords-constr-201-t.png
new file mode 100644
index 0000000..f93408c
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-constr-201-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-constr-201-t.svg b/test/svg/svg1.2/svg/coords-constr-201-t.svg
new file mode 100644
index 0000000..1c744be
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-constr-201-t.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Tests constrained transformations" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: coords-constr-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test Constrained Transformations
+ There are three lines of text in this test.
+ The first is not constrained.
+ The second is constrained with a x and y offset.
+ The third is constrained.
+ The test will pass if, after applying user agent transforms, the circles behave as defined.
+ The test will pass if the three circles align vertically.
+ The reference image displays the file after performing a user agent zoom.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-constr-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+
+ <g xml:id="reference" stroke="none">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="50" text-anchor="middle" font-size="16" fill="#000">Constrained Transformations</text>
+ </g>
+ <g fill="blue" stroke="none">
+ <circle cx="50" cy="105" r="15"/>
+ <text x="70" y="115" font-size="12">Can be panned, rotated and scaled by the user agent transform.</text>
+ </g>
+ <g transform="ref(svg,10,10)" fill="blue">
+ <circle cx="40" cy="150" r="15"/>
+ <text x="60" y="160" stroke="none" font-size="12">Cannot be transformed by the user agent transform.</text>
+ </g>
+ <g transform="ref(svg)">
+ <circle cx="50" cy="215" r="15" fill="blue"/>
+ <text x="70" y="225" fill="blue" font-size="12">Cannot be transformed by the user agent transform.</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-constr-202-t.png b/test/svg/svg1.2/svg/coords-constr-202-t.png
new file mode 100644
index 0000000..9c4a534
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-constr-202-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-constr-202-t.svg b/test/svg/svg1.2/svg/coords-constr-202-t.svg
new file mode 100644
index 0000000..0e32e29
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-constr-202-t.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Tests constrained transformations" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: coords-constr-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test Constrained Transformations
+ There are three lines of text in this test.
+ The first is not constrained.
+ The second is constrained with a x and y offset.
+ The third is constrained.
+ An animation is applied to the viewBox attribute.
+ The test will pass if the circles are affected by the viewBox animation and, after applying user agent transforms, the circles behave as defined.
+ The test will pass if the three circles align vertically.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-constr-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+
+ <g xml:id="reference" stroke="none">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="50" text-anchor="middle" font-size="16" fill="#000">Constrained Transformations</text>
+ <text x="240" y="70" text-anchor="middle" font-size="10" fill="#555">Animation of the viewBox. Nothing should be constrained during the animation.</text>
+ </g>
+ <g fill="blue" stroke="none">
+ <circle cx="50" cy="105" r="15"/>
+ <text x="70" y="115" font-size="12">Can be panned, rotated and scaled by the user agent transform.</text>
+ </g>
+ <g transform="ref(svg,10,10)" fill="blue">
+ <circle cx="40" cy="150" r="15"/>
+ <text x="60" y="160" stroke="none" font-size="12">Cannot be transformed by the user agent transform.</text>
+ </g>
+ <g transform="ref(svg)">
+ <circle cx="50" cy="215" r="15" fill="blue"/>
+ <text x="70" y="225" fill="blue" font-size="12">Cannot be transformed by the user agent transform.</text>
+ </g>
+ <animate attributeName="viewBox" values="0 0 480 360; 0 0 960 720; 0 0 240 180; 0 0 480 360" keyTimes="0; 0.333; 0.666; 1" begin="2" dur="5" fill="freeze"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-constr-203-t.png b/test/svg/svg1.2/svg/coords-constr-203-t.png
new file mode 100644
index 0000000..b594aa4
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-constr-203-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-constr-203-t.svg b/test/svg/svg1.2/svg/coords-constr-203-t.svg
new file mode 100644
index 0000000..254da47
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-constr-203-t.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Tests constrained transformations" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: coords-constr-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test Constrained Transformations
+ There are three lines of text in this test.
+ The first is not constrained.
+ The second is constrained with a x and y offset.
+ The third is constrained.
+ An animation is applied to the content group.
+ The test will pass if only the first circle is affected by the group animation and, after applying user agent transforms, the circles behave as defined.
+ The test will pass if the three circles align vertically.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-constr-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+
+ <g xml:id="reference" stroke="none">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="50" text-anchor="middle" font-size="16" fill="#000">Constrained Transformations</text>
+ <text x="240" y="70" text-anchor="middle" font-size="10" fill="#555">Animation of the slide's body. Only the first line should be moving during the animation.</text>
+ </g>
+ <g fill="blue" stroke="none">
+ <circle cx="50" cy="105" r="15"/>
+ <text x="70" y="115" font-size="12">Can be panned, rotated and scaled by the user agent transform.</text>
+ </g>
+ <g transform="ref(svg,10,10)" fill="blue">
+ <circle cx="40" cy="150" r="15"/>
+ <text x="60" y="160" stroke="none" font-size="12">Cannot be transformed by the user agent transform.</text>
+ </g>
+ <g transform="ref(svg)">
+ <circle cx="50" cy="215" r="15" fill="blue"/>
+ <text x="70" y="225" fill="blue" font-size="12">Cannot be transformed by the user agent transform.</text>
+ </g>
+
+ <animateTransform xml:id="a1" attributeName="transform" type="scale" from="1,1" to="0.5,0.5" begin="2" dur="3" />
+ <animateTransform xml:id="a2" attributeName="transform" type="scale" from="0.5,0.5" to="1.5,1.5" begin="a1.end" dur="3" />
+ <animateTransform xml:id="a3" attributeName="transform" type="scale" from="1.5,1.5" to="1,1" begin="a2.end" dur="3" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-constr-204-t.png b/test/svg/svg1.2/svg/coords-constr-204-t.png
new file mode 100644
index 0000000..39529dd
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-constr-204-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-constr-204-t.svg b/test/svg/svg1.2/svg/coords-constr-204-t.svg
new file mode 100644
index 0000000..33afd96
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-constr-204-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="ED" desc="Test for animateMotion and transformRef." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: coords-constr-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Animates a rect that has transform="ref" and tests that the animateMotion transform is supplemental.
+ The rects should follow a path diagonally from top-left to bottom-right.
+ The test is passed if a single green rectangle is visible across the screen if a red rectangle is seen
+ the test is failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-constr-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII" font-size="18">
+ <rect x="200" y="150" width="100" height="20" fill="red">
+ <animateMotion path="M0 0l100 50" dur="3s" fill="freeze"/>
+ </rect>
+ <g transform="translate(25,25)">
+ <rect width="100" height="20" fill="green" transform="ref(svg, 200, 150)">
+ <animateMotion path="M0 0l100 50" dur="3s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-coord-01-t.png b/test/svg/svg1.2/svg/coords-coord-01-t.png
new file mode 100644
index 0000000..b6e3c09
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-coord-01-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-coord-01-t.svg b/test/svg/svg1.2/svg/coords-coord-01-t.svg
new file mode 100644
index 0000000..72d15de
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-coord-01-t.svg
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="DJ" owner="CN" desc="Tests the default initial coordinate system used by renderer." status="accepted" approved="yes" version="$Revision: 1.6 $" testname="$RCSfile: coords-coord-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests the default initial coordinate system used by renderer. Should be 0,0 if not specified.This is illustrated by comparing red boxes that are missing a coordinate or all coordinates with yellow boxes that have the correct coordinates specified. This test should produce three red boxes, with small yellow boxes rendered on top of them. These boxes should be placed along the origin, and x and y axis.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-coord-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Content of Test Case follows. -->
+ <g stroke="black" stroke-width="5">
+ <line x1="0" y1="0" x2="150" y2="0" />
+ <line x1="0" y1="0" x2="0" y2="150" />
+ </g>
+ <g fill="red">
+ <rect width="15" height="15" />
+ <rect x="150" width="15" height="15" />
+ <rect y="150" width="15" height="15" />
+ </g>
+ <g fill="yellow">
+ <rect x="0" y="0" width="10" height="10" />
+ <rect x="150" y="0" width="10" height="10" />
+ <rect x="0" y="150" width="10" height="10" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-pAR-201-t.png b/test/svg/svg1.2/svg/coords-pAR-201-t.png
new file mode 100644
index 0000000..95a29f6
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-pAR-201-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-pAR-201-t.svg b/test/svg/svg1.2/svg/coords-pAR-201-t.svg
new file mode 100644
index 0000000..cf30788
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-pAR-201-t.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg [
+ <!ENTITY Smile "<rect x='.5' y='.5' width='29' height='39' fill='black' stroke='red' />
+ <g transform='translate(0, 5)'>
+ <circle cx='15' cy='15' r='10' fill='yellow' />
+ <circle cx='12' cy='12' r='1.5' fill='black' />
+ <circle cx='17' cy='12' r='1.5' fill='black' />
+ <path d='M 10 19 L 15 23 20 19' stroke='black' stroke-width='2' />
+ </g>">
+ <!ENTITY Viewport1 "<rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue' />">
+ <!ENTITY Viewport2 "<rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue' />">
+]>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="ED" desc="Validates viewBox specification and the preserveAspectRatio attribute on the animation element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: coords-pAR-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test verifies the implementation of the viewBox and the preserveAspectRatio attribute on the animation element.
+ It exercises the various preserveAspectRatio values and uses a general entity definition in order to make reading of the SVG source easier.
+ </p>
+ <p>
+ For the test to pass the following criteria should be met:
+ </p>
+ <ol>
+ <li>the xMin* test image left edge should be on the left edge of the blue viewport rect</li>
+ <li>the xMid* test image should be centered in the blue viewport rect</li>
+ <li>the xMax* test image right edge should be on the right edge of the blue viewport rect</li>
+ <li>the yMin* test image top edge should be on the top edge of the blue viewport rect</li>
+ <li>the yMid* test image should be centered in the blue viewport rect</li>
+ <li>the yMax* test image bottom edge should be on the bottom edge of the blue viewport rect</li>
+ <li>no part of the image may be clipped away</li>
+ </ol>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-pAR-201-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="9" transform="translate(0, 30)">
+ <desc>Example PreserveAspectRatio - demonstrate available options</desc>
+ <text text-anchor="middle" x="240" font-size="16">Test available options of preserveAspectRatio</text>
+ <text x="35.5" y="30" text-anchor="middle">SVG to fit</text>
+ <g transform="translate(20,40)">&Smile;</g>
+ <text x="35.5" y="110" text-anchor="middle">Viewport 1</text>
+ <g transform="translate(10,120)">&Viewport1;</g>
+ <text x="35.5" y="180" text-anchor="middle">Viewport 2</text>
+ <g transform="translate(20,190)">&Viewport2;</g>
+ <g xml:id="meet-group-1" transform="translate(120, 50)">
+ <text x="0" y="-20">---------- meet --------------------</text>
+ <g>
+ <text y="-5">xMin*</text>&Viewport1;
+ <animation preserveAspectRatio="xMinYMin meet" width="50" height="30" xlink:href="../images/smiley.svg"/>
+ </g>
+ <g transform="translate(70,0)">
+ <text y="-5">xMid*</text>&Viewport1;
+ <animation preserveAspectRatio="xMidYMid meet" width="50" height="30" xlink:href="../images/smiley.svg"/>
+ </g>
+ <g transform="translate(0,50)">
+ <text y="-5">xMax*</text>&Viewport1;
+ <animation preserveAspectRatio="xMaxYMax meet" width="50" height="30" xlink:href="../images/smiley.svg"/>
+ </g>
+ </g>
+ <g xml:id="meet-group-2" transform="translate(300, 50)">
+ <text x="0" y="-20">---------- meet ------------------------</text>
+ <g>
+ <text y="-5">*YMin</text>&Viewport2;
+ <animation preserveAspectRatio="xMinYMin meet" width="30" height="60" xlink:href="../images/smiley.svg"/>
+ </g>
+ <g transform="translate(50, 0)">
+ <text y="-5">*YMid</text>&Viewport2;
+ <animation preserveAspectRatio="xMidYMid meet" width="30" height="60" xlink:href="../images/smiley.svg"/>
+ </g>
+ <g transform="translate(100, 0)">
+ <text y="-5">*YMax</text>&Viewport2;
+ <animation preserveAspectRatio="xMaxYMax meet" width="30" height="60" xlink:href="../images/smiley.svg"/>
+ </g>
+ </g>
+ <g xml:id="defer-group-1" transform="translate(120, 185)">
+ <text x="0" y="-20">---------- defer -------------------------</text>
+ <g>
+ <text y="-5">xMin*</text>&Viewport2;
+ <animation preserveAspectRatio="defer xMinYMin" width="30" height="60" xlink:href="../images/coords-pAR-t-xMinYMin.svg"/>
+ </g>
+ <g transform="translate(50,0)">
+ <text y="-5">xMid*</text>&Viewport2;
+ <animation preserveAspectRatio="defer xMidYMid" width="30" height="60" xlink:href="../images/coords-pAR-t-xMidYMid.svg"/>
+ </g>
+ <g transform="translate(100,0)">
+ <text y="-5">xMax*</text>&Viewport2;
+ <animation preserveAspectRatio="defer xMaxYMax" width="30" height="60" xlink:href="../images/coords-pAR-t-xMaxYMax.svg"/>
+ </g>
+ </g>
+ <g xml:id="defer-group-2" transform="translate(300, 155) translate(0, 30)">
+ <text x="0" y="-20">---------- defer ---------------------</text>
+ <g>
+ <text y="-5">*YMin</text>&Viewport1;
+ <animation preserveAspectRatio="defer xMinYMin" width="50" height="30" xlink:href="../images/coords-pAR-t-xMinYMin.svg"/>
+ </g>
+ <g transform="translate(70,0)">
+ <text y="-5">*YMid</text>&Viewport1;
+ <animation preserveAspectRatio="defer xMidYMid" width="50" height="30" xlink:href="../images/coords-pAR-t-xMidYMid.svg"/>
+ </g>
+ <g transform="translate(0,50)">
+ <text y="-5">*YMax</text>&Viewport1;
+ <animation preserveAspectRatio="defer xMaxYMax" width="50" height="30" xlink:href="../images/coords-pAR-t-xMaxYMax.svg"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-01-t.png b/test/svg/svg1.2/svg/coords-trans-01-t.png
new file mode 100644
index 0000000..a282335
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-01-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-01-t.svg b/test/svg/svg1.2/svg/coords-trans-01-t.svg
new file mode 100644
index 0000000..e74f5ff
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-01-t.svg
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="Validates elementary transforms and transformation nesting" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: coords-trans-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test verifies the implementation of transforms. It tests elementary transforms and transform nesting. Note that for layout purposes, this test uses nesting of translation with the elementary transforms.</p>
+ <p>The rendered picture should match the reference image exactly except for variations in the labeling text.</p>
+ <p>The test uses the rect element, the fill color (solid primary colors) and transforms.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="13">
+ <!-- ====================================================================== -->
+ <!-- First, draw a test grid ============================================== -->
+ <!-- ====================================================================== -->
+ <g xml:id="test-grid" stroke="#cccccc" stroke-width="1">
+ <line x1="10" y1="10.5" x2="470" y2="10.5" />
+ <line x1="10" y1="20.5" x2="470" y2="20.5" />
+ <line x1="10" y1="30.5" x2="470" y2="30.5" />
+ <line x1="10" y1="40.5" x2="470" y2="40.5" />
+ <line x1="10" y1="50.5" x2="470" y2="50.5" />
+ <line x1="10" y1="60.5" x2="470" y2="60.5" />
+ <line x1="10" y1="70.5" x2="470" y2="70.5" />
+ <line x1="10" y1="80.5" x2="470" y2="80.5" />
+ <line x1="10" y1="90.5" x2="470" y2="90.5" />
+ <line x1="10" y1="100.5" x2="470" y2="100.5" />
+ <line x1="10" y1="110.5" x2="470" y2="110.5" />
+ <line x1="10" y1="120.5" x2="470" y2="120.5" />
+ <line x1="10" y1="130.5" x2="470" y2="130.5" />
+ <line x1="10" y1="140.5" x2="470" y2="140.5" />
+ <line x1="10" y1="150.5" x2="470" y2="150.5" />
+ <line x1="10" y1="160.5" x2="470" y2="160.5" />
+ <line x1="10" y1="170.5" x2="470" y2="170.5" />
+ <line x1="10" y1="180.5" x2="470" y2="180.5" />
+ <line x1="10" y1="190.5" x2="470" y2="190.5" />
+ <line x1="10" y1="200.5" x2="470" y2="200.5" />
+ <line x1="10" y1="210.5" x2="470" y2="210.5" />
+ <line x1="10" y1="220.5" x2="470" y2="220.5" />
+ <line x1="10" y1="230.5" x2="470" y2="230.5" />
+ <line x1="10" y1="240.5" x2="470" y2="240.5" />
+ <line x1="10" y1="250.5" x2="470" y2="250.5" />
+ <line x1="10" y1="260.5" x2="470" y2="260.5" />
+ <line y1="10" x1="10.5" y2="260.5" x2="10.5" />
+ <line y1="10" x1="20.5" y2="260.5" x2="20.5" />
+ <line y1="10" x1="30.5" y2="260.5" x2="30.5" />
+ <line y1="10" x1="40.5" y2="260.5" x2="40.5" />
+ <line y1="10" x1="50.5" y2="260.5" x2="50.5" />
+ <line y1="10" x1="60.5" y2="260.5" x2="60.5" />
+ <line y1="10" x1="70.5" y2="260.5" x2="70.5" />
+ <line y1="10" x1="80.5" y2="260.5" x2="80.5" />
+ <line y1="10" x1="90.5" y2="260.5" x2="90.5" />
+ <line y1="10" x1="100.5" y2="260.5" x2="100.5" />
+ <line y1="10" x1="110.5" y2="260.5" x2="110.5" />
+ <line y1="10" x1="120.5" y2="260.5" x2="120.5" />
+ <line y1="10" x1="130.5" y2="260.5" x2="130.5" />
+ <line y1="10" x1="140.5" y2="260.5" x2="140.5" />
+ <line y1="10" x1="150.5" y2="260.5" x2="150.5" />
+ <line y1="10" x1="160.5" y2="260.5" x2="160.5" />
+ <line y1="10" x1="170.5" y2="260.5" x2="170.5" />
+ <line y1="10" x1="180.5" y2="260.5" x2="180.5" />
+ <line y1="10" x1="190.5" y2="260.5" x2="190.5" />
+ <line y1="10" x1="200.5" y2="260.5" x2="200.5" />
+ <line y1="10" x1="210.5" y2="260.5" x2="210.5" />
+ <line y1="10" x1="220.5" y2="260.5" x2="220.5" />
+ <line y1="10" x1="230.5" y2="260.5" x2="230.5" />
+ <line y1="10" x1="240.5" y2="260.5" x2="240.5" />
+ <line y1="10" x1="250.5" y2="260.5" x2="250.5" />
+ <line y1="10" x1="260.5" y2="260.5" x2="260.5" />
+ <line y1="10" x1="270.5" y2="260.5" x2="270.5" />
+ <line y1="10" x1="280.5" y2="260.5" x2="280.5" />
+ <line y1="10" x1="290.5" y2="260.5" x2="290.5" />
+ <line y1="10" x1="300.5" y2="260.5" x2="300.5" />
+ <line y1="10" x1="310.5" y2="260.5" x2="310.5" />
+ <line y1="10" x1="320.5" y2="260.5" x2="320.5" />
+ <line y1="10" x1="330.5" y2="260.5" x2="330.5" />
+ <line y1="10" x1="340.5" y2="260.5" x2="340.5" />
+ <line y1="10" x1="350.5" y2="260.5" x2="350.5" />
+ <line y1="10" x1="360.5" y2="260.5" x2="360.5" />
+ <line y1="10" x1="370.5" y2="260.5" x2="370.5" />
+ <line y1="10" x1="380.5" y2="260.5" x2="380.5" />
+ <line y1="10" x1="390.5" y2="260.5" x2="390.5" />
+ <line y1="10" x1="400.5" y2="260.5" x2="400.5" />
+ <line y1="10" x1="410.5" y2="260.5" x2="410.5" />
+ <line y1="10" x1="420.5" y2="260.5" x2="420.5" />
+ <line y1="10" x1="430.5" y2="260.5" x2="430.5" />
+ <line y1="10" x1="440.5" y2="260.5" x2="440.5" />
+ <line y1="10" x1="450.5" y2="260.5" x2="450.5" />
+ <line y1="10" x1="460.5" y2="260.5" x2="460.5" />
+ <line y1="10" x1="470.5" y2="260.5" x2="470.5" />
+ </g>
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g xml:id="elementary-transforms-test" transform="translate(0, 10)">
+ <g xml:id="elementary-transforms">
+ <!-- Translate -->
+ <g transform="translate(50, 50)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ <!-- Rotate -90 deg about (150, 70) -->
+ <g transform="translate(150, 70) rotate(-90)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ <!-- Skew X -->
+ <g transform="translate(250, 50) skewX(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ <!-- Skew Y -->
+ <g transform="translate(350, 50) skewY(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ <!-- Scale 2 -->
+ <g transform="translate(210, 120) scale(2)">
+ <rect x="0" y="0" width="20" height="1" fill="blue" />
+ <rect x="0" y="0" width="1" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g xml:id="elementary-transforms-test-markers">
+ <!-- Translate -->
+ <text x="40" y="40">translate (50, 50)</text>
+ <rect x="48" y="48" width="5" height="5" fill="black" />
+ <rect x="68" y="48" width="5" height="5" fill="blue" />
+ <rect x="48" y="68" width="5" height="5" fill="red" />
+ <!-- Rotate -90 deg about (150, 70) -->
+ <text x="140" y="40">rotate(-90)</text>
+ <rect x="148" y="68" width="5" height="5" fill="black" />
+ <rect x="148" y="48" width="5" height="5" fill="blue" />
+ <rect x="168" y="68" width="5" height="5" fill="red" />
+ <!-- Skew X -->
+ <text x="240" y="40">skew x (45)</text>
+ <rect x="248" y="48" width="5" height="5" fill="black" />
+ <rect x="268" y="48" width="5" height="5" fill="blue" />
+ <rect x="268" y="68" width="5" height="5" fill="red" />
+ <!-- Skew Y -->
+ <text x="340" y="40">skew y (45)</text>
+ <rect x="348" y="48" width="5" height="5" fill="black" />
+ <rect x="368" y="68" width="5" height="5" fill="blue" />
+ <rect x="348" y="68" width="5" height="5" fill="red" />
+ <!-- Scale 2 -->
+ <text x="200" y="110">scale (2)</text>
+ <rect x="208" y="118" width="5" height="5" fill="black" />
+ <rect x="248" y="118" width="5" height="5" fill="blue" />
+ <rect x="208" y="158" width="5" height="5" fill="red" />
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ <g xml:id="nested-transforms-test">
+ <g xml:id="nested-transforms">
+ <!-- scale/translate in transform attribute -->
+ <g transform="scale(3, 2) translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue" />
+ <rect x="0" y="0" width="0.67" height="20" fill="red" />
+ </g>
+ <!-- scale/translate in successive elements -->
+ <g transform="translate(200, 0)">
+ <g transform="scale(3, 2)">
+ <g transform="translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue" />
+ <rect x="0" y="0" width="0.67" height="20" fill="red" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <!-- nested-transforms -->
+ <g xml:id="nested-transforms-test-markers">
+ <!-- scale and translate -->
+ <text x="40" y="200">scale(25, 95) and translate(2, 2)</text>
+ <rect x="48" y="208" width="5" height="5" fill="black" />
+ <rect x="108" y="208" width="5" height="5" fill="blue" />
+ <rect x="48" y="248" width="5" height="5" fill="red" />
+ <!-- scale then translate -->
+ <text x="240" y="200">scale(25, 95) then translate(2, 2)</text>
+ <rect x="248" y="208" width="5" height="5" fill="black" />
+ <rect x="308" y="208" width="5" height="5" fill="blue" />
+ <rect x="248" y="248" width="5" height="5" fill="red" />
+ </g>
+ <!-- nested-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-02-t.png b/test/svg/svg1.2/svg/coords-trans-02-t.png
new file mode 100644
index 0000000..7e5ba74
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-02-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-02-t.svg b/test/svg/svg1.2/svg/coords-trans-02-t.svg
new file mode 100644
index 0000000..b9eeca6
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-02-t.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="Validates elementary transforms and transformation nesting" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: coords-trans-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test verifies the implementation of transforms. It tests elementary transforms and transform nesting. Note that for layout purposes, this test uses nesting of translation with the elementary transforms.</p>
+ <p>The rendered picture should match the reference image exactly except for variations in the labeling text.</p>
+ <p>The test uses the rect element, the fill color (solid primary colors) and transforms.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- First, draw a test grid ============================================== -->
+ <!-- ====================================================================== -->
+ <!--g xml:id="test-grid" stroke="#cccccc" stroke-width="1" > <line x1="10" y1="10.5" x2="470" y2="10.5"/> <line x1="10" y1="20.5" x2="470" y2="20.5"/> <line x1="10" y1="30.5" x2="470" y2="30.5"/> <line x1="10" y1="40.5" x2="470" y2="40.5"/> <line x1="10" y1="50.5" x2="470" y2="50.5"/> <line x1="10" y1="60.5" x2="470" y2="60.5"/> <line x1="10" y1="70.5" x2="470" y2="70.5"/> <line x1="10" y1="80.5" x2="470" y2="80.5"/> <line x1="10" y1="90.5" x2="470" y2="90.5"/> <line x1="10" y1="100.5" x2="470" y2="100.5"/> <line x1="10" y1="110.5" x2="470" y2="110.5"/> <line x1="10" y1="120.5" x2="470" y2="120.5"/> <line x1="10" y1="130.5" x2="470" y2="130.5"/> <line x1="10" y1="140.5" x2="470" y2="140.5"/> <line x1="10" y1="150.5" x2="470" y2="150.5"/> <line x1="10" y1="160.5" x2="470" y2="160.5"/> <line x1="10" y1="170.5" x2="470" y2="170.5"/> <line x1="10" y1="180.5" x2="470" y2="180.5"/> <line x1="10" y1="190.5" x2="470" y2="190.5"/> <line x1="10" y1="200.5" x2="470" y2="200.5"/>
<line x1="10" y1="210.5" x2="470" y2="210.5"/> <line x1="10" y1="220.5" x2="470" y2="220.5"/> <line x1="10" y1="230.5" x2="470" y2="230.5"/> <line x1="10" y1="240.5" x2="470" y2="240.5"/> <line x1="10" y1="250.5" x2="470" y2="250.5"/> <line x1="10" y1="260.5" x2="470" y2="260.5"/> <line y1="10" x1="10.5" y2="260.5" x2="10.5"/> <line y1="10" x1="20.5" y2="260.5" x2="20.5"/> <line y1="10" x1="30.5" y2="260.5" x2="30.5"/> <line y1="10" x1="40.5" y2="260.5" x2="40.5"/> <line y1="10" x1="50.5" y2="260.5" x2="50.5"/> <line y1="10" x1="60.5" y2="260.5" x2="60.5"/> <line y1="10" x1="70.5" y2="260.5" x2="70.5"/> <line y1="10" x1="80.5" y2="260.5" x2="80.5"/> <line y1="10" x1="90.5" y2="260.5" x2="90.5"/> <line y1="10" x1="100.5" y2="260.5" x2="100.5"/> <line y1="10" x1="110.5" y2="260.5" x2="110.5"/> <line y1="10" x1="120.5" y2="260.5" x2="120.5"/> <line y1="10" x1="130.5" y2="260.5" x2="130.5"/> <line y1="10" x1="140.5" y2="260.5" x2="140.5"/> <line y1="10" x1="150.5" y2="260.5" x2=
"150.5"/> <line y1="10" x1="160.5" y2="260.5" x2="160.5"/> <line y1="10" x1="170.5" y2="260.5" x2="170.5"/> <line y1="10" x1="180.5" y2="260.5" x2="180.5"/> <line y1="10" x1="190.5" y2="260.5" x2="190.5"/> <line y1="10" x1="200.5" y2="260.5" x2="200.5"/> <line y1="10" x1="210.5" y2="260.5" x2="210.5"/> <line y1="10" x1="220.5" y2="260.5" x2="220.5"/> <line y1="10" x1="230.5" y2="260.5" x2="230.5"/> <line y1="10" x1="240.5" y2="260.5" x2="240.5"/> <line y1="10" x1="250.5" y2="260.5" x2="250.5"/> <line y1="10" x1="260.5" y2="260.5" x2="260.5"/> <line y1="10" x1="270.5" y2="260.5" x2="270.5"/> <line y1="10" x1="280.5" y2="260.5" x2="280.5"/> <line y1="10" x1="290.5" y2="260.5" x2="290.5"/> <line y1="10" x1="300.5" y2="260.5" x2="300.5"/> <line y1="10" x1="310.5" y2="260.5" x2="310.5"/> <line y1="10" x1="320.5" y2="260.5" x2="320.5"/> <line y1="10" x1="330.5" y2="260.5" x2="330.5"/> <line y1="10" x1="340.5" y2="260.5" x2="340.5"/> <line y1="10" x1="350.5" y2="260.5" x2="350.5"/>
<line y1="10" x1="360.5" y2="260.5" x2="360.5"/> <line y1="10" x1="370.5" y2="260.5" x2="370.5"/> <line y1="10" x1="380.5" y2="260.5" x2="380.5"/> <line y1="10" x1="390.5" y2="260.5" x2="390.5"/> <line y1="10" x1="400.5" y2="260.5" x2="400.5"/> <line y1="10" x1="410.5" y2="260.5" x2="410.5"/> <line y1="10" x1="420.5" y2="260.5" x2="420.5"/> <line y1="10" x1="430.5" y2="260.5" x2="430.5"/> <line y1="10" x1="440.5" y2="260.5" x2="440.5"/> <line y1="10" x1="450.5" y2="260.5" x2="450.5"/> <line y1="10" x1="460.5" y2="260.5" x2="460.5"/> <line y1="10" x1="470.5" y2="260.5" x2="470.5"/> </g-->
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g xml:id="elementary-transforms-test" transform="translate(0, 10)">
+ <g xml:id="elementary-transforms" transform="translate(-30, 0) scale(2.5, 2.5)">
+ <!-- Translate -->
+ <g transform="translate(50, 50)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ <!-- Rotate -90 deg about (150, 70) -->
+ <g transform="translate(150, 70) rotate(-90)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g xml:id="elementary-transforms-test-markers" transform="translate(-30, 0) scale(2.5, 2.5)">
+ <!-- Translate -->
+ <text x="40" y="40">translate (50, 50)</text>
+ <rect x="48" y="48" width="5" height="5" fill="black" />
+ <rect x="68" y="48" width="5" height="5" fill="blue" />
+ <rect x="48" y="68" width="5" height="5" fill="red" />
+ <!-- Rotate -90 deg about (150, 70) -->
+ <text x="140" y="40">rotate(-90)</text>
+ <rect x="148" y="68" width="5" height="5" fill="black" />
+ <rect x="148" y="48" width="5" height="5" fill="blue" />
+ <rect x="168" y="68" width="5" height="5" fill="red" />
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-03-t.png b/test/svg/svg1.2/svg/coords-trans-03-t.png
new file mode 100644
index 0000000..75233de
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-03-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-03-t.svg b/test/svg/svg1.2/svg/coords-trans-03-t.svg
new file mode 100644
index 0000000..1b56347
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-03-t.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="Validates elementary transforms and transformation nesting"
+ status="accepted"
+ approved="yes" version="$Revision: 1.9 $" testname="$RCSfile: coords-trans-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test verifies the implementation of transforms. It tests elementary transforms and transform nesting. Note that for layout purposes, this test uses nesting of translation with the elementary transforms.</p>
+ <p>The rendered picture should match the reference image exactly except for variations in the labeling text.</p>
+ <p>The test uses the rect element, the fill color (solid primary colors) and transforms.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g xml:id="elementary-transforms-test" transform="translate(0, 10)">
+ <g xml:id="elementary-transforms" transform="translate(-560, 0) scale(2.5, 2.5)">
+ <!-- Skew X -->
+ <g transform="translate(250, 50) skewX(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ <!-- Skew Y -->
+ <g transform="translate(350, 50) skewY(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue" />
+ <rect x="0" y="0" width="2" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g xml:id="elementary-transforms-test-markers" transform="translate(-560, 0) scale(2.5, 2.5)">
+ <!-- Skew X -->
+ <text x="240" y="40">skew x (45)</text>
+ <rect x="248" y="48" width="5" height="5" fill="black" />
+ <rect x="268" y="48" width="5" height="5" fill="blue" />
+ <rect x="268" y="68" width="5" height="5" fill="red" />
+ <!-- Skew Y -->
+ <text x="340" y="40">skew y (45)</text>
+ <rect x="348" y="48" width="5" height="5" fill="black" />
+ <rect x="368" y="68" width="5" height="5" fill="blue" />
+ <rect x="348" y="68" width="5" height="5" fill="red" />
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-04-t.png b/test/svg/svg1.2/svg/coords-trans-04-t.png
new file mode 100644
index 0000000..c6fc002
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-04-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-04-t.svg b/test/svg/svg1.2/svg/coords-trans-04-t.svg
new file mode 100644
index 0000000..b4baad8
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-04-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="Validates elementary transforms and transformation nesting"
+ status="accepted"
+ approved="yes" version="$Revision: 1.9 $" testname="$RCSfile: coords-trans-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test verifies the implementation of transforms. It tests elementary transforms and transform nesting. Note that for layout purposes, this test uses nesting of translation with the elementary transforms.</p>
+ <p>The rendered picture should match the reference image exactly except for variations in the labeling text.</p>
+ <p>The test uses the rect element, the fill color (solid primary colors) and transforms.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g xml:id="elementary-transforms-test">
+ <g xml:id="elementary-transforms" transform="translate(60, 45) scale(2.5, 2.5)">
+ <!-- Scale 2 -->
+ <g transform="translate(40, 10) scale(2)">
+ <rect x="0" y="0" width="20" height="1" fill="blue" />
+ <rect x="0" y="0" width="1" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g xml:id="elementary-transforms-test-markers" transform="translate(-364, -230) scale(2.5, 2.5)">
+ <!-- Scale 2 -->
+ <text x="200" y="110">scale (2)</text>
+ <rect x="208" y="118" width="5" height="5" fill="black" />
+ <rect x="248" y="118" width="5" height="5" fill="blue" />
+ <rect x="208" y="158" width="5" height="5" fill="red" />
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-05-t.png b/test/svg/svg1.2/svg/coords-trans-05-t.png
new file mode 100644
index 0000000..16e9cc0
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-05-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-05-t.svg b/test/svg/svg1.2/svg/coords-trans-05-t.svg
new file mode 100644
index 0000000..30d53f8
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-05-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="Validates elementary transforms and transformation nesting" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: coords-trans-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test verifies the implementation of transforms. It tests elementary transforms and transform nesting. Note that for layout purposes, this test uses nesting of translation with the elementary transforms.</p>
+ <p>The rendered picture should match the reference image exactly except for variations in the labeling text.</p>
+ <p>The test uses the rect element, the fill color (solid primary colors) and transforms.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g xml:id="nested-transforms-test">
+ <g xml:id="nested-transforms" transform="translate(-90, -450)">
+ <!-- scale/translate in transform attribute -->
+ <g transform="scale(7.5, 5) translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue" />
+ <rect x="0" y="0" width="0.67" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- nested-transforms -->
+ <g xml:id="nested-transforms-test-markers" transform="translate(-90, -450) scale(2.5, 2.5)">
+ <!-- scale and translate -->
+ <text x="40" y="200">scale(25, 95) - translate(2, 2)</text>
+ <rect x="48" y="208" width="5" height="5" fill="black" />
+ <rect x="108" y="208" width="5" height="5" fill="blue" />
+ <rect x="48" y="248" width="5" height="5" fill="red" />
+ </g>
+ <!-- nested-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-06-t.png b/test/svg/svg1.2/svg/coords-trans-06-t.png
new file mode 100644
index 0000000..ed86cf1
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-06-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-06-t.svg b/test/svg/svg1.2/svg/coords-trans-06-t.svg
new file mode 100644
index 0000000..e5aeffd
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-06-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="Validates elementary transforms and transformation nesting"
+ status="accepted"
+ approved="yes" version="$Revision: 1.10 $" testname="$RCSfile: coords-trans-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test verifies the implementation of transforms. It tests elementary transforms and transform nesting. Note that for layout purposes, this test uses nesting of translation with the elementary transforms.</p>
+ <p>The rendered picture should match the reference image exactly except for variations in the labeling text.</p>
+ <p>The test uses the rect element, the fill color (solid primary colors) and transforms.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <g xml:id="nested-transforms-test">
+ <g xml:id="nested-transforms">
+ <!-- scale/translate in successive elements -->
+ <g transform="translate(-102, -450)">
+ <g transform="scale(7.5, 5)">
+ <g transform="translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue" />
+ <rect x="0" y="0" width="0.67" height="20" fill="red" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <!-- nested-transforms -->
+ <g xml:id="nested-transforms-test-markers" transform="translate(-600, -450) scale(2.5, 2.5)">
+ <!-- scale then translate -->
+ <text x="248" y="200">scale(25, 95) then translate(2, 2)</text>
+ <rect x="248" y="208" width="5" height="5" fill="black" />
+ <rect x="308" y="208" width="5" height="5" fill="blue" />
+ <rect x="248" y="248" width="5" height="5" fill="red" />
+ </g>
+ <!-- nested-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-07-t.png b/test/svg/svg1.2/svg/coords-trans-07-t.png
new file mode 100644
index 0000000..c21d9a6
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-07-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-07-t.svg b/test/svg/svg1.2/svg/coords-trans-07-t.svg
new file mode 100644
index 0000000..54fd5b1
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-07-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ owner="CN" reviewer="OA" desc="tests elementary transforms and transform nesting" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: coords-trans-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test verifies the implementation of transforms. It tests elementary transforms
+ and transform nesting.
+ Note that for layout purposes, this test uses nesting of translation with the elementary transforms.
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly except for variations in the labeling text.
+ </p>
+ <p>
+ The test uses the rect element, the fill color (solid primary colors) and transforms.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-07-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="object_1" transform="rotate(30) translate(200, 100)">
+ <rect x="0" y="0" width="150" height="5" fill="green"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="65" y="185" font-size="20">rotate+translate</text>
+
+ <g xml:id="object_2" transform="translate(200,100) rotate(30)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="150" y="100" font-size="20">translate+rotate</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-08-t.png b/test/svg/svg1.2/svg/coords-trans-08-t.png
new file mode 100644
index 0000000..46cff6f
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-08-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-08-t.svg b/test/svg/svg1.2/svg/coords-trans-08-t.svg
new file mode 100644
index 0000000..e6fe687
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-08-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ owner="CN" reviewer="OA" desc="tests elementary transforms and transform nesting" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: coords-trans-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test verifies the implementation of transforms. It tests elementary transforms
+ and transform nesting.
+ Note that for layout purposes, this test uses nesting of translation with the elementary transforms.
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly except for variations in the labeling text.
+ </p>
+ <p>
+ This test will check if the transfomations performed are carried out in the proper order. The result should differ depending on which transformation comes first.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-08-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="object_1" transform="skewX(45) skewY(45)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ <rect x="150" y="0" width="5" height="50" fill="black"/>
+ <rect x="0" y="50" width="150" height="5" fill="black"/>
+ <ellipse rx="40" ry="15" cx="75" cy="25" fill="purple"/>
+ </g>
+ <text x="30" y="16" font-size="12">skewX(45)+skewY(45)</text>
+
+ <g xml:id="object_2" transform="translate(200,0) skewY(45) skewX(45)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ <rect x="150" y="0" width="5" height="50" fill="black"/>
+ <rect x="0" y="50" width="150" height="5" fill="black"/>
+ <ellipse rx="40" ry="15" cx="75" cy="25" fill="purple"/>
+ </g>
+ <text x="230" y="16" font-size="12">skewY(45)+skewX(45)</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-trans-09-t.png b/test/svg/svg1.2/svg/coords-trans-09-t.png
new file mode 100644
index 0000000..8e2eb21
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-trans-09-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-trans-09-t.svg b/test/svg/svg1.2/svg/coords-trans-09-t.svg
new file mode 100644
index 0000000..3cae39b
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-trans-09-t.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ owner="CN" reviewer="OA" desc="Tests elementary transforms and transform nesting" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: coords-trans-09-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test verifies the implementation of transforms. It tests elementary transforms
+ and transform nesting.
+ Note that for layout purposes, this test uses nesting of translation with the elementary transforms.
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly except for variations in the labeling text.
+ </p>
+ <p>
+ This test will check if the various matrix operations work
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-trans-09-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="matrix(0 0 0 0 0 0)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="6" y="20" font-size="20">matrix(0 0 0 0 0 0)</text>
+
+ <g transform="matrix(1 0 0 1 100 100)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="100" y="100" font-size="20">matrix(1 0 0 1 100 100)</text>
+
+ <g transform="matrix(1.5 0 0 1.5 70 60)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="70" y="60" font-size="20">matrix(1.5 0 0 1.5 70 60)</text>
+
+ <g transform="matrix(1 0 0.5 1 30 170)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="30" y="170" font-size="20">matrix(1 0 0.5 1 30 170)</text>
+
+ <g transform="matrix(1 0.5 0 1 100 200)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="100" y="200" font-size="20">matrix(1 0.5 0 1 100 200)</text>
+
+ <g transform="matrix(0 1 -1 0 450 0)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="275" y="30" font-size="20">matrix(0 1 -1 0 450 0)</text>
+
+ <g transform="matrix(1 0.8 0.8 1 300 220)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="230" y="220" font-size="20">matrix(1 0.8 0.8 1 300 220)</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-units-01-t.png b/test/svg/svg1.2/svg/coords-units-01-t.png
new file mode 100644
index 0000000..1dcae09
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-units-01-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-units-01-t.svg b/test/svg/svg1.2/svg/coords-units-01-t.svg
new file mode 100644
index 0000000..43a6758
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-units-01-t.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="VH" desc="This test validates the processing rules for converting coordinates and length defined in fractions of the current object's bounding box to user space coordinates and length. Note that this test assumes that linear and radial gradients are implemented." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: coords-units-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify the conversion processing of percentage and fraction values relative to object bounding boxes.
+ This is used when defining linear and radial gradients.
+ </p>
+ <p>
+ The test validates conversion for coordinates, width, height and length. The first test defines two
+ corresponding linear gradients, which specify coordinates using fractions for the first and user
+ coordinates for the second. The second test defines two corresponding radial gradients, which specify
+ a length (radius) using fractions for the first and user space for the second.
+ </p>
+ <p>
+ The rendered image should match the reference image.
+ </p>
+ <p>
+ The test also assumes that linear and radial gradients are implemented.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-units-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="14">
+ <!-- ==================================================================== -->
+ <!-- The following gradients will be used to fill a rectangle with the -->
+ <!-- following geometry in User space: x=0, y=0, width=50 height=20 -->
+ <!-- The gradient vector, in linearBoundingBoxFraction, is defined as: -->
+ <!-- (0, 0) to (1, 0). -->
+ <!-- According to the spec, for our rectangle, this corresponds to the -->
+ <!-- following user space coordinates: -->
+ <!-- (0, 0) becomes (0, 0) and (1, 0) becomes (50, 0) -->
+ <!-- These values are used to define the linearUserSpace gradient. -->
+ <!-- If the test succeeds, all the gradient should fill the rectangles -->
+ <!-- the same way -->
+ <!-- ==================================================================== -->
+ <linearGradient xml:id="linearBoundingBoxFraction" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="blue" offset="1" />
+ </linearGradient>
+ <linearGradient xml:id="linearUserSpace" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="50" y2="0">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="blue" offset="1" />
+ </linearGradient>
+ <!-- Draw Text Comment -->
+ <text x="30" y="30">Bounding box relative coordinates</text>
+ <g transform="translate(30, 40)">
+ <rect x="0" y="0" width="50" height="20" transform="translate(0, 20)" fill="url(#linearBoundingBoxFraction)" />
+ <rect x="0" y="0" width="50" height="20" transform="translate(0, 40)" fill="url(#linearUserSpace)" />
+ <line x1="0" y1="20" x2="50" y2="20" stroke="#cccccc" stroke-width="1" />
+ <line x1="0" y1="40" x2="50" y2="40" stroke="#cccccc" stroke-width="1" />
+ <text x="60" y="35">Fraction</text>
+ <text x="60" y="55">User Space</text>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- The following gradients will be used to fill a rectangle with the -->
+ <!-- following geometry in User space: x=0, y=0, width=60 height=60 -->
+ <!-- The radial gradient in radialBoundingBoxFraction is -->
+ <!-- defined as: cx=0.25 cy=0.25 and r=0.25 -->
+ <!-- These two definition, for our rectangle, should be identical to the -->
+ <!-- following radial gradient in radialUserSpace: -->
+ <!-- cx=15 cy=15 r=15 -->
+ <!-- ==================================================================== -->
+ <radialGradient xml:id="radialBoundingBoxFraction" gradientUnits="objectBoundingBox" cx="0.25" cy="0.25" r="0.25">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="blue" offset="1" />
+ </radialGradient>
+ <radialGradient xml:id="radialUserSpace" gradientUnits="userSpaceOnUse" cx="15" cy="15" r="15">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="blue" offset="1" />
+ </radialGradient>
+ <!-- Draw Text Comment -->
+ <text x="30" y="130">Bounding box relative length (percentage and fraction)</text>
+ <g transform="translate(30, 140)">
+ <rect x="0" y="0" width="60" height="60" transform="translate(61, 0)" fill="url(#radialBoundingBoxFraction)" />
+ <rect x="0" y="0" width="60" height="60" transform="translate(122, 0)" fill="url(#radialUserSpace)" />
+ <text x="61" y="73">Fraction</text>
+ <text x="122" y="73">User Space</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/coords-viewattr-05-t.png b/test/svg/svg1.2/svg/coords-viewattr-05-t.png
new file mode 100644
index 0000000..92f2127
Binary files /dev/null and b/test/svg/svg1.2/svg/coords-viewattr-05-t.png differ
diff --git a/test/svg/svg1.2/svg/coords-viewattr-05-t.svg b/test/svg/svg1.2/svg/coords-viewattr-05-t.svg
new file mode 100644
index 0000000..ad99a8f
--- /dev/null
+++ b/test/svg/svg1.2/svg/coords-viewattr-05-t.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg [
+ <!ENTITY Viewport1 "<rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue' />">
+ <!ENTITY Viewport2 "<rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue' />">
+]>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="VH" desc="Validates viewBox specification and the preserveAspectRatio attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.12 $" testname="$RCSfile: coords-viewattr-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test verifies the implementation of the preserveAspectRatio attribute on <image> referencing raster content.
+ This is a modified version of the sample file included in the SVG specification. It exercises the various preserveAspectRatio
+ values and uses a general entity definition in order to make reading of the SVG source easier.
+ </p>
+ <p>The rendered picture should match the reference image exactly except for variations in the labeling text.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: coords-viewattr-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="9" transform="translate(0, 30)">
+ <desc>Example PreserveAspectRatio - demonstrate available options</desc>
+ <text text-anchor="middle" x="240" font-size="16">Test options of preserveAspectRatio on an image element</text>
+ <text x="40" y="30" text-anchor="middle">Raster to fit</text>
+ <g transform="translate(20,40)">
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4ADkFkb2JlAGTAAAAAAf/b AIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBA QEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUw MDU1QEA/QEBAQEBAQEBAQEBA/8AAEQgAZABkAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUD DDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1Rk RcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MV Y3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpam tsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A8/SSR8LCyc/JZi4rDZdYYa0flPgAgSACSaA1 JKkLWuc4NaC5x0AGpJXT9J+onUcwC3Od9jpOoYRutI/q/m/P7l1X1f8Aqth9HYLXgX5xHuuI0b5V g8fHlbixOa+LSsw5fQf5w7/QMscfdxcL6n9BwwP1cXvH5953/wDR+j+C1qsbHoEU1MqHgxob+RES WVPNlyG5zlP+8bXg
AbBRAIgiR4Knk9G6TlgjIw6Xz32AO/zhBVxJNjOUTcZGJ8DSnk+pf4v8C4F/ T7XY1nZj/fX/AOSH4rjOq9E6l0mzZmVFrSYZa33Vu+Dv4L19Qvx6Mmp1GRW22p4hzHCQQtDl/imf GQMh96Hj830P8VpgDto+KJLqPrR9UX9M3ZuCDZgzL2cupn8rfP71y63sObHmgJ4zYP2g9ixEEGip JJJSoXa1znBrQS5xgAckleo/Vb6vM6Phh9oBzrwDc790cisfDv5rlfqJ0kZnUXZ1rZpw4LJ4Nrvo /wCbz9y9GWH8W5o8X3eB0GuTz6Blxx6qSSVDrPWcTo2J9pyZcXHbVU36T3eA/iVkwhKchCAMpS0A C9vpLiKP8YxNwGRhbaCdSx8vA+BABXZ42TTl49eTjuD6bWhzHDuCpc/K5sFe7DhEtjdj8FCQOyRJ Vuo9Qxum4lmZlO21V+GpcTw1o8SuQP8AjHd62mCPQn/Se+P82EsHKZ8wMsUOIR62Br9UGQG73CSq 9M6li9Uw2ZmK6a36EHRzXDlrh4hWlDKJjIxkKMTRBXLOa17Sx4DmuBDmnUEHsV5j9bfq/wDsfMFt AP2LIJNX8h3ev+5enqj1rplfVem3Yb43PE1OP5tjdWlWuR5o8vlBJ9E9Jjw7/RbKNh8fSRPQu9f7 PtPrb/T2d987dv3pLqLHfx+jA+ofU/CGH0HHkQ+8G9/9v6P/AEYW0h41Qox6qRxUxrB/ZEIi4/NM 5Ms5n9ORl9rYAoAKXEf4xqLicLIAJoaHsJ7B5gj7wF26Hk42Pl0ux8mtttLxDmOEgqTlc/sZoZa4 hG7HgdFSFinxVeo/Uui+n6v44ukby97Gnsxxlv38p6PqX9X6b/WGOXwZax7i5g/snn5rcAAAAEAc BXfiHxDHnxxx44yri4iZfkFkIEGy8v8A4waL7Oj1WVgmum4OtA7Atc0OPzK85XttlbLWOrsaHseC HNcJ
BB7ELCP1K+rxv9b7O6Jn0t7tn3TP4o8h8Rx4MXt5Iy0JMTHx7qlAk2Gl/i8ovr6ZkWvBFVtv 6Ke+0Q5w/J8l1ajVVXTW2qpoZWwQ1jRAAHYBSWfzGb3s08tcPGbpeBQpSSSSiS8d+xGf8/PU2/od n22I03fQ/wDPmqS6z7Oz7V9pj3+n6c+W7ckrv36fc/7m9j+1bw/9K0oIIBHB4SVPo2SMvpOHkAzv pZP9YCHfiFcVOcTGUoneJI+xKkkkkEqSSSSUpJJJJSkkkklKSSSSUrySWX+0m/8AOT9mz/2l9T+3 v4/zUlL7E+3+T93/AAUX+dOP/i+6kLsC3p7z+kxnb2D/AIN+v4O/KusXkHROq2dJ6lVmMktadtrB +dW76Q/u8165j305NFeRQ4PqtaHMcO4KufFOXOPOcgHoza/4XUftWwNiuzMkASeFiYv1u6Nk59mC LdjmO212v0rtPfa74+PK2yARB1BXKdc+ouLmOdkdNcMa86uqP804+UfR/Iq3LR5eRlHPKUOIeiQ2 B8Uyvo9WkvNmZv1u+rf6O1rzjt0AsHq0/wBl44+RWjj/AOMd4AGTggnu6uyP+i5p/Kp5fDM/zYjD PDpKEh+1HGOuj3CS41/+MfFA9mFYXeBeAPwBWfk/XzrOWfSwMdlLnaDaDbZ8u34IR+Gc2d4CA7yk K/BXHF7nP6jhdOoORmWtqrHE8uPg0ckqt0Tr2F1ql9mNLH1uh9T43Afmu07FcbifVP6wdavGT1Wx 1LDy+47rI8G19vnC7bpPRsDpFHo4dcE/zlrtXvP8pyGfDy2HGYjJ72e94fJHwSDInag3kznNY0uc Ya0SSeAAnXLfXnrgw8L9m0O/WcofpI5ZV3/zuPvVfBhlmyxxx/SO/YdSkmhbyv7fd/zp/bEn0/W4 /wCB/m4/zEliJLqfu2L93/Jez/gdmCz+NqXUfVH60fsx4wc1x+w2H2POvouPf+qe/wB65
dJHNhhm xnHMWD9oPcKBINh9ta5r2h7CHNcJa4agg9wnXmH1f+tuZ0iKLQcjC/0RPuZ/xZ/gvQemda6b1Wvf h3B7vzqj7bG/FpXN81yOXlySRxw6TG317M0ZAt7nQqnf0bpORrdhUvJ7mts/eBKuJKrGUom4kx8j SXNZ9W+gsMjApnzbP5VeoxcbHEY9LKR4VtDf+pCIknSy5JfNOUv7xJVQUkmc5rGlzyGtGpJMABcv 1z684WG11HTYysnj1P8ABMPx/O+X3p2HBlzS4ccTL8h5lRIG7qdf6/i9FxfUsIfkvB9CidXHxPg0 LyzMzMjOybMrJdvutO5zv4DyCWZmZOdkOycqw23P+k535B4BBXR8lyUeWj+9kl80v2DwYZSvyUkk kri1SSSSSlIlHr+q37Pv9afZ6c758tuqSSB2P7dlPc9E/wCfm1vqbPR0j7b9KP7H6T711mP9q2D7 V6e/v6e6P+kkkuZ575z/ALm3/wAh+1nj9fql+Cy+p/8AOTaf2b9l/wCub9/y/NSSVfB84/m/+q/K k/X6PA9f/wCdO4/tj1vTnT/Q/L0/YsNJJdTy381H+a/6j8n0YDv1+qkkklMhSSSSSn//2Q==" width="40" height="40" preserveAspectRatio="none" />
+ </g>
+ <text x="35.5" y="110" text-anchor="middle">Viewport 1</text>
+ <g transform="translate(10,120)">&Viewport1;</g>
+ <text x="35.5" y="180" text-anchor="middle">Viewport 2</text>
+ <g transform="translate(20,190)">&Viewport2;</g>
+ <g xml:id="meet-group-1" transform="translate(120, 50)">
+ <text x="0" y="-20">---------- meet --------------------</text>
+ <g>
+ <text y="-5">xMin*</text>&Viewport1;
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4ADkFkb2JlAGTAAAAAAf/b AIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBA QEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUw MDU1QEA/QEBAQEBAQEBAQEBA/8AAEQgAZABkAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUD DDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1Rk RcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MV Y3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpam tsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A8/SSR8LCyc/JZi4rDZdYYa0flPgAgSACSaA1 JKkLWuc4NaC5x0AGpJXT9J+onUcwC3Od9jpOoYRutI/q/m/P7l1X1f8Aqth9HYLXgX5xHuuI0b5V g8fHlbixOa+LSsw5fQf5w7/QMscfdxcL6n9BwwP1cXvH5953/wDR+j+C1qsbHoEU1MqHgxob+RES WVPNlyG5zlP+8b
XgAbBRAIgiR4Knk9G6TlgjIw6Xz32AO/zhBVxJNjOUTcZGJ8DSnk+pf4v8C4F/ T7XY1nZj/fX/AOSH4rjOq9E6l0mzZmVFrSYZa33Vu+Dv4L19Qvx6Mmp1GRW22p4hzHCQQtDl/imf GQMh96Hj830P8VpgDto+KJLqPrR9UX9M3ZuCDZgzL2cupn8rfP71y63sObHmgJ4zYP2g9ixEEGip JJJSoXa1znBrQS5xgAckleo/Vb6vM6Phh9oBzrwDc790cisfDv5rlfqJ0kZnUXZ1rZpw4LJ4Nrvo /wCbz9y9GWH8W5o8X3eB0GuTz6Blxx6qSSVDrPWcTo2J9pyZcXHbVU36T3eA/iVkwhKchCAMpS0A C9vpLiKP8YxNwGRhbaCdSx8vA+BABXZ42TTl49eTjuD6bWhzHDuCpc/K5sFe7DhEtjdj8FCQOyRJ Vuo9Qxum4lmZlO21V+GpcTw1o8SuQP8AjHd62mCPQn/Se+P82EsHKZ8wMsUOIR62Br9UGQG73CSq 9M6li9Uw2ZmK6a36EHRzXDlrh4hWlDKJjIxkKMTRBXLOa17Sx4DmuBDmnUEHsV5j9bfq/wDsfMFt AP2LIJNX8h3ev+5enqj1rplfVem3Yb43PE1OP5tjdWlWuR5o8vlBJ9E9Jjw7/RbKNh8fSRPQu9f7 PtPrb/T2d987dv3pLqLHfx+jA+ofU/CGH0HHkQ+8G9/9v6P/AEYW0h41Qox6qRxUxrB/ZEIi4/NM 5Ms5n9ORl9rYAoAKXEf4xqLicLIAJoaHsJ7B5gj7wF26Hk42Pl0ux8mtttLxDmOEgqTlc/sZoZa4 hG7HgdFSFinxVeo/Uui+n6v44ukby97Gnsxxlv38p6PqX9X6b/WGOXwZax7i5g/snn5rcAAAAEAc BXfiHxDHnxxx44yri4iZfkFkIEGy8v8A4waL7Oj1WVgmum4OtA7Atc0OPzK85XttlbLWOrsaHseC HN
cJBB7ELCP1K+rxv9b7O6Jn0t7tn3TP4o8h8Rx4MXt5Iy0JMTHx7qlAk2Gl/i8ovr6ZkWvBFVtv 6Ke+0Q5w/J8l1ajVVXTW2qpoZWwQ1jRAAHYBSWfzGb3s08tcPGbpeBQpSSSSiS8d+xGf8/PU2/od n22I03fQ/wDPmqS6z7Oz7V9pj3+n6c+W7ckrv36fc/7m9j+1bw/9K0oIIBHB4SVPo2SMvpOHkAzv pZP9YCHfiFcVOcTGUoneJI+xKkkkkEqSSSSUpJJJJSkkkklKSSSSUrySWX+0m/8AOT9mz/2l9T+3 v4/zUlL7E+3+T93/AAUX+dOP/i+6kLsC3p7z+kxnb2D/AIN+v4O/KusXkHROq2dJ6lVmMktadtrB +dW76Q/u8165j305NFeRQ4PqtaHMcO4KufFOXOPOcgHoza/4XUftWwNiuzMkASeFiYv1u6Nk59mC LdjmO212v0rtPfa74+PK2yARB1BXKdc+ouLmOdkdNcMa86uqP804+UfR/Iq3LR5eRlHPKUOIeiQ2 B8Uyvo9WkvNmZv1u+rf6O1rzjt0AsHq0/wBl44+RWjj/AOMd4AGTggnu6uyP+i5p/Kp5fDM/zYjD PDpKEh+1HGOuj3CS41/+MfFA9mFYXeBeAPwBWfk/XzrOWfSwMdlLnaDaDbZ8u34IR+Gc2d4CA7yk K/BXHF7nP6jhdOoORmWtqrHE8uPg0ckqt0Tr2F1ql9mNLH1uh9T43Afmu07FcbifVP6wdavGT1Wx 1LDy+47rI8G19vnC7bpPRsDpFHo4dcE/zlrtXvP8pyGfDy2HGYjJ72e94fJHwSDInag3kznNY0uc Ya0SSeAAnXLfXnrgw8L9m0O/WcofpI5ZV3/zuPvVfBhlmyxxx/SO/YdSkmhbyv7fd/zp/bEn0/W4 /wCB/m4/zEliJLqfu2L93/Jez/gdmCz+NqXUfVH60fsx4wc1x+w2H2POvouPf+qe/wB
65dJHNhhm xnHMWD9oPcKBINh9ta5r2h7CHNcJa4agg9wnXmH1f+tuZ0iKLQcjC/0RPuZ/xZ/gvQemda6b1Wvf h3B7vzqj7bG/FpXN81yOXlySRxw6TG317M0ZAt7nQqnf0bpORrdhUvJ7mts/eBKuJKrGUom4kx8j SXNZ9W+gsMjApnzbP5VeoxcbHEY9LKR4VtDf+pCIknSy5JfNOUv7xJVQUkmc5rGlzyGtGpJMABcv 1z684WG11HTYysnj1P8ABMPx/O+X3p2HBlzS4ccTL8h5lRIG7qdf6/i9FxfUsIfkvB9CidXHxPg0 LyzMzMjOybMrJdvutO5zv4DyCWZmZOdkOycqw23P+k535B4BBXR8lyUeWj+9kl80v2DwYZSvyUkk kri1SSSSSlIlHr+q37Pv9afZ6c758tuqSSB2P7dlPc9E/wCfm1vqbPR0j7b9KP7H6T711mP9q2D7 V6e/v6e6P+kkkuZ575z/ALm3/wAh+1nj9fql+Cy+p/8AOTaf2b9l/wCub9/y/NSSVfB84/m/+q/K k/X6PA9f/wCdO4/tj1vTnT/Q/L0/YsNJJdTy381H+a/6j8n0YDv1+qkkklMhSSSSSn//2Q==" preserveAspectRatio="xMinYMin meet" width="50" height="30" />
+ </g>
+ <g transform="translate(70,0)">
+ <text y="-5">xMid*</text>&Viewport1;
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4ADkFkb2JlAGTAAAAAAf/b AIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBA QEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUw MDU1QEA/QEBAQEBAQEBAQEBA/8AAEQgAZABkAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUD DDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1Rk RcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MV Y3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpam tsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A8/SSR8LCyc/JZi4rDZdYYa0flPgAgSACSaA1 JKkLWuc4NaC5x0AGpJXT9J+onUcwC3Od9jpOoYRutI/q/m/P7l1X1f8Aqth9HYLXgX5xHuuI0b5V g8fHlbixOa+LSsw5fQf5w7/QMscfdxcL6n9BwwP1cXvH5953/wDR+j+C1qsbHoEU1MqHgxob+RES WVPNlyG5zlP+8b
XgAbBRAIgiR4Knk9G6TlgjIw6Xz32AO/zhBVxJNjOUTcZGJ8DSnk+pf4v8C4F/ T7XY1nZj/fX/AOSH4rjOq9E6l0mzZmVFrSYZa33Vu+Dv4L19Qvx6Mmp1GRW22p4hzHCQQtDl/imf GQMh96Hj830P8VpgDto+KJLqPrR9UX9M3ZuCDZgzL2cupn8rfP71y63sObHmgJ4zYP2g9ixEEGip JJJSoXa1znBrQS5xgAckleo/Vb6vM6Phh9oBzrwDc790cisfDv5rlfqJ0kZnUXZ1rZpw4LJ4Nrvo /wCbz9y9GWH8W5o8X3eB0GuTz6Blxx6qSSVDrPWcTo2J9pyZcXHbVU36T3eA/iVkwhKchCAMpS0A C9vpLiKP8YxNwGRhbaCdSx8vA+BABXZ42TTl49eTjuD6bWhzHDuCpc/K5sFe7DhEtjdj8FCQOyRJ Vuo9Qxum4lmZlO21V+GpcTw1o8SuQP8AjHd62mCPQn/Se+P82EsHKZ8wMsUOIR62Br9UGQG73CSq 9M6li9Uw2ZmK6a36EHRzXDlrh4hWlDKJjIxkKMTRBXLOa17Sx4DmuBDmnUEHsV5j9bfq/wDsfMFt AP2LIJNX8h3ev+5enqj1rplfVem3Yb43PE1OP5tjdWlWuR5o8vlBJ9E9Jjw7/RbKNh8fSRPQu9f7 PtPrb/T2d987dv3pLqLHfx+jA+ofU/CGH0HHkQ+8G9/9v6P/AEYW0h41Qox6qRxUxrB/ZEIi4/NM 5Ms5n9ORl9rYAoAKXEf4xqLicLIAJoaHsJ7B5gj7wF26Hk42Pl0ux8mtttLxDmOEgqTlc/sZoZa4 hG7HgdFSFinxVeo/Uui+n6v44ukby97Gnsxxlv38p6PqX9X6b/WGOXwZax7i5g/snn5rcAAAAEAc BXfiHxDHnxxx44yri4iZfkFkIEGy8v8A4waL7Oj1WVgmum4OtA7Atc0OPzK85XttlbLWOrsaHseC HN
cJBB7ELCP1K+rxv9b7O6Jn0t7tn3TP4o8h8Rx4MXt5Iy0JMTHx7qlAk2Gl/i8ovr6ZkWvBFVtv 6Ke+0Q5w/J8l1ajVVXTW2qpoZWwQ1jRAAHYBSWfzGb3s08tcPGbpeBQpSSSSiS8d+xGf8/PU2/od n22I03fQ/wDPmqS6z7Oz7V9pj3+n6c+W7ckrv36fc/7m9j+1bw/9K0oIIBHB4SVPo2SMvpOHkAzv pZP9YCHfiFcVOcTGUoneJI+xKkkkkEqSSSSUpJJJJSkkkklKSSSSUrySWX+0m/8AOT9mz/2l9T+3 v4/zUlL7E+3+T93/AAUX+dOP/i+6kLsC3p7z+kxnb2D/AIN+v4O/KusXkHROq2dJ6lVmMktadtrB +dW76Q/u8165j305NFeRQ4PqtaHMcO4KufFOXOPOcgHoza/4XUftWwNiuzMkASeFiYv1u6Nk59mC LdjmO212v0rtPfa74+PK2yARB1BXKdc+ouLmOdkdNcMa86uqP804+UfR/Iq3LR5eRlHPKUOIeiQ2 B8Uyvo9WkvNmZv1u+rf6O1rzjt0AsHq0/wBl44+RWjj/AOMd4AGTggnu6uyP+i5p/Kp5fDM/zYjD PDpKEh+1HGOuj3CS41/+MfFA9mFYXeBeAPwBWfk/XzrOWfSwMdlLnaDaDbZ8u34IR+Gc2d4CA7yk K/BXHF7nP6jhdOoORmWtqrHE8uPg0ckqt0Tr2F1ql9mNLH1uh9T43Afmu07FcbifVP6wdavGT1Wx 1LDy+47rI8G19vnC7bpPRsDpFHo4dcE/zlrtXvP8pyGfDy2HGYjJ72e94fJHwSDInag3kznNY0uc Ya0SSeAAnXLfXnrgw8L9m0O/WcofpI5ZV3/zuPvVfBhlmyxxx/SO/YdSkmhbyv7fd/zp/bEn0/W4 /wCB/m4/zEliJLqfu2L93/Jez/gdmCz+NqXUfVH60fsx4wc1x+w2H2POvouPf+qe/wB
65dJHNhhm xnHMWD9oPcKBINh9ta5r2h7CHNcJa4agg9wnXmH1f+tuZ0iKLQcjC/0RPuZ/xZ/gvQemda6b1Wvf h3B7vzqj7bG/FpXN81yOXlySRxw6TG317M0ZAt7nQqnf0bpORrdhUvJ7mts/eBKuJKrGUom4kx8j SXNZ9W+gsMjApnzbP5VeoxcbHEY9LKR4VtDf+pCIknSy5JfNOUv7xJVQUkmc5rGlzyGtGpJMABcv 1z684WG11HTYysnj1P8ABMPx/O+X3p2HBlzS4ccTL8h5lRIG7qdf6/i9FxfUsIfkvB9CidXHxPg0 LyzMzMjOybMrJdvutO5zv4DyCWZmZOdkOycqw23P+k535B4BBXR8lyUeWj+9kl80v2DwYZSvyUkk kri1SSSSSlIlHr+q37Pv9afZ6c758tuqSSB2P7dlPc9E/wCfm1vqbPR0j7b9KP7H6T711mP9q2D7 V6e/v6e6P+kkkuZ575z/ALm3/wAh+1nj9fql+Cy+p/8AOTaf2b9l/wCub9/y/NSSVfB84/m/+q/K k/X6PA9f/wCdO4/tj1vTnT/Q/L0/YsNJJdTy381H+a/6j8n0YDv1+qkkklMhSSSSSn//2Q==" preserveAspectRatio="xMidYMid meet" width="50" height="30" />
+ </g>
+ <g transform="translate(0,50)">
+ <text y="-5">xMax*</text>&Viewport1;
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4ADkFkb2JlAGTAAAAAAf/b AIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBA QEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUw MDU1QEA/QEBAQEBAQEBAQEBA/8AAEQgAZABkAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUD DDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1Rk RcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MV Y3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpam tsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A8/SSR8LCyc/JZi4rDZdYYa0flPgAgSACSaA1 JKkLWuc4NaC5x0AGpJXT9J+onUcwC3Od9jpOoYRutI/q/m/P7l1X1f8Aqth9HYLXgX5xHuuI0b5V g8fHlbixOa+LSsw5fQf5w7/QMscfdxcL6n9BwwP1cXvH5953/wDR+j+C1qsbHoEU1MqHgxob+RES WVPNlyG5zlP+8b
XgAbBRAIgiR4Knk9G6TlgjIw6Xz32AO/zhBVxJNjOUTcZGJ8DSnk+pf4v8C4F/ T7XY1nZj/fX/AOSH4rjOq9E6l0mzZmVFrSYZa33Vu+Dv4L19Qvx6Mmp1GRW22p4hzHCQQtDl/imf GQMh96Hj830P8VpgDto+KJLqPrR9UX9M3ZuCDZgzL2cupn8rfP71y63sObHmgJ4zYP2g9ixEEGip JJJSoXa1znBrQS5xgAckleo/Vb6vM6Phh9oBzrwDc790cisfDv5rlfqJ0kZnUXZ1rZpw4LJ4Nrvo /wCbz9y9GWH8W5o8X3eB0GuTz6Blxx6qSSVDrPWcTo2J9pyZcXHbVU36T3eA/iVkwhKchCAMpS0A C9vpLiKP8YxNwGRhbaCdSx8vA+BABXZ42TTl49eTjuD6bWhzHDuCpc/K5sFe7DhEtjdj8FCQOyRJ Vuo9Qxum4lmZlO21V+GpcTw1o8SuQP8AjHd62mCPQn/Se+P82EsHKZ8wMsUOIR62Br9UGQG73CSq 9M6li9Uw2ZmK6a36EHRzXDlrh4hWlDKJjIxkKMTRBXLOa17Sx4DmuBDmnUEHsV5j9bfq/wDsfMFt AP2LIJNX8h3ev+5enqj1rplfVem3Yb43PE1OP5tjdWlWuR5o8vlBJ9E9Jjw7/RbKNh8fSRPQu9f7 PtPrb/T2d987dv3pLqLHfx+jA+ofU/CGH0HHkQ+8G9/9v6P/AEYW0h41Qox6qRxUxrB/ZEIi4/NM 5Ms5n9ORl9rYAoAKXEf4xqLicLIAJoaHsJ7B5gj7wF26Hk42Pl0ux8mtttLxDmOEgqTlc/sZoZa4 hG7HgdFSFinxVeo/Uui+n6v44ukby97Gnsxxlv38p6PqX9X6b/WGOXwZax7i5g/snn5rcAAAAEAc BXfiHxDHnxxx44yri4iZfkFkIEGy8v8A4waL7Oj1WVgmum4OtA7Atc0OPzK85XttlbLWOrsaHseC HN
cJBB7ELCP1K+rxv9b7O6Jn0t7tn3TP4o8h8Rx4MXt5Iy0JMTHx7qlAk2Gl/i8ovr6ZkWvBFVtv 6Ke+0Q5w/J8l1ajVVXTW2qpoZWwQ1jRAAHYBSWfzGb3s08tcPGbpeBQpSSSSiS8d+xGf8/PU2/od n22I03fQ/wDPmqS6z7Oz7V9pj3+n6c+W7ckrv36fc/7m9j+1bw/9K0oIIBHB4SVPo2SMvpOHkAzv pZP9YCHfiFcVOcTGUoneJI+xKkkkkEqSSSSUpJJJJSkkkklKSSSSUrySWX+0m/8AOT9mz/2l9T+3 v4/zUlL7E+3+T93/AAUX+dOP/i+6kLsC3p7z+kxnb2D/AIN+v4O/KusXkHROq2dJ6lVmMktadtrB +dW76Q/u8165j305NFeRQ4PqtaHMcO4KufFOXOPOcgHoza/4XUftWwNiuzMkASeFiYv1u6Nk59mC LdjmO212v0rtPfa74+PK2yARB1BXKdc+ouLmOdkdNcMa86uqP804+UfR/Iq3LR5eRlHPKUOIeiQ2 B8Uyvo9WkvNmZv1u+rf6O1rzjt0AsHq0/wBl44+RWjj/AOMd4AGTggnu6uyP+i5p/Kp5fDM/zYjD PDpKEh+1HGOuj3CS41/+MfFA9mFYXeBeAPwBWfk/XzrOWfSwMdlLnaDaDbZ8u34IR+Gc2d4CA7yk K/BXHF7nP6jhdOoORmWtqrHE8uPg0ckqt0Tr2F1ql9mNLH1uh9T43Afmu07FcbifVP6wdavGT1Wx 1LDy+47rI8G19vnC7bpPRsDpFHo4dcE/zlrtXvP8pyGfDy2HGYjJ72e94fJHwSDInag3kznNY0uc Ya0SSeAAnXLfXnrgw8L9m0O/WcofpI5ZV3/zuPvVfBhlmyxxx/SO/YdSkmhbyv7fd/zp/bEn0/W4 /wCB/m4/zEliJLqfu2L93/Jez/gdmCz+NqXUfVH60fsx4wc1x+w2H2POvouPf+qe/wB
65dJHNhhm xnHMWD9oPcKBINh9ta5r2h7CHNcJa4agg9wnXmH1f+tuZ0iKLQcjC/0RPuZ/xZ/gvQemda6b1Wvf h3B7vzqj7bG/FpXN81yOXlySRxw6TG317M0ZAt7nQqnf0bpORrdhUvJ7mts/eBKuJKrGUom4kx8j SXNZ9W+gsMjApnzbP5VeoxcbHEY9LKR4VtDf+pCIknSy5JfNOUv7xJVQUkmc5rGlzyGtGpJMABcv 1z684WG11HTYysnj1P8ABMPx/O+X3p2HBlzS4ccTL8h5lRIG7qdf6/i9FxfUsIfkvB9CidXHxPg0 LyzMzMjOybMrJdvutO5zv4DyCWZmZOdkOycqw23P+k535B4BBXR8lyUeWj+9kl80v2DwYZSvyUkk kri1SSSSSlIlHr+q37Pv9afZ6c758tuqSSB2P7dlPc9E/wCfm1vqbPR0j7b9KP7H6T711mP9q2D7 V6e/v6e6P+kkkuZ575z/ALm3/wAh+1nj9fql+Cy+p/8AOTaf2b9l/wCub9/y/NSSVfB84/m/+q/K k/X6PA9f/wCdO4/tj1vTnT/Q/L0/YsNJJdTy381H+a/6j8n0YDv1+qkkklMhSSSSSn//2Q==" preserveAspectRatio="xMaxYMax meet" width="50" height="30" />
+ </g>
+ </g>
+ <g xml:id="meet-group-2" transform="translate(300, 50)">
+ <text x="0" y="-20">---------- meet ------------------------</text>
+ <g>
+ <text y="-5">*YMin</text>&Viewport2;
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4ADkFkb2JlAGTAAAAAAf/b AIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBA QEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUw MDU1QEA/QEBAQEBAQEBAQEBA/8AAEQgAZABkAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUD DDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1Rk RcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MV Y3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpam tsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A8/SSR8LCyc/JZi4rDZdYYa0flPgAgSACSaA1 JKkLWuc4NaC5x0AGpJXT9J+onUcwC3Od9jpOoYRutI/q/m/P7l1X1f8Aqth9HYLXgX5xHuuI0b5V g8fHlbixOa+LSsw5fQf5w7/QMscfdxcL6n9BwwP1cXvH5953/wDR+j+C1qsbHoEU1MqHgxob+RES WVPNlyG5zlP+8b
XgAbBRAIgiR4Knk9G6TlgjIw6Xz32AO/zhBVxJNjOUTcZGJ8DSnk+pf4v8C4F/ T7XY1nZj/fX/AOSH4rjOq9E6l0mzZmVFrSYZa33Vu+Dv4L19Qvx6Mmp1GRW22p4hzHCQQtDl/imf GQMh96Hj830P8VpgDto+KJLqPrR9UX9M3ZuCDZgzL2cupn8rfP71y63sObHmgJ4zYP2g9ixEEGip JJJSoXa1znBrQS5xgAckleo/Vb6vM6Phh9oBzrwDc790cisfDv5rlfqJ0kZnUXZ1rZpw4LJ4Nrvo /wCbz9y9GWH8W5o8X3eB0GuTz6Blxx6qSSVDrPWcTo2J9pyZcXHbVU36T3eA/iVkwhKchCAMpS0A C9vpLiKP8YxNwGRhbaCdSx8vA+BABXZ42TTl49eTjuD6bWhzHDuCpc/K5sFe7DhEtjdj8FCQOyRJ Vuo9Qxum4lmZlO21V+GpcTw1o8SuQP8AjHd62mCPQn/Se+P82EsHKZ8wMsUOIR62Br9UGQG73CSq 9M6li9Uw2ZmK6a36EHRzXDlrh4hWlDKJjIxkKMTRBXLOa17Sx4DmuBDmnUEHsV5j9bfq/wDsfMFt AP2LIJNX8h3ev+5enqj1rplfVem3Yb43PE1OP5tjdWlWuR5o8vlBJ9E9Jjw7/RbKNh8fSRPQu9f7 PtPrb/T2d987dv3pLqLHfx+jA+ofU/CGH0HHkQ+8G9/9v6P/AEYW0h41Qox6qRxUxrB/ZEIi4/NM 5Ms5n9ORl9rYAoAKXEf4xqLicLIAJoaHsJ7B5gj7wF26Hk42Pl0ux8mtttLxDmOEgqTlc/sZoZa4 hG7HgdFSFinxVeo/Uui+n6v44ukby97Gnsxxlv38p6PqX9X6b/WGOXwZax7i5g/snn5rcAAAAEAc BXfiHxDHnxxx44yri4iZfkFkIEGy8v8A4waL7Oj1WVgmum4OtA7Atc0OPzK85XttlbLWOrsaHseC HN
cJBB7ELCP1K+rxv9b7O6Jn0t7tn3TP4o8h8Rx4MXt5Iy0JMTHx7qlAk2Gl/i8ovr6ZkWvBFVtv 6Ke+0Q5w/J8l1ajVVXTW2qpoZWwQ1jRAAHYBSWfzGb3s08tcPGbpeBQpSSSSiS8d+xGf8/PU2/od n22I03fQ/wDPmqS6z7Oz7V9pj3+n6c+W7ckrv36fc/7m9j+1bw/9K0oIIBHB4SVPo2SMvpOHkAzv pZP9YCHfiFcVOcTGUoneJI+xKkkkkEqSSSSUpJJJJSkkkklKSSSSUrySWX+0m/8AOT9mz/2l9T+3 v4/zUlL7E+3+T93/AAUX+dOP/i+6kLsC3p7z+kxnb2D/AIN+v4O/KusXkHROq2dJ6lVmMktadtrB +dW76Q/u8165j305NFeRQ4PqtaHMcO4KufFOXOPOcgHoza/4XUftWwNiuzMkASeFiYv1u6Nk59mC LdjmO212v0rtPfa74+PK2yARB1BXKdc+ouLmOdkdNcMa86uqP804+UfR/Iq3LR5eRlHPKUOIeiQ2 B8Uyvo9WkvNmZv1u+rf6O1rzjt0AsHq0/wBl44+RWjj/AOMd4AGTggnu6uyP+i5p/Kp5fDM/zYjD PDpKEh+1HGOuj3CS41/+MfFA9mFYXeBeAPwBWfk/XzrOWfSwMdlLnaDaDbZ8u34IR+Gc2d4CA7yk K/BXHF7nP6jhdOoORmWtqrHE8uPg0ckqt0Tr2F1ql9mNLH1uh9T43Afmu07FcbifVP6wdavGT1Wx 1LDy+47rI8G19vnC7bpPRsDpFHo4dcE/zlrtXvP8pyGfDy2HGYjJ72e94fJHwSDInag3kznNY0uc Ya0SSeAAnXLfXnrgw8L9m0O/WcofpI5ZV3/zuPvVfBhlmyxxx/SO/YdSkmhbyv7fd/zp/bEn0/W4 /wCB/m4/zEliJLqfu2L93/Jez/gdmCz+NqXUfVH60fsx4wc1x+w2H2POvouPf+qe/wB
65dJHNhhm xnHMWD9oPcKBINh9ta5r2h7CHNcJa4agg9wnXmH1f+tuZ0iKLQcjC/0RPuZ/xZ/gvQemda6b1Wvf h3B7vzqj7bG/FpXN81yOXlySRxw6TG317M0ZAt7nQqnf0bpORrdhUvJ7mts/eBKuJKrGUom4kx8j SXNZ9W+gsMjApnzbP5VeoxcbHEY9LKR4VtDf+pCIknSy5JfNOUv7xJVQUkmc5rGlzyGtGpJMABcv 1z684WG11HTYysnj1P8ABMPx/O+X3p2HBlzS4ccTL8h5lRIG7qdf6/i9FxfUsIfkvB9CidXHxPg0 LyzMzMjOybMrJdvutO5zv4DyCWZmZOdkOycqw23P+k535B4BBXR8lyUeWj+9kl80v2DwYZSvyUkk kri1SSSSSlIlHr+q37Pv9afZ6c758tuqSSB2P7dlPc9E/wCfm1vqbPR0j7b9KP7H6T711mP9q2D7 V6e/v6e6P+kkkuZ575z/ALm3/wAh+1nj9fql+Cy+p/8AOTaf2b9l/wCub9/y/NSSVfB84/m/+q/K k/X6PA9f/wCdO4/tj1vTnT/Q/L0/YsNJJdTy381H+a/6j8n0YDv1+qkkklMhSSSSSn//2Q==" preserveAspectRatio="xMinYMin meet" width="30" height="60" />
+ </g>
+ <g transform="translate(50, 0)">
+ <text y="-5">*YMid</text>&Viewport2;
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4ADkFkb2JlAGTAAAAAAf/b AIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBA QEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUw MDU1QEA/QEBAQEBAQEBAQEBA/8AAEQgAZABkAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUD DDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1Rk RcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MV Y3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpam tsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A8/SSR8LCyc/JZi4rDZdYYa0flPgAgSACSaA1 JKkLWuc4NaC5x0AGpJXT9J+onUcwC3Od9jpOoYRutI/q/m/P7l1X1f8Aqth9HYLXgX5xHuuI0b5V g8fHlbixOa+LSsw5fQf5w7/QMscfdxcL6n9BwwP1cXvH5953/wDR+j+C1qsbHoEU1MqHgxob+RES WVPNlyG5zlP+8b
XgAbBRAIgiR4Knk9G6TlgjIw6Xz32AO/zhBVxJNjOUTcZGJ8DSnk+pf4v8C4F/ T7XY1nZj/fX/AOSH4rjOq9E6l0mzZmVFrSYZa33Vu+Dv4L19Qvx6Mmp1GRW22p4hzHCQQtDl/imf GQMh96Hj830P8VpgDto+KJLqPrR9UX9M3ZuCDZgzL2cupn8rfP71y63sObHmgJ4zYP2g9ixEEGip JJJSoXa1znBrQS5xgAckleo/Vb6vM6Phh9oBzrwDc790cisfDv5rlfqJ0kZnUXZ1rZpw4LJ4Nrvo /wCbz9y9GWH8W5o8X3eB0GuTz6Blxx6qSSVDrPWcTo2J9pyZcXHbVU36T3eA/iVkwhKchCAMpS0A C9vpLiKP8YxNwGRhbaCdSx8vA+BABXZ42TTl49eTjuD6bWhzHDuCpc/K5sFe7DhEtjdj8FCQOyRJ Vuo9Qxum4lmZlO21V+GpcTw1o8SuQP8AjHd62mCPQn/Se+P82EsHKZ8wMsUOIR62Br9UGQG73CSq 9M6li9Uw2ZmK6a36EHRzXDlrh4hWlDKJjIxkKMTRBXLOa17Sx4DmuBDmnUEHsV5j9bfq/wDsfMFt AP2LIJNX8h3ev+5enqj1rplfVem3Yb43PE1OP5tjdWlWuR5o8vlBJ9E9Jjw7/RbKNh8fSRPQu9f7 PtPrb/T2d987dv3pLqLHfx+jA+ofU/CGH0HHkQ+8G9/9v6P/AEYW0h41Qox6qRxUxrB/ZEIi4/NM 5Ms5n9ORl9rYAoAKXEf4xqLicLIAJoaHsJ7B5gj7wF26Hk42Pl0ux8mtttLxDmOEgqTlc/sZoZa4 hG7HgdFSFinxVeo/Uui+n6v44ukby97Gnsxxlv38p6PqX9X6b/WGOXwZax7i5g/snn5rcAAAAEAc BXfiHxDHnxxx44yri4iZfkFkIEGy8v8A4waL7Oj1WVgmum4OtA7Atc0OPzK85XttlbLWOrsaHseC HN
cJBB7ELCP1K+rxv9b7O6Jn0t7tn3TP4o8h8Rx4MXt5Iy0JMTHx7qlAk2Gl/i8ovr6ZkWvBFVtv 6Ke+0Q5w/J8l1ajVVXTW2qpoZWwQ1jRAAHYBSWfzGb3s08tcPGbpeBQpSSSSiS8d+xGf8/PU2/od n22I03fQ/wDPmqS6z7Oz7V9pj3+n6c+W7ckrv36fc/7m9j+1bw/9K0oIIBHB4SVPo2SMvpOHkAzv pZP9YCHfiFcVOcTGUoneJI+xKkkkkEqSSSSUpJJJJSkkkklKSSSSUrySWX+0m/8AOT9mz/2l9T+3 v4/zUlL7E+3+T93/AAUX+dOP/i+6kLsC3p7z+kxnb2D/AIN+v4O/KusXkHROq2dJ6lVmMktadtrB +dW76Q/u8165j305NFeRQ4PqtaHMcO4KufFOXOPOcgHoza/4XUftWwNiuzMkASeFiYv1u6Nk59mC LdjmO212v0rtPfa74+PK2yARB1BXKdc+ouLmOdkdNcMa86uqP804+UfR/Iq3LR5eRlHPKUOIeiQ2 B8Uyvo9WkvNmZv1u+rf6O1rzjt0AsHq0/wBl44+RWjj/AOMd4AGTggnu6uyP+i5p/Kp5fDM/zYjD PDpKEh+1HGOuj3CS41/+MfFA9mFYXeBeAPwBWfk/XzrOWfSwMdlLnaDaDbZ8u34IR+Gc2d4CA7yk K/BXHF7nP6jhdOoORmWtqrHE8uPg0ckqt0Tr2F1ql9mNLH1uh9T43Afmu07FcbifVP6wdavGT1Wx 1LDy+47rI8G19vnC7bpPRsDpFHo4dcE/zlrtXvP8pyGfDy2HGYjJ72e94fJHwSDInag3kznNY0uc Ya0SSeAAnXLfXnrgw8L9m0O/WcofpI5ZV3/zuPvVfBhlmyxxx/SO/YdSkmhbyv7fd/zp/bEn0/W4 /wCB/m4/zEliJLqfu2L93/Jez/gdmCz+NqXUfVH60fsx4wc1x+w2H2POvouPf+qe/wB
65dJHNhhm xnHMWD9oPcKBINh9ta5r2h7CHNcJa4agg9wnXmH1f+tuZ0iKLQcjC/0RPuZ/xZ/gvQemda6b1Wvf h3B7vzqj7bG/FpXN81yOXlySRxw6TG317M0ZAt7nQqnf0bpORrdhUvJ7mts/eBKuJKrGUom4kx8j SXNZ9W+gsMjApnzbP5VeoxcbHEY9LKR4VtDf+pCIknSy5JfNOUv7xJVQUkmc5rGlzyGtGpJMABcv 1z684WG11HTYysnj1P8ABMPx/O+X3p2HBlzS4ccTL8h5lRIG7qdf6/i9FxfUsIfkvB9CidXHxPg0 LyzMzMjOybMrJdvutO5zv4DyCWZmZOdkOycqw23P+k535B4BBXR8lyUeWj+9kl80v2DwYZSvyUkk kri1SSSSSlIlHr+q37Pv9afZ6c758tuqSSB2P7dlPc9E/wCfm1vqbPR0j7b9KP7H6T711mP9q2D7 V6e/v6e6P+kkkuZ575z/ALm3/wAh+1nj9fql+Cy+p/8AOTaf2b9l/wCub9/y/NSSVfB84/m/+q/K k/X6PA9f/wCdO4/tj1vTnT/Q/L0/YsNJJdTy381H+a/6j8n0YDv1+qkkklMhSSSSSn//2Q==" preserveAspectRatio="xMidYMid meet" width="30" height="60" />
+ </g>
+ <g transform="translate(100, 0)">
+ <text y="-5">*YMax</text>&Viewport2;
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4ADkFkb2JlAGTAAAAAAf/b AIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBA QEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUw MDU1QEA/QEBAQEBAQEBAQEBA/8AAEQgAZABkAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEBAAAAAAAA AAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUD DDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1Rk RcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MV Y3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpam tsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A8/SSR8LCyc/JZi4rDZdYYa0flPgAgSACSaA1 JKkLWuc4NaC5x0AGpJXT9J+onUcwC3Od9jpOoYRutI/q/m/P7l1X1f8Aqth9HYLXgX5xHuuI0b5V g8fHlbixOa+LSsw5fQf5w7/QMscfdxcL6n9BwwP1cXvH5953/wDR+j+C1qsbHoEU1MqHgxob+RES WVPNlyG5zlP+8b
XgAbBRAIgiR4Knk9G6TlgjIw6Xz32AO/zhBVxJNjOUTcZGJ8DSnk+pf4v8C4F/ T7XY1nZj/fX/AOSH4rjOq9E6l0mzZmVFrSYZa33Vu+Dv4L19Qvx6Mmp1GRW22p4hzHCQQtDl/imf GQMh96Hj830P8VpgDto+KJLqPrR9UX9M3ZuCDZgzL2cupn8rfP71y63sObHmgJ4zYP2g9ixEEGip JJJSoXa1znBrQS5xgAckleo/Vb6vM6Phh9oBzrwDc790cisfDv5rlfqJ0kZnUXZ1rZpw4LJ4Nrvo /wCbz9y9GWH8W5o8X3eB0GuTz6Blxx6qSSVDrPWcTo2J9pyZcXHbVU36T3eA/iVkwhKchCAMpS0A C9vpLiKP8YxNwGRhbaCdSx8vA+BABXZ42TTl49eTjuD6bWhzHDuCpc/K5sFe7DhEtjdj8FCQOyRJ Vuo9Qxum4lmZlO21V+GpcTw1o8SuQP8AjHd62mCPQn/Se+P82EsHKZ8wMsUOIR62Br9UGQG73CSq 9M6li9Uw2ZmK6a36EHRzXDlrh4hWlDKJjIxkKMTRBXLOa17Sx4DmuBDmnUEHsV5j9bfq/wDsfMFt AP2LIJNX8h3ev+5enqj1rplfVem3Yb43PE1OP5tjdWlWuR5o8vlBJ9E9Jjw7/RbKNh8fSRPQu9f7 PtPrb/T2d987dv3pLqLHfx+jA+ofU/CGH0HHkQ+8G9/9v6P/AEYW0h41Qox6qRxUxrB/ZEIi4/NM 5Ms5n9ORl9rYAoAKXEf4xqLicLIAJoaHsJ7B5gj7wF26Hk42Pl0ux8mtttLxDmOEgqTlc/sZoZa4 hG7HgdFSFinxVeo/Uui+n6v44ukby97Gnsxxlv38p6PqX9X6b/WGOXwZax7i5g/snn5rcAAAAEAc BXfiHxDHnxxx44yri4iZfkFkIEGy8v8A4waL7Oj1WVgmum4OtA7Atc0OPzK85XttlbLWOrsaHseC HN
cJBB7ELCP1K+rxv9b7O6Jn0t7tn3TP4o8h8Rx4MXt5Iy0JMTHx7qlAk2Gl/i8ovr6ZkWvBFVtv 6Ke+0Q5w/J8l1ajVVXTW2qpoZWwQ1jRAAHYBSWfzGb3s08tcPGbpeBQpSSSSiS8d+xGf8/PU2/od n22I03fQ/wDPmqS6z7Oz7V9pj3+n6c+W7ckrv36fc/7m9j+1bw/9K0oIIBHB4SVPo2SMvpOHkAzv pZP9YCHfiFcVOcTGUoneJI+xKkkkkEqSSSSUpJJJJSkkkklKSSSSUrySWX+0m/8AOT9mz/2l9T+3 v4/zUlL7E+3+T93/AAUX+dOP/i+6kLsC3p7z+kxnb2D/AIN+v4O/KusXkHROq2dJ6lVmMktadtrB +dW76Q/u8165j305NFeRQ4PqtaHMcO4KufFOXOPOcgHoza/4XUftWwNiuzMkASeFiYv1u6Nk59mC LdjmO212v0rtPfa74+PK2yARB1BXKdc+ouLmOdkdNcMa86uqP804+UfR/Iq3LR5eRlHPKUOIeiQ2 B8Uyvo9WkvNmZv1u+rf6O1rzjt0AsHq0/wBl44+RWjj/AOMd4AGTggnu6uyP+i5p/Kp5fDM/zYjD PDpKEh+1HGOuj3CS41/+MfFA9mFYXeBeAPwBWfk/XzrOWfSwMdlLnaDaDbZ8u34IR+Gc2d4CA7yk K/BXHF7nP6jhdOoORmWtqrHE8uPg0ckqt0Tr2F1ql9mNLH1uh9T43Afmu07FcbifVP6wdavGT1Wx 1LDy+47rI8G19vnC7bpPRsDpFHo4dcE/zlrtXvP8pyGfDy2HGYjJ72e94fJHwSDInag3kznNY0uc Ya0SSeAAnXLfXnrgw8L9m0O/WcofpI5ZV3/zuPvVfBhlmyxxx/SO/YdSkmhbyv7fd/zp/bEn0/W4 /wCB/m4/zEliJLqfu2L93/Jez/gdmCz+NqXUfVH60fsx4wc1x+w2H2POvouPf+qe/wB
65dJHNhhm xnHMWD9oPcKBINh9ta5r2h7CHNcJa4agg9wnXmH1f+tuZ0iKLQcjC/0RPuZ/xZ/gvQemda6b1Wvf h3B7vzqj7bG/FpXN81yOXlySRxw6TG317M0ZAt7nQqnf0bpORrdhUvJ7mts/eBKuJKrGUom4kx8j SXNZ9W+gsMjApnzbP5VeoxcbHEY9LKR4VtDf+pCIknSy5JfNOUv7xJVQUkmc5rGlzyGtGpJMABcv 1z684WG11HTYysnj1P8ABMPx/O+X3p2HBlzS4ccTL8h5lRIG7qdf6/i9FxfUsIfkvB9CidXHxPg0 LyzMzMjOybMrJdvutO5zv4DyCWZmZOdkOycqw23P+k535B4BBXR8lyUeWj+9kl80v2DwYZSvyUkk kri1SSSSSlIlHr+q37Pv9afZ6c758tuqSSB2P7dlPc9E/wCfm1vqbPR0j7b9KP7H6T711mP9q2D7 V6e/v6e6P+kkkuZ575z/ALm3/wAh+1nj9fql+Cy+p/8AOTaf2b9l/wCub9/y/NSSVfB84/m/+q/K k/X6PA9f/wCdO4/tj1vTnT/Q/L0/YsNJJdTy381H+a/6j8n0YDv1+qkkklMhSSSSSn//2Q==" preserveAspectRatio="xMaxYMax meet" width="30" height="60" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/extend-namespace-02-t.png b/test/svg/svg1.2/svg/extend-namespace-02-t.png
new file mode 100644
index 0000000..1d1f555
Binary files /dev/null and b/test/svg/svg1.2/svg/extend-namespace-02-t.png differ
diff --git a/test/svg/svg1.2/svg/extend-namespace-02-t.svg b/test/svg/svg1.2/svg/extend-namespace-02-t.svg
new file mode 100644
index 0000000..3abe7c8
--- /dev/null
+++ b/test/svg/svg1.2/svg/extend-namespace-02-t.svg
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test the use of multiple namespaces." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: extend-namespace-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test mixing a business data namespace with elements in SVG namespace.</p>
+ <p>
+ The test case uses a different namespace to hold fake sales data. Using ECMAScript to make calls to the DOM,
+ the test case extracts the sales data and then makes calls to the SVG DOM to build up a 'path' element and a
+ 'text' element for each individual pie slice.
+ </p>
+ <p>
+ The result should show five pie slices. The first pie slice should be exploded, with a pink fill and a blue border.
+ The other pie slices should have various levels of gray fill and black borders. The name of each region should
+ appear in black towards the center of the pie slice.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: extend-namespace-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+
+ <!-- Note that this is part of the test -->
+ <handler xe:event="SVGLoad">
+ onLoad(evt);
+ </handler>
+
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript">
+ <![CDATA[
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var bd_ns = "http://example.org/ExampleBusinessData";
+
+ function addChildren(elm, ns, name, list)
+ {
+ if(elm.localName == name && elm.namespaceURI == ns)
+ {
+ list.push(elm);
+ }
+
+ var child = elm.firstElementChild;
+ while(child)
+ {
+ addChildren(child, ns, name, list);
+ child = child.nextElementSibling;
+ }
+ }
+
+ function makeArc(dAttribute, steps, startAngle, endAngle)
+ {
+ var angle = startAngle;
+ var angleInc = (endAngle-startAngle) / (steps-1);
+ for(i = 0; i < steps; i++)
+ {
+ dAttribute = dAttribute + "L" + Math.round(240+100*Math.cos(angle));
+ dAttribute = dAttribute + " " + Math.round(170+100*Math.sin(angle));
+ angle+=angleInc;
+ }
+ dAttribute = dAttribute + 'z';
+ return dAttribute;
+ }
+
+ function onLoad(evt)
+ {
+ // Get Document
+ var svgElement = evt.target;
+ var doc = svgElement.ownerDocument;
+
+ var resultsElement = doc.getElementById('results');
+ var gElement = doc.getElementById('PieParent');
+
+ // Count the number of regions.
+ regionCount = 5;
+ RegionNodeList = new Array();
+ RegionNodeList.push( doc.getElementById( "r1" ) );
+ RegionNodeList.push( doc.getElementById( "r2" ) );
+ RegionNodeList.push( doc.getElementById( "r3" ) );
+ RegionNodeList.push( doc.getElementById( "r4" ) );
+ RegionNodeList.push( doc.getElementById( "r5" ) );
+
+ RegionNameNodeList = new Array();
+ RegionNameNodeList.push( RegionNodeList[0].firstElementChild );
+ RegionNameNodeList.push( RegionNodeList[1].firstElementChild );
+ RegionNameNodeList.push( RegionNodeList[2].firstElementChild );
+ RegionNameNodeList.push( RegionNodeList[3].firstElementChild );
+ RegionNameNodeList.push( RegionNodeList[4].firstElementChild );
+
+ RegionResultNodeList = new Array();
+ RegionResultNodeList.push( RegionNodeList[0].firstElementChild.nextElementSibling );
+ RegionResultNodeList.push( RegionNodeList[1].firstElementChild.nextElementSibling );
+ RegionResultNodeList.push( RegionNodeList[2].firstElementChild.nextElementSibling );
+ RegionResultNodeList.push( RegionNodeList[3].firstElementChild.nextElementSibling );
+ RegionResultNodeList.push( RegionNodeList[4].firstElementChild.nextElementSibling );
+
+ // Get the sum of the values of the regions.
+ var total = 0;
+ for (regionIndex = 0; regionIndex< regionCount; regionIndex++)
+ {
+ total = total + Number(RegionResultNodeList[regionIndex].textContent);
+ }
+
+ // Build a pie chart.
+ var startAngle = 0;
+ for (regionIndex = 0; regionIndex< regionCount; regionIndex++)
+ {
+ regionName = RegionNameNodeList[regionIndex].textContent;
+ regionResult = Number(RegionResultNodeList[regionIndex].textContent);
+ // Build the pie slice.
+ textElement = doc.createElementNS(svg_ns, "text");
+ textElement.textContent = regionName;
+ pathElement = doc.createElementNS(svg_ns, "path");
+ endAngle = startAngle - regionResult * Math.PI * 2 / total;
+ dAttribute = "M240,170";
+ gray = Math.round(Number(255 * (regionIndex+2)) / (regionCount+2));
+ midAngle = (startAngle + endAngle) / 2;
+ textElement.setAttributeNS(null, "x", Math.round(240+65*Math.cos(midAngle)));
+ textElement.setAttributeNS(null, "y", Math.round(170+65*Math.sin(midAngle)));
+
+ dAttribute = makeArc(dAttribute, 10, startAngle, endAngle);
+
+ pathElement.setAttributeNS(null, "d", dAttribute);
+ pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")");
+ pathElement.setAttributeNS(null, "stroke", "black");
+ pathElement.setAttributeNS(null, "stroke-width", "2");
+ // Temporary, for CSS styling.
+ pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")");
+ pathElement.setAttributeNS(null, "stroke", "black");
+ pathElement.setAttributeNS(null, "stroke-width", "2");
+ if (regionIndex == 0)
+ {
+ var firstSliceOffset = 30;
+ var transformValue = "translate(" +
+ Math.round(firstSliceOffset * Math.cos(midAngle)) +
+ "," +
+ Math.round(firstSliceOffset * Math.sin(midAngle)) +
+ ")";
+ pathElement.setAttributeNS(null, "transform", transformValue);
+ textElement.setAttributeNS(null, "transform", transformValue);
+ pathElement.setAttributeNS(null, "fill", "#FF6666");
+ pathElement.setAttributeNS(null, "stroke", "#0000FF");
+ pathElement.setAttributeNS(null, "stroke-width", "3");
+ // Temporary, for CSS styling.
+ pathElement.setAttributeNS(null, "fill", "#FF8888");
+ pathElement.setAttributeNS(null, "stroke", "#0000FF");
+ pathElement.setAttributeNS(null, "stroke-width", "3");
+ }
+ gElement.appendChild(pathElement);
+ gElement.appendChild(textElement);
+ startAngle = endAngle;
+ }
+ }
+ ]]>
+ </script>
+ </defs>
+ <g xmlns:bd="http://example.org/ExampleBusinessData">
+ <bd:Results xml:id="results">
+ <bd:Region xml:id="r1">
+ <bd:RegionName>East</bd:RegionName>
+ <bd:RegionResult>3</bd:RegionResult>
+ </bd:Region>
+ <bd:Region xml:id="r2">
+ <bd:RegionName>North</bd:RegionName>
+ <bd:RegionResult>4</bd:RegionResult>
+ </bd:Region>
+ <bd:Region xml:id="r3">
+ <bd:RegionName>West</bd:RegionName>
+ <bd:RegionResult>5</bd:RegionResult>
+ </bd:Region>
+ <bd:Region xml:id="r4">
+ <bd:RegionName>Central</bd:RegionName>
+ <bd:RegionResult>3.2</bd:RegionResult>
+ </bd:Region>
+ <bd:Region xml:id="r5">
+ <bd:RegionName>South</bd:RegionName>
+ <bd:RegionResult>6</bd:RegionResult>
+ </bd:Region>
+ </bd:Results>
+ <text font-size="16" text-anchor="middle" x="240" y="30"> Pie chart built from data in a different namespace. </text>
+ </g>
+ <g xml:id="PieParent" font-family="Arial" text-anchor="middle" font-size="14">
+ <desc>Pie chart is built within this 'g' element</desc>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-desc-02-t.png b/test/svg/svg1.2/svg/fonts-desc-02-t.png
new file mode 100644
index 0000000..d817787
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-desc-02-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-desc-02-t.svg b/test/svg/svg1.2/svg/fonts-desc-02-t.svg
new file mode 100644
index 0000000..0bbd867
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-desc-02-t.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="CN" desc="Test the CSS2 font-maching algorithm against a set of SVG fonts."
+ status="accepted"
+ approved="yes" version="$Revision: 1.6 $" testname="$RCSfile: fonts-desc-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests the behaviour of CSS font matching based on font-variant attribute.</p>
+ <p>The first line of text should be 'square' 'triangle'. The small-caps font should match the second text element.</p>
+ <p>The second line of text should be 'square' 'triangle'. The second line is used to ensure that the order of font specification does not effect the selection of these fonts.</p>
+ <p>The third line of text should be 'square', 'diamond', 'square', 'diamond'. This shows that the correct font is selected when a font in the list does not support the variant required. Note that the fonts provide no x-height so scaling (allowed by CSS) cannot be used to simulate a small cap from a regular font.</p>
+ <p>The last line of test can be 'square', 'a', 'a' (from a fallback font), 'diamond'. The first 'a' can be replaced with a smallcaps 'A', if there is a smallcaps font installed or if synthesis is supported.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-desc-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z" />
+ </font>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-variant="small-caps" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z" />
+ </font>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" font-variant="small-caps" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z" />
+ </font>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z" />
+ </font>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont4" font-variant="normal" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z" />
+ </font>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont5" font-variant="small-caps" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="diamond" d="M0 500L250 250L500 500L250 750Z" />
+ </font>
+ </defs>
+ <g font-size="30">
+ <!-- This should produce a square followed by a triangle -->
+ <text x="50" y="50" font-family="SVGFont1">a</text>
+ <text x="100" y="50" font-family="SVGFont1" font-variant="small-caps">a</text>
+ <!-- This should produce a square followed by a triangle -->
+ <text x="50" y="100" font-family="SVGFont2">a</text>
+ <text x="100" y="100" font-family="SVGFont2" font-variant="small-caps">a</text>
+ <!-- This should produce a square, diamond, square, diamond. -->
+ <text x="50" y="150" font-family="SVGFont5,SVGFont4" font-variant="normal">a</text>
+ <text x="100" y="150" font-family="SVGFont5,SVGFont4" font-variant="small-caps">a</text>
+ <text x="150" y="150" font-family="SVGFont4,SVGFont5" font-variant="normal">a</text>
+ <text x="200" y="150" font-family="SVGFont4,SVGFont5" font-variant="small-caps">a</text>
+ <!-- This should produce a square, 'a', 'a', diamond. Or a small-caps version of the 'A' instead of the first lower-case 'a' if synethesis is supported -->
+ <text x="50" y="200" font-family="SVGFont4" font-variant="normal">a</text>
+ <text x="100" y="200" font-family="SVGFont4" font-variant="small-caps">a</text>
+ <text x="150" y="200" font-family="SVGFont5" font-variant="normal">a</text>
+ <text x="200" y="200" font-family="SVGFont5" font-variant="small-caps">a</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-elem-01-t.png b/test/svg/svg1.2/svg/fonts-elem-01-t.png
new file mode 100644
index 0000000..7662280
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-elem-01-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-elem-01-t.svg b/test/svg/svg1.2/svg/fonts-elem-01-t.svg
new file mode 100644
index 0000000..29fe2a0
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-elem-01-t.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="Dean Jackson" desc="Basic test of embedded fonts using glyph outlines"
+ status="accepted"
+ approved="yes" version="$Revision: 1.8 $" testname="$RCSfile: fonts-elem-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This is a basic test for embedded SVG fonts. The font "Comic Sans" (available from Microsoft) has been converted into an SVG font and embedded in the SVG file. The test contains two text areas, each with the character string "AyÖ@ç" drawn at the same font size.</p>
+ <p>The upper area contains the glyphs from the embedded font placed in the SVG file as path elements. Each glyph is placed at the location it would be if rendered using normal text rendering (ie. the horizontal advance between characters has been preserved).</p>
+ <p>The lower area contains the text string rendered using the embedded SVG font. It should appear exactly the same as the upper text area, ie. font size, character baseline and horizontal advance should be the same.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-elem-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComic" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0" />
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z" />
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z" />
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z" />
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z" />
+ <glyph unicode="Ã?" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z" />
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z" />
+ </font>
+ </defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <text fill="black" stroke="none" font-size="35" x="56" y="35">Basic SVG font element</text>
+ <!-- ====================================================================== -->
+ <!-- First place the glyphs by hand -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none">
+ <text x="30" y="130" font-size="18">Placed Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888" />
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <line x1="0" y1="-3500" x2="0" y2="2000" stroke-width="50" stroke="#888888" />
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z" />
+ <!-- lowercase y -->
+ <line x1="1498" y1="-3500" x2="1498" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z" />
+ <!-- unicode 00D6 -->
+ <line x1="2564" y1="-3500" x2="2564" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z" />
+ <!-- @ sign -->
+ <line x1="4199" y1="-3500" x2="4199" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z" />
+ <!-- unicode 00E7 -->
+ <line x1="6106" y1="-3500" x2="6106" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z" />
+ <line x1="7158" y1="-3500" x2="7158" y2="2000" stroke-width="50" stroke="#888888" />
+ </g>
+ </g>
+ </g>
+ <text x="65" y="210" font-size="18">SVG Font</text>
+ <g transform="translate(165, 220)" font-family="TestComic" font-size="60" fill="black" stroke="none">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888" />
+ <text>Ay� ç</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-elem-02-t.png b/test/svg/svg1.2/svg/fonts-elem-02-t.png
new file mode 100644
index 0000000..6b1beda
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-elem-02-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-elem-02-t.svg b/test/svg/svg1.2/svg/fonts-elem-02-t.svg
new file mode 100644
index 0000000..84ae669
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-elem-02-t.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="Dean Jackson" desc="Basic test of embedded fonts using glyph outlines" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: fonts-elem-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This is an accuracy test for embedded SVG fonts. The font "Comic Sans" (available from Microsoft) has been converted into an SVG font and embedded in the SVG file. The test contains two text areas, each with the character string "AyÖ@ç" drawn at the same font size.</p>
+ <p>The upper area has the placed glyphs as path elements filled with white over a solid black background (creating a white cutout). The embedded SVG font text is then drawn over the cutout. An implementation that passes this test should completely fill the cutout, leaving a solid black area (some slight antialiasing effects may remain).</p>
+ <p>The lower area is the reverse of the upper area, with the placed black glyphs filling the cutout created by white SVG font text. An implementation that passes this test should completely fill the cutout, leaving a solid black area (some slight antialiasing effects may remain).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-elem-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComic" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0" />
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z" />
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z" />
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z" />
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z" />
+ <glyph unicode="Ã?" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z" />
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z" />
+ </font>
+ </defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <text fill="black" stroke="none" font-size="35" x="28" y="35">SVG font element accuracy</text>
+ <rect x="165" y="80" width="220" height="165" fill="black" />
+ <text x="7" y="130" font-size="18">SVG over Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)" fill="white">
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z" />
+ <!-- lowercase y -->
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z" />
+ <!-- unicode 00D6 -->
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z" />
+ <!-- @ sign -->
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z" />
+ <!-- unicode 00E7 -->
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z" />
+ </g>
+ </g>
+ <g transform="translate(165, 140)" font-family="TestComic" font-size="60" fill="black" stroke="none">
+ <text>Ay� ç</text>
+ </g>
+ <text x="7" y="210" font-size="18">Glyphs over SVG</text>
+ <g transform="translate(165, 210)" font-family="TestComic" font-size="60" fill="white" stroke="none">
+ <text>Ay� ç</text>
+ </g>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,210) scale(1, -1)" fill="black">
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z" />
+ <!-- lowercase y -->
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z" />
+ <!-- unicode 00D6 -->
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z" />
+ <!-- @ sign -->
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z" />
+ <!-- unicode 00E7 -->
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-elem-03-t.png b/test/svg/svg1.2/svg/fonts-elem-03-t.png
new file mode 100644
index 0000000..bb1ceda
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-elem-03-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-elem-03-t.svg b/test/svg/svg1.2/svg/fonts-elem-03-t.svg
new file mode 100644
index 0000000..b535be1
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-elem-03-t.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="Dean Jackson" desc="Basic test of external embedded fonts with font-face-src"
+ status="accepted"
+ approved="yes" version="$Revision: 1.7 $" testname="$RCSfile: fonts-elem-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This is a basic test for external SVG fonts. The font "Comic Sans" (available from Microsoft) has been converted into an SVG font and placed in an external SVG file referenced by a font-face-src element. The test contains two text areas, each with the character string "AyÖ@ç" drawn at the same font size.</p>
+ <p>The upper area contains the glyphs from the font placed in the SVG file as path elements. Each glyph is placed at the location it would be if rendered using normal text rendering (ie. the horizontal advance between characters has been preserved).</p>
+ <p>The lower area contains the text string rendered using the external SVG font. It should appear exactly the same as the upper text area, ie. font size, character baseline and horizontal advance should be the same.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-elem-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <!--style type="text/css"> <![CDATA[ @font-face { font-family: 'TestComic'; font-weight: normal; font-style: normal; src: url("../images/ext-TestComic.svg#Font") format(svg) } ]]> </style-->
+ <font-face font-family="TestComic">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/ext-TestComic.svg#Font" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <text fill="black" stroke="none" font-size="30" x="26" y="35">External SVG font element (xml)</text>
+ <!-- ====================================================================== -->
+ <!-- First place the glyphs by hand -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none">
+ <text x="31" y="130" font-size="18">Placed Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888" />
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <line x1="0" y1="-3500" x2="0" y2="2000" stroke-width="50" stroke="#888888" />
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z" />
+ <!-- lowercase y -->
+ <line x1="1498" y1="-3500" x2="1498" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z" />
+ <!-- unicode 00D6 -->
+ <line x1="2564" y1="-3500" x2="2564" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z" />
+ <!-- @ sign -->
+ <line x1="4199" y1="-3500" x2="4199" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z" />
+ <!-- unicode 00E7 -->
+ <line x1="6106" y1="-3500" x2="6106" y2="2000" stroke-width="50" stroke="#888888" />
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z" />
+ <line x1="7158" y1="-3500" x2="7158" y2="2000" stroke-width="50" stroke="#888888" />
+ </g>
+ </g>
+ </g>
+ <text x="67" y="210" font-size="18">SVG Font</text>
+ <g transform="translate(165, 220)" font-family="TestComic" font-size="60" fill="black" stroke="none">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888" />
+ <text>Ay� ç</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-elem-06-t.png b/test/svg/svg1.2/svg/fonts-elem-06-t.png
new file mode 100644
index 0000000..0aea0f7
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-elem-06-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-elem-06-t.svg b/test/svg/svg1.2/svg/fonts-elem-06-t.svg
new file mode 100644
index 0000000..e19a228
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-elem-06-t.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="validates that the font element's horiz-adv-x is used" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: fonts-elem-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates that the font element's horiz-adv-x is used as the default glyph's advance when there is no glyph advance specified. All fonts have a units-per-em of 1000.</p>
+ <p>The first row shows a layout with a default adavance of 1000. Glyphs have no advance so the 1000 default should be used.</p>
+ <p>The second row shows a layout with a default adavance of 2000. Glyphs have no advance so the 2000 default should be used.</p>
+ <p>The last row shows a layout with a default adavance of 0. Glyphs have a specified advance so the 0 default should be ignored.</p>
+ <p>Reference blue markers show the expected glyph positions.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-elem-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="advance1000" horiz-adv-x="1000">
+ <font-face font-family="advance1000" units-per-em="1000" ascent="1000" descent="0" alphabetic="0" />
+ <missing-glyph d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z" />
+ <glyph unicode="1" glyph-name="gl_1" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ </font>
+ <font xml:id="advance2000" horiz-adv-x="2000">
+ <font-face font-family="advance2000" units-per-em="1000" ascent="1000" descent="0" alphabetic="0" />
+ <missing-glyph d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z" />
+ <glyph unicode="1" glyph-name="gl_1" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ </font>
+ <font xml:id="advanceIgnored" horiz-adv-x="0">
+ <font-face font-family="advanceIgnored" units-per-em="1000" ascent="1000" descent="0" alphabetic="0" />
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="3000" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="3000" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ </font>
+ <g xml:id="marker">
+ <line y2="-20" stroke="red" />
+ <rect x="-4" y="-4" width="8" height="8" fill="#8888ff" />
+ </g>
+ </defs>
+ <text x="240" y="50" text-anchor="middle" font-size="30"><font> horiz-adv-x</text>
+ <g transform="translate(20, 120)" font-size="14">
+ <g>
+ <text>horiz-adv-x=1000</text>
+ <use xlink:href="#marker" x="240" />
+ <use xlink:href="#marker" x="270" />
+ <text x="240" font-family="advance1000" font-size="30">12</text>
+ </g>
+ <g transform="translate(0, 40)">
+ <text>horiz-adv-x=2000</text>
+ <use xlink:href="#marker" x="240" />
+ <use xlink:href="#marker" x="300" />
+ <text x="240" font-family="advance2000" font-size="30">12</text>
+ </g>
+ <g transform="translate(0, 80)">
+ <text>horiz-adv-x=1000 but ignored</text>
+ <use xlink:href="#marker" x="240" />
+ <use xlink:href="#marker" x="330" />
+ <text x="240" font-family="advanceIgnored" font-size="30">12</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-glyph-02-t.png b/test/svg/svg1.2/svg/fonts-glyph-02-t.png
new file mode 100644
index 0000000..8ca7893
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-glyph-02-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-glyph-02-t.svg b/test/svg/svg1.2/svg/fonts-glyph-02-t.svg
new file mode 100644
index 0000000..c1213b1
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-glyph-02-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test on arabic-form" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: fonts-glyph-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The first subtest tests the arabic-form attribute and should produce a 'downward triangle', a 'space', a 'square', a 'diamond' and then an 'upward triangle' in this order. Remembering that arabic text is right to left.</p>
+ <p>The second subtest is the same, but with glyphs for the letter khah. It should match the reference image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-glyph-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="300">
+ <font-face font-family="SVGFont" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="300" />
+ <glyph unicode="Ú?" glyph-name="downward-triangle" horiz-adv-x="500" arabic-form="isolated" d="M0 900L500 900L250 0Z" />
+ <glyph unicode="Ú?" glyph-name="square" horiz-adv-x="500" arabic-form="initial" d="M0 250L500 250L500 750L0 750Z" />
+ <glyph unicode="Ú?" glyph-name="diamond" horiz-adv-x="500" arabic-form="medial" d="M0 500L250 250L500 500L250 750Z" />
+ <glyph unicode="Ú?" glyph-name="upward-triangle" horiz-adv-x="500" arabic-form="terminal" d="M0 0L500 0L250 900Z" />
+ </font>
+ <font horiz-adv-x="573">
+ <font-face font-family="SVGAr" units-per-em="1000" panose-1="5 1 1 1 1 1 1 1 1 1" ascent="1025" descent="-399" alphabetic="0" />
+ <missing-glyph horiz-adv-x="500" d="M31 0V800H469V0H31ZM438 31V769H62V31H438Z" />
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="370" />
+ <glyph unicode="Ø®" glyph-name="khah-isolated" arabic-form="isolated" horiz-adv-x="562" d="M309 360Q309 353 297 335T271 317Q260 317 227 337T194 370Q194 380 205 397T232 415Q246 415 277 395T309 360ZM518 -265Q516 -269 509 -275Q507 -277 502 -281Q447 -319 424 -330Q356 -363 281 -363Q228 -363 186 -347T110 -294Q69 -249 54 -199Q44 -167 44 -127Q44 -96 50 -65T76 12Q88 39 110 70Q152 127 152 137Q152 151 148 156T121 161Q95 161 85 156Q72 146 62 140Q44 128 35 130Q35 138 35 146Q37 151 43 162Q77 208 98 219T159 231Q170 231 234 221Q255 218 298 210H340Q347 210 382 218T425 230T435 235Q446 239 449 234Q454 226 444 189T426 152Q418 152 393 154T360 156Q327 156 297 149T228 120Q180 93 142 36Q96 -33 96 -110Q96 -209 168 -257Q223 -294 300 -294Q343 -294 371 -291Q429 -285 489 -267Q506 -260 511 -260Q514 -262 518 -265Z" />
+ <glyph unicode="Ø®" glyph-name="khah-initial" arabic-form="initial" horiz-adv-x="728" d="M297 372Q297 365 285 347T259 329Q248 329 215 349T182 382Q182 392 193 409T220 427Q234 427 265 407T297 372ZM600 0H0V68H373Q396 68 396 86Q396 89 394 95Q377 137 347 159Q308 188 243 188Q210 188 183 171Q165 160 157 158T145 156Q138 156 138 164L140 174Q145 196 191 220Q228 240 269 240Q313 240 355 221T447 160Q488 120 530 81Q543 73 563 71T609 68Q619 68 620 68T625 68Q645 68 645 46Q645 30 633 15T600 0Z" />
+ <glyph unicode="Ø®" glyph-name="khah-medial" arabic-form="medial" horiz-adv-x="625" d="M296 376Q296 369 284 351T258 333Q247 333 214 353T181 386Q181 396 192 413T219 431Q233 431 264 411T296 376ZM625 0H0V68H373Q396 68 396 86Q396 89 394 95Q377 137 347 159Q308 188 243 188Q210 188 183 171Q165 160 157 158T145 156Q138 156 138 164L140 174Q145 196 191 220Q228 240 269 240Q313 240 355 221T447 160Q488 120 530 81Q543 73 563 71T609 68Q619 68 620 68T625 68V0Z" />
+ <glyph unicode="Ø®" glyph-name="khah-terminal" arabic-form="terminal" horiz-adv-x="514" d="M296 352Q296 345 284 327T258 309Q247 309 214 329T181 362Q181 372 192 389T219 407Q233 407 264 387T296 352ZM514 0H375Q313 0 298 64T261 128Q209 128 153 62Q91 -12 91 -101Q91 -199 162 -243Q220 -279 319 -279Q367 -279 390 -276T463 -259Q466 -258 475 -255T488 -252Q490 -252 491 -254T489 -263Q484 -272 466 -286T433 -307Q408 -320 401 -323Q349 -344 277 -344Q169 -344 104 -274Q44 -210 44 -118Q44 -88 51 -53T73 14Q80 31 97 56Q132 108 132 118Q132 127 126 134T110 141Q92 141 85 137Q72 127 59 117Q49 112 44 112Q38 112 38 119Q38 122 40 128Q49 156 80 182Q116 212 157 212Q170 212 188 208Q232 198 258 198H320Q345 198 357 201Q374 207 383 209T398 214T412 216Q420 216 421 212Q424 202 414 170T396 137Q394 137 382 140T362 143Q346 143 337 135T327 104Q327 91 341 80T379 68H514V0Z" />
+ </font>
+ </defs>
+ <g font-family="SVGFont" font-size="80">
+ <!-- This should produce 'downward triangle' 'space' 'square' 'diamond' 'upward-triangle' -->
+ <text x="100" y="100">Ú? Ú?Ú?Ú?</text>
+ </g>
+ <g font-family="SVGAr" font-size="80">
+ <!-- this should produce isolated khah, followed by initial,medial and terminal khah -->
+ <text x="100" y="200">خ خخخ</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-glyph-03-t.png b/test/svg/svg1.2/svg/fonts-glyph-03-t.png
new file mode 100644
index 0000000..b70b0ea
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-glyph-03-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-glyph-03-t.svg b/test/svg/svg1.2/svg/fonts-glyph-03-t.svg
new file mode 100644
index 0000000..e97e52f
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-glyph-03-t.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test on the lang attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: fonts-glyph-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This files tests the lang attribute support of the glyph element. The test should produce an upward-triangle for the first (en) test element and a square for the second (fr) and third
+ (fr-ca) text element. In the third case, a glyph for fr is also suitable for a more specific language text fr-ca. In the fourth case, no suitable language specific or general glyph is
+ provided by the test so a fallback font for the letter 'a' should be used. A triangle or square must not be displayed in the fourth case.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-glyph-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="upward-triangle" lang="en" d="M0 0L500 0L250 900Z" />
+ <glyph unicode="a" glyph-name="square" lang="fr" d="M0 250L500 250L500 750L0 750Z" />
+ </font>
+ </defs>
+ <g font-family="SVGFont" font-size="50">
+ <!-- Should produce an upward pointing triangle -->
+ <text x="50" y="50" xml:lang="en">a</text>
+ <!-- Should produce a square -->
+ <text x="50" y="120" xml:lang="fr">a</text>
+ <!-- Should also produce a square -->
+ <text x="50" y="190" xml:lang="fr-ca">a</text>
+ <!-- Should fall back to another font -->
+ <text x="50" y="260" xml:lang="de">a</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-glyph-04-t.png b/test/svg/svg1.2/svg/fonts-glyph-04-t.png
new file mode 100644
index 0000000..2e5d26b
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-glyph-04-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-glyph-04-t.svg b/test/svg/svg1.2/svg/fonts-glyph-04-t.svg
new file mode 100644
index 0000000..45df4fd
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-glyph-04-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="CL" owner="CN" desc="Test the glyph selection rules" status="accepted" approved="yes" version="$Revision: 1.6 $" testname="$RCSfile: fonts-glyph-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests that glyph selection is done in the order in the definition of the font element. The first line of text should be represented by two triangles and an 'l'. The second line should be represented by a square.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-glyph-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <glyph unicode="f" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z" />
+ <glyph unicode="ffl" glyph-name="square" d="M0 250L500 250L500 750L0 750Z" />
+ </font>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200" />
+ <glyph unicode="ffl" glyph-name="square 2" d="M0 250L500 250L500 750L0 750Z" />
+ <glyph unicode="f" glyph-name="upward-triangle 2" d="M0 0L500 0L250 900Z" />
+ </font>
+ </defs>
+ <text x="100" y="100" font-size="50" font-family="SVGFont1">ffl</text>
+ <text x="100" y="200" font-size="50" font-family="SVGFont2">ffl</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-glyph-201-t.png b/test/svg/svg1.2/svg/fonts-glyph-201-t.png
new file mode 100644
index 0000000..a0ba093
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-glyph-201-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-glyph-201-t.svg b/test/svg/svg1.2/svg/fonts-glyph-201-t.svg
new file mode 100644
index 0000000..4be73c3
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-glyph-201-t.svg
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="CL" desc="ligature matching in document order" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: fonts-glyph-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test that ligatures are always used, and only used, when they occur before the
+ glyphs for characters they are ligatures of. The word "fjord" is displayed twice;
+ the top one must use the fj ligature and the bottom one must not; the top of the letter f overlaps the
+ dot of the letter i..
+ </p>
+ <p>
+ Two fonts are defined, almost identical; in one the fj ligature is the
+ first glyph defined, in the second one it is the last glyph.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-glyph-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="Fjord-BoldOblique-nolig" horiz-adv-x="312" >
+ <font-face
+ font-family="Fjord-nl"
+ font-weight="700"
+ font-style="oblique"
+ font-stretch="normal"
+ units-per-em="1000"
+ panose-1="2 0 8 3 0 0 0 0 0 0"
+ ascent="800"
+ descent="-200"
+ x-height="447"
+ cap-height="-1e+10"
+ bbox="-92 -234 639 726.333"
+ underline-thickness="50"
+ underline-position="-100"
+ slope="-9.8"
+ unicode-range="U+0064-U+0072"
+ />
+ <missing-glyph horiz-adv-x="432"
+ d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+ <glyph glyph-name="f" unicode="f"
+ d="M171 429c3.33299 25.333 7.66701 48.333 13 69l11 46c20.667 62.667 53 109 97 139c8.66699 6.66699 21.667 13.667 39 21c28.667 12 62.333 19 101 21c33.333 2 62 -0.666992 86 -8h1c16 -5.33301 30 -12.667 42 -22c6.66699 -4 11.333 -8.66699 14 -14
+ c1.33301 -2 1.66699 -9 1 -21v-1l-2 -48c-2.66699 -10.667 -6 -19 -10 -25c-15.333 -22.667 -37 -32 -65 -28c-12 2 -22.333 6.33301 -31 13c-6.66699 5.33301 -12 11.667 -16 19c-9.33301 15.333 -11.333 32.333 -6 51c1.33301 4.66699 3.33301 9.66699 6 15l3 10
+ c-0.666992 2.66699 -3.66699 5.66699 -9 9c-6.66699 5.33301 -14.667 9.66699 -24 13l-11 3c-3.33301 0 -9.66699 -3.66699 -19 -11c-12.667 -9.33301 -25.333 -22.667 -38 -40c-22.667 -31.333 -39.333 -67.667 -50 -109l-6 -38l-11 -64h116l-6 -18l-5 -8l-10 -2h-20h-80
+ l-14 -83l-27 -157l-12 -70l-5 -33v-1c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.6667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39z" />
+ <glyph glyph-name="j" unicode="j"
+ d="M248 644c4.66701 1.33301 11.333 1.33301 20 0c14 -3.33301 25 -10 33 -20c15.333 -18.667 17.667 -39.333 7 -62v-2v0c-4.66699 -8.66699 -10.667 -15.667 -18 -21c-6.66699 -4.66699 -14.667 -7.66699 -24 -9h-1c-22 -4.66699 -39.667 1.66699 -53 19l-1 1
+ c-15.333 19.333 -17.667 40.333 -7 63l1 1c3.33299 8 8.33299 14.333 15 19c8.66701 6 18 9.66699 28 11zM82 385l4 18l14 3l32 4l92 21l29 10l17 5l20 1l-59 -343l-12 -73c-8 -46 -18.333 -79.3333 -31 -100c-38.667 -66.667 -108 -116 -208 -148
+ c-24 -7.33299 -48 -13 -72 -17l3 20c19.3333 4 37.6667 10.333 55 19c55.3333 28 95 76.667 119 146l5 16c4.6667 15.3333 11.667 53 21 113l22 124l17 103l5 28c1.33299 12 1.66701 19.667 1 23c-8 25.333 -32 34.333 -72 27h-2z" />
+ <glyph glyph-name="o" unicode="o" horiz-adv-x="554"
+ d="M346 447c15.333 0.666992 32 0 50 -2c42 -3.33301 75.333 -16 100 -38c20.667 -16.667 36 -40.333 46 -71c15.333 -46 15.667 -95.333 1 -148l-2 -6c-20.667 -69.333 -58.333 -121.667 -113 -157l-22 -12c-29.333 -14.6667 -66 -24.3333 -110 -29
+ c-58 -4.6667 -105 2.6667 -141 22c-8 4 -17 10.3333 -27 19c-45.3333 41.3333 -62.6667 101 -52 179c2.6667 19.333 7.3333 38.333 14 57l20 44c34 65.333 84.333 108 151 128c19.333 5.33301 47.667 10 85 14zM341 416c-6 0 -14 -3.33301 -24 -10
+ c-21.333 -12 -39.333 -26.667 -54 -44c-46.667 -52.667 -71 -113 -73 -181c-0.667007 -25.333 2.33299 -49.667 9 -73c11.333 -35.3333 29.333 -61.6667 54 -79c15.333 -10 26 -15 32 -15c4.66699 0 13 3.3333 25 10c21.333 12 39.333 26.6667 54 44
+ c46.667 52 71 112.333 73 181c0.666992 24.667 -2 48.333 -8 71c-11.333 36 -29.667 63 -55 81c-12 9.33301 -23 14.333 -33 15z" />
+ <glyph glyph-name="r" unicode="r" horiz-adv-x="445"
+ d="M318 422c-1.33301 5.33301 2 9.66699 10 13c8.66699 4.66699 23.333 8.33301 44 11c67.333 9.33301 110 -2.66699 128 -36l7 -19c2 -9.33301 2.66699 -18 2 -26c-1.33301 -8.66699 -10 -15.667 -26 -21c-20 -5.33301 -39.667 -8 -59 -8c-11.333 0 -19.667 1 -25 3
+ c-5.33301 1.33301 -7.33301 8 -6 20v3c-1.33301 17.333 -7.33301 31.333 -18 42c-6 6 -11.333 9 -16 9c-4.66699 -0.666992 -12.333 -5.33301 -23 -14c-17.333 -14 -32.333 -33.333 -45 -58c-12.667 -25.333 -22.333 -50.333 -29 -75
+ c-4.66699 -16.667 -12.667 -58.333 -24 -125l-10 -56l-4 -28c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c26.6667 0 47 9.6667 61 29l2 4c1.333 1.3333 3.667 9.3333 7 24l7 43l26 149l10 60c2.66701 15.333 2.33299 26.333 -1 33
+ c-8 16 -24.667 24 -50 24l-21 -2l4 18l12 3h1l33 4c30 4.66699 60.333 11.667 91 21l30 10l17 5l20 1l-12 -72h1c8.66699 18.667 21.667 34 39 46v1zM278 375h-1h1z" />
+ <glyph glyph-name="d" unicode="d" horiz-adv-x="562"
+ d="M380 666l50 5l81 19l31 10l22 7l20 1l-10 -60l-21 -123l-58 -339l-15 -91l-4 -23c-1.33301 -10 -1.66699 -16.3333 -1 -19c5.33301 -19.3333 22 -30 50 -32h1h1l-3 -20h-147l1 86h-1c-3.33301 -11.3333 -9.66699 -23.3333 -19 -36c-18.667 -29.3333 -41 -49 -67 -59
+ c-11.333 -4 -26 -6.6667 -44 -8c-14 -1.3333 -28 -1.3333 -42 0c-37.333 3.3333 -66 14.6667 -86 34c-26 25.3333 -41 63.6667 -45 115c-6 72 11.3333 139.667 52 203l2 3c20 30.667 43.333 54 70 70c30 18 65 29.667 105 35c23.333 2.66699 41 0.333008 53 -7
+ c22 -14 30.667 -35.333 26 -64l-1 -6l-8 -19c-3.33301 -3.33301 -5.33301 -5 -6 -5l-8 4l-14 10c6.66699 10 10 18.333 10 25v1c0 16 -6.66699 26.667 -20 32c-5.33301 2 -11 2.33301 -17 1c-4 -0.666992 -11 -4.33301 -21 -11c-14 -10.667 -27.333 -23.667 -40 -39
+ c-39.333 -50 -61 -109 -65 -177c-2 -29.333 0 -55.667 6 -79c8.66701 -36.6667 24.333 -63 47 -79c13.333 -10 23.667 -14.6667 31 -14c6 0.6667 15 5.3333 27 14c13.333 10.6667 26.333 27 39 49c14 24 25 54.333 33 91l22 119l31 180l16 98l5 28l1 19
+ c-3.33301 19.333 -18.667 30.333 -46 33h-6l-21 -2z" />
+ <glyph glyph-name="fjlig" unicode="fj" horiz-adv-x="624"
+ d="M639 633v-23c-5.33331 -25.3333 -20.3333 -41.6667 -45 -49c-18.6667 -6 -36.3333 -4.33331 -53 5c-8.66669 4.66669 -15 10 -19 16c-6 6.66669 -10 15 -12 25c-2 11.3333 -2.33334 21 -1 29c2 9.33331 6.66669 19 14 29c-26.6667 14 -45.6667 22.3333 -57 25
+ c-10 2.66669 -17.6667 3.66669 -23 3c-4.66666 0 -12.3333 -3 -23 -9c-15.3333 -8.66669 -30.6667 -20.3333 -46 -35c-33.3333 -33.3333 -56 -71 -68 -113l-9 -45l-10 -62h312l-23 -137l-34 -201l-11 -64l-9 -46c-4 -12.6667 -11.6667 -26.3333 -23 -41l-1 -2
+ c-17.3333 -22 -45 -44 -83 -66l-102 -57c-15.3333 -10 -29 -20.3333 -41 -31h-1c-5.33334 5.33333 -8.33334 9.66667 -9 13v1c0 1.33333 2.33334 4.33333 7 9l22 19c40.6667 36.6667 69.6667 69 87 97c12 19.3333 20.3333 36 25 50c4 12.6667 8 32.3333 12 59l13 76l35 203
+ l15 90h-196l-15 -87l-24 -142l-13 -77l-6 -34v-4c1.33333 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.66667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39c7.33333 62.6667 21.6667 113 43 151c12.6667 21.3333 25.6667 39.3333 39 54
+ c54.6667 58.6667 130 89.3333 226 92c13.3333 0.666687 27 0.333313 41 -1c34 -2 64.6667 -10.3333 92 -25c10 -4 17.6667 -16.6667 23 -38c2.66669 -9.33331 4 -19 4 -29z" />
+ </font>
+ <font xml:id="Fjord-BoldOblique-lig" horiz-adv-x="312" >
+ <font-face
+ font-family="Fjord-wl"
+ font-weight="700"
+ font-style="oblique"
+ font-stretch="normal"
+ units-per-em="1000"
+ panose-1="2 0 8 3 0 0 0 0 0 0"
+ ascent="800"
+ descent="-200"
+ x-height="447"
+ cap-height="-1e+10"
+ bbox="-92 -234 639 726.333"
+ underline-thickness="50"
+ underline-position="-100"
+ slope="-9.8"
+ unicode-range="U+0064-U+0072"
+ />
+ <missing-glyph horiz-adv-x="432"
+ d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+ <glyph glyph-name="fjlig" unicode="fj" horiz-adv-x="624"
+ d="M639 633v-23c-5.33331 -25.3333 -20.3333 -41.6667 -45 -49c-18.6667 -6 -36.3333 -4.33331 -53 5c-8.66669 4.66669 -15 10 -19 16c-6 6.66669 -10 15 -12 25c-2 11.3333 -2.33334 21 -1 29c2 9.33331 6.66669 19 14 29c-26.6667 14 -45.6667 22.3333 -57 25
+ c-10 2.66669 -17.6667 3.66669 -23 3c-4.66666 0 -12.3333 -3 -23 -9c-15.3333 -8.66669 -30.6667 -20.3333 -46 -35c-33.3333 -33.3333 -56 -71 -68 -113l-9 -45l-10 -62h312l-23 -137l-34 -201l-11 -64l-9 -46c-4 -12.6667 -11.6667 -26.3333 -23 -41l-1 -2
+ c-17.3333 -22 -45 -44 -83 -66l-102 -57c-15.3333 -10 -29 -20.3333 -41 -31h-1c-5.33334 5.33333 -8.33334 9.66667 -9 13v1c0 1.33333 2.33334 4.33333 7 9l22 19c40.6667 36.6667 69.6667 69 87 97c12 19.3333 20.3333 36 25 50c4 12.6667 8 32.3333 12 59l13 76l35 203
+ l15 90h-196l-15 -87l-24 -142l-13 -77l-6 -34v-4c1.33333 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.66667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39c7.33333 62.6667 21.6667 113 43 151c12.6667 21.3333 25.6667 39.3333 39 54
+ c54.6667 58.6667 130 89.3333 226 92c13.3333 0.666687 27 0.333313 41 -1c34 -2 64.6667 -10.3333 92 -25c10 -4 17.6667 -16.6667 23 -38c2.66669 -9.33331 4 -19 4 -29z" />
+ <glyph glyph-name="f" unicode="f"
+ d="M171 429c3.33299 25.333 7.66701 48.333 13 69l11 46c20.667 62.667 53 109 97 139c8.66699 6.66699 21.667 13.667 39 21c28.667 12 62.333 19 101 21c33.333 2 62 -0.666992 86 -8h1c16 -5.33301 30 -12.667 42 -22c6.66699 -4 11.333 -8.66699 14 -14
+ c1.33301 -2 1.66699 -9 1 -21v-1l-2 -48c-2.66699 -10.667 -6 -19 -10 -25c-15.333 -22.667 -37 -32 -65 -28c-12 2 -22.333 6.33301 -31 13c-6.66699 5.33301 -12 11.667 -16 19c-9.33301 15.333 -11.333 32.333 -6 51c1.33301 4.66699 3.33301 9.66699 6 15l3 10
+ c-0.666992 2.66699 -3.66699 5.66699 -9 9c-6.66699 5.33301 -14.667 9.66699 -24 13l-11 3c-3.33301 0 -9.66699 -3.66699 -19 -11c-12.667 -9.33301 -25.333 -22.667 -38 -40c-22.667 -31.333 -39.333 -67.667 -50 -109l-6 -38l-11 -64h116l-6 -18l-5 -8l-10 -2h-20h-80
+ l-14 -83l-27 -157l-12 -70l-5 -33v-1c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.6667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39z" />
+ <glyph glyph-name="j" unicode="j"
+ d="M248 644c4.66701 1.33301 11.333 1.33301 20 0c14 -3.33301 25 -10 33 -20c15.333 -18.667 17.667 -39.333 7 -62v-2v0c-4.66699 -8.66699 -10.667 -15.667 -18 -21c-6.66699 -4.66699 -14.667 -7.66699 -24 -9h-1c-22 -4.66699 -39.667 1.66699 -53 19l-1 1
+ c-15.333 19.333 -17.667 40.333 -7 63l1 1c3.33299 8 8.33299 14.333 15 19c8.66701 6 18 9.66699 28 11zM82 385l4 18l14 3l32 4l92 21l29 10l17 5l20 1l-59 -343l-12 -73c-8 -46 -18.333 -79.3333 -31 -100c-38.667 -66.667 -108 -116 -208 -148
+ c-24 -7.33299 -48 -13 -72 -17l3 20c19.3333 4 37.6667 10.333 55 19c55.3333 28 95 76.667 119 146l5 16c4.6667 15.3333 11.667 53 21 113l22 124l17 103l5 28c1.33299 12 1.66701 19.667 1 23c-8 25.333 -32 34.333 -72 27h-2z" />
+ <glyph glyph-name="o" unicode="o" horiz-adv-x="554"
+ d="M346 447c15.333 0.666992 32 0 50 -2c42 -3.33301 75.333 -16 100 -38c20.667 -16.667 36 -40.333 46 -71c15.333 -46 15.667 -95.333 1 -148l-2 -6c-20.667 -69.333 -58.333 -121.667 -113 -157l-22 -12c-29.333 -14.6667 -66 -24.3333 -110 -29
+ c-58 -4.6667 -105 2.6667 -141 22c-8 4 -17 10.3333 -27 19c-45.3333 41.3333 -62.6667 101 -52 179c2.6667 19.333 7.3333 38.333 14 57l20 44c34 65.333 84.333 108 151 128c19.333 5.33301 47.667 10 85 14zM341 416c-6 0 -14 -3.33301 -24 -10
+ c-21.333 -12 -39.333 -26.667 -54 -44c-46.667 -52.667 -71 -113 -73 -181c-0.667007 -25.333 2.33299 -49.667 9 -73c11.333 -35.3333 29.333 -61.6667 54 -79c15.333 -10 26 -15 32 -15c4.66699 0 13 3.3333 25 10c21.333 12 39.333 26.6667 54 44
+ c46.667 52 71 112.333 73 181c0.666992 24.667 -2 48.333 -8 71c-11.333 36 -29.667 63 -55 81c-12 9.33301 -23 14.333 -33 15z" />
+ <glyph glyph-name="r" unicode="r" horiz-adv-x="445"
+ d="M318 422c-1.33301 5.33301 2 9.66699 10 13c8.66699 4.66699 23.333 8.33301 44 11c67.333 9.33301 110 -2.66699 128 -36l7 -19c2 -9.33301 2.66699 -18 2 -26c-1.33301 -8.66699 -10 -15.667 -26 -21c-20 -5.33301 -39.667 -8 -59 -8c-11.333 0 -19.667 1 -25 3
+ c-5.33301 1.33301 -7.33301 8 -6 20v3c-1.33301 17.333 -7.33301 31.333 -18 42c-6 6 -11.333 9 -16 9c-4.66699 -0.666992 -12.333 -5.33301 -23 -14c-17.333 -14 -32.333 -33.333 -45 -58c-12.667 -25.333 -22.333 -50.333 -29 -75
+ c-4.66699 -16.667 -12.667 -58.333 -24 -125l-10 -56l-4 -28c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c26.6667 0 47 9.6667 61 29l2 4c1.333 1.3333 3.667 9.3333 7 24l7 43l26 149l10 60c2.66701 15.333 2.33299 26.333 -1 33
+ c-8 16 -24.667 24 -50 24l-21 -2l4 18l12 3h1l33 4c30 4.66699 60.333 11.667 91 21l30 10l17 5l20 1l-12 -72h1c8.66699 18.667 21.667 34 39 46v1zM278 375h-1h1z" />
+ <glyph glyph-name="d" unicode="d" horiz-adv-x="562"
+ d="M380 666l50 5l81 19l31 10l22 7l20 1l-10 -60l-21 -123l-58 -339l-15 -91l-4 -23c-1.33301 -10 -1.66699 -16.3333 -1 -19c5.33301 -19.3333 22 -30 50 -32h1h1l-3 -20h-147l1 86h-1c-3.33301 -11.3333 -9.66699 -23.3333 -19 -36c-18.667 -29.3333 -41 -49 -67 -59
+ c-11.333 -4 -26 -6.6667 -44 -8c-14 -1.3333 -28 -1.3333 -42 0c-37.333 3.3333 -66 14.6667 -86 34c-26 25.3333 -41 63.6667 -45 115c-6 72 11.3333 139.667 52 203l2 3c20 30.667 43.333 54 70 70c30 18 65 29.667 105 35c23.333 2.66699 41 0.333008 53 -7
+ c22 -14 30.667 -35.333 26 -64l-1 -6l-8 -19c-3.33301 -3.33301 -5.33301 -5 -6 -5l-8 4l-14 10c6.66699 10 10 18.333 10 25v1c0 16 -6.66699 26.667 -20 32c-5.33301 2 -11 2.33301 -17 1c-4 -0.666992 -11 -4.33301 -21 -11c-14 -10.667 -27.333 -23.667 -40 -39
+ c-39.333 -50 -61 -109 -65 -177c-2 -29.333 0 -55.667 6 -79c8.66701 -36.6667 24.333 -63 47 -79c13.333 -10 23.667 -14.6667 31 -14c6 0.6667 15 5.3333 27 14c13.333 10.6667 26.333 27 39 49c14 24 25 54.333 33 91l22 119l31 180l16 98l5 28l1 19
+ c-3.33301 19.333 -18.667 30.333 -46 33h-6l-21 -2z" />
+
+ </font>
+ </defs>
+ <g fill="#127" fill-opacity="0.4" stroke="#fff" stroke-width="0.5">
+ <text x="160" y="260" font-family="Fjord-nl" font-weight="700" font-style="oblique"
+ font-size="120">fjord</text>
+ <text x="160" y="130" font-family="Fjord-wl" font-weight="700" font-style="oblique"
+ font-size="120">fjord</text>
+ <g font-size="14" fill-opacity="0.8" stroke="none">
+ <text x="20" y="100" >The Fjord fonts</text>
+ <text x="20" y="120">are derived from</text>
+ <text x="20" y="140">Gladiator</text>
+ <text x="20" y="160">by Bert Bos</text>
+ <text x="20" y="180">and are used</text>
+ <text x="20" y="200">by kind permission.</text>
+ </g>
+ <!-- No norwegian blue parrots were harmed n the making of this test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/fonts-glyph-202-t.png b/test/svg/svg1.2/svg/fonts-glyph-202-t.png
new file mode 100644
index 0000000..0df793e
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-glyph-202-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-glyph-202-t.svg b/test/svg/svg1.2/svg/fonts-glyph-202-t.svg
new file mode 100644
index 0000000..4956223
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-glyph-202-t.svg
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="CL" desc="longest substring ligature matching" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: fonts-glyph-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test that ligatures are always used, and only used, when they occur before the
+ glyphs for characters they are ligatures of. The word "fjord" is displayed twice;
+ the lower one must use the fj ligature and the upper one must not; the top of the letter f overlaps the
+ dot of the letter j..
+ </p>
+ <p>
+ Two fonts are defined, almost identical; in one the fj ligature is
+ defined after "f" but before "j"; in the second one it is the last glyph.
+ This tests longest-substring matching.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-glyph-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="Fjord-BoldOblique-jfirst" horiz-adv-x="312" >
+ <font-face
+ font-family="Fjord-jf"
+ font-weight="700"
+ font-style="oblique"
+ font-stretch="normal"
+ units-per-em="1000"
+ panose-1="2 0 8 3 0 0 0 0 0 0"
+ ascent="800"
+ descent="-200"
+ x-height="447"
+ cap-height="-1e+10"
+ bbox="-92 -234 639 726.333"
+ underline-thickness="50"
+ underline-position="-100"
+ slope="-9.8"
+ unicode-range="U+0064-U+0072"
+ />
+ <missing-glyph horiz-adv-x="432"
+ d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+
+ <glyph glyph-name="j" unicode="j"
+ d="M248 644c4.66701 1.33301 11.333 1.33301 20 0c14 -3.33301 25 -10 33 -20c15.333 -18.667 17.667 -39.333 7 -62v-2v0c-4.66699 -8.66699 -10.667 -15.667 -18 -21c-6.66699 -4.66699 -14.667 -7.66699 -24 -9h-1c-22 -4.66699 -39.667 1.66699 -53 19l-1 1
+ c-15.333 19.333 -17.667 40.333 -7 63l1 1c3.33299 8 8.33299 14.333 15 19c8.66701 6 18 9.66699 28 11zM82 385l4 18l14 3l32 4l92 21l29 10l17 5l20 1l-59 -343l-12 -73c-8 -46 -18.333 -79.3333 -31 -100c-38.667 -66.667 -108 -116 -208 -148
+ c-24 -7.33299 -48 -13 -72 -17l3 20c19.3333 4 37.6667 10.333 55 19c55.3333 28 95 76.667 119 146l5 16c4.6667 15.3333 11.667 53 21 113l22 124l17 103l5 28c1.33299 12 1.66701 19.667 1 23c-8 25.333 -32 34.333 -72 27h-2z" />
+ <glyph glyph-name="fjlig" unicode="fj" horiz-adv-x="624"
+ d="M639 633v-23c-5.33331 -25.3333 -20.3333 -41.6667 -45 -49c-18.6667 -6 -36.3333 -4.33331 -53 5c-8.66669 4.66669 -15 10 -19 16c-6 6.66669 -10 15 -12 25c-2 11.3333 -2.33334 21 -1 29c2 9.33331 6.66669 19 14 29c-26.6667 14 -45.6667 22.3333 -57 25
+ c-10 2.66669 -17.6667 3.66669 -23 3c-4.66666 0 -12.3333 -3 -23 -9c-15.3333 -8.66669 -30.6667 -20.3333 -46 -35c-33.3333 -33.3333 -56 -71 -68 -113l-9 -45l-10 -62h312l-23 -137l-34 -201l-11 -64l-9 -46c-4 -12.6667 -11.6667 -26.3333 -23 -41l-1 -2
+ c-17.3333 -22 -45 -44 -83 -66l-102 -57c-15.3333 -10 -29 -20.3333 -41 -31h-1c-5.33334 5.33333 -8.33334 9.66667 -9 13v1c0 1.33333 2.33334 4.33333 7 9l22 19c40.6667 36.6667 69.6667 69 87 97c12 19.3333 20.3333 36 25 50c4 12.6667 8 32.3333 12 59l13 76l35 203
+ l15 90h-196l-15 -87l-24 -142l-13 -77l-6 -34v-4c1.33333 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.66667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39c7.33333 62.6667 21.6667 113 43 151c12.6667 21.3333 25.6667 39.3333 39 54
+ c54.6667 58.6667 130 89.3333 226 92c13.3333 0.666687 27 0.333313 41 -1c34 -2 64.6667 -10.3333 92 -25c10 -4 17.6667 -16.6667 23 -38c2.66669 -9.33331 4 -19 4 -29z" />
+ <glyph glyph-name="f" unicode="f"
+ d="M171 429c3.33299 25.333 7.66701 48.333 13 69l11 46c20.667 62.667 53 109 97 139c8.66699 6.66699 21.667 13.667 39 21c28.667 12 62.333 19 101 21c33.333 2 62 -0.666992 86 -8h1c16 -5.33301 30 -12.667 42 -22c6.66699 -4 11.333 -8.66699 14 -14
+ c1.33301 -2 1.66699 -9 1 -21v-1l-2 -48c-2.66699 -10.667 -6 -19 -10 -25c-15.333 -22.667 -37 -32 -65 -28c-12 2 -22.333 6.33301 -31 13c-6.66699 5.33301 -12 11.667 -16 19c-9.33301 15.333 -11.333 32.333 -6 51c1.33301 4.66699 3.33301 9.66699 6 15l3 10
+ c-0.666992 2.66699 -3.66699 5.66699 -9 9c-6.66699 5.33301 -14.667 9.66699 -24 13l-11 3c-3.33301 0 -9.66699 -3.66699 -19 -11c-12.667 -9.33301 -25.333 -22.667 -38 -40c-22.667 -31.333 -39.333 -67.667 -50 -109l-6 -38l-11 -64h116l-6 -18l-5 -8l-10 -2h-20h-80
+ l-14 -83l-27 -157l-12 -70l-5 -33v-1c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.6667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39z" />
+ <glyph glyph-name="o" unicode="o" horiz-adv-x="554"
+ d="M346 447c15.333 0.666992 32 0 50 -2c42 -3.33301 75.333 -16 100 -38c20.667 -16.667 36 -40.333 46 -71c15.333 -46 15.667 -95.333 1 -148l-2 -6c-20.667 -69.333 -58.333 -121.667 -113 -157l-22 -12c-29.333 -14.6667 -66 -24.3333 -110 -29
+ c-58 -4.6667 -105 2.6667 -141 22c-8 4 -17 10.3333 -27 19c-45.3333 41.3333 -62.6667 101 -52 179c2.6667 19.333 7.3333 38.333 14 57l20 44c34 65.333 84.333 108 151 128c19.333 5.33301 47.667 10 85 14zM341 416c-6 0 -14 -3.33301 -24 -10
+ c-21.333 -12 -39.333 -26.667 -54 -44c-46.667 -52.667 -71 -113 -73 -181c-0.667007 -25.333 2.33299 -49.667 9 -73c11.333 -35.3333 29.333 -61.6667 54 -79c15.333 -10 26 -15 32 -15c4.66699 0 13 3.3333 25 10c21.333 12 39.333 26.6667 54 44
+ c46.667 52 71 112.333 73 181c0.666992 24.667 -2 48.333 -8 71c-11.333 36 -29.667 63 -55 81c-12 9.33301 -23 14.333 -33 15z" />
+ <glyph glyph-name="r" unicode="r" horiz-adv-x="445"
+ d="M318 422c-1.33301 5.33301 2 9.66699 10 13c8.66699 4.66699 23.333 8.33301 44 11c67.333 9.33301 110 -2.66699 128 -36l7 -19c2 -9.33301 2.66699 -18 2 -26c-1.33301 -8.66699 -10 -15.667 -26 -21c-20 -5.33301 -39.667 -8 -59 -8c-11.333 0 -19.667 1 -25 3
+ c-5.33301 1.33301 -7.33301 8 -6 20v3c-1.33301 17.333 -7.33301 31.333 -18 42c-6 6 -11.333 9 -16 9c-4.66699 -0.666992 -12.333 -5.33301 -23 -14c-17.333 -14 -32.333 -33.333 -45 -58c-12.667 -25.333 -22.333 -50.333 -29 -75
+ c-4.66699 -16.667 -12.667 -58.333 -24 -125l-10 -56l-4 -28c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c26.6667 0 47 9.6667 61 29l2 4c1.333 1.3333 3.667 9.3333 7 24l7 43l26 149l10 60c2.66701 15.333 2.33299 26.333 -1 33
+ c-8 16 -24.667 24 -50 24l-21 -2l4 18l12 3h1l33 4c30 4.66699 60.333 11.667 91 21l30 10l17 5l20 1l-12 -72h1c8.66699 18.667 21.667 34 39 46v1zM278 375h-1h1z" />
+ <glyph glyph-name="d" unicode="d" horiz-adv-x="562"
+ d="M380 666l50 5l81 19l31 10l22 7l20 1l-10 -60l-21 -123l-58 -339l-15 -91l-4 -23c-1.33301 -10 -1.66699 -16.3333 -1 -19c5.33301 -19.3333 22 -30 50 -32h1h1l-3 -20h-147l1 86h-1c-3.33301 -11.3333 -9.66699 -23.3333 -19 -36c-18.667 -29.3333 -41 -49 -67 -59
+ c-11.333 -4 -26 -6.6667 -44 -8c-14 -1.3333 -28 -1.3333 -42 0c-37.333 3.3333 -66 14.6667 -86 34c-26 25.3333 -41 63.6667 -45 115c-6 72 11.3333 139.667 52 203l2 3c20 30.667 43.333 54 70 70c30 18 65 29.667 105 35c23.333 2.66699 41 0.333008 53 -7
+ c22 -14 30.667 -35.333 26 -64l-1 -6l-8 -19c-3.33301 -3.33301 -5.33301 -5 -6 -5l-8 4l-14 10c6.66699 10 10 18.333 10 25v1c0 16 -6.66699 26.667 -20 32c-5.33301 2 -11 2.33301 -17 1c-4 -0.666992 -11 -4.33301 -21 -11c-14 -10.667 -27.333 -23.667 -40 -39
+ c-39.333 -50 -61 -109 -65 -177c-2 -29.333 0 -55.667 6 -79c8.66701 -36.6667 24.333 -63 47 -79c13.333 -10 23.667 -14.6667 31 -14c6 0.6667 15 5.3333 27 14c13.333 10.6667 26.333 27 39 49c14 24 25 54.333 33 91l22 119l31 180l16 98l5 28l1 19
+ c-3.33301 19.333 -18.667 30.333 -46 33h-6l-21 -2z" />
+ </font>
+ <font xml:id="Fjord-BoldOblique-ffirst" horiz-adv-x="312" >
+ <font-face
+ font-family="Fjord-ff"
+ font-weight="700"
+ font-style="oblique"
+ font-stretch="normal"
+ units-per-em="1000"
+ panose-1="2 0 8 3 0 0 0 0 0 0"
+ ascent="800"
+ descent="-200"
+ x-height="447"
+ cap-height="-1e+10"
+ bbox="-92 -234 639 726.333"
+ underline-thickness="50"
+ underline-position="-100"
+ slope="-9.8"
+ unicode-range="U+0064-U+0072"
+ />
+ <missing-glyph horiz-adv-x="432"
+ d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+ <glyph glyph-name="f" unicode="f"
+ d="M171 429c3.33299 25.333 7.66701 48.333 13 69l11 46c20.667 62.667 53 109 97 139c8.66699 6.66699 21.667 13.667 39 21c28.667 12 62.333 19 101 21c33.333 2 62 -0.666992 86 -8h1c16 -5.33301 30 -12.667 42 -22c6.66699 -4 11.333 -8.66699 14 -14
+ c1.33301 -2 1.66699 -9 1 -21v-1l-2 -48c-2.66699 -10.667 -6 -19 -10 -25c-15.333 -22.667 -37 -32 -65 -28c-12 2 -22.333 6.33301 -31 13c-6.66699 5.33301 -12 11.667 -16 19c-9.33301 15.333 -11.333 32.333 -6 51c1.33301 4.66699 3.33301 9.66699 6 15l3 10
+ c-0.666992 2.66699 -3.66699 5.66699 -9 9c-6.66699 5.33301 -14.667 9.66699 -24 13l-11 3c-3.33301 0 -9.66699 -3.66699 -19 -11c-12.667 -9.33301 -25.333 -22.667 -38 -40c-22.667 -31.333 -39.333 -67.667 -50 -109l-6 -38l-11 -64h116l-6 -18l-5 -8l-10 -2h-20h-80
+ l-14 -83l-27 -157l-12 -70l-5 -33v-1c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.6667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39z" />
+ <glyph glyph-name="fjlig" unicode="fj" horiz-adv-x="624"
+ d="M639 633v-23c-5.33331 -25.3333 -20.3333 -41.6667 -45 -49c-18.6667 -6 -36.3333 -4.33331 -53 5c-8.66669 4.66669 -15 10 -19 16c-6 6.66669 -10 15 -12 25c-2 11.3333 -2.33334 21 -1 29c2 9.33331 6.66669 19 14 29c-26.6667 14 -45.6667 22.3333 -57 25
+ c-10 2.66669 -17.6667 3.66669 -23 3c-4.66666 0 -12.3333 -3 -23 -9c-15.3333 -8.66669 -30.6667 -20.3333 -46 -35c-33.3333 -33.3333 -56 -71 -68 -113l-9 -45l-10 -62h312l-23 -137l-34 -201l-11 -64l-9 -46c-4 -12.6667 -11.6667 -26.3333 -23 -41l-1 -2
+ c-17.3333 -22 -45 -44 -83 -66l-102 -57c-15.3333 -10 -29 -20.3333 -41 -31h-1c-5.33334 5.33333 -8.33334 9.66667 -9 13v1c0 1.33333 2.33334 4.33333 7 9l22 19c40.6667 36.6667 69.6667 69 87 97c12 19.3333 20.3333 36 25 50c4 12.6667 8 32.3333 12 59l13 76l35 203
+ l15 90h-196l-15 -87l-24 -142l-13 -77l-6 -34v-4c1.33333 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c27.3333 0 47.6667 9.66667 61 29l4 6l5 22l6 38l49 285h-60l6 17l4 9l16 2h39c7.33333 62.6667 21.6667 113 43 151c12.6667 21.3333 25.6667 39.3333 39 54
+ c54.6667 58.6667 130 89.3333 226 92c13.3333 0.666687 27 0.333313 41 -1c34 -2 64.6667 -10.3333 92 -25c10 -4 17.6667 -16.6667 23 -38c2.66669 -9.33331 4 -19 4 -29z" />
+ <glyph glyph-name="j" unicode="j"
+ d="M248 644c4.66701 1.33301 11.333 1.33301 20 0c14 -3.33301 25 -10 33 -20c15.333 -18.667 17.667 -39.333 7 -62v-2v0c-4.66699 -8.66699 -10.667 -15.667 -18 -21c-6.66699 -4.66699 -14.667 -7.66699 -24 -9h-1c-22 -4.66699 -39.667 1.66699 -53 19l-1 1
+ c-15.333 19.333 -17.667 40.333 -7 63l1 1c3.33299 8 8.33299 14.333 15 19c8.66701 6 18 9.66699 28 11zM82 385l4 18l14 3l32 4l92 21l29 10l17 5l20 1l-59 -343l-12 -73c-8 -46 -18.333 -79.3333 -31 -100c-38.667 -66.667 -108 -116 -208 -148
+ c-24 -7.33299 -48 -13 -72 -17l3 20c19.3333 4 37.6667 10.333 55 19c55.3333 28 95 76.667 119 146l5 16c4.6667 15.3333 11.667 53 21 113l22 124l17 103l5 28c1.33299 12 1.66701 19.667 1 23c-8 25.333 -32 34.333 -72 27h-2z" />
+ <glyph glyph-name="o" unicode="o" horiz-adv-x="554"
+ d="M346 447c15.333 0.666992 32 0 50 -2c42 -3.33301 75.333 -16 100 -38c20.667 -16.667 36 -40.333 46 -71c15.333 -46 15.667 -95.333 1 -148l-2 -6c-20.667 -69.333 -58.333 -121.667 -113 -157l-22 -12c-29.333 -14.6667 -66 -24.3333 -110 -29
+ c-58 -4.6667 -105 2.6667 -141 22c-8 4 -17 10.3333 -27 19c-45.3333 41.3333 -62.6667 101 -52 179c2.6667 19.333 7.3333 38.333 14 57l20 44c34 65.333 84.333 108 151 128c19.333 5.33301 47.667 10 85 14zM341 416c-6 0 -14 -3.33301 -24 -10
+ c-21.333 -12 -39.333 -26.667 -54 -44c-46.667 -52.667 -71 -113 -73 -181c-0.667007 -25.333 2.33299 -49.667 9 -73c11.333 -35.3333 29.333 -61.6667 54 -79c15.333 -10 26 -15 32 -15c4.66699 0 13 3.3333 25 10c21.333 12 39.333 26.6667 54 44
+ c46.667 52 71 112.333 73 181c0.666992 24.667 -2 48.333 -8 71c-11.333 36 -29.667 63 -55 81c-12 9.33301 -23 14.333 -33 15z" />
+ <glyph glyph-name="r" unicode="r" horiz-adv-x="445"
+ d="M318 422c-1.33301 5.33301 2 9.66699 10 13c8.66699 4.66699 23.333 8.33301 44 11c67.333 9.33301 110 -2.66699 128 -36l7 -19c2 -9.33301 2.66699 -18 2 -26c-1.33301 -8.66699 -10 -15.667 -26 -21c-20 -5.33301 -39.667 -8 -59 -8c-11.333 0 -19.667 1 -25 3
+ c-5.33301 1.33301 -7.33301 8 -6 20v3c-1.33301 17.333 -7.33301 31.333 -18 42c-6 6 -11.333 9 -16 9c-4.66699 -0.666992 -12.333 -5.33301 -23 -14c-17.333 -14 -32.333 -33.333 -45 -58c-12.667 -25.333 -22.333 -50.333 -29 -75
+ c-4.66699 -16.667 -12.667 -58.333 -24 -125l-10 -56l-4 -28c1.33299 -17.3333 15 -28.6667 41 -34l12 -2l-3 -20h-236l3 20c26.6667 0 47 9.6667 61 29l2 4c1.333 1.3333 3.667 9.3333 7 24l7 43l26 149l10 60c2.66701 15.333 2.33299 26.333 -1 33
+ c-8 16 -24.667 24 -50 24l-21 -2l4 18l12 3h1l33 4c30 4.66699 60.333 11.667 91 21l30 10l17 5l20 1l-12 -72h1c8.66699 18.667 21.667 34 39 46v1zM278 375h-1h1z" />
+ <glyph glyph-name="d" unicode="d" horiz-adv-x="562"
+ d="M380 666l50 5l81 19l31 10l22 7l20 1l-10 -60l-21 -123l-58 -339l-15 -91l-4 -23c-1.33301 -10 -1.66699 -16.3333 -1 -19c5.33301 -19.3333 22 -30 50 -32h1h1l-3 -20h-147l1 86h-1c-3.33301 -11.3333 -9.66699 -23.3333 -19 -36c-18.667 -29.3333 -41 -49 -67 -59
+ c-11.333 -4 -26 -6.6667 -44 -8c-14 -1.3333 -28 -1.3333 -42 0c-37.333 3.3333 -66 14.6667 -86 34c-26 25.3333 -41 63.6667 -45 115c-6 72 11.3333 139.667 52 203l2 3c20 30.667 43.333 54 70 70c30 18 65 29.667 105 35c23.333 2.66699 41 0.333008 53 -7
+ c22 -14 30.667 -35.333 26 -64l-1 -6l-8 -19c-3.33301 -3.33301 -5.33301 -5 -6 -5l-8 4l-14 10c6.66699 10 10 18.333 10 25v1c0 16 -6.66699 26.667 -20 32c-5.33301 2 -11 2.33301 -17 1c-4 -0.666992 -11 -4.33301 -21 -11c-14 -10.667 -27.333 -23.667 -40 -39
+ c-39.333 -50 -61 -109 -65 -177c-2 -29.333 0 -55.667 6 -79c8.66701 -36.6667 24.333 -63 47 -79c13.333 -10 23.667 -14.6667 31 -14c6 0.6667 15 5.3333 27 14c13.333 10.6667 26.333 27 39 49c14 24 25 54.333 33 91l22 119l31 180l16 98l5 28l1 19
+ c-3.33301 19.333 -18.667 30.333 -46 33h-6l-21 -2z" />
+ </font>
+ </defs>
+ <g fill="#052" fill-opacity="0.4" stroke="#fff" stroke-width="0.5">
+ <text x="160" y="260" font-family="Fjord-jf" font-weight="700" font-style="oblique"
+ font-size="120">fjord</text>
+ <text x="160" y="130" font-family="Fjord-ff" font-weight="700" font-style="oblique"
+ font-size="120">fjord</text>
+ <g font-size="14" fill-opacity="0.8" stroke="none">
+ <text x="20" y="100">The Fjord fonts</text>
+ <text x="20" y="120" >are derived from</text>
+ <text x="20" y="140">Gladiator</text>
+ <text x="20" y="160">by Bert Bos</text>
+ <text x="20" y="180">and are used</text>
+ <text x="20" y="200">by kind permission.</text>
+ </g>
+ <!-- No norwegian blue parrots were harmed n the making of this test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/fonts-glyph-203-t.png b/test/svg/svg1.2/svg/fonts-glyph-203-t.png
new file mode 100644
index 0000000..546097b
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-glyph-203-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-glyph-203-t.svg b/test/svg/svg1.2/svg/fonts-glyph-203-t.svg
new file mode 100644
index 0000000..803bfb3
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-glyph-203-t.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ATE, CM" owner="CL" desc="test path commands in glyphs" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: fonts-glyph-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
+ xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test that all of the SVG path commands are accepted for defining glyphs. The upper,
+ black text must be a reflection of the lower, colored glyph shapes.
+ </p>
+ <p>
+ The letter A uses L commands, the letter H uses H and V commands, and
+ the letter B uses cubic beziers. The letter C uses a mix of quadratic beziers and vertical lines.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-glyph-203-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <font xml:id="curvy" horiz-adv-x="450">
+ <font-face font-family="SVGPath" font-weight="500" units-per-em="1000" ascent="800"
+ descent="-200"/>
+ <missing-glyph/>
+ <glyph unicode="A" d="M0,0 L100,600 L300,600 L400,0 L300,0 L 200,200 L 100,0 z
+ M 100,200 L300,200 L 200,500 z"/>
+ <glyph unicode="B" horiz-adv-x="350"
+ d="M0,0 c0,200 0,400 0,600 c33,0 66,0 100,0 c 300,0 300,-300 0,-300
+ c 300,0 300,-300 0,-300 z
+ M 100,100 c 140,0 140,100, 0,100 z
+ M 100,400 c 140,0 140,100, 0,100 z"/>
+ <glyph unicode="C" d="M100,100 Q 0,300 100,500 Q 250,600 400,500
+ v-100 Q300,450 200,400 Q 150,300 200,200 Q 300,150 400,200
+ v-100 Q250,0 100,100 z" />
+ <glyph unicode="H"
+ d="M0,0 v600 h100 v-250 h200 v250 h100 v-600 h-100 v250 h-200 v-250 z"/>
+ </font>
+ </defs>
+ <text x="50" y="150" font-family="SVGPath" font-size="150">BACH</text>
+ <g transform="translate (50,160)">
+ <g transform="scale(0.15)" fill="green">
+ <path
+ d="M0,0 c0,200 0,400 0,600 c33,0 66,0 100,0 c 300,0 300,-300 0,-300
+ c 300,0 300,-300 0,-300 z
+ M 100,100 c 140,0 140,100, 0,100 z
+ M 100,400 c 140,0 140,100, 0,100 z"
+ />
+ </g>
+ </g>
+ <g transform="translate (102.5,160)">
+ <g transform="scale(0.15)" fill="blue">
+ <path d="M0,0 L100,600 L300,600 L400,0 L300,0 L 200,200 L 100,0 z
+ M 100,200 L300,200 L 200,500 z"/>
+ </g>
+ </g>
+ <g transform="translate (170,160)">
+ <g transform="scale(0.15)" fill="maroon">
+ <path d="M100,100 Q 0,300 100,500 Q 250,600 400,500
+ v-100 Q300,450 200,400 Q 150,300 200,200 Q 300,150 400,200
+ v-100 Q250,0 100,100 z"/>
+ </g>
+ </g>
+ <g transform="translate (237.5,160)">
+ <g transform="scale(0.15)" fill="rgb(153, 50, 204)">
+ <path d="M0,0 v600 h100 v-250 h200 v250 h100 v-600 h-100 v250 h-200 v-250 z"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-kern-01-t.png b/test/svg/svg1.2/svg/fonts-kern-01-t.png
new file mode 100644
index 0000000..26a55e2
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-kern-01-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-kern-01-t.svg b/test/svg/svg1.2/svg/fonts-kern-01-t.svg
new file mode 100644
index 0000000..bcdd61d
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-kern-01-t.svg
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Test handling of hkern elements in SVG Fonts" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: fonts-kern-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates handling of the hkern element.</p>
+ <p>In all instances, a text element matching a font with hkern is displayed along with reference markers showing the expected glyph positioning.</p>
+ <p>The 'fontA' cell shows the string "12" with "fontA" for which there in a kerning pair defined with u1="1" and u2="2".</p>
+ <p>The 'fontB' cell shows the string "12" with "fontB" for which there in a kerning pair defined with g1="gl_1" and g2="gl_2", where "gl_1" has unicode="1" and "gl_2" has unicode="2".</p>
+ <p>The 'fontC' cell shows the string "1234" with "fontC" were the same kerning pair uses u1/u2 to match "12" and g1/g2 to match "34".</p>
+ <p>The 'fontD' cell shows the string "1234" with "fontD" were the same kerning pair uses u1/u2 to match "12" and "34" (u1/u2 are lists of character vales).</p>
+ <p>The 'fontE' cell shows the string "1234" with "fontE" were the same kerning pair uses g1/g2 to match "12" and "34" (g1/g2 are lists of names).</p>
+ <p>The 'fontF' cell shows the string "1234" with "fontF" were the same kerning pair uses u1/u2 to match "12" and "34" (u1/u2 are unicode ranges).</p>
+ <p>The 'fontG' cell shows the string "12" with "fontG" were for which there is a kerning pair with u1 matching "1" and g2 matching "gl_2".</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-kern-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="224">
+ <font-face font-family="fontG" units-per-em="1000" ascent="917" descent="-250" />
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <hkern u1="1" g2="gl_2" k="-1000" />
+ </font>
+ <font horiz-adv-x="224">
+ <font-face font-family="fontF" units-per-em="1000" ascent="917" descent="-250" />
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z" />
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z" />
+ <!-- u1 covers '0' to '9' and ':' ';' '<' '=' '>' '?' -->
+ <!-- u2 covers '1' '2' '3' and '4' -->
+ <!-- So, this is a match for '12', '23' and '34' -->
+ <hkern u1="U+003?" u2="U+0031-0034" k="-1500" />
+ </font>
+ <font horiz-adv-x="224">
+ <font-face font-family="fontE" units-per-em="1000" ascent="917" descent="-250" />
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z" />
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z" />
+ <hkern g1="gl_1,gl_3" g2="gl_2,gl_4" k="-1500" />
+ </font>
+ <font horiz-adv-x="224">
+ <font-face font-family="fontD" units-per-em="1000" ascent="917" descent="-250" />
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z" />
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z" />
+ <hkern u1="1,3" u2="2,4" k="-1500" />
+ </font>
+ <font horiz-adv-x="224">
+ <font-face font-family="fontC" units-per-em="1000" ascent="917" descent="-250" />
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z" />
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z" />
+ <hkern u1="1" u2="2" g1="gl_3" g2="gl_4" k="-1500" />
+ </font>
+ <font horiz-adv-x="224">
+ <font-face font-family="fontB" units-per-em="1000" ascent="917" descent="-250" />
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <hkern g1="gl_1" g2="gl_2" k="-2000" />
+ </font>
+ <font horiz-adv-x="224">
+ <font-face font-family="fontA" units-per-em="1000" ascent="917" descent="-250" />
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <hkern u1="1" u2="2" k="-1000" />
+ </font>
+ </defs>
+ <defs>
+ <g xml:id="marker">
+ <!-- <rect x="0" y="-10" width="10" height="10" /> -->
+ <line y2="-12" stroke="red" stroke-width="1" />
+ <line x2="12" stroke="red" stroke-width="1" />
+ <rect x="-2" y="-2" width="4" height="4" fill="red" />
+ </g>
+ <g xml:id="sampleBkg">
+ <rect width="200" height="20" fill="#eeeeee" />
+ <rect y="20" width="200" height="30" fill="#cccccc" />
+ <rect width="200" height="50" fill="none" stroke="black" />
+ </g>
+ </defs>
+ <text x="240" y="30" font-size="20" text-anchor="middle"><hkern></text>
+ <g xml:id="legend" transform="translate(30, 60)">
+ <g>
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black" />
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font A</text>
+ </g>
+ <use xlink:href="#sampleBkg" />
+ <text x="5" y="15" font-size="12">u1="1" u2="2"</text>
+ <g transform="translate(5, 45) scale(2)" font-size="10">
+ <!-- Advance for '1': 0 -->
+ <use xlink:href="#marker" fill="#8888ff" />
+ <!-- Advance for '2' : '1'.advance + kerning -->
+ <!-- : ((250 - (-1000))/1000)*10 -->
+ <!-- : 12.5 -->
+ <use xlink:href="#marker" x="12.5" fill="#8888ff" />
+ <text font-family="fontA" font-size="10">12</text>
+ </g>
+ </g>
+ <g transform="translate(0, 55)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black" />
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font B</text>
+ </g>
+ <use xlink:href="#sampleBkg" />
+ <text x="5" y="15" font-size="12">g1="gl_1" g2="gl_2"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff" />
+ <use xlink:href="#marker" x="22.5" fill="#8888ff" />
+ <text font-family="fontB" font-size="10">12</text>
+ </g>
+ </g>
+ <g transform="translate(0, 110)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black" />
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font C</text>
+ </g>
+ <use xlink:href="#sampleBkg" />
+ <text x="5" y="15" font-size="12">u1="1" u2="2" g1="gl_3" g2="gl_4"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff" />
+ <!-- ((1.adv + '12'.k)/unitsPerEm)*fontSize -->
+ <use xlink:href="#marker" x="17.5" fill="#8888ff" />
+ <use xlink:href="#marker" x="32.5" fill="#8888ff" />
+ <!-- ((3.adv + '34'.k)/unitsPerEm)*fontSize -->
+ <use xlink:href="#marker" x="55" fill="#8888ff" />
+ <text font-family="fontC" font-size="10">1234</text>
+ </g>
+ </g>
+ <g transform="translate(0, 165)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black" />
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font D</text>
+ </g>
+ <use xlink:href="#sampleBkg" />
+ <text x="5" y="15" font-size="12">u1="1,3" u2="2,4"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff" />
+ <use xlink:href="#marker" x="17.5" fill="#8888ff" />
+ <use xlink:href="#marker" x="32.5" fill="#8888ff" />
+ <use xlink:href="#marker" x="55" fill="#8888ff" />
+ <text font-family="fontD" font-size="10">1234</text>
+ </g>
+ </g>
+ <g transform="translate(240, 0)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black" />
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font E</text>
+ </g>
+ <use xlink:href="#sampleBkg" />
+ <text x="5" y="15" font-size="12">g1="gl_1,gl_3" g2="gl_2,gl_4"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff" />
+ <use xlink:href="#marker" x="17.5" fill="#8888ff" />
+ <use xlink:href="#marker" x="32.5" fill="#8888ff" />
+ <use xlink:href="#marker" x="55" fill="#8888ff" />
+ <text font-family="fontE" font-size="10">1234</text>
+ </g>
+ </g>
+ <g transform="translate(240, 55)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black" />
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font F</text>
+ </g>
+ <use xlink:href="#sampleBkg" />
+ <text x="5" y="15" font-size="12">u1="U+003?" u2="U+0031-34"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff" />
+ <!-- '2' -->
+ <use xlink:href="#marker" x="17.5" fill="#8888ff" />
+ <!-- '3' -->
+ <use xlink:href="#marker" x="47.5" fill="#8888ff" />
+ <!-- '4' -->
+ <use xlink:href="#marker" x="70" fill="#8888ff" />
+ <text font-family="fontF" font-size="10">1234</text>
+ </g>
+ </g>
+ <g transform="translate(240, 110)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black" />
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font G</text>
+ </g>
+ <use xlink:href="#sampleBkg" />
+ <text x="5" y="15" font-size="12">u1="1" g2="gl_2"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <!-- Advance for '1': 0 -->
+ <use xlink:href="#marker" fill="#8888ff" />
+ <!-- Advance for '2' : '1'.advance + kerning -->
+ <!-- : ((250 - (-1000))/1000)*10 -->
+ <!-- : 12.5 -->
+ <use xlink:href="#marker" x="12.5" fill="#8888ff" />
+ <text font-family="fontG" font-size="10">12</text>
+ </g>
+ </g>
+ </g>
+ <g xml:id="testContent" transform="translate(320, 100)" font-size="10"> </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/fonts-overview-201-t.png b/test/svg/svg1.2/svg/fonts-overview-201-t.png
new file mode 100644
index 0000000..c1a9fae
Binary files /dev/null and b/test/svg/svg1.2/svg/fonts-overview-201-t.png differ
diff --git a/test/svg/svg1.2/svg/fonts-overview-201-t.svg b/test/svg/svg1.2/svg/fonts-overview-201-t.svg
new file mode 100644
index 0000000..2aedb03
--- /dev/null
+++ b/test/svg/svg1.2/svg/fonts-overview-201-t.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="units-per-em values" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: fonts-overview-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests a range of values for the 'units per em' attribute. The
+ test is passed if the three letter β are all the same size.
+ </p>
+ <p>
+ The same glyph is defined three times in three fonts, but with different values
+ for units-per-em - 1,000, 10, and 10,000 - and with the other numerical values
+ that depend on units-per-em scaled accordingly. Text using these fonts must all be displayed at the same size,
+ because the same font-size is used throughout.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: fonts-overview-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="beta" horiz-adv-x="550" >
+ <font-face
+ font-family="SVGbeta1"
+ font-weight="500"
+ units-per-em="1000"
+ ascent="800"
+ descent="-200"
+ unicode-range="U+03B2"
+ />
+ <missing-glyph />
+ <glyph glyph-name="beta" unicode="β"
+ d="M522.35 177.05c0 -103.55 -73.73 -201.4 -190.89 -201.4c-62.62 0 -123.22 22.7998 -138.37 85.5h-2.01999v-261.15h-135.34v573.7c0 136.8 37.3691 304.95 218.16 304.95c95.95 0 198.97 -40.85 198.97 -145.35c0 -94.05 -72.72 -133 -160.59 -152v-1.89999
+ c126.25 -16.15 210.08 -76 210.08 -202.35zM360.75 128.6v80.75c0 41.8 -3.03 149.15 -67.67 149.15c-15.15 0 -29.29 -8.54999 -44.44 -8.54999c-14.14 0 -20.2 18.05 -20.2 28.5c0 11.4 9.09 24.7 22.22 24.7c12.12 0 24.24 -6.64999 36.36 -6.64999
+ c45.45 0 45.45 79.8 45.45 108.3c0 42.75 2.01999 146.3 -63.63 146.3c-75.75 0 -77.77 -138.7 -77.77 -188.1v-394.25h31.31c3.03 -23.75 29.29 -49.4004 55.55 -49.4004c68.68 0 82.82 56.0508 82.82 109.25z" />
+ </font>
+ <font xml:id="beta2" horiz-adv-x="5.50" >
+ <font-face
+ font-family="SVGbeta2"
+ font-weight="500"
+ units-per-em="10"
+ ascent="8"
+ descent="-2"
+ unicode-range="U+03B2"
+ />
+ <missing-glyph />
+ <glyph glyph-name="beta" unicode="β"
+ d="M5.2235 1.7705c0 -1.0355 -0.7373 -2.014 -1.9089 -2.014c-0.6262 0 -1.2322 0.227998 -1.3837 0.855h-0.0201999v-2.6115h-1.3534v5.737c0 1.368 0.373691 3.0495 2.1816 3.0495c0.9595 0 1.9897 -0.4085 1.9897 -1.4535c0 -0.9405 -0.7272 -1.33 -1.6059 -1.52v-0.0189999
+ c1.2625 -0.1615 2.1008 -0.76 2.1008 -2.0235zM3.6075 1.286v0.8075c0 0.418 -0.0303 1.4915 -0.6767 1.4915c-0.1515 0 -0.2929 -0.0854999 -0.4444 -0.0854999c-0.1414 0 -0.202 0.1805 -0.202 0.285c0 0.114 0.0909 0.247 0.2222 0.247c0.1212 0 0.2424 -0.0664999 0.3636 -0.0664999
+ c0.4545 0 0.4545 0.798 0.4545 1.083c0 0.4275 0.0201999 1.463 -0.6363 1.463c-0.7575 0 -0.7777 -1.387 -0.7777 -1.881v-3.9425h0.3131c0.0303 -0.2375 0.2929 -0.494004 0.5555 -0.494004c0.6868 0 0.8282 0.560508 0.8282 1.0925z" />
+ </font>
+ <font xml:id="beta3" horiz-adv-x="55000" >
+ <font-face
+ font-family="SVGbeta3"
+ font-weight="500"
+ units-per-em="10000"
+ ascent="8000"
+ descent="-2000"
+ unicode-range="U+03B2"
+ />
+ <missing-glyph />
+ <glyph glyph-name="beta" unicode="β"
+ d="M5223.5 1770.5c0 -1035.5 -737.3 -2014.0 -1908.9 -2014.0c-626.2 0 -1232.2 227.998 -1383.7 855.0h-20.1999v-2611.5h-1353.4v5737.0c0 1368.0 373.691 3049.5 2181.6 3049.5c959.5 0 1989.7 -408.5 1989.7 -1453.5c0 -940.5 -727.2 -1330.0 -1605.9 -1520.0v-18.9999
+ c1262.5 -161.5 2100.8 -760.0 2100.8 -2023.5zM3607.5 1286.0v807.5c0 418.0 -30.3 1491.5 -676.7 1491.5c-151.5 0 -292.9 -85.4999 -444.4 -85.4999c-141.4 0 -202.0 180.5 -202.0 285.0c0 114.0 90.9 247.0 222.2 247.0c121.2 0 242.4 -66.4999 363.6 -66.4999
+ c454.5 0 454.5 798.0 454.5 1083.0c0 427.5 20.1999 1463.0 -636.3 1463.0c-757.5 0 -777.7 -1387.0 -777.7 -1881.0v-3942.5h313.1c30.3 -237.5 292.9 -494.004 555.5 -494.004c686.8 0 828.2 560.508 828.2 1092.5z" />
+ </font>
+ </defs>
+ <!-- alphabetic baseline -->
+ <path stroke-width="2" stroke="#888" d="M 50,200 H 420"/>
+ <!-- ascent -->
+ <path stroke-width="2" stroke="#888" d="M 50, 56 H 420"/>
+ <!-- descent -->
+ <path stroke-width="2" stroke="#888" d="M 50, 236 H 420"/>
+
+ <text x="50" y="200" font-family="SVGbeta1" font-size="180">β</text>
+ <text x="180" y="200" font-family="SVGbeta2" font-size="180">β</text>
+ <text x="310" y="200" font-family="SVGbeta3" font-size="180">β</text>
+
+ <text x="60" y="260" font-size="10">1,000</text>
+ <text x="190" y="260" font-size="10">10</text>
+ <text x="320" y="260" font-size="10">10,000</text>
+ <text x="110" y="280" font-size="16">varying units-per-em values</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/ignore-struct-use-201-t.svg b/test/svg/svg1.2/svg/ignore-struct-use-201-t.svg
new file mode 100644
index 0000000..5c0fb64
--- /dev/null
+++ b/test/svg/svg1.2/svg/ignore-struct-use-201-t.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test reference restrictions on the 'use' element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-use-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests reference restrictions on the use element. Each of the 5 different
+ restrictions is tested.
+ </p>
+ <p>
+ A compliant SVG Tiny 1.2 user agent must treat each of the invalid IRI:s as if the xlink:href
+ attribute hadn't been specified, which is the same as disabling rendering of the use element
+ in question. Thus for the test to pass none of the content that the use elements try to reference
+ must be visible, the end result should be 5 empty (white) rects.
+ </p>
+ <p>
+ For a user agent that handles at least SVG 1.1 Basic the testcase has still passed if the referenced
+ content in the rect that is labelled "B" is visible since this is allowed for 1.1.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="50" text-anchor="middle">Test <use> reference restrictions</text>
+
+ <g>
+ <!-- this is an invalid IRI because it directly creates a circular dependency -->
+ <use xlink:href="#svg-root" x="20" y="105" width="80" height="80"/>
+ <rect x="15" y="100" width="90" height="120" fill="none" stroke="black"/>
+ <rect x="15" y="190" width="90" height="30" fill="none" stroke="black"/>
+ <text x="60" y="210" text-anchor="middle">A</text>
+ </g>
+ <g>
+ <!-- this is an invalid IRI because it references an svg fragment, however it may be visible if SVG 1.1 is supported -->
+ <use xlink:href="../images/resources.svg#svg-root" x="110" y="105" width="80" height="80"/>
+ <rect x="105" y="100" width="90" height="120" fill="none" stroke="black"/>
+ <rect x="105" y="190" width="90" height="30" fill="none" stroke="black"/>
+ <text x="150" y="210" text-anchor="middle">B</text>
+ </g>
+ <g>
+ <!-- this is an invalid IRI because it references an entire file -->
+ <use xlink:href="../images/resources.svg" x="200" y="105" width="80" height="80"/>
+ <rect x="195" y="100" width="90" height="120" fill="none" stroke="black"/>
+ <rect x="195" y="190" width="90" height="30" fill="none" stroke="black"/>
+ <text x="240" y="210" text-anchor="middle">C</text>
+ </g>
+ <g>
+ <!-- this is an invalid IRI because it references a media resource other than svg -->
+ <use xlink:href="../images/1pixelred.png" x="290" y="105" width="80" height="80"/>
+ <rect x="285" y="100" width="90" height="120" fill="none" stroke="black"/>
+ <rect x="285" y="190" width="90" height="30" fill="none" stroke="black"/>
+ <text x="330" y="210" text-anchor="middle">D</text>
+ </g>
+ <g>
+ <!-- this is an invalid IRI because data IRI:s are not allowed on 'use' -->
+ <use xlink:href="data:image/svg+xml;charset=utf-8,%3Crect%20width%3D%22100%22%20height%3D%22100%22%20fill%3D%22red%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%2F%3E"
+ x="380" y="105" width="80" height="80"/>
+ <rect x="375" y="100" width="90" height="120" fill="none" stroke="black"/>
+ <rect x="375" y="190" width="90" height="30" fill="none" stroke="black"/>
+ <text x="420" y="210" text-anchor="middle">E</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/ignore-struct-use-recursion-01-t.svg b/test/svg/svg1.2/svg/ignore-struct-use-recursion-01-t.svg
new file mode 100644
index 0000000..8923125
--- /dev/null
+++ b/test/svg/svg1.2/svg/ignore-struct-use-recursion-01-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="DS" desc="Test for recursion in 'use' elements." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-use-recursion-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test checks for recursion in 'use' elements. The passing conditions are that the browser does not crash, and that at least one orange circle, and one yellow circle, and a line of green text are rendered.
+ Also, on an implementation-specific basis, additional orange and yellow circles with a dashed gray stroke may or may not be rendered, depending upon when and how the implementation detects the circular reference,
+ with the number of dashed circles of a given color indicating now many times the level of recurrsion permitted by the implementation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-recursion-01-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="group-1">
+ <circle xml:id="circle-1" cx='100' cy='25' r='10' fill='#FF7F00' />
+ <use xml:id="use-1" x="0" y="25" xlink:href="#group-2" stroke="gray" stroke-width="2" stroke-dasharray="4" stroke-linecap="round"/>
+ </g>
+ <g xml:id="group-2">
+ <circle xml:id="circle-2" cx='380' cy='25' r='10' fill='#FFFF00' />
+ <use xml:id="use-2" x="0" y="25" xlink:href="#group-1" stroke="gray" stroke-width="2" stroke-dasharray="4" stroke-linecap="round"/>
+ </g>
+
+ <text xml:id="pass" x="240" y="280" text-anchor="middle" fill="green" font-size="24">This text should be visible.</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/interact-dom-02-t.png b/test/svg/svg1.2/svg/interact-dom-02-t.png
new file mode 100644
index 0000000..6bbf982
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-dom-02-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-dom-02-t.svg b/test/svg/svg1.2/svg/interact-dom-02-t.svg
new file mode 100644
index 0000000..7bf4daf
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-dom-02-t.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <handler type="application/ecmascript" xe:event="load">
+ initTest(evt);
+ </handler>
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="VH" desc="Checks if DOM/ECMA Script binding is supported. Checks that the DOM API supports event listener registration/unregistration." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: interact-dom-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify basic support for DOM event listener registration. The root svg element has an
+ onload handler where a click event listener is registered on group element 'Start Button'.
+ </p>
+ <p>
+ If UI events listener registration is supported (and UI events), when the user
+ clicks on the button a text node is inserted reading "Event Listeners supported".
+ </p>
+ <p>
+ At the end of the test, the start test button in changed to pink,
+ and the click event listener is removed from the the start button.
+ </p>
+ <p>
+ Subsequent clicks on the start button should cause no effect if the event listener has
+ been removed successfully. If additional lines of text appear in the document that say
+ "Event Listeners supported", then the implementation has not successfully removed the event listener.
+ </p>
+ <p>
+ After clicking at least once on the button, the rendered image should be
+ exactly as the reference image, except for differences in text display.
+ </p>
+ <p>This test requires that the user agent support scripting.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-dom-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript">
+ <![CDATA[
+ var svg_ns = "http://www.w3.org/2000/svg"
+ var doc;
+ var content;
+ var startButton;
+ var buttonRect;
+ var yLocation = 280;
+
+ //
+ // onload handler for top level svg element. Sets a UI event listener for
+ // the test start button.
+ //
+ function initTest(evt)
+ {
+ // Get Document
+ var target = evt.target;
+ doc = target.ownerDocument;
+ content = doc.getElementById("test-body-content");
+
+ // Get start rect and add a UI listener
+ startButton = doc.getElementById("startButton");
+ buttonRect = doc.getElementById("buttonRect");
+ startButton.addEventListener("click", uiEventDetected, false);
+ }
+
+ //
+ // click handler for 'startButton' rect element.
+ //
+ function uiEventDetected(evt)
+ {
+ //
+ // Add an element to show that UI event was detected
+ //
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('x', '5');
+ newText.setAttribute('y', yLocation);
+ newText.setAttribute('font-size', '40');
+ var message = "Event Listeners supported";
+ newText.textContent = message;
+ content.appendChild(newText);
+ startButton.removeEventListener("click", uiEventDetected, false);
+
+ // Make start button pink
+ buttonRect.setAttribute("fill", "#ff8888");
+ buttonRect.setAttribute("stroke", "black");
+
+ // If test does not successfully remove the event listener, then
+ // a second click will cause a subsequent text string to appear 50 units
+ // below the first new text string.
+ yLocation = yLocation + 50;
+ }
+ ]]>
+ </script>
+ <!-- ===================================================================== -->
+ <!-- Start button -->
+ <!-- ===================================================================== -->
+ <g xml:id="startButton">
+ <rect xml:id="buttonRect" x="65" y="20" width="350" height="200" fill="#dddddd" stroke="black" />
+ <text font-size="54" x="120" y="130">Start Test</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-event-201-t.png b/test/svg/svg1.2/svg/interact-event-201-t.png
new file mode 100644
index 0000000..74f23f8
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-event-201-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-event-201-t.svg b/test/svg/svg1.2/svg/interact-event-201-t.svg
new file mode 100644
index 0000000..861da26
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-event-201-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Testing event bubbling on focus event" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: interact-event-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on event bubbling. Moving focus should make a red rect visible/invisible
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-event-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="gruppen">
+ <rect xml:id="r1" x="10" y="20" width="90" height="65" fill="red" visibility="hidden"
+ focusable="true" nav-index="23"/>
+ </g>
+
+ <xe:listener observer="gruppen" event="focusin" handler="#handler1"/>
+ <xe:listener observer="gruppen" event="focusout" handler="#handler4"/>
+
+ <handler xml:id="handler1" type="text/ecmascript">
+ r1.setTrait("visibility", "visible");
+ </handler>
+ <handler xml:id="handler4" type="text/ecmascript">
+ r1.setTrait("visibility", "hidden");
+ </handler>
+
+ <script type="text/ecmascript">
+ <![CDATA[
+ var r1 = document.getElementById("r1");
+ var gruppen = document.getElementById("gruppen");
+ ]]>
+ </script>
+ <text x="10" y="200" font-size="20">moving focus should make a red rect visible/invisible</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/interact-event-202-t.png b/test/svg/svg1.2/svg/interact-event-202-t.png
new file mode 100644
index 0000000..3105be7
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-event-202-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-event-202-t.svg b/test/svg/svg1.2/svg/interact-event-202-t.svg
new file mode 100644
index 0000000..a72ce99
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-event-202-t.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns:xhtml="http://www.w3.org/1999/xhtml"
+ reviewer="AE" owner="ASl" desc="Event bubbling with 'use'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-event-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Testing event bubbling through 'use' elemnt.
+ Moving the mouse over the red rect should make a yellow rect visible underneath it.
+ Moving the mouse over the green rect should make a purple rect visible underneath it.
+ Moving the mouse away from the red/green rect should hide the rect underneath it again.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-event-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+
+ <rect xml:id="r1" x="10" y="20" width="90" height="65" visibility="inherit" fill="inherit"/>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="g1" transform="translate( 0, 0)" visibility="visible">
+ <use xlink:href="#r1" visibility="inherit" fill="red">
+ <handler type="text/ecmascript" xe:event="mouseover">
+ g3.setTrait("visibility", "visible");
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ g3.setTrait("visibility", "hidden");
+ </handler>
+ </use>
+ </g>
+ <g xml:id="g2" transform="translate(90, 0)" visibility="visible">
+ <use xlink:href="#r1" visibility="inherit" fill="green"/>
+ <handler type="text/ecmascript" xe:event="mouseover">
+ g4.setTrait("visibility", "visible");
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ g4.setTrait("visibility", "hidden");
+ </handler>
+ </g>
+ <g xml:id="g3" transform="translate( 0, 65)" visibility="hidden">
+ <use xlink:href="#r1" visibility="inherit" fill="yellow"/>
+ </g>
+ <g xml:id="g4" transform="translate(90, 65)" visibility="hidden">
+ <use xlink:href="#r1" visibility="inherit" fill="purple"/>
+ </g>
+
+ <script type="text/ecmascript">
+ var g1 = document.getElementById("g1");
+ var g2 = document.getElementById("g2");
+ var g3 = document.getElementById("g3");
+ var g4 = document.getElementById("g4");
+ </script>
+ <text x="10" y="160" font-size="12">Moving the mouse over the red rect should make a yellow rect visible underneath it.</text>
+ <text x="10" y="175" font-size="12">Moving the mouse over the green rect should make a purple rect visible underneath it.</text>
+ <text x="10" y="190" font-size="12">Moving the mouse away from the red/green rect should hide</text>
+ <text x="20" y="205" font-size="12">the rect underneath it again.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/interact-event-203-t.png b/test/svg/svg1.2/svg/interact-event-203-t.png
new file mode 100644
index 0000000..ee67e69
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-event-203-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-event-203-t.svg b/test/svg/svg1.2/svg/interact-event-203-t.svg
new file mode 100644
index 0000000..8c9ef96
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-event-203-t.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Shadow tree event listener chain" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: interact-event-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests 'mouseover' event on SVGElementInstance</p>
+ <p>
+ This test contains four cases. The cases must produce the following results for the test to pass.
+ Case 1: On a mouseover event on the top square, all four squares must turn blue.
+ Case 2: On a mouseover event on the top middle square, all four squares must turn blue and a black stroke
+ must appear on the referencing square (element).
+ Case 3: On a mouseover event on the bottom middle square, all four squares must turn blue and a black
+ stroke must appear on the referencing square (element).
+ Case 4: On a mouseover event on the bottom square, all four squares must turn blue, and on a mousedown event
+ a black stroke must appear on the referencing square (element).
+ </p>
+ <p>
+ What each case tests is as follows.
+ Case 1: mouseover event on SVGElementInstance. Referenceing an element that contains an event.
+ Case 2: mouseover event on referencing element. Event bubbling from SVGElementInstance to referencing element.
+ Case 3: mouseover event on parent of referencing element. Event bubbling from SVGElementInstance to referencing element ancestors.
+ Case 4: mousedown event on referencing element. SVGElementInstance is not effected by event listener on referencing element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-event-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <!-- SVGElementInstance animates fill on mouseover -->
+ <rect xml:id="rect" width="50" height="50" fill="red">
+ <set attributeName="fill" begin="mouseover" end="mouseout" to="blue"/>
+ </rect>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="120" y="20" font-size="15">Shadow tree event listener chain</text>
+
+ <!--basic event dispatch - all rectangles turn blue -->
+ <use fill="red" x="30" y="30" xlink:href="#rect"/>
+ <text x="95" y="45" font-size="12">Case 1: on mouseover all squares must turn blue</text>
+
+ <!-- event bubbling from SVGElementInstance to referencing element -->
+ <!-- all rectangles turn blue and second rectangle displays black stroke -->
+ <use xml:id="use2" fill="red" x="30" y="100" xlink:href="#rect"/>
+ <rect pointer-events="none" x="30" y="100" width="50" height="50" fill="none" stroke-width="5" stroke="none" >
+ <set attributeName="stroke" begin="use2.mouseover" end="use2.mouseout" to="black"/>
+ </rect>
+ <g font-size="12">
+ <text x="95" y="115">Case 2: on mouseover all squares must turn blue</text>
+ <text x="95" y="130">and a black stroke must appear on reference square</text>
+ </g>
+
+ <!-- event bubbling from SVGElementInstance to referencing element ancestors-->
+ <!-- all rectangles turn blue and third rectangle displays black stroke -->
+ <g xml:id="g1">
+ <use fill="red" x="30" y="170" xlink:href="#rect"/>
+ <rect pointer-events="none" x="30" y="170" width="50" height="50" fill="none" stroke-width="5" stroke="none" >
+ <set attributeName="stroke" begin="g1.mouseover" end="g1.mouseout" to="black"/>
+ </rect>
+ </g>
+ <g font-size="12">
+ <text x="95" y="185">Case 3: on mouseover all squares must turn blue</text>
+ <text x="95" y="200">and a black stroke must appear on reference square</text>
+ </g>
+
+ <!--SVGElementInstance is not effected by event listener on referencing element -->
+ <!-- all rectangles turn blue and displays black stroke only on mouse down -->
+ <use xml:id="use3" fill="red" x="30" y="240" xlink:href="#rect"/>
+ <rect pointer-events="none" x="30" y="240" width="50" height="50" fill="none" stroke-width="5" stroke="none" >
+ <set attributeName="stroke" begin="use3.mousedown" end="use3.mouseup" to="black"/>
+ </rect>
+ <g font-size="12">
+ <text x="95" y="255">Case 4: on mouseover all squares must turn blue</text>
+ <text x="95" y="270">and on mousedown a black stroke must appear on reference square</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-201-t.png b/test/svg/svg1.2/svg/interact-focus-201-t.png
new file mode 100644
index 0000000..e72ec0c
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-201-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-201-t.svg b/test/svg/svg1.2/svg/interact-focus-201-t.svg
new file mode 100644
index 0000000..d9b8008
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-201-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg nav-next="url(#defaultText)" version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Property on Animated Elements." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: interact-focus-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Property on Animated Elements.</p>
+ <p>Two rectangles and a text element are targets of animateColor elements which begin on focusin and end on focusout.</p>
+ <p>The top-level SVG has a nav-next attribute referencing the text element.</p>
+ <p>When loading the file, initial focus will go to the text element, which should be red.</p>
+ <p>Moving to the next focus will turn the text black while making the blue rectangle green.</p>
+ <p>Moving to the next focus will return the rectangle to blue and make the red rectangle green.</p>
+ <p>Moving to the next focus will return the rectangle to red and turn the text red.</p>
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ <p>
+ User agent dependent behavior is accepted with all focus tests. Focus can be given immediately to first element in the focus ring,
+ or held in the UA until focus is requested - then focus is given to the first element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="50" text-anchor="middle" font-size="16" fill="#000">Test Focusable Property on Animated Elements.</text>
+ <g transform="translate(130,5) scale(2.5)" font-size="10">
+ <g transform="translate(30, 60)" xml:id="anim1">
+ <g transform="translate(-15,-15)">
+ <rect width="30" height="30" fill="blue">
+ <animateTransform attributeName="transform" xml:id="rect0" type="rotate" from="0,15,15" to="90,15,15" begin="0;rect1.end" dur="0.5"/>
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="blue" begin="focusout"/>
+ </rect>
+ </g>
+ <g transform="translate(15,-15)">
+ <rect width="30" height="30" fill="red">
+ <animateTransform attributeName="transform" xml:id="rect1" type="rotate" from="0,15,15" to="-90,15,15" begin="rect0.end" dur="0.5"/>
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="red" begin="focusout"/>
+ </rect>
+ </g>
+ </g>
+ <text x="45" y="100" xml:id="defaultText" text-anchor="middle" font-size="8">
+ Text has focus by default
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-202-t.png b/test/svg/svg1.2/svg/interact-focus-202-t.png
new file mode 100644
index 0000000..0a2c4c1
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-202-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-202-t.svg b/test/svg/svg1.2/svg/interact-focus-202-t.svg
new file mode 100644
index 0000000..745da4a
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-202-t.svg
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Property - Anchor Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: interact-focus-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Property</p>
+ <p>Testing the focusable property : its default value and animatability on text and anchor elements.</p>
+ <p>The 1st text is the target of animateColor which starts on focusin, and also has the focusable attribute set to false.</p>
+ <p>The 2nd text does not have a focusable attribute and is not the target of animations which start by focus events.</p>
+ <p>The 3rd text is the target of animateColor which starts on focusin.</p>
+ <p>The 4th text is the target of animateColor which starts on activate.</p>
+ <p>The 5th text is the child of an a element.</p>
+ <p>The 6th text is the child of an a element and also has the focusable attribute set to false.</p>
+ <p>The 7th text has the editable attribute set to simple.</p>
+ <p>The 8th text is the observer DOMFocusIn and DOMFocusOut handlers.</p>
+ <p>The 9th and 10th text elements are used to modify the focusable attribute of the 11th element.</p>
+ <p>
+ The 11th text is the target of animateColor which starts on focusin, and also has the focusable attribute set to false.
+ The focusable attribute is modified by activate events on the 9th and 10th elements.
+ </p>
+ <p>The 12th and 13th text elements are used to modify the focusable attribute of the 14th element.</p>
+ <p>
+ The 14th text is the child of an a element - the a element also has the focusable attribute set to false.
+ The focusable attribute is modified by activate events on the 12th and 13th elements.
+ </p>
+
+ <p>The focus ring will look like the following: 3, 4, 5, 7, 8, 9, 10, 12 and 13.</p>
+ <p>Activating the 9th text element will make the 11th element focusable.</p>
+ <p>Activating the 12th text element will make the 14th element focusable.</p>
+
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-202-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function setRed() {
+ var myText6 = document.getElementById("text6");
+ myText6.setTrait("fill", "red");
+ }
+ function setBlack() {
+ var myText6 = document.getElementById("text6");
+ myText6.setTrait("fill", "black");
+ }
+ ]]>
+ </script>
+
+ <rect xml:id="myRect" width="200" height="20" fill="#DDD" stroke="none"/>
+ </defs>
+
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <use xlink:href="#myRect" x="40" y="80" />
+ <text xml:id="text0" x="50" y="95" focusable="false" font-size="12" >
+ Unfocusable (explicit)
+ <set attributeName="fill" to="red" begin="text0.focusin"/>
+ <set attributeName="fill" to="black" begin="text0.focusout"/>
+ </text>
+
+ <use xlink:href="#myRect" x="40" y="110" />
+ <text xml:id="text00" x="50" y="125" font-size="12" >
+ Unfocusable (implicit)
+ </text>
+
+ <use xlink:href="#myRect" x="40" y="140" />
+ <text xml:id="text1" x="50" y="155" font-size="12" >
+ Focusable (red on focus)
+ <set attributeName="fill" to="red" begin="text1.focusin" end="text1.focusout; indefinite"/>
+ </text>
+
+ <use xlink:href="#myRect" x="40" y="170" />
+ <text xml:id="text3" x="50" y="185" font-size="12" >
+ Focusable (red on activate)
+ <set attributeName="fill" to="red" begin="text3.activate"/>
+ </text>
+
+ <use xlink:href="#myRect" x="40" y="200" />
+ <a xml:id="text4" xlink:href="#text1">
+ <text x="50" y="215" font-size="12" >
+ Focusable : <a> (silent)
+ </text>
+ </a>
+
+ <use xlink:href="#myRect" x="40" y="230" />
+ <a xml:id="text5" xlink:href="#text1" focusable="false">
+ <text x="50" y="245" font-size="12" >
+ Unfocusable <a>
+ </text>
+ <set attributeName="fill" to="blue" begin="text5.focusin" end="text5.focusout; indefinite"/>
+ </a>
+
+ <use xlink:href="#myRect" x="40" y="260" />
+ <text x="50" y="275" editable="simple" font-size="12" >
+ Focusable : editable text (silent)
+ </text>
+
+ <use xlink:href="#myRect" x="260" y="80" />
+ <text xml:id="text6" x="270" y="95" font-size="12" >
+ Focusable : listeners (red on focus)
+ </text>
+ <xe:listener event="DOMFocusIn" observer="text6" handler="#myFocusinHandler" />
+ <xe:listener event="DOMFocusOut" observer="text6" handler="#myFocusoutHandler" />
+ <handler xml:id="myFocusinHandler">setRed()</handler>
+ <handler xml:id="myFocusoutHandler">setBlack()</handler>
+
+ <use xlink:href="#myRect" x="260" y="110" />
+ <text xml:id="text7" x="270" y="125" font-size="12" >
+ activate to make (0) focusable
+ <set attributeName="fill" to="red" begin="text7.focusin" end="text7.focusout; indefinite"/>
+ </text>
+
+ <use xlink:href="#myRect" x="260" y="140" />
+ <text xml:id="text8" x="270" y="155" font-size="12" >
+ activate to make (0) unfocusable
+ <set attributeName="fill" to="red" begin="text8.focusin" end="text8.focusout; indefinite"/>
+ </text>
+
+ <use xlink:href="#myRect" x="260" y="170" />
+ <text xml:id="text9" x="270" y="185" focusable="false" font-size="12" >
+ (0) : red on focus
+ <set attributeName="fill" to="red" begin="text9.focusin" end="text9.focusout; indefinite"/>
+ <set attributeName="focusable" to="true" begin="text7.activate" end="text8.activate; indefinite"/>
+ </text>
+
+ <use xlink:href="#myRect" x="260" y="200" />
+ <text xml:id="text10" x="270" y="215" font-size="12" >
+ activate to make (1) focusable
+ <set attributeName="fill" to="red" begin="text10.focusin" end="text10.focusout; indefinite"/>
+ </text>
+
+ <use xlink:href="#myRect" x="260" y="230" />
+ <text xml:id="text11" x="270" y="245" font-size="12" >
+ activate to make (1) unfocusable
+ <set attributeName="fill" to="red" begin="text11.focusin" end="text11.focusout; indefinite"/>
+ </text>
+
+ <use xlink:href="#myRect" x="260" y="260" focusable="false"/>
+ <a xlink:href="#text1" focusable="false">
+ <text xml:id="text12" x="270" y="275" focusable="false" font-size="12" >
+ (1) : <a> (silent)
+ </text>
+ <set attributeName="focusable" to="auto" begin="text10.activate" end="text11.activate; indefinite"/>
+ </a>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-203-t.png b/test/svg/svg1.2/svg/interact-focus-203-t.png
new file mode 100644
index 0000000..e9c4232
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-203-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-203-t.svg b/test/svg/svg1.2/svg/interact-focus-203-t.svg
new file mode 100644
index 0000000..e0be549
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-203-t.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Elements Outside the Viewport" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: interact-focus-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Elements Outside the Viewport</p>
+ <p>
+ User interaction should navigate focus starting at 1 and go through 5.
+ This test applies only to user agents which locate to focus which is outside of the viewport, and
+ thus the pass criteria for this test is optional.
+ </p>
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" text-anchor="middle" font-size="16" fill="#000">Test Focusable Elements Outside the Viewport</text>
+ <text x="240" y="50" text-anchor="middle" font-size="12" fill="#555">User interaction should navigate focus starting at 1 and go through 5.</text>
+ <text x="240" y="65" text-anchor="middle" font-size="12" fill="#555">This test applies only to user agents which</text>
+ <text x="240" y="80" text-anchor="middle" font-size="12" fill="#555">locate to focus which is outside of the viewport.</text>
+ <g transform="translate(80,320) scale(3)">
+ <line x1="-50" y1="50" x2="150" y2="50" stroke="green"/>
+ <line x1="50" y1="-50" x2="50" y2="150" stroke="green"/>
+ <circle focusable="true" xml:id="circle1" cx="50" cy="-50" r="10" fill="black">
+ <set attributeName="fill" to="red" begin="circle1.focusin"/>
+ <set attributeName="fill" to="black" begin="circle1.focusout"/>
+ </circle>
+ <text x="50" y="-46" fill="white" text-anchor="middle">1</text>
+ <circle focusable="true" xml:id="circle2" cx="50" cy="50" r="10" fill="black">
+ <set attributeName="fill" to="red" begin="circle2.focusin"/>
+ <set attributeName="fill" to="black" begin="circle2.focusout"/>
+ </circle>
+ <text x="50" y="54" fill="white" text-anchor="middle">2</text>
+ <circle focusable="true" xml:id="circle3" cx="50" cy="150" r="10" fill="black">
+ <set attributeName="fill" to="red" begin="circle3.focusin"/>
+ <set attributeName="fill" to="black" begin="circle3.focusout"/>
+ </circle>
+ <text x="50" y="154" fill="white" text-anchor="middle">3</text>
+ <circle focusable="true" xml:id="circle4" cx="-50" cy="50" r="10" fill="black">
+ <set attributeName="fill" to="red" begin="circle4.focusin"/>
+ <set attributeName="fill" to="black" begin="circle4.focusout"/>
+ </circle>
+ <text x="-50" y="54" fill="white" text-anchor="middle">4</text>
+ <circle focusable="true" xml:id="circle5" cx="150" cy="50" r="10" fill="black">
+ <set attributeName="fill" to="red" begin="circle5.focusin"/>
+ <set attributeName="fill" to="black" begin="circle5.focusout"/>
+ </circle>
+ <text x="150" y="54" fill="white" text-anchor="middle">5</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-204-t.png b/test/svg/svg1.2/svg/interact-focus-204-t.png
new file mode 100644
index 0000000..b871fa0
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-204-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-204-t.svg b/test/svg/svg1.2/svg/interact-focus-204-t.svg
new file mode 100644
index 0000000..b751794
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-204-t.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg nav-next="url(#t5)" version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Elements - Focus Direction" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: interact-focus-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Elements - Focus Direction</p>
+ <p>Focused text should be red. The default focus is the number 5.</p>
+ <p>Cardinal focus changes should work as expected, with wrapping.</p>
+ <p>Next/Previous go to next/prev numerical value.</p>
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <g text-anchor="middle" font-size="16">
+ <text xml:id="display-title" x="240" y="40" text-anchor="middle" font-size="16" fill="#000">
+ Test Focusable Elements - Focus Direction
+ </text>
+ <text xml:id="comment-1" x="240" y="60" text-anchor="middle" font-size="12" fill="#555">
+ Focused text should be red. The default focus is the number 5.
+ </text>
+ <text xml:id="comment-2" x="240" y="72" text-anchor="middle" font-size="12" fill="#555">
+ Cardinal focus changes should work as expected, with wrapping.
+ </text>
+ <text xml:id="comment-3" x="240" y="84" text-anchor="middle" font-size="12" fill="#555">
+ Next/Previous go to next/prev numerical value.
+ </text>
+ <g transform="scale(3.5,3) translate(40,-12) ">
+ <a xml:id="t7" xlink:href="#t1" nav-up="url(#t1)" nav-down="url(#t4)" nav-right="url(#t8)" nav-left="url(#t9)" nav-up-right="url(#t2)" nav-down-right="url(#t5)" nav-up-left="url(#t3)" nav-down-left="url(#t6)" nav-next="url(#t8)" nav-prev="url(#t6)">
+ <text x="10" y="60" text-anchor="middle">
+ 7
+ <set attributeName="fill" to="red" begin="t7.focusin"/>
+ <set attributeName="fill" to="black" begin="t7.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t8" xlink:href="#t1" nav-up="url(#t2)" nav-down="url(#t5)" nav-right="url(#t9)" nav-left="url(#t7)" nav-up-right="url(#t3)" nav-down-right="url(#t6)" nav-up-left="url(#t1)" nav-down-left="url(#t4)" nav-next="url(#t9)" nav-prev="url(#t7)">
+ <text x="30" y="60" text-anchor="middle">
+ 8
+ <set attributeName="fill" to="red" begin="t8.focusin"/>
+ <set attributeName="fill" to="black" begin="t8.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t9" xlink:href="#t1" nav-up="url(#t3)" nav-down="url(#t6)" nav-right="url(#t7)" nav-left="url(#t8)" nav-up-right="url(#t1)" nav-down-right="url(#t4)" nav-up-left="url(#t2)" nav-down-left="url(#t5)" nav-next="url(#t1)" nav-prev="url(#t8)">
+ <text x="50" y="60" text-anchor="middle">
+ 9
+ <set attributeName="fill" to="red" begin="t9.focusin"/>
+ <set attributeName="fill" to="black" begin="t9.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t4" xlink:href="#t1" nav-up="url(#t7)" nav-down="url(#t1)" nav-right="url(#t5)" nav-left="url(#t6)" nav-up-right="url(#t8)" nav-down-right="url(#t2)" nav-up-left="url(#t9)" nav-down-left="url(#t3)" nav-next="url(#t5)" nav-prev="url(#t3)">
+ <text x="10" y="80" text-anchor="middle">
+ 4
+ <set attributeName="fill" to="red" begin="t4.focusin"/>
+ <set attributeName="fill" to="black" begin="t4.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t5" xlink:href="#t1" nav-up="url(#t8)" nav-down="url(#t2)" nav-right="url(#t6)" nav-left="url(#t4)" nav-up-right="url(#t9)" nav-down-right="url(#t3)" nav-up-left="url(#t7)" nav-down-left="url(#t1)" nav-next="url(#t6)" nav-prev="url(#t4)">
+ <text x="30" y="80" text-anchor="middle">
+ 5
+ <set attributeName="fill" to="red" begin="t5.focusin"/>
+ <set attributeName="fill" to="black" begin="t5.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t6" xlink:href="#t1" nav-up="url(#t9)" nav-down="url(#t3)" nav-right="url(#t4)" nav-left="url(#t5)" nav-up-right="url(#t7)" nav-down-right="url(#t1)" nav-up-left="url(#t8)" nav-down-left="url(#t2)" nav-next="url(#t7)" nav-prev="url(#t5)">
+ <text x="50" y="80" text-anchor="middle">
+ 6
+ <set attributeName="fill" to="red" begin="t6.focusin"/>
+ <set attributeName="fill" to="black" begin="t6.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t1" xlink:href="#t1" nav-up="url(#t4)" nav-down="url(#t7)" nav-right="url(#t2)" nav-left="url(#t3)" nav-up-right="url(#t5)" nav-down-right="url(#t8)" nav-up-left="url(#t6)" nav-down-left="url(#t9)" nav-next="url(#t2)" nav-prev="url(#t9)">
+ <text x="10" y="100" text-anchor="middle">
+ 1
+ <set attributeName="fill" to="red" begin="t1.focusin"/>
+ <set attributeName="fill" to="black" begin="t1.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t2" xlink:href="#t1" nav-up="url(#t5)" nav-down="url(#t8)" nav-right="url(#t3)" nav-left="url(#t1)" nav-up-right="url(#t6)" nav-down-right="url(#t9)" nav-up-left="url(#t4)" nav-down-left="url(#t7)" nav-next="url(#t3)" nav-prev="url(#t1)">
+ <text x="30" y="100" text-anchor="middle">
+ 2
+ <set attributeName="fill" to="red" begin="t2.focusin"/>
+ <set attributeName="fill" to="black" begin="t2.focusout"/>
+ </text>
+ </a>
+ <a xml:id="t3" xlink:href="#t1" nav-up="url(#t6)" nav-down="url(#t9)" nav-right="url(#t1)" nav-left="url(#t2)" nav-up-right="url(#t4)" nav-down-right="url(#t7)" nav-up-left="url(#t5)" nav-down-left="url(#t8)" nav-next="url(#t4)" nav-prev="url(#t2)">
+ <text x="50" y="100" text-anchor="middle">
+ 3
+ <set attributeName="fill" to="red" begin="t3.focusin"/>
+ <set attributeName="fill" to="black" begin="t3.focusout"/>
+ </text>
+ </a>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-205-t.png b/test/svg/svg1.2/svg/interact-focus-205-t.png
new file mode 100644
index 0000000..7c09bb5
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-205-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-205-t.svg b/test/svg/svg1.2/svg/interact-focus-205-t.svg
new file mode 100644
index 0000000..410945c
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-205-t.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Elements - Nested Elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: interact-focus-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Elements - Nested Elements</p>
+ <p>The circle should first be focused (red), then each square should stay red, due to bubbling.</p>
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="10" height="275" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="30" text-anchor="middle" font-size="16" fill="#000">Test Focusable Elements - Nested Elements</text>
+ <text xml:id="comment-1" x="240" y="50" text-anchor="middle" font-size="12" fill="#555">The circle should first be focused (red), </text>
+ <text xml:id="comment-2" x="240" y="62" text-anchor="middle" font-size="12" fill="#555">then each square should stay red, due to bubbling</text>
+ <g transform="translate(90,15)">
+ <circle focusable="true" xml:id="circle1" cx="210" cy="160" r="100" fill="black">
+ <set attributeName="fill" to="red" begin="circle1.focusin"/>
+ <set attributeName="fill" to="black" begin="circle1.focusout"/>
+ </circle>
+ <g focusable="true" xml:id="g1" fill="black" stroke-width="5" stroke="white">
+ <rect x="10" y="60" width="200" height="200"/>
+ <set attributeName="fill" to="black" begin="g1.focusout"/>
+ <set attributeName="fill" to="red" begin="g1.focusin"/>
+ <g focusable="true" xml:id="g2" fill="black" stroke-width="5" stroke="white">
+ <rect x="40" y="90" width="140" height="140"/>
+ <set attributeName="fill" to="black" begin="g2.focusout"/>
+ <set attributeName="fill" to="red" begin="g2.focusin"/>
+ <g focusable="true" xml:id="g3" fill="black" stroke-width="5" stroke="white">
+ <rect x="70" y="120" width="80" height="80"/>
+ <set attributeName="fill" to="black" begin="g3.focusout"/>
+ <set attributeName="fill" to="red" begin="g3.focusin"/>
+ <g focusable="true" xml:id="g4" fill="black" stroke-width="5" stroke="white">
+ <rect x="100" y="150" width="20" height="20"/>
+ <set attributeName="fill" to="black" begin="g4.focusout"/>
+ <set attributeName="fill" to="red" begin="g4.focusin"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-206-t.png b/test/svg/svg1.2/svg/interact-focus-206-t.png
new file mode 100644
index 0000000..0829fa2
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-206-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-206-t.svg b/test/svg/svg1.2/svg/interact-focus-206-t.svg
new file mode 100644
index 0000000..4c0d372
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-206-t.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Elements - Invisible Items" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-focus-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Elements - Invisible Items</p>
+ <p>
+ Lines 1 to 3 should show up when receiving the focus.
+ Fill-opacity and visibility attributes are animated accordingly to show text.
+ </p>
+ <p>Line 4 should never receive the focus.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="40" text-anchor="middle" font-size="16" fill="#000">Test Focusable Elements - Invisible Items</text>
+ <text xml:id="comment-1" x="240" y="60" text-anchor="middle" font-size="12" fill="#555">Lines 1 to 3 should show up when receiving the focus. </text>
+ <text xml:id="comment-2" x="240" y="72" text-anchor="middle" font-size="12" fill="#555">Line 4 should never receive the focus.</text>
+ <g transform="translate(80,12) scale(2)" font-size="10">
+ <text x="10" y="60" >1</text>
+ <text xml:id="text1" x="25" y="60" fill-opacity="0">This text is 100% transparent</text>
+ <set xlink:href="#text1" attributeName="fill" to="red" begin="text1.focusin"/>
+ <set xlink:href="#text1" attributeName="fill-opacity" to="1" begin="text1.focusin"/>
+ <set xlink:href="#text1" attributeName="fill" to="black" begin="text1.focusout"/>
+ <set xlink:href="#text1" attributeName="fill-opacity" to="0" begin="text1.focusout"/>
+ <text x="10" y="80" >2</text>
+ <text xml:id="text2" x="25" y="80" fill="red" visibility="hidden">This text is invisible</text>
+ <set xlink:href="#text2" attributeName="visibility" to="visible" begin="text2.focusin"/>
+ <set xlink:href="#text2" attributeName="visibility" to="hidden" begin="text2.focusout"/>
+ <text x="10" y="100" >3</text>
+ <text xml:id="text3" fill="red" x="25" y="100">This text covered by a white rect</text>
+ <rect xml:id="rect" x="25" y="90" width="160" height="25" fill="white">
+ <set attributeName="visibility" to="hidden" begin="focusin"/>
+ <set attributeName="visibility" to="visible" begin="focusout"/>
+ </rect>
+ <text x="10" y="120">4</text>
+ <text xml:id="text4" x="25" y="120" fill="red" display="none">
+ This text has display="none"
+ <set attributeName="display" to="inline" begin="text4.focusin"/>
+ <set attributeName="display" to="none" begin="text4.focusout"/>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-207-t.png b/test/svg/svg1.2/svg/interact-focus-207-t.png
new file mode 100644
index 0000000..771dc3f
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-207-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-207-t.svg b/test/svg/svg1.2/svg/interact-focus-207-t.svg
new file mode 100644
index 0000000..5abffe9
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-207-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg focusable="true" xml:id="mySVG" version="1.2" baseProfile="tiny" width="100%"
+ height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="This test tests Initial focus within the svg document" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-focus-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test tests initial focus within the svg document</p>
+ <p>
+ The root SVG element has 'focusable' set to 'true'.
+ At start up an animation set element is used to change the poem
+ to red if the root element SVG has focus.
+ </p>
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="40" text-anchor="middle" font-size="16" fill="#000">Test Focusable Elements - Root SVG Element</text>
+ <text xml:id="comment-1" x="240" y="60" text-anchor="middle" font-size="12" fill="#555">The poem should be red, </text>
+ <text xml:id="comment-2" x="240" y="73" text-anchor="middle" font-size="12" fill="#555">showing that the top-level SVG element has the focus.</text>
+ <g text-anchor="start" font-size="22" >
+ <text x="165" y="140">The old pond</text>
+ <text x="165" y="165">A frog jumped in,</text>
+ <text x="165" y="190" >Kerplunk!</text>
+ <set attributeName="fill" to="red" begin="mySVG.focusin"/>
+ <set attributeName="fill" to="black" begin="mySVG.focusout"/>
+ </g>
+ <text fill="#555" text-anchor="end" x="450" y="270" font-size="8">Frog Haiku by Matsuo Basho (1686), translated by Allen Ginsberg</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-208-t.png b/test/svg/svg1.2/svg/interact-focus-208-t.png
new file mode 100644
index 0000000..d3bcda7
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-208-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-208-t.svg b/test/svg/svg1.2/svg/interact-focus-208-t.svg
new file mode 100644
index 0000000..972c965
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-208-t.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Elements - tspan Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-focus-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Elements - tspan Element</p>
+ <p>
+ Each tspan has an animation that sets the fill to green upon receiving
+ focus. The focus should be moved in turn to "Old", "pond", "frogs",
+ "jumped", "in", "sound", "of" and then "water".
+ </p>
+ <p>
+ For the test to pass:
+ </p>
+ <ul>
+ <li>
+ "Old", "pond", and "sound", "of" and "water" must each turn green
+ respectively when given focus.
+ </li>
+ <li>
+ "frogs" and "in" must both turn green at the same time when each is
+ given focus.
+ </li>
+ <li>
+ "jumped" must turn green when given focus and in addition "frogs" and
+ "in" must turn green at the same time due to focus bubbling.
+ </li>
+ </ul>
+ <p>
+ In the 2nd phrase there are two nested tspan elements: "jumped" is in
+ the inner tspan, so focus should be received by the outer two words
+ "frogs", "in" and then by the word "jumped".
+ </p>
+ <p>
+ Focus navigation is user agent dependant but typically is navigated
+ with the keyboard keys.
+ </p>
+ <p>
+ TAB or arrow keys move the focus while the ENTER key activates the
+ focused element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="40" text-anchor="middle" font-size="16" fill="#000">Test Focusable Elements - tspan Element</text>
+ <text xml:id="comment-1" x="240" y="60" text-anchor="middle" font-size="14" fill="#555">
+ Give focus to each word.
+ </text>
+ <text x="240" y="185" text-anchor="middle" font-size="20" fill="#000">
+ <tspan focusable="true" xml:id="old" >
+ Old
+ <set attributeName="fill" to="green" begin="old.focusin"/>
+ <set attributeName="fill" to="inherit" begin="old.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="pond">
+ pond
+ <set attributeName="fill" to="green" begin="pond.focusin"/>
+ <set attributeName="fill" to="inherit" begin="pond.focusout"/>
+ </tspan>
+ <tspan > - </tspan>
+ <tspan focusable="true" xml:id="phrase2" fill="blue">
+ frogs
+ <tspan focusable="true" fill="#555" xml:id="jumped">
+ jumped
+ <set attributeName="fill" to="green" begin="jumped.focusin"/>
+ <set attributeName="fill" to="#555" begin="jumped.focusout"/>
+ </tspan>
+ in
+ <set attributeName="fill" to="green" begin="phrase2.focusin"/>
+ <set attributeName="fill" to="blue" begin="phrase2.focusout"/>
+ </tspan>
+ <tspan>-</tspan>
+ <tspan focusable="true" xml:id="sound">
+ sound
+ <set attributeName="fill" to="green" begin="sound.focusin"/>
+ <set attributeName="fill" to="inherit" begin="sound.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="of">
+ of
+ <set attributeName="fill" to="green" begin="of.focusin"/>
+ <set attributeName="fill" to="inherit" begin="of.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="water">
+ water
+ <set attributeName="fill" to="green" begin="water.focusin"/>
+ <set attributeName="fill" to="inherit" begin="water.focusout"/>
+ </tspan>
+ </text>
+ <text fill="#555" text-anchor="end" x="450" y="270" font-size="8">Frog Haiku by Matsuo Basho (1686), translated by Lafcadio Hearn</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-209-t.png b/test/svg/svg1.2/svg/interact-focus-209-t.png
new file mode 100644
index 0000000..589df46
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-209-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-209-t.svg b/test/svg/svg1.2/svg/interact-focus-209-t.svg
new file mode 100644
index 0000000..0d369ad
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-209-t.svg
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusable Elements - tspan in a textArea" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: interact-focus-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusable Elements - tspan in a textArea</p>
+ <p>
+ Each tspan has an animation that sets the fill to green upon receiving
+ focus. The focus should be moved in turn to "A", "lonely", "pond", "in",
+ "age-old", "stillness", "sleeps", "Apart,"
+ "unstirred by sound or motion", "... till", "Suddenly",
+ "into", "it", "a", "lithe", "frog" and then "leaps".
+ </p>
+ <p>
+ For the test to pass:
+ </p>
+ <ul>
+ <li>
+ "A", "lonely", "pond", "in", "age-old", "stillness", "sleeps",
+ "Suddenly", "into", "it", "a", "lithe", "frog" and "leaps" must each
+ turn green respectively when given focus.
+ </li>
+ <li>
+ "Apart" and "... till" must both turn green at the same time when
+ each is given focus.
+ </li>
+ <li>
+ "unstirred by sound or motion" must turn green when given focus and
+ in addition "Apart" and "... till" must turn green at the same time
+ due to focus bubbling.
+ </li>
+ </ul>
+ <p>
+ In the 2nd line there are two nested tspan elements - "unstirred by
+ sound or motion" is in the inner tspan, so focus should be received
+ first by the outer two words "Apart", "till" and then by the inner
+ phrase.
+ </p>
+ <p>
+ Focus navigation is user agent dependant but typically is navigated with
+ the keyboard keys.
+ </p>
+ <p>
+ TAB or arrow keys move the focus while the ENTER key activates the
+ focused element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="40" text-anchor="middle" font-size="16" fill="#000">Test Focusable Elements - tspan in a textArea</text>
+ <text xml:id="comment-1" x="240" y="60" text-anchor="middle" font-size="14" fill="#555">
+ Give focus to each word.
+ </text>
+ <textArea x="60" y="145" width="440" height="auto" text-anchor="start" font-size="18" line-increment="22" fill="#000">
+ <tspan focusable="true" xml:id="A">
+ A
+ <set attributeName="fill" to="green" begin="A.focusin"/>
+ <set attributeName="fill" to="inherit" begin="A.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="lonely">
+ lonely
+ <set attributeName="fill" to="green" begin="lonely.focusin"/>
+ <set attributeName="fill" to="inherit" begin="lonely.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="pond">
+ pond
+ <set attributeName="fill" to="green" begin="pond.focusin"/>
+ <set attributeName="fill" to="inherit" begin="pond.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="in">
+ in
+ <set attributeName="fill" to="green" begin="in.focusin"/>
+ <set attributeName="fill" to="inherit" begin="in.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="ageold">
+ age-old
+ <set attributeName="fill" to="green" begin="ageold.focusin"/>
+ <set attributeName="fill" to="inherit" begin="ageold.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="stillness">
+ stillness
+ <set attributeName="fill" to="green" begin="stillness.focusin"/>
+ <set attributeName="fill" to="inherit" begin="stillness.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="sleeps">
+ sleeps
+ <set attributeName="fill" to="green" begin="sleeps.focusin"/>
+ <set attributeName="fill" to="inherit" begin="sleeps.focusout"/>
+ </tspan>
+ ...
+ <tspan focusable="true" fill="blue" xml:id="line2">
+ <tbreak/>Apart,
+ <tspan focusable="true" fill="red" xml:id="innerphrase">
+ unstirred by sound or motion
+ <set attributeName="fill" to="green" begin="innerphrase.focusin"/>
+ <set attributeName="fill" to="red" begin="innerphrase.focusout"/>
+ </tspan>
+ ... till
+ <set attributeName="fill" to="green" begin="line2.focusin"/>
+ <set attributeName="fill" to="blue" begin="line2.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="suddenly">
+ <tbreak/>Suddenly
+ <set attributeName="fill" to="green" begin="suddenly.focusin"/>
+ <set attributeName="fill" to="inherit" begin="suddenly.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="into">
+ into
+ <set attributeName="fill" to="green" begin="into.focusin"/>
+ <set attributeName="fill" to="inherit" begin="into.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="it">
+ it
+ <set attributeName="fill" to="green" begin="it.focusin"/>
+ <set attributeName="fill" to="inherit" begin="it.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="a">
+ a
+ <set attributeName="fill" to="green" begin="a.focusin"/>
+ <set attributeName="fill" to="inherit" begin="a.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="lithe">
+ lithe
+ <set attributeName="fill" to="green" begin="lithe.focusin"/>
+ <set attributeName="fill" to="inherit" begin="lithe.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="frog">
+ frog
+ <set attributeName="fill" to="green" begin="frog.focusin"/>
+ <set attributeName="fill" to="inherit" begin="frog.focusout"/>
+ </tspan>
+ <tspan focusable="true" xml:id="leaps">
+ leaps.
+ <set attributeName="fill" to="green" begin="leaps.focusin"/>
+ <set attributeName="fill" to="inherit" begin="leaps.focusout"/>
+ </tspan>
+ </textArea>
+ <text fill="#555" text-anchor="end" x="450" y="270" font-size="8">Frog Haiku by Matsuo Basho (1686), translated by Curtis Hidden Page</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-210-t.png b/test/svg/svg1.2/svg/interact-focus-210-t.png
new file mode 100644
index 0000000..bd8b874
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-210-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-210-t.svg b/test/svg/svg1.2/svg/interact-focus-210-t.svg
new file mode 100644
index 0000000..9f73810
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-210-t.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusability with the 'use' Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-focus-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusability with the 'use' Element</p>
+ <p>
+ The first four occurrences of "focus next" will highlight all four top rects.
+ All four bottom rects should be able to receive the focus and be red when they have focus.
+ </p>
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-210-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <defs>
+ <rect focusable="true" xml:id="rect1" width="20" height="20" fill="inherit">
+ </rect>
+ <rect xml:id="rect2" width="20" height="20"/>
+ </defs>
+ <text xml:id="display-title" x="240" y="35" text-anchor="middle" font-size="16" fill="#000">Test Focusability with the 'use' Element</text>
+ <text xml:id="comment-1" x="240" y="60" text-anchor="middle" font-size="12" fill="#555">
+ Each rectangle should be able to turn red individually upon receiving focus.
+ </text>
+ <text xml:id="comment-2" x="240" y="75" text-anchor="middle" font-size="12" fill="#555">
+ The top four test the multiple use of a focusable element
+ </text>
+ <text xml:id="comment-3" x="240" y="90" text-anchor="middle" font-size="12" fill="#555">
+ The bottom four test 'focusable' property on <use> element
+ </text>
+ <g transform="translate(77,-30) scale(2.5)" font-size="10">
+
+ <use focusable="false" x="10" y="60" xlink:href="#rect1">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ <use focusable="false" x="40" y="60" xlink:href="#rect1">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ <use focusable="false" x="70" y="60" xlink:href="#rect1">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ <use focusable="false" x="100" y="60" xlink:href="#rect1">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ <use focusable="true" x="10" y="90" xlink:href="#rect2">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ <use focusable="true" x="40" y="90" xlink:href="#rect2">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ <use focusable="true" x="70" y="90" xlink:href="#rect2">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ <use focusable="true" x="100" y="90" xlink:href="#rect2">
+ <set attributeName="fill" to="red" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </use>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-211-t.png b/test/svg/svg1.2/svg/interact-focus-211-t.png
new file mode 100644
index 0000000..718f647
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-211-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-211-t.svg b/test/svg/svg1.2/svg/interact-focus-211-t.svg
new file mode 100644
index 0000000..e170227
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-211-t.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg nav-next="url(#defaultText)" version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Test Focusability with the 'use' Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: interact-focus-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Focusability with the 'use' Element</p>
+ <p>
+ There are three 'use' copies of the poem arranged diagonally.
+ As each poem receives focus it should become highlighted.
+ </p>
+ <p>Focus navigation is user agent dependant but typically is navigated with the keyboard keys.</p>
+ <p>TAB or arrow keys move the focus while the ENTER key activates the focused element.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-211-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="12" height="285" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text xml:id="display-title" x="240" y="35" text-anchor="middle" font-size="16" fill="#000">Test Focusability with the 'use' Element</text>
+ <text xml:id="comment-1" x="240" y="50" text-anchor="middle" font-size="12" fill="#555">
+ There are three 'use' copies of the poem arranged diagonally.
+ </text>
+ <text xml:id="comment-2" x="240" y="62" text-anchor="middle" font-size="12" fill="#555">
+ As each poem receives focus it should become highlighted.
+ </text>
+ <g xml:id="background" fill-opacity="0.3" fill="#555" font-size="12">
+ <use xlink:href="../images/focus-resource.svg#poem" x="20" y="75"/>
+ <use xlink:href="../images/focus-resource.svg#poem" x="120" y="140"/>
+ <use xlink:href="../images/focus-resource.svg#poem" x="220" y="205"/>
+ </g>
+ <g fill-opacity="0.9" fill="#06D" font-size="12">
+ <use focusable="true" visibility="hidden" xlink:href="../images/focus-resource.svg#poem-w-rect" x="20" y="75">
+ <set attributeName="visibility" to="visible" begin="focusin"/>
+ <set attributeName="visibility" to="hidden" begin="focusout"/>
+ </use>
+ <use focusable="true" visibility="hidden" xlink:href="../images/focus-resource.svg#poem-w-rect" x="120" y="140">
+ <set attributeName="visibility" to="visible" begin="focusin"/>
+ <set attributeName="visibility" to="hidden" begin="focusout"/>
+ </use>
+ <use focusable="true" visibility="hidden" xlink:href="../images/focus-resource.svg#poem-w-rect" x="220" y="205">
+ <set attributeName="visibility" to="visible" begin="focusin"/>
+ <set attributeName="visibility" to="hidden" begin="focusout"/>
+ </use>
+ </g>
+ <text fill="#555" text-anchor="end" x="450" y="287" font-size="8">Frog Haiku by Matsuo Basho (1686), translated by Alfred H. Marks</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-focus-212-t.png b/test/svg/svg1.2/svg/interact-focus-212-t.png
new file mode 100644
index 0000000..688f96c
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-focus-212-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-focus-212-t.svg b/test/svg/svg1.2/svg/interact-focus-212-t.svg
new file mode 100644
index 0000000..6e1143b
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-focus-212-t.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Tests focus navigation with use element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: interact-focus-212-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on focus with a use-element. Focus should move first to the "g" element and then to its children.
+ When it gets to the use-element focus is first set on the use (right column) and then its children.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-focus-212-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18" transform="scale(0.8, 0.9)">
+
+ <g fill="#FF3" stroke="#FA3" transform="translate(50,20)" focusable="true" xml:id="theGroup">
+ <circle transform="translate(0, 20)" focusable="true"
+ r="10"/>
+
+ <ellipse transform="translate(0, 60)" focusable="true"
+ rx="20" ry="10"/>
+
+ <rect transform="translate(0,100)" focusable="true"
+ x="-20" y="-10" width="40" height="20" rx="6" ry="3"/>
+
+ <path transform="translate(0,140)" focusable="true"
+ d="M-20,-10 L20,-10 C 40,0 40,0 20,10 L-20,10 Z"/>
+
+ <polygon transform="translate(0,180)" focusable="true"
+ points="-20,-10, 20,10, -20,10"/>
+
+ <polyline transform="translate(0,220)" focusable="true"
+ points="-20,-10, 20,10, -20,10"/>
+
+ <text transform="translate(0,260)" focusable="true"
+ text-anchor="middle">text</text>
+
+ <image transform="translate(0,300)" focusable="true"
+ x="-20" y="-10" width="50" height="50" xlink:href="../images/earth.jpg"/>
+
+ </g>
+
+ <use transform="translate(150, 0)" focusable="true" xlink:href="#theGroup"/>
+
+ <text x="240" y="15">use</text>
+ <text x="260" y="60" font-size="15">Test on focus with a use-element.</text>
+ <text x="260" y="75" font-size="15">Focus should move first to the "g" element and</text>
+ <text x="260" y="90" font-size="15">then to its children. When focus is trans-</text>
+ <text x="260" y="105" font-size="15">ferred to the use-element focus is first</text>
+ <text x="260" y="120" font-size="15">set on the use (whole right column) and</text>
+ <text x="260" y="135" font-size="15">then its children.</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/interact-order-04-t.png b/test/svg/svg1.2/svg/interact-order-04-t.png
new file mode 100644
index 0000000..9ee1059
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-order-04-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-order-04-t.svg b/test/svg/svg1.2/svg/interact-order-04-t.svg
new file mode 100644
index 0000000..ae18bd4
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-order-04-t.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="JF" desc="Test event bubbling of event attributes." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: interact-order-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test event bubbling of event attributes, part a.</p>
+ <p>
+ The two circles test whether event bubbling is occurring to parents of
+ the target object, and whether the target object is able to prevent
+ bubbling. The supplemental text next to the circles describes what
+ should occur.
+ </p>
+ <p>This test requires that the user agent support scripting.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-order-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function bubbleYes(evt, color)
+ {
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ }
+
+ function bubbleNo(evt, color)
+ {
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ evt.stopPropagation();
+ evt.preventDefault();
+ }
+ ]]>
+ </script>
+ </defs>
+ <text font-size="40" x="60" y="45">Event bubbling - a</text>
+ <g xml:id="background">
+ <rect fill="#EEE" stroke="#000" x="10" y="60" width="460" height="120" />
+ <rect fill="#FFF" stroke="#000" x="10" y="180" width="460" height="120" />
+ </g>
+ <g fill="#000" font-size="40">
+ <!--
+ Event bubbling (i.e., propagation) is not turned off, so event if first
+ processed by 'circle', but then processed by 'g', with result that
+ circle turns blue, but then instantaneously turns red.
+ -->
+ <g>
+ <handler type="text/ecmascript" xe:event="mouseover">
+ bubbleYes(evt, '#F00');
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ bubbleYes(evt, 'inherit');
+ </handler>
+
+ <circle cx="70" cy="120" r="50">
+ <handler type="text/ecmascript" xe:event="mouseover">
+ bubbleYes(evt, '#00F');
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ bubbleYes(evt, 'inherit');
+ </handler>
+ </circle>
+
+ <circle cx="70" cy="240" r="50">
+ <handler type="text/ecmascript" xe:event="mouseover">
+ bubbleNo(evt, '#00F');
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ bubbleNo(evt, 'inherit');
+ </handler>
+ </circle>
+ </g>
+
+ <text x="150" y="110"> Pointer in circle, </text>
+ <text x="150" y="150"> circle turns red </text>
+ <text x="150" y="230"> Pointer in circle, </text>
+ <text x="150" y="270"> circle turns blue </text>
+ </g>
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-order-05-t.png b/test/svg/svg1.2/svg/interact-order-05-t.png
new file mode 100644
index 0000000..2eb2dbc
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-order-05-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-order-05-t.svg b/test/svg/svg1.2/svg/interact-order-05-t.svg
new file mode 100644
index 0000000..cb5708d
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-order-05-t.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="JF" desc="Test event bubbling of event attributes." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: interact-order-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test event bubbling of event attributes, part b.</p>
+ <p>
+ The two circles test whether events are handled in the proper order.
+ Events listeners and event attributes are processed before hyperlink
+ processing, which is processed before text selection. The supplemental
+ text next to the circles describes what should occur.
+ </p>
+ <p>This test requires that the user agent support scripting.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-order-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function bubbleYes(evt, color)
+ {
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ }
+
+ function bubbleNo(evt, color)
+ {
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ evt.stopPropagation();
+ evt.preventDefault();
+ }
+ ]]>
+ </script>
+ </defs>
+ <text font-size="40" x="60" y="45">Event bubbling - b</text>
+ <g xml:id="background">
+ <rect fill="#EEE" stroke="#000" x="10" y="60" width="460" height="120" />
+ <rect fill="#FFF" stroke="#000" x="10" y="180" width="460" height="120" />
+ </g>
+ <g fill="#000" font-size="40">
+ <!-- Test the order of events -->
+ <!-- Ensure that events get the event before the hyperlink. -->
+ <a xlink:href="../images/interact-order-02-t-targ.svg">
+ <circle cx="70" cy="120" r="50">
+ <handler type="text/ecmascript" xe:event="click">
+ bubbleNo(evt, 'red');
+ </handler>
+ <handler type="text/ecmasript" xe:event="mouseout">
+ bubbleNo(evt, 'inherit');
+ </handler>
+ </circle>
+
+ <circle cx="70" cy="240" r="50">
+ <handler type="text/ecmascript" xe:event="click">
+ bubbleYes(evt, 'blue');
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ bubbleNo(evt, 'inherit');
+ </handler>
+ </circle>
+ </a>
+ <text x="135" y="110"> Click on circle, </text>
+ <text x="135" y="150"> circle turns red </text>
+ <text x="135" y="230"> Click on circle, </text>
+ <text x="135" y="270"> hyperlink </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-order-06-t.png b/test/svg/svg1.2/svg/interact-order-06-t.png
new file mode 100644
index 0000000..46e9c31
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-order-06-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-order-06-t.svg b/test/svg/svg1.2/svg/interact-order-06-t.svg
new file mode 100644
index 0000000..45f9a21
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-order-06-t.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="JF" desc="Test event bubbling of event attributes." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: interact-order-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test event bubbling of event attributes, part c.</p>
+ <p>
+ The three strings tests event handling behavior on text. Text selection
+ only is available after event listeners and event attributes have been
+ processed, and after hyperlink processing has occurred. The supplemental
+ text below the text strings describes what should occur.
+ </p>
+ <p>This test requires that the user agent support scripting.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-order-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function bubbleYes(evt, color)
+ {
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ }
+
+ function bubbleNo(evt, color)
+ {
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ evt.stopPropagation();
+ evt.preventDefault();
+ }
+ ]]>
+ </script>
+ </defs>
+ <text font-size="40" x="60" y="40">Event bubbling - c</text>
+ <g xml:id="background">
+ <rect fill="#EEE" stroke="#000" x="10" y="55" width="460" height="230" />
+ </g>
+ <g fill="#000" font-size="40">
+ <!-- Ensure that events get the event before the hyperlink which happens before text selection -->
+ <a xlink:href="../images/interact-order-03-t-targ.svg" font-size="40">
+ <text x="20" y="90">
+ <handler type="text/ecmascript" xe:event="click">
+ bubbleNo(evt, 'red');
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ bubbleNo(evt, 'inherit');
+ </handler>
+
+ String turns red on click
+ </text>
+ <g>
+ <handler type="text/ecmascript" xe:event="click">
+ bubbleYes(evt, 'blue');
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ bubbleYes(evt, 'inherit');
+ </handler>
+ <text x="60" y="160"> String hyperlinks to </text>
+ <text x="20" y="200" font-size="33"> interact-order-03-t-targ.svg </text>
+ </g>
+ <text x="30" y="270">
+ <handler type="text/ecmascript" xe:event="click">
+ bubbleNo(evt, 'inherit');
+ </handler>
+
+ All strings are selectable.
+ </text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-pevents-02-t.png b/test/svg/svg1.2/svg/interact-pevents-02-t.png
new file mode 100644
index 0000000..bdc11dc
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-pevents-02-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-pevents-02-t.svg b/test/svg/svg1.2/svg/interact-pevents-02-t.svg
new file mode 100644
index 0000000..5eb7dd7
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-pevents-02-t.svg
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests 'pointer-events' on text" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: interact-pevents-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests 'pointer-events' on text. Initially you should see four big rects with black stroke. In the
+ uppermost rect there should be 10 'O':s with black fill. In the second rect from the top there should be 10 'O':s
+ with no fill but with black stroke. In the third and fourth rects there should be no visible 'O':s at all. In the
+ fourth rect there should be two green rects, and in each of the other three rects there should be one green rect.
+ </p>
+ <p>
+ Using the pointer device move the cursor over the rects all the rects from left to right. As the mouseover event
+ triggers the 'O':s will become visible and marked in either green (a pass) or red (a fail).
+ </p>
+ <p>
+ The test has passed if after moving the cursor over all the rects: 1. all the 'O':s in the green rects have green
+ fill 2. there are no red 'O':s visible 3. there are 9 green 'O':s in the first and second rect, 4 in the third rect
+ and 6 in the fourth rect
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-pevents-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="sans-serif" font-size="40" text-rendering="geometricPrecision">
+ <text x="240" y="40" text-anchor="middle" font-size="20">Test pointer-events on text</text>
+ <g transform="translate(40, -10)">
+ <g xml:id="first-line">
+ <text x="50" y="100">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="170" y="100" pointer-events="visible">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="200" y="100" pointer-events="painted">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="230" y="100" pointer-events="fill">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="260" y="100" pointer-events="stroke">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="290" y="100" pointer-events="all">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="320" y="100" pointer-events="none">O
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <g pointer-events="none">
+ <rect x="50" y="65" height="40" width="270" fill="green" fill-opacity="0.5" visibility="visible" />
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible" />
+ </g>
+ </g>
+ <g xml:id="second-line" transform="translate(0 60)" fill="none" stroke="black">
+ <text x="50" y="100">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="170" y="100" pointer-events="visible">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="200" y="100" pointer-events="painted">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="230" y="100" pointer-events="fill">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="260" y="100" pointer-events="stroke">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="290" y="100" pointer-events="all">O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="320" y="100" pointer-events="none">O
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <g pointer-events="none">
+ <rect x="50" y="65" height="40" width="270" fill="green" fill-opacity="0.5" visibility="visible" stroke="none" />
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible" />
+ </g>
+ </g>
+ <g xml:id="third-line" transform="translate(0 120)" visibility="hidden">
+ <text x="50" y="100">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="170" y="100" pointer-events="visible">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="200" y="100" pointer-events="painted">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="230" y="100" pointer-events="fill">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="260" y="100" pointer-events="stroke">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="290" y="100" pointer-events="all">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="320" y="100" pointer-events="none">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <g pointer-events="none">
+ <rect x="200" y="65" height="40" width="120" fill="green" fill-opacity="0.5" visibility="visible" />
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible" />
+ </g>
+ </g>
+ <g xml:id="fourth-line" transform="translate(0 180)" fill="none" stroke="none">
+ <text x="50" y="100">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="170" y="100" pointer-events="visible">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="200" y="100" pointer-events="painted">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="230" y="100" pointer-events="fill">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="260" y="100" pointer-events="stroke">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="290" y="100" pointer-events="all">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite" />
+ </text>
+ <text x="320" y="100" pointer-events="none">O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite" />
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite" />
+ </text>
+ <g pointer-events="none">
+ <rect x="110" y="65" height="40" width="90" fill="green" fill-opacity="0.5" visibility="visible" />
+ <rect x="230" y="65" height="40" width="90" fill="green" fill-opacity="0.5" visibility="visible" />
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible" />
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-pevents-05-t.png b/test/svg/svg1.2/svg/interact-pevents-05-t.png
new file mode 100644
index 0000000..3e4b239
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-pevents-05-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-pevents-05-t.svg b/test/svg/svg1.2/svg/interact-pevents-05-t.svg
new file mode 100644
index 0000000..2dc27c3
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-pevents-05-t.svg
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Tests the pointer-events attribute with different 'visible' values." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-pevents-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests the pointer-events attribute with different 'visible' values</p>
+ <p>
+ The test is passed if the following conditions are met:
+ - In the first row of squares, the fill and stroke of squares 1 and 3 only must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the second row of squares, the fill and stroke of squares 1 and 3 only must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the third row of squares, the fill only of squares 1, 2 and 3 must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the fourth row of squares, the stroke only of squares 1, 2 and 3 must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the fifth row of squares, the fill and stroke of squares 1, 2 and 3 must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ </p>
+ <p>
+ The 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke.
+ The 4th column (most right column) has a non activatable pointer event as the visibility of the column
+ is set to hidden.
+ </p>
+ <p>
+ The first row tests the default value for pointer-event, i.e. visible fill and stroke will trigger an event.
+ The second row tests pointer-events="visiblePainted", i.e. visible fill and stroke will trigger an event.
+ The third row tests pointer-events="visibleFill", i.e. visible fill only an event.
+ The fourth row tests pointer-events="visibleStroke", i.e. visible stroke only an event.
+ The fifth row tests pointer-events="visible", i.e. visible fill and stroke will trigger an event.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-pevents-05-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="25" fill="#555" font-size="12">
+ <tspan fill="black" font-size="10">Testing pointer-events</tspan> - pale RED rect should appear on mouseover.
+ </text>
+ <text xml:id="comment-1" x="240" y="37" fill="#555" font-size="10">
+ 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke
+ </text>
+ </g>
+ <g transform="translate(0, 5)">
+ <g transform="translate(25, 50)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r10.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r10.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r11.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r11.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r12.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r12.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r13.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r13.mouseout"/>
+ </rect>
+ <rect xml:id="r10" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r11" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r12" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r13" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden"/>
+ <g font-size="12">
+ <text x="200" y="15">default : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 100)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r20.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r20.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r21.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r21.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r22.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r22.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r23.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r23.mouseout"/>
+ </rect>
+ <rect xml:id="r20" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visiblePainted"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r21" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visiblePainted"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r22" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visiblePainted"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r23" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visiblePainted"/>
+ <g font-size="12">
+ <text x="200" y="15">visiblePainted : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 150)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r30.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r30.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r31.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r31.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r32.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r32.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r33.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r33.mouseout"/>
+ </rect>
+ <rect xml:id="r30" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleFill"/>
+
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r31" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleFill"/>
+
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r32" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="visibleFill"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r33" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visibleFill"/>
+ <g font-size="12">
+ <text x="200" y="15">visibleFill : </text>
+ <text x="200" y="30" fill="#777">only fill of rects 1 to 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 200)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r40.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r40.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r41.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r41.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r42.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r42.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r43.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r43.mouseout"/>
+ </rect>
+ <rect xml:id="r40" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleStroke"/>
+
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r41" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleStroke"/>
+
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r42" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visibleStroke"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r43" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visibleStroke"/>
+ <g font-size="12">
+ <text x="200" y="15">visibleStroke : </text>
+ <text x="200" y="30" fill="#777">only stroke of rects 1 to 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 250)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r50.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r50.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r51.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r51.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r52.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r52.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r53.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r53.mouseout"/>
+ </rect>
+ <rect xml:id="r50" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visible"/>
+
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r51" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visible"/>
+
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r52" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visible"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r53" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visible"/>
+ <g font-size="12">
+ <text x="200" y="15">visible : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1 to 3 must trigger</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-pevents-06-t.png b/test/svg/svg1.2/svg/interact-pevents-06-t.png
new file mode 100644
index 0000000..e34479e
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-pevents-06-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-pevents-06-t.svg b/test/svg/svg1.2/svg/interact-pevents-06-t.svg
new file mode 100644
index 0000000..817e882
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-pevents-06-t.svg
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Tests the pointer-events attribute with different painting values" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-pevents-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests the pointer-events attribute with different painting values</p>
+ <p>
+ The test is passed if the following conditions are met:
+ - In the first row of squares, the fill and stroke of squares 1, 3 and 4 only must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the second row of squares, the fill only of all squares must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the third row of squares, the stroke only of all must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the fourth row of squares, the fill and stroke of all squares must trigger a pale red rectangle to appear
+ over the squares on mouseover.
+ - In the fifth row of squares, nothing is to trigger on mouseover.
+ </p>
+ <p>
+ The 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke.
+ The 4th column has visibility set to hidden.
+ </p>
+ <p>
+ The first row tests pointer-events="painted", i.e. event on fill and stroke that are set.
+ The second row tests pointer-events="fill", i.e. event on a fill that is set.
+ The third row tests pointer-events="stroke", i.e. even on a stroke that is et.
+ The fourth row tests pointer-events="all", i.e. event on fill and stroke that are set.
+ The fifth row tests pointer-events="none", i.e. no event.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-pevents-06-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="25" fill="#555" font-size="12">
+ <tspan fill="black" font-size="10">Testing pointer-events</tspan> - pale RED rect should appear on mouseover.
+ </text>
+ <text xml:id="comment-1" x="240" y="37" fill="#555" font-size="10">
+ 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke
+ </text>
+ </g>
+ <g transform="translate(0, 5)">
+ <g transform="translate(25, 50)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r60.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r60.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r61.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r61.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r62.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r62.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r63.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r63.mouseout"/>
+ </rect>
+ <rect xml:id="r60" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="painted"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r61" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="painted"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r62" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="painted"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r63" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="painted"/>
+ <g font-size="12">
+ <text x="200" y="15">painted : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1, 3 and 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 100)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r70.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r70.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r71.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r71.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r72.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r72.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r73.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r73.mouseout"/>
+ </rect>
+ <rect xml:id="r70" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="fill"/>
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r71" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="fill"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r72" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="fill"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r73" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="black" visibility="hidden" pointer-events="fill"/>
+ <g font-size="12">
+ <text x="200" y="15">fill : </text>
+ <text x="200" y="30" fill="#777">fill of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 150)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r80.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r80.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r81.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r81.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r82.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r82.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r83.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r83.mouseout"/>
+ </rect>
+ <rect xml:id="r80" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="stroke"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r81" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="stroke"/>
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r82" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="stroke"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r83" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="stroke"/>
+ <g font-size="12">
+ <text x="200" y="15">stroke : </text>
+ <text x="200" y="30" fill="#777">stroke of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 200)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r90.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r90.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r91.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r91.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r92.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r92.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r93.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r93.mouseout"/>
+ </rect>
+ <rect xml:id="r90" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="all"/>
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r91" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="all"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect xml:id="r92" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="all"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r93" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="all"/>
+ <g font-size="12">
+ <text x="200" y="15">all : </text>
+ <text x="200" y="30" fill="#777">stroke and fill of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 250)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r00.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r00.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r01.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r01.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r02.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r02.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r03.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r03.mouseout"/>
+ </rect>
+ <rect xml:id="r00" width="30" height="30" fill="black" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="none"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r01" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="none"/>
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect xml:id="r02" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="none"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect xml:id="r03" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="none"/>
+ <g font-size="12">
+ <text x="200" y="15">none : </text>
+ <text x="200" y="30" fill="#777">nothing is to trigger</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-pevents-07-t.png b/test/svg/svg1.2/svg/interact-pevents-07-t.png
new file mode 100644
index 0000000..3761f63
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-pevents-07-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-pevents-07-t.svg b/test/svg/svg1.2/svg/interact-pevents-07-t.svg
new file mode 100644
index 0000000..26b93a2
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-pevents-07-t.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Testing pointer-events and rendering order" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: interact-pevents-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing pointer-events and rendering order</p>
+ <p>
+ Rectangles should turn RED on mouseover Ovals should turn RED if Pointer-Events are set to "ALL"
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-pevents-07-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="15" height="280" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <g text-anchor="middle">
+ <text x="240" y="30" fill="black" font-size="15">Testing pointer-events and rendering order</text>
+ <text x="240" y="42" fill="#555" font-size="10">Rectangles should turn RED on mouseover </text>
+ <text x="240" y="54" fill="#555" font-size="10">Ovals should turn RED if Pointer-Events are set to "ALL"</text>
+ </g>
+ <g xml:id="buttons">
+ <g text-anchor="middle" font-size="8" fill="#555" transform="translate(0,10)">
+ <text x="400" y="85">Change "Pointer-Events" of </text>
+ <text x="400" y="95">ovals from "ALL" to "NONE"</text>
+ <circle xml:id="on" cx="385" cy="65" r="10" fill-opacity="1" fill="#3c5" stroke="black" stroke-width="3"/>
+ <circle xml:id="off" cx="415" cy="65" r="10" fill-opacity="1" fill="#f35" stroke="black"/>
+ </g>
+ <g text-anchor="middle" font-size="12" fill="#555">
+ <text xml:id="all" x="240" y="285" fill="#555" visibility="visible">Purple ovals have "Pointer-Events" set to "ALL".</text>
+ <text xml:id="none" x="240" y="285" fill="#555" visibility="hidden">Purple ovals have Pointer-Events set to "NONE".</text>
+ </g>
+ <set xlink:href="#all" attributeName="visibility" to="visible" begin="on.mouseover" fill="freeze"/>
+ <set xlink:href="#all" attributeName="visibility" to="hidden" begin="off.mouseover" fill="freeze"/>
+ <set xlink:href="#none" attributeName="visibility" to="hidden" begin="on.mouseover" fill="freeze"/>
+ <set xlink:href="#none" attributeName="visibility" to="visible" begin="off.mouseover" fill="freeze"/>
+ <set xlink:href="#on" attributeName="stroke-width" to="3" begin="on.mouseover" fill="freeze"/>
+ <set xlink:href="#on" attributeName="stroke-width" to="1" begin="off.mouseover" fill="freeze"/>
+ <set xlink:href="#off" attributeName="stroke-width" to="3" begin="off.mouseover" fill="freeze"/>
+ <set xlink:href="#off" attributeName="stroke-width" to="1" begin="on.mouseover" fill="freeze"/>
+ <set xlink:href="#c10" attributeName="pointer-events" to="all" begin="on.mouseover" fill="freeze"/>
+ <set xlink:href="#c10" attributeName="pointer-events" to="none" begin="off.mouseover" fill="freeze"/>
+ <set xlink:href="#c11" attributeName="pointer-events" to="all" begin="on.mouseover" fill="freeze"/>
+ <set xlink:href="#c11" attributeName="pointer-events" to="none" begin="off.mouseover" fill="freeze"/>
+ <set xlink:href="#c12" attributeName="pointer-events" to="all" begin="on.mouseover" fill="freeze"/>
+ <set xlink:href="#c12" attributeName="pointer-events" to="none" begin="off.mouseover" fill="freeze"/>
+ </g>
+ <g transform="scale(0.75, 0.5) translate(100, 85)">
+ <circle xml:id="c10" cx="160" cy="350" r="100" fill-opacity="1" fill="#53f" stroke="black" pointer-events="all">
+ <set attributeName="fill" to="#F55" begin="c10.mouseover"/>
+ <set attributeName="fill" to="#53f" begin="c10.mouseout"/>
+ </circle>
+ <rect xml:id="r10" x="10" y="50" width="300" height="300" fill-opacity="1" fill="#35f" stroke="black">
+ <set attributeName="fill" to="#F55" begin="r10.mouseover"/>
+ <set attributeName="fill" to="#35f" begin="r10.mouseout"/>
+ </rect>
+ <circle xml:id="c11" cx="310" cy="350" r="90" fill-opacity="1" fill="#75f" stroke="black" pointer-events="all">
+ <set attributeName="fill" to="#F55" begin="c11.mouseover"/>
+ <set attributeName="fill" to="#75f" begin="c11.mouseout"/>
+ </circle>
+ <rect xml:id="r11" x="60" y="100" width="200" height="200" fill-opacity="1" fill="#57f" stroke="black">
+ <set attributeName="fill" to="#F55" begin="r11.mouseover"/>
+ <set attributeName="fill" to="#57f" begin="r11.mouseout"/>
+ </rect>
+ <circle xml:id="c12" cx="310" cy="200" r="75" fill-opacity="1" fill="#97f" stroke="black" pointer-events="all">
+ <set attributeName="fill" to="#F55" begin="c12.mouseover"/>
+ <set attributeName="fill" to="#97f" begin="c12.mouseout"/>
+ </circle>
+ <rect xml:id="r12" x="110" y="150" width="100" height="100" fill-opacity="1" fill="#79f" stroke="black">
+ <set attributeName="fill" to="#F55" begin="r12.mouseover"/>
+ <set attributeName="fill" to="#79f" begin="r12.mouseout"/>
+ </rect>
+ <g xml:id="dasharray-rectangles" stroke-width="0.5" stroke-dasharray="4, 4">
+ <rect xml:id="r-dash10" x="10" y="50" width="300" height="300" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ <rect xml:id="r-dash11" x="60" y="100" width="200" height="200" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ <rect xml:id="r-dash12" x="110" y="150" width="100" height="100" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-pevents-08-t.png b/test/svg/svg1.2/svg/interact-pevents-08-t.png
new file mode 100644
index 0000000..83f21f0
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-pevents-08-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-pevents-08-t.svg b/test/svg/svg1.2/svg/interact-pevents-08-t.svg
new file mode 100644
index 0000000..0a5d7d9
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-pevents-08-t.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <handler type="text/ecmascript" xe:event="load">
+ init(evt);
+ </handler>
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="ED" desc="Tests when text is considered hit by pointer-events" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: interact-pevents-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests when text is considered hit by pointer-events.</p>
+ <p>
+ The test is passed if the following conditions are met:
+ - Any single character in either of the lines of text has 'mouseover' event and the fill of the
+ characters' assocated line of text is set to green.
+ - The fill of the characters' assocated text is set back to black on a 'mouseout' event.
+ </p>
+ <p>
+ The dy of the glyphs vary quite a bit, so it's easy to tell if an implementation uses the text
+ boundingbox for pointer-events. According to SVG 1.1 pointer-events on text is not supposed to use the text boundingbox,
+ instead it should use the 'character cells'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-pevents-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComicSVGFont" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0" />
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z" />
+ <glyph unicode=" " horiz-adv-x="1024" d="M0 0l1024 0l0 2048l-1024 0l0 -1024Z" />
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z" />
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z" />
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z" />
+ <glyph unicode="Ã?" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z" />
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z" />
+ </font>
+ <script><![CDATA[
+ function init()
+ {
+ //drawBBox("line1");
+ //drawBBox("line2");
+ }
+ function mouseover(elm)
+ {
+ elm.setAttribute("fill", "green");
+ }
+ function mouseout(elm)
+ {
+ elm.setAttribute("fill", "inherit");
+ }
+ function drawBBox(id)
+ {
+ var elm = document.getElementById(id);
+ var bbox = elm.getBBox();
+ var bboxrect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ bboxrect.setAttribute("x", bbox.x);
+ bboxrect.setAttribute("y", bbox.y);
+ bboxrect.setAttribute("width", bbox.width);
+ bboxrect.setAttribute("height", bbox.height);
+ bboxrect.setAttribute("fill-opacity", "0.1");
+ bboxrect.setAttribute("fill", "blue");
+ elm.parentNode.insertBefore(bboxrect, elm);
+ }
+ ]]></script>
+ </defs>
+ <g font-size="30" text-rendering="geometricPrecision">
+ <text x="240" y="40" text-anchor="middle" font-size="20">Test pointer-events on text</text>
+ <g transform="translate(0, -10)" text-anchor="middle">
+ <text xml:id="line1" x="180 220 250 280 310" y="90 100 160 150 160">@Ay�ç
+ <handler type="text/ecmascript" xe:event="mouseover">
+ mouseover(evt.target);
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ mouseout(evt.target);
+ </handler>
+ </text>
+ <text xml:id="line2" font-family="TestComicSVGFont" x="180 220 250 280 310" y="210 220 280 270 280">@Ay�ç
+ <handler type="text/ecmascript" xe:event="mouseover">
+ mouseover(evt.target);
+ </handler>
+ <handler type="text/ecmascript" xe:event="mouseout">
+ mouseout(evt.target);
+ </handler>
+ </text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-zoom-01-t.png b/test/svg/svg1.2/svg/interact-zoom-01-t.png
new file mode 100644
index 0000000..9bebc0f
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-zoom-01-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-zoom-01-t.svg b/test/svg/svg1.2/svg/interact-zoom-01-t.svg
new file mode 100644
index 0000000..348241e
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-zoom-01-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events" zoomAndPan="magnify">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="CL" desc="Check that zooming and panning is supported" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: interact-zoom-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify correct handling by Dynamic (interactive) viewers for the "zoomAndPan" attribute on the 'svg' element. This
+ is the first of three tests, and tests the default value.
+ </p>
+ <p>The test consists of a set of black circles with a blue stroke.</p>
+ <p>
+ After the initial picture is displayed, the user should attempt to use the magnify controls that are required on
+ conforming Dynamic SVG viewers. The correct behaviour is that magnification and panning works correctly, as required
+ by a conformant viewer..
+ </p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-zoom-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="6">
+ <text x="5" y="7" fill="black">Test default value of </text>
+ <text x="5" y="14" fill="black">zoomAndPan attribute.</text>
+ <g fill="black" stroke="blue" stroke-width="1">
+ <circle cx="20" cy="32" r="10" />
+ <circle cx="30" cy="32" r="10" />
+ <circle cx="60" cy="32" r="10" />
+ <circle cx="50" cy="32" r="10" />
+ <circle cx="40" cy="32" r="10" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-zoom-02-t.png b/test/svg/svg1.2/svg/interact-zoom-02-t.png
new file mode 100644
index 0000000..fa8f76d
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-zoom-02-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-zoom-02-t.svg b/test/svg/svg1.2/svg/interact-zoom-02-t.svg
new file mode 100644
index 0000000..8641fd1
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-zoom-02-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events" zoomAndPan="magnify">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="CL" desc="Check that zooming and panning is supported" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: interact-zoom-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify correct handling by Dynamic (interactive) viewers for the "zoomAndPan" attribute on the 'svg' element. This
+ is the second of three tests, and tests the value "magnify".
+ </p>
+ <p>The test consists of a set of black circles with a blue stroke.</p>
+ <p>
+ After the initial picture is displayed, the user should attempt to use the magnify controls that are required on
+ conforming Dynamic SVG viewers. The correct behaviour is that magnification and panning works correctly, as required
+ by a conformant viewer..
+ </p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-zoom-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="6">
+ <text x="5" y="7" fill="black">Test "magnify" value of </text>
+ <text x="5" y="14" fill="black">zoomAndPan attribute.</text>
+ <g fill="black" stroke="blue" stroke-width="1">
+ <circle cx="20" cy="32" r="10" />
+ <circle cx="30" cy="32" r="10" />
+ <circle cx="60" cy="32" r="10" />
+ <circle cx="50" cy="32" r="10" />
+ <circle cx="40" cy="32" r="10" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/interact-zoom-03-t.png b/test/svg/svg1.2/svg/interact-zoom-03-t.png
new file mode 100644
index 0000000..237d06d
Binary files /dev/null and b/test/svg/svg1.2/svg/interact-zoom-03-t.png differ
diff --git a/test/svg/svg1.2/svg/interact-zoom-03-t.svg b/test/svg/svg1.2/svg/interact-zoom-03-t.svg
new file mode 100644
index 0000000..224a3fd
--- /dev/null
+++ b/test/svg/svg1.2/svg/interact-zoom-03-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events" zoomAndPan="disable">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="CL" desc="Check that zooming and panning can be disabled" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: interact-zoom-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify correct handling by Dynamic (interactive) viewers for the "zoomAndPan" attribute on the 'svg' element. This
+ is the third of three tests, and tests the value "disable".
+ </p>
+ <p>The test consists of a set of black circles with a blue stroke.</p>
+ <p>
+ After the initial picture is displayed, the user should attempt to use the magnify controls that are required on
+ conforming Dynamic SVG viewers. The correct behaviour is that the magnify and pan controls shall have no effect -- the
+ viewer shall disable them.
+ </p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: interact-zoom-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="6" transform="scale(6,6)">
+ <!-- Title -->
+ <text x="5" y="7" fill="black">Test "disable" value of </text>
+ <text x="5" y="14" fill="black">zoomAndPan attribute.</text>
+ <g fill="black" stroke="blue" stroke-width="1">
+ <circle cx="20" cy="32" r="10" />
+ <circle cx="30" cy="32" r="10" />
+ <circle cx="60" cy="32" r="10" />
+ <circle cx="50" cy="32" r="10" />
+ <circle cx="40" cy="32" r="10" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/intro-compat-201-t.png b/test/svg/svg1.2/svg/intro-compat-201-t.png
new file mode 100644
index 0000000..ae91560
Binary files /dev/null and b/test/svg/svg1.2/svg/intro-compat-201-t.png differ
diff --git a/test/svg/svg1.2/svg/intro-compat-201-t.svg b/test/svg/svg1.2/svg/intro-compat-201-t.svg
new file mode 100644
index 0000000..9ebfa42
Binary files /dev/null and b/test/svg/svg1.2/svg/intro-compat-201-t.svg differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-201-t.png b/test/svg/svg1.2/svg/jpeg-required-201-t.png
new file mode 100644
index 0000000..e2fbd03
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-201-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-201-t.svg b/test/svg/svg1.2/svg/jpeg-required-201-t.svg
new file mode 100644
index 0000000..dab547f
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-201-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: jpeg-required-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test RGB baseline JPEG with the most common chrominance subsampling, 4:1:1.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloud411q75s.jpg"/>
+ <text x="320" y="100">baseline 4:1:1</text>
+ <text x="320" y="130">sequential</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-202-t.png b/test/svg/svg1.2/svg/jpeg-required-202-t.png
new file mode 100644
index 0000000..6d818be
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-202-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-202-t.svg b/test/svg/svg1.2/svg/jpeg-required-202-t.svg
new file mode 100644
index 0000000..09da088
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-202-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test RGB optimised baseline JPEG with the most common chrominance subsampling, 4:1:1.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloud411q75o.jpg"/>
+ <text x="320" y="100">optimized 4:1:1</text>
+ <text x="320" y="130">sequential</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-203-t.png b/test/svg/svg1.2/svg/jpeg-required-203-t.png
new file mode 100644
index 0000000..7b7d7d0
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-203-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-203-t.svg b/test/svg/svg1.2/svg/jpeg-required-203-t.svg
new file mode 100644
index 0000000..7fe6ad3
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-203-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test progressive, RGB optimised JPEG with the most common chrominance subsampling, 4:1:1.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloud411q75p.jpg"/>
+ <text x="320" y="100">optimized 4:1:1</text>
+ <text x="320" y="130">progressive</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-204-t.png b/test/svg/svg1.2/svg/jpeg-required-204-t.png
new file mode 100644
index 0000000..af74f97
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-204-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-204-t.svg b/test/svg/svg1.2/svg/jpeg-required-204-t.svg
new file mode 100644
index 0000000..ef22916
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-204-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test greyscale baseline JPEG.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloudgsq75s.jpg"/>
+ <text x="320" y="100">greyscale</text>
+ <text x="320" y="130">sequential</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-205-t.png b/test/svg/svg1.2/svg/jpeg-required-205-t.png
new file mode 100644
index 0000000..9779a85
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-205-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-205-t.svg b/test/svg/svg1.2/svg/jpeg-required-205-t.svg
new file mode 100644
index 0000000..8c60be0
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-205-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test RGB optimised baseline JPEG with the most common chrominance subsampling, 4:1:1 and with multiple APP markers.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloud-ps411q4app.jpg"/>
+ <text x="320" y="100">optimised 4:1:1</text>
+ <text x="320" y="130">sequential</text>
+ <text x="320" y="160">multi APP markers</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-206-t.png b/test/svg/svg1.2/svg/jpeg-required-206-t.png
new file mode 100644
index 0000000..ff9a3a1
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-206-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-206-t.svg b/test/svg/svg1.2/svg/jpeg-required-206-t.svg
new file mode 100644
index 0000000..4f62afb
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-206-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test RGB optimised JPEG with the most common chrominance subsampling, 4:1:1 and with a float DCT.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloud411q65float.jpg"/>
+ <text x="320" y="100">optimised 4:1:1</text>
+ <text x="320" y="130">sequential</text>
+ <text x="320" y="160">float DCT</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-207-t.png b/test/svg/svg1.2/svg/jpeg-required-207-t.png
new file mode 100644
index 0000000..4b687ae
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-207-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-207-t.svg b/test/svg/svg1.2/svg/jpeg-required-207-t.svg
new file mode 100644
index 0000000..2f8b1c1
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-207-t.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test RGB optimised JPEG with no chrominance subsampling, 4:4:4.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloud444q65o.jpg"/>
+ <text x="320" y="100">optimised 4:4:4</text>
+ <text x="320" y="130">sequential</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-208-t.png b/test/svg/svg1.2/svg/jpeg-required-208-t.png
new file mode 100644
index 0000000..ca3baf9
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-208-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-208-t.svg b/test/svg/svg1.2/svg/jpeg-required-208-t.svg
new file mode 100644
index 0000000..ddb272e
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-208-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test RGB optimised JPEG with very unusual chrominance subsampling:
+ 2x2, 4x1, 1x2.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloudoddq65o.jpg"/>
+ <text x="320" y="100">optimised 4:4:2</text>
+ <text x="320" y="130">sequential</text>
+ <text x="320" y="160" font-size="12">unusual subsampling</text>
+ <text x="320" y="180" font-size="12">2x2, 4x1, 1x2</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/jpeg-required-209-t.png b/test/svg/svg1.2/svg/jpeg-required-209-t.png
new file mode 100644
index 0000000..cfe1531
Binary files /dev/null and b/test/svg/svg1.2/svg/jpeg-required-209-t.png differ
diff --git a/test/svg/svg1.2/svg/jpeg-required-209-t.svg b/test/svg/svg1.2/svg/jpeg-required-209-t.svg
new file mode 100644
index 0000000..f9708a5
--- /dev/null
+++ b/test/svg/svg1.2/svg/jpeg-required-209-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="baseline JPEG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: jpeg-required-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test RGB baseline JPEG with the most common chrominance subsampling, 4:1:1 and high compression level (low quality).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: jpeg-required-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <image x="10" y="10" width="300" height="300" xlink:href="../images/cloud411q25s.jpg"/>
+ <text x="320" y="100">optimised 4:1:1</text>
+ <text x="320" y="130">sequential</text>
+ <text x="320" y="160">high compression</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/linking-a-03-t.png b/test/svg/svg1.2/svg/linking-a-03-t.png
new file mode 100644
index 0000000..261fec3
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-a-03-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-a-03-t.svg b/test/svg/svg1.2/svg/linking-a-03-t.svg
new file mode 100644
index 0000000..1444237
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-a-03-t.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="Lofton Henderson" desc="Basic in-bound link object addressing formats." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: linking-a-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This verifies the capability to handle links into SVG content, using the svgView fragment identifier form.
+ The test is passed if traversing this link shows a portion of the target
+ translated so that the green circle with id "circle-2" is in the top left corner of the viewer
+ frame.
+ </p>
+ <p>The initial view of this test contains one green arrow plus labelling text. The arrow is a link - follow the link.</p>
+ <p>
+ The arrow links to ./images/linkingCircle-f.svg#svgView(transform(translate(64,227)))".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-a-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(2)">
+ <a xlink:href="../images/linkingCircle-f.svg#svgView(transform( translate(-64,-227)))">
+ <path fill="lime" stroke="blue" d="M 185,40 h -100 v -12 l -45 36 l 45 36 v -12 h 100 z" />
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-a-08-t.png b/test/svg/svg1.2/svg/linking-a-08-t.png
new file mode 100644
index 0000000..1ae5560
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-a-08-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-a-08-t.svg b/test/svg/svg1.2/svg/linking-a-08-t.svg
new file mode 100644
index 0000000..a64b18e
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-a-08-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="test links on text elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: linking-a-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This is a simple test for links on text elements. The upper subtest has an 'a' element
+ inside a 'text' element; the lower subtest has the 'a' outside the 'text'. Both must be working links.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-a-08-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="20">
+ <text x="240" y="150" text-anchor="middle">
+ <a xlink:href="../images/linkingToc-t.svg">Link inside text</a>
+ </text>
+ <a xlink:href="../images/linkingToc-t.svg">
+ <text x="240" y="230" text-anchor="middle">Link around text</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-a-201-t.png b/test/svg/svg1.2/svg/linking-a-201-t.png
new file mode 100644
index 0000000..0c32cd0
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-a-201-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-a-201-t.svg b/test/svg/svg1.2/svg/linking-a-201-t.svg
new file mode 100644
index 0000000..83b2f5b
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-a-201-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="CL" desc="Verify target attribute has priority over xlink attribute on the 'a' element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: linking-a-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify target attribute has priority over xlink attribute on the 'a' element. The destination expressed by
+ "xlink:href=" is overridden when 'target' is specified on the 'a' element.
+ </p>
+ <p>
+ For the test to pass; each arrow in the test, when clicked, must show the image of the
+ linkingToc-t.svg in a new frame.
+ </p>
+ <p>
+ The test uses the 'rect' and 'polygon' elements, as well as basic fill (solid simple colors), stroke
+ (black and colored wide and 1-pixel lines), font-family (Arial) and font-size properties.
+ </p>
+ <p>
+ This test was modified and renamed from linking-a-07-t.svg.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-a-201-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <a xlink:href="../images/linkingToc-t.svg" target="foo">
+ <path fill="yellow" stroke="red" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z" />
+ </a>
+ <g transform="translate(0,90)">
+ <a xlink:href="../images/linkingToc-t.svg" xlink:show="new" target="foo">
+ <path fill="lime" stroke="red" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z" />
+ </a>
+ </g>
+ <g transform="translate(0,180)">
+ <a xlink:href="../images/linkingToc-t.svg" xlink:show="replace" target="foo">
+ <path fill="aqua" stroke="red" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z" />
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-frag-201-t.png b/test/svg/svg1.2/svg/linking-frag-201-t.png
new file mode 100644
index 0000000..1ae5560
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-frag-201-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-frag-201-t.svg b/test/svg/svg1.2/svg/linking-frag-201-t.svg
new file mode 100644
index 0000000..899d298
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-frag-201-t.svg
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Testing Links to External 'svgView' with Transforms" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: linking-frag-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Testing Links to external and internal 'svgView' with Transforms.
+ </p>
+ <p>
+ The first part of the test is passed if the rect links on the top line go to the linking-frag-202-t.svg file and
+ adjust the resulting view according to their respective text;
+ - The rect with 'Rotate' must link to the linking-frag-202-t.svg file and rotate resulting view
+ - The rect with 'Shift' must link to the linking-frag-202-t.svg file and shitf the resulting view
+ - The rect with 'Scale' must link to the linking-frag-202-t.svg file and scale the resulting view
+ - The rect with 'skewX' must link to the linking-frag-202-t.svg file and skew the resulting view along the X axis
+ - The rect with 'skewY' must link to the linking-frag-202-t.svg file and skew the resulting view along the Y axis
+ - The rect with 'identity' must link to the linking-frag-202-t.svg file and restore the view to an identity transformation.
+ </p>
+ <p>
+ The second part of the test is passed if the rect links on the bottom line link to this file and adjust the
+ resulting view according to their respective text;
+ - The rect with 'Rotate' must link to this file and rotate resulting view
+ - The rect with 'Shift' must link to this file and shitf the resulting view
+ - The rect with 'Scale' must link to this file and scale the resulting view
+ - The rect with 'skewX' must link to this file and skew the resulting view along the X axis
+ - The rect with 'skewY' must link to this file and skew the resulting view along the Y axis
+ - The rect with 'identity' must link to this file and restore the view to an identity transformation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-frag-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+
+ <rect xml:id="outlineRect" width="50" height="25" stroke="#333" fill-opacity="0.5" />
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" fill="black" x="240" y="40" font-size="18">Testing Links to External 'svgView' with Transforms</text>
+ <text xml:id="comment-1" text-anchor="middle" fill="#555" x="240" y="65" font-size="12">
+ First line links to an svgView in an external file <tspan fill="black" font-style="italic">(linking-frag-202-t.svg)</tspan>
+ </text>
+ <text xml:id="comment-2" text-anchor="middle" fill="#555" x="240" y="80" font-size="12">
+ Second line links to an svgView in the local file
+ </text>
+ </g>
+
+ <rect x="30" y="100" width="420" height="140" fill="red" fill-opacity=".1" />
+
+ <g transform="translate(10, 30)" font-size="12">
+
+ <a xml:id="a1" xlink:href="linking-frag-202-t.svg#svgView(transform(rotate(30, 150, 150)))" transform="translate(30,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="red">
+ <set attributeName="stroke-width" to="4" begin="a1.focusin" end="a1.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Rotate</text>
+ </a>
+ <a xml:id="a2" xlink:href="linking-frag-202-t.svg#svgView(transform(translate(50, -50)))" transform="translate(100,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="blue" >
+ <set attributeName="stroke-width" to="4" begin="a2.focusin" end="a2.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Shift</text>
+ </a>
+ <a xml:id="a3" xlink:href="linking-frag-202-t.svg#svgView(transform(scale(0.5)))" transform="translate(170,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="green" >
+ <set attributeName="stroke-width" to="4" begin="a3.focusin" end="a3.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Scale</text>
+ </a>
+ <a xml:id="a4" xlink:href="linking-frag-202-t.svg#svgView(transform(skewX(15)))" transform="translate(240,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="purple" >
+ <set attributeName="stroke-width" to="4" begin="a4.focusin" end="a4.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewX</text>
+ </a>
+ <a xml:id="a5" xlink:href="linking-frag-202-t.svg#svgView(transform(skewY(15)))" transform="translate(310,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="maroon" >
+ <set attributeName="stroke-width" to="4" begin="a5.focusin" end="a5.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewY</text>
+ </a>
+ <a xml:id="a6" xlink:href="linking-frag-202-t.svg#svgView(transform(matrix(1 0 0 1 0 0)))" transform="translate(380,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="white" >
+ <set attributeName="stroke-width" to="4" begin="a6.focusin" end="a6.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" text-anchor="middle">identity</text>
+ </a>
+
+ <a xml:id="a7" xlink:href="#svgView(transform(rotate(30, 150, 150)))" transform="translate(30,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="red" >
+ <set attributeName="stroke-width" to="4" begin="a7.focusin" end="a7.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Rotate</text>
+ </a>
+ <a xml:id="a8" xlink:href="#svgView(transform(translate(50, -50)))" transform="translate(100,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="blue" >
+ <set attributeName="stroke-width" to="4" begin="a8.focusin" end="a8.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Shift</text>
+ </a>
+ <a xml:id="a9" xlink:href="#svgView(transform(scale(0.5)))" transform="translate(170,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="green" >
+ <set attributeName="stroke-width" to="4" begin="a9.focusin" end="a9.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Scale</text>
+ </a>
+ <a xml:id="a10" xlink:href="#svgView(transform(skewX(15)))" transform="translate(240,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="purple" >
+ <set attributeName="stroke-width" to="4" begin="a10.focusin" end="a10.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewX</text>
+ </a>
+ <a xml:id="a11" xlink:href="#svgView(transform(skewY(15)))" transform="translate(310,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="maroon" >
+ <set attributeName="stroke-width" to="4" begin="a11.focusin" end="a11.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewY</text>
+ </a>
+ <a xml:id="a12" xlink:href="#svgView(transform(matrix(1 0 0 1 0 0)))" transform="translate(380,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="white" >
+ <set attributeName="stroke-width" to="4" begin="a12.focusin" end="a12.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" text-anchor="middle">identity</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-frag-202-t.png b/test/svg/svg1.2/svg/linking-frag-202-t.png
new file mode 100644
index 0000000..347f290
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-frag-202-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-frag-202-t.svg b/test/svg/svg1.2/svg/linking-frag-202-t.svg
new file mode 100644
index 0000000..6c66c09
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-frag-202-t.svg
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Testing Links to External 'svgView' with Transforms" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: linking-frag-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Testing Links to external and internal 'svgView' with Transforms.
+ </p>
+ <p>
+ The first part of the test is passed if the rect links on the top line go to the linking-frag-202-t.svg file and
+ adjust the resulting view according to their respective text;
+ - The rect with 'Rotate' must link to the linking-frag-201-t.svg file and rotate resulting view
+ - The rect with 'Shift' must link to the linking-frag-201-t.svg file and shitf the resulting view
+ - The rect with 'Scale' must link to the linking-frag-201-t.svg file and scale the resulting view
+ - The rect with 'skewX' must link to the linking-frag-201-t.svg file and skew the resulting view along the X axis
+ - The rect with 'skewY' must link to the linking-frag-201-t.svg file and skew the resulting view along the Y axis
+ - The rect with 'identity' must link to the linking-frag-201-t.svg file and restore the view to an identity transformation.
+ </p>
+ <p>
+ The second part of the test is passed if the rect links on the bottom line link to this file and adjust the
+ resulting view according to their respective text;
+ - The rect with 'Rotate' must link to this file and rotate resulting view
+ - The rect with 'Shift' must link to this file and shitf the resulting view
+ - The rect with 'Scale' must link to this file and scale the resulting view
+ - The rect with 'skewX' must link to this file and skew the resulting view along the X axis
+ - The rect with 'skewY' must link to this file and skew the resulting view along the Y axis
+ - The rect with 'identity' must link to this file and restore the view to an identity transformation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-frag-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+
+ <rect xml:id="outlineRect" width="50" height="25" stroke="#333" fill-opacity="0.5" />
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" fill="black" x="240" y="40" font-size="18">Testing Links to External 'svgView' with Transforms</text>
+ <text xml:id="comment-1" text-anchor="middle" fill="#555" x="240" y="65" font-size="12">
+ First line links to an svgView in an external file <tspan fill="black" font-style="italic">(linking-frag-201-t.svg)</tspan>
+ </text>
+ <text xml:id="comment-2" text-anchor="middle" fill="#555" x="240" y="80" font-size="12">
+ Second line links to an svgView in the local file
+ </text>
+ </g>
+
+ <rect x="30" y="100" width="420" height="140" fill="blue" fill-opacity=".1" />
+
+ <g transform="translate(10, 30)" font-size="12">
+ <a xml:id="a1" xlink:href="linking-frag-201-t.svg#svgView(transform(rotate(30, 150, 150)))" transform="translate(30,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="red">
+ <set attributeName="stroke-width" to="4" begin="a1.focusin" end="a1.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Rotate</text>
+ </a>
+ <a xml:id="a2" xlink:href="linking-frag-201-t.svg#svgView(transform(translate(50, -50)))" transform="translate(100,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="blue" >
+ <set attributeName="stroke-width" to="4" begin="a2.focusin" end="a2.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Shift</text>
+ </a>
+ <a xml:id="a3" xlink:href="linking-frag-201-t.svg#svgView(transform(scale(0.5)))" transform="translate(170,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="green" >
+ <set attributeName="stroke-width" to="4" begin="a3.focusin" end="a3.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Scale</text>
+ </a>
+ <a xml:id="a4" xlink:href="linking-frag-201-t.svg#svgView(transform(skewX(15)))" transform="translate(240,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="purple" >
+ <set attributeName="stroke-width" to="4" begin="a4.focusin" end="a4.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewX</text>
+ </a>
+ <a xml:id="a5" xlink:href="linking-frag-201-t.svg#svgView(transform(skewY(15)))" transform="translate(310,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="maroon" >
+ <set attributeName="stroke-width" to="4" begin="a5.focusin" end="a5.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewY</text>
+ </a>
+ <a xml:id="a6" xlink:href="linking-frag-201-t.svg#svgView(transform(matrix(1 0 0 1 0 0)))" transform="translate(380,100)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="white" >
+ <set attributeName="stroke-width" to="4" begin="a6.focusin" end="a6.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" text-anchor="middle">identity</text>
+ </a>
+
+ <a xml:id="a7" xlink:href="#svgView(transform(rotate(30, 150, 150)))" transform="translate(30,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="red" >
+ <set attributeName="stroke-width" to="4" begin="a7.focusin" end="a7.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Rotate</text>
+ </a>
+ <a xml:id="a8" xlink:href="#svgView(transform(translate(50, -50)))" transform="translate(100,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="blue" >
+ <set attributeName="stroke-width" to="4" begin="a8.focusin" end="a8.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Shift</text>
+ </a>
+ <a xml:id="a9" xlink:href="#svgView(transform(scale(0.5)))" transform="translate(170,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="green" >
+ <set attributeName="stroke-width" to="4" begin="a9.focusin" end="a9.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">Scale</text>
+ </a>
+ <a xml:id="a10" xlink:href="#svgView(transform(skewX(15)))" transform="translate(240,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="purple" >
+ <set attributeName="stroke-width" to="4" begin="a10.focusin" end="a10.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewX</text>
+ </a>
+ <a xml:id="a11" xlink:href="#svgView(transform(skewY(15)))" transform="translate(310,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="maroon" >
+ <set attributeName="stroke-width" to="4" begin="a11.focusin" end="a11.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" fill="white" text-anchor="middle">skewY</text>
+ </a>
+ <a xml:id="a12" xlink:href="#svgView(transform(matrix(1 0 0 1 0 0)))" transform="translate(380,150)">
+ <use stroke-width="2" xlink:href="#outlineRect" fill="white" >
+ <set attributeName="stroke-width" to="4" begin="a12.focusin" end="a12.focusout" />
+ </use>
+ <text x="25" y="17" stroke="none" stroke-width="0" text-anchor="middle">identity</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-frag-203-t.png b/test/svg/svg1.2/svg/linking-frag-203-t.png
new file mode 100644
index 0000000..b4af39e
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-frag-203-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-frag-203-t.svg b/test/svg/svg1.2/svg/linking-frag-203-t.svg
new file mode 100644
index 0000000..f720357
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-frag-203-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="Doug Schepers" desc="Testing Links to Internal Fragment Identifiers" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: linking-frag-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests links to internal fragment identifiers.</p>
+ <p>
+ Activating the link on the red circle should pan the viewport to
+ center the orange circle (which is initially located outside the viewport).
+ </p>
+ <p>
+ Activating the link on the orange circle should pan the viewport to
+ center the yellow circle, and zoom out to show the entire yellow circle.
+ </p>
+ <p>
+ Activating the link on the yellow circle should pan the viewport to center
+ the red circle, but remain at the existing zoom level (i.e. not zoom in).
+ </p>
+ <p>
+ Note that the visual effect is only part of the pass criteria, and that the
+ changes in the viewport should be made using currentTranslate and currentScale,
+ not the viewBox; this part is currently not tested.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-frag-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <a xlink:href='#red_circle'>
+ <circle xml:id='yellow_circle' cx='240' cy='180' r='300' fill='yellow'/>
+ </a>
+
+ <a xlink:href='#orange_circle'>
+ <circle xml:id='red_circle' cx='240' cy='180' r='25' fill='red'/>
+ </a>
+
+ <a xlink:href='#yellow_circle'>
+ <circle xml:id='orange_circle' cx='640' cy='360' r='25' fill='rgb(255, 165, 0)'/>
+ </a>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-frag-204-t.png b/test/svg/svg1.2/svg/linking-frag-204-t.png
new file mode 100644
index 0000000..f0bb96b
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-frag-204-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-frag-204-t.svg b/test/svg/svg1.2/svg/linking-frag-204-t.svg
new file mode 100644
index 0000000..bc4ee3e
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-frag-204-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="DS" desc="Testing Links to Internal Fragment Identifiers" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: linking-frag-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests links to external fragment identifiers.</p>
+ <p>
+ Activating the link on the green circle should load linking-frag-203-t and pan the viewport to
+ center the orange circle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-frag-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <a xlink:href='linking-frag-203-t.svg#orange_circle'>
+ <circle xml:id='red_circle' cx='240' cy='180' r='65' fill='green'/>
+ </a>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-refs-201-t.png b/test/svg/svg1.2/svg/linking-refs-201-t.png
new file mode 100644
index 0000000..a0c54a4
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-refs-201-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-refs-201-t.svg b/test/svg/svg1.2/svg/linking-refs-201-t.svg
new file mode 100644
index 0000000..0a727b8
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-refs-201-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="External Animated Use Elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: linking-refs-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>External Animated Use Elements</p>
+ <p>
+ A 'use' elements place various animated fragments.
+ A local animate element is then applied to further animate the fragment.-
+ </p>
+ <p> - </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-refs-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" text-anchor="middle" x="240" y="45" font-size="16" fill="black">External Animated Use Elements</text>
+ <g transform="translate(90, 50)" font-size="14">
+ <g transform="translate(0, 60)">
+ <text x="80" y="0" fill="#555">Two rotating rectangles, blue and black</text>
+ <text x="80" y="15" fill="#555">with animated opacity</text>
+ <g fill-opacity="0.5">
+ <use x="20" xlink:href="../images/svglib.svg#rect5" fill="blue"/>
+ <use x="50" xlink:href="../images/svglib.svg#rect5"/>
+ <animate attributeName="fill-opacity" values="1;0.3;1" begin="0" dur="4s" repeatCount="indefinite"/>
+ </g>
+ </g>
+ <g transform="translate(0, 100)">
+ <text x="80" y="0" fill="#555">Two rotating rectangles, oscillating in phase </text>
+ <text x="80" y="15" fill="#555">opposition between yellow and red</text>
+ <g>
+ <use x="20" xlink:href="../images/svglib.svg#rect5" fill="blue">
+ <animate xml:id="anim10" attributeName="fill" from="red" to="yellow" begin="0;anim20.end" dur="1s"/>
+ <animate xml:id="anim20" attributeName="fill" from="yellow" to="red" begin="anim10.end" dur="1s"/>
+ </use>
+ <use x="50" xlink:href="../images/svglib.svg#rect5"/>
+ <animate xml:id="anim1" attributeName="fill" from="yellow" to="red" begin="0;anim2.end" dur="1s"/>
+ <animate xml:id="anim2" attributeName="fill" from="red" to="yellow" begin="anim1.end" dur="1s"/>
+ </g>
+ </g>
+ <g transform="translate(0, 140)">
+ <text x="80" y="0" fill="#555">Animated rotation, translation and color at </text>
+ <text x="80" y="15" fill="#555">different 'use' levels, external and internal</text>
+ <use x="20" xlink:href="../images/svglib.svg#rect6">
+ <animate attributeName="fill" from="red" to="blue" begin="0" dur="1s" repeatCount="indefinite"/>
+ </use>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-refs-202-t.png b/test/svg/svg1.2/svg/linking-refs-202-t.png
new file mode 100644
index 0000000..9fdd11e
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-refs-202-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-refs-202-t.svg b/test/svg/svg1.2/svg/linking-refs-202-t.svg
new file mode 100644
index 0000000..96b201c
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-refs-202-t.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Images with 'use' Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: linking-refs-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Images with 'use' Element</p>
+ <p>
+ The first is an external PNG reference.
+ The second is an inline base64 image defined in an external file.
+ </p>
+ <p>
+ Both images must be identical for the test to pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-refs-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" fill="black" x="240" y="40" font-size="18">Images with 'use' Element</text>
+ <text xml:id="comment-1" x="240" y="55" fill="#555" font-size="12">
+ The two images must appear identical.
+ </text>
+ </g>
+ <!-- External PNG image -->
+ <use xlink:href="../images/svglib.svg#img2" x="30" y="90"/>
+ <text text-anchor="middle" fill="#555" x="140" y="235">External PNG image</text>
+
+ <!-- External base64 image -->
+ <use xlink:href="../images/svglib.svg#img3" x="250" y="90"/>
+ <text text-anchor="middle" fill="#555" x="345" y="235">External base64 image</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-refs-203-t.png b/test/svg/svg1.2/svg/linking-refs-203-t.png
new file mode 100644
index 0000000..cae515f
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-refs-203-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-refs-203-t.svg b/test/svg/svg1.2/svg/linking-refs-203-t.svg
new file mode 100644
index 0000000..773231e
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-refs-203-t.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="External Fragments with 'use' Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: linking-refs-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests various external fragments with 'use' element:
+ fill, stroke, text, group, multiple levels, name clash and circular references
+ </p>
+ <p>
+ SVG fragments defined in an external file are invoked with the 'use' element.
+ The test is passed if the following objects are rendered:
+ - Right top; square with a horizontal gradient fill from orange to yellow, diagonal gradient stroke from blue to pink
+ - Right middle top; square with a diagonal gradient fill from blue to pink, horizontal gradient stroke from orange to yellow
+ - Right middle bottom; the letters ABC in an SVG font
+ - Right bottom; the English alphabet a to j in the shape of a square
+ - Left Top; square with horizontal gradient fill from orange to yellow, and 3 circles all with a blue to red gradient fill
+ running diagonally inside the square
+ - Left middle top; green square with a yellow circle in the middle
+ - Left middle bottom; red square
+ - Left bottom; two identical squares with light blue fill.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-refs-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+
+ <linearGradient xml:id="myLocalGrad">
+ <stop offset="0.05" stop-color="#F60"/>
+ <stop offset="0.95" stop-color="#FF6"/>
+ </linearGradient>
+ <rect xml:id="nameClashTest" x="0" y="0" width="30" height="30" fill="blue" />
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" fill="black" x="240" y="40" font-size="18">External Fragments with 'use' Element</text>
+ </g>
+ <g transform="translate(25, 25)" font-size="11">
+ <g transform="translate(0, 0)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="72">Rect using external gradients</text>
+ <text fill="#000" fill-opacity="0.6" x="50" y="86">for fill and stroke</text>
+ <use xlink:href="../images/svglib.svg#rect3" x="10" y="60" fill="green" stroke="blue" stroke-width="5"/>
+ </g>
+ <g transform="translate(0, 40)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="72">Rect using external fill gradient</text>
+ <text fill="#000" fill-opacity="0.6" x="50" y="86">gradient & local stroke gradient</text>
+ <use xlink:href="../images/svglib.svg#rect4" x="10" y="60" stroke="url(#myLocalGrad)" stroke-width="5"/>
+ </g>
+ <g transform="translate(0, 80)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="80">Text using SVG font</text>
+ <use xlink:href="../images/svglib.svg#text2" fill="blue" x="10" y="80"/>
+ </g>
+ <g transform="translate(0, 120)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="80">Alphabet a to j</text>
+ <use xlink:href="../images/svglib.svg#textArea1" fill="blue" x="10" y="60" font-size="12"/>
+ </g>
+ </g>
+ <g transform="translate(245, 25)" font-size="11">
+ <g transform="translate(0, 0)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="72">Group using a rect and</text>
+ <text fill="#000" fill-opacity="0.6" x="50" y="86">3 circles using gradients</text>
+ <use xlink:href="../images/svglib.svg#g2" x="10" y="60"/>
+ </g>
+ <g transform="translate(0, 40)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="72">2 levels of external <use> A green</text>
+ <text fill="#000" fill-opacity="0.6" x="50" y="86">rect, yellow circle must appear</text>
+ <use xlink:href="../images/svglib.svg#g3" x="10" y="60"/>
+ </g>
+ <g transform="translate(0, 80)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="72">Testing id name clash.</text>
+ <text fill="#000" fill-opacity="0.6" x="50" y="86">Rect must be red</text>
+ <use xlink:href="../images/svglib2.svg#nameClashTest" x="10" y="60"/>
+ </g>
+ <g transform="translate(0, 120)">
+ <g stroke-opacity="0.5" transform="translate(0, 67)">
+ <text fill="#000" fill-opacity="0.6" x="50" y="0">External circular reference</text>
+ <text fill="#000" fill-opacity="0.6" x="50" y="12" font-size="9">Two identical rectangles must appear,</text>
+ <text fill="#000" fill-opacity="0.6" x="50" y="22" font-size="9">proving the circular reference didn't loop</text>
+ </g>
+ <rect x="-30" y="60" width="30" height="30" fill="blue" fill-opacity=".3" />
+ <use xlink:href="../images/svglib.svg#gCircRef" x="10" y="60"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-refs-204-t.png b/test/svg/svg1.2/svg/linking-refs-204-t.png
new file mode 100644
index 0000000..e235cc0
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-refs-204-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-refs-204-t.svg b/test/svg/svg1.2/svg/linking-refs-204-t.svg
new file mode 100644
index 0000000..33ce1c7
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-refs-204-t.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="External Fragments with 'use' Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: linking-refs-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ External Fragments with 'use' Element.
+ </p>
+ <p>
+ Tests SVG fragments defined in an external file are invoked with the 'use' element.
+ The test is passed if the following objects are rendered:
+ - Right top; square with red fill and blue stroke
+ - Right middle; square with black fill
+ - Right bottom; the letters 'A' in blue, 'B' in red, 'C' in blue
+ - Left top; square with red fill and a circle in the middle with a blue fill
+ - Left middle; square with green fill
+ - Left bottom; square with green transparent fill with an overlapping circle with a blue transparent fill.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-refs-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+
+ <rect xml:id="thisRect" x="0" y="0" width="30" height="30" fill="green"/>
+ <circle xml:id="nameClashTest" cx="15" cy="15" r="15" fill="blue"/>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" fill="black" x="240" y="40" font-size="18">External Fragments with 'use' Element</text>
+ </g>
+ <g transform="translate(35, 35)" font-size="11">
+ <g transform="translate(0, 0)">
+ <text fill="#555" x="50" y="80">Red rect, blue stroke</text>
+ <use xlink:href="../images/svglib.svg#rect1" x="10" y="60" fill="green" stroke="blue" stroke-width="5"/>
+ </g>
+ <g transform="translate(0, 40)">
+ <text fill="#555" x="50" y="80">Black rect</text>
+ <use xlink:href="../images/svglib.svg#rect2" x="10" y="60"/>
+ </g>
+ <g transform="translate(0, 77)">
+ <text fill="#555" x="50" y="80">Blue-red-blue letters</text>
+ <use xlink:href="../images/svglib.svg#text1" fill="blue" x="25" y="80"/>
+ </g>
+ </g>
+ <g transform="translate(230, 35)" font-size="11">
+ <g transform="translate(0, 0)">
+ <text fill="#555" x="50" y="80">Group, red rect, blue circle</text>
+ <use xlink:href="../images/svglib.svg#g1" fill="red" x="10" y="60"/>
+ </g>
+ <g transform="translate(0, 40)">
+ <text fill="#555" x="50" y="73">Green rect,</text>
+ <text fill="#555" x="50" y="85">"externally defined in this file" </text>
+ <use xlink:href="linking-refs-204-t.svg#thisRect" fill="red" x="10" y="60"/>
+ </g>
+ <g transform="translate(0, 80)">
+ <text fill="#555" x="50" y="77">Test id clash - must show</text>
+ <text fill="#555" x="50" y="92">transparent blue circle & green rect </text>
+ <use xlink:href="#nameClashTest" x="10" y="60" fill-opacity="0.5"/>
+ <use xlink:href="../images/svglib.svg#nameClashTest" x="10" y="75" fill-opacity="0.5"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-refs-205-t.png b/test/svg/svg1.2/svg/linking-refs-205-t.png
new file mode 100644
index 0000000..7e1e662
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-refs-205-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-refs-205-t.svg b/test/svg/svg1.2/svg/linking-refs-205-t.svg
new file mode 100644
index 0000000..5c766b5
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-refs-205-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Images with 'use' Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: linking-refs-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests a 'use' element referencing an 'image' element and an 'a' element with xml:base.
+ </p>
+ <p>
+ The test is passed if two identical images are displayed.
+ </p>
+ <p>
+ The image on the right is located in the images directory (../images/) while the
+ image on the left is located in image2 directory (../images/image2). The image on
+ the right is specified in the svglib3.svg file using an 'image' element. The image
+ on the left is specified in the svglib3.svg using an 'a' element. The 'a' element
+ contains a group around it that specifies the image2 directory using 'xml:base'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-refs-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" fill="black" x="240" y="40" font-size="18">Images with external 'use' Element</text>
+ <text xml:id="comment-1" x="240" y="65" fill="#555">
+ Testing xml:base. The two images must appear identical.
+ </text>
+ </g>
+ <text text-anchor="middle" fill="#555" x="140" y="235">Click to execute link</text>
+ <text text-anchor="middle" fill="#555" x="345" y="235"></text>
+ <g xml:base="../images/">
+ <use xlink:href="svglib3.svg#img1" x="30" y="90"/>
+ <use xlink:href="svglib3.svg#img2" x="250" y="90"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/linking-refs-206-t.png b/test/svg/svg1.2/svg/linking-refs-206-t.png
new file mode 100644
index 0000000..f48cf76
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-refs-206-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-refs-206-t.svg b/test/svg/svg1.2/svg/linking-refs-206-t.svg
new file mode 100644
index 0000000..98b7fd1
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-refs-206-t.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="Check xlink role and arcrole are stored in the DOM" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: linking-refs-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests that values for the xlink role and arcrole attributes are stored in the DOM.
+ The test is passed if the raster image and the vector image both have dark
+ green and light green borders, same as the reference image.
+ </p>
+ <p>
+ The values for role and arcrole are based on the RDDL specifications of
+ <a href="http://www.rddl.org/natures.html">well known link natures</a> (role) and <a href="http://www.rddl.org/purposes.html">well known link purposes</a> (arcrole). Roles uses the namespace URI (for XML content types) or the canonical IANA URI of the media type registration (for non-XML content).
+ </p>
+ <p>
+ A uDOM script reads the values of the xlink role and arcrole attributes,
+ checks that they are the correct values, and sets the fill colour of some rectangles
+ from shades of red (meaning incorrect) to shades of green (meaning correct).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-refs-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g>
+ <rect xml:id="onear" x="10" y="40" width="173" height="140" fill="#C00"/>
+ <rect xml:id="oner" x="20" y="50" width="153" height="120" fill="#600"/>
+ <image xml:id="one" x="30" y="60" xlink:href="../images/disco.jpg" width="133" height="100"
+ xlink:arcrole="http://www.rddl.org/purposes#icon" xlink:role="http://www.isi.edu/in-notes/iana/assignments/media-types/image/png"/>
+ </g>
+ <g transform="translate(200,0)">
+ <rect xml:id="twoar" x="10" y="40" width="173" height="140" fill="#C00"/>
+ <rect xml:id="twor" x="20" y="50" width="153" height="120" fill="#600"/>
+ <animation xml:id="two" x="30" y="60" xlink:href="../images/ball.svg" width="133" height="100"
+ xlink:arcrole="http://www.rddl.org/purposes#icon"
+ xlink:role="http://www.w3.org/2000/svg"/>
+ </g>
+ <script type="application/ecmascript">
+ var img1=document.getElementById("one");
+ if (img1.getAttributeNS("http://www.w3.org/1999/xlink", "arcrole")=="http://www.rddl.org/purposes#icon")
+ {
+ document.getElementById("onear").setAttribute("fill", "#0C0");
+ }
+ if (img1.getAttributeNS("http://www.w3.org/1999/xlink", "role")=="http://www.isi.edu/in-notes/iana/assignments/media-types/image/png")
+ {
+ document.getElementById("oner").setAttribute("fill", "#060");
+ }
+
+ var anim1=document.getElementById("two");
+ if (anim1.getAttributeNS("http://www.w3.org/1999/xlink", "arcrole")=="http://www.rddl.org/purposes#icon")
+ {
+ document.getElementById("twoar").setAttribute("fill", "#0C0");
+ }
+ if (anim1.getAttributeNS("http://www.w3.org/1999/xlink", "role")=="http://www.w3.org/2000/svg")
+ {
+ document.getElementById("twor").setAttribute("fill", "#060");
+ }
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/linking-uri-03-t.png b/test/svg/svg1.2/svg/linking-uri-03-t.png
new file mode 100644
index 0000000..1ae5560
Binary files /dev/null and b/test/svg/svg1.2/svg/linking-uri-03-t.png differ
diff --git a/test/svg/svg1.2/svg/linking-uri-03-t.svg b/test/svg/svg1.2/svg/linking-uri-03-t.svg
new file mode 100644
index 0000000..eb8ed89
--- /dev/null
+++ b/test/svg/svg1.2/svg/linking-uri-03-t.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="LK" desc="Verify xlink attributes on the 'a' element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: linking-uri-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify the handling of the allowable xlink attributes on the 'a' element. The initial view of this test contains a
+ single green triangle, labelling text, and the usual template legend and frame.
+ </p>
+ <p>
+ There is a link on the triangle, pointing to an external SVG file, which is in the images directory (../images/).
+ The target file contains SVG 'text' elements which comprise a TOC and brief description of all of the SVG Tiny 1.2
+ test files for Linking. Upon clicking the triangle, the image of the linkingToc-t.svg file should replace the
+ initial view of this test case in the viewer frame.
+ </p>
+ <p>
+ The purpose of the test is to verify that viewers tolerate the presence of xlink attributes on the 'a' element. The
+ presence of the attributes should not change the behavior of the test in any way. The results of executing the link
+ should be identical to executing the first (topmost) link of linking-uri-01-t.
+ </p>
+ <p>
+ There are two reference images associated with this test case. The first illustrates the correct "start" or initial
+ state of the rendered SVG file. The second illustrates the correct image after the link is activated (to the
+ linkingToc-t.svg file). (Note. This harness does not yet provide access to multiple PNGs; the first, initial-state
+ PNG is shown.)
+ </p>
+ <p>
+ The test uses the 'rect' element, as well as basic fill (solid simple colors), stroke (black and colored wide and
+ 1-pixel lines), font-family (Arial) and font-size properties.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: linking-uri-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="75" y="16" font-size="12">Simple exercise of xlink attributes on the 'a' element.</text>
+ <a xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" xlink:href="../images/linkingToc-t.svg" xlink:role="figure-out-a-role-value-and-associated-xmlns" xlink:title="TOC of Linking BE tests." target="_self">
+ <path d="M 135 122 l 130 0 l -65 130 z" fill="lime" stroke="blue" />
+ </a>
+ <text x="160" y="116" font-size="12">Click for TOC</text>
+ <text x="25" y="172" font-size="12">Link to local file</text>
+ <text x="25" y="182" font-size="12">linkingToc-t.svg.</text>
+ <rect x="19" y="160" width="100" height="26" fill="none" stroke="black" />
+ <text x="275" y="144" font-size="10">xlink:type="simple"</text>
+ <text x="275" y="155" font-size="10">xlink:show="replace"</text>
+ <text x="275" y="166" font-size="10">xlink:actuate="onRequest"</text>
+ <text x="275" y="177" font-size="10">xlink:href="linkingToc-t.svg"</text>
+ <text x="275" y="188" font-size="10">xlink:role="figure-out-a-role"</text>
+ <text x="275" y="199" font-size="10">xlink:title="TOC of Linking BE tests."</text>
+ <text x="275" y="210" font-size="10">target="_self"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-201-t.png b/test/svg/svg1.2/svg/media-alevel-201-t.png
new file mode 100644
index 0000000..87f86ae
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-201-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-201-t.svg b/test/svg/svg1.2/svg/media-alevel-201-t.svg
new file mode 100644
index 0000000..ed0fe2d
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-201-t.svg
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Testing 'audio' Element with the 'audio-level' Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: media-alevel-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing 'audio' Element with the 'audio-level' Attribute</p>
+ <p>
+ The scale at the bottom of the slide uses a 'set' element to modify the 'audio-level' on the sample audio element.
+ The 'audio' element can be triggered by activating the current focus.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-201-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content">
+ <rect x="15" y="70" height="215" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="25" font-size="14" fill="#000">Audio Level</text>
+ <g font-size="10" fill="#555">
+ <text xml:id="comment-1" x="240" y="45">
+ The scale at the bottom uses 'set' to modify the 'audio-level' on the sample audio element.
+ </text>
+ <text xml:id="comment-2" x="240" y="57">
+ The audio element can be triggered by activating the current focus.
+ </text>
+ </g>
+ </g>
+ <g visibility="hidden">
+ <line x1="0" x2="480" y1="180" y2="180" stroke="red"/>
+ <line x1="240" x2="240" y1="0" y2="360" stroke="red"/>
+ </g>
+ <g stroke="gray" stroke-width="1" fill="white" font-size="11" text-anchor="middle" transform="scale(1.20,1),translate(50,100)">
+ <g transform="translate(122.5,30)">
+ <audio xml:id="audioElement" audio-level="0.3" xlink:href="../images/boing_x.wav" type="audio/wav" begin="activate" dur="2s" repeatCount="3"/>
+ <text x="25" y="25" stroke="none" fill="black">Boing</text>
+ <text x="25" y="37" stroke="none" fill="#555" font-size="8">0</text>
+ <rect fill="#08f" fill-opacity="0.4" xml:id="r" x="0" y="0" width="50" height="50">
+ <animateColor attributeName="fill" begin="audioElement.begin" values="red" fill="freeze"/>
+ <animateColor attributeName="fill" begin="audioElement.end" dur="0.2s" to="blue" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g xml:id="volControl" transform="translate(-7.5, -20)">
+ <g stroke="#999" fill="none" transform="scale(1.5,1), translate(65,265)">
+ <line x1="0" x2="200" y1="0" y2="0" stroke="#999"/>
+ <line x1="00" x2="0" y1="-4" y2="4"/>
+ <line x1="20" x2="20" y1="-4" y2="4"/>
+ <line x1="40" x2="40" y1="-4" y2="4"/>
+ <line x1="60" x2="60" y1="-4" y2="4"/>
+ <line x1="80" x2="80" y1="-4" y2="4"/>
+ <line x1="100" x2="100" y1="-4" y2="4"/>
+ <line x1="120" x2="120" y1="-4" y2="4"/>
+ <line x1="140" x2="140" y1="-4" y2="4"/>
+ <line x1="160" x2="160" y1="-4" y2="4"/>
+ <line x1="180" x2="180" y1="-4" y2="4"/>
+ <line x1="200" x2="200" y1="-4" y2="4"/>
+ <g stroke="none" fill="#999" text-anchor="middle" font-size="8">
+ <text x="0" y="12">0</text>
+ <text x="100" y="12">volume</text>
+ <text x="200" y="12">10</text>
+ </g>
+ <rect xml:id="volMarker" x="58" y="-5" width="4" height="10" fill="blue" fill-opacity="0.4" stroke="none"/>
+ <g stroke-width="0.5" stroke="none" fill="white" fill-opacity="0">
+ <rect xml:id="v0" x="0" y="-5" width="10" height="10">
+ <set xlink:href="#audioElement" begin="v0.mouseover" attributeName="audio-level" to="0" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v0.mouseover" attributeName="x" to="-2" fill="freeze"/>
+ </rect>
+ <rect xml:id="v1" x="10" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v1.mouseover" attributeName="audio-level" to="0.1" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v1.mouseover" attributeName="x" to="18" fill="freeze"/>
+ </rect>
+ <rect xml:id="v2" x="30" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v2.mouseover" attributeName="audio-level" to="0.2" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v2.mouseover" attributeName="x" to="38" fill="freeze"/>
+ </rect>
+ <rect xml:id="v3" x="50" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v3.mouseover" attributeName="audio-level" to="0.3" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v3.mouseover" attributeName="x" to="58" fill="freeze"/>
+ </rect>
+ <rect xml:id="v4" x="70" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v4.mouseover" attributeName="audio-level" to="0.4" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v4.mouseover" attributeName="x" to="78" fill="freeze"/>
+ </rect>
+ <rect xml:id="v5" x="90" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v5.mouseover" attributeName="audio-level" to="0.5" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v5.mouseover" attributeName="x" to="98" fill="freeze"/>
+ </rect>
+ <rect xml:id="v6" x="110" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v6.mouseover" attributeName="audio-level" to="0.6" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v6.mouseover" attributeName="x" to="118" fill="freeze"/>
+ </rect>
+ <rect xml:id="v7" x="130" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v7.mouseover" attributeName="audio-level" to="0.7" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v7.mouseover" attributeName="x" to="138" fill="freeze"/>
+ </rect>
+ <rect xml:id="v8" x="150" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v8.mouseover" attributeName="audio-level" to="0.8" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v8.mouseover" attributeName="x" to="158" fill="freeze"/>
+ </rect>
+ <rect xml:id="v9" x="170" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v9.mouseover" attributeName="audio-level" to="0.9" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v9.mouseover" attributeName="x" to="178" fill="freeze"/>
+ </rect>
+ <rect xml:id="v10" x="190" y="-5" width="10" height="10">
+ <set xlink:href="#audioElement" begin="v10.mouseover" attributeName="audio-level" to="1" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v10.mouseover" attributeName="x" to="198" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-202-t.png b/test/svg/svg1.2/svg/media-alevel-202-t.png
new file mode 100644
index 0000000..5f0c01a
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-202-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-202-t.svg b/test/svg/svg1.2/svg/media-alevel-202-t.svg
new file mode 100644
index 0000000..9b8a29f
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-202-t.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="DOH" owner="AE" desc="Testing 'audio' Element with the 'audio-level' Attribute" status="accepted" approved="yes" version="$Revision: 1.10 $" testname="$RCSfile: media-alevel-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing 'video' Element with the 'audio-level' Attribute</p>
+ <p>
+ The scale at the bottom of the slide uses a 'set' element to modify the 'audio-level' on the sample video element.
+ </p>
+ <p>
+ The 'video' element can also be triggered by activating the current focus.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-202-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content">
+ <rect x="15" y="70" height="215" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="25" font-size="14" fill="#000">Audio Level</text>
+ <g font-size="10" fill="#555">
+ <text xml:id="comment-1" x="240" y="45">
+ The scale at the bottom uses 'set' to modify the 'audio-level' on the sample video element.
+ </text>
+ <text xml:id="comment-2" x="240" y="57">
+ The video element can be triggered by activating the current focus.
+ </text>
+ </g>
+ </g>
+ <g visibility="hidden">
+ <line x1="0" x2="480" y1="180" y2="180" stroke="red"/>
+ <line x1="240" x2="240" y1="0" y2="360" stroke="red"/>
+ </g>
+ <g stroke="gray" stroke-width="1" fill="white" font-size="11" text-anchor="middle" transform="scale(1.20,1),translate(50,100)">
+ <g transform="translate(122.5,30)">
+ <rect fill="#08f" fill-opacity="0.4" xml:id="r" x="0" y="0" width="50" height="50">
+ <animateColor attributeName="fill" begin="audioElement.begin" values="red" fill="freeze"/>
+ <animateColor attributeName="fill" begin="audioElement.end" dur="0.2s" to="blue" fill="freeze"/>
+ </rect>
+ <video xml:id="audioElement" audio-level="0.3" begin="activate" width="50" height="50" xlink:href="../images/skier.3gp" type="video/3gp"/>
+ </g>
+ </g>
+ </g>
+ <g xml:id="volControl" transform="translate(-7.5, -20)">
+ <g stroke="#999" fill="none" transform="scale(1.5,1), translate(65,265)">
+ <line x1="0" x2="200" y1="0" y2="0" stroke="#999"/>
+ <line x1="00" x2="0" y1="-4" y2="4"/>
+ <line x1="20" x2="20" y1="-4" y2="4"/>
+ <line x1="40" x2="40" y1="-4" y2="4"/>
+ <line x1="60" x2="60" y1="-4" y2="4"/>
+ <line x1="80" x2="80" y1="-4" y2="4"/>
+ <line x1="100" x2="100" y1="-4" y2="4"/>
+ <line x1="120" x2="120" y1="-4" y2="4"/>
+ <line x1="140" x2="140" y1="-4" y2="4"/>
+ <line x1="160" x2="160" y1="-4" y2="4"/>
+ <line x1="180" x2="180" y1="-4" y2="4"/>
+ <line x1="200" x2="200" y1="-4" y2="4"/>
+ <g stroke="none" fill="#999" text-anchor="middle" font-size="8">
+ <text x="0" y="12">0</text>
+ <text x="100" y="12">volume</text>
+ <text x="200" y="12">10</text>
+ </g>
+ <rect xml:id="volMarker" x="58" y="-5" width="4" height="10" fill="blue" fill-opacity="0.4" stroke="none"/>
+ <g stroke-width="0.5" stroke="none" fill="white" fill-opacity="0">
+ <rect xml:id="v0" x="0" y="-5" width="10" height="10">
+ <set xlink:href="#audioElement" begin="v0.mouseover" attributeName="audio-level" to="0" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v0.mouseover" attributeName="x" to="-2" fill="freeze"/>
+ </rect>
+ <rect xml:id="v1" x="10" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v1.mouseover" attributeName="audio-level" to="0.1" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v1.mouseover" attributeName="x" to="18" fill="freeze"/>
+ </rect>
+ <rect xml:id="v2" x="30" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v2.mouseover" attributeName="audio-level" to="0.2" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v2.mouseover" attributeName="x" to="38" fill="freeze"/>
+ </rect>
+ <rect xml:id="v3" x="50" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v3.mouseover" attributeName="audio-level" to="0.3" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v3.mouseover" attributeName="x" to="58" fill="freeze"/>
+ </rect>
+ <rect xml:id="v4" x="70" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v4.mouseover" attributeName="audio-level" to="0.4" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v4.mouseover" attributeName="x" to="78" fill="freeze"/>
+ </rect>
+ <rect xml:id="v5" x="90" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v5.mouseover" attributeName="audio-level" to="0.5" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v5.mouseover" attributeName="x" to="98" fill="freeze"/>
+ </rect>
+ <rect xml:id="v6" x="110" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v6.mouseover" attributeName="audio-level" to="0.6" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v6.mouseover" attributeName="x" to="118" fill="freeze"/>
+ </rect>
+ <rect xml:id="v7" x="130" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v7.mouseover" attributeName="audio-level" to="0.7" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v7.mouseover" attributeName="x" to="138" fill="freeze"/>
+ </rect>
+ <rect xml:id="v8" x="150" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v8.mouseover" attributeName="audio-level" to="0.8" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v8.mouseover" attributeName="x" to="158" fill="freeze"/>
+ </rect>
+ <rect xml:id="v9" x="170" y="-5" width="20" height="10">
+ <set xlink:href="#audioElement" begin="v9.mouseover" attributeName="audio-level" to="0.9" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v9.mouseover" attributeName="x" to="178" fill="freeze"/>
+ </rect>
+ <rect xml:id="v10" x="190" y="-5" width="10" height="10">
+ <set xlink:href="#audioElement" begin="v10.mouseover" attributeName="audio-level" to="1" fill="freeze"/>
+ <set xlink:href="#volMarker" begin="v10.mouseover" attributeName="x" to="198" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-203-t.png b/test/svg/svg1.2/svg/media-alevel-203-t.png
new file mode 100644
index 0000000..a6e0552
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-203-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-203-t.svg b/test/svg/svg1.2/svg/media-alevel-203-t.svg
new file mode 100644
index 0000000..4a02f0a
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-203-t.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="ASl" desc="Test of audio level animation" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: media-alevel-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio level animation. audio-level is animated to many values between 0 and 1. The volume dial graphic animates to show the expected relative volume.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <audio xml:id="mondays" begin="0" end="100" repeatCount="100"
+ xlink:href="../images/welcome.wav">
+ <animate attributeName="audio-level" dur="15" values="0;0.25;0.25;1;1;0.50;1;0" fill="freeze"/>
+ </audio>
+
+ <rect x="40" y="95" width="180" height="50" fill="#DA2"/>
+ <rect x="40" y="100" width="180" height="40" fill="#FD2"/>
+ <rect x="45" y="130" width="10" height="5" fill="#DA2"/>
+ <circle cx="200" cy="120" r="7" fill="#DA2"/>
+ <circle cx="59" cy="132.5" r="2" fill="#F33"/>
+
+ <g transform="translate(130, 120)">
+ <circle r="15" fill="#DA2"/>
+ <circle cx="-7" cy="7" r="2" fill="#F33"/>
+ <animateTransform additive="sum" attributeName="transform" dur="15" values="0;50;50;200;200;100;200;0" type="rotate" fill="freeze"/>
+ </g>
+
+ <text x="10" y="30">Animated volume.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-204-t.png b/test/svg/svg1.2/svg/media-alevel-204-t.png
new file mode 100644
index 0000000..a7e9858
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-204-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-204-t.svg b/test/svg/svg1.2/svg/media-alevel-204-t.svg
new file mode 100644
index 0000000..95c88b6
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-204-t.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="test of two simultaneous audio elements with animated audio-level" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-alevel-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on animated audio-level. Two sound-clips have their audio-level animated to different values over 10 seconds.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <audio xml:id="mondays" begin="0" repeatCount="15"
+ xlink:href="../images/welcome.wav">
+ <animate attributeName="audio-level" dur="10" from="0" to="1" fill="freeze"/>
+ </audio>
+
+ <rect x="40" y="95" width="180" height="50" fill="#DA2"/>
+ <rect x="40" y="100" width="180" height="40" fill="#FD2"/>
+ <rect x="45" y="130" width="10" height="5" fill="#DA2"/>
+ <circle cx="200" cy="120" r="7" fill="#DA2"/>
+ <circle cx="59" cy="132.5" r="2" fill="#F33"/>
+
+ <g transform="translate(130, 120)">
+ <circle r="15" fill="#DA2"/>
+ <circle cx="-7" cy="7" r="2" fill="#F33"/>
+ <animateTransform additive="sum" attributeName="transform" dur="10" values="0;190" type="rotate" fill="freeze"/>
+ </g>
+
+ <g transform="translate(0, 100)">
+
+ <audio xml:id="trubble" begin="0" repeatCount="15"
+ xlink:href="../images/excuse_me.wav">
+ <animate attributeName="audio-level" dur="15" values="0;0.25;0.25;1;1;0.50;1;0" fill="freeze"/>
+ </audio>
+
+ <rect x="40" y="95" width="180" height="50" fill="#DA2"/>
+ <rect x="40" y="100" width="180" height="40" fill="#FD2"/>
+ <rect x="45" y="130" width="10" height="5" fill="#DA2"/>
+ <circle cx="200" cy="120" r="7" fill="#DA2"/>
+ <circle cx="59" cy="132.5" r="2" fill="#F33"/>
+
+ <g transform="translate(130, 120)">
+ <circle r="15" fill="#DA2"/>
+ <circle cx="-7" cy="7" r="2" fill="#F33"/>
+ <animateTransform additive="sum" attributeName="transform" dur="15" values="0;50;50;200;200;100;200;0" type="rotate" fill="freeze"/>
+ </g>
+
+ </g>
+
+ <text x="10" y="30" font-size="20">Animated audio-level</text>
+ <text x="10" y="45" font-size="10">Two sound-clips have their volume animated to different values over 10 seconds.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-205-t.png b/test/svg/svg1.2/svg/media-alevel-205-t.png
new file mode 100644
index 0000000..8205be9
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-205-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-205-t.svg b/test/svg/svg1.2/svg/media-alevel-205-t.svg
new file mode 100644
index 0000000..26785d6
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-205-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Simple test of audio-level" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-alevel-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio volume control by animation. audio-level is animated from 0 to 1 over 10 seconds.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <audio xml:id="mondays" begin="0" repeatCount="12"
+ xlink:href="../images/welcome.wav">
+ <animate attributeName="audio-level" dur="10" from="0" to="1" fill="freeze"/>
+ </audio>
+
+ <rect x="40" y="95" width="180" height="50" fill="#DA2"/>
+ <rect x="40" y="100" width="180" height="40" fill="#FD2"/>
+ <rect x="45" y="130" width="10" height="5" fill="#DA2"/>
+ <circle cx="200" cy="120" r="7" fill="#DA2"/>
+ <circle cx="59" cy="132.5" r="2" fill="#F33"/>
+
+ <g transform="translate(130, 120)">
+ <circle r="15" fill="#DA2"/>
+ <circle cx="-7" cy="7" r="2" fill="#F33"/>
+ <animateTransform additive="sum" attributeName="transform" dur="10" values="0;190" type="rotate" fill="freeze"/>
+ </g>
+ <g xml:id="desc" font-size="20">
+ <text x="10" y="30">Animated volume</text>
+ <text x="10" y="55">dur="10"</text>
+ <text x="10" y="70">from="0" to="1"</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-206-t.png b/test/svg/svg1.2/svg/media-alevel-206-t.png
new file mode 100644
index 0000000..f9456ee
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-206-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-206-t.svg b/test/svg/svg1.2/svg/media-alevel-206-t.svg
new file mode 100644
index 0000000..3b21518
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-206-t.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="inheritence of audio-level" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: media-alevel-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio-level inheritance in several child elements. audio-level on the first element is 0.5. audio-level on the second sound is halved to 0.25. audio-level on the third and fourth sounds are halved agian to 0.125 and 0.0625 respectively.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g audio-level="0.5">
+
+ <!-- audio-level on this element evaluates to 1 (defaults to initial), and the actual audio-level will be 0.5 * 1 = 0.5. -->
+ <audio xml:id="audio1" xlink:href="../images/welcome.wav" begin="2" />
+
+ <!-- audio-level on this element evaluates to 0.5 (due to ordinary inheritance), and the actual audio-level will be 0.5 * 0.5 = 0.25. -->
+ <audio xml:id="audio2" xlink:href="../images/welcome.wav" begin="audio1.end" audio-level="inherit" />
+
+ <g audio-level="inherit">
+ <!-- audio-level on this element evaluates to 0.5, and the actual audio-level will be 0.5 * 0.5 * 0.5 = 0.125. -->
+ <audio xml:id="audio3" xlink:href="../images/welcome.wav" begin="audio2.end" audio-level="inherit" />
+
+ <g audio-level="inherit">
+ <!-- audio-level on this element evaluates to 0.5, and the actual audio-level will be 0.5 * 0.5 * 0.5 * 0.5 = 0.0625. -->
+ <audio xml:id="audio4" xlink:href="../images/welcome.wav" begin="audio3.end" audio-level="inherit" />
+
+ </g>
+
+ </g>
+ </g>
+
+ <text x="10" y="35" font-size="12"> Test on audio-level inheritance in child elements. </text>
+ <text x="10" y="50" font-size="12"> An audio file is played four times. Each time the audio-level should be cut in half. </text>
+ <text x="10" y="65" font-size="12"> The four audio-level values should be: 0.5 , 0.25 , 0.125 , 0.0625 </text>
+ <text x="10" y="80" font-size="12"> A very noticeable difference in audio level should be heard! </text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-207-t.png b/test/svg/svg1.2/svg/media-alevel-207-t.png
new file mode 100644
index 0000000..034eb93
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-207-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-207-t.svg b/test/svg/svg1.2/svg/media-alevel-207-t.svg
new file mode 100644
index 0000000..3a8bb23
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-207-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="audio-level set to 0" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-alevel-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio. audio-level is set to "0" so no sound should be heard.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="10" y="60" font-size="20">Test on audio-level</text>
+ <text x="10" y="80" font-size="20">audio-level="0"</text>
+ <text x="10" y="100" font-size="20">An audio file is repeated for 10 seconds,</text>
+ <text x="10" y="120" font-size="20">should NOT be audible!</text>
+
+ <audio xml:id="welcome" audio-level="0"
+ xlink:href="../images/welcome.wav"
+ begin="1s" end="10s" repeatCount="indefinite" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-alevel-208-t.png b/test/svg/svg1.2/svg/media-alevel-208-t.png
new file mode 100644
index 0000000..9519bfa
Binary files /dev/null and b/test/svg/svg1.2/svg/media-alevel-208-t.png differ
diff --git a/test/svg/svg1.2/svg/media-alevel-208-t.svg b/test/svg/svg1.2/svg/media-alevel-208-t.svg
new file mode 100644
index 0000000..ef405e5
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-alevel-208-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Tests repeat of audio." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-alevel-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio. audio-level is set to "1" so a audio-file being repeated for 10s should be heard.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-alevel-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="10" y="60" font-size="20">Test on audio-level</text>
+ <text x="10" y="80" font-size="20">audio-level="1"</text>
+ <text x="10" y="100" font-size="20">An audio file is repeated for 10 seconds,</text>
+ <text x="10" y="120" font-size="20">should be audible!</text>
+
+ <audio xml:id="welcome" audio-level="1"
+ xlink:href="../images/welcome.wav"
+ begin="1s" end="10s" repeatCount="indefinite" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-201-t.png b/test/svg/svg1.2/svg/media-anim-201-t.png
new file mode 100644
index 0000000..5d58595
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-201-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-201-t.svg b/test/svg/svg1.2/svg/media-anim-201-t.svg
new file mode 100644
index 0000000..fe70411
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-201-t.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Test the Animation element with external references" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: media-anim-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates the Animation element with external references.</p>
+ <p>There are five references. Each one is a separate file.</p>
+ <p>The time scale loops from 0 to 10 seconds - the vertical red line pans from left to right.</p>
+ <p>In the first example the two rectangles are set to rotate 90 degrees alternatively.</p>
+ <p>In the second case the circle has focus. Since this is the only item that has focus it can not loose focus and should remain red even when an attempt is made to change focus.</p>
+ <p>The third example has a circle that is set to change to red on a mouseover event. On mouseout the circle should change back to grey.</p>
+ <p>The forth example invokes the same external file twice - two squares with a gradiant should be rotating in sync continously. </p>
+ <p>The last case calls an animation that should display a blue square with five gradiant circles all rotating continously.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="50" font-size="16" fill="black" text-anchor="middle">
+ Animation Elements with External References
+ </text>
+ <g transform="translate(0,-5)" font-size="10" fill="#555">
+ <g transform="translate(40,100)">
+ <g transform="translate(5, 0)">
+ <line x1="0" x2="0" y1="-5" y2="190" stroke="red" stroke-width="1">
+ <animate attributeName="x1" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ <animate attributeName="x2" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ </line>
+ </g>
+ <use y="-5" xlink:href="../images/animationresource-myscale.svg#myScale"/>
+ <text x="120" y="0">Reference Timeline : starts at 0, goes through the scale in 10s.</text>
+ <text x="120" y="12">Squares should rotate indefinetly.</text>
+ </g>
+ <g transform="translate(40,130)">
+ <text x="120" y="0">1.</text>
+ <text x="135" y="0">Reference to external dual-chained animation.</text>
+ <text x="135" y="10">Rects should spin alternatively.</text>
+ <text x="135" y="20"/>
+ <animation width="100" height="50" begin="0" dur="10" x="13" y="-20" xlink:href="../images/animationresource-anim1.svg" repeatCount="indefinite"/>
+ </g>
+ <g transform="translate(40,160)">
+ <text x="120" y="0">2.</text>
+ <text x="135" y="0">Reference to focusable circle. Should start as red and</text>
+ <text x="135" y="10">remain red even when an attempt is made to move focus.</text>
+ <animation width="100" height="50" begin="0" dur="10" x="35" y="-15" xlink:href="../images/animationresource-activecircle1.svg" repeatCount="indefinite"/>
+ </g>
+ <g transform="translate(40,190)">
+ <text x="120" y="0">3.</text>
+ <text x="135" y="0">Reference to mouseoverable circle.</text>
+ <text x="135" y="10">Should be grey and turn red on mousover then back to grey.</text>
+ <animation width="100" height="50" begin="0" dur="10" x="35" y="-15" xlink:href="../images/animationresource-activecircle2.svg" repeatCount="indefinite"/>
+ </g>
+ <g transform="translate(40,220)">
+ <text x="120" y="0">4.</text>
+ <text x="135" y="0">Reference to animated rect with gradient fill - twice.</text>
+ <text x="135" y="10"/>
+ <animation width="50" height="100" begin="0" dur="10" x="5" y="-30" xlink:href="../images/animationresource-gradrect2.svg" repeatCount="indefinite"/>
+ <animation width="50" height="100" begin="0" dur="10" x="35" y="-30" xlink:href="../images/animationresource-gradrect2.svg" repeatCount="indefinite"/>
+ </g>
+ <g transform="translate(40,250)">
+ <text x="120" y="0">5.</text>
+ <text x="135" y="0">Reference to animated group rect using circles with gradients.</text>
+ <text x="135" y="10"/>
+ <animation width="50" height="50" begin="0" dur="10" x="20" y="-30" xlink:href="../images/animationresource-userect.svg" repeatCount="indefinite" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-202-t.png b/test/svg/svg1.2/svg/media-anim-202-t.png
new file mode 100644
index 0000000..6115d01
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-202-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-202-t.svg b/test/svg/svg1.2/svg/media-anim-202-t.svg
new file mode 100644
index 0000000..9a7bf03
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-202-t.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: media-anim-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>
+ This test validates the animation element with external references with emphases on time based animations.
+ The same external file is used for all seven tests.
+ </p>
+ <p>
+ The 'initialVisibility' attribute is not specified so the default should apply - 'whenStarted'.
+ In other words the animations should not be visible until they start and then they should disappear as the
+ fill is not set to 'freeze' so the initial state should be re-instated.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="10" y="10" height="285" width="460" fill="none" stroke="black" stroke-width="0.25"/>
+ <g transform="translate(240,25 )" font-size="16" fill="#555" text-anchor="middle">
+ <text xml:id="display-title" x="0" y="2" font-size="16" fill="black" text-anchor="middle">Animation Elements with External References</text>
+ <text xml:id="comment-1" x="0" y="17" font-size="10">
+ Testing time-base animation control. Every time a scale shows up, its own time should be 0
+ </text>
+ </g>
+ <g font-size="10" fill="#555" transform="translate(5,-37)">
+ <g transform="translate(40,100)">
+ <g transform="translate(5, 0)">
+ <line x1="0" y1="0" x2="0" y2="232" stroke="red" stroke-width="1">
+ <animate attributeName="x1" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ <animate attributeName="x2" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ </line>
+ </g>
+ <use xlink:href="../images/animation2.svg#myScale"/>
+ <text x="120" y="5">Reference Timeline : starts at 0, goes through the scale in 10s</text>
+ </g>
+ <g transform="translate(40,130)">
+ <animation width="110" height="50" begin="0" dur="10s" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">1.</text>
+ <text x="135" y="5">Full Animation : starts at 0, stops at 10</text>
+ </g>
+ <g transform="translate(40,160)">
+ <animation width="110" height="50" begin="2" dur="4s" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="3">2.</text>
+ <text x="135" y="3">Shorter Animation used : appears at 2, stops at 6</text>
+ </g>
+ <g transform="translate(40,190)">
+ <animation width="110" height="50" begin="0" dur="14s" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="3">3.</text>
+ <text x="135" y="3">Longer Animation (14s) : appears at 0, stops at 10</text>
+ </g>
+ <g transform="translate(40,220)">
+ <animation width="110" height="50" begin="0" dur="2s" repeatCount="5" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="3">4.</text>
+ <text x="135" y="3">Short repeatCount animation : goes 5 times from 0 to 2, </text>
+ <text x="135" y="15">stops at 10</text>
+ </g>
+ <g transform="translate(40,250)">
+ <animation width="110" height="50" begin="0" dur="2s" repeatDur="10" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">5.</text>
+ <text x="135" y="5">Short repeatDur animation : same as above</text>
+ </g>
+ <g transform="translate(40,280)">
+ <animation width="110" height="50" begin="4" dur="4s" fill="freeze" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">6.</text>
+ <text x="135" y="5">Frozen animation : appears at 4, freezes on 4 at 8</text>
+ </g>
+ <g transform="translate(40,310)">
+ <animation width="110" height="50" begin="0" dur="20s" end="4s" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="3">7.</text>
+ <text x="135" y="3">Interrupted animation : should stop at 4 because of </text>
+ <text x="135" y="15">"end" attribute</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-203-t.png b/test/svg/svg1.2/svg/media-anim-203-t.png
new file mode 100644
index 0000000..c9d55ea
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-203-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-203-t.svg b/test/svg/svg1.2/svg/media-anim-203-t.svg
new file mode 100644
index 0000000..87d9d69
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-203-t.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: media-anim-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>
+ This test validates the animation element with external references with emphases on time based animations.
+ The same external file is used for all seven tests.
+ </p>
+ <p>
+ The 'initialVisibility' attribute is not specified so the default should apply - 'whenStarted'.
+ In other words the animations should not be visible until they start and then they should disappear as the
+ fill is not set to 'freeze' so the initial state should be re-instated.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="10" y="10" height="285" width="460" fill="none" stroke="black" stroke-width="0.25"/>
+ <g transform="translate(240,25 )" font-size="16" fill="#555" text-anchor="middle">
+ <text xml:id="display-title" x="0" y="2" font-size="16" fill="black" text-anchor="middle">Animation Elements with External References</text>
+ <text xml:id="comment-1" x="0" y="17" font-size="10">
+ Testing time-base animation control. Every time a scale shows up, its own time should be 0
+ </text>
+ </g>
+ <g font-size="10" fill="#555">
+ <g transform="translate(40,100)" >
+ <g transform="translate(5, 0)">
+ <line x1="0" y1="0" x2="0" y2="185" stroke="red" stroke-width="1">
+ <animate attributeName="x1" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ <animate attributeName="x2" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ </line>
+ </g>
+ <use xlink:href="../images/animation2.svg#myScale"/>
+ <text x="120" y="5">Reference Timeline : starts at 0, goes through the scale in 10s, </text>
+ </g>
+ <g transform="translate(40,130)">
+ <animation width="110" height="50" xml:id="animation1" begin="animation4.end;0" dur="2" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">1.</text>
+ <text x="135" y="5">Animation events, runs for 2s at time 0 and when (4) ends</text>
+ </g>
+ <g transform="translate(40,160)">
+ <animation width="110" height="50" xml:id="animation2" begin="animation1.end" dur="2" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">2.</text>
+ <text x="135" y="5">Animation events, runs for 2s when (1) ends</text>
+ </g>
+ <g transform="translate(40,190)">
+ <animation width="110" height="50" xml:id="animation3" begin="animation2.end" dur="2" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">3.</text>
+ <text x="135" y="5">Animation events, runs for 2s when (2) ends</text>
+ </g>
+ <g transform="translate(40,220)">
+ <animation width="110" height="50" xml:id="animation4" begin="animation3.end" dur="2" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">4.</text>
+ <text x="135" y="5">Animation events, runs for 2s when (3) ends</text>
+ </g>
+ <g transform="translate(40,250)">
+ <animation width="110" height="50" xml:id="animation5" begin="0;animation5.end" dur="2" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="5">5.</text>
+ <text x="135" y="5">Animation events, starts at 0 and loops every two seconds.</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-204-t.png b/test/svg/svg1.2/svg/media-anim-204-t.png
new file mode 100644
index 0000000..4140ff9
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-204-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-204-t.svg b/test/svg/svg1.2/svg/media-anim-204-t.svg
new file mode 100644
index 0000000..2270995
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-204-t.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.13 $" testname="$RCSfile: media-anim-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>
+ This test validates the animation element with external references with emphases on time based animations.
+ The same external file is used for all seven tests.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="10" y="10" height="285" width="460" fill="none" stroke="black" stroke-width="0.25"/>
+ <g transform="translate(240,25 )" font-size="16" fill="#555" text-anchor="middle">
+ <text xml:id="display-title" x="0" y="2" font-size="16" fill="black" text-anchor="middle">Animation Elements with External References</text>
+ <text xml:id="comment-1" x="0" y="17" font-size="10">
+ Testing time-base animation control. Every time a scale shows up, its own time should be 0
+ </text>
+ </g>
+ <g font-size="10" fill="#555" transform="translate(0,23)">
+ <g transform="translate(40,40)">
+ <g transform="translate(5, 0)">
+ <line x1="0" y1="0" x2="0" y2="232" stroke="red" stroke-width="1">
+ <animate attributeName="x1" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ <animate attributeName="x2" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ </line>
+ </g>
+ <use xlink:href="../images/animation2.svg#myScale"/>
+ <text x="120" y="5">Reference Timeline: starts at 0, goes through the scale in 10s, </text>
+ </g>
+ <g transform="translate(40,70)">
+ <animation xml:id="focus1" width="110" height="50" begin="focus1.focusin" dur="2" end="focus1.focusout; indefinite" xlink:href="../images/animation2.svg"/>
+ <g focusable="false" >
+ <text x="120" y="0">1.</text>
+ <text x="135" y="0">User event driven animation: appears upon</text>
+ <text x="135" y="10"> text focusing, stops after 2s or focus lost</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="focus1.focusin"/>
+ <set attributeName="fill" to="inherit" begin="focus1.focusout"/>
+ </g>
+ </g>
+ <g transform="translate(40,100)">
+ <animation xml:id="focus2" width="110" height="50" begin="focus2.focusin" dur="2" end="focus2.focusout; indefinite" xlink:href="../images/animation2.svg" initialVisibility="always"/>
+ <g focusable="false">
+ <text x="120" y="0">2.</text>
+ <text x="135" y="0">User event driven animation: starts upon</text>
+ <text x="135" y="10"> text focusing, stops after 2s or focus lost</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="focus2.focusin"/>
+ <set attributeName="fill" to="inherit" begin="focus2.focusout"/>
+ </g>
+ </g>
+ <g transform="translate(40,130)">
+ <animation width="110" height="50" xml:id="animation1" begin="myText1.mouseover" dur="2" end="myText1.mouseout; indefinite" xlink:href="../images/animation2.svg"/>
+ <g xml:id="myText1">
+ <rect x="115" y="-10" height="22" width="300" fill="#EEE"/>
+ <text x="120" y="0">3.</text>
+ <text x="135" y="0">User event driven animation: appears upon</text>
+ <text x="135" y="10">mouseover, stops after 2s or mouseout</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="myText1.mouseover"/>
+ <set attributeName="fill" to="inherit" begin="myText1.mouseout"/>
+ </g>
+ </g>
+ <g transform="translate(40,160)">
+ <animation width="110" height="50" xml:id="animation2" begin="myText2.mouseover" dur="10" xlink:href="../images/animation2.svg" fill="freeze" restart="always"/>
+ <g xml:id="myText2">
+ <rect x="115" y="-10" height="22" width="300" fill="#EEE"/>
+ <text x="120" y="0">4.</text>
+ <text x="135" y="0">User event driven animation: appears upon</text>
+ <text x="135" y="10">mouseover. Stops after 10s</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="myText2.mouseover"/>
+ <set attributeName="fill" to="inherit" begin="myText2.mouseout"/>
+ </g>
+ </g>
+ <g transform="translate(40,190)">
+ <animation width="110" height="50" xml:id="animation3" begin="animation1.begin;animation2.begin;" dur="2" xlink:href="../images/animation2.svg" initialVisibility="always"/>
+ <g xml:id="myText3">
+ <text x="120" y="0">5.</text>
+ <text x="135" y="0">User event/animation event driven: starts and runs</text>
+ <text x="135" y="10">for 2s when animation (3) or (4) begins.</text>
+ <text x="135" y="20"/>
+ </g>
+ </g>
+ <g transform="translate(40,220)">
+ <animation width="110" height="50" xml:id="animation4" begin="focus1.end;animation-f2.end;animation1.end;animation2.end;animation3.end" dur="2" xlink:href="../images/animation2.svg"/>
+ <text x="120" y="0">6.</text>
+ <text x="135" y="0">User event/animation event driven: appears and runs</text>
+ <text x="135" y="10">for 2s when animation (1) through (5) ends.</text>
+ </g>
+ <g transform="translate(40,250)">
+ <animation width="110" height="50" xml:id="animation5" begin="0;animation5.end" dur="2" xlink:href="../images/animation2.svg" repeatCount="15"/>
+ <text x="120" y="5">7.</text>
+ <text x="135" y="5">Animation events: starts at 0 and loops every two seconds.</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.13 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-205-t.png b/test/svg/svg1.2/svg/media-anim-205-t.png
new file mode 100644
index 0000000..b97743d
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-205-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-205-t.svg b/test/svg/svg1.2/svg/media-anim-205-t.svg
new file mode 100644
index 0000000..13872bd
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-205-t.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: media-anim-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>
+ This is one of a series of test slides that exercise all the permitted values for the 'preserveAspectRatio'
+ attribute values.
+ </p>
+ <p>
+ The external resource referenced by the animation element has a viewport-fill defined with a solid color.
+ This should be ignored and the local color of blue should be used.
+ </p>
+ <p>A semi-transparent yellow rectangle should be animating within each viewport.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(240,35 )" fill="#555" font-size="10" text-anchor="middle">
+ <text xml:id="display-title" x="0" y="0" font-size="16" fill="black" text-anchor="middle">Animation Elements with External References</text>
+ <text xml:id="comment-1" x="0" y="15">Testing 'preserveAspectRatio' attribute values on <animation></text>
+ </g>
+
+ <g transform="translate(40,105 )">
+ <text x="50" y="-5" text-anchor="middle" >none</text>
+ <rect x="0" y="0" width="100" height="60" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="100" height="60" xlink:href="../images/animation5none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" preserveAspectRatio="none" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ <g transform="translate(190,105 )">
+ <text x="50" y="-5" text-anchor="middle" >xMidYMid meet</text>
+ <rect x="0" y="0" width="100" height="60" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="100" height="60" xlink:href="../images/animation5none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" preserveAspectRatio="xMidYMid meet" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ <g transform="translate(340,105 )">
+ <text x="50" y="-5" text-anchor="middle" >defer (xMinYMin)</text>
+ <rect x="0" y="0" width="100" height="60" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="100" height="60" xlink:href="../images/animation5none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" preserveAspectRatio="defer" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+
+ <g transform="translate(60,175 )">
+ <rect x="0" y="0" width="60" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="60" height="100" xlink:href="../images/animation5none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" preserveAspectRatio="none" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ <g transform="translate(210,175 )">
+ <rect x="0" y="0" width="60" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="60" height="100" xlink:href="../images/animation5none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" preserveAspectRatio="xMidYMid meet" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ <g transform="translate(360,175 )">
+ <rect x="0" y="0" width="60" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="60" height="100" xlink:href="../images/animation5none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" preserveAspectRatio="defer" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-206-t.png b/test/svg/svg1.2/svg/media-anim-206-t.png
new file mode 100644
index 0000000..8ab05a0
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-206-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-206-t.svg b/test/svg/svg1.2/svg/media-anim-206-t.svg
new file mode 100644
index 0000000..210d7df
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-206-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: media-anim-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>This slide tests the 'viewport-fill' and 'viewport-fill-opacity' attributes defined locally.</p>
+ <p>
+ The externally resource referenced by the animation element has a 'viewport-fill' defined with a black to yellow gradient.
+ This should be ignored and the local definitions should be used - red for the left, blue for the middle and semi-transparent black for the right.
+ </p>
+ <p>A semi-transparent yellow rectangle should be animating within each viewport.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="5" y="15" height="270" width="470" fill="none" stroke="black" stroke-width="0.25"/>
+ <g fill="#555" text-anchor="middle" font-size="10">
+ <g transform="translate(240,35 )">
+ <text xml:id="display-title" x="0" y="0" font-size="16" fill="black" text-anchor="middle">Animation Elements with External References</text>
+ <text xml:id="comment-1" x="0" y="15">Testing 'viewport-fill' and 'viewport-fill-opacity' defined locally.</text>
+ </g>
+ <g transform="translate(35,120 )">
+ <text x="50" y="-10">red background fill</text>
+ <rect x="0" y="0" width="100" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="100" height="100" xlink:href="../images/animation3none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" viewport-fill="red"/>
+ </g>
+ <g transform="translate(165,120 )">
+ <text x="75" y="-10">blue background fill</text>
+ <rect x="0" y="0" width="150" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="150" height="100" xlink:href="../images/animation3none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" viewport-fill="blue" viewport-fill-opacity="1"/>
+ </g>
+ <g transform="translate(345,120 )">
+ <text x="50" y="-20">transparent</text>
+ <text x="50" y="-5">black background</text>
+ <rect x="0" y="0" width="100" height="150" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="100" height="150" xlink:href="../images/animation3none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" viewport-fill="black" viewport-fill-opacity="0.2"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-207-t.png b/test/svg/svg1.2/svg/media-anim-207-t.png
new file mode 100644
index 0000000..a8cc40f
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-207-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-207-t.svg b/test/svg/svg1.2/svg/media-anim-207-t.svg
new file mode 100644
index 0000000..e60bf3f
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-207-t.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: media-anim-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>This slide applies different transformations to the animation element.</p>
+ <p>
+ The externally resource referenced by the animation element has a viewport-fill defined with a black to yellow gradient.
+ This should be ignored and over ridden by the color aqua.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-207-t.svg,v $</title>
+ <title xml:id="test-title">$RCSfile: media-anim-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="5" y="15" height="270" width="470" fill="none" stroke="black" stroke-width="0.25"/>
+ <g transform="translate(240,35 )" fill="#555" font-size="10" text-anchor="middle">
+ <text xml:id="display-title" x="0" y="0" font-size="16" fill="black" text-anchor="middle">Animation Elements with External References</text>
+ <text xml:id="comment-1" x="0" y="15">Testing transformations applied to the Animation element.</text>
+ </g>
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <g transform="translate(35,120 )">
+ <text x="50" y="-15">Skew Y</text>
+ <g transform="skewY(15)">
+ <rect x="0" y="0" width="100" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="100" height="100" xlink:href="../images/animation3none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ </g>
+ <g transform="translate(165,120 )">
+ <text x="75" y="-15">10 deg center rotation</text>
+ <g transform="rotate(10,75,50)">
+ <rect x="0" y="0" width="150" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="150" height="100" xlink:href="../images/animation3none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ </g>
+ <g transform="translate(345,120 )">
+ <text x="50" y="-15">Scaled square viewPort</text>
+ <g transform="scale(0.95,0.3)">
+ <rect x="0" y="0" width="100" height="100" stroke="blue" fill="none"/>
+ <animation x="0" y="0" width="100" height="100" xlink:href="../images/animation3none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ </g>
+ <g transform="translate(345,220 )">
+ <text x="50" y="-15">No width/height,</text>
+ <text x="50" y="-5">No animation expected</text>
+ <rect x="25" y="0" width="50" height="50" stroke="blue" fill="none" stroke-dasharray="2,2"/>
+ <animation x="25" y="0" xlink:href="../images/animation3none.svg" begin="0" dur="5s" repeatCount="indefinite" fill="freeze" viewport-fill="aqua" viewport-fill-opacity="0.3"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-208-t.png b/test/svg/svg1.2/svg/media-anim-208-t.png
new file mode 100644
index 0000000..b619a24
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-208-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-208-t.svg b/test/svg/svg1.2/svg/media-anim-208-t.svg
new file mode 100644
index 0000000..cb734fb
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-208-t.svg
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.12 $" testname="$RCSfile: media-anim-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>
+ This test validates the animation element with external references with emphases on time based animations.
+ The same external file is used for all seven tests.
+ </p>
+ <p>
+ The 'initialVisibility' attribute is not specified so the default should apply - 'whenStarted'.
+ In other words the animations should not be visible until they start and then they should disappear as the
+ fill is not set to 'freeze' so the initial state should be re-instated.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="10" y="10" height="285" width="460" fill="none" stroke="black" stroke-width="0.25"/>
+ <g transform="translate(240,25 )" font-size="16" fill="#555" text-anchor="middle">
+ <text xml:id="display-title" x="0" y="2" font-size="16" fill="black" text-anchor="middle">Animation Elements testing initialVisibility</text>
+ <text xml:id="comment-1" x="0" y="17" font-size="10">
+ Testing time-base animation control. Every time a scale shows up, its own time should be 0
+ </text>
+ </g>
+ <g font-size="10" fill="#555" transform="translate(0,23)">
+ <g transform="translate(40,40)">
+ <g transform="translate(5, 0)">
+ <line x1="0" y1="0" x2="0" y2="232" stroke="red" stroke-width="1">
+ <animate attributeName="x1" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ <animate attributeName="x2" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ </line>
+ </g>
+ <use xlink:href="../images/animation2.svg#myScale"/>
+ <text x="120" y="5">Reference Timeline: starts at 0, goes through the scale in 10s, </text>
+ </g>
+ <g transform="translate(40,70)">
+ <animation xml:id="focus1" width="110" height="50" y="-5" begin="focus1.focusin" dur="2" end="focus1.focusout; indefinite" xlink:href="../images/animation2.svg" initialVisibility="always"/>
+ <g focusable="false">
+ <text x="120" y="0">1.</text>
+ <text x="135" y="0">User event driven animation: starts upon</text>
+ <text x="135" y="10"> text focusing, stops after 2s or focus lost</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="focus1.focusin"/>
+ <set attributeName="fill" to="inherit" begin="focus1.focusout"/>
+ </g>
+ </g>
+ <g transform="translate(40,100)">
+ <animation xml:id="focus2" width="110" height="50" y="-5" begin="focus2.focusin" dur="2" end="focus2.focusout; indefinite" xlink:href="../images/animation2.svg" initialVisibility="always"/>
+ <g focusable="false" >
+ <text x="120" y="0">2.</text>
+ <text x="135" y="0">User event driven animation: starts upon</text>
+ <text x="135" y="10"> text focusing, stops after 2s or focus lost</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="focus2.focusin"/>
+ <set attributeName="fill" to="inherit" begin="focus2.focusout"/>
+ </g>
+ </g>
+ <g transform="translate(40,130)">
+ <animation width="110" height="50" y="-5" xml:id="animation1" begin="myText1.mouseover" dur="2" end="myText1.mouseout; indefinite" xlink:href="../images/animation2.svg" initialVisibility="always"/>
+ <g xml:id="myText1">
+ <rect x="115" y="-10" height="22" width="300" fill="#EEE"/>
+ <text x="120" y="0">3.</text>
+ <text x="135" y="0">User event driven animation: starts upon</text>
+ <text x="135" y="10">mouseover, stops after 2s or mouseout</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="myText1.mouseover"/>
+ <set attributeName="fill" to="inherit" begin="myText1.mouseout"/>
+ </g>
+ </g>
+ <g transform="translate(40,160)">
+ <animation width="110" height="50" y="-5" xml:id="animation2" begin="myText2.mouseover" dur="10" xlink:href="../images/animation2.svg" fill="freeze" restart="always" initialVisibility="always" />
+ <g xml:id="myText2">
+ <rect x="115" y="-10" height="22" width="300" fill="#EEE"/>
+ <text x="120" y="0">4.</text>
+ <text x="135" y="0">User event driven animation: starts upon</text>
+ <text x="135" y="10">mouseover. Stops after 10s</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="myText2.mouseover"/>
+ <set attributeName="fill" to="inherit" begin="myText2.mouseout"/>
+ </g>
+ </g>
+ <g transform="translate(40,190)">
+ <animation width="110" height="50" y="-5" xml:id="animation3" begin="animation1.begin;animation2.begin;" dur="2" xlink:href="../images/animation2.svg" initialVisibility="always"/>
+ <g xml:id="myText3">
+ <text x="120" y="0">5.</text>
+ <text x="135" y="0">User event/animation event driven: runs</text>
+ <text x="135" y="10">for 2s when animation (3) or (4) begins.</text>
+ <text x="135" y="20"/>
+ <set attributeName="fill" to="red" begin="myText1.mouseover;myText2.mouseover"/>
+ <set attributeName="fill" to="inherit" begin="myText1.mouseout;myText2.mouseout"/>
+ </g>
+ </g>
+ <g transform="translate(40,220)">
+ <animation width="110" height="50" y="-5" xml:id="animation4" begin="focus1.end;focus2.end;animation1.end;animation2.end;animation3.end" dur="2" xlink:href="../images/animation2.svg" initialVisibility="always"/>
+ <text x="120" y="0">6.</text>
+ <text x="135" y="0">User event/animation event driven: runs</text>
+ <text x="135" y="10">for 2s when animation (1) through (5) ends.</text>
+ </g>
+ <g transform="translate(40,250)">
+ <animation width="110" height="50" y="-5" xml:id="animation5" begin="0;animation5.end" dur="2" xlink:href="../images/animation2.svg" repeatCount="15"/>
+ <text x="120" y="5">7.</text>
+ <text x="135" y="5">Animation events: starts at 0 and loops every two seconds.</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-209-t.png b/test/svg/svg1.2/svg/media-anim-209-t.png
new file mode 100644
index 0000000..5869748
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-209-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-209-t.svg b/test/svg/svg1.2/svg/media-anim-209-t.svg
new file mode 100644
index 0000000..6634ca5
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-209-t.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: media-anim-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with Discard</p>
+ <p>Four animation elements reference struct-discard-201.svg.</p>
+ <p>Each animation element is a target of a discard, at 6, 10, 14 and 18s.</p>
+ <p>To pass each animation element should discard at the specified time.</p>
+ <p>In addition, each referenced file should behave as indicated in the test struct-discard-201.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text xml:id="revision" x="15" y="20" font-size="15" stroke="none" fill="black">Animation and discard elements</text>
+
+ <g transform="scale(0.9) translate(120, -10)">
+ <rect x="0" y="50" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim1" begin="0" dur="120" x="0" y="50" width="150" height="130" xlink:href="struct-discard-201-t.svg" fill="remove"/>
+ <text x="15" y="190" font-size="12" stroke="none" fill="black">Discard @ 6s</text>
+
+ <rect x="150" y="50" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim2" begin="4" dur="120" x="150" y="50" width="150" height="130" xlink:href="struct-discard-201-t.svg" fill="remove"/>
+ <text x="165" y="190" font-size="12" stroke="none" fill="black">Discard @ 10s</text>
+
+ <rect x="0" y="200" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim3" begin="8" dur="120" x="0" y="200" width="150" height="130" xlink:href="struct-discard-201-t.svg" fill="remove"/>
+ <text x="15" y="340" font-size="12" stroke="none" fill="black">Discard @ 14s</text>
+
+ <rect x="150" y="200" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim4" begin="12" dur="120" x="150" y="200" width="150" height="130" xlink:href="struct-discard-201-t.svg" fill="remove"/>
+ <text x="165" y="340" font-size="12" stroke="none" fill="black">Discard @ 18s</text>
+
+
+ <discard begin="6s" xlink:href="#anim1"/>
+ <discard begin="10s" xlink:href="#anim2"/>
+ <discard begin="14s" xlink:href="#anim3"/>
+ <discard begin="18s" xlink:href="#anim4"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-210-t.png b/test/svg/svg1.2/svg/media-anim-210-t.png
new file mode 100644
index 0000000..36d1b01
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-210-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-210-t.svg b/test/svg/svg1.2/svg/media-anim-210-t.svg
new file mode 100644
index 0000000..b657d3f
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-210-t.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Animation Elements with External References" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: media-anim-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Animation Elements with External References</p>
+ <p>
+ This slide tests independent primary documents. Each referenced primary document has a separate script context.
+ This test is only applicable if application/ecmascript is available.
+ </p>
+ <p>Four animation elements reference a document which has an activate handler on a circle.</p>
+ <p>Focus should start on the top-left circle and move to top-right, bottom-left and bottom-right.</p>
+ <p>Activating the circle will toggle its radius size, but for the currently focused circle only.</p>
+ <p>This is due to the fact that each primary document has a separate script context.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-210-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="15" y="15" font-size="15" stroke="none" fill="black">Animation element and primary documents</text>
+
+ <g transform="scale(0.9, 0.9) translate(120, -10)">
+ <rect x="0" y="50" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim1" begin="0" dur="5000s" x="0" y="50" width="150" height="130" xlink:href="../images/animation-script.svg" fill="remove"/>
+
+ <rect x="150" y="50" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim2" begin="0" dur="5000s" x="150" y="50" width="150" height="130" xlink:href="../images/animation-script.svg" fill="remove"/>
+
+ <rect x="0" y="200" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim3" begin="0" dur="5000" x="0" y="200" width="150" height="130" xlink:href="../images/animation-script.svg" fill="remove"/>
+
+ <rect x="150" y="200" height="150" width="150" fill="none" stroke="black" stroke-width="0.25"/>
+ <animation xml:id="anim4" begin="0" dur="5000" x="150" y="200" width="150" height="130" xlink:href="../images/animation-script.svg" fill="remove"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-211-t.png b/test/svg/svg1.2/svg/media-anim-211-t.png
new file mode 100644
index 0000000..abeb5ab
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-211-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-211-t.svg b/test/svg/svg1.2/svg/media-anim-211-t.svg
new file mode 100644
index 0000000..d58038d
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-211-t.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Tests syncbase behavior togheter with pause/resume element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-anim-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Animation Elements with Incorrect xlink:href
+ This slide tests the animation xlink:href attribute with invalid values
+ </p>
+ <p>
+ The test will pass if the area within the red rectangle remains empty.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-211-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+
+ <text x="15" y="30" font-size="15" stroke="none" fill="black">Animation element with invalid xlink:href</text>
+
+ <rect xml:id="test-frame" x="0" y="50" width="300" height="250" fill="none" stroke="red" stroke-width="2"/>
+
+ <animation x="0" y="50" width="150" height="100" xlink:href="" fill="remove"/>
+
+ <animation x="150" y="50" width="150" height="50" xlink:href="../images/bluesquidj.png" fill="remove"/>
+
+ <animation x="0" y="200" width="150" height="100" xlink:href="../images/boing_x.wav" fill="remove"/>
+
+ <animation x="150" y="200" width="150" height="50" xlink:href="../images/skier.3gp" fill="remove"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-212-t.png b/test/svg/svg1.2/svg/media-anim-212-t.png
new file mode 100644
index 0000000..7a01dca
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-212-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-212-t.svg b/test/svg/svg1.2/svg/media-anim-212-t.svg
new file mode 100644
index 0000000..f3f0500
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-212-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="tests invalid animation xlink:href values" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: media-anim-212-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Animation Element with animating xlink:href
+ This slide tests animating the xlink:href attribute of animation elements
+ Every 2.5 seconds the animation will display a circle instead of a timeline.
+ The circle is focusable and as such should receive the focus and turn red.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-212-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+
+ <rect x="15" y="15" height="270" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+
+ <text x="15" y="30" font-size="15" stroke="none" fill="black">Animation Element with animating xlink:href.</text>
+ <text x="15" y="45" font-size="10" stroke="none" fill="black">This slide tests animating the xlink:href attribute of animation elements.</text>
+ <g transform="translate(0,-5)" font-size="10" fill="#555">
+ <g transform="translate(40,100)">
+ <line x1="0" x2="0" y1="-5" y2="190" stroke="red" stroke-width="1">
+ <animate attributeName="x1" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ <animate attributeName="x2" from="0" to="100" dur="10" repeatCount="indefinite"/>
+ </line>
+ <use x="-5" y="-5" xlink:href="../images/animationresource-myscale.svg#myScale"/>
+ <text x="120" y="0">Reference Timeline : starts at 0, goes through the scale in 10s.</text>
+ </g>
+ <animation y="120" x="35" width="110" height="50" dur="10" xlink:href="../images/animation2.svg" repeatCount="indefinite">
+ <animate attributeName="xlink:href" from="../images/animation2.svg" to="../images/animationresource-activecircle1.svg" dur="5" repeatCount="indefinite"/>
+ </animation>
+ <g transform="translate(40,130)">
+ <text x="120" y="0">Reference to external animation.</text>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-anim-213-t.png b/test/svg/svg1.2/svg/media-anim-213-t.png
new file mode 100644
index 0000000..b8036fb
Binary files /dev/null and b/test/svg/svg1.2/svg/media-anim-213-t.png differ
diff --git a/test/svg/svg1.2/svg/media-anim-213-t.svg b/test/svg/svg1.2/svg/media-anim-213-t.svg
new file mode 100644
index 0000000..608ed59
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-anim-213-t.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="Ola Andersson" desc="A basic test of the animation element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: media-anim-213-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The file is a basic test of animation element. </p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ <p>The test uses the 'rect' element, as well as basic fill (solid primary colors), stroke (black 1-pixel lines), font-family (Arial) and font-size properties.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-anim-213-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <animation xml:id="imageSVG" x="0" y="0" width="240" height="150" xlink:href="../images/rects.svg" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!-- <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-201-t.png b/test/svg/svg1.2/svg/media-audio-201-t.png
new file mode 100644
index 0000000..d2d49d8
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-201-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-201-t.svg b/test/svg/svg1.2/svg/media-audio-201-t.svg
new file mode 100644
index 0000000..d513914
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-201-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test of audio elements running simultaneously" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio.
+ </p>
+ <p>
+ Two audio elements referencing different media files start at 0s.
+ </p>
+ <p>
+ Two distinct media audio file should be heard at the same time.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="10" y="30">Two sounds at the same time</text>
+
+ <audio xml:id="mondays" xlink:href="../images/excuse_me.wav" repeatCount="5"/>
+ <audio xml:id="problem" xlink:href="../images/welcome.wav" repeatCount="5" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-202-t.png b/test/svg/svg1.2/svg/media-audio-202-t.png
new file mode 100644
index 0000000..2f351a4
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-202-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-202-t.svg b/test/svg/svg1.2/svg/media-audio-202-t.svg
new file mode 100644
index 0000000..feea482
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-202-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Simple test of audio element with repeatCount" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio with repeatCount.
+ </p>
+ <p>
+ An audio element has a repeatCount of 2.
+ </p>
+ <p>
+ The audio media file should play twice.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <audio xml:id="mondays" repeatCount="2"
+ xlink:href="../images/excuse_me.wav"/>
+
+ <text x="10" y="30">repeatCount="2"</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/media-audio-203-t.png b/test/svg/svg1.2/svg/media-audio-203-t.png
new file mode 100644
index 0000000..acb99b4
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-203-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-203-t.svg b/test/svg/svg1.2/svg/media-audio-203-t.svg
new file mode 100644
index 0000000..6f0106d
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-203-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Simple test of audio with repeatCount indefinite" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio with repeatCount.
+ </p>
+ <p>
+ An audio element has a repeatCount of indefinite.
+ </p>
+ <p>
+ The audio media file should loop indefinitely.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <audio xml:id="sound1" repeatCount="indefinite"
+ xlink:href="../images/excuse_me.wav"/>
+
+ <text x="10" y="30">repeatCount="indefinite"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-204-t.png b/test/svg/svg1.2/svg/media-audio-204-t.png
new file mode 100644
index 0000000..0a35e40
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-204-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-204-t.svg b/test/svg/svg1.2/svg/media-audio-204-t.svg
new file mode 100644
index 0000000..16d457a
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-204-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test of audio with repeat count constrained by end attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on audio with repeatCount.
+ </p>
+ <p>
+ An audio element has a repeatCount of 5 and an end attribute of 3s.
+ </p>
+ <p>
+ To pass the audio media file should play for 3 seconds and NOT repeat 5 times.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <audio xml:id="welcome" repeatCount="5" end="3"
+ xlink:href="../images/welcome.wav"/>
+
+ <text x="10" y="30">repeatCount="5" end="3"</text>
+
+ <rect x="10" y="10" width="180" height="10" fill="#DDD"/>
+ <rect x="10" y="10" width="10" height="10" fill="#FA5">
+ <animate xml:id="bar" attributeName="width" begin="0" dur="3" values="10;180" fill="freeze"/>
+ </rect>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-205-t.png b/test/svg/svg1.2/svg/media-audio-205-t.png
new file mode 100644
index 0000000..0f37e5c
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-205-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-205-t.svg b/test/svg/svg1.2/svg/media-audio-205-t.svg
new file mode 100644
index 0000000..066a539
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-205-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Simple test of audio with timing attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ An audio element has a begin attribute of 3 seconds.
+ </p>
+ <p>
+ To pass the audio media file should play 3 seconds after loading the svg file.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="text" x="10" y="40" font-size="15">
+ begin="3s"
+ </text>
+
+ <audio xml:id="welcome" xlink:href="../images/welcome.wav" begin="3s"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-206-t.png b/test/svg/svg1.2/svg/media-audio-206-t.png
new file mode 100644
index 0000000..090e12e
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-206-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-206-t.svg b/test/svg/svg1.2/svg/media-audio-206-t.svg
new file mode 100644
index 0000000..0562194
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-206-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test of audio and timing attributes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ An audio file begins at 2s and 10s, has a dur of 1, and a repeatCount of 2.
+ </p>
+ <p>
+ A text element animates y values with begin at 2s and 10s, a dur of 1, and a repeatCount of 2.
+ </p>
+ <p>
+ At 2s the media audio file should be audible and repeat twice.
+ </p>
+ <p>
+ At 2s the media audio file should be audible and repeat twice.
+ </p>
+ <p>
+ Also at 2s, the text should animate downwards twice.
+ </p>
+ <p>
+ At 10s the media audio file should be audible and repeat twice.
+ </p>
+ <p>
+ At 10s the media audio file should be audible and repeat twice.
+ </p>
+ <p>
+ Also at 10s, the text should animate downwards twice.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="10" y="75" font-size="12">
+ Audio and Animation start and end simultaneously
+ <animate attributeName="y" from="75" to="150"
+ begin="2s;10s" dur="1" repeatCount="2"/>
+ </text>
+
+ <audio xml:id="mondays"
+ xlink:href="../images/welcome.wav"
+ begin="2s;10s" dur="1" repeatCount="2"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/media-audio-207-t.png b/test/svg/svg1.2/svg/media-audio-207-t.png
new file mode 100644
index 0000000..655636f
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-207-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-207-t.svg b/test/svg/svg1.2/svg/media-audio-207-t.svg
new file mode 100644
index 0000000..3dc637b
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-207-t.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test of audio and repeats with constrained timing via the end attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ An audio file begins at 4s and 11s, ends at 10s, has a dur of 1, repeatCount of 2 and repeatDur of 6.
+ </p>
+ <p>
+ A text element animates y values with begin at 4s and 11s, end at 10s, a dur of 1, repeatCount of 2 and repeatDur of 6.
+ </p>
+ <p>
+ At 4s the media audio file should be audible and repeat twice.
+ </p>
+ <p>
+ At 4s the media audio file should be audible and repeat twice.
+ </p>
+ <p>
+ Also at 4s, the text should animate downwards twice.
+ </p>
+ <p>
+ Nothing should be audible or animate at 11s, since the animations end at 10s.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="10" y="95" font-size="12">
+ Audio and Animation start and end simultaneously
+ <animate attributeName="y" from="95" to="150"
+ begin="4s;11s" end="10s" dur="1" repeatCount="2" repeatDur="6"/>
+ </text>
+
+ <audio xml:id="welcome"
+ xlink:href="../images/welcome.wav"
+ begin="4s;11s" end="10s" dur="1" repeatCount="2" repeatDur="6"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-208-t.png b/test/svg/svg1.2/svg/media-audio-208-t.png
new file mode 100644
index 0000000..b659c66
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-208-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-208-t.svg b/test/svg/svg1.2/svg/media-audio-208-t.svg
new file mode 100644
index 0000000..0ba3326
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-208-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test of audio element with sync-based timing" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ An audio element 'sound1' starts at 0s.
+ </p>
+ <p>
+ A second audio element 'sound2' starts at sound1.end.
+ </p>
+ <p>
+ The audio media file for sound1 will play followed by the media file for sound2.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="10" y="40">Second sound will start when first ends</text>
+ <text x="10" y="50">begin="sound1.end"</text>
+
+ <audio xml:id="sound1" xlink:href="../images/welcome.wav"/>
+ <audio xml:id="sound2" begin="sound1.end" xlink:href="../images/excuse_me.wav"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-209-t.png b/test/svg/svg1.2/svg/media-audio-209-t.png
new file mode 100644
index 0000000..fd1682b
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-209-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-209-t.svg b/test/svg/svg1.2/svg/media-audio-209-t.svg
new file mode 100644
index 0000000..2570ee8
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-209-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test of audio element with repeatCount" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ A rectangle is animating its width between 0 and 3s.
+ </p>
+ <p>
+ An audio element has its begin and end attributes set to the begin and end attributes of the rect animation.
+ </p>
+ <p>
+ The sound will repeat while the bar is moving.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <audio xml:id="sound1" begin="bar.begin" end="bar.end" xlink:href="../images/welcome.wav" repeatCount="indefinite" />
+
+ <rect x="10" y="100" width="10" height="10" fill="#FA5">
+ <animate xml:id="bar" attributeName="width" begin="0" dur="1" repeatCount="indefinite" end="3"
+ values="10;30;50;30;200;20;120;150;50;10;50;138;190;40;60;10;180;140;100;10;190;145;180"/>
+ </rect>
+
+ <text x="10" y="30">The sound will play while the bar is moving</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-210-t.png b/test/svg/svg1.2/svg/media-audio-210-t.png
new file mode 100644
index 0000000..e36dd57
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-210-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-210-t.svg b/test/svg/svg1.2/svg/media-audio-210-t.svg
new file mode 100644
index 0000000..56f4ac0
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-210-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test audio elements and repeatCount" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ An audio element 'mondays' begains at 0s and also at problem.end, with a repeatDur of 3s.
+ </p>
+ <p>
+ An audio element 'problem' begains at mondays.end, with a repeatDur of 3s.
+ </p>
+ <p>
+ The two sounds should take turns and play for 3 seconds each.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-210-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <audio xml:id="mondays" begin="0;problem.end" repeatDur="3"
+ repeatCount="5" xlink:href="../images/welcome.wav"/>
+
+ <audio xml:id="problem" begin="mondays.end" repeatDur="3"
+ repeatCount="5" xlink:href="../images/excuse_me.wav"/>
+
+ <rect x="10" y="10" width="10" height="10" fill="#FA5">
+ <animate xml:id="bar" attributeName="width"
+ begin="mondays.begin;problem.begin" dur="1" repeatCount="indefinite" end="mondays.end;problem.end"
+ values="10;30;50;30;200;20;120;150;50;10;50;138;190;40;60;10;180;140;100;10;190;145;180"/>
+ </rect>
+
+ <text x="10" y="30">Repeat the two sounds 3s of each</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-211-t.png b/test/svg/svg1.2/svg/media-audio-211-t.png
new file mode 100644
index 0000000..203e265
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-211-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-211-t.svg b/test/svg/svg1.2/svg/media-audio-211-t.svg
new file mode 100644
index 0000000..70ad180
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-211-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test of audio element in def, but not used in the renderable document." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ An audio element begins at 1s and ends at 3s and is the child of a defs element.
+ </p>
+ <p>
+ The audio media file should be muted.
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-211-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs audio-level="1">
+
+ <audio xml:id="mondays1"
+ xlink:href="../images/excuse_me.wav"
+ begin="1s" end="3s"/>
+
+ <rect x="29" y="74" width="102" height="80" fill="black"/>
+
+ </defs>
+
+ <text x="10" y="20" font-size="15">Test on audio in a def element</text>
+ <text x="10" y="120" font-size="20">There should be no sound !</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-212-t.png b/test/svg/svg1.2/svg/media-audio-212-t.png
new file mode 100644
index 0000000..ec37d1c
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-212-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-212-t.svg b/test/svg/svg1.2/svg/media-audio-212-t.svg
new file mode 100644
index 0000000..144495b
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-212-t.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Audio with animated display and visibility attribute." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-212-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Two audio elements reference the same media file, start at 0s, have a dur of 2s and a repeatCount of 5.
+ </p>
+ <p>
+ The 1st audio element has its display attribute set to none between 4 and 6 seconds.
+ </p>
+ <p>
+ The 2nd use element has its visibility attribute set to hidden between 4 and 6 seconds.
+ </p>
+ <p>
+ The 1st audio element should be muted bewteen 4-6 seconds
+ </p>
+ <p>
+ The 2nd audio element should be muted bewteen 4-6 seconds
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-212-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="13">
+
+ <audio xml:id="audio1" xlink:href="../images/welcome.wav" audio-level="1.0" begin="0s" dur="2s" repeatCount="5">
+ <set xml:id="anim1" attributeName="display" to="none" begin="4s" end="6s"></set>
+ </audio>
+ <audio xml:id="audio2" xlink:href="../images/welcome.wav" audio-level="1.0" begin="0s" dur="2s" repeatCount="5">
+ <set xml:id="anim2" attributeName="visibility" to="hidden" begin="4s" end="6s"></set>
+ </audio>
+
+ <text x="10" y="30" font-size="20">Animated display and visibility</text>
+ <text x="10" y="50" font-size="15" font-style="italic">
+ Should be muted at R(2) and audible at R(1), R(3) and R(4)
+ </text>
+
+ <rect x="50" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.beginEvent" dur="2"/>
+ </rect>
+ <text x="50" y="140"> 0-2(s) </text>
+ <text x="50" y="150"> Begin </text>
+
+ <rect x="90" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(1)" dur="2"/>
+ </rect>
+ <text x="90" y="140"> 2-4(s) </text>
+ <text x="90" y="150"> R(1) </text>
+
+ <rect x="130" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(2)" dur="2"/>
+ </rect>
+ <text x="130" y="140"> 4-6(s) </text>
+ <text x="130" y="150"> R(2)</text>
+
+ <rect x="170" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(3)" dur="2"/>
+ </rect>
+ <text x="170" y="140"> 6-8(s) </text>
+ <text x="170" y="150"> R(3) </text>
+
+ <rect x="210" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(4)" dur="2"/>
+ </rect>
+ <text x="210" y="140"> 8-10(s) </text>
+ <text x="210" y="150"> R(4) </text>
+
+ <text y="200" x="50 70 90 110 130 150 170 190 210 230 250 260"
+ text-anchor="middle">0123456789(s)</text>
+ <rect x="50" y="185" width="200" height="3"/>
+ <rect x="50" y="185" width="200" height="3" fill="#F00">
+ <animate attributeName="width" values="0;200" dur="10" fill="freeze"/>
+ </rect>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-213-t.png b/test/svg/svg1.2/svg/media-audio-213-t.png
new file mode 100644
index 0000000..f81ec52
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-213-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-213-t.svg b/test/svg/svg1.2/svg/media-audio-213-t.svg
new file mode 100644
index 0000000..b275ace
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-213-t.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Use on audio with animated display and visibility" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-audio-213-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Two audio elements are children of a defs element and reference the same media file, start at 0s, have a dur of 2s and a repeatCount of 5.
+ </p>
+ <p>
+ The audio elements are each referenced by a single use element.
+ </p>
+ <p>
+ The 1st use element has its display attribute set to none between 4 and 6 seconds.
+ </p>
+ <p>
+ The 2nd use element has its visibility attribute set to hidden between 4 and 6 seconds.
+ </p>
+ <p>
+ The 1st audio element should be muted bewteen 4-6 seconds
+ </p>
+ <p>
+ The 2nd audio element should be muted bewteen 4-6 seconds
+ </p>
+ <p>
+ If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-213-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="13">
+ <defs>
+ <audio xml:id="audio1" xlink:href="../images/welcome.wav" audio-level="1.0" begin="0s" dur="2s" repeatCount="5">
+ </audio>
+ <audio xml:id="audio2" xlink:href="../images/welcome.wav" audio-level="1.0" begin="0s" dur="2s" repeatCount="5">
+ </audio>
+ </defs>
+
+ <use xml:id="use1" xlink:href="#audio1">
+ <set xml:id="anim1" attributeName="display" to="none" begin="4s" end="6s"></set>
+ </use>
+ <use xml:id="use2" xlink:href="#audio2">
+ <set xml:id="anim2" attributeName="visibility" to="hidden" begin="4s" end="6s"></set>
+ </use>
+ <text x="10" y="30" font-size="20">Animated display and visibility with Use</text>
+ <text x="10" y="50" font-size="15" font-style="italic">
+ Should be muted at R(2) and audible at R(1), R(3) and R(4)
+ </text>
+
+ <rect x="50" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.beginEvent" dur="2"/>
+ </rect>
+ <text x="50" y="140"> 0-2(s) </text>
+ <text x="50" y="150"> Begin </text>
+
+ <rect x="90" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(1)" dur="2"/>
+ </rect>
+ <text x="90" y="140"> 2-4(s) </text>
+ <text x="90" y="150"> R(1) </text>
+
+ <rect x="130" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(2)" dur="2"/>
+ </rect>
+ <text x="130" y="140"> 4-6(s) </text>
+ <text x="130" y="150"> R(2)</text>
+
+ <rect x="170" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(3)" dur="2"/>
+ </rect>
+ <text x="170" y="140"> 6-8(s) </text>
+ <text x="170" y="150"> R(3) </text>
+
+ <rect x="210" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="audio1.repeat(4)" dur="2"/>
+ </rect>
+ <text x="210" y="140"> 8-10(s) </text>
+ <text x="210" y="150"> R(4) </text>
+
+ <text y="200" x="50 70 90 110 130 150 170 190 210 230 250 260"
+ text-anchor="middle">0123456789(s)</text>
+ <rect x="50" y="185" width="200" height="3"/>
+ <rect x="50" y="185" width="200" height="3" fill="#F00">
+ <animate attributeName="width" values="0;200" dur="10" fill="freeze"/>
+ </rect>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-214-t.png b/test/svg/svg1.2/svg/media-audio-214-t.png
new file mode 100644
index 0000000..228713d
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-214-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-214-t.svg b/test/svg/svg1.2/svg/media-audio-214-t.svg
new file mode 100644
index 0000000..47a9e7b
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-214-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="AE" desc="Tests audio elements with incorrect xlink:href values" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-audio-214-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Audio Elements with Incorrect xlink:href.
+ This slide tests the audio xlink:href attribute with invalid values.
+ </p>
+ <p>
+ The test will pass if no audio can be heard.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-214-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="14">
+
+ <text x="15" y="30" font-size="14" stroke="none" fill="black">Audio element with invalid xlink:href.</text>
+ <text x="15" y="60" font-size="14" stroke="none" fill="black">Each audio element has a xlink:href reference to media</text>
+ <text x="15" y="80" font-size="14" stroke="none" fill="black">other than a supported audio file.</text>
+
+ <audio xlink:href="" fill="remove"/>
+
+ <audio xlink:href="../images/bluesquidj.png" fill="remove"/>
+
+ <audio xlink:href="../images/animation-script.svg" fill="remove"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-audio-215-t.png b/test/svg/svg1.2/svg/media-audio-215-t.png
new file mode 100644
index 0000000..d1b7494
Binary files /dev/null and b/test/svg/svg1.2/svg/media-audio-215-t.png differ
diff --git a/test/svg/svg1.2/svg/media-audio-215-t.svg b/test/svg/svg1.2/svg/media-audio-215-t.svg
new file mode 100644
index 0000000..444a599
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-audio-215-t.svg
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AZ" owner="AG" desc="Tests the audio-level property for nested audio elements and clamping of audio-level" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-audio-215-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests the audio-level property for nested audio elements and clamping
+ of audio-level.
+ </p>
+ <p>
+ The test consists of 6 subtests. When each audio sub-test is executed a
+ corresponding rect will turn blue. When each audio sub-test is
+ finished the corresponding rect will turn gray again. For this test to pass, all subtests must
+ have a green rectangle next to them.
+
+ The audio must also be heard to pass this test. If the user agent does not support the WAV media format, the test is still a pass.
+ </p>
+ <p>
+ The 1st subtest has an audio-level = 1. To pass this subtest the audio
+ must be played at the system volume.
+ </p>
+ <p>
+ The 2nd subtest has an audio-level = 2. To pass this subtest the audio
+ must be played at the system volume.
+ </p>
+ <p>
+ The 3rd subtest has an audio element with an audio-level = 2. Within
+ the audio element there is a child audio element with an
+ audio-level = 0.5. The source audio is the child audio element. To pass
+ this subtest the audio must be played at 1/2 the system volume.
+ </p>
+ <p>
+ The 4th subtest has an audio element with an audio-level = 0.5. Within
+ the audio element there is a child audio element with an
+ audio-level = 2. The source audio is the child audio element. To pass
+ this subtest the audio must be played at 1/2 the system volume.
+ </p>
+ <p>
+ The 5th subtest has three audio elements. The first audio element has
+ an audio-level = 0.5 and is the parent audio element. The second audio
+ element has an audio-level = 2 and is a child to the first audio
+ element. The third audio element has an audio-level = 0.5 and is a
+ child to the second audio element. The source audio is third audio
+ element. To pass this subtest the audio must be played at 1/4 the
+ system volume.
+ </p>
+ <p>
+ The 6th subtest has four audio elements. The first audio element has
+ an audio-level = to the audio level of the 3rd audio element (0.5). The
+ second audio element references an audio element from another subtest
+ with an audio-level of 2. The second audio element is a child of the
+ first audio element. The third audio element has an audio-level = 0.5
+ and is a child of the second audio element. The fourth audio element
+ has an audio-level of 2 and is a child of the third audio element. The
+ source audio is the fourth audio element. To pass this subtest the
+ audio must be played at 1/4 the system volume.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-audio-215-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- 1st Subtest -->
+ <audio xml:id="audio_test_1" audio-level="1" xlink:href="../images/pacman.wav" begin="0s" dur="4.3s" repeatCount="1"/>
+
+ <!-- 2nd Subtest -->
+ <audio xml:id="audio_test_2" audio-level="2" xlink:href="../images/pacman.wav" begin="4.3s" dur="4.3s" repeatCount="1"/>
+
+ <!-- 3rd Subtest -->
+ <g xml:id="audio_test_3_begin" audio-level="2">
+ <audio xml:id="audio_test_3" audio-level="0.5" xlink:href="../images/pacman.wav" begin="8.6s" dur="4.3s" repeatCount="1"/>
+ </g>
+
+ <!-- 4th Subtest -->
+ <g xml:id="audio_test_4_begin" audio-level="0.5">
+ <audio xml:id="audio_test_4" audio-level="2" xlink:href="../images/pacman.wav" begin="12.9s" dur="4.3s" repeatCount="1"/>
+ </g>
+
+ <!-- 5th Subtest -->
+ <g xml:id="audio_test_5_begin" audio-level="0.5">
+ <g audio-level="2">
+ <audio xml:id="audio_test_5" audio-level="0.5" xlink:href="../images/pacman.wav" begin="17.2s" dur="4.3s" repeatCount="1"/>
+ </g>
+ </g>
+
+ <!-- 6th Subtest -->
+ <g xml:id="audio_test_6_begin" audio-level="0.5">
+ <g audio-level="2">
+ <g audio-level="0.5">
+ <audio xml:id="audio_test_6" audio-level="2" xlink:href="../images/pacman.wav" begin="21.5s" dur="4.3s" repeatCount="1"/>
+ </g>
+ </g>
+ </g>
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ function checkAudioLevel(begin_id, expected_audio_lvl, result_id)
+ {
+ //
+ // Must start with an audio level of as the final audio output is a
+ // multiplication (i.e. can't start with audio level = 0)
+ //
+ var final_audio_lvl = 1;
+ var elm = document.getElementById(begin_id);
+
+ //
+ // Travers the elements in the group and calculate the final audio
+ // level. The loop terminates when it encounters an audio element.
+ //
+ for ( ; ; )
+ {
+ final_audio_lvl = final_audio_lvl * elm.getFloatTrait("audio-level");
+
+ if (elm.localName == "audio")
+ {
+ break;
+ }
+
+ elm = elm.firstElementChild;
+ }
+
+ if (expected_audio_lvl == final_audio_lvl)
+ {
+ document.getElementById(result_id).setAttribute("fill", "green");
+ }
+ else
+ {
+ document.getElementById(result_id).setAttribute("fill", "red");
+ }
+ }
+ ]]>
+ </script>
+
+ <g transform="translate(20,20)">
+ <!-- 1st Subtest Volume = System Volume -->
+ <rect x="0" y="0" width="30" height="30" fill="none">
+ <set attributeName="fill" to="blue" begin="audio_test_1.beginEvent" end="audio_test_1.endEvent">
+ <handler type="text/ecmascript" xe:event="endEvent">
+ checkAudioLevel("audio_test_1", "1", "audio_test_1_result");
+ </handler>
+ </set>
+ </rect>
+ <rect xml:id="audio_test_1_result" x="40" y="0" width="30" height="30" fill="#DDD"/>
+ <text x="80" y="10">audio-level = 1</text>
+ <text x="80" y="30">Volume = System Volume</text>
+
+ <!-- 2nd Subtest Volume = System Volume Volume = System Volume-->
+ <g transform="translate(0,50)">
+ <rect x="0" y="0" width="30" height="30" fill="none">
+ <set attributeName="fill" to="blue" begin="audio_test_2.beginEvent" end="audio_test_2.endEvent">
+ <handler type="text/ecmascript" xe:event="endEvent">
+ checkAudioLevel("audio_test_2", "1", "audio_test_2_result");
+ </handler>
+ </set>
+ </rect>
+ <rect xml:id="audio_test_2_result" x="40" y="0" width="30" height="30" fill="#DDD"/>
+ <text x="80" y="10">audio-level = clamp(2)</text>
+ <text x="80" y="30">Volume = System Volume</text>
+ </g>
+
+ <!-- 3rd Subtest Volume = 0.5 System Volume-->
+ <g transform="translate(0,100)">
+ <rect x="0" y="0" width="30" height="30" fill="none">
+ <set attributeName="fill" to="blue" begin="audio_test_3.beginEvent" end="audio_test_3.endEvent">
+ <handler type="text/ecmascript" xe:event="endEvent">
+ checkAudioLevel("audio_test_3_begin", "0.5", "audio_test_3_result");
+ </handler>
+ </set>
+ </rect>
+ <rect xml:id="audio_test_3_result" x="40" y="0" width="30" height="30" fill="#DDD"/>
+ <text x="80" y="10">audio-level = clamp(2) * 0.5</text>
+ <text x="80" y="30">Volume = 0.5 System Volume</text>
+ </g>
+
+ <!-- 4th Subtest Volume = 0.5 System Volume-->
+ <g transform="translate(0,150)">
+ <rect x="0" y="0" width="30" height="30" fill="none">
+ <set attributeName="fill" to="blue" begin="audio_test_4.beginEvent" end="audio_test_4.endEvent">
+ <handler type="text/ecmascript" xe:event="endEvent">
+ checkAudioLevel("audio_test_4_begin", "0.5", "audio_test_4_result");
+ </handler>
+ </set>
+ </rect>
+ <rect xml:id="audio_test_4_result" x="40" y="0" width="30" height="30" fill="#DDD"/>
+ <text x="80" y="10">audio-level = 0.5 * clamp(2)</text>
+ <text x="80" y="30">Volume = 0.5 System Volume</text>
+ </g>
+
+ <!-- 5th Subtest Volume = 0.25 System Volume-->
+ <g transform="translate(0,200)">
+ <rect x="0" y="0" width="30" height="30" fill="none">
+ <set attributeName="fill" to="blue" begin="audio_test_5.beginEvent" end="audio_test_5.endEvent">
+ <handler type="text/ecmascript" xe:event="endEvent">
+ checkAudioLevel("audio_test_5_begin", "0.25", "audio_test_5_result");
+ </handler>
+ </set>
+ </rect>
+ <rect xml:id="audio_test_5_result" x="40" y="0" width="30" height="30" fill="#DDD"/>
+ <text x="80" y="10">audio-level = 0.5 * clamp(2) * 0.5</text>
+ <text x="80" y="30">Volume = 0.25 System Volume</text>
+ </g>
+
+ <!-- 6th Subtest Volume = 0.25 System Volume-->
+ <g transform="translate(0,250)">
+ <rect x="0" y="0" width="30" height="30" fill="none">
+ <set attributeName="fill" to="blue" begin="audio_test_6.beginEvent" end="audio_test_6.endEvent">
+ <handler type="text/ecmascript" xe:event="endEvent">
+ checkAudioLevel("audio_test_6_begin", "0.25", "audio_test_6_result");
+ </handler>
+ </set>
+ </rect>
+ <rect xml:id="audio_test_6_result" x="40" y="0" width="30" height="30" fill="#DDD"/>
+ <text x="80" y="10">audio-level = 0.5 * clamp(2) * 0.5 * clamp(2)</text>
+ <text x="80" y="30">Volume = 0.25 System Volume</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/media-video-201-t.png b/test/svg/svg1.2/svg/media-video-201-t.png
new file mode 100644
index 0000000..f44781a
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-201-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-201-t.svg b/test/svg/svg1.2/svg/media-video-201-t.svg
new file mode 100644
index 0000000..9abf4f4
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-201-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="ASL" owner="AE" desc="Video Width and Height" status="accepted" version="$Revision: 1.9 $" approved="yes" testname="$RCSfile: media-video-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video Width and Height</p>
+ <p>
+ The frame contains a video with width and height not specified - these should default
+ to 0 and nothing should be rendered.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-201-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="65" height="220" width="450" fill="none" stroke="blue" stroke-width="3"/>
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" text-anchor="middle" x="240" y="20" font-size="14" fill="#000">
+ Video Width and Height
+ </text>
+ <text xml:id="comment-1" x="240" y="35">
+ The frame contains a video with width and height not specified - these should default
+ </text>
+ <text xml:id="comment-2" x="240" y="47">
+ to 0 and nothing should be rendered.
+ </text>
+ </g>
+ <video x="15" y="65" xml:id="v1" xlink:href="../images/dogandball.3gp" type="video/3gp"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-202-t.png b/test/svg/svg1.2/svg/media-video-202-t.png
new file mode 100644
index 0000000..d53b726
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-202-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-202-t.svg b/test/svg/svg1.2/svg/media-video-202-t.svg
new file mode 100644
index 0000000..fe4a131
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-202-t.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Video Width and Height" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: media-video-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video Width and Height</p>
+ <p>The video should play immediately and disappear once complete.</p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-202-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="65" height="220" width="450" fill="none" stroke="blue" stroke-width="3"/>
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" text-anchor="middle" x="240" y="20" font-size="14" fill="#000">
+ Video Width and Height
+ </text>
+ <text xml:id="comment-1" x="240" y="35">
+ The video should play immediately and disappear once complete.
+ </text>
+ </g>
+ <video x="15" y="65" xml:id="v2" width="450" height="220" xlink:href="../images/dogandball.3gp" type="video/3gp"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-203-t.png b/test/svg/svg1.2/svg/media-video-203-t.png
new file mode 100644
index 0000000..96c5d0b
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-203-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-203-t.svg b/test/svg/svg1.2/svg/media-video-203-t.svg
new file mode 100644
index 0000000..e5c47ff
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-203-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Video with TransformBehavior Set to Pinned and Overlay" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: media-video-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with TransformBehavior Set to Pinned</p>
+ <p>
+ This file tests the transformBehavior attribute set to 'pinned'.
+ The video should always overlap the two crossing lines, even during zoom/pan, proving it
+ is always rendered at its native resolution, and pinned at its the center (the blue dot).
+ If the video is rendered inside the small rotated rectangle, it means the transformBehavior
+ attribute is not applied / supported.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-203-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="50" height="235" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <g text-anchor="middle" transform="translate(0,2)">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">Video with TransformBehavior Set to Pinned</text>
+ <text xml:id="comment-1" x="240" y="35" font-size="10" fill="#555">
+ The video should exactly overlap the two wide crossing lines, proving it is pinned on the blue dot
+ </text>
+ </g>
+
+ <line x1="240" y1="-3000" x2="240" y2="3360" stroke-width="176" vector-effect="non-scaling-stroke" stroke-opacity=".2" stroke="blue" />
+ <line x1="-3000" y1="167.5" x2="3480" y2="167.5" stroke-width="144" vector-effect="non-scaling-stroke" stroke-opacity=".2" stroke="blue" />
+ <g transform="translate(240,167.5),rotate(15)">
+ <video width="100" height="67" transformBehavior="pinned" xlink:href="../images/dogandball.3gp" type="video/3gp" fill="freeze"/>
+ <rect width="100" height="67" fill="none" stroke="blue" stroke-width="2"/>
+ <circle r="5" fill="blue" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-204-t.png b/test/svg/svg1.2/svg/media-video-204-t.png
new file mode 100644
index 0000000..6a630f9
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-204-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-204-t.svg b/test/svg/svg1.2/svg/media-video-204-t.svg
new file mode 100644
index 0000000..993a750
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-204-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: media-video-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'none' on a video element. The width of
+ the video element has been made larger than the subsequent
+ preserveAspectRatio tets.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-204-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+ <rect x="15" y="65" height="220" width="450" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">none</text>
+ <video x="15" y="65" type="video/3gp" width="450" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="none" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-205-t.png b/test/svg/svg1.2/svg/media-video-205-t.png
new file mode 100644
index 0000000..5c2193e
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-205-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-205-t.svg b/test/svg/svg1.2/svg/media-video-205-t.svg
new file mode 100644
index 0000000..54fc411
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-205-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: media-video-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'xMinYMin meet' on a video element.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-205-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+ <rect x="15" y="65" height="220" width="450" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">xMin*</text>
+ <video x="15" y="65" type="video/3gp" width="450" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="xMinYMin meet" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-206-t.png b/test/svg/svg1.2/svg/media-video-206-t.png
new file mode 100644
index 0000000..22bd54a
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-206-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-206-t.svg b/test/svg/svg1.2/svg/media-video-206-t.svg
new file mode 100644
index 0000000..3b2f3e0
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-206-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: media-video-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'xMidYMid meet' on a video element.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-206-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+
+ <rect x="15" y="65" height="220" width="450" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">xMid*</text>
+ <video x="15" y="65" type="video/3gp" width="450" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="xMidYMid meet" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-207-t.png b/test/svg/svg1.2/svg/media-video-207-t.png
new file mode 100644
index 0000000..a8d616e
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-207-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-207-t.svg b/test/svg/svg1.2/svg/media-video-207-t.svg
new file mode 100644
index 0000000..67684b2
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-207-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: media-video-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'xMaxYMax meet' on a video element.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-207-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+ <rect x="15" y="65" height="220" width="450" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">xMax*</text>
+ <video x="15" y="65" type="video/3gp" width="450" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="xMaxYMax meet" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-208-t.png b/test/svg/svg1.2/svg/media-video-208-t.png
new file mode 100644
index 0000000..8e733f7
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-208-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-208-t.svg b/test/svg/svg1.2/svg/media-video-208-t.svg
new file mode 100644
index 0000000..9598e9d
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-208-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: media-video-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'xMinYMin meet' on a video element.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-208-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+ <rect x="15" y="65" height="220" width="220" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">yMin*</text>
+ <video x="15" y="65" type="video/3gp" width="220" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="xMinYMin meet" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-209-t.png b/test/svg/svg1.2/svg/media-video-209-t.png
new file mode 100644
index 0000000..47398e2
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-209-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-209-t.svg b/test/svg/svg1.2/svg/media-video-209-t.svg
new file mode 100644
index 0000000..cbc1802
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-209-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: media-video-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'xMinYMid meet' on a video element.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-209-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+ <rect x="15" y="65" height="220" width="220" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">yMid*</text>
+ <video x="15" y="65" type="video/3gp" width="220" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="xMinYMid meet" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-210-t.png b/test/svg/svg1.2/svg/media-video-210-t.png
new file mode 100644
index 0000000..f76f96f
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-210-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-210-t.svg b/test/svg/svg1.2/svg/media-video-210-t.svg
new file mode 100644
index 0000000..cfa5e60
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-210-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: media-video-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'xMinYMax meet' on a video element.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-210-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+ <rect x="15" y="65" height="220" width="220" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">yMax*</text>
+ <video x="15" y="65" type="video/3gp" width="220" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="xMinYMax meet" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-211-t.png b/test/svg/svg1.2/svg/media-video-211-t.png
new file mode 100644
index 0000000..4646f94
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-211-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-211-t.svg b/test/svg/svg1.2/svg/media-video-211-t.svg
new file mode 100644
index 0000000..df6755e
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-211-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with PreserveAspectRatio Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: media-video-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with PreserveAspectRatio Attribute</p>
+ <p>
+ Testing variations of preserveAspectRatio attribute with viewports
+ having different aspect ratios. More specifically tests the case
+ of preserveAspectRatio set to 'none' on a video element.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-211-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Video with PreserveAspectRatio Attribute
+ </text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Testing variations of preserveAspectRatio attribute
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ with viewports having different aspect ratios
+ </text>
+ </g>
+
+
+ <rect x="15" y="65" height="220" width="220" fill="none" stroke="blue" stroke-width="3"/>
+ <text x="235" y="60" text-anchor="middle" font-size="9">none</text>
+ <video x="15" y="65" type="video/3gp" width="220" height="220" xlink:href="../images/dogandball.3gp" preserveAspectRatio="none" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-212-t.png b/test/svg/svg1.2/svg/media-video-212-t.png
new file mode 100644
index 0000000..0e2cbe5
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-212-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-212-t.svg b/test/svg/svg1.2/svg/media-video-212-t.svg
new file mode 100644
index 0000000..4e6b35d
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-212-t.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Video with rendering order" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: media-video-212-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Video with rendering order</p>
+ <p>
+ Colored circles should maintain rendering order as marked on them.
+ Video is 10 seconds in length and should freeze at the end. The circles should continue to animate indefinitely
+ Bottom frame contains a jpeg reference image. The jpeg image is rendering order is on the top and the video
+ rendering order is on the bottom.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-212-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="55" height="230" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <text text-anchor="middle" x="240" y="20" font-size="14" fill="#000">Video with rendering order</text>
+ <text text-anchor="middle" x="240" y="35" font-size="10" fill="#555">
+ Colored circles should maintain rendering order as marked on them. Video should freeze at the end
+ </text>
+ <text text-anchor="middle" x="240" y="47" font-size="10" fill="#555">
+ Bottom frame contains a jpeg reference image. The jpeg image is rendering order is on the top and the video
+ rendering order is on the bottom.
+ </text>
+ <g transform="scale(0.5)translate(280,77)">
+ <g>
+ <circle r="25" fill="#2a6"/>
+ <text fill="white" font-size="12" text-anchor="middle">BEHIND</text>
+ <animateTransform attributeName="transform" type="translate" values="-50 100;500 100;-50 100" begin="0.5s" dur="4s" repeatCount="indefinite"/>
+ </g>
+ <g>
+ <circle r="30" fill="#a2a"/>
+ <text fill="white" font-size="12" text-anchor="middle">BEHIND</text>
+ <animateTransform attributeName="transform" type="translate" values="-50 200;500 200;-50 200" begin="0.5s" dur="3s" repeatCount="indefinite"/>
+ </g>
+ <g>
+ <rect x="50" y="50" width="300" height="200" fill="none" stroke="blue" stroke-width="6"/>
+ <video x="50" y="50" width="300" height="200" xml:id="v1" xlink:href="../images/dogandball.3gp" type="video/3gp" fill="freeze"/>
+ <g>
+ <g>
+ <circle r="25" fill="#2aa" fill-opacity="0.5"/>
+ <text fill="white" font-size="12" text-anchor="middle" fill-opacity="0.5">BETWEEN</text>
+ <animateTransform attributeName="transform" type="translate" values="-50 100;500 300;-50 100" begin="0.5s" dur="3.5s" repeatCount="indefinite" additive="sum"/>
+ </g>
+ <g>
+ <circle r="30" fill="red" fill-opacity="0.5"/>
+ <text fill="white" font-size="12" text-anchor="middle" fill-opacity="0.5">BETWEEN</text>
+ <animateTransform attributeName="transform" type="translate" values="-50 200;500 400;-50 200" begin="0.5s" dur="2.5s" repeatCount="indefinite" additive="sum"/>
+ </g>
+ <animateTransform attributeName="transform" type="rotate" from="360.0 235 265" to="0.0 235 265" begin="0.5s" dur="10s" repeatCount="indefinite" additive="sum"/>
+ </g>
+ <rect x="50" y="270" width="300" height="200" fill="none" stroke="blue" stroke-width="6"/>
+ <image x="50" y="270" width="300" height="200" xml:id="i1" xlink:href="../images/dogandball.jpg" type="image/jpg"/>
+ <animateTransform attributeName="transform" type="rotate" from="0.0 235 265" to="360.0 235 265" begin="0.5s" dur="10s" repeatCount="indefinite" additive="sum"/>
+ <animateTransform attributeName="transform" type="scale" values="1.0;1.3;1.0;0.75;1.0" begin="0.5s" dur="10s" repeatCount="indefinite" additive="sum"/>
+ <animateTransform attributeName="transform" type="skewX" values="0.0;10.0;0.0;-10.0;0.0" begin="0.5s" dur="3s" repeatCount="indefinite" additive="sum"/>
+ <animateTransform attributeName="transform" type="skewY" values="0.0;8.0;0.0;-8.0;0.0" begin="0.5s" dur="2.3s" repeatCount="indefinite" additive="sum"/>
+ <animateTransform attributeName="transform" type="translate" values="0 0;10 0;10 10;0 10;0 0" begin="0.5s" dur="10s" repeatCount="indefinite" additive="sum"/>
+ </g>
+ <g>
+ <circle r="25" fill="#2a6"/>
+ <text fill="white" font-size="12" text-anchor="middle">ON TOP</text>
+ <animateTransform attributeName="transform" type="translate" values="100 -50;100 500;100 -50" begin="0.5s" dur="3.2s" repeatCount="indefinite"/>
+ </g>
+ <g>
+ <circle r="30" fill="#a28"/>
+ <text fill="white" font-size="12" text-anchor="middle">ON TOP</text>
+ <animateTransform attributeName="transform" type="translate" values="200 -50;200 500;200 -50" begin="0.5s" dur="4.5s" repeatCount="indefinite"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-213-t.png b/test/svg/svg1.2/svg/media-video-213-t.png
new file mode 100644
index 0000000..e6c2cb0
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-213-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-213-t.svg b/test/svg/svg1.2/svg/media-video-213-t.svg
new file mode 100644
index 0000000..5f276f4
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-213-t.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Rotation with Video and Image" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-video-213-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Rotation with Video and Image</p>
+ <p>
+ Tests the case when type is set to 'rotate' in animateTransform. The test
+ contains two objects; one video and one image. Both are rotated about a
+ point definied by the center of the black circle. The video will rotate
+ clockwise, and the image will rotate anti-clockwise.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-213-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Rotation with Video and Image
+ </text>
+ </g>
+ <rect x="15" y="55" fill="none" width="450" height="245" stroke="black" stroke-width="0.25"/>
+ <line x1="240" x2="240" y1="0" y2="300" stroke="blue" visibility="hidden"/>
+ <g >
+ <circle cx="240" cy="180" r="105" fill="none" stroke="black" stroke-width="10"/>
+
+ <g transform="translate(55,75)">
+ <g>
+ <rect width="185" height="105" fill="none" stroke="blue" stroke-width="6"/>
+ <video xml:id="v1" width="185" height="105" xlink:href="../images/dogandball.3gp" type="video/3gp" />
+ <animateTransform attributeName="transform" type="rotate" from="0,185,105" to="360,185,105" begin="0s" dur="20s" fill="freeze"/>
+ </g>
+ </g>
+
+ <g transform="translate(240,180)">
+ <g>
+ <rect width="185" height="105" fill="none" stroke="blue" stroke-width="6" stroke-opacity="0.4"/>
+ <image xml:id="i1" width="185" height="105" xlink:href="../images/dogandball.jpg"/>
+ <animateTransform attributeName="transform" type="rotate" from="0" to="-360" begin="0s" dur="20s" fill="freeze"/>
+ </g>
+ </g>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-214-t.png b/test/svg/svg1.2/svg/media-video-214-t.png
new file mode 100644
index 0000000..02921f7
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-214-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-214-t.svg b/test/svg/svg1.2/svg/media-video-214-t.svg
new file mode 100644
index 0000000..c430393
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-214-t.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Transformation and rendering order on Video" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: media-video-214-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Transformation and rendering order on Video</p>
+ <p>
+ Tests the rendering order of Video with other objects. Test contains
+ a video element with a polygon rendered over the top. The polygon has
+ a solid fill; no video should be visible through the polygon.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-214-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text xml:id="display-title" x="240" y="20" font-size="14" fill="#000">
+ Transformation and rendering order on Video
+ </text>
+ </g>
+ <rect x="15" y="55" fill="none" width="450" height="245" stroke="black" stroke-width="0.25"/>
+ <line x1="240" x2="240" y1="0" y2="300" stroke="blue" visibility="hidden"/>
+ <g >
+ <g>
+ <rect width="185" height="105" fill="none" stroke="blue" stroke-width="6"/>
+ <video xml:id="v1" width="185" height="105" xlink:href="../images/dogandball.3gp" type="video/3gp" />
+ <animateTransform xml:id="translate1" attributeName="transform" type="translate" from="15,55" to="280,195" begin="0s; translate2.end" dur="2s" fill="freeze"/>
+ <animateTransform xml:id="translate2" attributeName="transform" type="translate" from="280,195" to="15,55" begin="translate1.end" dur="2s" fill="freeze"/>
+ </g>
+
+ <polygon xml:id="star" fill="green" stroke="none" points="350,75 379,161 469,161 397,215 423,301 350,250 277,301 303,215 231,161 321,161" transform="translate(-100,-10)"/>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-215-t.png b/test/svg/svg1.2/svg/media-video-215-t.png
new file mode 100644
index 0000000..ea84808
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-215-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-215-t.svg b/test/svg/svg1.2/svg/media-video-215-t.svg
new file mode 100644
index 0000000..141a5d6
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-215-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Changing the xlink:href attribute on a video element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: media-video-215-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ If a video is playing and xlink href is changed the stream should change. The
+ new stream should start playing at the same position as the reference video, if the media play time cannot be controlled. Otherwise the media time will be re-started.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-215-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <video xml:id="video1" x="100" y="100" begin="0" dur="8" width="100" height="100" xlink:href="../images/duckfeeding.3gp" transformBehavior="pinned"/>
+ <text x="100" y="200">Video 1</text>
+ <video xml:id="video2" x="300" y="100" begin="0" dur="8" width="100" height="100" xlink:href="../images/dogandball.3gp" transformBehavior="pinned"/>
+ <text x="300" y="200">Video 2</text>
+ <animate xml:id="pause_anim" attributeName="visibility" from="visible" to="visible"
+ begin="4" end="5">
+ <handler type="text/ecmascript" xe:event="beginEvent">
+ document.getElementById("video1").setAttributeNS("http://www.w3.org/1999/xlink", "href", "../images/dogandball.3gp");
+ </handler>
+ </animate>
+
+ <g transform="translate(0, 200)">
+ <text x="10" y="30" font-size="20">Change xlink:href on video</text>
+
+ <text y="100" x="50 70 90 110 130 150 170 190 210 230 250 260"
+ text-anchor="middle">0123456789(s)</text>
+ <rect x="50" y="85" width="200" height="3"/>
+ <rect x="50" y="85" width="200" height="3" fill="#F00">
+ <animate attributeName="width" values="0;200" dur="10" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-216-t.png b/test/svg/svg1.2/svg/media-video-216-t.png
new file mode 100644
index 0000000..5b3bfe6
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-216-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-216-t.svg b/test/svg/svg1.2/svg/media-video-216-t.svg
new file mode 100644
index 0000000..5784879
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-216-t.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="-150 -150 300 300" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Video and transformBehavior" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: media-video-216-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests the different transformBehavior values on video.
+ Pinned, Pinned90, Pinned180, Pinned270
+ </p>
+ <p>
+ The 1st video element has transformBehavior set to pinned and is displayed in the top-left of a 4-video box.
+ </p>
+ <p>
+ The 2nd video element has transformBehavior set to pinned90 and is displayed in the top-right of a 4-video box.
+ </p>
+ <p>
+ The 3rd video element has transformBehavior set to pinned180 and is displayed in the bottom-left of a 4-video box.
+ </p>
+ <p>
+ The 4th video element has transformBehavior set to pinned270 and is displayed in the bottom-right of a 4-video box.
+ </p>
+ <p>
+ There are 4 green-stroked rectangles indicating the expected position and orientation, but not size.
+ </p>
+ <p>
+ The videos should display with the appropriate rotation, centered on the green rectangles but not bound by them in any way, since determining the exact pixel size of the rectangles is not possible.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-216-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <switch>
+ <g requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#TransformedVideo">
+ <video xlink:href="../images/dogandball.3gp" transformBehavior="pinned" x="-50" y="-50"/>
+ <video xlink:href="../images/dogandball.3gp" transformBehavior="pinned90" x="50" y="-50"/>
+ <video xlink:href="../images/dogandball.3gp" transformBehavior="pinned180" x="-50" y="50"/>
+ <video xlink:href="../images/dogandball.3gp" transformBehavior="pinned270" x="50" y="50"/>
+ </g>
+ <text x="0" y="0" text-align="center" text-anchor="middle" font-size="18">
+ Transformed video not supported!
+ </text>
+ </switch>
+ </g>
+
+ <rect stroke="green" stroke-width="2" fill-opacity="0" x="-70" y="-60" width="40" height="20"/>
+ <rect stroke="green" stroke-width="2" fill-opacity="0" transform="rotate(90, 50, -50)" x="30" y="-60" width="40" height="20"/>
+ <rect stroke="green" stroke-width="2" fill-opacity="0" transform="rotate(180, -50, 50)" x="-70" y="40" width="40" height="20"/>
+ <rect stroke="green" stroke-width="2" fill-opacity="0" transform="rotate(270, 50, 50)" x="30" y="40" width="40" height="20"/>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-218-t.png b/test/svg/svg1.2/svg/media-video-218-t.png
new file mode 100644
index 0000000..2310885
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-218-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-218-t.svg b/test/svg/svg1.2/svg/media-video-218-t.svg
new file mode 100644
index 0000000..9793da8
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-218-t.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Use on video with animated display and visibility" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-video-218-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ When no video element is displayable (visibility is hidden or display is none of the use element),
+ audio level should be set to 0 and video should not be rendered.
+ -Video1 should be displayed between 0-4s, not rendered between 4-6 s and displayed between 6-8s.
+ -Video2 should be displayed between 0-2s, not rendered between 2-6 s and displayed between 6-8s.
+ -The audio of the video should be muted between 4-6s as no video is then rendered.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-218-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="15">
+
+ <defs>
+ <video xml:id="video1" xlink:href="../images/dogandball.3gp" width="100" height="100" begin="0s" audio-level="1" dur="8s" transformBehavior="pinned">
+ </video>
+ </defs>
+
+ <use xml:id="use1" xlink:href="#video1" x="100" y="100">
+ <set xml:id="anim1" attributeName="display" to="none" begin="4s" end="6s"></set>
+ </use>
+ <text x="10" y="180" font-size="15" font-style="italic">
+ Video 1
+ </text>
+ <use xml:id="use2" xlink:href="#video1" x="300" y="100">
+ <set xml:id="anim2" attributeName="visibility" to="hidden" begin="2s" end="6s"></set>
+ </use>
+ <text x="310" y="180" font-size="15" font-style="italic">
+ Video 2
+ </text>
+
+ <g transform="translate(0, 150)">
+ <text x="10" y="50" font-size="20">
+ Animated display and visibility with use
+ </text>
+ <text x="10" y="70" font-size="15" font-style="italic">
+ Video 1 should be hidden and muted between 4-6s
+ </text>
+ <text x="10" y="90" font-size="15" font-style="italic">
+ Video 2 should be hidden and muted between 2-6s
+ </text>
+
+ <rect x="50" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="video1.beginEvent" dur="2"/>
+ </rect>
+ <text x="50" y="140"> 0-2(s) </text>
+
+ <rect x="90" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="anim2.beginEvent" end="anim1.beginEvent"/>
+ </rect>
+ <text x="90" y="140"> 2-4(s) </text>
+
+ <rect x="130" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="anim1.beginEvent" end="anim2.endEvent"/>
+ </rect>
+ <text x="130" y="140"> 4-6(s) </text>
+
+ <rect x="170" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="anim2.endEvent" end="video1.endEvent"/>
+ </rect>
+ <text x="170" y="140"> 6-8(s) </text>
+
+ <text y="170" x="50 70 90 110 130 150 170 190 210 230 250 260"
+ text-anchor="middle">0123456789(s)</text>
+ <rect x="50" y="155" width="200" height="3"/>
+ <rect x="50" y="155" width="200" height="3" fill="#F00">
+ <animate attributeName="width" values="0;200" dur="10" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-219-t.png b/test/svg/svg1.2/svg/media-video-219-t.png
new file mode 100644
index 0000000..dd0af1b
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-219-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-219-t.svg b/test/svg/svg1.2/svg/media-video-219-t.svg
new file mode 100644
index 0000000..5ffed23
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-219-t.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Remove and insert video from document tree" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-video-219-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ If a video is playing and it is repositioned by removing it's corresponding use
+ from tree and then reinserting it in tree the video should continue playing but change position
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-219-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <video xml:id="video1" begin="0" dur="8" width="100" height="100" xlink:href="../images/dogandball.3gp" transformBehavior="pinned"/>
+ </defs>
+
+ <g xml:id="g1">
+ <use xlink:href="#video1" x="100" y="100" xml:id="welcome"/>
+ </g>
+ <g xml:id="g2" transform="translate(100, 10)"></g>
+
+ <g transform="translate(0, 200)">
+ <text x="10" y="10" font-size="20">The video should be repositioned at 2s and 4s</text>
+
+ <animate xml:id="pause_anim" attributeName="visibility" from="visible" to="visible"
+ begin="2" end="4">
+ <handler type="text/ecmascript" xe:event="beginEvent">
+ var oldChild = document.getElementById("welcome");
+ document.getElementById("g1").removeChild(oldChild);
+ document.getElementById("g2").appendChild(oldChild);
+ </handler>
+ <handler type="text/ecmascript" xe:event="endEvent">
+ var oldChild = document.getElementById("welcome");
+ document.getElementById("g2").removeChild(oldChild);
+ document.getElementById("g1").appendChild(oldChild);
+ </handler>
+ </animate>
+
+ <text y="50" x="50 70 90 110 130 150 170 180"
+ text-anchor="middle">0123456(s)</text>
+ <rect x="50" y="30" width="120" height="3"/>
+ <rect x="50" y="30" width="120" height="3" fill="#F00">
+ <animate attributeName="width" values="0;120" dur="6" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-220-t.png b/test/svg/svg1.2/svg/media-video-220-t.png
new file mode 100644
index 0000000..0af4734
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-220-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-220-t.svg b/test/svg/svg1.2/svg/media-video-220-t.svg
new file mode 100644
index 0000000..8a2500e
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-220-t.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Remove and insert video from document tree" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: media-video-220-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ If a video is playing when it is removed from document tree
+ it should continue playing when re-inserted in tree.
+ - The video should change position at 2 seconds but continue playing.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-220-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="g1">
+ <video x="20" y="20" xml:id="welcome" begin="0" dur="8" width="100" height="100" xlink:href="../images/dogandball.3gp"/>
+ </g>
+ <g xml:id="g2" transform="translate(100, 10)"></g>
+
+ <g transform="translate(0, 200)">
+ <text x="10" y="10" font-size="20">The video should be repositioned at 2s</text>
+
+ <animate xml:id="pause_anim" attributeName="visibility" from="visible" to="visible"
+ begin="2" end="3">
+ <handler type="text/ecmascript" xe:event="beginEvent" xmlns:xe="http://www.w3.org/2001/xml-events">
+ var oldChild = document.getElementById("welcome");
+ var myChild = document.getElementById("g1").removeChild(oldChild);
+ document.getElementById("g2").appendChild(myChild);
+ </handler>
+ </animate>
+
+ <text y="50" x="50 70 90 110 130 150 170 180"
+ text-anchor="middle">0123456(s)</text>
+ <rect x="50" y="30" width="120" height="3"/>
+ <rect x="50" y="30" width="120" height="3" fill="#F00">
+ <animate attributeName="width" values="0;120" dur="6" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-221-t.png b/test/svg/svg1.2/svg/media-video-221-t.png
new file mode 100644
index 0000000..6be4eeb
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-221-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-221-t.svg b/test/svg/svg1.2/svg/media-video-221-t.svg
new file mode 100644
index 0000000..e05c9e6
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-221-t.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Animated xlink:href on use that links to video" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-video-221-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ When xlink:href is animated on a use element between two different video elements, the
+ displayed video should change and it should play at the current time.
+ -video1 should be displayed between 0-2 and 4-6s and video2 between 2-4s.
+ </p>
+ <p>
+ If the user agent does not support the 3GP media format, the test is still a pass.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-221-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="13">
+ <defs>
+ <video xml:id="video1" xlink:href="../images/duckfeeding.3gp" width="200" height="150" begin="0s" dur="6s" transformBehavior="pinned">
+ </video>
+ <video xml:id="video2" xlink:href="../images/dogandball.3gp" width="200" height="200" begin="0s" dur="6s" transformBehavior="pinned">
+ </video>
+ </defs>
+ <use xml:id="use1" xlink:href="#video1" x="100" y="100">
+ <set xml:id="switchVideo" attributeName="xlink:href" to="#video2" begin="2s" end="4s"></set>
+ </use>
+
+ <g transform="translate(0, 150)">
+ <text x="10" y="30" font-size="20">Animated xlink:href on use</text>
+ <text x="10" y="50" font-size="15" font-style="italic">
+ Stream should be switched at 2s and back again at 4s
+ </text>
+
+ <rect x="50" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="video1.beginEvent" dur="2"/>
+ </rect>
+ <text x="50" y="140"> 0-2(s) </text>
+ <text x="50" y="150"> Video 1 </text>
+
+ <rect x="90" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="switchVideo.beginEvent" dur="2"/>
+ </rect>
+ <text x="90" y="140"> 2-4(s) </text>
+ <text x="90" y="150"> Video 2 </text>
+
+ <rect x="130" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="switchVideo.endEvent" dur="2"/>
+ </rect>
+ <text x="130" y="140"> 4-6(s) </text>
+ <text x="130" y="150"> Video 1</text>
+
+ <rect x="170" y="100" width="30" height="30" fill="#DDD">
+ <set attributeName="fill" to="#F00" begin="video1.endEvent" dur="2"/>
+ </rect>
+ <text x="170" y="140"> 6-8(s) </text>
+ <text x="170" y="150"> End </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/media-video-222-t.png b/test/svg/svg1.2/svg/media-video-222-t.png
new file mode 100644
index 0000000..6ce29e2
Binary files /dev/null and b/test/svg/svg1.2/svg/media-video-222-t.png differ
diff --git a/test/svg/svg1.2/svg/media-video-222-t.svg b/test/svg/svg1.2/svg/media-video-222-t.svg
new file mode 100644
index 0000000..a63dab6
--- /dev/null
+++ b/test/svg/svg1.2/svg/media-video-222-t.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="invalid xlink:href on video" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: media-video-222-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Video Elements with Incorrect xlink:href
+ This slide tests the video xlink:href attribute with invalid values
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: media-video-222-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="13">
+
+ <text x="15" y="15" font-size="15" stroke="none" fill="black">Video element with invalid xlink:href</text>
+ <text x="15" y="30" font-size="10" stroke="none" fill="black">Each video element has a xlink:href reference to media other than a supported video file.</text>
+ <text x="15" y="45" font-size="10" stroke="none" fill="black"> The test will pass if no video is heard or seen.</text>
+
+ <rect xml:id="test-frame" x="0" y="50" width="300" height="250" fill="none" stroke="red" stroke-width="2"/>
+
+ <video x="0" y="50" width="150" height="100" xlink:href="" dur="20s" fill="remove"/>
+
+ <video x="150" y="200" width="150" height="50" xlink:href="../images/animation-time-scale.svg" dur="20" fill="remove"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/metadata-example-01-t.png b/test/svg/svg1.2/svg/metadata-example-01-t.png
new file mode 100644
index 0000000..82cc937
Binary files /dev/null and b/test/svg/svg1.2/svg/metadata-example-01-t.png differ
diff --git a/test/svg/svg1.2/svg/metadata-example-01-t.svg b/test/svg/svg1.2/svg/metadata-example-01-t.svg
new file mode 100644
index 0000000..d1166b2
--- /dev/null
+++ b/test/svg/svg1.2/svg/metadata-example-01-t.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DS" owner="CL" desc="Verify that the viewer is not perturbed by the presence of metadata." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: metadata-example-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Check that metadata in a variety of namespaces, inside a metadata element, does not affect rendering in any way. The file is not valid to the DTD, but is well formed.</p>
+ <p>The diagram on the table is a visualization of the RDF metadata in the graphic.</p>
+ <p>The rendered result should match the reference image and there should be no error messages or warnings</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: metadata-example-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <metadata>
+ <rdf:RDF xmlns:prism="http://prismstandard.org/namespaces/1.0/basic/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
+ <!-- The empty value for the rdf:about attribute means it is describing the file this is contained in. -->
+ <rdf:Description rdf:about="">
+ <dc:description>Line drawing of woman in antique attire, which looks legal or perhaps mystical.</dc:description>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:subject>Sibyll Trelawney</dc:subject>
+ <dc:type rdf:resource="http://prismstandard.org/vocabularies/1.0/resourcetype.xml#birdsEye"/>
+ <dc:type rdf:resource="http://prismstandard.org/vocabularies/1.0/resourcetype.xml#illustration"/>
+ </rdf:Description>
+ </rdf:RDF>
+ </metadata>
+ <g transform="scale(1.2)">
+ <g xml:id="Sibyll" fill="#FFF" stroke="#000" stroke-miterlimit="4">
+ <g stroke="none">
+ <path fill="#000" d="M132.386,113.177c0.394-2.645,0.978-6.189,1.681-10.262c-7.597-5.655-19.264-14.488-26.764-25.988l-1.667-0.667c5.333,15.167,25,32.833,26.75,36.917l15.583,15.25c0,0,10,10.667,12.167,13.833c2.167,3.167,3.5,7.167,1.333,9.833 c-1.667-1-4.833-5.333-8-9.167c0,0-7-1.5-13.833-1.333c0,0,2.667,5.5,3.833,8c0.563,1.207,0.465,2.141,0.064,3.047c6.241,4.828,12.252,13.801,16.102,18.453c4,4.833,5.548,8.822,12.167,10.167c10.667,2.167,16.667,7.5,19.667,10s3,4,1.833,4.833 c0,0-4.167,1.5-11,2c-6.833,0.5-12.333-3.333-15.167-3.333c-4.333-0.167-6.333-3-7.833-6.333c-1.5-3.333-4.5-4.833-9.167-7.667c-4.293-2.606-14.858-7.894-19.053-14.174c-4.791,3.163-10.643,5.756-17.447,8.34l-1.333-1.333c-1.933,0.773-4.538,1.52-7.574,1.925 c2.113,6.17,7.926,15.123,10.157,16.908c2.5,2,4.25,4.25,4.25,6.5s-0.75,5.5-3.75,9.5c-0.5,13-6,19.75-12.5,22.25c-4.5-15-0.5-25.25,1.5-31.25c0,0-7.472-6.813-12.938-12.608c0.73,3.979,1.468,7.703,2.188,10.942c0,0-1.232,1.575-3.5,0.833 c-8.667-2.833-22.167-10.
333-27.333-16.333c-2.667-7.833-6.5-33.667-7.667-44.333c0,0-5.167-1.333-10.167-2.667c0,0-0.667-0.333-1.5-3.5c0,0-5.667-1.667-11.833-3c-6.167-1.333-5.667-2.667-6.667-6.167s0.667-28.5,2.5-36.667c1.833-8.167,10.5-22.167,15.833-28 c0,0-1.006-0.135-1.833-2.5c-5.833-16.667-7.833-27.333-0.667-37.667c7.167-10.333,20.167-6,26.667-2.833c6.5,3.167,6.667,8.333,8.167,10.833s0.333,4.833,2,7.167c17.667,7,26.833,16.667,38.833,27.167c7.5,3.667,13.667,9.667,18.667,13.833 c1.124,0.937,2.323,2.151,3.556,3.525c1.444-7.663,2.858-14.936,3.944-20.275c3-14.75,9.5-47,10.25-49.25l3,0.25c29.25,0.25,69.75-1,69.75-1c0.25,20.25,0.25,62.5,0.25,74.25s0,39,0.25,42.25c0,0-3.75,2-8.333,2.75c1,0.167,1.667,2.5-0.167,3.333 c-3,0.167-25.333,0.167-33-1c-1.245-0.189-2.923-0.326-4.879-0.422c2.441,2.484,8.906,8.839,19.629,17.838l-0.25,8.25l-9,0.25l-31.952-26.426c-4.665,0.081-8.525,0.176-10.215,0.176l-15.583-15.25z" />
+ <path fill="#000" d="M60.654,1.358c-0.844,0.915-1.808,2.263-2.857,3.938c-1.195-1.07-3.74-3.216-6.342-4.566l-1.904,2.413l6.058,5.882c-0.131,0.236-0.264,0.477-0.397,0.721C46.57,3.133,43.441,0.554,43.441,0.554l-2.39,2.766 c3.972,4.632,9.453,8.916,11.891,10.729c-0.211,0.413-0.423,0.831-0.636,1.255C39.417,5.651,34.449,0.917,34.449,0.917l-2.717,2.945c7.647,7.33,15.917,14.754,18.024,16.638c-0.204,0.425-0.408,0.854-0.613,1.284C36.8,12.691,27.994,4.367,25.422,0.449 l-2.39,2.765c8.104,8.539,20.319,19.211,24.227,22.583c-0.206,0.443-0.411,0.888-0.617,1.333c-9.527-6.31-14.627-11.31-18.931-15.432C23.201,7.377,17.976,1.917,15.896,0L13.02,3.119c7.717,8.503,25.108,24.004,31.619,28.399 c-0.243,0.537-0.485,1.073-0.726,1.607C30.32,22.46,10.721,5.175,6.985,2.362L4.901,4.448c8.872,9.074,31.669,29.336,36.615,34.038c-0.3,0.677-0.597,1.346-0.89,2.006C25.883,27.823,2.664,6.874,2.664,6.874L1.12,9.939c10.493,10.57,33.952,32.544,37.258,35.638 c-0.259,0.585-0.512,1.158-0.758,1.715C22.515,33.526
,7.848,20.476,3.401,16.852l-2.237,2.426c11.139,10.986,30.478,28.518,34.581,32.227c-0.323,0.72-0.628,1.394-0.913,2.015C21.063,40.369,5.95,27.057,2.685,23.887l-2.383,2.932 c8.691,8.46,29.709,27.74,32.738,30.515c-0.304,0.651-0.648,1.404-1.029,2.247C18.259,46.584,5.606,34.76,2.869,32.553l-2.25,2.092c9.949,10.825,26.338,25.906,29.82,28.451c-0.32,0.724-0.656,1.485-1.006,2.28C16.333,52.826,2.679,40.233,2.679,40.233 l-2.224,2.759c9.067,9.678,23.141,23.04,27.343,26.12c-0.297,0.683-0.602,1.383-0.912,2.098C15.543,60.602,2.703,49.073,2.703,49.073C1.238,49.966,0,52.352,0,52.352C11.334,63.218,22.136,73.12,24.95,75.689c-0.261,0.606-0.525,1.22-0.792,1.841 C8.771,63.626,2.36,57.093,2.36,57.093l-1.884,2.912c8.419,8.851,18.809,19.06,21.778,21.963c-0.157,0.366-0.313,0.733-0.472,1.102C10.825,74.056,2.944,67.412,2.944,67.412l-1.737,2.405c8.374,8.123,16.46,14.983,18.948,17.065 c-0.242,0.567-0.484,1.137-0.728,1.709C10.261,82.019,3.115,75.745,3.115,75.745l-1.85,3.745c8.161,7.937,14.37,12.905,16.005,
14.183c-0.244,0.576-0.488,1.152-0.732,1.729C7.159,87.785,4.131,84.377,4.131,84.377l-2.363,3.432 c5.442,5.678,11.379,9.753,13.319,11.023c-0.25,0.592-0.5,1.183-0.748,1.773l-10.71-8.035l-1.884,2.912l10.717,9.579c-0.152,0.362-0.303,0.723-0.455,1.083l-8.603-6.725l-1.724,2.738l8.792,7.647c-0.276,0.659-0.549,1.313-0.821,1.962l-6.45-5l-1.737,2.405 l6.509,6.618c-0.19,0.457-0.379,0.911-0.566,1.36l-5.095-3.509l-1.384,2.892l4.96,4.278c-0.144,0.347-0.286,0.69-0.427,1.031l-2.546-1.553l-1.211,3.051l2.199,2.281c-1.341,3.262-2.508,6.131-3.433,8.444l2.725,1.391c1.204-3.218,31.228-73.322,36-83.189 S60.577,7.7,62.173,1.797l-1.519-0.439z" />
+ <path d="M142.803,106.261c-1,0.5-3,1-5-0.5c0,0-3.667,12.333-2.667,17.667c3.667,1.833,42.833,2.5,52.667,2.5c16.833,0,26.167,1,30,0.5c4.583-0.75,8.333-2.75,8.333-2.75c-0.25-3.25-0.25-30.5-0.25-42.25s1.333-54.354-0.25-74.25c0,0-40.5,1.25-69.75,1 c0.5,5.75-2.395,17.829-4,24.25c-1.5,6-5,25.25-9.929,48.894c3.256,4.04,6.499,8.469,9.012,11.273c0,0,0.089,1.697-0.189,3.521c3.856,1.062,6.481,3.062,7.981,5.312s2.25,5.625,1.375,7.875c0.625,3.125,0.5,5.375-0.875,5.75s-2.5,1-4.5,0.25 c-0.875,3.25-1.25,3.5-1.25,3.5c-1.75,0-2.375-0.125-2.375-0.125c-3-4.125-8.667-7.833-8.333-12.417z" />
+ <path fill="#000" d="M207.303,18.594c0,0-19,6.167-39.167,13.333c0,0,0.716,6.012,1.617,11.404c-4.629,2.158-9.096,4.243-12.617,5.93c0,0,5,18,10.333,30.333c2.833-2.167,23-11.833,37.167-19.667c0,0-0.888-2.858-2.156-6.833 c1.809-0.587,7.883-2.55,9.156-2.833c1.5-0.333,1.5-2.833,1.5-2.833s-4.333-21.667-5.833-28.833z" />
+ <path d="M133.469,159.427c-6.038,5.712-26.618,15.097-44.84,10.635c-1.833-11.777-3.345-23.232-3.993-29.635c-1.333-13.167-1.5-27.167-1.5-27.167c7,0.833,11.333-0.333,11.333-0.333c-0.333-4,0.5-9.5,0.5-9.5c2.5,3.167,7,5,8.333,1.833 c1.333-3.167,2.5-8.667,2.5-8.667c3.5,2.167,10,9.667,15.833,19c5.833,9.333,11.833,18.833,15.333,26.5c3.5,7.667,2.667,11.5-3.5,17.333z" />
+ <path d="M150.303,98.094c-0.573,1.604-3.428,4.624-5.483,6.519c0.691,4.564,3.566,8.189,4.941,9.189s2.75,2,2.75,2c0.625-2.125-0.25-4.25-3.125-5.625c-0.375-1,0.75-3,1.75-2s2,0.375,2,0.375c1.875,2.75,2.125,4.125,2.125,4.125l2,0.5 c0-3.125-0.625-4.5,0.375-6.25c-1-3.75-2.292-7.042-7.333-8.833z" />
+ <path d="M115.386,197.677c-1.5,7.25-3.25,13.25-4.5,16.25s-0.75,5.25-4.75,5c-3.25-1.5-3.5-3.75-2.25-8.5s3.5-9,3.5-12.25c-6.583-7.147-13.873-14.577-17.08-17.819c-0.354-2.073-0.703-4.181-1.043-6.295c4.057,1.386,8.024,1.841,11.607,1.757 c3.328,8.71,11.053,18.163,14.516,21.857z" />
+ <path d="M141.636,155.761c0.054-0.094,0.108-0.187,0.164-0.277c7.517,8.107,12.258,14.859,14.67,17.111c2.5,2.333,6.5,8.667,10,9.833c3.5,1.167,11.833,4.167,14.333,5.333s2.667,1.833,2.167,3.667c-0.5,1.833-1.333,2.833-7,2.167 c-5.667-0.667-11.833-1.5-12.167-3.833c-0.333-2.333-7.333-9.5-11.833-11.5c-4.067-1.808-15.622-8.652-18.299-13.521c3.277-2.538,5.95-5.452,7.965-8.979z" />
+ <path d="M193.136,150.927l-3,0.25c-13.131-11.256-23.025-19.555-27.146-22.997c1.969-0.023,3.993-0.039,5.991-0.041c9.588,10.269,24.155,22.788,24.155,22.788z" />
+ <path d="M169.303,74.427c-4.667-11.833-7.833-23.667-7.833-23.667c13.333-6.333,32-15.167,32-15.167c2.5,9.167,7.333,23.333,7.333,23.333c-15.833,7.5-31.5,15.5-31.5,15.5z" />
+ <path d="M201.697,50.65c-2.207-6.863-5.115-15.666-6.728-19.556c-2.217,1.478-12.056,6.098-21.979,10.728c-0.355-1.502-1.255-5.506-1.521-8.561c2.5-0.5,22.333-6.667,33.5-10.167c0.333,2.833,2.333,12.833,4.667,25.167c-1.124,0.75-5.709,1.873-7.938,2.389z" />
+ <path d="M121.636,69.302l-0.333-2.333c5.333,3.333,20.667,18,26.167,25.667c0,2-1.833,1.333-2.833,0.333s-3.667-5.167-9-10.5c-5.333-5.333-12-13.333-14-13.167z" />
+ <path d="M119.136,74.136c-0.667-6.833-3.333-11.333-12-18.5c-8.667-7.167-19.833-16.667-26.667-18.5c1.167,1.167,1.5,2.333,1.5,2.333c9.167,4.667,25.667,18.833,29.5,24.333s6.333,10,7.667,10.333z" />
+ <path d="M68.441,165.532c-0.229-1.13-0.446-2.215-0.649-3.251c-1.987-0.381-3.908-1.266-5.172-1.943c0.2,1.172,0.399,2.327,0.595,3.453c1.945,0.734,3.919,1.353,5.227,1.741z" />
+ <path d="M69.66,171.421c-2.355-0.877-4.315-1.616-5.454-2.046c0.217,1.205,0.426,2.347,0.622,3.412c2.266,0.833,4.26,1.692,5.618,2.308c-0.274-1.266-0.536-2.491-0.786-3.674z" />
+ <path d="M61.589,154.129c2.229,0.848,3.901,1.444,4.997,1.822c-0.184-0.999-0.351-1.93-0.504-2.797c-1.253-0.34-2.919-0.923-4.952-1.916c0.151,0.962,0.304,1.927,0.46,2.891z" />
+ <path d="M65.795,177.971c0.369,1.946,0.59,3.082,0.59,3.082s3.25,3.75,6.5,5c-0.317-1.384-0.622-2.732-0.916-4.042c-2.397-1.074-4.802-2.904-6.174-4.04z" />
+ <path d="M64.884,145.852c-0.178-1.214-0.249-1.8-0.249-1.8l-4.75-1.25c0.093,0.678,0.189,1.366,0.288,2.06c1.966,0.497,3.552,0.803,4.711,0.99z" />
+ <path d="M41.469,94.136c0.5,5.5,2.833,15.333,2.833,15.333l7.333,0.833l1.5,1.5c1-3.667,3.5-5.333,6.5-5.167s13.167,0,13.167,0c0.167-4.5,0.833-11,0.833-11c-2,4-3.5,4.833-6.333,4.167c-2.833-0.667-22.167-5.5-25.833-5.667z" />
+ <path d="M44.303,90.636l2.167-2.833c11.667,1.5,25.333,5.667,25.333,5.667s-1,2.833-2.667,3.667c-12.333-2.667-24.833-6.5-24.833-6.5z" />
+ <path d="M49.636,114.969c-0.5,2.167-0.5,8.5-0.5,8.5c3.333,0,4.833,0.5,4.667,1.833c1.5,0.167,2.833,1.5,2.833,1.5c2.833-0.333,5.167,1.333,9.167,1.5c4,0.167,5.5,2,8.5-0.667c-3.5,0.167-9.167-0.167-9.5-2.333c4.333-0.333,9.167,0.333,10.333-0.5 c0.833-1,0-1.667,0-1.667c-5.167,0-11.167-0.333-11-2c0.167-1.667,4.333-0.333,6.5-0.167c2.167,0.167,6,0.333,6.167-1.5c0.167-1.833-2.833-0.833-4.833-0.833s-7.5,0.167-7.333-1.5c0.167-1.667,2-1,5.5-0.833c3.5,0.167,6,0,6.167-1.333 c-3-0.5-7.5-1.333-9.833-1.667c-2.333-0.333-5.5-0.167-5.5-0.167c-0.5-1.667,1.333-2.833,4-2.167c2.667,0.667,5,0.667,5,0.667s3.5-0.667,2.5-1.667s-7.333-0.333-10.5-1c-3.167-0.667-6.167-0.333-6.833,2.167c-0.667,2.5-0.833,4.333-5.5,3.833z" />
+ <path d="M52.969,128.302c-0.167,3-1.333,4.5-1.333,4.5c7,1.167,13.667,2,15.833,2.667c2.5-1.667,2.5-4,2.5-4c-6-0.167-11-1.167-17-3.167z" />
+ <path d="M48.303,83.802c0.32-0.641,0.712-1.385,1.158-2.195c-3.615-2.958-6.491-4.972-6.491-4.972c0.531-1.044,1.041-2.015,1.535-2.927c2.657,2.698,5.046,4.441,6.417,5.345c0.384-0.646,0.789-1.311,1.211-1.984c-2.489-1.858-5.061-4.094-6.501-5.381 c0.501-0.871,0.986-1.675,1.458-2.414c2.28,2.454,5.479,4.286,6.863,5.014c0.36-0.527,0.728-1.049,1.1-1.563c-2.814-2.162-4.917-4.646-6.071-6.168c0.626-0.813,1.238-1.517,1.844-2.126c2.739,2.539,5.216,4.473,6.461,5.41c0.314-0.374,0.627-0.733,0.94-1.077 c-2.576-2.421-4.665-4.903-5.513-5.949c0.684-0.484,1.375-0.871,2.09-1.181c1.745,2.559,3.975,4.467,5.164,5.387c0.454-0.404,0.901-0.759,1.336-1.054l-3.5-4.167c0,0-4.5-1.167-11.167-2.333c-2.833,2.5-10.167,14-13.667,20.5s-5,22.5-5.167,28.167 c-0.167,5.667-0.833,12,0.5,15.333c0,0,0.506-0.025,1.369-0.083c0.068-3.272-0.202-6.251-0.202-6.251s0.64-0.07,1.667-0.163v6.307c0.644-0.051,1.375-0.113,2.167-0.188v-6.298c0.526-0.04,1.087-0.079,1.668-0.115l1.005,6.131c0.435-0.051,0.878-0.105,1.327-0.163 v
-6.086c0.758-0.03,1.52-0.049,2.261-0.055l0.32,5.773c0.916-0.145,1.831-0.305,2.723-0.482l-0.111-5.215c0.679,0.048,1.292,0.12,1.806,0.223l0.974,4.384c0.064-0.017,0.129-0.034,0.192-0.051c0.167-2.667,0.333-6.333,1.667-8c0,0-4.333-0.833-7.833-1.667 c-3.5-0.833-7.167,1.333-7.167,1.333l-1-3.167c0,0,2.333-0.167,5.833-3.167c0,0,1.333-2.833,2.333-7c0,0,0.5-2.667-0.5-5c-1-2.333,0.167-4,1.667-4c0,0,1.667-1,2.833-4c-0.833-1-0.333-2.833-2.167-4.333l1-3.5c0,0,2.333,2.833,6.167,5.167z" />
+ <path d="M72.469,87.636c-3-10-4.333-21.333-4.333-21.333c1.833,0.167,3-1.667,2.833-3.333c-0.167-1.667,0.167-3.833,0.167-3.833c2.5,0,6.833,2.667,6.5-2.167l1.833-0.5l-0.667,1.333c5.667,2.5,10.167,8,13,11c-0.167,3.167-1.333,4.833-1.333,4.833 c-7.5-8.5-10.667-11.667-17.5-13.5c-0.833-0.167-1.167,0.833-1.167,0.833c3.667,11.5,7.667,18.5,6.5,24.833c-1.167,1.833-5.833,1.833-5.833,1.833z" />
+ <path d="M71.803,57.136c1.333-0.5,3.5-0.167,3.5-0.167v1c0,0-1.833,0.833-3.5-0.833z" />
+ <path d="M69.303,59.469c-0.5,2-0.833,4.833-0.833,4.833c-2.833-0.5-7-2.167-8.333-5c-0.167-1.833-0.5-3.333-0.5-3.333c4.167,2.333,7.833,3.833,9.667,3.5z" />
+ <path d="M61.041,22.638c1.264-0.02,4.413-0.208,7.262-1.502c-1.5-6.333-16.5-5.667-19-5.167s-6,3.833-7.333,6.667c0.407,0.078,0.821,0.147,1.241,0.209c0.353-0.971,0.765-1.43,0.967-1.61c0.539-0.141,1.064-0.269,1.579-0.386l-0.121,2.274 c0.448,0.038,0.897,0.069,1.347,0.094c0.278-0.639,0.836-1.885,1.368-2.879c0.916-0.149,1.796-0.258,2.648-0.325l-0.633,3.291c0.734-0.001,1.454-0.015,2.151-0.036l1.019-3.336c1.12,0.02,2.201,0.116,3.266,0.287v2.805c0.273-0.022,0.535-0.045,0.784-0.068 l1.205-2.329c0.706,0.176,1.409,0.385,2.118,0.627l0.132,1.386z" />
+ <path d="M80.719,45.948c-1.216,1.93-3.617,3.119-4.833,3.229c0,0,1.265-2.633,3.503-5c0.58-0.479,0.58-1.229-0.12-1.646c-0.467,0.238-1.198,0.661-1.884,1.27c-1.125,1-2.75-0.25-3.25-1.5c0.781-1.45,3.351-1.408,4.961-1.827c0.622-0.527-0.128-1.34-0.128-1.34 c-2.833-3-7.167-4.333-7.167-6.833c0-1.414,0.373-2.507,0.697-3.191c-0.643,0.122-1.472-0.365-1.614-0.934c-0.201-0.805-0.323-1.369-1.407-2.732c-0.147,0.09-0.295,0.181-0.444,0.273c0.392,1.027,0.987,2.527,1.727,4.209c1.375,3.125-2.125,2.625-2.25,1.125 c-0.093-1.118-0.742-2.652-1.688-3.931c-0.119,0.078-0.237,0.157-0.356,0.236c0.75,1.878,1.31,4.497,1.793,6.819c0.625,3-2.375,2.25-2.625,1c-0.205-1.023-0.83-3.555-2.079-5.744c-0.127,0.098-0.253,0.196-0.379,0.296c0.56,2.288,0.947,5.64,1.333,7.573 c0.5,2.5-2.375,2.5-2.625,0.5c-0.212-1.696-0.245-2.944-1.242-5.878c-0.208,0.2-0.414,0.402-0.616,0.608c0.012,3.123-0.009,8.49-0.268,10.646c-0.375,3.125-2.875,2.375-2.75,1c0.109-1.197-0.161-3.154-0.068-7.767c-0.046,0.076-0.095,0.15-0.14,0.226
c-0.833,5.333-1.167,12.833,4.833,15.5s14.292,3.313,18,0.5c4.208-2.563,1.083-4.313,1.083-6.688z" />
+ <g fill="#000">
+ <path d="M108.89,146.162c-0.826-0.792-1.639-1.586-2.431-2.375c-3.331,1.829-7.613,3.162-9.51,3.705c0.6,0.995,1.222,2.013,1.855,3.04c5.627-1.592,8.655-3.34,10.085-4.369z" />
+ <path d="M101.191,138.181c-2.182,1.709-5.985,3.141-7.535,3.682c0.5,0.895,1.054,1.857,1.647,2.868c4.203-1.098,7.043-2.515,8.666-3.492c-0.993-1.046-1.926-2.07-2.778-3.058z" />
+ <path d="M102.346,156.194c5.876-1.628,9.702-4.044,11.53-5.404c-0.834-0.752-1.673-1.518-2.508-2.293c-2.729,2.457-8.69,4.159-10.893,4.725c0.627,1.002,1.253,1.998,1.871,2.973z" />
+ <path d="M123.275,158.893c-3.958,2.792-11.935,5.487-15.034,6.474c1.168,1.793,1.895,2.894,1.895,2.894s12.5-3.333,16.5-6.667c-0.892-0.694-2.039-1.613-3.361-2.701z" />
+ <path d="M117.5,154c-3.033,2.28-10.208,4.545-13.112,5.402c0.657,1.026,1.285,2.002,1.869,2.907c6.353-1.963,11.13-4.771,13.516-6.351c-0.735-0.626-1.496-1.281-2.273-1.958z" />
+ <path d="M99.333,135.915c-0.582-0.755-1.097-1.476-1.531-2.154c-2.333,1.5-6.667,3-6.667,3c0.173,0.519,0.483,1.221,0.902,2.066c2.759-0.008,4.985-0.774,7.296-2.913z" />
+ <path d="M66.386,44.677c2.125-1.75,5.375-4.25,5.125-7.25l-1.25-0.625l-0.125-0.75c-5.125,3.25-7.75,4.375-8.5,5c0.875,1.875,2.5,1.375,2.5,1.375c2.125-1.125,4-2.375,4-2.375c-1.875,2.125-2.5,3.125-2.5,3.125s-0.125,0.875,0.75,1.5z" />
+ </g>
+ </g>
+ </g>
+ <g xml:id="vis" transform="translate(153,58) rotate(-27) scale(0.05)" stroke="rgb(66,105,66)" font-family="dialog, sans-serif" font-size="10">
+ <g fill="rgb(115,191,115)">
+ <ellipse cx="195" cy="210" rx="27" ry="18" />
+ <ellipse cx="645" cy="102" rx="225" ry="18" />
+ <ellipse cx="645" cy="156" rx="230" ry="18" />
+ </g>
+ <g fill="rgb(255,223,123)" stroke="rgb(132,117,66)">
+ <rect height="36" width="100" x="595" y="192" />
+ <rect height="36" width="276" x="507" y="246" />
+ <rect height="36" width="106" x="592" y="300" />
+ </g>
+ <g fill="none" stroke="rgb(90,89,206)">
+ <path d="M201 193C212 170 215 158 240 143 279 122 377 112 428 107" />
+ <path d="M216 200C224 196 232 193 240 191 311 174 390 165 423 161" />
+ <path d="M221 210C295 210 497 210 595 210" />
+ <path d="M221 210C295 210 497 210 595 210" />
+ <path d="M216 220C224 224 232 227 240 229 334 252 444 261 506 264" />
+ <path d="M201 227C212 253 215 265 240 280 352 344 508 337 592 325" />
+ </g>
+ <g fill="rgb(90,89,206)" stroke="none">
+ <polygon points="433,107 425,111 425,103" />
+ <polygon points="428,160 421,165 420,157" />
+ <polygon points="600,210 592,214 592,206" />
+ <polygon points="511,264 503,268 503,260" />
+ <polygon points="597,324 590,329 588,321" />
+ </g>
+ <g fill="rgb(66,105,66)">
+ <text x="458" y="105">http://prismstandard.org/vocabularies/1.0/resourcetype.xml#birdsEye</text>
+ <text x="453" y="159">http://prismstandard.org/vocabularies/1.0/resourcetype.xml#illustration</text>
+ <text x="604" y="213">image/svg+xml</text>
+ <text x="530" y="267">Line drawing of woman in antique attire, ...</text>
+ <text x="177" y="213">online:</text>
+ <text x="601" y="321">Sibyll Trelawney</text>
+ </g>
+ <g stroke="rgb(90,89,206)" fill="rgb(90,89,206)">
+ <text x="256" y="158">http://purl.org/dc/elements/1.1/type</text>
+ <text x="250" y="206">http://purl.org/dc/elements/1.1/format</text>
+ <text x="250" y="276">http://purl.org/dc/elements/1.1/subject</text>
+ <text x="256" y="105">http://purl.org/dc/elements/1.1/type</text>
+ <text x="240" y="225">http://purl.org/dc/elements/1.1/description</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-color-01-t.png b/test/svg/svg1.2/svg/paint-color-01-t.png
new file mode 100644
index 0000000..dd803f2
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-color-01-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-color-01-t.svg b/test/svg/svg1.2/svg/paint-color-01-t.svg
new file mode 100644
index 0000000..a3cc9f4
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-color-01-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="CL" desc="Test that viewer has the basic capability to process the color property" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-color-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The purpose of this test is to determine if an application has the basic capability to process the 'color' property.
+ There are three subtests.
+ </p>
+ <p>
+ The first subtest, to the top left, is passed if the circle has a red fill. The second subtest, to the top right, is
+ passed if the circle has a red stroke. The third subtest shows a rectangle with a gradient fill, which has three stops.
+ The subtest is passed if central stop is red, fading off to blue to the left and pale yellow to the right.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-color-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+
+ <linearGradient xml:id="grad" color="red">
+ <stop offset="0.05" stop-color="#60F" />
+ <stop offset="0.5" stop-color="currentColor" />
+ <stop offset="0.95" stop-color="#FF6" />
+ </linearGradient>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g color="red">
+ <g color="inherit" fill="none" stroke="none">
+ <!-- inherit to check the property value, not the string, is being used -->
+ <circle cx="130" cy="80" r="60" fill="currentColor" />
+ <circle cx="350" cy="80" r="60" stroke="currentColor" stroke-width="4" />
+ </g>
+ </g>
+ <g color="blue">
+ <g color="inherit" fill="none" stroke="none">
+ <!-- blue color used to check color being scoped and inherited correctly -->
+ <rect x="60" y="215" width="360" height="80" fill="url(#grad)" />
+ </g>
+ </g>
+ <g font-size="30" fill="black">
+ <text x="120" y="170">fill</text>
+ <text x="310" y="170">stroke</text>
+ <text x="180" y="205">stop-color</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-color-03-t.png b/test/svg/svg1.2/svg/paint-color-03-t.png
new file mode 100644
index 0000000..4042f7e
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-color-03-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-color-03-t.svg b/test/svg/svg1.2/svg/paint-color-03-t.svg
new file mode 100644
index 0000000..0e26a35
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-color-03-t.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="CL" desc="Test that viewer has the basic capability to render colors, specified as CSS attributes, using any of the equivalent forms." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: paint-color-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Purpose of test is to determine if the color datatype is supported. There are multiple syntaxes for specifying the
+ same color, such as #37F and #3377FF. For each of the six groups shown here, each of the shapes in the group uses
+ one of the syntactical forms and all in the group should be identical in color.
+ </p>
+ <p>
+ The first row uses five forms - 3-digit hex, 6-digit hex, rbg() integer form, rgb() percentage form, and named
+ ('HTML') colors.
+ </p>
+ <p>
+ The second row uses only four forms - 3-digit hex, 6-digit hex, rbg() integer form, rgb() percentage form - as
+ there are no HTML or X11 names for those colors.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-color-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- groups of five colors -->
+ <g>
+ <circle cx="75" cy="40" r="20" fill="#f00" />
+ <circle cx="115" cy="40" r="20" fill="#ff0000" />
+ <circle cx="75" cy="80" r="20" fill="rgb(255,0,0)" />
+ <circle cx="115" cy="80" r="20" fill="rgb(100%,0%,0%)" />
+ <polygon points="95,40 115,60 95,80 75,60" fill="red" />
+ </g>
+ <g>
+ <circle cx="200" cy="40" r="20" fill="#0f0" />
+ <circle cx="240" cy="40" r="20" fill="#00ff00" />
+ <circle cx="200" cy="80" r="20" fill="rgb(0,255,0)" />
+ <circle cx="240" cy="80" r="20" fill="rgb(0%,100%,0%)" />
+ <!-- 'lime' (full intensity green) NOT 'green' (half intensity green) -->
+ <polygon points="220,40 240,60 220,80 200,60" fill="lime" />
+ </g>
+ <g>
+ <circle cx="325" cy="40" r="20" fill="#00f" />
+ <circle cx="365" cy="40" r="20" fill="#0000ff" />
+ <circle cx="325" cy="80" r="20" fill="rgb(0,0,255)" />
+ <circle cx="365" cy="80" r="20" fill="rgb(0%,0%,100%)" />
+ <polygon points="345,40 365,60 345,80 325,60" fill="blue" />
+ </g>
+ <!-- no names for three digit colors except for 00 and ff -->
+ <!-- 11=17 22=34 33=51 44=68 55=85 66=102 77=119 88=136 99=153 aa=170 bb=187 cc=204 dd=221 ee=238 -->
+ <g>
+ <circle cx="75" cy="135" r="20" fill="#a01" />
+ <circle cx="115" cy="135" r="20" fill="#aa0011" />
+ <circle cx="75" cy="175" r="20" fill="rgb(170,0,17)" />
+ <circle cx="115" cy="175" r="20" fill="rgb(66.667%,0%,6.667%)" />
+ </g>
+ <g>
+ <circle cx="200" cy="135" r="20" fill="#3b3" />
+ <circle cx="240" cy="135" r="20" fill="#33bb33" />
+ <circle cx="200" cy="175" r="20" fill="rgb(51,187,51)" />
+ <circle cx="240" cy="175" r="20" fill="rgb(20%,73.333%,20%)" />
+ </g>
+ <g>
+ <circle cx="325" cy="135" r="20" fill="#57e" />
+ <circle cx="365" cy="135" r="20" fill="#5577ee" />
+ <circle cx="325" cy="175" r="20" fill="rgb(85,119,238)" />
+ <circle cx="365" cy="175" r="20" fill="rgb(33.333%,46.666%,93.333%)" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-color-04-t.png b/test/svg/svg1.2/svg/paint-color-04-t.png
new file mode 100644
index 0000000..e090948
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-color-04-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-color-04-t.svg b/test/svg/svg1.2/svg/paint-color-04-t.svg
new file mode 100644
index 0000000..bdfe4d2
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-color-04-t.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="CL" desc="Tests system colors" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-color-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests system colors. The colors on your screen might not match the reference image at all, but they should at
+ minimum be legible and should preferably resemble the colors used on menus and other user interface elements on
+ your computer, pda or phone.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-color-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="Scene_1" transform="translate(240, 180)">
+ <rect x="-230" y="-170" width="460" height="300" fill="Background" />
+ <rect x="-220" y="-160" width="440" height="280" fill="AppWorkspace" />
+ <rect x="-152" y="-108" width="317" height="221" fill="Window" />
+ <rect x="-152" y="-108" width="317" height="221" fill="none" stroke-width="3" stroke="WindowFrame" />
+ <g xml:id="contents" font-size="12" fill="WindowText">
+ <text x="-148" y="0">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. </text>
+ <text x="-148" y="20">Vestibulum pulvinar. Duis laoreet, nunc vitae facilisis </text>
+ <text x="-148" y="40">tristique, pede sem iaculis mi, non consectetuer lorem </text>
+ <text x="-148" y="60">libero et est. Donec imperdiet purus sed odio. Duis </text>
+ <text x="-148" y="80">venenatis tortor eu lectus. Suspendisse sed metus at </text>
+ <text x="-148" y="100">metus viverra ultricies. Mauris porttitor, justo a vulputate</text>
+ </g>
+ <g xml:id="dropdown" transform="translate(2,0)">
+ <rect x="-150" y="-107" width="118" height="190" fill="ThreeDFace" xml:id="drop-bg" />
+ <rect x="-143" y="0" width="102" height="34" fill="Menu" />
+ <text x="-138" y="24" font-size="20" font-weight="bold" fill="MenuText">Load</text>
+ <rect x="-143" y="40" width="102" height="34" fill="Menu" />
+ <text x="-138" y="64" font-size="20" font-weight="bold" fill="MenuText">Save</text>
+ <path d="M-149 83 h114 v-94" stroke-width="4" stroke="ThreeDDarkShadow" fill="none" />
+ <path d="M-149 83 v-94 h114" stroke-width="4" stroke="ThreeDLightShadow" fill="none" />
+ </g>
+ <g xml:id="menubar">
+ <rect x="-148" y="-62" width="310" height="46" fill="ThreeDLightShadow" />
+ <path d="M152 -52 l 10 -10 v 46 h -311 l10-10 z" fill="ThreeDDarkShadow" />
+ <rect x="-144" y="-58" width="302" height="37" fill="ThreeDFace" />
+ <text x="-141" y="-32" font-size="20" font-weight="bold" fill="HighlightText">File</text>
+ <text x="-90" y="-32" font-size="20" font-weight="bold" fill="MenuText">Edit</text>
+ </g>
+ <g xml:id="windowdecoration">
+ <rect x="-149" y="-106" width="311" height="42" fill="ActiveCaption" stroke-width="4" stroke="ActiveBorder" xml:id="windowbar" />
+ <text x="5" y="-78" text-anchor="middle" font-size="24" font-weight="bold" fill="CaptionText">Lorem</text>
+ <g xml:id="button">
+ <rect x="120" y="-99" rx="8" width="26" height="26" fill="ButtonFace" />
+ <rect x="120" y="-99" rx="8" width="24" height="24" fill="ButtonHighlight" />
+ <rect x="122" y="-97" rx="8" width="24" height="24" fill="ButtonShadow" />
+ <rect x="122" y="-97" rx="8" width="22" height="22" fill="ButtonFace" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-color-05-t.png b/test/svg/svg1.2/svg/paint-color-05-t.png
new file mode 100644
index 0000000..e3a5d24
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-color-05-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-color-05-t.svg b/test/svg/svg1.2/svg/paint-color-05-t.svg
new file mode 100644
index 0000000..dbc13f9
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-color-05-t.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="This tests the correct behavior or currentcolor when specified in multiple places." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-color-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests the color that is used for the currentColor value in the fill attribute when more than one color is specified.</p>
+ <p>This is illustrated using a single rectangle that is a child of a group element. A fill is specified for the group element but not the rectangle. Colour is specifed for the rectangle and the group element. The user agent should render the rectangle with a RED fill.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-color-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="currentColor" color="red">
+ <rect x="120" y="60" width="150" height="150" color="blue" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-color-201-t.png b/test/svg/svg1.2/svg/paint-color-201-t.png
new file mode 100644
index 0000000..fb1166d
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-color-201-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-color-201-t.svg b/test/svg/svg1.2/svg/paint-color-201-t.svg
new file mode 100644
index 0000000..3e18de6
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-color-201-t.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN" owner="CL" desc="test the sixteen color names for Tiny" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: paint-color-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests the sixteen color names that must be supported in SVG Tiny.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-color-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- color names -->
+ <rect x="10" y="30" width="25" height="25" fill="black"/>
+ <rect x="10" y="60" width="25" height="25" fill="silver"/>
+ <rect x="10" y="90" width="25" height="25" fill="gray"/>
+ <rect x="10" y="120" width="25" height="25" fill="white"/>
+ <rect x="10" y="150" width="25" height="25" fill="maroon"/>
+ <rect x="10" y="180" width="25" height="25" fill="red"/>
+ <rect x="10" y="210" width="25" height="25" fill="purple"/>
+ <rect x="10" y="240" width="25" height="25" fill="fuchsia"/>
+
+ <!-- rrgb values -->
+ <rect x="35" y="30" width="25" height="25" fill="rgb( 0, 0, 0)"/>
+ <rect x="35" y="60" width="25" height="25" fill="rgb(192, 192, 192)"/>
+ <rect x="35" y="90" width="25" height="25" fill="rgb(128, 128, 128)"/>
+ <rect x="35" y="120" width="25" height="25" fill="rgb(255, 255, 255)"/>
+ <rect x="35" y="150" width="25" height="25" fill="rgb(128, 0, 0)"/>
+ <rect x="35" y="180" width="25" height="25" fill="rgb(255, 0, 0)"/>
+ <rect x="35" y="210" width="25" height="25" fill="rgb(128, 0, 128)"/>
+ <rect x="35" y="240" width="25" height="25" fill="rgb(255, 0, 255)"/>
+
+ <!-- make white visible -->
+ <rect x="10" y="120" width="50" height="25" fill="none" stroke="black"/>
+
+ <!-- labels -->
+ <text x="70" y="50">black</text>
+ <text x="70" y="80">silver</text>
+ <text x="70" y="110">gray</text>
+ <text x="70" y="140">white</text>
+ <text x="70" y="170">maroon</text>
+ <text x="70" y="200">red</text>
+ <text x="70" y="230">purple</text>
+ <text x="70" y="260">fuchsia</text>
+
+ <!-- rgb values -->
+ <rect x="275" y="30" width="25" height="25" fill="green"/>
+ <rect x="275" y="60" width="25" height="25" fill="lime"/>
+ <rect x="275" y="90" width="25" height="25" fill="olive"/>
+ <rect x="275" y="120" width="25" height="25" fill="yellow"/>
+ <rect x="275" y="150" width="25" height="25" fill="navy"/>
+ <rect x="275" y="180" width="25" height="25" fill="blue"/>
+ <rect x="275" y="210" width="25" height="25" fill="teal"/>
+ <rect x="275" y="240" width="25" height="25" fill="aqua"/>
+
+ <!-- color names -->
+ <rect x="250" y="30" width="25" height="25" fill="rgb( 0, 128, 0)"/>
+ <rect x="250" y="60" width="25" height="25" fill="rgb( 0, 255, 0)"/>
+ <rect x="250" y="90" width="25" height="25" fill="rgb(128, 128, 0)"/>
+ <rect x="250" y="120" width="25" height="25" fill="rgb(255, 255, 0)"/>
+ <rect x="250" y="150" width="25" height="25" fill="rgb( 0, 0, 128)"/>
+ <rect x="250" y="180" width="25" height="25" fill="rgb( 0, 0, 255)"/>
+ <rect x="250" y="210" width="25" height="25" fill="rgb( 0, 128, 128)"/>
+ <rect x="250" y="240" width="25" height="25" fill="rgb( 0, 255, 255)"/>
+
+ <!-- labels -->
+ <text x="310" y="50">green</text>
+ <text x="310" y="80">lime</text>
+ <text x="310" y="110">olive</text>
+ <text x="310" y="140">yellow</text>
+ <text x="310" y="170">navy</text>
+ <text x="310" y="200">blue</text>
+ <text x="310" y="230">teal</text>
+ <text x="310" y="260">aqua</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/paint-fill-01-t.png b/test/svg/svg1.2/svg/paint-fill-01-t.png
new file mode 100644
index 0000000..9829553
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-fill-01-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-fill-01-t.svg b/test/svg/svg1.2/svg/paint-fill-01-t.svg
new file mode 100644
index 0000000..4013d31
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-fill-01-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="KMC" desc="Test that viewer has the basic capability to handle colour and 'none' values on the 'fill' property." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-fill-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the fill properties fill:none, and fill with a color (fill:red)</p>
+ <p>There should be two rectangles, the rectangle on the left hollow (fill:none) and the rectangle on the right filled with red.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-fill-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="36" x="40" y="42">Basic paint: fill properties.</text>
+ <!-- ============================================================================= -->
+ <!-- Draw two simple rectangles. One without fill other with fill:red -->
+ <!-- ============================================================================= -->
+ <rect xml:id="fill-01" fill="none" stroke="#000000" x="75" y="70" width="100" height="160" />
+ <rect xml:id="fill-02" fill="red" stroke="#000000" x="275" y="70" width="100" height="160" />
+ <text font-size="36" x="75" y="280">fill="none"</text>
+ <text font-size="36" x="275" y="280">fill="red"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-fill-02-t.png b/test/svg/svg1.2/svg/paint-fill-02-t.png
new file mode 100644
index 0000000..48da1fe
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-fill-02-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-fill-02-t.svg b/test/svg/svg1.2/svg/paint-fill-02-t.svg
new file mode 100644
index 0000000..3d69ed5
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-fill-02-t.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="KMC" desc="Test that viewer has the basic capability to handle the 'currentColor' value on the 'fill' property." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-fill-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The test uses the "currentColor" value for the "fill" attribute.</p>
+ <p>
+ The rectangle on the left should be green filled, the rectangle on the right should be blue. The text above the
+ rectangles should be black.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-fill-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g color="green">
+ <text font-size="36" x="30" y="42">Basic paint: fill properties.</text>
+ <text font-size="36" x="100" y="80">fill="currentColor"</text>
+ <!-- ====================================================================== -->
+ <!-- Second set of rectangles with fill:currentColor -->
+ <!-- ====================================================================== -->
+ <rect xml:id="fill-03" fill="currentColor" stroke="#000000" x="75" y="110" width="100" height="140" />
+ <rect xml:id="fill-04" color="blue" fill="currentColor" stroke="#000000" x="275" y="110" width="100" height="140" />
+ <text font-size="36" x="80" y="280">green</text>
+ <text font-size="36" x="290" y="280">blue</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-fill-03-t.png b/test/svg/svg1.2/svg/paint-fill-03-t.png
new file mode 100644
index 0000000..8052d9e
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-fill-03-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-fill-03-t.svg b/test/svg/svg1.2/svg/paint-fill-03-t.svg
new file mode 100644
index 0000000..bddf4b4
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-fill-03-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="KMC" desc="Test that viewer has the basic capability to handle the 'fill-rule' property." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-fill-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the fill rule properties evenodd and nonzero</p>
+ <p>There should be two red filled stars, the leftmost star should be unfilled in the very center.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-fill-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="36" x="30" y="42">Basic paint: fill properties.</text>
+ <!-- ====================================================================== -->
+ <!-- Third test fill-rule:xeenodd and fill-rule:nonzero -->
+ <!-- ====================================================================== -->
+ <path fill="red" fill-rule="evenodd" d="M 110 75 l 50 160 l -130 -100 l 160 0 l -130 100 z" />
+ <path fill="red" fill-rule="nonzero" d="M 365 75 l 50 160 l -130 -100 l 160 0 l -130 100 z" />
+ <text font-size="26" x="10" y="282">fill-rule="evenodd"</text>
+ <text font-size="26" x="260" y="282">fill-rule="nonzero"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-fill-04-t.png b/test/svg/svg1.2/svg/paint-fill-04-t.png
new file mode 100644
index 0000000..f5ae8fa
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-fill-04-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-fill-04-t.svg b/test/svg/svg1.2/svg/paint-fill-04-t.svg
new file mode 100644
index 0000000..ee9ff40
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-fill-04-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="TT" desc="Test inheritance of painting properties." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-fill-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests inheritance of three properties: "fill", "stroke" and "stroke-width". There is a "g" element (id="G1")
+ which sets fill="blue", stroke="red", and stroke-width="5". The first two rectangles on top should inherit all
+ those properties. The middle left rectangle has fill="yellow" and stroke-width="2", it should inherit the
+ stroke="red" from the parent container. The middle rectangle on the right has stroke="yellow", it should inherit
+ fill and stroke-width from the parent "g". The bottom two rectangles are in another "g" element (id="G2") which
+ is a child of "G1". "G2" sets fill="yellow". It should inherit the stroke and stroke width from the parent "G1".
+ The two bottom rectangles set no fill or stroke properties, they should inherit through the parents, stroke="red"
+ and stroke-width="5".
+ </p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labeling text (per CSS2 rules).</p>
+ <p>
+ The test uses the "rect" element, as well as basic fill (solid primary colors), stroke (black 1-pixel lines),
+ font-family (Arial) and font-size properties.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-fill-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="G1" fill="blue" stroke="red" stroke-width="5" transform="translate(120,30)">
+ <rect x="0" y="0" width="90" height="70" />
+ <rect x="100" y="0" width="90" height="70" />
+ <rect x="0" y="80" width="90" height="70" fill="yellow" stroke-width="2" />
+ <rect x="100" y="80" width="90" height="70" stroke="yellow" />
+ <g xml:id="G2" fill="yellow">
+ <rect x="0" y="160" width="90" height="70" />
+ <rect x="100" y="160" width="90" height="70" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-fill-05-t.png b/test/svg/svg1.2/svg/paint-fill-05-t.png
new file mode 100644
index 0000000..c3c5724
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-fill-05-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-fill-05-t.svg b/test/svg/svg1.2/svg/paint-fill-05-t.svg
new file mode 100644
index 0000000..981489a
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-fill-05-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DJ" owner="CN" desc="Test using fill-opacity values for rect element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-fill-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test using "fill-opacity" values for "rect" element. This test verifies that opacity is clamped to the specified range.</p>
+ <p>
+ The six rect elements on the left have varying 'fill-opacity' values within the valid range of 0 to 1. The six elements
+ on the right have 'fill-opacity' values outside the 0 to 1 range, and must be clamped. The top three rect elements on
+ the right must have their 'fill-opacity' clamped to 0, while the bottom three rect elements on the right must be clamped
+ to 1.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-fill-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Use multiple values for opacity -->
+ <rect x="20" y="20" width="60" height="60" fill-opacity="0.0" fill="#0000FF" stroke="black" />
+ <rect x="50" y="50" width="60" height="60" fill-opacity="0.2" fill="#0000FF" stroke="black" />
+ <rect x="80" y="80" width="60" height="60" fill-opacity="0.4" fill="#0000FF" stroke="black" />
+ <rect x="110" y="110" width="60" height="60" fill-opacity="0.6" fill="#0000FF" stroke="black" />
+ <rect x="140" y="140" width="60" height="60" fill-opacity="0.8" fill="#0000FF" stroke="black" />
+ <rect x="170" y="170" width="60" height="60" fill-opacity="1.0" fill="#0000FF" stroke="black" />
+ <!-- Values outside the range 0.0 - 1.0 should be clamped to this range -->
+ <rect x="200" y="20" width="60" height="60" fill-opacity="-100.0" fill="#0000FF" stroke="black" />
+ <rect x="230" y="50" width="60" height="60" fill-opacity="-10.0" fill="#0000FF" stroke="black" />
+ <rect x="260" y="80" width="60" height="60" fill-opacity="-0.1" fill="#0000FF" stroke="black" />
+ <rect x="290" y="110" width="60" height="60" fill-opacity="1.1" fill="#0000FF" stroke="black" />
+ <rect x="320" y="140" width="60" height="60" fill-opacity="10.0" fill="#0000FF" stroke="black" />
+ <rect x="350" y="170" width="60" height="60" fill-opacity="100.0" fill="#0000FF" stroke="black" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-04-t.png b/test/svg/svg1.2/svg/paint-grad-04-t.png
new file mode 100644
index 0000000..55043fe
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-04-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-04-t.svg b/test/svg/svg1.2/svg/paint-grad-04-t.svg
new file mode 100644
index 0000000..c362e4d
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-04-t.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="HS" desc="Test that checks the capability of the stop element in linear and radial gradients." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-grad-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test that checks the capability of the stop element in linear and radial gradients.</p>
+ <p>
+ The first rectangle has a linear gradient fill with a vector starting at top left and going to bottom right. The
+ stop colors are at 20% spacing apart and are in the following order : violet, blue, lime, yellow, orange, red.
+ Because the gradient vector vector goes from (0,0) to (1,1) in object bounding box space and because the object
+ bounding box has a larger width than height, the gradient vector is skewed off of a pure 45 degree angle. The
+ gradient stripes are also skewed so that they are no longer perpendicular to the gradient vector.
+ </p>
+ <p>
+ The next rectangle has a radial gradient fill with a multi-color stops from innermost to outermost in the following
+ order : black, yellow, red, blue, white, green.
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly, except for possible variations in the labelling
+ text (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Very simple black to red radial gradient ======== -->
+ <!-- ====================================================================== -->
+ <linearGradient xml:id="Grad1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="1">
+ <stop stop-color="rgb(238,130,238)" offset="0" />
+ <stop stop-color="blue" offset="0.2" />
+ <stop stop-color="lime" offset="0.4" />
+ <stop stop-color="yellow" offset="0.6" />
+ <stop stop-color="rgb(255,165,0)" offset="0.8" />
+ <stop stop-color="red" offset="1" />
+ </linearGradient>
+ <rect x="20" y="20" width="440" height="80" fill="url(#Grad1)" />
+ <text font-size="30" x="20" y="130">Multi-color linear gradient.</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient on the stroke of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient xml:id="Grad2" gradientUnits="userSpaceOnUse" cx="240" cy="210" r="220" fx="240" fy="210">
+ <stop stop-color="black" offset="0" />
+ <stop stop-color="yellow" offset="0.2" />
+ <stop stop-color="red" offset="0.4" />
+ <stop stop-color="blue" offset="0.6" />
+ <stop stop-color="white" offset="0.8" />
+ <stop stop-color="green" offset="1" />
+ </radialGradient>
+ <rect x="20" y="150" width="440" height="80" fill="url(#Grad2)" stroke-width="40" />
+ <text font-size="30" x="20" y="260">Multi-color radial gradient.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-05-t.png b/test/svg/svg1.2/svg/paint-grad-05-t.png
new file mode 100644
index 0000000..e52f0a7
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-05-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-05-t.svg b/test/svg/svg1.2/svg/paint-grad-05-t.svg
new file mode 100644
index 0000000..d7fe6bc
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-05-t.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="HS" desc="Test that checks the capability of the stop opacity in linear and radial gradients." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-grad-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test that checks the capability of the stop opacity in linear and radial gradients.</p>
+ <p>
+ There are two tests which contain rectangles with gradients using stop-opacity properties. A cyan color text string
+ "Background" is put behind both of the rectangles to help demonstrate the opacity concept. From top-down the appearance
+ of objects is as follows.
+ </p>
+ <p>
+ The first rectangle has a linear gradient fill with a vector starting at top left and going to bottom right. The stop
+ colors are at 20% spacing apart and are in the following order : violet, blue, lime, yellow, orange, red. Also a stop
+ opacity is given to the colors in the following order: 1, 0.2, 0.5, 0, 0.8, 1 Because the gradient vector vector goes
+ from (0,0) to (1,1) in object bounding box space and because the object bounding box has a larger width than height,
+ the gradient vector is skewed off of a pure 45 degree angle. The gradient stripes are also skewed so that they are no
+ longer perpendicular to the gradient vector.
+ </p>
+ <p>
+ The next rectangle has a radial gradient fill with a multi-color stops from innermost to outermost in the following
+ order : black, yellow, red, blue, white, green. Also a stop opacity is given to the colors in the following order: 1,
+ 0.2, 0.5, 0, 0.8, 1
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly, except for possible variations in the labelling text
+ (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Very simple black to red radial gradient ======== -->
+ <!-- ====================================================================== -->
+ <text font-size="60" fill="aqua" x="70" y="80">Background</text>
+ <linearGradient xml:id="Grad1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="1">
+ <stop stop-color="rgb(238,130,238)" stop-opacity="1" offset="0" />
+ <stop stop-color="blue" stop-opacity="0" offset="0.2" />
+ <stop stop-color="lime" stop-opacity="0.5" offset="0.4" />
+ <stop stop-color="yellow" stop-opacity="0.2" offset="0.6" />
+ <stop stop-color="rgb(255,165,0)" stop-opacity="0.8" offset="0.8" />
+ <stop stop-color="red" stop-opacity="1" offset="1" />
+ </linearGradient>
+ <rect x="20" y="20" width="440" height="80" fill="url(#Grad1)" />
+ <!-- ====================================================================== -->
+ <!-- Radial gradient on the stroke of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <text font-size="60" fill="aqua" x="70" y="210">Background</text>
+ <radialGradient xml:id="Grad2" gradientUnits="userSpaceOnUse" cx="240" cy="210" r="220" fx="240" fy="210">
+ <stop stop-color="black" stop-opacity="1" offset="0" />
+ <stop stop-color="yellow" stop-opacity="0" offset="0.2" />
+ <stop stop-color="red" stop-opacity="0.5" offset="0.4" />
+ <stop stop-color="blue" stop-opacity="0.2" offset="0.6" />
+ <stop stop-color="white" stop-opacity="0.8" offset="0.8" />
+ <stop stop-color="green" stop-opacity="1" offset="1" />
+ </radialGradient>
+ <rect x="20" y="150" width="440" height="80" fill="url(#Grad2)" stroke-width="40" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-07-t.png b/test/svg/svg1.2/svg/paint-grad-07-t.png
new file mode 100644
index 0000000..a5d4893
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-07-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-07-t.svg b/test/svg/svg1.2/svg/paint-grad-07-t.svg
new file mode 100644
index 0000000..08c6b45
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-07-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="HS" desc="Test that the viewer has basic capability to handle linear gradients on fills and stroke of objects . This means it needs to understand the following elements : <linearGradient>, <stop> and the following properties : stop-color, fill:url(# ), stroke(url# )" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-grad-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test that the viewer has basic capability to handle linear gradients on fills and stroke of objects and text.</p>
+ <p>
+ This test uses the following elements : <linearGradient>, <stop> and the following properties : stop-color,
+ fill:url(# ), stroke(url# )
+ </p>
+ <p>
+ Both elements in this test use the same simple gradient. It is a linear gradient from blue (left) to red (right). From
+ top-down the appearance of objects is as follows.
+ </p>
+ <p>The top rectangle should be filled with the gradient.</p>
+ <p>The next rectangle has no fill, but has a thick stroke on which the gradient is applied.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1, 1.5)">
+ <!-- ====================================================================== -->
+ <!-- Very simple blue to red linear gradient from left to right ========== -->
+ <!-- ====================================================================== -->
+ <linearGradient xml:id="Gradient" gradientUnits="userSpaceOnUse" x1="10" y1="10" x2="440" y2="10">
+ <stop stop-color="blue" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </linearGradient>
+ <!-- ====================================================================== -->
+ <!-- Linear gradient on the fill of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <rect x="10" y="10" width="430" height="60" fill="url(#Gradient)" />
+ <text font-size="24" x="10" y="90">Linear gradient filled rectangle</text>
+ <!-- ====================================================================== -->
+ <!-- Linear gradient on the stroke of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <rect x="25" y="110" width="400" height="30" fill="none" stroke="url(#Gradient)" stroke-width="20" />
+ <text font-size="24" x="10" y="170">Linear gradient on stroke of rectangle</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-08-t.png b/test/svg/svg1.2/svg/paint-grad-08-t.png
new file mode 100644
index 0000000..c9c1a54
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-08-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-08-t.svg b/test/svg/svg1.2/svg/paint-grad-08-t.svg
new file mode 100644
index 0000000..3eaf372
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-08-t.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="HS" desc="Test that the viewer has basic capability to handle linear gradients on fills and stroke of objects and text. This means it needs to understand the following elements : <linearGradient>, <stop> and the following properties : stop-color, fill:url(# ), stroke(url# )" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: paint-grad-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test that the viewer has basic capability to handle linear gradients on fills and stroke of text.</p>
+ <p>
+ This test uses the following elements : <linearGradient>, <stop> and the following properties : stop-color,
+ fill:url(# ), stroke(url# )
+ </p>
+ <p>
+ Both elements in this test use the same simple gradient. It is a linear gradient from blue (left) to red (right). From
+ top-down the appearance of objects is as follows.
+ </p>
+ <p>The first item is a text string "Gradient on fill" with the gradient on the fill of the text.</p>
+ <p>The second item is a text string that is not filled. It has a 2 user unit stroke on which the gradient is applied.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="MyFont" horiz-adv-x="416">
+ <font-face font-family="MyFont" units-per-em="1000" panose-1="2 0 0 6 3 0 0 2 0 4" ascent="700" descent="-127" alphabetic="0" />
+ <missing-glyph horiz-adv-x="233" />
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="233" />
+ <glyph unicode="G" glyph-name="G" horiz-adv-x="547" d="M40 700V0H510V383H295V253H360V150H190V550H510V700H40Z" />
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="435" d="M71 550L3 0H143L154 119H282L293 0H433L365 550H71ZM168 259L182 410H254L268 259H168Z" />
+ <glyph unicode="d" glyph-name="d" horiz-adv-x="519" d="M27 550V410H87V140H27V0H482V550H27ZM230 410H339V140H230V410Z" />
+ <glyph unicode="e" glyph-name="e" horiz-adv-x="442" d="M37 550V410V0H419V130H180V210H299V340H180V420H419V550H37Z" />
+ <glyph unicode="f" glyph-name="f" horiz-adv-x="428" d="M37 550V410V0H180V196H349V326H180V420H410V550H37Z" />
+ <glyph unicode="i" glyph-name="i" horiz-adv-x="217" d="M37 550V410V0H180V550H37Z" />
+ <glyph unicode="k" glyph-name="k" horiz-adv-x="472" d="M180 207H233L325 0H480L344 284L474 550H319L233 347H180V550H37V410V0H180V207Z" />
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="435" d="M37 0H425V130H180V550H37V410V0Z" />
+ <glyph unicode="n" glyph-name="n" horiz-adv-x="518" d="M180 550H37V410V0H180V324L338 0H481V550H338V226L180 550Z" />
+ <glyph unicode="o" glyph-name="o" horiz-adv-x="484" d="M37 550V0H447V550H37ZM180 410H304V140H180V410Z" />
+ <glyph unicode="r" glyph-name="r" horiz-adv-x="485" d="M37 550V410V0H180V164H222L305 0H465L367 174H444V550H37ZM180 420H301V294H180V420Z" />
+ <glyph unicode="s" glyph-name="s" horiz-adv-x="468" d="M34 550V410V218H291V120H34V0H434V338H177V430H434V550H34Z" />
+ <glyph unicode="t" glyph-name="t" horiz-adv-x="417" d="M5 550V410H137V0H280V410H412V550H5Z" />
+ </font>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- Very simple blue to red linear gradient from left to right ========== -->
+ <!-- ====================================================================== -->
+ <linearGradient xml:id="Gradient" gradientUnits="userSpaceOnUse" x1="10" y1="10" x2="440" y2="10">
+ <stop stop-color="blue" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </linearGradient>
+ <!-- ====================================================================== -->
+ <!-- Gradient on fill of text ======== -->
+ <!-- ====================================================================== -->
+ <text font-family="MyFont" font-size="68" fill="url(#Gradient)" x="20" y="90">Gradient on fill</text>
+ <text font-size="30" x="40" y="130">Linear gradient on filled text</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient on stroke of text ======== -->
+ <!-- ====================================================================== -->
+ <text font-family="MyFont" x="20" y="220" font-size="55" fill="none" stroke="url(#Gradient)" stroke-width="3">Gradient on stroke</text>
+ <text font-size="30" x="30" y="260">Linear gradient on stroke of text</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-09-t.png b/test/svg/svg1.2/svg/paint-grad-09-t.png
new file mode 100644
index 0000000..412cab6
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-09-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-09-t.svg b/test/svg/svg1.2/svg/paint-grad-09-t.svg
new file mode 100644
index 0000000..efbd623
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-09-t.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="HS" desc="Test that the viewer can handle the gradientUnits attribute on linear gradients." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: paint-grad-09-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test that the viewer can handle the gradientUnits attribute on linear gradients. It tests the following values of
+ gradientUnits : default (objectBoundingBox), specifying objectBoundingBox, and specifying userSpaceOnUse.
+ </p>
+ <p>From top-down the appearance of objects is as follows.</p>
+ <p>
+ The first rectangle uses the default attributes on the linearGradient element. Therefore the linear gradient should
+ default to objectBoundingBox. It should appear from the left edge of the rectangle (blue) to the right edge of the
+ rectangle (red). The rectangle is smaller than the viewport, because a previous version of the SVG spec had the
+ default value be 'viewport'. The test fails if only a portion of the gradient is shown.
+ </p>
+ <p>The next rectangle uses gradientUnits=objectBoundingBox. The linear gradient should travel from blue (top) to red (bottom).</p>
+ <p>
+ The last rectangle uses gradientUnits=userSpaceOnUse. The rectangle element is given it's own transformation and the
+ gradient is assumed to be in this user space. The gradient should appear as a linear gradient from red (left) to blue
+ (right).
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly, except for possible variations in the labelling text
+ (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="15" x="10" y="25">Testing gradientUnits attribute</text>
+ <!-- ====================================================================== -->
+ <!-- Linear gradient with default attributes on <linear gradient> element. -->
+ <!-- ====================================================================== -->
+ <linearGradient xml:id="Grad1">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="blue" offset="1" />
+ </linearGradient>
+ <rect x="125" y="35" width="200" height="50" fill="url(#Grad1)" />
+ <text font-size="12" x="10" y="100">Linear gradient with default attributes (thus, same as objectBoundingBox)</text>
+ <!--text font-family="Arial" font-size="12" x="10" y="125">Gradient is from the viewport left edge (red) to viewport right edge (blue)</text-->
+ <text font-size="12" x="10" y="115">Gradient is from the object left edge (red) to object right edge (blue)</text>
+ <!-- ====================================================================== -->
+ <!-- Linear gradient with gradientUnits=objectBoundingBox ======== -->
+ <!-- ====================================================================== -->
+ <linearGradient xml:id="Grad2" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="0" y2="1">
+ <stop stop-color="blue" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </linearGradient>
+ <rect x="10" y="125" width="430" height="50" fill="url(#Grad2)" />
+ <text font-size="12" x="10" y="190">gradientUnits=objectBoundingBox</text>
+ <text font-size="12" x="10" y="205">Gradient is from the object top edge (blue) to object bottom edge (red)</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient using gradientUnits="userSpaceOnUse" -->
+ <!-- ====================================================================== -->
+ <linearGradient xml:id="Grad3" x1="0" y1="0" x2="0" y2="430" gradientUnits="userSpaceOnUse">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="blue" offset="1" />
+ </linearGradient>
+ <rect transform="translate(10, 260) rotate(-90)" x="0" y="0" width="50" height="430" fill="url(#Grad3)" />
+ <text font-size="12" x="10" y="275">gradientUnits=userSpaceOnUse</text>
+ <text font-size="12" x="10" y="290">Gradient is from the object left edge (red) to object right edge (blue)</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-11-t.png b/test/svg/svg1.2/svg/paint-grad-11-t.png
new file mode 100644
index 0000000..d47f9e8
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-11-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-11-t.svg b/test/svg/svg1.2/svg/paint-grad-11-t.svg
new file mode 100644
index 0000000..de0e835
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-11-t.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="HS" desc="Test that the viewer has basic capability to handle radial gradients on fills and stroke of objects and text. This means it needs to understand the following elements : <radialGradient>, <stop> and the following properties : stop-color, fill:url(# ), stroke(url# )" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: paint-grad-11-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test that the viewer has basic capability to handle radial gradients on fills and stroke of objects and text.</p>
+ <p>
+ This test uses the following elements : <radialGradient>, <stop> and the following properties : stop-color,
+ fill:url(# ), stroke(url# )
+ </p>
+ <p>From top-down (left to right) the appearance of objects is as follows.</p>
+ <p>
+ The top left rectangle should be a radial gradient from black(in) to red(outside). The gradiant is applied to the
+ fill of the rectangle.
+ </p>
+ <p>
+ The next rectangle has no fill, but has a thick stroke on which the gradient is applied. The gradient goes from
+ red(in) to yellow (out).
+ </p>
+ <p>The next item is a text with a radial gradient on the fill. The gradient goes from black (in) to yellow (out).</p>
+ <p>The last item is a text with a 2 user unit stroke on which a black (in) to red (out) linear gradient is applied.</p>
+ <p>
+ The rendered picture should match the reference image exactly, except for possible variations in the labelling text
+ (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-11-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Very simple black to red radial gradient ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient gradientUnits="userSpaceOnUse" xml:id="Grad1" cx="75" cy="100" r="130">
+ <stop stop-color="black" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </radialGradient>
+ <rect x="10" y="10" width="210" height="140" fill="url(#Grad1)" />
+ <text font-size="12" x="10" y="165">Radial gradient on fill of rectangle</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient on the stroke of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient xml:id="Grad2" gradientUnits="userSpaceOnUse" cx="295" cy="100" r="150">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="yellow" offset="1" />
+ </radialGradient>
+ <rect x="250" y="30" width="170" height="100" fill="none" stroke="url(#Grad2)" stroke-width="40" />
+ <text font-size="12" x="230" y="165">Radial gradient on stroke of rectangle</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient on fill of text ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient xml:id="Grad3" gradientUnits="userSpaceOnUse" cx="225" cy="180" r="90">
+ <stop stop-color="black" offset="0" />
+ <stop stop-color="yellow" offset="1" />
+ </radialGradient>
+ <text font-size="50" fill="url(#Grad3)" x="10" y="210">Gradient on text fill</text>
+ <text font-size="12" x="10" y="225">Radial gradient on text, black to yellow</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient on stroke of text ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient xml:id="Grad4" gradientUnits="userSpaceOnUse" cx="225" cy="245" r="90">
+ <stop stop-color="black" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </radialGradient>
+ <text font-size="45" fill="none" stroke="url(#Grad4)" stroke-width="2" x="10" y="270">Gradient on text stroke</text>
+ <text font-size="12" x="10" y="285">Radial gradient on stroke of text, black to red</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-12-t.png b/test/svg/svg1.2/svg/paint-grad-12-t.png
new file mode 100644
index 0000000..b1b7032
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-12-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-12-t.svg b/test/svg/svg1.2/svg/paint-grad-12-t.svg
new file mode 100644
index 0000000..965d356
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-12-t.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="HS" desc="Test that the viewer can handle the gradientUnits attribute on radial gradients." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: paint-grad-12-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test that the viewer can handle the gradientUnits attribute on radial gradients. It tests the following values of
+ gradientUnits : default (objectBoundingBox), objectBoundingBox, and userSpaceOnUse.
+ </p>
+ <p>From top-down the appearance of objects is as follows.</p>
+ <p>
+ The first rectangle uses the default attributes on the radialGradient element. Therefore the radial gradient should
+ be relative to the object bounding box. It should appear from the center of the viewport (blue) to the edges of the
+ viewport (red). The rectangle is wider than tall so it the gradient should be elliptical, not circular.
+ </p>
+ <p>
+ The next rectangle uses gradientUnits=objectBoundingBox. The radial gradient should travel from a center of 20%, 20%
+ of the rectangle with a radius of 50%.
+ </p>
+ <p>
+ The last rectangle uses gradientUnits=userSpaceOnUse. The rectangle element is given it's own transformation and the
+ gradient is assumed to be in this user space. The gradient should appear in the center of the rectangle as a radial
+ gradient from red (center) to blue (edge).
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly, except for possible variations in the labelling text
+ (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-12-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="15" x="10" y="25">Testing gradientUnits attribute</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient with default attributes on <radial gradient> element. -->
+ <!-- ====================================================================== -->
+ <radialGradient xml:id="Grad1">
+ <stop stop-color="blue" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </radialGradient>
+ <rect x="10" y="35" width="460" height="50" fill="url(#Grad1)" />
+ <text font-size="12" x="10" y="100">Radial gradient with default attributes (from blue to red)</text>
+ <text font-size="12" x="10" y="115">Gradient is blue at the object center and red at the object edges</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient with gradientUnits=objectBoundingBox ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient xml:id="Grad2" gradientUnits="objectBoundingBox" cx=".2" cy=".2" r=".5">
+ <stop stop-color="blue" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </radialGradient>
+ <rect x="10" y="125" width="460" height="50" fill="url(#Grad2)" />
+ <text font-size="12" x="10" y="190">gradientUnits=objectBoundingBox</text>
+ <text font-size="12" x="10" y="205">cx=.2, cy=.2, r=.5</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient using gradientUnits="userSpaceOnUse" -->
+ <!-- ====================================================================== -->
+ <radialGradient xml:id="Grad3" cx="25" cy="215" r="25" gradientUnits="userSpaceOnUse">
+ <stop stop-color="red" offset="0" />
+ <stop stop-color="blue" offset="1" />
+ </radialGradient>
+ <rect transform="translate(10, 260) rotate(-90)" x="0" y="0" width="50" height="460" fill="url(#Grad3)" />
+ <text font-size="12" x="10" y="275">gradientUnits=userSpaceOnUse</text>
+ <text font-size="12" x="10" y="290">Gradient is red to blue radial gradiant from center to horizontal bounds</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-15-t.png b/test/svg/svg1.2/svg/paint-grad-15-t.png
new file mode 100644
index 0000000..3109116
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-15-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-15-t.svg b/test/svg/svg1.2/svg/paint-grad-15-t.svg
new file mode 100644
index 0000000..1605523
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-15-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test linear and radial gradient defaults." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-grad-15-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test linear and radial gradient defaults. Includes testing defaults for linear grad x1,y1,y2 = 0.0, x2 = 1.0 and
+ testing defaults for radial grad cx,cy,r = 0.5
+ </p>
+ <p>
+ The top rectangle must be blue at the lefthand side and red at the right hand side, fading smoothly accross. The
+ lower rectangle must be red at the edges with a black centre to the radial gradient at the centre of the
+ rectangle, and the gradient occupying the whole rectangle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-15-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Test defaults for linear grad x1,y1,y2 = 0, x2 = 1 -->
+ <linearGradient xml:id="defs1" gradientUnits="objectBoundingBox">
+ <stop stop-color="blue" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </linearGradient>
+ <!-- Test defaults for radial grad cx,cy,r = 0.5 -->
+ <radialGradient xml:id="defs2" gradientUnits="objectBoundingBox">
+ <stop stop-color="black" offset="0" />
+ <stop stop-color="red" offset="1" />
+ </radialGradient>
+ <rect x="20" y="20" width="440" height="80" fill="url(#defs1)" />
+ <rect x="20" y="150" width="440" height="80" fill="url(#defs2)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-16-t.png b/test/svg/svg1.2/svg/paint-grad-16-t.png
new file mode 100644
index 0000000..2febd9c
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-16-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-16-t.svg b/test/svg/svg1.2/svg/paint-grad-16-t.svg
new file mode 100644
index 0000000..05b5714
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-16-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test gradient stop rules." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: paint-grad-16-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test gradient stop rules. Including: No stops, like fill = none. One stop, like fill = black. If a stop less than
+ all previous stops, it is set equal to the largest stop. If two stops are equal the last stop controls the color
+ at the overlap point.
+ </p>
+ <p>
+ The top rectangle must have a red outline and no fill. The middle rectangle must have a solid black fill. The
+ lower rectangle must have a yellow to red to green linear gradient on the left-hand half and a solid blue fill
+ for the right hand half.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-16-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- No stops, like fill = none -->
+ <linearGradient xml:id="defs1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0"> </linearGradient>
+ <!-- One stop, like fill = black -->
+ <linearGradient xml:id="defs2" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="black" offset="1" />
+ </linearGradient>
+ <!-- If a stop less than all previous stops, it is set equal to the largest stop-->
+ <!-- This also tests if two stops are equal the last stop controls the color at the overlap point-->
+ <linearGradient xml:id="defs3" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="yellow" offset="0" />
+ <stop stop-color="red" offset=".25" />
+ <stop stop-color="green" offset=".5" />
+ <stop stop-color="blue" offset=".1" />
+ </linearGradient>
+ <rect x="20" y="10" width="440" height="80" fill="url(#defs1)" stroke="red" />
+ <rect x="20" y="110" width="440" height="80" fill="url(#defs2)" />
+ <rect x="20" y="210" width="440" height="80" fill="url(#defs3)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-17-t.png b/test/svg/svg1.2/svg/paint-grad-17-t.png
new file mode 100644
index 0000000..1215364
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-17-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-17-t.svg b/test/svg/svg1.2/svg/paint-grad-17-t.svg
new file mode 100644
index 0000000..b2e73ba
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-17-t.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test that checks that a gradient with objectBoundingBox is not applied on an element without width or height." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: paint-grad-17-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test has a gradient with gradientUnits='objectBoundingBox' which is a fade from black to white. The gradient
+ is used for the stroke of a line. Vertical and horizontal lines don't have a boundingbox, since they are
+ one-dimensional, even though the stroke-width makes it look like they should have a boundingbox with non-zero width
+ and height. See the coordinate chapter, last paragraph of 7.12.
+ </p>
+ <p>
+ The left rectangle has four 'line' elements rotated in different ways. The stroke for the lines have a green solid
+ stroke fallback which should be used if the gradient should be ignored. For this sub-test to pass there must be
+ three lines with solid green stroke, and one line (from bottom left to top right) with a gradient stroke, visible
+ in the rectangle.
+ </p>
+ <p>
+ The right rectangle is the same as the left rectangle except that the stroke paintservers don't have a fallback
+ specified. For this sub-test to pass only the line from bottom left to top right must be visible in the rectangle,
+ and it must have a gradient stroke.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-17-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient xml:id="grad">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-color="white" />
+ </linearGradient>
+ </defs>
+ <!-- sub-test 1: stroke with solid color fallback -->
+ <g transform="translate(50, 100) scale(0.3)">
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad) #070" stroke-width="20" />
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad) #070" stroke-width="20" transform="rotate(45 240 180)" />
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad) #070" stroke-width="20" transform="rotate(90 240 180)" />
+ <line x1="410" y1="10" x2="70" y2="350" stroke="url(#grad) #070" stroke-width="20" />
+ <rect x="0" y="-60" width="480" height="480" fill="none" stroke="black" />
+ </g>
+ <text x="120" y="250" text-anchor="middle">With fallback</text>
+ <!-- sub-test 2: stroke without a fallback -->
+ <g transform="translate(280,100) scale(0.3)">
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad)" stroke-width="20" />
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad)" stroke-width="20" transform="rotate(45 240 180)" />
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad)" stroke-width="20" transform="rotate(90 240 180)" />
+ <line x1="410" y1="10" x2="70" y2="350" stroke="url(#grad)" stroke-width="20" />
+ <rect x="0" y="-60" width="480" height="480" fill="none" stroke="black" />
+ </g>
+ <text x="350" y="250" text-anchor="middle">Without fallback</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-18-t.png b/test/svg/svg1.2/svg/paint-grad-18-t.png
new file mode 100644
index 0000000..068dbc7
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-18-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-18-t.svg b/test/svg/svg1.2/svg/paint-grad-18-t.svg
new file mode 100644
index 0000000..b01bf2f
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-18-t.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CC" desc="Tests inherit and currentColor on gradient stops" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: paint-grad-18-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test shows rectangles filled with gradient. Several gradients are defined, with two stops:</p>
+ <p>For the top-left rectangle's gradient: The first stop defines a fully-opaque green color. The second stop explicitly inherits (i.e. using the 'inherit' keyword) its stop-color. The result should be that the top-left rectangle is filled with a gradient from green to red since the stop-color is inherited from the location of the gradient definition.</p>
+ <p>For the top-right rectangle's gradient: The first stop defines a fully-opaque green color. The second stop defines a green stop-color but explicitly inherits (i.e. using the 'inherit' keyword) the stop-opacity. The result should be that the top-right rectangle filled in green with a gradient opacity.</p>
+ <p>For the bottom-left rectangle's gradient: The first stop defines a fully-opaque green color. The second stop does not specify the stop-color and the stop-opacity. Since both properties are not inherited, the initial value should be used. The result should be that the lower-left rectangle filled with a gradient going from fully-opaque green to fully-opaque black.</p>
+ <p>For the bottom-right rectangle's gradient: The first stop defines a fully-opaque green color. The second stop specifies the stop-color using the 'currentColor' keyword. The result should be that the lower-right rectangle filled with a gradient going from fully-opaque green to fully-opaque yellow.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-18-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="g0" stop-color="red" stop-opacity="0.5" color="yellow">
+ <linearGradient xml:id="MyGradient1" stop-color="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" stop-color="inherit" stop-opacity="1" />
+ </linearGradient>
+ <linearGradient xml:id="MyGradient2" stop-opacity="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" stop-color="green" stop-opacity="inherit" />
+ </linearGradient>
+ <linearGradient xml:id="MyGradient3">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" />
+ </linearGradient>
+ <linearGradient xml:id="MyGradient4">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" stop-color="currentColor" stop-opacity="1" />
+ </linearGradient>
+ </g>
+ <g xml:id="g1" stop-color="blue">
+ <rect xml:id="r1" fill="url(#MyGradient1)" width="100" height="100" x="50" y="50" />
+ </g>
+ <g xml:id="g2" stop-opacity="1">
+ <rect xml:id="r2" fill="url(#MyGradient2)" width="100" height="100" x="200" y="50" />
+ </g>
+ <g xml:id="g3" stop-opacity="1" stop-color="blue">
+ <rect xml:id="r3" fill="url(#MyGradient3)" width="100" height="100" x="50" y="200" />
+ </g>
+ <g xml:id="g4" color="blue">
+ <rect xml:id="r4" fill="url(#MyGradient4)" width="100" height="100" x="200" y="200" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-19-t.png b/test/svg/svg1.2/svg/paint-grad-19-t.png
new file mode 100644
index 0000000..428e244
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-19-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-19-t.svg b/test/svg/svg1.2/svg/paint-grad-19-t.svg
new file mode 100644
index 0000000..675cd5a
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-19-t.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CC" desc="Tests animation of gradients" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: paint-grad-19-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test shows rectangles filled with animated gradient which inherits some of their properties: stop-color, stop-opacity.
+ The correct result must show: - the top-left rectangle filled initially with a linear green-to-red gradient and turning into
+ a solid green color after 5s. - the top-right rectangle filled initially with a green gradient fully opaque on the left and
+ half transparent on the right, but after 5s the rectangle must be filled with a fully opaque solid green. - the bottom-left
+ rectangle filled with a static green-to-black opaque gradient - the bottom-right rectangle initially filled with a green-to-yellow
+ fully-opaque gradient animated and turning into a fully-opaque green solid color. Animations numbered a4 to a7 must have no impact.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-19-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g display="none">
+ <g xml:id="g0" stop-color="yellow" stop-opacity="0" color="yellow">
+ <animateColor xml:id="a1" attributeName="stop-color" from="red" to="green" dur="5" fill="freeze" />
+ <animateColor xml:id="a2" attributeName="color" from="yellow" to="green" dur="5" fill="freeze" />
+ <animate xml:id="a3" attributeName="stop-opacity" from="0.5" to="1" dur="5" fill="freeze" />
+ <linearGradient xml:id="MyGradient1" stop-color="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" stop-color="inherit" stop-opacity="1" />
+ </linearGradient>
+ <linearGradient xml:id="MyGradient2" stop-opacity="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" stop-color="green" stop-opacity="inherit" />
+ </linearGradient>
+ <g xml:id="g01">
+ <linearGradient xml:id="MyGradient3">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" />
+ </linearGradient>
+ <linearGradient xml:id="MyGradient4">
+ <stop offset="0" stop-color="green" stop-opacity="1" />
+ <stop offset="1" stop-color="currentColor" stop-opacity="1" />
+ </linearGradient>
+ </g>
+ </g>
+ </g>
+ <g xml:id="g1" stop-color="blue">
+ <animateColor xml:id="a4" attributeName="stop-color" from="blue" to="red" dur="5" fill="freeze" />
+ <rect xml:id="r1" fill="url(#MyGradient1)" width="100" height="100" x="50" y="50" />
+ </g>
+ <g xml:id="g2" stop-opacity="1">
+ <animate xml:id="a5" attributeName="stop-opacity" from="1" to="0" dur="5" fill="freeze" />
+ <rect xml:id="r2" fill="url(#MyGradient2)" width="100" height="100" x="200" y="50" />
+ </g>
+ <g xml:id="g3" stop-opacity="1" stop-color="blue">
+ <animateColor xml:id="a6" attributeName="stop-color" from="blue" to="red" dur="5" fill="freeze" />
+ <animate xml:id="a7" attributeName="stop-opacity" from="1" to="0" dur="5" fill="freeze" />
+ <rect xml:id="r3" fill="url(#MyGradient3)" width="100" height="100" x="50" y="200" />
+ </g>
+ <g xml:id="g4" color="blue">
+ <animateColor xml:id="a7" attributeName="color" from="blue" to="red" dur="5" fill="freeze" />
+ <rect xml:id="r4" fill="url(#MyGradient4)" width="100" height="100" x="200" y="200" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-201-t.png b/test/svg/svg1.2/svg/paint-grad-201-t.png
new file mode 100644
index 0000000..e5cfc6d
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-201-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-201-t.svg b/test/svg/svg1.2/svg/paint-grad-201-t.svg
new file mode 100644
index 0000000..d672218
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-201-t.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AE" desc="Test Stop Opacity Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-grad-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test Stop Opacity Attribute</p>
+ <p>
+ A linearGradient is defined with a stop-opacity of 0 that is also animated from 0 to 1 (clear to solid).
+ The yellow star must initially be visible through the gradient. After 5 seconds most of the start must
+ be covered by the linearGradient.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" x="240" y="30" font-size="14" fill="#000">Stop Opacity Attribute</text>
+ <text xml:id="comment-1" x="240" y="45">
+ The 'stop-opacity' attribute is animated from 0 to 1 (clear to solid).
+ </text>
+ </g>
+ <defs>
+ <linearGradient xml:id="simpleGrad">
+ <stop offset="0" stop-color="fuchsia"/>
+ <stop offset="0.35" stop-color="yellow" stop-opacity="0">
+ <animate attributeName="stop-opacity" from="0" to="1" begin="1s" dur="5s" fill="freeze"/>
+ </stop>
+ <stop offset="0.70" stop-color="green" stop-opacity="0">
+ <animate attributeName="stop-opacity" from="0" to="1" begin="1s" dur="5s" fill="freeze"/>
+ </stop>
+ <stop offset="1" stop-color="aqua"/>
+ </linearGradient>
+ </defs>
+ <line stroke="red" x1="240" x2="240" y1="0" y2="300" visibility="hidden"/>
+ <g transform="scale(0.9), translate(27,40)">
+ <polygon transform="translate(-110,-35)" fill="yellow" stroke="red" stroke-width="8" points="350,75 379,161 469,161 397,215
+ 423,301 350,250 277,301 303,215
+ 231,161 321,161"/>
+ <rect x="90" y="60" width="300" height="180" stroke="black" stroke-width="1" fill="url(#simpleGrad)"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-202-t.png b/test/svg/svg1.2/svg/paint-grad-202-t.png
new file mode 100644
index 0000000..6952157
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-202-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-202-t.svg b/test/svg/svg1.2/svg/paint-grad-202-t.svg
new file mode 100644
index 0000000..77c7748
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-202-t.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" standalone="no"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="AE" desc="Stop Opacity Attribute with Text" status="accepted"
+ approved="yes"
+ testname="$RCSfile: paint-grad-202-t.svg,v $" version="$Revision: 1.7 $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Stop Opacity Attribute with Text</p>
+ <p>
+ There are three lines of text. For this test to pass each line of text must have the same gradient
+ from green to blue all set to a 'stop-opacity' of 0.4 . The reference rect at the bottom has a
+ similar gradient but with 'stop-opacity set to 1. The text of the poem should be lighter than
+ the reference line.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="#555" text-anchor="middle">
+ <text fill="#000" x="240" y="30" xml:id="display-title">Stop Opacity Attribute with Text</text>
+ <g font-size="14">
+ <text x="240" y="50" xml:id="comment-1">All three lines of text must have the same transparent gradient - </text>
+ <text x="240" y="65" xml:id="comment-2">from green to blue, set at 0.4 'stop-opacity'. The reference rect at</text>
+ <text x="240" y="80" xml:id="comment-3">the bottom has a similar gradient but with 'stop-opacity set to 1.</text>
+ </g>
+ </g>
+ <defs>
+ <linearGradient xml:id="LinearGrad-transparent-z">
+ <stop stop-opacity="0.4" stop-color="green" offset="0.03"/>
+ <stop stop-opacity="0.4" stop-color="blue" offset="0.40"/>
+ <stop stop-opacity="0.4" stop-color="fuchsia" offset="0.66"/>
+ <stop stop-opacity="0.4" stop-color="purple" offset="0.98"/>
+ </linearGradient>
+ <linearGradient xml:id="LinearGrad-transparent">
+ <stop stop-opacity="0.4" stop-color="green" offset="0.43"/>
+ <stop stop-opacity="0.4" stop-color="blue" offset="0.98"/>
+ </linearGradient>
+ <linearGradient xml:id="LinearGrad-opaque">
+ <stop stop-opacity="1" stop-color="green" offset="0.43"/>
+ <stop stop-opacity="1" stop-color="blue" offset="0.98"/>
+ </linearGradient>
+ <g xml:id="poem">
+ <text x="0" y="0">old pond</text>
+ <text x="0" y="30">a frog leaps in -</text>
+ <text x="0" y="60">a moment after, silence</text>
+ </g>
+ </defs>
+ <use font-size="32" x="60" y="140" fill-opacity="1" fill="url(#LinearGrad-transparent)" xlink:href="#poem"/>
+ <rect x="60" y="217" width="360" height="15" fill="url(#LinearGrad-opaque)"/>
+ <rect x="15" y="217" width="450" height="15" fill="url(#LinearGrad-opaque)"/>
+ <text x="450" fill="#555" font-size="8" y="270" text-anchor="end">Frog Haiku by Matsuo Basho (1686), translated by Ross Figgins</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-203-t.png b/test/svg/svg1.2/svg/paint-grad-203-t.png
new file mode 100644
index 0000000..c0e0e36
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-203-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-203-t.svg b/test/svg/svg1.2/svg/paint-grad-203-t.svg
new file mode 100644
index 0000000..351e337
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-203-t.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="ASl" desc="Gradients with different gradientUnits " status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-grad-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on gradients with gradientUnits set. There are two rects, one using a gradient with gradientUnits set to "objectBoundingBox" and one with "userSpaceOnUse". Both rects contain a smaller rect to visualise the use of gradientUnits.
+ In the top rect, the small one should appear as a smaller version of the big rect.
+ In the bottom rect, the small one should just as a "frame" on the big rect.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient xml:id="MyGradient1" gradientUnits="objectBoundingBox"
+ x1="0" y1="0" x2="1" y2="0">
+ <stop offset="0.05" stop-color="#FF0000" />
+ <stop offset="0.5" stop-color="#FFFF00" />
+ <stop offset="0.95" stop-color="#FF0000" />
+ </linearGradient>
+
+ <linearGradient xml:id="MyGradient2" gradientUnits="userSpaceOnUse"
+ x1="50" y1="170" x2="350" y2="170">
+ <stop offset="0.05" stop-color="#FF0000" />
+ <stop offset="0.5" stop-color="#FFFF00" />
+ <stop offset="0.95" stop-color="#FF0000" />
+ </linearGradient>
+ </defs>
+
+ <rect fill="url(#MyGradient1)" stroke="black" stroke-width="2"
+ x="50" y="10" width="300" height="100"/>
+
+ <rect fill="url(#MyGradient1)" stroke="black" stroke-opacity="0.5" stroke-width="3"
+ x="60" y="20" width="100" height="40"/>
+
+ <rect fill="url(#MyGradient2)" stroke="black" stroke-width="2"
+ x="50" y="170" width="300" height="100"/>
+
+ <rect fill="url(#MyGradient2)" stroke="black" stroke-opacity="0.5" stroke-width="3"
+ x="60" y="180" width="100" height="40"/>
+
+ <text x="50" y="130" font-size="20">gradientUnits="objectBoundingBox" (default)</text>
+ <text x="50" y="290" font-size="20">gradientUnits="userSpaceOnUse" </text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-204-t.png b/test/svg/svg1.2/svg/paint-grad-204-t.png
new file mode 100644
index 0000000..c4e27d8
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-204-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-204-t.svg b/test/svg/svg1.2/svg/paint-grad-204-t.svg
new file mode 100644
index 0000000..2397859
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-204-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="ASl" desc="LinearGradient with only one stop-color" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: paint-grad-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Gradient with only one stop-color. This test is passed if the fill of
+ the rect on the right is identical to the fill of the rect on the left.
+ </p>
+ <p>
+ For gradients with only a single stop-color the painting shall occur
+ with the solid color fill using the color defined for the gradient stop.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient x1="130" y1="50" x2="330" y2="250" xml:id="MyGradient" gradientUnits="userSpaceOnUse">
+ <stop stop-color="#F60" stop-opacity="0.5"/>
+ </linearGradient>
+ </defs>
+
+ <rect fill="url(#MyGradient)" stroke="black" stroke-width="2" x="60" y="60" width="150" height="150"/>
+ <text x="40" y="230">Gradient with one stop</text>
+
+ <rect fill="#F60" fill-opacity="0.5" stroke="black" stroke-width="2" x="270" y="60" width="150" height="150"/>
+ <text x="300" y="230">Reference</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-grad-205-t.png b/test/svg/svg1.2/svg/paint-grad-205-t.png
new file mode 100644
index 0000000..834c91d
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-grad-205-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-grad-205-t.svg b/test/svg/svg1.2/svg/paint-grad-205-t.svg
new file mode 100644
index 0000000..cf1cb60
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-grad-205-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="ASl" desc="LinearGradient with no stop-color" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-grad-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Gradient with no stop-elements. The painting shall occur as if 'none' were specified
+ as the paint style, thus allowing the pale blue rectangle to be seen inside the square.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-grad-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <linearGradient x1="130" y1="50" x2="330" y2="250" xml:id="MyGradient" gradientUnits="userSpaceOnUse" />
+ </defs>
+ <rect width="300" height="100" x="80" y="100" fill="#6CF"/>
+ <rect fill="url(#MyGradient)" stroke="black" stroke-width="2" x="130" y="50" width="200" height="200"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-nsstroke-201-t.png b/test/svg/svg1.2/svg/paint-nsstroke-201-t.png
new file mode 100644
index 0000000..b1ec678
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-nsstroke-201-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-nsstroke-201-t.svg b/test/svg/svg1.2/svg/paint-nsstroke-201-t.svg
new file mode 100644
index 0000000..f2236c8
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-nsstroke-201-t.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="AE" desc="Non-scaling Stroke" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-nsstroke-201-t.svg,v $" >
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Non-scaling Stroke</p>
+ <p>Testing non-scaling-stroke on basic shapes and text.</p>
+ <p>The bottom shapes - triangle and oval - also have a gradient applied to the outline stroke.</p>
+ <p>
+ At the start the two sets of shapes may not appear identical - depending on viewport size.
+ As the geometric shapes are zoomed out the outline strokes of the left-hand set of shapes
+ should remain fixed while the strokes of the right-hand set should scale in proportion to the shapes.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-nsstroke-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle" font-size="10" fill="#555" >
+ <text xml:id="comment-3" x="240" y="57">As the geometric shapes are zoomed out the outline strokes of the left-hand set of shapes</text>
+ <text xml:id="comment-4" x="240" y="69">should remain fixed while the strokes of the right-hand set should scale in proportion to the shapes.</text>
+ </g>
+ <defs>
+ <linearGradient xml:id="MyGradient">
+ <stop stop-color="#F60" offset="0.5"/>
+ <stop stop-color="#FF6" offset="0.95"/>
+ </linearGradient>
+ <radialGradient xml:id="MyRGradient">
+ <stop stop-color="green" offset="0"/>
+ <stop stop-color="blue" offset="0.5"/>
+ <stop stop-color="green" offset="1.0"/>
+ </radialGradient>
+ </defs>
+ <g transform="translate(0,40)">
+ <circle fill="red" r="25" cx="90.0" cy="88" stroke="black" stroke-width="20" vector-effect="non-scaling-stroke"/>
+ <circle fill="red" r="25" cx="295.0" cy="88" stroke="black" stroke-width="20"/>
+ <rect x="140" y="68" fill="red" width="80" height="45" stroke="blue" stroke-width="1" vector-effect="non-scaling-stroke"/>
+ <text x="180" y="97" font-size="18" fill="#555" text-anchor="middle" stroke="blue" stroke-width="2" vector-effect="non-scaling-stroke">ABCDE</text>
+ <rect x="345" y="68" fill="red" width="80" height="45" stroke="blue" stroke-width="1"/>
+ <text x="385" y="97" font-size="18" fill="#555" text-anchor="middle" stroke="blue" stroke-width="2">ABCDE</text>
+ <ellipse fill="red" rx="35" cx="180.0" ry="25" cy="160" stroke="url(#MyGradient)" stroke-width="20" vector-effect="non-scaling-stroke"/>
+ <ellipse fill="red" rx="35" cx="385.0" ry="25" cy="160" stroke="url(#MyGradient)" stroke-width="20"/>
+ <path fill="red" stroke-width="15" d="M 125.0 192.5 L 45.8 192.5 L 85.8 142.5 z" stroke="url(#MyRGradient)" vector-effect="non-scaling-stroke"/>
+ <path fill="red" stroke-width="15" d="M 332.2 192.5 L 253.0 192.5 L 293.0 142.5 z" stroke="url(#MyRGradient)"/>
+ <animateTransform type="scale" dur="5s" fill="freeze" values="1;0.2;1;3;1" repeatCount="1" begin="1s" attributeName="transform" additive="sum" attributeType="XML"/>
+ <animateTransform type="rotate" dur="5s" fill="freeze" values="0 300 400; 360 0 0" repeatCount="1" begin="1s" attributeName="transform" additive="sum" attributeType="XML"/>
+ </g>
+ <g font-size="16" fill="#555" text-anchor="middle" stroke="blue" stroke-width="0" >
+ <text x="126.0" y="265" vector-effect="non-scaling-stroke">Non-Scaling Stroke</text>
+ <text x="340.0" y="265">Scaling Stroke</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-nsstroke-203-t.png b/test/svg/svg1.2/svg/paint-nsstroke-203-t.png
new file mode 100644
index 0000000..caed69f
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-nsstroke-203-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-nsstroke-203-t.svg b/test/svg/svg1.2/svg/paint-nsstroke-203-t.svg
new file mode 100644
index 0000000..3b63163
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-nsstroke-203-t.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="AE" desc="Non-scaling Stroke" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-nsstroke-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Non-scaling Stroke</p>
+ <p>Testing "non-scaling-stroke" on basic shapes with "animate" and "animateTranform".</p>
+ <p>The animation should run indefinitely.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-nsstroke-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g>
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" x="240" y="30" font-size="14" fill="#000">Non-scaling Stroke</text>
+ <text xml:id="comment-1" x="240" y="45">
+ The 'vector-effect' is set to 'non-scaling' on the geometric shapes used in this kaleidoscope.
+ </text>
+ <text xml:id="comment-2" x="240" y="57">
+ The animation should run indefinitely.
+ </text>
+ </g>
+ </g>
+ <defs>
+ <g xml:id="group1">
+ <g>
+ <rect xml:id="bluesquare" x="-40" y="-40" width="20" height="20" fill="#00f" stroke="black" stroke-width="2" vector-effect="non-scaling-stroke" fill-opacity="0.5" stroke-opacity="0.5">
+ <animateTransform attributeName="transform" type="rotate" begin="0s" dur="5s" values="0;359" repeatCount="indefinite" accumulate="none" additive="replace" calcMode="linear" fill="remove" restart="always"/>
+ <animateColor attributeName="fill" begin="0s" dur="5s" values="#00f;#0f0;#f00;#ff0;#0f0;#00f" fill="remove" repeatCount="indefinite"/>
+ <animateColor attributeName="stroke" begin="0s" dur="5s" values="#000;#080;#0f0;#080;#040;#000" fill="remove" repeatCount="indefinite"/>
+ </rect>
+ <animateTransform attributeName="transform" type="translate" begin="0s" dur="3s" values="-10,0;50,-10" repeatCount="indefinite" accumulate="none" additive="replace" calcMode="linear" fill="remove" restart="always"/>
+ </g>
+ <g>
+ <rect xml:id="tall" x="0" y="0" width="10" height="40" fill="#f60" stroke="blue" stroke-width="10" vector-effect="non-scaling-stroke" fill-opacity="0.6" stroke-opacity="0.6">
+ <animateTransform attributeName="transform" type="rotate" begin="1s" dur="3s" values="0;359" repeatCount="indefinite" accumulate="none" additive="replace" calcMode="linear" fill="remove" restart="always"/>
+ <animateColor attributeName="fill" begin="0s" dur="5s" values="#f60;#f00;#00f;#0ff;#f60" fill="remove" repeatCount="indefinite"/>
+ </rect>
+ <animateTransform attributeName="transform" type="translate" begin="1s" dur="3s" values="75,20;-10,0" repeatCount="indefinite" accumulate="none" additive="replace" calcMode="linear" fill="remove" restart="always"/>
+ </g>
+ <g>
+ <polygon xml:id="polygon1" points="0 0 5 0 15 30 0 20" fill="#0fc" stroke="red" stroke-width="1" vector-effect="non-scaling-stroke" fill-opacity="0.4" stroke-opacity="0.4">
+ <animateTransform attributeName="transform" type="rotate" begin="3s" dur="5s" values="0;359" repeatCount="indefinite" accumulate="none" additive="replace" calcMode="linear" fill="remove" restart="always"/>
+ <animateColor attributeName="fill" begin="0s" dur="5s" values="#0fc;#ff0;#f00;#0f0;#0fc" fill="remove" repeatCount="indefinite"/>
+ </polygon>
+ <animateTransform attributeName="transform" type="translate" begin="2s" dur="2s" values="40,0;40,10" repeatCount="indefinite" accumulate="none" additive="replace" calcMode="linear" fill="remove" restart="always"/>
+ </g>
+ </g>
+ </defs>
+ <g transform="translate(240,170) scale(2)">
+ <g transform="rotate(0)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ <g transform="rotate(45)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ <g transform="rotate(90)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ <g transform="rotate(135)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ <g transform="rotate(180)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ <g transform="rotate(225)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ <g transform="rotate(270)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ <g transform="rotate(315)">
+ <use xlink:href="#group1"/>
+ <use xlink:href="#group1" transform="scale(1,-1)"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-other-201-t.png b/test/svg/svg1.2/svg/paint-other-201-t.png
new file mode 100644
index 0000000..a5b89e5
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-other-201-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-other-201-t.svg b/test/svg/svg1.2/svg/paint-other-201-t.svg
new file mode 100644
index 0000000..7ef0592
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-other-201-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="AE" desc="Test solidColor paint server." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-other-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test solidColor paint server with 'solid-opacity' attribute.</p>
+ <p>
+ There are three 'solidColor' definitions - red, green, blue.
+ These are used for both the fill and outlines of the rectangle and circle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-other-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" x="240" y="30" font-size="14" fill="#000">Solid Color Paint Server</text>
+ <text xml:id="comment-1" x="240" y="45">
+ There are three 'solidColor' definitions - red, green, blue.
+ </text>
+ <text xml:id="comment-2" x="240" y="57">
+ These are used for both the fill and outlines of the rectangle and circle.
+ </text>
+ </g>
+ <defs>
+ <solidColor xml:id="solidRed" solid-color="red"/>
+ <solidColor xml:id="solidGreen" solid-color="green"/>
+ <solidColor xml:id="solidBlue" solid-color="blue"/>
+ </defs>
+ <g transform="scale(0.85),translate(43,40)">
+ <rect x="190" y="50" width="180" height="220" fill="url(#solidRed)" stroke="url(#solidBlue)" stroke-width="12"/>
+ <circle cx="190" cy="160" r="80" fill="none" stroke="url(#solidGreen)" stroke-width="20"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-other-203-t.png b/test/svg/svg1.2/svg/paint-other-203-t.png
new file mode 100644
index 0000000..eb2fe85
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-other-203-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-other-203-t.svg b/test/svg/svg1.2/svg/paint-other-203-t.svg
new file mode 100644
index 0000000..a0da344
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-other-203-t.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="ASl" desc="Tests animation of solid-color and solid-opacity" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-other-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test solidColor animation. Animates solid-color and solid-opacity on two rects.
+ </p>
+ <p>
+ The test is passed if the following objects are displayed:
+ Rect 1
+ - Fill: blue animated to red, opacity 0 animated to 1
+ - Stroke: none
+
+ Rect 2 (roated -30 degrees)
+ - Fill: none
+ - Stroke: red animated to yellow, opacity 1 animated to 0
+ </p>
+ <p>
+ One rect animates its fill from blue to red over 3 seconds and has its solid-opacity animated from 0 to 1 over 5 seconds.
+ The other rect (no fill and rotated -30) has its stroke animated from red to yellow over 3s and solid-opacity from 1 to 0 over 5 seconds.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-other-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <solidColor xml:id="solidFill" >
+ <animate attributeName="solid-opacity" from="0" to="1" begin="0s" dur="5s" fill="freeze" />
+ <animateColor attributeName="solid-color" from="rgb(0,0,255)" to="rgb(255,0,0)" begin="0s" dur="3s" fill="freeze" />
+ </solidColor>
+ <solidColor xml:id="solidStroke" >
+ <animate attributeName="solid-opacity" from="1" to="0" begin="0s" dur="5s" fill="freeze" />
+ <animateColor attributeName="solid-color" from="red" to="yellow" begin="0s" dur="3s" fill="freeze" />
+ </solidColor>
+ </g>
+
+ <rect x="150" y="100" width="200" height="100" rx="25" fill="url(#solidFill)"/>
+
+ <g transform="translate(150 155) rotate(-30)" >
+ <rect x="0" y="0" width="200" height="100" rx="25" fill="none" stroke="url(#solidStroke)" stroke-width="15" />
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-01-t.png b/test/svg/svg1.2/svg/paint-stroke-01-t.png
new file mode 100644
index 0000000..2faa961
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-01-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-01-t.svg b/test/svg/svg1.2/svg/paint-stroke-01-t.svg
new file mode 100644
index 0000000..4d19677
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-01-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="KMC" desc="Test that viewer has the basic capability to handle the 'stroke' and 'stroke-width' properties." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-stroke-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify the basic capability to handle the stroke properties ("stroke") in combination with the "rect" element. The
+ pair should be rendered as two blue rectangles, the upper one without a stroke and the lower with a red stroke.
+ </p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labeling text (per CSS2 rules).</p>
+ <p>
+ The test uses the "rect" element, as well as basic "fill" (solid primary colors), "stroke", stroke="red",
+ "font-family" (Arial) and "font-size" attributes.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ============================================================================= -->
+ <!-- Draw two simple rectangles. One without stroke other with stroke:red -->
+ <!-- ============================================================================= -->
+ <text font-size="36" x="10" y="40">Basic paint: stroke properties.</text>
+ <rect xml:id="stroke-01" fill="blue" stroke="none" x="90" y="70" width="300" height="50" />
+ <rect xml:id="stroke-02" fill="blue" stroke-width="20" stroke="red" x="90" y="190" width="300" height="50" />
+ <text font-size="40" x="140" y="150">stroke="none"</text>
+ <text font-size="40" x="148" y="280">stroke="red"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-02-t.png b/test/svg/svg1.2/svg/paint-stroke-02-t.png
new file mode 100644
index 0000000..015aa84
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-02-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-02-t.svg b/test/svg/svg1.2/svg/paint-stroke-02-t.svg
new file mode 100644
index 0000000..8d46019
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-02-t.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="KMC" desc="Test that viewer has the basic capability to handle the 'stroke', 'stroke-width' and 'stroke-linejoin' properties." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-stroke-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify the basic capability to handle the stroke properties ("stroke", "stroke-width", "stroke-linejoin") in
+ combination with the "rect" element. The pair should be rendered as two red rectangles without an interior fill.
+ The upper rectangle should have a stroke width of 5 with sharp corners. The lower rectangle should have a stroke
+ width of 5 with round corners.
+ </p>
+ <p>
+ The test uses the "rect" element, as well as basic "fill" (solid primary colors), "stroke", stroke="red"
+ stroke-width="10" stroke-linejoin="round", "font-family" (Arial) and "font-size" properties.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Set of rectangles with stroke-width:10 and stroke-linejoin:round-->
+ <!-- ====================================================================== -->
+ <text font-size="36" x="10" y="40">Basic paint: stroke properties.</text>
+ <rect xml:id="stroke-01" fill="none" stroke="red" stroke-width="20" x="90" y="70" width="300" height="50" />
+ <rect xml:id="stroke-02" fill="none" stroke="red" stroke-width="20" stroke-linejoin="round" x="90" y="190" width="300" height="50" />
+ <text font-size="40" x="120" y="160">stroke-width="20"</text>
+ <text font-size="40" x="58" y="290">stroke-linejoin="round"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-03-t.png b/test/svg/svg1.2/svg/paint-stroke-03-t.png
new file mode 100644
index 0000000..c82fbe4
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-03-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-03-t.svg b/test/svg/svg1.2/svg/paint-stroke-03-t.svg
new file mode 100644
index 0000000..6e72b4e
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-03-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="KMC" desc="Test that viewer has the basic capability to handle the <stroke properties>" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-stroke-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify the basic capability to handle the stroke properties ("stroke", "stroke-width" "stroke-linejoin", "stroke-linecap",
+ "stroke-miter") in combination with straight-line path commands. The pair should be rendered as as two red line segments.
+ The upper segment should have round end caps. The lower segment should be chopped off where the two line segments meet.
+ </p>
+ <p>
+ The test uses the "path" element, as well as basic "fill" (solid primary colors), "stroke", "stroke-width",
+ "stroke-linejoin", "stroke-linecap", "stroke-miter", "font-family" (Arial) and "font-size" properties.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Test stroke-linecap:round and stroke-miterlimit:1 -->
+ <!-- ====================================================================== -->
+ <text font-size="36" x="10" y="40">Basic paint: stroke properties.</text>
+ <path fill="none" stroke="red" stroke-width="30" stroke-linecap="round" d="M 160 70 l 200 20 l -200 20 " />
+ <path fill="none" stroke="red" stroke-width="30" stroke-linejoin="miter" stroke-miterlimit="1" d="M 160 190 l 200 20 l -200 20" />
+ <text font-size="40" x="60" y="160">stroke-linecap="round"</text>
+ <text font-size="40" x="130" y="280">stroke-miter="1"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-04-t.png b/test/svg/svg1.2/svg/paint-stroke-04-t.png
new file mode 100644
index 0000000..c9983ee
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-04-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-04-t.svg b/test/svg/svg1.2/svg/paint-stroke-04-t.svg
new file mode 100644
index 0000000..6eacbbb
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-04-t.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="KMC" desc="Test that viewer has the basic capability to handle the 'stroke', 'stroke-width', 'stroke-dasharray' and 'stroke-dashoffset' properties." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-stroke-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify the "stroke-dasharray" and "stroke-dashoffset" properties. Two lines are drawn, one red and one black.
+ Both have a "stroke-dasharray" of "10,10" giving a dashed appearance where the size of the gaps and the size of
+ the dash is equal. The help show this, the black line has a "stroke-dashoffset" so that the dashes in the black
+ line match up with the gaps in the red line.
+ </p>
+ <p>
+ The test uses the "path" element, "stroke", "stroke-width", "stroke-dasharray" and "stroke-dashoffset", "font-family"
+ (Arial) and "font-size" properties.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Test stroke-dasharray and stroke-dashoffset -->
+ <!-- ====================================================================== -->
+ <text font-size="36" x="10" y="60">Basic paint: stroke properties.</text>
+ <path xml:id="stroke-7b" fill="none" stroke="red" stroke-width="25" stroke-dashoffset="0" stroke-dasharray="10,10" d="M 50 120 L 430 120" />
+ <path xml:id="stroke-7c" fill="none" stroke="black" stroke-width="25" stroke-dashoffset="10" stroke-dasharray="10,10" d="M 50 140 L 430 140" />
+ <text font-size="30" x="65" y="210">stroke-dasharray="10, 10"</text>
+ <text font-size="30" x="75" y="260">stroke-dashoffset="10"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-05-t.png b/test/svg/svg1.2/svg/paint-stroke-05-t.png
new file mode 100644
index 0000000..8e41cb8
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-05-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-05-t.svg b/test/svg/svg1.2/svg/paint-stroke-05-t.svg
new file mode 100644
index 0000000..4d6887e
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-05-t.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events"
+ shape-rendering="geometricPrecision">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="BB" desc="Shows how a user agent may render thin strokes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-stroke-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ User agents may render graphical primitives with different levels of accurancy.
+ This test is aimed at determining how does a UA render thin strokes.
+ </p>
+ <p>
+ The test file contains a number of vertical and horizontal lines.
+ The stroke width of the vertical lines are increasing from left to right.
+ The stroke width of the horizontal lines are increasing from top to bottom.
+ The user should be able to see a smooth stroke width increment for the vertical and horizontal lines.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">painting-stroke-05-t.svg</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="20" x="240" y="30" text-anchor="middle">Rendering thin strokes</text>
+ <polyline points="030,50 030,300" stroke="black" stroke-width="0.001"/>
+ <polyline points="50,50 50,300" stroke="black" stroke-width="0.1"/>
+ <polyline points="70,50 70,300" stroke="black" stroke-width="0.2"/>
+ <polyline points="90,50 90,300" stroke="black" stroke-width="0.3"/>
+ <polyline points="110,50 110,300" stroke="black" stroke-width="0.4"/>
+ <polyline points="130,50 130,300" stroke="black" stroke-width="0.5"/>
+ <polyline points="150,50 150,300" stroke="black" stroke-width="0.6"/>
+ <polyline points="170,50 170,300" stroke="black" stroke-width="0.7"/>
+ <polyline points="190,50 190,300" stroke="black" stroke-width="0.8"/>
+ <polyline points="210,50 210,300" stroke="black" stroke-width="0.9"/>
+ <polyline points="230,50 230,300" stroke="black" stroke-width="1.0"/>
+ <polyline points="250,50 250,300" stroke="black" stroke-width="1.1"/>
+ <polyline points="270,50 270,300" stroke="black" stroke-width="1.2"/>
+ <polyline points="290,50 290,300" stroke="black" stroke-width="1.3"/>
+ <polyline points="310,50 310,300" stroke="black" stroke-width="1.4"/>
+ <polyline points="330,50 330,300" stroke="black" stroke-width="1.5"/>
+ <polyline points="350,50 350,300" stroke="black" stroke-width="1.6"/>
+ <polyline points="370,50 370,300" stroke="black" stroke-width="1.7"/>
+ <polyline points="390,50 390,300" stroke="black" stroke-width="1.8"/>
+ <polyline points="410,50 410,300" stroke="black" stroke-width="1.9"/>
+ <polyline points="430,50 430,300" stroke="black" stroke-width="2.0"/>
+ <polyline points="450,50 450,300" stroke="black" stroke-width="2.1"/>
+
+ <line x1="10" x2="470" y1="100" y2="100" stroke="rgb(0,0,139)" stroke-width="0.1"/>
+ <line x1="10" x2="470" y1="150" y2="150" stroke="rgb(0,0,139)" stroke-width="0.5"/>
+ <line x1="10" x2="470" y1="200" y2="200" stroke="rgb(0,0,139)" stroke-width="1"/>
+ <line x1="10" x2="470" y1="250" y2="250" stroke="rgb(0,0,139)" stroke-width="2"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-06-t.png b/test/svg/svg1.2/svg/paint-stroke-06-t.png
new file mode 100644
index 0000000..623064c
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-06-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-06-t.svg b/test/svg/svg1.2/svg/paint-stroke-06-t.svg
new file mode 100644
index 0000000..0729b23
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-06-t.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test some effects of stroke-dasharray." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-stroke-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test default effects of stroke-dasharray.
+ </p>
+ <p>
+ This specifically tests the values of none and 0.
+ This also tests an odd number of values in a dash-array attribute
+ and in combination with an offset.
+ </p>
+ <p>
+ The top two lines must be solid black. The next line shows a thick
+ black line with a thinner red line on top; both must have the same
+ dash pattern. The bottom two lines, one black and one blue, must render
+ so that the gaps of one correspond to the dashes of the other.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-06-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.8)">
+
+ <!-- No dasharray -->
+ <path stroke="black" stroke-width="10" fill="none" stroke-dasharray="none" d=" M 20 20 L 200 20"/>
+
+ <path stroke="black" stroke-width="10" fill="none" stroke-dasharray="0" d=" M 20 40 L 200 40"/>
+
+ <!-- Odd number, should repeat to make an even number -->
+ <path stroke="black" stroke-width="20" fill="none" stroke-dasharray="5,2,5,5,2,5" d=" M 20 60 L 200 60"/>
+ <path stroke="red" stroke-width="10" fill="none" stroke-dasharray="5,2,5" d=" M 20 60 L 200 60"/>
+
+ <!-- Odd number, with a dashoffset test -->
+ <path stroke="black" stroke-width="10" fill="none" stroke-dasharray="2" d=" M 20 80 L 200 80"/>
+
+ <path stroke="blue" stroke-width="10" fill="none" stroke-dasharray="2" stroke-dashoffset="2" d="
+ M 20 90 L 200 90"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/paint-stroke-07-t.png b/test/svg/svg1.2/svg/paint-stroke-07-t.png
new file mode 100644
index 0000000..62a53ee
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-07-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-07-t.svg b/test/svg/svg1.2/svg/paint-stroke-07-t.svg
new file mode 100644
index 0000000..15496a9
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-07-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test effect of different stroke-miterlimits." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-stroke-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test effect of different stroke-miterlimits. For this particular combination of stroke width and angle,
+ the cut off value of stroke-miterlimit is 18.028. Thus, the first and second subtests should not truncate
+ the stroke, and all the rest must truncate it.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.2) translate(60, 30)">
+ <!-- test different miterlimits -->
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="20" fill="none" d="M 20 20 L 200 30 L 20 40" />
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="18.1" fill="none" d="M 20 50 L 200 60 L 20 70" />
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="17.9" fill="none" d="M 20 80 L 200 90 L 20 100" />
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="17" fill="none" d="M 20 110 L 200 120 L 20 130" />
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="4" fill="none" d="M 20 140 L 200 150 L 20 160" />
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="1" fill="none" d="M 20 170 L 200 180 L 20 190" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-08-t.png b/test/svg/svg1.2/svg/paint-stroke-08-t.png
new file mode 100644
index 0000000..dc194c5
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-08-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-08-t.svg b/test/svg/svg1.2/svg/paint-stroke-08-t.svg
new file mode 100644
index 0000000..6e5322f
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-08-t.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test effects of stroke-opacity range" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-stroke-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test effects of stroke-opacity range. Values
+ outside the range 0-1.0 must be clamped.
+ </p>
+ <p>
+ There must be no blue bars visible beside the three pink dots.
+ Four semitransparent blue bars, increasingly more opaque,
+ must line up with the yellow dots. Three fully opaque
+ blue bars must line up with the green dots.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-08-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(50, 0) scale(1.7)">
+ <circle r="5" fill="#f66" cx="200" cy="20"/>
+ <circle r="5" fill="#f66" cx="200" cy="40"/>
+ <circle r="5" fill="#f66" cx="200" cy="60"/>
+ <circle r="5" fill="#f66" cx="200" cy="80"/>
+ <circle r="5" fill="#ff0" cx="200" cy="80"/>
+ <circle r="5" fill="#ff0" cx="200" cy="100"/>
+ <circle r="5" fill="#ff0" cx="200" cy="120"/>
+ <circle r="5" fill="#ff0" cx="200" cy="140"/>
+ <circle r="5" fill="#6f3" cx="200" cy="160"/>
+ <circle r="5" fill="#6f3" cx="200" cy="180"/>
+ <circle r="5" fill="#6f3" cx="200" cy="200"/>
+ <!-- Test range and values outside range (should be clamped to valid range) -->
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="-1.0" d=" M 20 20 L 200 20"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="-0.1" d=" M 20 40 L 200 40"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.0" d=" M 20 60 L 200 60"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.2" d=" M 20 80 L 200 80"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.4" d=" M 20 100 L 200 100"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.6" d=" M 20 120 L 200 120"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.8" d=" M 20 140 L 200 140"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="1.0" d=" M 20 160 L 200 160"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="1.1" d=" M 20 180 L 200 180"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="2.0" d=" M 20 200 L 200 200"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-201-t.png b/test/svg/svg1.2/svg/paint-stroke-201-t.png
new file mode 100644
index 0000000..0da4a4d
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-201-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-201-t.svg b/test/svg/svg1.2/svg/paint-stroke-201-t.svg
new file mode 100644
index 0000000..47bd145
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-201-t.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="DOH" desc="Stroking for circle, large stroke-width, small r." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-stroke-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Stroking for circle, large stroke-width, small r.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of something red.
+ A second indication is a thin white line inside a blue area.
+ </p>
+ <p>
+ For smaller circles the radius gets smaller than the half stroke-width, therefore the fill is not
+ visible anymore for them. Only the animated circle at the beginning and the next circle
+ on its right have a visible fill.
+ </p>
+ <p>
+ To test the correct rendering, the blue circles cover always red filled circles without a stroke.
+ Additionally the size of the circles is given with a thin white stroke on top. If something
+ red gets visible or blue parts of the stroke of the circle are outside of the related white
+ stroked circle, an error is occured. If the circles are not displayed as circles with an accuracy of
+ one device pixel, an error is occured too.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <g fill="#f00">
+ <circle cx="100" cy="160" r="90">
+ <animate
+ attributeName="r"
+ attributeType="XML"
+ values="88;88;56;40;32;28;26;25;24.5;24.25;24.125;24.0675"
+ dur="60s"
+ fill="freeze" />
+ </circle>
+ <circle cx="250" cy="70" r="56" />
+ <circle cx="370" cy="120" r="40" />
+ <circle cx="430" cy="190" r="32" />
+ <circle cx="400" cy="260" r="28"/>
+ <circle cx="340" cy="290" r="26" />
+ <circle cx="280" cy="270" r="25"/>
+ <circle cx="250" cy="220" r="24.5" />
+ <circle cx="285" cy="170" r="24.25" />
+ <circle cx="340" cy="200" r="24.125" />
+ </g>
+
+ <g fill="#88f" stroke="#008" stroke-width="48">
+ <circle cx="100" cy="160" r="40">
+ <animate
+ attributeName="r"
+ attributeType="XML"
+ values="64;64;32;16;8;4;2;1;0.5;0.25;0.125;0.0675"
+ dur="60s"
+ fill="freeze" />
+ </circle>
+ <circle cx="250" cy="70" r="32" />
+ <circle cx="370" cy="120" r="16" />
+ <circle cx="430" cy="190" r="8" />
+ <circle cx="400" cy="260" r="4"/>
+ <circle cx="340" cy="290" r="2" />
+ <circle cx="280" cy="270" r="1"/>
+ <circle cx="250" cy="220" r="0.5" />
+ <circle cx="285" cy="170" r="0.25" />
+ <circle cx="340" cy="200" r="0.125" />
+ </g>
+
+
+ <g fill="none" stroke-width="0.5" stroke="#fff" >
+ <circle cx="100" cy="160" r="80">
+ <animate
+ attributeName="r"
+ attributeType="XML"
+ values="88;88;56;40;32;28;26;25;24.5;24.25;24.125;24.0675"
+ dur="60s"
+ fill="freeze" />
+ </circle>
+ <circle cx="250" cy="70" r="56" />
+ <circle cx="370" cy="120" r="40" />
+ <circle cx="430" cy="190" r="32" />
+ <circle cx="400" cy="260" r="28"/>
+ <circle cx="340" cy="290" r="26" />
+ <circle cx="280" cy="270" r="25"/>
+ <circle cx="250" cy="220" r="24.5" />
+ <circle cx="285" cy="170" r="24.25" />
+ <circle cx="340" cy="200" r="24.125" />
+ </g>
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="30" y="270">stroked circles</text>
+ <text x="30" y="287">red = wrong</text>
+ <text x="30" y="300">white inside blue = wrong</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-202-t.png b/test/svg/svg1.2/svg/paint-stroke-202-t.png
new file mode 100644
index 0000000..b304236
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-202-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-202-t.svg b/test/svg/svg1.2/svg/paint-stroke-202-t.svg
new file mode 100644
index 0000000..9239186
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-202-t.svg
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="DOH" desc="Direction of stroke-dasharray and stroke-dashoffset for basic shapes." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-stroke-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Direction of stroke-dasharray and stroke-dashoffset for basic shapes.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of a blue path on
+ a white background area. It is passed, if all blue paths are on a gray background area.
+ </p>
+ <p>
+ stroke-dasharray and stroke-dashoffset are tested on basic shapes circle, ellipse, rectangle,
+ rectangle with rounded corners, line, polyline and polygon. The test is sensitive to the
+ direction of stroke-dasharray and stroke-dashoffset and on the starting point on the basic
+ shape.
+ </p>
+ <p>
+ The dashes are positioned correctly, if they are only on a gray background area.
+ If there are dashes on a white background, this is an indication for an error.
+ Additional information given in the elements title and desc for the related subtest
+ may help to identify the tested shape and property combination and the error,
+ if there is one.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g>
+ <title>background of filled rectangles indicating stroking areas in gray</title>
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <rect x="20" y="20" width="100" height="100" fill="#ccc" />
+ <rect x="120" y="120" width="100" height="100" fill="#ccc" />
+ <g transform="translate(0,30) rotate(45,320,120)">
+ <rect x="220" y="20" width="100" height="100" fill="#ccc" />
+ <rect x="320" y="120" width="100" height="100" fill="#ccc" />
+ </g>
+ <rect x="400" y="40" width="70" height="70" fill="#ccc" />
+ <rect x="400" y="180" width="70" height="70" fill="#ccc" />
+ </g>
+
+ <g>
+ <title>testing stroke-dasharray for circle, rectangle with rounded corners, ellipse</title>
+ <circle cx="120" cy="120" r="89.1268"
+ fill="none" stroke-width="20" stroke="#00f" stroke-dasharray="140">
+ <title>stroke-dasharray on circle without stroke-dashoffset</title>
+ <desc>Note that the pathLength of the circle is exactly 560</desc>
+ </circle>
+ <rect x="30.8732" y="30.8732" width="178.2535" height="178.2535" rx="200"
+ fill="none" stroke-width="12" stroke="#00a" stroke-dasharray="0,140,140,140,140">
+ <title>stroke-dasharray on rect with rounded corners without stroke-dashoffset</title>
+ <desc>Note that the pathLength of the rect is exactly 560</desc>
+ </rect>
+ <ellipse cx="120" cy="120" rx="89.1268" ry="89.1268"
+ fill="none" stroke-width="4" stroke="#44f" stroke-dasharray="140">
+ <title>stroke-dasharray on ellipse without stroke-dashoffset</title>
+ <desc>Note that the pathLength of the ellipse is exactly 560</desc>
+ </ellipse>
+
+
+ <circle cx="320" cy="150" r="89.1268"
+ fill="none" stroke-width="20" stroke="#00f" stroke-dasharray="140" stroke-dashoffset="-70">
+ <title>stroke-dasharray on circle without negative stroke-dashoffset</title>
+ <desc>Note that the pathLength of the circle is exactly 560</desc>
+ </circle>
+ <rect x="230.8732" y="60.8732" width="178.2535" height="178.2535" rx="200"
+ fill="none" stroke-width="12" stroke="#00a" stroke-dasharray="140" stroke-dashoffset="-210">
+ <title>stroke-dasharray on rect with rounded corners with negative stroke-dashoffset</title>
+ <desc>Note that the pathLength of the rect is exactly 560</desc>
+ </rect>
+ <ellipse cx="320" cy="150" rx="89.1268" ry="89.1268"
+ fill="none" stroke-width="4" stroke="#44f" stroke-dasharray="140" stroke-dashoffset="210">
+ <title>stroke-dasharray on ellipse with positive stroke-dashoffset</title>
+ <desc>Note that the pathLength of the ellipse is exactly 560</desc>
+ </ellipse>
+ </g>
+
+
+ <g fill="none" stroke-dasharray="none" stroke-dashoffset="none">
+ <title>testing stroke-dasharray for line, polyline, polygon</title>
+ <line x1="10" y1="250" x2="80" y2="250" stroke-width="30" stroke="#ccc" />
+ <line x1="150" y1="250" x2="220" y2="250" stroke-width="30" stroke="#ccc" />
+ <line x1="10" y1="250" x2="220" y2="250"
+ stroke-width="20" stroke="#00f" stroke-dasharray="70" stroke-dashoffset="0">
+ <title>stroke-dasharray on line with stroke-dashoffset set to 0</title>
+ </line>
+ <polyline points="10,250 100,250 220,250"
+ stroke-width="12" stroke="#00a" stroke-dasharray="70" stroke-dashoffset="0">
+ <title>stroke-dasharray on polyline with stroke-dashoffset set to 0</title>
+ </polyline>
+ <polygon points="10,250 100,250 255,250"
+ stroke-width="4" stroke="#44f" stroke-dasharray="70" stroke-dashoffset="0">
+ <title>stroke-dasharray on polygon with stroke-dashoffset set to 0</title>
+ </polygon>
+
+ <line x1="10" y1="290" x2="45" y2="290" stroke-width="30" stroke="#ccc" />
+ <line x1="115" y1="290" x2="185" y2="290" stroke-width="30" stroke="#ccc" />
+ <line x1="255" y1="290" x2="290" y2="290" stroke-width="30" stroke="#ccc" />
+ <line x1="10" y1="290" x2="290" y2="290" stroke-width="20" stroke="#00f" stroke-dasharray="70" stroke-dashoffset="35">
+ <title>stroke-dasharray on line with stroke-dashoffset</title>
+ </line>
+ <polyline points="10,290 100,290 290,290"
+ stroke-width="12" stroke="#00a" stroke-dasharray="70" stroke-dashoffset="-105">
+ <title>stroke-dasharray on polyline with negative stroke-dashoffset</title>
+ </polyline>
+ <polygon points="10,290 100,290 290,290"
+ stroke-width="4" stroke="#44f" stroke-dasharray="70" stroke-dashoffset="35">
+ <title>stroke-dasharray on polygon with stroke-dashoffset</title>
+ </polygon>
+ </g>
+
+
+ <g fill="none" >
+ <title>testing stroke-dasharray for rectangles</title>
+ <rect x="420" y="30" width="30" height="240"
+ stroke-width="20" stroke="#00f" stroke-dasharray="70" stroke-dashoffset="100">
+ <title>stroke-dasharray on rect with positive stroke-dashoffset</title>
+ </rect>
+
+ <rect x="420" y="20" width="30" height="258.5841" rx="10"
+ stroke-width="12" stroke="#00a"
+ stroke-dasharray="10,35.708,70,70,70,78.5841,70,70,70,70" stroke-dashoffset="10">
+ <title>stroke-dasharray on rect with rounded corners with positive stroke-dashoffset</title>
+ <desc>Note that the pathLength of the rectangle is exactly 560, the round parts are 2pi*rx</desc>
+ </rect>
+
+ <rect x="420" y="-10" width="30" height="350"
+ stroke-width="4" stroke="#44f" stroke-dasharray="0,70,70,70,70,210,70,70,70,70" stroke-dashoffset="-10">
+ <title>stroke-dasharray on rect with negative stroke-dashoffset</title>
+ </rect>
+ </g>
+
+
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="340" y="310">position of the dashes:</text>
+ <text x="340" y="322">blue on gray: ok</text>
+ <text x="340" y="334">blue on white: fail </text>
+ </g>
+
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-204-t.png b/test/svg/svg1.2/svg/paint-stroke-204-t.png
new file mode 100644
index 0000000..f03d9f2
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-204-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-204-t.svg b/test/svg/svg1.2/svg/paint-stroke-204-t.svg
new file mode 100644
index 0000000..ba49de7
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-204-t.svg
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="DOH" desc="Precision tests for stroke-linejoin" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-stroke-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Precision tests for stroke-linejoin.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of something red.
+ </p>
+ <p>
+ stroke-linejoin is tested, using a comparsion with filled or stroked paths or shapes with the same appearance.
+ This is tested for different three miter angles for the values round, miter and bevel, for each of them one with
+ test path on top of the comparsion shapes and one with the path below.
+ </p>
+ The four paths top right test the inheritance either for the value explicitely set to 'inherit' or a missing stroke-linejoin property.
+ <p>
+ </p>
+ <p>
+ The top is always blue. If something
+ red gets visible, an error is occured.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <g stroke-linejoin="miter" stroke-miterlimit="10">
+ <g transform="translate(-25,-25) scale(0.75)">
+ <title>stroke-linejoin round (on top)</title>
+ <path d="M50,50L50,100 M50,100 100,100" stroke-width="20" stroke="red" fill="none"/>
+ <circle cx="50" cy="100" r="10" fill="red" />
+ <path d="M50,50L50,100 100,100" stroke-width="20" stroke-linejoin="round" stroke="blue" fill="none"/>
+
+ <path d="M200,50L150,100 M150,100 200,100" stroke-width="20" stroke="red" fill="none"/>
+ <circle cx="150" cy="100" r="10" fill="red" />
+ <path d="M200,50L150,100 200,100" stroke-width="20" stroke-linejoin="round" stroke="blue" fill="none"/>
+
+ <path d="M250,50L300,100 M300,100 350,100" stroke-width="20" stroke="red" fill="none"/>
+ <circle cx="300" cy="100" r="10" fill="red" />
+ <path d="M250,50L300,100 350,100" stroke-width="20" stroke-linejoin="round" stroke="blue" fill="none"/>
+ </g>
+
+ <g transform="translate(-25,35) scale(0.75)">
+ <title>stroke-linejoin round (below)</title>
+ <path d="M50,50L50,100 100,100" stroke-width="20" stroke-linejoin="round" stroke="red" fill="none"/>
+ <path d="M50,50L50,100 M50,100 100,100" stroke-width="20" stroke="blue" fill="none"/>
+ <circle cx="50" cy="100" r="10" fill="blue" />
+
+ <path d="M200,50L150,100 200,100" stroke-width="20" stroke-linejoin="round" stroke="red" fill="none"/>
+ <path d="M200,50L150,100 M150,100 200,100" stroke-width="20" stroke="blue" fill="none"/>
+ <circle cx="150" cy="100" r="10" fill="blue" />
+
+ <path d="M250,50L300,100 350,100" stroke-width="20" stroke-linejoin="round" stroke="red" fill="none"/>
+ <path d="M250,50L300,100 M300,100 350,100" stroke-width="20" stroke="blue" fill="none"/>
+ <circle cx="300" cy="100" r="10" fill="blue" />
+ </g>
+
+
+
+ <g transform="translate(-25,120) scale(0.75)">
+ <title>stroke-linejoin miter (on top)</title>
+
+ <path d="M50,50L50,110 M40,100 100,100" stroke-width="20" stroke="red" fill="none"/>
+ <path d="M50,50L50,100 100,100" stroke-width="20" stroke-linejoin="miter" stroke="blue" fill="none"/>
+
+ <path d="M192.928932188,42.928932188
+ L125.857864376,110 200,110 200,90 174.142135624,90 207.071067812,57.071067812z" fill="red"/>
+ <path d="M200,50L150,100 200,100" stroke-width="20" stroke-linejoin="miter" stroke="blue" fill="none"/>
+
+ <path d="M242.928932188,57.071067812
+ L295.857864376,110 350,110 350,90 304.142135624,90 257.071067812,42.928932188z" fill="red"/>
+ <path d="M250,50L300,100 350,100" stroke-width="20" stroke-linejoin="miter" stroke="blue" fill="none"/>
+ </g>
+
+ <g transform="translate(-25,180) scale(0.75)">
+ <title>stroke-linejoin miter (below)</title>
+ <path d="M50,50L50,100 100,100" stroke-width="20" stroke-linejoin="miter" stroke="red" fill="none"/>
+ <path d="M50,50L50,110 M40,100 100,100" stroke-width="20" stroke="blue" fill="none"/>
+
+ <path d="M200,50L150,100 200,100" stroke-width="20" stroke-linejoin="miter" stroke="red" fill="none"/>
+ <path d="M192.928932188,42.928932188
+ L125.857864376,110 200,110 200,90 174.142135624,90 207.071067812,57.071067812z" fill="blue"/>
+
+ <path d="M250,50L300,100 350,100" stroke-width="20" stroke-linejoin="miter" stroke="red" fill="none"/>
+ <path d="M242.928932188,57.071067812
+ L295.857864376,110 350,110 350,90 304.142135624,90 257.071067812,42.928932188z" fill="blue"/>
+ </g>
+
+
+ <g transform="translate(215,-25) scale(0.75)">
+ <title>stroke-linejoin bevel (on top)</title>
+
+ <path d="M40,50L40,100 50,110 100,110 100,90 60,90 60,50z" fill="red"/>
+ <path d="M50,50L50,100 100,100" stroke-width="20" stroke-linejoin="bevel" stroke="blue" fill="none"/>
+
+ <path d="M192.928932188,42.928932188
+ L142.928932188,92.928932188 150,110
+ 200,110 200,90 174.142135624,90 207.071067812,57.071067812z" fill="red"/>
+ <path d="M200,50L150,100 200,100" stroke-width="20" stroke-linejoin="bevel" stroke="blue" fill="none"/>
+
+ <path d="M242.928932188,57.071067812
+ L292.928932188,107.071067812 300,110
+ 350,110 350,90 304.142135624,90 257.071067812,42.928932188z" fill="red"/>
+ <path d="M250,50L300,100 350,100" stroke-width="20" stroke-linejoin="bevel" stroke="blue" fill="none"/>
+ </g>
+
+ <g transform="translate(215,35) scale(0.75)">
+ <title>stroke-linejoin bevel (below)</title>
+ <path d="M50,50L50,100 100,100" stroke-width="20" stroke-linejoin="bevel" stroke="red" fill="none"/>
+ <path d="M40,50L40,100 50,110 100,110 100,90 60,90 60,50z" fill="blue"/>
+
+ <path d="M200,50L150,100 200,100" stroke-width="20" stroke-linejoin="bevel" stroke="red" fill="none"/>
+ <path d="M192.928932188,42.928932188
+ L142.928932188,92.928932188 150,110 200,110 200,90 174.142135624,90 207.071067812,57.071067812z" fill="blue"/>
+
+ <path d="M250,50L300,100 350,100" stroke-width="20" stroke-linejoin="bevel" stroke="red" fill="none"/>
+ <path d="M242.928932188,57.071067812
+ L292.928932188,107.071067812 300,110 350,110 350,90 304.142135624,90 257.071067812,42.928932188z" fill="blue"/>
+ </g>
+
+ <g transform="translate(250,140)" stroke-linejoin="round" stroke="blue" fill="none" stroke-width="10">
+ <title>inheritance test (on top, round)</title>
+ <path d="M0,150L25,120 50,150" stroke-linejoin="round" stroke="red" fill="none" stroke-width="10" />
+ <path d="M1000,0L1000,0" stroke-linejoin="miter" />
+ <path d="M0,150L25,120 50,150" stroke-linejoin="inherit" />
+
+ <path d="M0,0L100,200 50,0" stroke-linejoin="round" stroke="red" fill="none" stroke-width="10" />
+ <path d="M0,0L100,200 50,0" />
+ </g>
+
+ <g transform="translate(370,140)" stroke-linejoin="round" stroke="red" fill="none" stroke-width="10">
+ <title>inheritance test (below, round)</title>
+ <path d="M1000,0L1000,0" stroke-linejoin="miter" />
+ <path d="M0,150L25,120 50,150" stroke-linejoin="inherit" />
+ <path d="M0,150L25,120 50,150" stroke-linejoin="round" stroke="blue" fill="none" stroke-width="10" />
+
+ <path d="M0,0L100,200 50,0" />
+ <path d="M0,0L100,200 50,0" stroke-linejoin="round" stroke="blue" fill="none" stroke-width="10" />
+ </g>
+ </g>
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="20" y="283">stroke-linejoin:</text>
+ <text x="20" y="295">red = wrong</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-205-t.png b/test/svg/svg1.2/svg/paint-stroke-205-t.png
new file mode 100644
index 0000000..3085929
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-205-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-205-t.svg b/test/svg/svg1.2/svg/paint-stroke-205-t.svg
new file mode 100644
index 0000000..f963905
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-205-t.svg
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="DOH" desc="Path length zero subpaths stroking and stroke-linecap" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-stroke-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Stroking for subpaths with path length zero, depending on stroke-linecap.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of something red
+ (this simple indication may fail itself, if the viewer does not support stroke-linecap).
+ </p>
+ <p>
+ Several paths containing a subpath with length zero are
+ stroked and some of them animated.
+ </p>
+ <p>
+ The zero length subpath is placed between two
+ other subpaths of finite length or before or after a
+ subpath of finite length or in one case the path consists of two
+ subpaths of length zero.
+ The behaviour is checked for stroke-linecap round,
+ square (subpath visible) and bevel (subpath not visible)
+ on the left.
+ </p>
+ <p>
+ On the right the behaviour is tested with simple
+ animations to check the correct alignment
+ or shrinking to zero length.
+ stroke-linecap is animated between round or square too
+ for some of them.
+ </p>
+ <p>
+ The behaviour is compared with similar paths with a
+ subpath of a very small length. Because the red stroked
+ paths have a slightly smaller stroke, they are always covered
+ by blue paths.
+ If something red gets visible, an error is occured.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <animate xlink:href="#bluetestcase"
+ attributeName="d"
+ attributeType="XML"
+ values="
+ M200,200L300,300M500,500ZM700,700L800,800;
+ M800,200L700,300M500,500ZM300,700L200,800;
+ M800,800L700,700M500,500ZM300,300L200,200;
+ M200,800L300,700M500,500ZM700,300L800,200;
+ M200,200L300,300M500,500ZM700,700L800,800
+ "
+ dur="10s"
+ repeatDur="indefinite" />
+ <animate xlink:href="#rederror"
+ attributeName="d"
+ attributeType="XML"
+ values="
+ M200,200L300,300M499.99,499.99L500.01,500.01M700,700L800,800;
+ M800,200L700,300M500.01,499.99L499.99,500.01M300,700L200,800;
+ M800,800L700,700M500.01,500.01L499.99,499.99M300,300L200,200;
+ M200,800L300,700M499.99,500.01L500.01,499.99M700,300L800,200;
+ M200,200L300,300M499.99,499.99L500.01,500.01M700,700L800,800
+ "
+ dur="10s"
+ repeatDur="indefinite" />
+
+ <animate xlink:href="#bluetestcase2"
+ attributeName="d"
+ attributeType="XML"
+ values="M200,1000h100M450,1000h100M700,1000h100;M200,1000h100M500,1000h0M700,1000h100"
+ dur="4s"
+ fill="freeze" />
+ <animate xlink:href="#rederror2"
+ attributeName="d"
+ attributeType="XML"
+ values="M200,1000h100M450,1000h100M700,1000h100;M200,1000h100M499.99,1000h0.02M700,1000h100"
+ dur="4s"
+ fill="freeze" />
+
+
+ <animate xlink:href="#bluetestcase3"
+ attributeName="d"
+ attributeType="XML"
+ values="M1000,100v100m0,300v100m0,300v100;M1000,200v200m0,200v0m0,200v200"
+ dur="4s"
+ fill="freeze" />
+ <animate xlink:href="#rederror3"
+ attributeName="d"
+ attributeType="XML"
+ values="M1000,100v100m0,300v100m0,300v100;M1000,200v200m0,199.99v0.02m0,199.99v200"
+ dur="4s"
+ fill="freeze" />
+
+ <animate xlink:href="#bluetestcase4"
+ attributeName="d"
+ attributeType="XML"
+ values="M-350,1000h100m100,0c500,-800 -500,-800 0,0m100,0h100;
+ M-350,1000h100m100,0c0,0 0,0 0,0m100,0h100"
+ dur="4s"
+ begin="5s"
+ fill="freeze" />
+ <animate xlink:href="#rederror4"
+ attributeName="d"
+ attributeType="XML"
+ values="M-350,1000h100m100,0c500,-800 -500,-800 0,0m100,0h100;
+ M-350,1000h100m99.99,0c0,0 0,0 0.02,0m99.99,0h100"
+ dur="4s"
+ begin="5s"
+ fill="freeze" />
+
+ <animate xlink:href="#bluetestcase5"
+ attributeName="d"
+ attributeType="XML"
+ values="M600,1300h100m120,0c120,0 0,120 200,100;
+ M600,1300h0m120,0c120,0 0,120 200,100;
+ M600,1300h0m120,0c0,120 120,0 200,-100;
+ M600,1300h0m120,0c0,120 120,0 200,-100"
+ dur="21.2s"
+ repeatDur="indefinite" />
+ <animate xlink:href="#rederror5"
+ attributeName="d"
+ attributeType="XML"
+ values="M600,1300l100,0m120,0c120,0 0,120 200,100;
+ M600,1300l0.01,0m120,0c120,0 0,120 200,100;
+ M600,1300l0,0.01m120,0c0,120 120,0 200,-100;
+ M600,1300l0,0.01m120,0c0,120 120,0 200,-100"
+ dur="21.2s"
+ repeatDur="indefinite" />
+
+ <animate xlink:href="#bluetestcase6"
+ attributeName="d"
+ attributeType="XML"
+ values="M150,1300c120,0 0,120 240,120m100,0v0;
+ M150,1300c120,0 0,120 240,-120m100,0v0;
+ M150,1300c120,0 0,120 120,120m100,0v0;
+ M150,1300c120,0 0,120 120,120m100,0v0"
+ dur="23.1s"
+ repeatDur="indefinite" />
+ <animate xlink:href="#rederror6"
+ attributeName="d"
+ attributeType="XML"
+ values="M150,1300c120,0 0,120 240,120m100,0l0.01,0;
+ M150,1300c120,0 0,120 240,-120m100,0l0.01,-0.01;
+ M150,1300c120,0 0,120 120,120m100,0l0.005,0;
+ M150,1300c120,0 0,120 120,120m100,0l0.005,0"
+ dur="23.1s"
+ repeatDur="indefinite" />
+
+
+ <animate xlink:href="#g1"
+ attributeName="stroke-linecap"
+ attributeType="XML"
+ values="round;square"
+ dur="9.34s"
+ repeatDur="indefinite" />
+
+ <g xml:id="simplePaths">
+ <path d="M200,200L300,300M399.99,399.99L400.01,400.01M500,300L600,250"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path d="M200,200L300,300M400,400ZM500,300L600,250"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+ <path d="M200,300L300,400M399.99,499.99L400.01,500.01M500,400L600,350"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path d="M200,300L300,400M400,500L400,500M500,400L600,350"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+ <path d="M700,200V300M700,399.99V400.01M750,450L800,500"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path d="M700,200V300M700,400V400M750,450L800,500"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+ <path d="M900,200v100m0,99.99v0.01m50,50l50,50"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path d="M900,200v100m0,100v0m50,50l50,50"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+ <path d="M1100,200H1200m-100.01,100H1100m50,50l50,50"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path d="M1100,200H1200m-100,100H1100m50,50l50,50"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+ </g>
+ </defs>
+
+
+ <g stroke-linecap="square" fill="none" transform=" translate(-20,-30) scale(0.2)">
+ <title>linecap square - zero path visible</title>
+ <use xlink:href="#simplePaths" />
+
+ <path d="M20,250Q70,265 130,250M175,230c0,0 0,0 0,0M220,250Q280,265 330,250">
+ <title>Blue testcase 3</title>
+ </path>
+ </g>
+
+ <g stroke-linecap="round" fill="none" transform=" translate(-20,30) scale(0.2)">
+ <title>linecap round - zero path visible</title>
+ <use xlink:href="#simplePaths" />
+ </g>
+
+ <g stroke-linecap="butt" fill="none" transform=" translate(-20,90) scale(0.2)">
+ <title>linecap butt - zero path not visible, blue covers all red</title>
+ <path d="M200,200L300,300M400,400ZM500,300L600,250"
+ stroke="red"
+ stroke-width="48" />
+ <path d="M200,200L300,300M500,300L600,250"
+ stroke="blue"
+ stroke-width="50" />
+
+ <path d="M200,300L300,400M400,500L400,500M500,400L600,350"
+ stroke="red"
+ stroke-width="48" />
+ <path d="M200,300L300,400M500,400L600,350"
+ stroke="blue"
+ stroke-width="50" />
+ </g>
+
+ <g stroke-linecap="square" fill="none"
+ transform=" translate(-100,130) scale(0.4)">
+ <title>linecap square - zero path visible</title>
+ <g stroke="red" stroke-width="24">
+ <path d="M300,150l0.004,0.001m50,0q50,15 110,0" />
+ <path d="M300,200q50,15 110,0m50,0l-0.004,0.001" />
+ <path d="M299.98,249.99l0.02,0.01m49.98,-0.01l0.02,0.01m50,0l60,30" />
+ <path d="M499.99,250l0.002,0m49.99,0h0.002"/>
+ </g>
+
+ <g stroke="blue" stroke-width="25">
+ <path d="M300,150l0,0m50,0q50,15 110,0" />
+ <path d="M300,200q50,15 110,0m50,0z" />
+ <path d="M300,250zm50,0zm50,0l60,30" />
+ <path d="M500,250zm50,0z" />
+ </g>
+ </g>
+
+
+ <g xml:id="g1" stroke-linecap="square" fill="none" transform=" translate(250,70) scale(0.2)">
+ <path xml:id="rederror"
+ d="M200,200L300,300M499.99,499.99L500.01,500.01M700,700L800,800"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path xml:id="bluetestcase"
+ d="M200,300L300,300M500,500ZM700,700L800,700"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+ <path xml:id="rederror2"
+ d="M200,1000h100M450,1000h100M700,1000h100"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path xml:id="bluetestcase2"
+ d="M200,900h100M450,900h100M700,900h100"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+ <path xml:id="rederror3"
+ d="M1100,100v100m0,300v100m0,300v100"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path xml:id="bluetestcase3"
+ d="M1000,100v100m0,300v100m0,300v100"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+
+ <path xml:id="rederror4"
+ d="M-350,1000h100m99.99,0c0,0 0,0 0.02,0m99.99,0h100"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path xml:id="bluetestcase4"
+ d="M-350,1000h100m100,0c0,0 0,0 0,0m100,0h100"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+ </g>
+
+
+ <g stroke-linecap="square" fill="none" transform=" translate(250,70) scale(0.2)">
+ <path xml:id="rederror5"
+ d="M599.99,1300h0.01m120,0c120,0 0,120 200,100"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path xml:id="bluetestcase5"
+ d="M600,1300h0m120,0c120,0 0,120 200,100"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+
+
+ <path xml:id="rederror6"
+ d="M100,1300c120,0 0,120 240,120m100,0v0.01"
+ stroke="red"
+ stroke-width="48">
+ <title>Red comparison - if visible - error</title>
+ </path>
+ <path xml:id="bluetestcase6"
+ d="M100,1300c120,0 0,120 240,120m100,0v0"
+ stroke="blue"
+ stroke-width="50">
+ <title>Blue testcase covers all red if correct</title>
+ </path>
+ </g>
+
+
+ <g stroke="none" fill="#ccc">
+ <text x="240" y="30">stroking of path fragments</text>
+ <text x="240" y="50">with length zero</text>
+ <text x="240" y="80">red = wrong</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-stroke-207-t.png b/test/svg/svg1.2/svg/paint-stroke-207-t.png
new file mode 100644
index 0000000..5c1386f
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-stroke-207-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-stroke-207-t.svg b/test/svg/svg1.2/svg/paint-stroke-207-t.svg
new file mode 100644
index 0000000..22a36a1
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-stroke-207-t.svg
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="DOH" desc="Centering of stroke on the outline of rectangles." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-stroke-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Centering of stroke on the outline of rectangles.
+ </p>
+ <p>
+ The main indication for a failed test is the appearence of something red.
+ </p>
+ <p>
+ The width and position of the stroke centered on the outline of a rectangle is tested with four stroked rectangles,
+ one is the thin black stroked test frame rectangle, the second one a large blue rectangle, the third a rectangle
+ with rounded corners, looking like a circle and the fourth a small square.
+ </p>
+ <p>
+ The correct position is tested by a comparsion with several filled rectangles in the background or in the fourth case
+ covering the test square completely. The parts of the background covered with the blue test rectangles are filled red,
+ respectively the test square is stroked red too.
+ Therefore if something red gets visible, the position of the stroke of
+ the related test rectangle is wrong.
+ </p>
+ <p>
+ According to the conformance criteria all visual rendering should be accurate to within one px unit to the mathematically
+ correct result. Therefore possible residuals from the red background parts have to be in this
+ range of accuracy to pass the test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-stroke-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g>
+ <title>background of filled rectangles indicating the position of the stroked test rectangles</title>
+ <rect x="0" y="0" width="480" height="360" fill="#fff" />
+ <rect x="0.5" y="0.5" width="479" height="359" fill="#f00" />
+ <rect x="1.5" y="1.5" width="477" height="357" fill="#fff" />
+ <rect x="60" y="40" width="360" height="240" fill="#f00" />
+ <rect x="80" y="60" width="320" height="200" fill="#fff" />
+ <rect x="119.6" y="109.6" width="100.8" height="100.8" rx="200" fill="#f00" />
+ <rect x="140.4" y="130.4" width="59.2" height="59.2" ry="200" fill="#fff" />
+ <rect x="260" y="110" width="100" height="100" fill="#a00" />
+ <rect x="280" y="130" width="60" height="60" fill="#fff" />
+ </g>
+ <g stroke="#00f" stroke-width="20" fill="none">
+ <rect x="70" y="50" width="340" height="220">
+ <title>large blue stroked test rectangle</title>
+ </rect>
+ <rect x="130" y="120" width="80" height="80" ry="40" rx="40" stroke-width="20.8">
+ <title>small blue stroked test rectangle with rounded corners looking like a circle</title>
+ </rect>
+ </g>
+
+
+
+ <rect x="270" y="120" width="80" height="80" stroke="#f00" stroke-width="20" fill="none">
+ <title>small red stroked test rectangle</title>
+ </rect>
+ <g stroke="none" fill="#00f">
+ <title>small blue rectangles to cover the small red stroked test rectangle</title>
+ <rect x="260" y="110" width="80" height="20" />
+ <rect x="340" y="110" width="20" height="80" />
+ <rect x="280" y="190" width="80" height="20" />
+ <rect x="260" y="130" width="20" height="80" />
+ </g>
+
+
+ <g font-size="12" stroke="none" fill="#ccc">
+ <text x="340" y="315">position of the stroke:</text>
+ <text x="340" y="328">red = wrong</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-vfill-201-t.png b/test/svg/svg1.2/svg/paint-vfill-201-t.png
new file mode 100644
index 0000000..8532a1d
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-vfill-201-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-vfill-201-t.svg b/test/svg/svg1.2/svg/paint-vfill-201-t.svg
new file mode 100644
index 0000000..2655140
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-vfill-201-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events"
+ viewport-fill="silver">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="AE" desc="Viewport Fill Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-vfill-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Viewport Fill Attribute</p>
+ <p>
+ The root SVG element of this test slide has a 'viewport-fill' attribute set to 'silver'.
+ At the start the entire background should be a light grey.This should then change to aqua.
+ There are two reference squares in the center - silver and aqua.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-vfill-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="#555" font-size="10" text-anchor="middle">
+ <text fill="#000" x="240" font-size="14" y="30" xml:id="display-title">Viewport Fill Attribute</text>
+ <text x="240" y="45" xml:id="comment-1">
+ The root SVG element of this test slide has a 'viewport-fill' attribute set to 'silver'.
+ </text>
+ <text x="240" y="57" xml:id="comment-2">
+ At the start the entire background should be a light grey.This should then change to aqua.
+ </text>
+ <text x="240" y="69" xml:id="comment-3">
+ There are two reference squares in the center - silver and aqua.
+ </text>
+ </g>
+ <g >
+ <rect x="170" y="135" width="60" height="60" fill="silver" stroke="black"/>
+ <rect x="250" y="135" width="60" height="60" fill="aqua" stroke="black"/>
+ </g>
+ <animate xlink:href="#svg-root" attributeName="viewport-fill" from="silver" to="aqua" begin="2s" dur="3s" fill="freeze"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-vfill-202-t.png b/test/svg/svg1.2/svg/paint-vfill-202-t.png
new file mode 100644
index 0000000..6c4e187
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-vfill-202-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-vfill-202-t.svg b/test/svg/svg1.2/svg/paint-vfill-202-t.svg
new file mode 100644
index 0000000..f93aa1d
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-vfill-202-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events"
+ viewport-fill="yellow" viewport-fill-opacity="0.5">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Viewport-fill on transparent image" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-vfill-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests viewport-fill and viewport-fill-opacity.
+ The image should show the correct viewport-fill (green).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-vfill-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="1" y="90" width="478" height="180" stroke="black" fill="red" fill-opacity="0.3"/>
+ <image xlink:href="../images/viewport-fill-img.png" x="64" y="64" width="104" height="112" transform="scale(0.5) translate(-32, -32)" viewport-fill="green"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paint-vfill-203-t.png b/test/svg/svg1.2/svg/paint-vfill-203-t.png
new file mode 100644
index 0000000..67bd3fc
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-vfill-203-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-vfill-203-t.svg b/test/svg/svg1.2/svg/paint-vfill-203-t.svg
new file mode 100644
index 0000000..278d90a
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-vfill-203-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events"
+ viewport-fill="yellow">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Animation of viewport fill and opacity" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-vfill-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on viewport-fill and viewport-fill-opacity.
+ Animates viewport-fill from yellow to blue over one second, and animates viewport-fill-opacity from 1.0 to 0.5.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-vfill-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <animate xlink:href="#svg-root" attributeName="viewport-fill" values="yellow;blue" dur="5s" repeatCount="1" fill="freeze"/>
+ <animate xlink:href="#svg-root" attributeName="viewport-fill-opacity" values="1.0;0.5" dur="5s" repeatCount="1" fill="freeze"/>
+ <rect x="1" y="90" width="478" height="180" stroke="black" fill="red" fill-opacity="0.3"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/paint-vfill-204-t.png b/test/svg/svg1.2/svg/paint-vfill-204-t.png
new file mode 100644
index 0000000..05c6237
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-vfill-204-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-vfill-204-t.svg b/test/svg/svg1.2/svg/paint-vfill-204-t.svg
new file mode 100644
index 0000000..6011e0a
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-vfill-204-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events"
+ viewport-fill="yellow" viewport-fill-opacity="0.0">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Viewport fill and opacity inheritance" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: paint-vfill-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on viewport-fill and viewport-fill-opacity. viewport-fill-opacity is set to 0.0 so the set viewport-fill
+ color should not be visible. The image has its viewport-fill set to "inherit" and viewport-fill-opacity to 1.0
+ so the image should show with a yellow viewport-fill and full opacity.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-vfill-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18" viewport-fill="inherit">
+ <rect x="1" y="90" width="478" height="180" stroke="black" fill="red" fill-opacity="0.3"/>
+ <image xlink:href="../images/viewport-fill-img.png" x="64" y="64" width="104" height="112" viewport-fill="inherit" viewport-fill-opacity="1.0"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/paint-vfill-205-t.png b/test/svg/svg1.2/svg/paint-vfill-205-t.png
new file mode 100644
index 0000000..4de9694
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-vfill-205-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-vfill-205-t.svg b/test/svg/svg1.2/svg/paint-vfill-205-t.svg
new file mode 100644
index 0000000..53e6ebc
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-vfill-205-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events"
+ viewport-fill="yellow" viewport-fill-opacity="0.5">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Viewport fill and opacity" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: paint-vfill-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests viewport-fill and viewport-fill-opacity.
+ Output should match reference image.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-vfill-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="1" y="90" width="478" height="180" stroke="black" fill="red" fill-opacity="0.3"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/paint-vfill-206-t.png b/test/svg/svg1.2/svg/paint-vfill-206-t.png
new file mode 100644
index 0000000..4831b26
Binary files /dev/null and b/test/svg/svg1.2/svg/paint-vfill-206-t.png differ
diff --git a/test/svg/svg1.2/svg/paint-vfill-206-t.svg b/test/svg/svg1.2/svg/paint-vfill-206-t.svg
new file mode 100644
index 0000000..80f9952
--- /dev/null
+++ b/test/svg/svg1.2/svg/paint-vfill-206-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events"
+ viewport-fill="yellow" viewport-fill-opacity="1">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="AE" desc="Viewport Fill Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: paint-vfill-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Viewport Fill Opacity Attribute</p>
+ <p>
+ The root SVG element of this test slide has a 'viewport-fill' attribute set to 'yellow'
+ with a 'viewport-fill-opacity' of 1. At the start the entire background should be solid yellow.
+ This should then change to a pale bluish gray. There are two reference squares in the center - solid yellow - to
+ match the background at the start and a pale yellow that should match the backgound after a few seconds.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paint-vfill-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="#555" font-size="10" text-anchor="middle">
+ <text fill="#000" x="240" font-size="14" y="30" xml:id="display-title">Viewport Fill Opacity Attribute</text>
+ <text x="240" y="45" xml:id="comment-1" font-size="8">
+ The root SVG element of this test slide has a 'viewport-fill' attribute set to 'yellow'
+ </text>
+ <text x="240" y="57" xml:id="comment-2" font-size="8">
+ with a 'viewport-fill-opacity' of 1. At the start the entire background should be solid yellow.
+ </text>
+ <text x="240" y="69" xml:id="comment-3" font-size="8">
+ This should then change to a pale bluish gray. There are two reference squares in the center.
+ </text>
+ </g>
+ <g>
+ <rect x="170" y="135" width="60" height="60" fill="white" stroke="black"/>
+ <rect x="170" y="135" width="60" height="60" fill="yellow" fill-opacity="1" stroke="black"/>
+ <rect x="250" y="135" width="60" height="60" fill="white" stroke="black"/>
+ <rect x="250" y="135" width="60" height="60" fill="green" fill-opacity="0.2" stroke="black"/>
+ </g>
+ <animate xlink:href="#svg-root" attributeName="viewport-fill" from="yellow" to="green" begin="2s" dur="3s" fill="freeze"/>
+ <animate xlink:href="#svg-root" attributeName="viewport-fill-opacity" from="1" to="0.2" begin="2s" dur="3s" fill="freeze"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-01-t.png b/test/svg/svg1.2/svg/paths-data-01-t.png
new file mode 100644
index 0000000..0763b11
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-01-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-01-t.svg b/test/svg/svg1.2/svg/paths-data-01-t.svg
new file mode 100644
index 0000000..407a70a
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-01-t.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,AE" owner="LH" desc="Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the cubic Bezier curveto, both regular and shorthand/smooth forms - C, c, S, s (along with Mm and Zz)." status="accepted"
+ approved="yes"
+ version="$Revision: 1.13 $" testname="$RCSfile: paths-data-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test that the viewer has the basic capability to handle the 'path' element and its data (d) attribute in combination with the cubic Bezier curveto commands, C, c, S, s (plus Mm and Zz).</p>
+ <p>There are 8 subtests, each composed from the cubic Bezier path commands per the label by the subtest. On-curve control points (i.e., the curve position) are marked by small blue squares. Subtests are filled, or stroked, or both, using simple style properties and colors.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansISO-8859-1" unicode-range="U+0-FF">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans-ISO-8859-1.svg#iso_8859_1" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First Curve "X" that has subpath utilizing M, C, S, m, c, & s ======== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="240" y="14" text-anchor="middle">Cubic bézier curves drawn with commands:</text>
+ <path xml:id="X_curve_MCSmcs" fill="#FF0000" stroke="#00C000" d=" M 210 130 C 145 130 110 80 110 80 S 75 25 10 25 m 0 105 c 65 0 100 -50 100 -50 s 35 -55 100 -55 " />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ===================================== -->
+ <!-- ====================================================================== -->
+ <rect x="208" y="128" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="108" y="78" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="8" y="23" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="8" y="128" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="108" y="78" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="208" y="23" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="5" y="82">M,C,S,m,c,s</text>
+ <!-- ====================================================================== -->
+ <!-- Infinity using M, c, c, c, C & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Infinity_McccCz" fill="none" stroke="#000000" d=" M 240 90 c 0 30 7 50 50 0 c 43 -50 50 -30 50 0 c 0 83 -68 -34 -90 -30 C 240 60 240 90 240 90 z " />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="238" y="88" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="288" y="88" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="338" y="88" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="248" y="58" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="253" y="50">M,c,c,c,C,z</text>
+ <!-- ====================================================================== -->
+ <!-- Horizontal line utilizing M, C & Z =================================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Line_MCZ" fill="none" stroke="#000000" d="M80 170 C100 170 160 170 180 170Z" />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="78" y="168" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="178" y="168" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="110" y="190">M,C,Z</text>
+ <!-- ====================================================================== -->
+ <!-- Inverted V using M, C, c & Z ========================================= -->
+ <!-- ====================================================================== -->
+ <path xml:id="Inv_V_MCcZ" fill="#00C000" stroke="none" d="M5 260 C40 260 60 175 55 160 c -5 15 15 100 50 100Z" />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="3" y="258" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="53" y="158" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="103" y="258" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="85" y="220">M,C,c,Z</text>
+ <!-- ====================================================================== -->
+ <!-- Remembrance Ribbon using m, c & s ==================================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Rem_Rib_mcs" fill="none" stroke="#000000" d="m 200 260 c 50 -40 50 -100 25 -100 s -25 60 25 100 " />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="198" y="258" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="223" y="158" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="248" y="258" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="165" y="210">m,c,s</text>
+ <!-- ====================================================================== -->
+ <!-- 90 degree arc using M & C ============================================ -->
+ <!-- ====================================================================== -->
+ <path xml:id="Arc_MC" fill="#0000FF" stroke="#000000" d=" M 360 100 C 420 90 460 140 450 190" />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="98" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="448" y="188" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="360" y="150">M,C</text>
+ <!-- ====================================================================== -->
+ <!-- Circle using M, c, s, s, s & z ======================================= -->
+ <!-- ====================================================================== -->
+ <path xml:id="Circle_Mcssz" fill="#FFFF00" stroke="#000000" d="M360 210 c 0 20 -16 36 -36 36 s -36 -16 -36 -36 s 16 -36 36 -36 s 36 16 36 36 z " />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="208" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="322" y="244" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="286" y="208" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="322" y="172" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="290" y="265">M,c,s,s,s,z</text>
+ <!-- ====================================================================== -->
+ <!-- Inverted horseshoe using m, c & z ==================================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Horseshoe_Mcs" fill="#F0F0F0" stroke="#FF0000" d="m 360 325 c -40 -60 95 -100 80 0 z " />
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="323" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <rect x="438" y="323" width="4" height="4" fill="#4A83FF" stroke="none" />
+ <text font-size="12" x="380" y="340">m,c,z</text>
+ </g>
+ <g font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.13 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansISO-8859-1,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-02-t.png b/test/svg/svg1.2/svg/paths-data-02-t.png
new file mode 100644
index 0000000..e71ac99
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-02-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-02-t.svg b/test/svg/svg1.2/svg/paths-data-02-t.svg
new file mode 100644
index 0000000..2cfa1d0
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-02-t.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,AE" owner="LH" desc="Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the quadratic Bezier curveto commands, both regular and shorthand/smooth forms - Q, q, T, t (along with Mm and Zz)." status="accepted"
+ approved="yes"
+ version="$Revision: 1.13 $" testname="$RCSfile: paths-data-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test that the viewer has the basic capability to handle the 'path' element and its data (d) attribute in combination with the quadratic Bezier curveto commands, Q, q, T, t (plus Mm and Zz).</p>
+ <p>There are 7 subtests, each composed from the quadric Bezier path commands per the label by the subtest. On-curve control points (i.e., the curve position) are marked by small colored squares. Subtests are filled, or stroked, or both, using simple style properties and colors.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansISO-8859-1" unicode-range="U+0-FF">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans-ISO-8859-1.svg#iso_8859_1" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Quadratic bézier curves drawn with commands:</text>
+ <!-- ====================================================================== -->
+ <!-- Quad Bezier with sub-path using M, Q, M, q, & z ====================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Bez_MQMqz" fill="none" stroke="#0000FF" stroke-width="3" d="M 15 20 Q 30 120 130 30 M 180 80 q -75 -100 -163 -60z" />
+ <text font-size="12" x="80" y="86">M,Q,M,q,z</text>
+ <rect x="13" y="18" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="128" y="28" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="178" y="78" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="15" y="18" width="4" height="4" fill="#00C000" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Quad Bezier with sub-path using m, q, z, m, q, & z =================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Bez_fill_MQzmqz" fill="#FFFF00" stroke="#CF0000" d="M372 130Q272 50 422 10zm70 0q50-150-80-90z" />
+ <text font-size="12" x="352" y="150">m,q,z,m,q,z</text>
+ <rect x="370" y="128" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="420" y="8" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="440" y="128" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="360" y="38" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Simple Bezier using M, Q, & Z ======================================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Bez_stroke_MQz" fill="none" stroke="#00FFFF" d="M224 103Q234 -12 304 33Z" />
+ <text font-size="12" x="192" y="36">M,Q,Z</text>
+ <rect x="222" y="101" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="302" y="31" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Tri Bezier using M, Q, T, Q, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Tri_MQTQz" fill="#00C000" stroke="#000000" d="M208 168Q258 268 308 168T258 118Q128 88 208 168z" />
+ <text font-size="12" x="308" y="188">M,Q,T,Q,z</text>
+ <rect x="206" y="166" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="306" y="166" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="256" y="116" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="206" y="206" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Double Bezier using M, Q, Q, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path xml:id="Inv_V_MCcZ" fill="#CF0000" stroke="none" d=" M 60 100 Q -40 150 60 200 Q 160 150 60 100 z " />
+ <text font-size="12" x="80" y="200">M,Q,Q,z</text>
+ <rect x="58" y="98" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="58" y="198" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="58" y="98" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Sin Wave using M, q, t, t, t, t, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path xml:id="Sin_Mqttttz" fill="none" stroke="#FF0000" d="M240 296q25-100 47 0t47 0t47 0t47 0t47 0z" />
+ <text font-size="12" x="380" y="236">M,q,t,t,t,t,z</text>
+ <rect x="238" y="294" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="285" y="294" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="332" y="294" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="379" y="294" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="426" y="294" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="473" y="294" width="4" height="4" fill="#0000FF" stroke="none" />
+ <!-- ====================================================================== -->
+ <!-- Double Spade using M, q, Q, q, Q, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path xml:id="Dbl_spd_MCcZ" fill="#0000C0" stroke="#00CF00" stroke-width="2" d="M172 193q-100 50 0 50Q72 243 172 293q100 -50 0 -50Q272 243 172 193z" />
+ <text font-size="12" x="48" y="280">M,q,Q,q,Q,z</text>
+ <rect x="170" y="191" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="170" y="241" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="170" y="291" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="170" y="241" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="170" y="191" width="4" height="4" fill="#FF0000" stroke="none" />
+ </g>
+ <g font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.13 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansISO-8859-1,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-04-t.png b/test/svg/svg1.2/svg/paths-data-04-t.png
new file mode 100644
index 0000000..308d9a2
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-04-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-04-t.svg b/test/svg/svg1.2/svg/paths-data-04-t.svg
new file mode 100644
index 0000000..3493f26
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-04-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,AE" owner="LH" desc="Test that viewer has the basic capability to handle the <path> element and data (d) attribute in combination with the moveto, lineto, and closepath commands - M, L, Z, m, l, and z." status="accepted"
+ approved="yes"
+ version="$Revision: 1.12 $" testname="$RCSfile: paths-data-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the 'path' element, and its data attribute (d) in combination with the straight-line path commands. Two pairs of concentric equilateral triangles are drawn using respectively M,L,Z and m,l,z. The shapes are identical, with one stroked and one filled. The fill-mode default of "even-odd" means that the inner triangle is hollow.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Lines drawn with commands (absolute coordinates):</text>
+ <!-- ====================================================================== -->
+ <!-- First Group of Triangles using M, L & Z commands ===================== -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8)">
+ <text font-size="12" x="125" y="30" text-anchor="middle">M,L,L,L,Z,</text>
+ <text font-size="12" x="125" y="46" text-anchor="middle">subpath</text>
+ <text font-size="12" x="125" y="61" text-anchor="middle">M,L,L,L,Z</text>
+ <path xml:id="Triangle_stroke_MLZ" fill="none" stroke="#000000" d=" M 62.00000 56.00000 L 113.96152 146.00000 L 10.03848 146.00000 L 62.00000 56.00000 Z M 62.00000 71.00000 L 100.97114 138.50000 L 23.02886 138.50000 L 62.00000 71.00000 Z " />
+ <rect x="60.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="111.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="8.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="60.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="98.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="21.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <text font-size="12" x="42" y="162">stroked</text>
+ <path xml:id="Triangle_fill_MLZ" fill="#FF0000" stroke="none" fill-rule="evenodd" d=" M 177.00000 56.00000 L 228.96152 146.00000 L 125.03848 146.00000 L 177.00000 56.00000 Z M 177.00000 71.00000 L 215.97114 138.50000 L 138.02886 138.50000 L 177.00000 71.00000 Z " />
+ <rect x="175.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="226.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="123.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="175.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="213.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="136.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <text font-size="12" x="162" y="162">filled</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-05-t.png b/test/svg/svg1.2/svg/paths-data-05-t.png
new file mode 100644
index 0000000..eaacddf
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-05-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-05-t.svg b/test/svg/svg1.2/svg/paths-data-05-t.svg
new file mode 100644
index 0000000..2e0eeb2
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-05-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,AE" owner="LH" desc="Test that viewer has the basic capability to handle the <path> element and data (d) attribute in combination with the moveto, lineto, and closepath commands - M, L, Z, m, l, and z." status="accepted"
+ approved="yes"
+ version="$Revision: 1.13 $" testname="$RCSfile: paths-data-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the 'path' element, and its data attribute (d) in combination with the straight-line path commands. Two pairs of concentric equilateral triangles are drawn using respectively M,L,Z and m,l,z. The shapes in each pair are identical, with one stroked and one filled. The fill-mode default of "even-odd" means that the inner triangle is hollow.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Lines drawn with commands (relative coordinates):</text>
+ <!-- ====================================================================== -->
+ <!-- Second Group of Triangles using m, l & z commands===================== -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8) translate(0, -150)">
+ <text font-size="12" x="125" y="180" text-anchor="middle">m,l,l,l,z,</text>
+ <text font-size="12" x="125" y="194" text-anchor="middle">subpath</text>
+ <text font-size="12" x="125" y="208" text-anchor="middle">m,l,l,l,z</text>
+ <path xml:id="Triangle_stroke_mlz" fill="none" stroke="#000000" d=" m 62.00000 190.00000 l 51.96152 90.00000 l -103.92304 0.00000 l 51.96152 -90.00000 z m 0.00000 15.00000 l 38.97114 67.50000 l -77.91228 0.00000 l 38.97114 -67.50000 z " />
+ <rect x="60.00000" y="188.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="111.96152" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="8.03848" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="60.00000" y="203.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="98.97114" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="21.02886" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <path xml:id="Triangle_fill_mlz" fill="#00C000" stroke="none" fill-rule="evenodd" d=" m 177.00000 190.00000 l 51.96152 90.00000 l -103.92304 0.00000 l 51.96152 -90.00000 z m 0.00000 15.00000 l 38.97114 67.50000 l -77.91228 0.00000 l 38.97114 -67.50000 z " />
+ <rect x="175.00000" y="188.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="226.96152" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="123.03848" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="175.00000" y="203.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="213.97114" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="136.02886" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.13 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-06-t.png b/test/svg/svg1.2/svg/paths-data-06-t.png
new file mode 100644
index 0000000..1264a2a
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-06-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-06-t.svg b/test/svg/svg1.2/svg/paths-data-06-t.svg
new file mode 100644
index 0000000..a182a81
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-06-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,AE" owner="LH" desc="Test that viewer has the basic capability to handle the <path> element and data (d) attribute in combination with the moveto, lineto, and closepath commands - M, L, Z, m, l, and z." status="accepted"
+ approved="yes"
+ version="$Revision: 1.12 $" testname="$RCSfile: paths-data-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the 'path' element, and its data attribute (d) in combination with the straight-line path commands. Two pairs of staircase figures are drawn using respectively M,H,V,Z and m,h,v,z. The shapes in each pair are identical, with one stroked and one filled.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Horizontal and Vertical Lines drawn with commands (absolute coordinates):</text>
+ <g transform="scale(1.8) translate(-200, 0)">
+ <!-- ====================================================================== -->
+ <!-- First Group of Stairs using M, H, V & Z commands====================== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="288" y="30">M,H,V,H,</text>
+ <text font-size="12" x="288" y="46">V,H,V,H,</text>
+ <text font-size="12" x="304" y="62">V,Z</text>
+ <path xml:id="Stairs_stroke_MHVZ" fill="none" stroke="#000000" d=" M 240.00000 56.00000 H 270.00000 V 86.00000 H 300.00000 V 116.00000 H 330.00000 V 146.00000 H 240.00000 V 56.00000 Z " />
+ <rect x="238.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="268.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="268.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="298.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="298.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="328.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="328.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="238.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <path xml:id="Stairs_fill_MHVZ" fill="#0000FF" stroke="none" d=" M 350.00000 56.00000 H 380.00000 V 86.00000 H 410.00000 V 116.00000 H 440.00000 V 146.00000 H 350.00000 V 56.00000 Z " />
+ <rect x="348.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="378.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="378.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="408.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="408.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="438.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="438.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <rect x="348.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none" />
+ <!-- ====================================================================== -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-07-t.png b/test/svg/svg1.2/svg/paths-data-07-t.png
new file mode 100644
index 0000000..98bed0e
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-07-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-07-t.svg b/test/svg/svg1.2/svg/paths-data-07-t.svg
new file mode 100644
index 0000000..f2f4de1
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-07-t.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,AE" owner="LH" desc="Test that viewer has the basic capability to handle the <path> element and data (d) attribute in combination with the moveto, lineto, and closepath commands - M, L, Z, m, l, and z." status="accepted"
+ approved="yes"
+ version="$Revision: 1.12 $" testname="$RCSfile: paths-data-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the 'path' element, and its data attribute (d) in combination with the straight-line path commands. Two pairs of staircase figures are drawn using respectively M,H,V,Z and m,h,v,z. The shapes in each pair are identical, with one stroked and one filled.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Horizontal and Vertical Lines drawn with commands (relative coordinates):</text>
+ <g transform="scale(1.8) translate(-200, -150)">
+ <!-- ====================================================================== -->
+ <!-- Second Group of Stairs using m, h, v & z commands====================== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="288" y="180">m,h,v,h</text>
+ <text font-size="12" x="288" y="194">v,h,v,h</text>
+ <text font-size="12" x="304" y="208">v,z</text>
+ <path xml:id="Stairs_stroke_mhvz" fill="none" stroke="#000000" d=" m 240.00000 190.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h -90.00000 v -90.00000 z " />
+ <rect x="238.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="268.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="268.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="298.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="298.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="328.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="328.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="238.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <path xml:id="Stairs_fill_mhvz" fill="#FFFF00" stroke="none" d=" m 350.00000 190.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h -90.00000 v -90.00000 z " />
+ <rect x="348.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="378.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="378.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="408.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="408.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="438.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="438.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ <rect x="348.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-08-t.png b/test/svg/svg1.2/svg/paths-data-08-t.png
new file mode 100644
index 0000000..a7cc265
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-08-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-08-t.svg b/test/svg/svg1.2/svg/paths-data-08-t.svg
new file mode 100644
index 0000000..18e7ac9
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-08-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN,AN" owner="SH" desc="tests support for moveto and closepath path commands" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: paths-data-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the 'path' element, and its data attribute (d) in combination with the straight-line path commands. Two pairs of concentric equilateral triangles are drawn using M and Z. No L commands are used in this test as they are implied after an M or Z command. The shapes are identical, with one stroked and one filled. The fill-mode default of "even-odd" means that the inner triangle is hollow.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First Group of Triangles using M & Z commands ======================== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="240" y="14" text-anchor="middle">Lines drawn with commands (testing implicit followup of 'L' commands):</text>
+ <text font-size="24" x="180" y="64">M and Z</text>
+ <g transform="scale(1.8)">
+ <path xml:id="Triangle_stroke_MZ" fill="none" stroke="#000000" d=" M 62.00000 56.00000 113.96152 146.00000 10.03848 146.00000 62.00000 56.00000 Z M 62.00000 71.00000 100.97114 138.50000 23.02886 138.50000 62.00000 71.00000 Z " />
+ <rect x="60.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="111.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="8.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="60.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="98.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="21.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <text font-size="12" x="42" y="162">stroked</text>
+ <path xml:id="Triangle_fill_MZ" fill="#FF0000" stroke="none" fill-rule="evenodd" d=" M 177.00000 56.00000 228.96152 146.00000 125.03848 146.00000 177.00000 56.00000 Z M 177.00000 71.00000 215.97114 138.50000 138.02886 138.50000 177.00000 71.00000 Z " />
+ <rect x="175.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="226.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="123.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="175.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="213.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <rect x="136.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none" />
+ <text font-size="12" x="162" y="162">filled</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-09-t.png b/test/svg/svg1.2/svg/paths-data-09-t.png
new file mode 100644
index 0000000..d42f836
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-09-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-09-t.svg b/test/svg/svg1.2/svg/paths-data-09-t.svg
new file mode 100644
index 0000000..b632db7
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-09-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN,AN" owner="SH" desc="tests moveto and closepath path commands" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: paths-data-09-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify the basic capability to handle the 'path' element, and its data attribute (d) in combination with the straight-line path commands. Two pairs of concentric equilateral triangles are drawn using m and z. No l commands are used in this test as they are implied after an m or z command. The shapes are identical, with one stroked and one filled. The fill-mode default of "even-odd" means that the inner triangle is hollow.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Second Group of Triangles using m & z commands ===================== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="240" y="14" text-anchor="middle">Lines drawn with commands (testing implicit followup of 'l' commands):</text>
+ <text font-size="24" x="180" y="64">m and z</text>
+ <g transform="scale(1.8) translate(0, -150)">
+ <path xml:id="Triangle_stroke_mz" fill="none" stroke="#000000" d=" m 62.00000 190.00000 51.96152 90.00000 -103.92304 0.00000 51.96152 -90.00000 z m 0.00000 15.00000 38.97114 67.50000 -77.91228 0.00000 38.97114 -67.50000 z " />
+ <rect x="60.00000" y="188.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="111.96152" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="8.03848" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="60.00000" y="203.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="98.97114" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="21.02886" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <path xml:id="Triangle_fill_mz" fill="#00C000" stroke="none" fill-rule="evenodd" d=" m 177.00000 190.00000 51.96152 90.00000 -103.92304 0.00000 51.96152 -90.00000 z m 0.00000 15.00000 38.97114 67.50000 -77.91228 0.00000 38.97114 -67.50000 z " />
+ <rect x="175.00000" y="188.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="226.96152" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="123.03848" y="278.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="175.00000" y="203.00000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="213.97114" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ <rect x="136.02886" y="270.50000" width="4" height="4" fill="#FF0000" stroke="none" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-10-t.png b/test/svg/svg1.2/svg/paths-data-10-t.png
new file mode 100644
index 0000000..aeaa745
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-10-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-10-t.svg b/test/svg/svg1.2/svg/paths-data-10-t.svg
new file mode 100644
index 0000000..f0f75e7
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-10-t.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN,AN" owner="SH" desc="tests paths with closepath vs. same start and end point" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: paths-data-10-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify that the viewer renders the line caps and line joins for open and closed paths properly. Verify that the open triangular paths are stroked differently at ends of the path than they are at their intermediate corners. In contrast, the corners of a closed path should all appear the same.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-10-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing correct stroking with open and closed paths</text>
+ <g transform="scale(0.9),translate(20,30)">
+ <g transform="translate(10,10)">
+ <text font-size="18" x="10" y="20">open</text>
+ <text font-size="18" x="10" y="38">join=round</text>
+ <text font-size="18" x="10" y="56">cap=butt</text>
+ <text font-size="18" x="10" y="74">M,L</text>
+ <g transform="translate(115,0)">
+ <path xml:id="triangle-01" fill="green" stroke="red" stroke-width="15" stroke-linecap="butt" stroke-linejoin="round" d="M 100 0 L 100 80 0 40 100 0" />
+ </g>
+ </g>
+ <g transform="translate(10,115)">
+ <text font-size="18" x="10" y="20">open</text>
+ <text font-size="18" x="10" y="38">join=bevel</text>
+ <text font-size="18" x="10" y="56">cap=round</text>
+ <text font-size="18" x="10" y="74">m,l</text>
+ <g transform="translate(115,0)">
+ <path xml:id="triangle-02" fill="green" stroke="red" stroke-width="15" stroke-linecap="round" stroke-linejoin="bevel" d="m 100 0 l 0 80 -100 -40 100 -40" />
+ </g>
+ </g>
+ <g transform="translate(10,220)">
+ <text font-size="18" x="10" y="20">open</text>
+ <text font-size="18" x="10" y="38">join=miter</text>
+ <text font-size="18" x="10" y="56">cap=square</text>
+ <text font-size="18" x="10" y="74">M,L</text>
+ <g transform="translate(115,0)">
+ <path xml:id="triangle-03" fill="green" stroke="red" stroke-width="15" stroke-linecap="square" stroke-linejoin="miter" d="M 100 0 L 100 80 0 40 100 0" />
+ </g>
+ </g>
+ <g transform="translate(250,10)">
+ <text font-size="18" x="125" y="20">closed</text>
+ <text font-size="18" x="125" y="38">join=round</text>
+ <text font-size="18" x="125" y="56">cap=butt</text>
+ <text font-size="18" x="125" y="74">M,L,Z</text>
+ <g transform="translate(0,0)">
+ <path xml:id="triangle-04" fill="green" stroke="red" stroke-width="15" stroke-linecap="butt" stroke-linejoin="round" d="M 0 0 L 100 40 0 80 Z" />
+ </g>
+ </g>
+ <g transform="translate(250,115)">
+ <text font-size="18" x="125" y="20">closed</text>
+ <text font-size="18" x="125" y="38">join=bevel</text>
+ <text font-size="18" x="125" y="56">cap=round</text>
+ <text font-size="18" x="125" y="74">m,l,z</text>
+ <g transform="translate(0,0)">
+ <path xml:id="triangle-05" fill="green" stroke="red" stroke-width="15" stroke-linecap="round" stroke-linejoin="bevel" d="m 0 0 l 100 40 -100 40 z" />
+ </g>
+ </g>
+ <g transform="translate(250,220)">
+ <text font-size="18" x="125" y="20">closed</text>
+ <text font-size="18" x="125" y="38">join=miter</text>
+ <text font-size="18" x="125" y="56">cap=square</text>
+ <text font-size="18" x="125" y="74">M,L,Z</text>
+ <g transform="translate(0,0)">
+ <path xml:id="triangle-06" fill="green" stroke="red" stroke-width="15" stroke-linecap="square" stroke-linejoin="miter" d="M 0 0 L 100 40 0 80 Z" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-12-t.png b/test/svg/svg1.2/svg/paths-data-12-t.png
new file mode 100644
index 0000000..04bbf33
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-12-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-12-t.svg b/test/svg/svg1.2/svg/paths-data-12-t.svg
new file mode 100644
index 0000000..4d43b14
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-12-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED,AN" owner="CN" desc="Test using multiple coord sets to build a polybézier, and implicit values for initial S." status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: paths-data-12-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test using multiple coord sets to build a polybézier, and implicit values for initial S.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-12-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansISO-8859-1" unicode-range="U+0-FF">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans-ISO-8859-1.svg#iso_8859_1" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing cubic bézier curves and implicit values for 'S':</text>
+ <text font-size="24" x="220" y="64">M,C,S</text>
+ <text font-size="24" x="220" y="250">M,S</text>
+ <!-- Use multiple coord sets to build a polybézier-->
+ <path fill="none" stroke="red" stroke-width="3" d="M 100 100 C 100 20 200 20 200 100 S 300 180 300 100" />
+ <rect x="100" y="100" width="4" height="4" fill="blue" stroke="none" />
+ <rect x="200" y="100" width="4" height="4" fill="blue" stroke="none" />
+ <rect x="300" y="100" width="4" height="4" fill="blue" stroke="none" />
+ <!-- Test if S not preceeded by either C or S , first control point is coincident with the current point.-->
+ <path fill="none" stroke="red" stroke-width="3" d="M 100 250 S 200 200 200 250 300 300 300 250" />
+ <rect x="100" y="250" width="4" height="4" fill="blue" stroke="none" />
+ <rect x="200" y="200" width="4" height="4" fill="blue" stroke="none" />
+ <rect x="200" y="250" width="4" height="4" fill="blue" stroke="none" />
+ <rect x="200" y="300" width="4" height="4" fill="blue" stroke="none" />
+ <rect x="300" y="300" width="4" height="4" fill="blue" stroke="none" />
+ <rect x="300" y="250" width="4" height="4" fill="blue" stroke="none" />
+ </g>
+ <g font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansISO-8859-1,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-13-t.png b/test/svg/svg1.2/svg/paths-data-13-t.png
new file mode 100644
index 0000000..7d16306
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-13-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-13-t.svg b/test/svg/svg1.2/svg/paths-data-13-t.svg
new file mode 100644
index 0000000..e4f388b
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-13-t.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED,AN" owner="CN" desc="Test multiple coridinates for V and H" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: paths-data-13-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test multiple coordinates for V and H. There should be one horizontal red line and one vertical blue line.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-13-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing implicit followup of 'V' and 'H' commands):</text>
+ <text font-size="24" x="180" y="64">M,H</text>
+ <text font-size="24" x="260" y="230">M,V</text>
+ <!-- Use multiple coords to H, should get a straight horizontal line -->
+ <path stroke="red" stroke-width="5" d=" M 240.00000 56.00000 H 270.00000 300.00000 320.00000 400.00000 " />
+ <!-- Use multiple coords to V, should get a straight vertical line -->
+ <path stroke="blue" stroke-width="5" d=" M 240.00000 156.00000 V 180.00000 200.00000 260.00000 300.00000 " />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-14-t.png b/test/svg/svg1.2/svg/paths-data-14-t.png
new file mode 100644
index 0000000..e643351
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-14-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-14-t.svg b/test/svg/svg1.2/svg/paths-data-14-t.svg
new file mode 100644
index 0000000..a236033
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-14-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED,AN" owner="CN" desc="Test implicit values for moveto." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: paths-data-14-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test implicit values for moveto. If the first command is 'm' it should be taken as an absolute moveto, plus implicit lineto.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-14-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing implicit followup of 'l/L' commands succeeding 'm/M', commands:</text>
+ <text font-size="24" x="110" y="75" text-anchor="middle">m,z,m,z</text>
+ <text font-size="24" x="315" y="75" text-anchor="middle">M,Z,M,Z</text>
+ <g transform="scale(1.8)">
+ <!-- If the first command is 'm' it should be taken as an absolute moveto, plus implicit lineto. -->
+ <path fill="none" stroke="#000000" d=" m 62.00000 56.00000 51.96152 90.00000 -103.92304 0.00000 51.96152 -90.00000 z m 0.00000 15.00000 38.97114 67.50000 -77.91228 0.00000 38.97114 -67.50000 z " />
+ <!-- Test implicit lineto. -->
+ <path fill="#FF0000" stroke="none" fill-rule="evenodd" d=" M 177.00000 56.00000 228.96152 146.00000 125.03848 146.00000 177.00000 56.00000 Z M 177.00000 71.00000 215.97114 138.50000 138.02886 138.50000 177.00000 71.00000 Z " />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/paths-data-15-t.png b/test/svg/svg1.2/svg/paths-data-15-t.png
new file mode 100644
index 0000000..7743c18
Binary files /dev/null and b/test/svg/svg1.2/svg/paths-data-15-t.png differ
diff --git a/test/svg/svg1.2/svg/paths-data-15-t.svg b/test/svg/svg1.2/svg/paths-data-15-t.svg
new file mode 100644
index 0000000..05c8788
--- /dev/null
+++ b/test/svg/svg1.2/svg/paths-data-15-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,ED" owner="CN" desc="Test using multiple coord sets to build a polybézier, then T with no preceeding Q or T." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: paths-data-15-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test using multiple coord sets to build a polybézier, then T with no preceding Q or T.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labeling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: paths-data-15-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansISO-8859-1" unicode-range="U+0-FF">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans-ISO-8859-1.svg#iso_8859_1" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing implement followup of commands for quadratic bézier curves</text>
+ <text font-size="24" x="210" y="120">M,Q</text>
+ <text font-size="24" x="200" y="190">M,T</text>
+ <g transform="scale(1.8) translate(20 50)">
+ <!-- Use multiple coord sets to build a polybezier-->
+ <path fill="none" stroke="red" stroke-width="3" d="M 20 20 Q 50 10 80 20 110 30 140 20 170 10 200 20" />
+ <!-- Test if T not preceded by either Q or T , control point should be coincident with the current point.-->
+ <path fill="none" stroke="blue" stroke-width="3" d="M 20 50 T 50 50 80 50" />
+ <rect x="20" y="50" width="4" height="4" fill="#0000FF" stroke="black" />
+ <rect x="50" y="50" width="4" height="4" fill="#0000FF" stroke="black" />
+ <rect x="80" y="50" width="4" height="4" fill="#0000FF" stroke="black" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansISO-8859-1,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansISO-8859-1,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-elems-01-t.png b/test/svg/svg1.2/svg/render-elems-01-t.png
new file mode 100644
index 0000000..f96a57b
Binary files /dev/null and b/test/svg/svg1.2/svg/render-elems-01-t.png differ
diff --git a/test/svg/svg1.2/svg/render-elems-01-t.svg b/test/svg/svg1.2/svg/render-elems-01-t.svg
new file mode 100644
index 0000000..f652592
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-elems-01-t.svg
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="VH" desc="This test validates that shapes can be both filled." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: render-elems-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies that shapes can be filled.</p>
+ <p>There is one pair of octagons. These are filled.</p>
+ <p>The rendered image should match the reference image except for the text which may show minor layout differences.</p>
+ <p>The test uses the 'path' element, as well as basic fill (solid primary colors), stroke (primary color 1-pixel and wide lines), font-family (Arial) and font-size properties - the common prerequisites.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-elems-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First, fill shape with two different colors -->
+ <!-- ====================================================================== -->
+ <g transform="translate(30, 80)">
+ <g fill="red">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z" />
+ </g>
+ <g fill="black" transform="translate(200, 0)">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z" />
+ </g>
+ <text x="130" y="-30" font-size="28">Shape fill</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-elems-02-t.png b/test/svg/svg1.2/svg/render-elems-02-t.png
new file mode 100644
index 0000000..9bfc6c4
Binary files /dev/null and b/test/svg/svg1.2/svg/render-elems-02-t.png differ
diff --git a/test/svg/svg1.2/svg/render-elems-02-t.svg b/test/svg/svg1.2/svg/render-elems-02-t.svg
new file mode 100644
index 0000000..0c8996b
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-elems-02-t.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg [
+ <!ENTITY shape "<path d='M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z' />">
+]>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="VH" desc="This test validates that shapes can be both stroked." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: render-elems-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies that shapes can be stroked.</p>
+ <p>There is one pair of octagons. These are stroked.</p>
+ <p>The rendered image should match the reference image except for the text which may show minor layout differences.</p>
+ <p>The test uses the 'rect' element, as well as basic fill (solid primary colors), stroke (primary color 1-pixel and wide lines), font-family (Arial) and font-size properties - the common prerequisites.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-elems-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Now, stroke shape with two different stroke width and color -->
+ <!-- ====================================================================== -->
+ <g transform="translate(30, 80)">
+ <g fill="none" stroke="red" stroke-width="3">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z" />
+ </g>
+ <g fill="none" stroke="black" stroke-width="9" transform="translate(200, 0)">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z" />
+ </g>
+ <text x="110" y="-30" font-size="28">Shape stroke</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-elems-03-t.png b/test/svg/svg1.2/svg/render-elems-03-t.png
new file mode 100644
index 0000000..6e0021f
Binary files /dev/null and b/test/svg/svg1.2/svg/render-elems-03-t.png differ
diff --git a/test/svg/svg1.2/svg/render-elems-03-t.svg b/test/svg/svg1.2/svg/render-elems-03-t.svg
new file mode 100644
index 0000000..bee69cd
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-elems-03-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg [
+ <!ENTITY shape "<path d='M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z' />">
+]>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="VH" desc="This test validates that shapes can be both filled and stroked." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: render-elems-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies that shapes can be filled, stroked and the order of filling and stroking.</p>
+ <p>There is one pair of octagons. These are filled plus stroked.</p>
+ <p>The rendered image should match the reference image except for the text which may show minor layout differences.</p>
+ <p>The test uses the 'rect' element, as well as basic fill (solid primary colors), stroke (primary color 1-pixel and wide lines), font-family (Arial) and font-size properties - the common prerequisites.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-elems-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Now, fill and stroke. The fill should happen first -->
+ <!-- ====================================================================== -->
+ <g transform="translate(30, 80)">
+ <g fill="yellow" stroke="red" stroke-width="8">&shape;</g>
+ <g stroke="black" fill="blue" stroke-width="8" transform="translate(200, 0)">&shape;</g>
+ <text x="70" y="-30" font-size="28">Shape fill and stroke</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-elems-06-t.png b/test/svg/svg1.2/svg/render-elems-06-t.png
new file mode 100644
index 0000000..ad601eb
Binary files /dev/null and b/test/svg/svg1.2/svg/render-elems-06-t.png differ
diff --git a/test/svg/svg1.2/svg/render-elems-06-t.svg b/test/svg/svg1.2/svg/render-elems-06-t.svg
new file mode 100644
index 0000000..6808229
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-elems-06-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="VH" desc="This test validates that text can be both filled." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: render-elems-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies that text can be filled. The test shows two 'A' characters that are filled and not stroked.</p>
+ <p>The rendered image should match the reference image except for the text which may show minor layout differences.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-elems-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="MyFont" horiz-adv-x="416">
+ <font-face font-family="MyFont" units-per-em="1000" panose-1="2 0 0 6 3 0 0 2 0 4" ascent="700" descent="-127" />
+ <missing-glyph horiz-adv-x="500" />
+ <glyph unicode="A" glyph-name="A" horiz-adv-x="505" d="M73 700L5 0H155L170 165H335L350 0H500L432 700H73ZM183 315L205 550H300L322 315H183Z" />
+ <glyph unicode="B" glyph-name="B" horiz-adv-x="550" d="M40 700V0H510V280L423 350L510 420V700H40ZM360 550V471L306 420H190V550H360ZM190 280H306L360 229V150H190V280Z" />
+ </font>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- First, fill text with two different colors -->
+ <!-- ====================================================================== -->
+ <text x="180" y="40" font-size="30">Text fill</text>
+ <g font-size="300" font-family="MyFont">
+ <text x="60" y="280" fill="red">A</text>
+ <text x="260" y="280" fill="navy">A</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-elems-07-t.png b/test/svg/svg1.2/svg/render-elems-07-t.png
new file mode 100644
index 0000000..b15148a
Binary files /dev/null and b/test/svg/svg1.2/svg/render-elems-07-t.png differ
diff --git a/test/svg/svg1.2/svg/render-elems-07-t.svg b/test/svg/svg1.2/svg/render-elems-07-t.svg
new file mode 100644
index 0000000..3d353e8
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-elems-07-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="VH" desc="This test validates that text can be both stroked." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: render-elems-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies that text can be stroked. The The test shows two characters that are stroked and not filled.</p>
+ <p>The rendered image should match the reference image except for the text which may show minor layout differences.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-elems-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="MyFont" horiz-adv-x="416">
+ <font-face font-family="MyFont" units-per-em="1000" panose-1="2 0 0 6 3 0 0 2 0 4" ascent="700" descent="-127" />
+ <missing-glyph horiz-adv-x="500" />
+ <glyph unicode="A" glyph-name="A" horiz-adv-x="505" d="M73 700L5 0H155L170 165H335L350 0H500L432 700H73ZM183 315L205 550H300L322 315H183Z" />
+ <glyph unicode="B" glyph-name="B" horiz-adv-x="550" d="M40 700V0H510V280L423 350L510 420V700H40ZM360 550V471L306 420H190V550H360ZM190 280H306L360 229V150H190V280Z" />
+ </font>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- Now, stroke text with two different stroke width and color -->
+ <!-- ====================================================================== -->
+ <text x="180" y="40" font-size="30">Text stroke</text>
+ <g font-size="300" font-family="MyFont">
+ <text x="60" y="280" fill="none" stroke="red" stroke-width="12">A</text>
+ <text x="260" y="280" fill="none" stroke="navy" stroke-width="12">B</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-elems-08-t.png b/test/svg/svg1.2/svg/render-elems-08-t.png
new file mode 100644
index 0000000..87a4fce
Binary files /dev/null and b/test/svg/svg1.2/svg/render-elems-08-t.png differ
diff --git a/test/svg/svg1.2/svg/render-elems-08-t.svg b/test/svg/svg1.2/svg/render-elems-08-t.svg
new file mode 100644
index 0000000..1c0d886
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-elems-08-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="VH" desc="This test validates that text can be both filled and stroked." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: render-elems-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies that text can be stroked. The test shows two 'A' characters that are both stroked and filled.</p>
+ <p>The rendered image should match the reference image except for the text which may show minor layout differences.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-elems-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="MyFont" horiz-adv-x="416">
+ <font-face font-family="MyFont" units-per-em="1000" panose-1="2 0 0 6 3 0 0 2 0 4" ascent="700" descent="-127" />
+ <missing-glyph horiz-adv-x="500" />
+ <glyph unicode="A" glyph-name="A" horiz-adv-x="505" d="M73 700L5 0H155L170 165H335L350 0H500L432 700H73ZM183 315L205 550H300L322 315H183Z" />
+ <glyph unicode="B" glyph-name="B" horiz-adv-x="550" d="M40 700V0H510V280L423 350L510 420V700H40ZM360 550V471L306 420H190V550H360ZM190 280H306L360 229V150H190V280Z" />
+ </font>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- Now, fill and stroke. The fill should happen first -->
+ <!-- ====================================================================== -->
+ <text x="120" y="40" font-size="30">Text fill and stroke</text>
+ <g font-size="300" font-family="MyFont">
+ <text x="60" y="280" fill="#f82" stroke="red" stroke-width="12">A</text>
+ <text x="260" y="280" fill="#9ae" stroke="navy" stroke-width="12">B</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-groups-01-t.png b/test/svg/svg1.2/svg/render-groups-01-t.png
new file mode 100644
index 0000000..65dd2ea
Binary files /dev/null and b/test/svg/svg1.2/svg/render-groups-01-t.png differ
diff --git a/test/svg/svg1.2/svg/render-groups-01-t.svg b/test/svg/svg1.2/svg/render-groups-01-t.svg
new file mode 100644
index 0000000..011c63e
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-groups-01-t.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR, DS" owner="VH, AS" desc="This test validates the rendering order of graphic elements and the concept of grouping." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: render-groups-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies implicit rendering order (paragraph 3.3) and grouping mechanism (paragraphs 3.4). It also validates basic Shape, Image and text rendering.</p>
+ <p>This test renders 3 elements: a text string "SVG", then a shape, then an image. Because of their definition order and coordinates, the image should be on top of the rectangle and the rectangle on top of the text. None of the "SVG" should show through the rectangle and none of the rectangle should show through the image.</p>
+ <p>Prerequisites: the test assumes proper handling of the fill stroke, stroke-width, font-size rendering properties. It uses the rect, line, text and image elements, as well as all the elements required for the test template. To ensure that the text string is overlapped by the other elements and to avoid a dependency on system fonts, an SVG font is used.</p>
+ <p>The rendered image should match the reference image exactly.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-groups-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="313">
+ <!-- Converted from Larabie Anglepoise by Batik ttf2svg -->
+ <font-face font-family="larabie-anglepoise" units-per-em="1000" panose-1="0 0 4 0 0 0 0 0 0 0" ascent="703" descent="-300" alphabetic="0" />
+ <missing-glyph horiz-adv-x="500" d="M63 0V700H438V0H63ZM125 63H375V638H125V63Z" />
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="385" d="M371 1H29V144H264Q264 151 264 166Q265 180 265 188Q265 212 249 212H132Q83 212 55 247Q29 279 29 329V566H335V422H136V375Q136 360 144 356Q148 355 168 355H279Q327 355 352 309Q371 273 371 221V1Z" />
+ <glyph unicode="V" glyph-name="V" horiz-adv-x="351" d="M365 563L183 -33L0 563H101L183 296L270 563H365Z" />
+ <glyph unicode="G" glyph-name="G" horiz-adv-x="367" d="M355 1H18V564H355V420H125V144H248V211H156V355H355V1Z" />
+ <hkern g1="V" g2="G" k="-40" />
+ </font>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- 3 overlapping elements in a group -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8, 1.8)">
+ <!-- Background pattern -->
+ <rect x="20" y="10" width="230" height="155" fill="rgb(192, 192, 192)" />
+ <line x1="40" y1="10" x2="40" y2="175" stroke="white" stroke-width="15" />
+ <line x1="70" y1="10" x2="70" y2="175" stroke="white" stroke-width="15" />
+ <line x1="100" y1="10" x2="100" y2="175" stroke="white" stroke-width="15" />
+ <line x1="130" y1="10" x2="130" y2="175" stroke="white" stroke-width="15" />
+ <line x1="160" y1="10" x2="160" y2="175" stroke="white" stroke-width="15" />
+ <line x1="190" y1="10" x2="190" y2="175" stroke="white" stroke-width="15" />
+ <line x1="220" y1="10" x2="220" y2="175" stroke="white" stroke-width="15" />
+ <line x1="250" y1="10" x2="250" y2="175" stroke="white" stroke-width="15" />
+ <rect x="20" y="10" width="230" height="155" fill="none" stroke="black" />
+ <g >
+ <text font-family="larabie-anglepoise" font-size="120" x="30" y="90">SVG</text>
+ <rect x="70" y="55" width="130" height="70" fill="rgb(130, 0, 50)" />
+ <image x="162" y="75" width="80" height="80" xlink:href="../images/sign.png" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/render-groups-03-t.png b/test/svg/svg1.2/svg/render-groups-03-t.png
new file mode 100644
index 0000000..872ec6e
Binary files /dev/null and b/test/svg/svg1.2/svg/render-groups-03-t.png differ
diff --git a/test/svg/svg1.2/svg/render-groups-03-t.svg b/test/svg/svg1.2/svg/render-groups-03-t.svg
new file mode 100644
index 0000000..2bd1926
--- /dev/null
+++ b/test/svg/svg1.2/svg/render-groups-03-t.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="NR" owner="VH" desc="This test validates the rendering order of graphic elements." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: render-groups-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verifies implicit rendering order (paragraph 3.3) and grouping mechanism (paragraphs 3.4). It also validates basic Shape, Image and text rendering.</p>
+ <p>This test renders 3 elements: a text string "SVG", then a shape, then an image. Because of their definition order and coordinates, the image should be on top of the rectangle and the rectangle on top of the text. None of the "SVG" should show through the rectangle and none of the rectangle should show through the image.</p>
+ <p>Prerequisites: the test assumes proper handling of the fill stroke, stroke-width, font-size rendering properties. It uses the rect, line, text and image elements, as well as all the elements required for the test template. To ensure that the text string is overlapped by the other elements and to avoid a dependency on system fonts, an SVG font is used.</p>
+ <p>The rendered image should match the reference image exactly.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: render-groups-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="313">
+ <!-- Converted from Larabie Anglepoise by Batik ttf2svg -->
+ <font-face font-family="larabie-anglepoise" units-per-em="1000" panose-1="0 0 4 0 0 0 0 0 0 0" ascent="703" descent="-300" alphabetic="0" />
+ <missing-glyph horiz-adv-x="500" d="M63 0V700H438V0H63ZM125 63H375V638H125V63Z" />
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="385" d="M371 1H29V144H264Q264 151 264 166Q265 180 265 188Q265 212 249 212H132Q83 212 55 247Q29 279 29 329V566H335V422H136V375Q136 360 144 356Q148 355 168 355H279Q327 355 352 309Q371 273 371 221V1Z" />
+ <glyph unicode="V" glyph-name="V" horiz-adv-x="351" d="M365 563L183 -33L0 563H101L183 296L270 563H365Z" />
+ <glyph unicode="G" glyph-name="G" horiz-adv-x="367" d="M355 1H18V564H355V420H125V144H248V211H156V355H355V1Z" />
+ <hkern g1="V" g2="G" k="-40" />
+ </font>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- 3 overlapping elements in a group with opacity -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8, 1.8)">
+ <!-- Background pattern -->
+ <rect x="20" y="10" width="230" height="155" fill="rgb(192, 192, 192)" />
+ <line x1="40" y1="10" x2="40" y2="175" stroke="white" stroke-width="15" />
+ <line x1="70" y1="10" x2="70" y2="175" stroke="white" stroke-width="15" />
+ <line x1="100" y1="10" x2="100" y2="175" stroke="white" stroke-width="15" />
+ <line x1="130" y1="10" x2="130" y2="175" stroke="white" stroke-width="15" />
+ <line x1="160" y1="10" x2="160" y2="175" stroke="white" stroke-width="15" />
+ <line x1="190" y1="10" x2="190" y2="175" stroke="white" stroke-width="15" />
+ <line x1="220" y1="10" x2="220" y2="175" stroke="white" stroke-width="15" />
+ <line x1="250" y1="10" x2="250" y2="175" stroke="white" stroke-width="15" />
+ <rect x="20" y="10" width="230" height="155" fill="none" stroke="black" />
+ <!-- The following text, rectangle and image are drawn, fully opaque, in -->
+ <!-- the order they are defined. Therefore, none of the 'A' under the -->
+ <!-- rectangle should show. Neither should any of the rectangle under -->
+ <!-- the image. -->
+ <text font-family="larabie-anglepoise" font-size="120" x="30" y="90">SVG</text>
+ <rect x="70" y="55" width="130" height="70" fill="rgb(130, 0, 50)" />
+ <image x="162" y="75" width="80" height="80" xlink:href="../images/sign.png" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-element-201-t.png b/test/svg/svg1.2/svg/script-element-201-t.png
new file mode 100644
index 0000000..1211836
Binary files /dev/null and b/test/svg/svg1.2/svg/script-element-201-t.png differ
diff --git a/test/svg/svg1.2/svg/script-element-201-t.svg b/test/svg/svg1.2/svg/script-element-201-t.svg
new file mode 100644
index 0000000..ede311b
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-element-201-t.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DS, AE" owner="ED" desc="Test that when a script element has both an xlink:href attribute and child character data, the executable content for the script is retrieved from the IRI of the xlink:href attribute, and the child content is not added to the scripting context." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: script-element-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test that when a script element has both an xlink:href attribute and child character data,
+ the executable content for the script is retrieved from the IRI of the xlink:href attribute,
+ and the child content is not added to the scripting context.
+ </p>
+ <p>
+ The test loads an external script resource, which if executed sets the fill or the blue rect to green.
+ If the child content is executed the fill will be set to red and an alert will be displayed.
+ </p>
+ <p>
+ The test has passed if the rect is green after script execution has taken place and there has been no
+ alert displayed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-element-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect xml:id="status" x="120" y="50" width="240" height="240" fill="blue"/>
+
+ <script xlink:href="../images/externalscript.js">
+ document.getElementById("status").setAttributeNS( null, "fill", "red");
+ alert("The test has failed.");
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-element-202-t.png b/test/svg/svg1.2/svg/script-element-202-t.png
new file mode 100644
index 0000000..c3d84eb
Binary files /dev/null and b/test/svg/svg1.2/svg/script-element-202-t.png differ
diff --git a/test/svg/svg1.2/svg/script-element-202-t.svg b/test/svg/svg1.2/svg/script-element-202-t.svg
new file mode 100644
index 0000000..b2a7cf4
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-element-202-t.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test that scripts are not processed until added to the DOM tree." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: script-element-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test that scripts are not processed until added to the DOM tree. Also test that a function defined in a script
+ element can be called from a handler element in the same scripting context.
+ </p>
+ <p>
+ When the blue rect is clicked a script element is created. The script to be run must not be processed until
+ the script element is added to the tree. If it is processed before added to the tree, the rect that is
+ inserted into the document will be red. If not, then it will be green.
+ </p>
+ <p>
+ The test has passed if after clicking the blue rect a green rect is displayed in its place.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-element-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <script>
+ var svgroot = document.documentElement;
+ var fill = "red";
+ var scriptText = "var r = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); r.setAttributeNS( null, 'x', 120); r.setAttributeNS( null, 'y', 50); r.setAttributeNS( null, 'width', 240); r.setAttributeNS( null, 'height', 240); r.setAttributeNS( null, 'fill', fill); svgroot.appendChild(r);"
+
+ function makeScriptElement()
+ {
+ var elm = document.createElementNS("http://www.w3.org/2000/svg", "script");
+ elm.textContent = scriptText;
+
+ fill = "green";
+
+ svgroot.appendChild(elm);
+ }
+ </script>
+
+ <rect xml:id="status" x="120" y="50" width="240" height="240" fill="blue">
+ <handler xe:event="click">
+ makeScriptElement();
+ </handler>
+ </rect>
+ <text x="240" y="180" text-anchor="middle" pointer-events="none">Click here!</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-element-203-t.png b/test/svg/svg1.2/svg/script-element-203-t.png
new file mode 100644
index 0000000..6aaa997
Binary files /dev/null and b/test/svg/svg1.2/svg/script-element-203-t.png differ
diff --git a/test/svg/svg1.2/svg/script-element-203-t.svg b/test/svg/svg1.2/svg/script-element-203-t.svg
new file mode 100644
index 0000000..4f37986
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-element-203-t.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xev="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests script element processing" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: script-element-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The test consists of 8 subtests, each testing requirements from the script processing section.
+ When the test is first loaded it shows 8 red circles. After the scripts have been executed the circles should all be green.
+ </p>
+ <p>
+ The test has passed if all 8 circles are green after the script processing has taken place.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-element-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="30" text-anchor="middle" font-size="24">Test script logic</text>
+
+ <g fill="red" transform="translate(100, 200)">
+ <circle xml:id="c1" cx="30" r="15"/>
+ <circle xml:id="c2" cx="60" r="15"/>
+ <circle xml:id="c3" cx="90" r="15"/>
+ <circle xml:id="c4" cx="120" r="15"/>
+ <circle xml:id="c5" cx="150" r="15"/>
+ <circle xml:id="c6" cx="180" r="15"/>
+ <circle xml:id="c7" cx="210" r="15"/>
+ <circle xml:id="c8" cx="240" r="15"/>
+ </g>
+
+ <!-- For subtest 5 below, set up a listener -->
+ <xev:listener event="load" observer="s3" handler="#loadhandler"/>
+
+ <!-- Subtest 1: Check that xlink:href script fragments are executed => mark c1 green -->
+ <script xml:id="s1" xlink:href="../images/script1.js"/>
+
+ <!-- Subtest 2: Check that xlink:href on script elements is not animatable (target element by xlink:href) => mark c2 green -->
+ <set attributeName="xlink:href" to="../images/script2.js" xlink:href="#s1" begin="0s" dur="indefinite">
+ <handler xev:event="beginEvent">
+ if(document.getElementById("c2").getAttributeNS( null, "fill") != "red")
+ document.getElementById("c2").setAttributeNS( null, "fill", "green");
+ </handler>
+ </set>
+
+ <!-- Subtest 3: Check that xlink:href on script elements is not animatable (implicit target element) => mark c3 green -->
+ <script xml:id="s2" xlink:href="../images/script3.js">
+ <animate attributeName="xlink:href" to="../images/script4.js" begin="0s" dur="indefinite" fill="freeze"/>
+ </script>
+
+ <!-- Subtest 4: Altering the xlink:href on a script element shall have no effect => mark c4 green -->
+ <script xml:id="s3">
+ document.getElementById("c4").setAttributeNS( null, "fill", "green");
+ document.getElementById("c5").setAttributeNS( null, "fill", "green");
+ document.getElementById("s3").setAttributeNS("http://www.w3.org/1999/xlink", "href", "../images/script5.js");
+ </script>
+
+ <!-- Subtest 5: A load event must not be raised on altering the xlink:href => mark c5 green -->
+ <handler xml:id="loadhandler">
+ document.getElementById("c5").setAttributeNS( null, "fill", "red");
+ </handler>
+
+ <!-- Subtest 6: Check that xlink:href script fragments are executed when created with DOM => mark c6 green -->
+ <script>
+ var s4 = document.createElementNS("http://www.w3.org/2000/svg", "script");
+ s4.setAttributeNS("http://www.w3.org/1999/xlink", "href", "../images/script6.js");
+ document.getElementById("test-body-content").appendChild(s4);
+ </script>
+
+ <!-- Subtest 7: Check that changes of xlink:href before insertion prevents "script7.js" from executing => mark c7 green -->
+ <script>
+ var s5 = document.createElementNS("http://www.w3.org/2000/svg", "script");
+ s5.setAttributeNS("http://www.w3.org/1999/xlink", "href", "../images/script7.js"); // sets red
+ s5.setAttributeNS("http://www.w3.org/1999/xlink", "href", "../images/script8.js"); // sets green
+ document.getElementById("test-body-content").appendChild(s5);
+ </script>
+
+ <!-- Subtest 8: Check that changes of xlink:href before insertion prevents "script7.js" from executing => mark c8 green -->
+ <script>
+ var s6 = document.createElementNS("http://www.w3.org/2000/svg", "script");
+ s6.id = "s6";
+ s6.setAttributeNS("http://www.w3.org/1999/xlink", "href", "../images/script9.js"); // sets green
+ var set = document.createElementNS("http://www.w3.org/2000/svg", "set");
+ set.setAttributeNS( null, "dur", "indefinite");
+ set.setAttributeNS( null, "to", "../images/script10.js"); // sets red
+ set.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#s6");
+ set.setAttributeNS( null, "attributeName", "xlink:href");
+ document.getElementById("test-body-content").appendChild(s6);
+ document.getElementById("test-body-content").appendChild(set);
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-handle-05-t.png b/test/svg/svg1.2/svg/script-handle-05-t.png
new file mode 100644
index 0000000..24f4169
Binary files /dev/null and b/test/svg/svg1.2/svg/script-handle-05-t.png differ
diff --git a/test/svg/svg1.2/svg/script-handle-05-t.svg b/test/svg/svg1.2/svg/script-handle-05-t.svg
new file mode 100644
index 0000000..b90c406
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-handle-05-t.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED, VH" desc="This test validates scripting support by using a simple mouse event handler and manipulating the DOM with the ECMA binding DOM API." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: script-handle-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests basic mouse event handler and DOM manipulation through ECMA script binding.</p>
+ <p>The test uses ECMA Script and initially displays a target with a message asking the user to click on the target. Once the user has done so, and if both event handling and DOM manipulation are supported, then the target and initial text are hidden and a text message indicating that the test was successful is displayed.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-handle-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Displayed Title -->
+ <text x="140" y="20" fill="black"> Event and DOM Access Test </text>
+ <!-- When the user clicks on the "target" group, the onMouseClick should -->
+ <!-- be invoked. That handler will hide the target and show a message -->
+ <!-- indicating that the test passed. -->
+ <g xml:id="targetGroup">
+ <g xml:id="target">
+ <handler xe:event="click">
+ onMouseClick(evt);
+ </handler>
+ <text x="70" y="150">Click on target</text>
+ <rect x="60" y="160" width="20" height="20" fill="white" stroke="none" />
+ <line x1="60" y1="170" x2="80" y2="170" stroke-width=".5" stroke="black" />
+ <line x1="70" y1="160" x2="70" y2="180" stroke-width=".5" stroke="black" />
+ </g>
+ <g xml:id="testPassed" visibility="hidden">
+ <text x="70" y="170" fill="green" font-size="30" font-weight="bold">Scripting Test Passed!</text>
+ </g>
+ </g>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function onMouseClick(evt) {
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+ // Make test result visible
+ var testPassed = doc.getElementById('testPassed');
+ testPassed.setTrait('visibility', 'visible');
+ // Make target invisible
+ var target = doc.getElementById('target');
+ target.setTrait('visibility', 'hidden');
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-handle-06-t.png b/test/svg/svg1.2/svg/script-handle-06-t.png
new file mode 100644
index 0000000..d01a19f
Binary files /dev/null and b/test/svg/svg1.2/svg/script-handle-06-t.png differ
diff --git a/test/svg/svg1.2/svg/script-handle-06-t.svg b/test/svg/svg1.2/svg/script-handle-06-t.svg
new file mode 100644
index 0000000..1cd34c5
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-handle-06-t.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED, VH" desc="This test validates basic support for the mouse events defined in SVG." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: script-handle-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests basic mouse event handlers.</p>
+ <p>The test shows a target that can be used to generate the various kinds of mouse and keyboard events supported in SVG. Below the target, the list of events is shown with red markers next to each.</p>
+ <p>If the test passes, all the markers should have turned to green after the events have been triggered on the target. If any event has not triggered, its marker will remain red.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-handle-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Displayed Title -->
+ <text x="100" y="40" fill="black" font-size="24"> Mouse event handlers test. </text>
+ <!-- The test defines a target and defines all the handlers for the target -->
+ <!-- There are legends for each handler that are modified after the handler-->
+ <!-- has been invoked -->
+ <g xml:id="targetGroup" transform="translate(60, 140)">
+ <text x="60" y="7" font-size="24">Use the target to trigger events</text>
+ <!-- The target has all the event handlers defined -->
+ <!-- Use this <g> instead -->
+ <g xml:id="target">
+ <handler xe:event="DOMFocusIn">
+ onEvent(evt, 'onfocusin');
+ </handler>
+ <handler xe:event="DOMFocusOut">
+ onEvent(evt, 'onfocusout');
+ </handler>
+ <handler xe:event="DOMActivate">
+ onEvent(evt, 'onactivate');
+ </handler>
+ <circle cx="0" cy="0" r="30" fill="#cccccc" stroke="black" />
+ <line x1="-30" y1="0" x2="30" y2="0" />
+ <line x1="0" y1="-30" x2="0" y2="30" />
+ </g>
+ <text focusable="true" x="-40" y="-50" font-size="32">Target</text>
+ </g>
+ <!-- targetGroup -->
+ <g xml:id="labels">
+ <g xml:id="mouseEvents" transform="translate(65, 190)">
+ <g xml:id="mouseEventsLabels">
+ <text x="10" y="20" font-size="32">onfocusin</text>
+ <text x="10" y="50" font-size="32">onfocusout</text>
+ <text x="10" y="80" font-size="32">onactivate</text>
+ </g>
+ <g xml:id="mouseEventsTestIndicators">
+ <!-- onfocusin -->
+ <rect x="-15" y="2" width="20" height="20" fill="green" />
+ <rect xml:id="onfocusin" x="-15" y="2" width="20" height="20" fill="red" />
+ <!-- onfocusout -->
+ <rect x="-15" y="32" width="20" height="20" fill="green" />
+ <rect xml:id="onfocusout" x="-15" y="32" width="20" height="20" fill="red" />
+ <!-- onactivate -->
+ <rect x="-15" y="62" width="20" height="20" fill="green" />
+ <rect xml:id="onactivate" x="-15" y="62" width="20" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- Mouse Events -->
+ </g>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function onEvent(evt, indicatorId){
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+ // Mark test as passed
+ var testPassed = doc.getElementById(indicatorId);
+ testPassed.setTrait('visibility', 'hidden');
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-handle-07-t.png b/test/svg/svg1.2/svg/script-handle-07-t.png
new file mode 100644
index 0000000..b5691c4
Binary files /dev/null and b/test/svg/svg1.2/svg/script-handle-07-t.png differ
diff --git a/test/svg/svg1.2/svg/script-handle-07-t.svg b/test/svg/svg1.2/svg/script-handle-07-t.svg
new file mode 100644
index 0000000..760b32e
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-handle-07-t.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="This test validates basic support for the mouse events defined in SVG." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: script-handle-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests basic mouse event handlers.</p>
+ <p>The test shows a target that can be used to generate the various kinds of mouse and keyboard events supported in SVG. Below the target, the list of events is shown with red markers next to each.</p>
+ <p>If the test passes, all the markers should have turned to green after the events have been triggered on the target. If any event has not triggered, its marker will remain red.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-handle-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Displayed Title -->
+ <text x="100" y="40" fill="black" font-size="24"> Mouse event handlers test. </text>
+ <!-- The test defines a target and defines all the handlers for the target -->
+ <!-- There are legends for each handler that are modified after the handler-->
+ <!-- has been invoked -->
+ <g xml:id="targetGroup" transform="translate(60, 140)">
+ <text x="-40" y="-50" font-size="32">Target</text>
+ <text x="60" y="7" font-size="24">Use the target to trigger events</text>
+ <!-- The target has all the event handlers defined -->
+ <!-- Use this <g> instead -->
+ <g xml:id="target">
+ <handler xe:event="mousedown">
+ onEvent(evt, 'onmousedown');
+ </handler>
+ <handler xe:event="mouseup">
+ onEvent(evt, 'onmouseup');
+ </handler>
+ <handler xe:event="click">
+ onEvent(evt, 'onclick');
+ </handler>
+ <circle cx="0" cy="0" r="30" fill="#cccccc" stroke="black" />
+ <line x1="-30" y1="0" x2="30" y2="0" />
+ <line x1="0" y1="-30" x2="0" y2="30" />
+ </g>
+ </g>
+ <!-- targetGroup -->
+ <g xml:id="labels">
+ <g xml:id="mouseEvents" transform="translate(65, 190)">
+ <g xml:id="mouseEventsLabels">
+ <text x="10" y="20" font-size="32">onmousedown</text>
+ <text x="10" y="50" font-size="32">onmouseup</text>
+ <text x="10" y="80" font-size="32">onclick</text>
+ </g>
+ <g xml:id="mouseEventsTestIndicators">
+ <!-- onmousedown -->
+ <rect x="-15" y="2" width="20" height="20" fill="green" />
+ <rect xml:id="onmousedown" x="-15" y="2" width="20" height="20" fill="red" />
+ <!-- onmouseup -->
+ <rect x="-15" y="32" width="20" height="20" fill="green" />
+ <rect xml:id="onmouseup" x="-15" y="32" width="20" height="20" fill="red" />
+ <!-- onclick -->
+ <rect x="-15" y="62" width="20" height="20" fill="green" />
+ <rect xml:id="onclick" x="-15" y="62" width="20" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- Mouse Events -->
+ </g>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function onEvent(evt, indicatorId){
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+ // Mark test as passed
+ var testPassed = doc.getElementById(indicatorId);
+ testPassed.setTrait('visibility', 'hidden');
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-handle-08-t.png b/test/svg/svg1.2/svg/script-handle-08-t.png
new file mode 100644
index 0000000..7f01cc6
Binary files /dev/null and b/test/svg/svg1.2/svg/script-handle-08-t.png differ
diff --git a/test/svg/svg1.2/svg/script-handle-08-t.svg b/test/svg/svg1.2/svg/script-handle-08-t.svg
new file mode 100644
index 0000000..5863ade
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-handle-08-t.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED, VH" desc="This test validates basic support for the mouse events defined in SVG." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: script-handle-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests basic mouse event handlers.</p>
+ <p>The test shows a target that can be used to generate the various kinds of mouse and keyboard events supported in SVG. Below the target, the list of events is shown with red markers next to each.</p>
+ <p>If the test passes, all the markers should have turned to green after the events have been triggered on the target. If any event has not triggered, its marker will remain red.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-handle-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Displayed Title -->
+ <text x="100" y="40" fill="black" font-size="24"> Mouse event handlers test. </text>
+ <!-- The test defines a target and defines all the handlers for the target -->
+ <!-- There are legends for each handler that are modified after the handler-->
+ <!-- has been invoked -->
+ <g xml:id="targetGroup" transform="translate(60, 140)">
+ <text x="-40" y="-50" font-size="32">Target</text>
+ <text x="60" y="7" font-size="24">Use the target to trigger events</text>
+ <!-- The target has all the event handlers defined -->
+ <!-- Use this <g> instead -->
+ <g xml:id="target">
+ <handler xe:event="mouseover">
+ onEvent(evt, 'onmouseover');
+ </handler>
+ <handler xe:event="mousemove">
+ onEvent(evt, 'onmousemove');
+ </handler>
+ <handler xe:event="mouseout">
+ onEvent(evt, 'onmouseout');
+ </handler>
+ <circle cx="0" cy="0" r="30" fill="#cccccc" stroke="black" />
+ <line x1="-30" y1="0" x2="30" y2="0" />
+ <line x1="0" y1="-30" x2="0" y2="30" />
+ </g>
+ </g>
+ <!-- targetGroup -->
+ <g xml:id="labels">
+ <g xml:id="mouseEvents" transform="translate(65, 190)">
+ <g xml:id="mouseEventsLabels">
+ <text x="10" y="20" font-size="32">onmouseover</text>
+ <text x="10" y="50" font-size="32">onmousemove</text>
+ <text x="10" y="80" font-size="32">onmouseout</text>
+ </g>
+ <g xml:id="mouseEventsTestIndicators">
+ <!-- onmouseover -->
+ <rect x="-15" y="2" width="20" height="20" fill="green" />
+ <rect xml:id="onmouseover" x="-15" y="2" width="20" height="20" fill="red" />
+ <!-- onmousemove -->
+ <rect x="-15" y="32" width="20" height="20" fill="green" />
+ <rect xml:id="onmousemove" x="-15" y="32" width="20" height="20" fill="red" />
+ <!-- onmouseout -->
+ <rect x="-15" y="62" width="20" height="20" fill="green" />
+ <rect xml:id="onmouseout" x="-15" y="62" width="20" height="20" fill="red" />
+ </g>
+ </g>
+ <!-- Mouse Events -->
+ </g>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function onEvent(evt, indicatorId){
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+ // Mark test as passed
+ var testPassed = doc.getElementById(indicatorId);
+ testPassed.setTrait('visibility', 'hidden');
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-handle-201-t.png b/test/svg/svg1.2/svg/script-handle-201-t.png
new file mode 100644
index 0000000..7c95736
Binary files /dev/null and b/test/svg/svg1.2/svg/script-handle-201-t.png differ
diff --git a/test/svg/svg1.2/svg/script-handle-201-t.svg b/test/svg/svg1.2/svg/script-handle-201-t.svg
new file mode 100644
index 0000000..d339930
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-handle-201-t.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test with two event handlers on the same object" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: script-handle-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on event handling and scripting. While the mouse is over the rect, a new red rect should become visible underneath.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-handle-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="20" y="30" font-size="10">
+ Multiple eventhandlers on one object
+ </text>
+ <text x="20" y="45" font-size="10">
+ mouse-over/out events should change visibility of rectangle under the event target rectangle.
+ </text>
+ <text x="20" y="60" font-size="10">
+ move mouse over the rect.
+ </text>
+
+ <rect xml:id="r1" x="0" y="70" width="50" height="50" fill="white" stroke="black"
+ visibility="visible">
+
+ <animateTransform attributeName="transform" type="translate"
+ from="0 0" to="150 0" dur="3.5s" fill="freeze" additive="replace"/>
+
+ <animateTransform attributeName="transform" type="translate"
+ from="150 0" to="300 0" begin="3.5s" dur="3.5s" fill="freeze" additive="replace"/>
+ </rect>
+
+
+ <rect xml:id="r2" x="0" y="130" width="50" height="50" fill="red" stroke="black" visibility="hidden">
+ <animateTransform attributeName="transform" type="translate"
+ from="0 0" to="150 0" dur="3.5s" fill="freeze" additive="replace"/>
+
+ <animateTransform attributeName="transform" type="translate"
+ from="150 0" to="300 0" begin="3.5s" dur="3.5s" fill="freeze" additive="replace"/>
+
+ </rect>
+
+ <xe:listener observer="r1" event="mouseover" handler="#handler"/>
+ <xe:listener observer="r1" event="mouseout" handler="#handl"/>
+
+ <handler xml:id="handler" xe:event="resize" type="application/ecmascript">
+ flipVisibility();
+ </handler>
+
+ <handler xml:id="handl" xe:event="resize" type="application/ecmascript">
+ florpVisibility();
+ </handler>
+
+ <script type="text/ecmascript">
+ <![CDATA[
+ var r1 = document.getElementById("r1");
+ var r2 = document.getElementById("r2");
+ function flipVisibility()
+ {
+ if (r1.getTrait("visibility") == "visible")
+ {
+ r2.setTrait("visibility", "visible");
+ }
+ }
+ function florpVisibility()
+ {
+ if (r1.getTrait("visibility") == "visible")
+ {
+ r2.setTrait("visibility", "hidden");
+ }
+ }
+
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-handle-202-t.png b/test/svg/svg1.2/svg/script-handle-202-t.png
new file mode 100644
index 0000000..bffb79b
Binary files /dev/null and b/test/svg/svg1.2/svg/script-handle-202-t.png differ
diff --git a/test/svg/svg1.2/svg/script-handle-202-t.svg b/test/svg/svg1.2/svg/script-handle-202-t.svg
new file mode 100644
index 0000000..87192d7
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-handle-202-t.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Tests event handling with SMIL and scripting" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: script-handle-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test of script handlers for SMIL events. A red square should flash on the screen six times.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-handle-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="20" y="30" font-size="10">
+ Test of script handlers for SMIL events. A red square should flash on the screen six times.
+ </text>
+ <rect xml:id="r1" x="130" y="50" width="200" height="200" fill="red" visibility="visible"/>
+
+ <g>
+ <!-- Animations to trigger the beginEvents -->
+ <animate xml:id="t1" attributeName="visibility"
+ begin="0.5;1.5;2.5;3.5;4.5;5.5" dur="0.5" from="visible" to="visible"/>
+
+ <animate xml:id="t2" attributeName="visibility"
+ begin="1;2;3;4;5;6" dur="0.5" from="visible" to="visible"/>
+ </g>
+
+ <xe:listener observer="t1" event="beginEvent" handler="#handler"/>
+ <xe:listener observer="t2" event="beginEvent" handler="#handler"/>
+
+ <handler xml:id="handler" type="application/ecmascript">
+ flipVisibility(evt);
+ </handler>
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ var r1 = document.getElementById("r1");
+ var t1 = document.getElementById("t1");
+ var t2 = document.getElementById("t2");
+
+
+ function flipVisibility(evt)
+ {
+ if (evt.target == t1)
+ {
+ r1.setTrait("visibility", "hidden");
+ }
+ else if(evt.target == t2)
+ {
+ r1.setTrait("visibility", "visible");
+ }
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-listener-201-t.png b/test/svg/svg1.2/svg/script-listener-201-t.png
new file mode 100644
index 0000000..f6d3534
Binary files /dev/null and b/test/svg/svg1.2/svg/script-listener-201-t.png differ
diff --git a/test/svg/svg1.2/svg/script-listener-201-t.svg b/test/svg/svg1.2/svg/script-listener-201-t.svg
new file mode 100644
index 0000000..9484768
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-listener-201-t.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test xml prefix declarations for XML Events." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: script-listener-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests the assertion from the Namespaces in XML specification,
+ "The namespace prefix, unless it is xml or xmlns, MUST have been declared
+ in a namespace declaration attribute in either the start-tag of the element
+ where the prefix is used or in an ancestor element (i.e. an element in whose content the prefixed markup occurs)."
+ The root element doesn't declare the XML Event namespace for the prefix "ev".
+
+ <p>
+ The test has passed if handlers are implemented (the handler with xml:id="passhandler" has run)
+ but the handler with xml:id="failhandler" has <em>not</em> run.
+ If the handler is run then the text in the testcase will show "Test failed: magic prefixes!".
+ If handlers are not implemented at all, the testcase will show "Test failed: handlers not implemented."
+ </p>
+ <p>
+ The test is also passed if the implementation states somehow that the test case is not namespace
+ well formed (by overlaying it on the image, informing the user in the error console, not
+ showing the document at all, etc.).
+ </p>
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-listener-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text xml:id="status" x="10" y="50" font-weight="bold" font-size="20" fill="black">
+ Test failed: handlers not implemented.
+ </text>
+ <!-- First, check that handlers are in fact implemented :) -->
+ <xe:listener observer="svg-root" event="load" handler="#passhandler"
+ xmlns:xe="http://www.w3.org/2001/xml-events"/>
+
+ <handler xml:id="passhandler" type="application/ecmascript">
+ document.getElementById("status").textContent = "Test passed";
+ </handler>
+
+ <!--
+ Now test that eventhandlers are not run when the XML Events namespace isn't in scope.
+ NOTE: The use of the 'ev' prefix is intentional, and is part of the test, this prefix
+ *must not* be declared explicitly anywhere in this file.
+ -->
+ <ev:listener observer="svg-root" event="load" handler="#failhandler"/>
+
+ <handler xml:id="failhandler" type="application/ecmascript">
+ document.getElementById("status").textContent = "Test failed: magic prefixes!";
+ </handler>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g<-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-listener-202-t.png b/test/svg/svg1.2/svg/script-listener-202-t.png
new file mode 100644
index 0000000..e21d7a6
Binary files /dev/null and b/test/svg/svg1.2/svg/script-listener-202-t.png differ
diff --git a/test/svg/svg1.2/svg/script-listener-202-t.svg b/test/svg/svg1.2/svg/script-listener-202-t.svg
new file mode 100644
index 0000000..0661331
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-listener-202-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test listener with IDREF in handler attribute." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: script-listener-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests that a handler is not found when the 'handler' attribute contains
+ an IDREF. The test fails if a red rectangle covers the text content area or the string "Test failed" is displayed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-listener-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text xml:id="status" x="10" y="50" font-weight="bold" font-size="20" fill="black">
+ Test passed.
+ </text>
+
+ <!-- Test that eventhandlers are not run for IRI:s with no fragment part -->
+ <xe:listener observer="svg-root" event="load" handler="failhandler"/>
+
+ <handler xml:id="failhandler" type="application/ecmascript">
+ document.getElementById("status").textContent = "Test failed";
+ </handler>
+
+ <xe:listener observer="svg-root" event="load" handler="#passhandler"/>
+ <handler xml:id="passhandler" type="application/ecmascript">
+ document.getElementById("test-body-content").removeChild( document.getElementById("impl-xml-events") );
+ </handler>
+
+ <rect xml:id="impl-xml-events" x="1" y="1" width="478" height="358" fill="red" stroke="#000"/>
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/script-listener-203-t.png b/test/svg/svg1.2/svg/script-listener-203-t.png
new file mode 100644
index 0000000..421dd42
Binary files /dev/null and b/test/svg/svg1.2/svg/script-listener-203-t.png differ
diff --git a/test/svg/svg1.2/svg/script-listener-203-t.svg b/test/svg/svg1.2/svg/script-listener-203-t.svg
new file mode 100644
index 0000000..015d483
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-listener-203-t.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2007 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="ED" desc="Test listener element in svg" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: script-listener-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests that an element with the name 'listener' is not interpreted as an svg element,
+ and that it's not the same as an element named 'listener' in the XML Events namespace.
+ </p>
+ <p>
+ The test has passed if handlers are implemented (the handler with xml:id="passhandler" has run)
+ but the handler with xml:id="failhandler" has <em>not</em> run.
+
+ If the handler is run then the text in the testcase will show "Test failed: 'listener' is not an svg element.".
+
+ The pass condition is indicated by two rects that must both be green after running the test, if
+ either of the rects is red then the test has failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-listener-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text xml:id="status" x="10" y="50" font-weight="bold" font-size="20" fill="black"></text>
+
+ <!-- First, check that handlers are in fact implemented :) -->
+ <xe:listener observer="svg-root" event="load" handler="#passhandler"/>
+
+ <handler xml:id="passhandler" type="application/ecmascript">
+ document.getElementById("r1").setAttributeNS(null, "fill", "green");
+ </handler>
+
+ <!-- There is no 'listener' element in svg, so this should not trigger the failhandler -->
+ <listener observer="svg-root" event="load" handler="#failhandler"/>
+
+ <handler xml:id="failhandler" type="application/ecmascript">
+ document.getElementById("status").textContent = "Test failed: 'listener' is not an svg element.";
+ document.getElementById("r2").setAttributeNS(null, "fill", "red");
+ </handler>
+
+ <g transform="translate(130 100)">
+ <rect xml:id="r1" rx="20" width="100" height="100" fill="red"/>
+ <rect xml:id="r2" x="120" rx="20" width="100" height="100" fill="green"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/script-listener-204-t.png b/test/svg/svg1.2/svg/script-listener-204-t.png
new file mode 100644
index 0000000..7710682
Binary files /dev/null and b/test/svg/svg1.2/svg/script-listener-204-t.png differ
diff --git a/test/svg/svg1.2/svg/script-listener-204-t.svg b/test/svg/svg1.2/svg/script-listener-204-t.svg
new file mode 100644
index 0000000..e741314
--- /dev/null
+++ b/test/svg/svg1.2/svg/script-listener-204-t.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2007 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="ED" desc="Test listener element in svg" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: script-listener-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests the 'propagate' and 'defaultAction' attributes on the XML Event 'listener' element.
+ </p>
+ <p>
+ The test has passed if after clicking the each of the blue rects they both turn green and show the text "Passed",
+ and that clicking the leftmost rect doesn't traverse the link. If any of the rects are blue or red after clicking
+ them the test has failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: script-listener-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <script>
+ function fail(num)
+ {
+ document.getElementById("r" + num).setAttributeNS(null, "fill", "red");
+ document.getElementById("t" + num).textContent = "Failed";
+ }
+
+ function pass(num)
+ {
+ document.getElementById("r" + num).setAttributeNS(null, "fill", "green");
+ document.getElementById("t" + num).textContent = "Passed";
+ }
+ </script>
+
+ <g transform="translate(130 100)">
+ <g id="g1">
+ <a id="a1" xlink:href="http://www.example.org/fail">
+ <rect xml:id="r1" width="100" height="100" fill="blue"/>
+ <text xml:id="t1" x="50" y="55" text-anchor="middle" fill="white" pointer-events="none">Click here</text>
+ </a>
+ </g>
+ <g id="g2" transform="translate(110 0)">
+ <rect xml:id="r2" width="100" height="100" fill="blue"/>
+ <text xml:id="t2" x="50" y="55" text-anchor="middle" fill="white" pointer-events="none">Click here</text>
+ </g>
+ </g>
+
+ <xe:listener observer="r1" event="click" propagate="stop" defaultAction="cancel" handler="#pass1"/>
+ <xe:listener observer="g1" event="click" handler="#fail1"/>
+ <handler xml:id="fail1">
+ fail(1);
+ </handler>
+ <handler xml:id="pass1">
+ pass(1);
+ </handler>
+
+ <xe:listener observer="r2" event="click" propagate="stop" handler="#test2"/>
+ <xe:listener observer="g2" event="click" handler="#test3"/>
+ <handler xml:id="test2">
+ pass(2);
+ </handler>
+ <handler xml:id="test3">
+ fail(2);
+ </handler>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/shapes-circle-01-t.png b/test/svg/svg1.2/svg/shapes-circle-01-t.png
new file mode 100644
index 0000000..fc736c1
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-circle-01-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-circle-01-t.svg b/test/svg/svg1.2/svg/shapes-circle-01-t.svg
new file mode 100644
index 0000000..6e579eb
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-circle-01-t.svg
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="LH" desc="Test ability to handle the 'circle' basic shapes element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: shapes-circle-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-circle-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the <circle/> element with different fill, stroke and stroke-width attributes</text>
+ <circle cx="100" cy="100" r="50" fill="none" stroke="black" />
+ <circle cx="220" cy="100" r="35" fill="red" stroke="black" />
+ <circle cx="340" cy="100" r="20" fill="black" stroke="lime" stroke-width="4" />
+ <circle cx="100" cy="260" r="20" stroke="lime" fill="yellow" stroke-width="4" />
+ <circle cx="220" cy="260" r="35" stroke="none" fill="blue" />
+ <circle cx="340" cy="260" r="50" stroke="red" fill="none" stroke-width="10" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-circle-02-t.png b/test/svg/svg1.2/svg/shapes-circle-02-t.png
new file mode 100644
index 0000000..5e8821d
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-circle-02-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-circle-02-t.svg b/test/svg/svg1.2/svg/shapes-circle-02-t.svg
new file mode 100644
index 0000000..24e015b
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-circle-02-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DJ,AN" owner="CN" desc="Defaults test with circle." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: shapes-circle-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Defaults test with circle.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-circle-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the default attributes on the <circle/> element</text>
+ <g fill="red" stroke="#000000" fill-opacity="0.5">
+ <!-- Set cx and cy coordinate to default.-->
+ <circle r="50" />
+ <!-- Set cx coordinate to default.-->
+ <circle cy="100" r="50" />
+ <!-- Set cy coordinate to default.-->
+ <circle cx="100" r="50" />
+ <!-- Set r attribute to 0 (should not display a circle).-->
+ <circle cx="100" cy="100" r="0" />
+ <!-- Set all values to draw a circle -->
+ <circle cx="100" cy="100" r="50" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-circle-03-t.png b/test/svg/svg1.2/svg/shapes-circle-03-t.png
new file mode 100644
index 0000000..89274c1
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-circle-03-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-circle-03-t.svg b/test/svg/svg1.2/svg/shapes-circle-03-t.svg
new file mode 100644
index 0000000..9498fad
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-circle-03-t.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="AN" desc="Testing the correct stroking of the circle element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: shapes-circle-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Defaults test with circle.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-circle-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the correct stroking of the <circle /> element.</text>
+ <text font-size="12" x="160" y="106">3 'o clock starting point</text>
+ <text font-size="12" x="160" y="256">3 'o clock starting point</text>
+ <g fill="red" stroke="#000000">
+ <!-- upper left circle -->
+ <circle cx="100" cy="100" r="50" stroke-width="5" stroke-dasharray="50,5"/>
+ <!-- reference lines upper left circle -->
+ <line x1="100" y1="100" x2="127" y2="142.1" stroke-width="0.5" stroke="blue"/>
+ <line x1="100" y1="100" x2="122.7" y2="144.6" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="74.75" y2="143.2" stroke-width="0.5" stroke="blue"/>
+ <line x1="100" y1="100" x2="70.6" y2="140.4" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="50.1" y2="97.1" stroke-width="0.5" stroke="blue"/>
+ <line x1="100" y1="100" x2="50.6" y2="92.2" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="79.95" y2="54.42" stroke-width="0.5" stroke="blue"/>
+ <line x1="100" y1="100" x2="84.62" y2="52.45" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="131.72" y2="61.36" stroke-width="0.5" stroke="blue"/>
+ <line x1="100" y1="100" x2="135.4" y2="64.72" stroke-width="0.5" stroke="blue" />
+ <!-- line indicating the 3 'o clock starting point of upper left circle -->
+ <line x1="100" y1="100" x2="150" y2="100" stroke-width="2" stroke="blue"/>
+ <!-- lower left circle -->
+ <circle cx="100" cy="250" r="50" stroke-width="10" stroke-dasharray="305,15"/>
+ <!-- reference line lower left circle -->
+ <line x1="100" y1="250" x2="149.17" y2="240.88" stroke-width="0.5" stroke="blue"/>
+ <!-- line indicating the 3 'o clock starting point of lower left circle -->
+ <line x1="100" y1="250" x2="150" y2="250" stroke-width="2" stroke="blue" />
+ <!-- upper right circle -->
+ <circle cx="400" cy="100" r="50" stroke-width="5" stroke-dasharray="50,5" stroke-linecap="round"/>
+ <!-- reference lines upper right circle -->
+ <line x1="400" y1="100" x2="427" y2="142.1" stroke-width="0.5" stroke="blue"/>
+ <line x1="400" y1="100" x2="422.7" y2="144.6" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="374.75" y2="143.2" stroke-width="0.5" stroke="blue"/>
+ <line x1="400" y1="100" x2="370.6" y2="140.4" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="350.1" y2="97.1" stroke-width="0.5" stroke="blue"/>
+ <line x1="400" y1="100" x2="350.6" y2="92.2" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="379.95" y2="54.42" stroke-width="0.5" stroke="blue"/>
+ <line x1="400" y1="100" x2="384.62" y2="52.45" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="431.72" y2="61.36" stroke-width="0.5" stroke="blue"/>
+ <line x1="400" y1="100" x2="435.4" y2="64.72" stroke-width="0.5" stroke="blue" />
+ <!-- line indicating the 3 'o clock starting point of the upper right circle -->
+ <line x1="400" y1="100" x2="450" y2="100" stroke-width="2" stroke="blue" />
+ <!-- lower right circle -->
+ <circle cx="400" cy="250" r="50" stroke-width="10" stroke-dasharray="305,15" stroke-linecap="round"/>
+ <!-- reference line lower right circle -->
+ <line x1="400" y1="250" x2="449.17" y2="240.88" stroke-width="0.5" stroke="blue"/>
+ <!-- line indicating the 3 'o clock starting point of lower right circle -->
+ <line x1="400" y1="250" x2="450" y2="250" stroke-width="2" stroke="blue"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-ellipse-01-t.png b/test/svg/svg1.2/svg/shapes-ellipse-01-t.png
new file mode 100644
index 0000000..d61784c
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-ellipse-01-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-ellipse-01-t.svg b/test/svg/svg1.2/svg/shapes-ellipse-01-t.svg
new file mode 100644
index 0000000..f0455c8
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-ellipse-01-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN" owner="KRL" desc="Test that viewer has the basic capability to handle the <ellipse> element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: shapes-ellipse-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-ellipse-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the <ellipse /> element with various stroke and fill attributes</text>
+ <!-- ====================================================================== -->
+ <!-- First pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <ellipse xml:id="ellipse-01" fill="none" stroke="#000000" cx="50" cy="75" rx="30" ry="50" />
+ <ellipse xml:id="ellipse-02" fill="red" cx="160" cy="75" rx="30" ry="50" />
+ <!-- ====================================================================== -->
+ <!-- Second pair of ellipses, should actually draw circles. -->
+ <!-- ====================================================================== -->
+ <ellipse xml:id="ellipse-03" fill="none" stroke="#000000" cx="270" cy="80" rx="35" ry="35" />
+ <ellipse xml:id="ellipse-04" fill="red" cx="370" cy="80" rx="35" ry="35" />
+ <!-- ====================================================================== -->
+ <!-- Third pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <ellipse xml:id="ellipse-05" fill="none" stroke="#0000FF" stroke-width="8" cx="50" cy="220" rx="30" ry="50" />
+ <ellipse xml:id="ellipse-06" fill="#00FF00" stroke="#0000FF" stroke-width="8" cx="160" cy="220" rx="30" ry="50" />
+ <!-- ====================================================================== -->
+ <!-- Fourth pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <ellipse xml:id="ellipse-07" fill="#00FF00" stroke="#0000FF" stroke-width="8" cx="330" cy="220" rx="70" ry="40" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-ellipse-02-t.png b/test/svg/svg1.2/svg/shapes-ellipse-02-t.png
new file mode 100644
index 0000000..678a10c
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-ellipse-02-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-ellipse-02-t.svg b/test/svg/svg1.2/svg/shapes-ellipse-02-t.svg
new file mode 100644
index 0000000..e1c16ba
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-ellipse-02-t.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DJ,AN" owner="CN" desc="Defaults test with ellipse." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: shapes-ellipse-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Defaults test with ellipse. Ellipses with rx or ry set to zero shouldn't be drawn. Unspecified cx and cy attributes default to zero.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-ellipse-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the default and zero value attributes of the <ellipse /> element.</text>
+ <g fill="red" stroke="#000000" fill-opacity="0.5">
+ <!-- Set cx and cy coordinate to default. Should be drawn at zero/zero. -->
+ <ellipse rx="100" ry="50" />
+ <!-- Set rx attribute to 0, ellipse shouldn't be drawn.-->
+ <ellipse cx="100" cy="150" rx="0" ry="50" />
+ <!-- Set ry attribute to 0, ellipse shouldn't be drawn.-->
+ <ellipse cx="200" cy="50" rx="100" ry="0" />
+ <!-- Set all values attribute to draw an ellipse.-->
+ <ellipse cx="250" cy="250" rx="100" ry="50" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-ellipse-03-t.png b/test/svg/svg1.2/svg/shapes-ellipse-03-t.png
new file mode 100644
index 0000000..ca1d269
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-ellipse-03-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-ellipse-03-t.svg b/test/svg/svg1.2/svg/shapes-ellipse-03-t.svg
new file mode 100644
index 0000000..97173a8
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-ellipse-03-t.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="AN" desc="Testing the correct stroking of the ellipse element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: shapes-ellipse-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Defaults test with circle.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-ellipse-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the correct stroking of the <ellipse /> element.</text>
+ <text font-size="12" x="160" y="106">3 'o clock starting point</text>
+ <text font-size="12" x="160" y="256">3 'o clock starting point</text>
+ <g fill="red" stroke="#000000">
+ <!-- upper left ellipse -->
+ <ellipse cx="100" cy="100" rx="50" ry="30" stroke-width="5" stroke-dasharray="50,5"/>
+ <!-- reference lines upper left ellipse -->
+ <line x1="100" y1="100" x2="113.78" y2="128.87" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="108.85" y2="129.55" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="61.07" y2="118.85" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="57.26" y2="115.6" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="69.41" y2="76.29" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="74.02" y2="74.38" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="123.2" y2="73.44" stroke-width="0.5" stroke="blue" />
+ <line x1="100" y1="100" x2="127.91" y2="75.13" stroke-width="0.5" stroke="blue" />
+ <!-- line indicating the 3 'o clock starting point for upper left ellipse-->
+ <line x1="100" y1="100" x2="150" y2="100" stroke-width="2" stroke="blue" />
+ <!-- lower left ellipse -->
+ <ellipse cx="100" cy="250" rx="50" ry="30" stroke-width="10" stroke-dasharray="245,15" />
+ <!-- reference line lower left ellipse -->
+ <line x1="100" y1="250" x2="147.31" y2="240.24" stroke-width="0.5" stroke="blue" />
+ <!-- line indicating the 3 'o clock starting point of lower left ellipse -->
+ <line x1="100" y1="250" x2="150" y2="250" stroke-width="2" stroke="blue" />
+ <!-- upper right ellipse -->
+ <ellipse cx="400" cy="100" rx="50" ry="30" stroke-width="5" stroke-dasharray="50,5" stroke-linecap="round"/>
+ <!-- reference lines upper left ellipse -->
+ <line x1="400" y1="100" x2="413.78" y2="128.87" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="408.85" y2="129.55" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="361.07" y2="118.85" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="357.26" y2="115.6" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="369.41" y2="76.29" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="374.02" y2="74.38" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="423.2" y2="73.44" stroke-width="0.5" stroke="blue" />
+ <line x1="400" y1="100" x2="427.91" y2="75.13" stroke-width="0.5" stroke="blue" />
+ <!-- line indicating the 3 'o clock starting point for upper right ellipse-->
+ <line x1="400" y1="100" x2="450" y2="100" stroke-width="2" stroke="blue" />
+ <!-- lower right ellipse -->
+ <ellipse cx="400" cy="250" rx="50" ry="30" stroke-width="10" stroke-dasharray="245,15" stroke-linecap="round"/>
+ <!-- reference line lower left ellipse -->
+ <line x1="400" y1="250" x2="447.31" y2="240.24" stroke-width="0.5" stroke="blue" />
+ <!-- line indicating the 3 'o clock starting point lower right -->
+ <line x1="400" y1="250" x2="450" y2="250" stroke-width="2" stroke="blue" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-intro-01-t.png b/test/svg/svg1.2/svg/shapes-intro-01-t.png
new file mode 100644
index 0000000..1f26cfa
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-intro-01-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-intro-01-t.svg b/test/svg/svg1.2/svg/shapes-intro-01-t.svg
new file mode 100644
index 0000000..e584d46
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-intro-01-t.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN,CN" owner="SH" desc="Test that viewer supports the degenerate cases of the basic shapes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: shapes-intro-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests the degenerate cases of the basic shapes. The shapes are positioned within the black rectangles.</p>
+ <p>None of the shapes should be visible (each of the ten black rectangles should be empty). The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-intro-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the degenerate cases of the basic shapes; attribute values set to zero.</text>
+ <!-- ====================================================================== -->
+ <!-- Draw the boxes to contain the shapes and the text labels for the boxes -->
+ <!-- ====================================================================== -->
+ <g fill="none" stroke="#000000">
+ <!-- rects -->
+ <rect x="50" y="50" width="35" height="60" />
+ <rect x="50" y="155" width="35" height="60" />
+ <rect x="130" y="50" width="35" height="60" />
+ <rect x="130" y="155" width="35" height="60" />
+ <!-- circles -->
+ <rect x="210" y="50" width="60" height="60" />
+ <rect x="210" y="155" width="60" height="60" />
+ <!-- ellipses -->
+ <rect x="315" y="50" width="35" height="60" />
+ <rect x="315" y="155" width="35" height="60" />
+ <rect x="394" y="50" width="35" height="60" />
+ <rect x="394" y="155" width="35" height="60" />
+ <!-- line -->
+ <rect x="235" y="260" width="10" height="10" />
+ </g>
+ <g font-family="Arial" font-size="8">
+ <text x="5" y="90">Stroked</text>
+ <text x="5" y="195">Unstroked</text>
+ <text x="50" y="135">Zero width rect</text>
+ <text x="130" y="135">Zero height rect</text>
+ <text x="210" y="135">Zero radius circle</text>
+ <text x="315" y="135">Zero x radius ellipse</text>
+ <text x="394" y="135">Zero y radius ellipse</text>
+ <text x="235" y="290">Zero length line</text>
+ </g>
+ <!-- ====================================================================== -->
+ <!-- Draw 4 rectangles, two with zero width, two with zero height -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <rect xml:id="Zero-width-stroked-rect" fill="none" stroke="#000000" x="55" y="55" width="0" height="50" />
+ <rect xml:id="Zero-width-unstroked-rect" fill="#FF0000" stroke="none" x="55" y="160" width="0" height="50" />
+ <rect xml:id="Zero-height-stroked-rect" fill="#00FF00" stroke="#0000FF" x="135" y="55" width="25" height="0" />
+ <rect xml:id="Zero-height-rect" fill="#00FF00" stroke="none" x="135" y="160" width="25" height="0" />
+ <!-- ====================================================================== -->
+ <!-- Draw two zero radius circles (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <circle xml:id="Zero-radius-stroked-circle" fill="none" stroke="#000000" cx="240" cy="80" r="0" />
+ <circle xml:id="Zero-radius-unstroked-circle" fill="#FF0000" stroke="none" cx="240" cy="185" r="0" />
+ <!-- ====================================================================== -->
+ <!-- Draw 4 ellipses, two with a zero x radius, two with a zero y radius -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <ellipse xml:id="Zero-x-radius-stroked-ellipse" fill="#00FF00" stroke="#0000FF" cx="332" cy="80" rx="0" ry="25" />
+ <ellipse xml:id="Zero-x-radius-unstroked-ellipse" fill="#00FF00" stroke="none" cx="332" cy="185" rx="0" ry="25" />
+ <ellipse xml:id="Zero-y-radius-stroked-ellipse" fill="none" stroke="#000000" cx="411" cy="80" rx="12" ry="0" />
+ <ellipse xml:id="Zero-y-radius-unstroked-ellipse" fill="#FF0000" stroke="none" cx="411" cy="185" rx="12" ry="0" />
+ <!-- ====================================================================== -->
+ <!-- Draw a zero-length line -->
+ <!-- ====================================================================== -->
+ <line xml:id="Zero-length-line" stroke="#0000FF" x1="240" y1="265" x2="240" y2="265" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-line-01-t.png b/test/svg/svg1.2/svg/shapes-line-01-t.png
new file mode 100644
index 0000000..2d67bdc
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-line-01-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-line-01-t.svg b/test/svg/svg1.2/svg/shapes-line-01-t.svg
new file mode 100644
index 0000000..e5c6525
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-line-01-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN" owner="LH" desc="Test ability to handle the 'line' basic-shapes element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: shapes-line-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-line-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the <line/> element with different stroke and stroke-width attributes</text>
+ <g xml:id="diagonal-line-set">
+ <line x1="37.5" y1="137" x2="112.5" y2="50" fill="none" stroke="black" stroke-width="1" />
+ <line x1="112.5" y1="137" x2="187.5" y2="50" fill="none" stroke="red" stroke-width="5" />
+ <line x1="187.5" y1="137" x2="262.5" y2="50" fill="none" stroke="green" stroke-width="7.5" />
+ <line x1="262.5" y1="137" x2="337.5" y2="50" fill="none" stroke="blue" stroke-width="10" />
+ <line x1="337.5" y1="137" x2="412.5" y2="50" fill="none" stroke="fuchsia" stroke-width="12.5" />
+ </g>
+ <g xml:id="middle-figure" stroke="black" stroke-width="1">
+ <line x1="170" y1="200" x2="220" y2="200" />
+ <line x1="220" y1="200" x2="220" y2="250" />
+ <line x1="220" y1="250" x2="270" y2="250" />
+ <line x1="270" y1="250" x2="270" y2="200" />
+ <line x1="270" y1="200" x2="320" y2="200" />
+ </g>
+ <g xml:id="lower-left-figure" stroke="blue" stroke-width="10">
+ <line x1="25" y1="200" x2="75" y2="200" />
+ <line x1="75" y1="200" x2="75" y2="250" />
+ <line x1="75" y1="250" x2="125" y2="250" />
+ <line x1="125" y1="250" x2="125" y2="200" />
+ <line x1="125" y1="200" x2="175" y2="200" />
+ </g>
+ <g xml:id="lower-right-figure" stroke-width="10">
+ <line x1="370" y1="250" x2="420" y2="250" stroke="black" />
+ <line x1="420" y1="200" x2="470" y2="200" stroke="fuchsia" />
+ <line x1="320" y1="200" x2="370" y2="200" stroke="blue" />
+ <line x1="370" y1="200" x2="370" y2="250" stroke="green" />
+ <line x1="420" y1="250" x2="420" y2="200" stroke="red" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-line-02-t.png b/test/svg/svg1.2/svg/shapes-line-02-t.png
new file mode 100644
index 0000000..7805e20
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-line-02-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-line-02-t.svg b/test/svg/svg1.2/svg/shapes-line-02-t.svg
new file mode 100644
index 0000000..f93e7ec
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-line-02-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AN" desc="Test the default attributes of the line element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: shapes-line-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ For this test to pass the following lines must be drawn:
+ - Green line across the top from 480,0 to 0,0
+ - Red line across the left hand side from 0,0 to 0,360
+ - Blue line across the bottom from 480,360 to 0,360
+ - Purple line across the test from 480,85 to 0,0
+ - Fuchsia line across the test from 0,0 to 480,170
+ - Aqua line across the test from 0,360 to 480,170
+ - Teal line across the test from 480,256 to 0,360
+ </p>
+ <p>
+ If the x1, x2, y1, or y2 attribute is not specified the effect is as if
+ a value of "0" were specified.
+ </p>
+ <p>
+ The rendered picture should match the reference image, except for possible
+ variations in the labelling text (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-line-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the default attributes of the <line/> element</text>
+ <g stroke-width="4">
+ <line x2="480" y2="170" stroke="fuchsia"/>
+ <line y1="360" x2="480" y2="170" stroke="aqua"/>
+ <line x1="480" y1="85" stroke="purple"/>
+ <line x1="480" y1="256" y2="360" stroke="teal"/>
+ <line y2="360" stroke="red"/>
+ <line x1="480" stroke="green"/>
+ <line x1="480" y1="360" y2="360" stroke="blue"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-polygon-01-t.png b/test/svg/svg1.2/svg/shapes-polygon-01-t.png
new file mode 100644
index 0000000..a40d1e0
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-polygon-01-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-polygon-01-t.svg b/test/svg/svg1.2/svg/shapes-polygon-01-t.svg
new file mode 100644
index 0000000..e517f88
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-polygon-01-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN" owner="KRL" desc="Test that viewer has the basic capability to handle the 'polygon' element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: shapes-polygon-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-polygon-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the <polygon/> element with different fill, stroke and stroke-width attributes</text>
+ <!-- Test case label. -->
+ <!-- ====================================================================== -->
+ <!-- First two polygons, convex and "regular". -->
+ <!-- ====================================================================== -->
+ <!-- Open, convex, "regular". -->
+ <polygon xml:id="polygon-01" fill="none" stroke="#000000" points="59,45,95,63,108,105,82,139,39,140,11,107,19,65" />
+ <!-- Closed, convex, "regular". -->
+ <polygon xml:id="polygon-02" fill="red" points="179,45,218,63,228,105,202,139,159,140,131,107,139,65,179,45" />
+ <!-- ====================================================================== -->
+ <!-- Third polygon, concave and irregular. -->
+ <!-- ====================================================================== -->
+ <!-- Closed, convex, "irregular". -->
+ <polygon xml:id="polygon-03" fill="blue" stroke="black" stroke-width="6" points="350,45 375,80 410,95 375,110 350,145 325,120 290,95 325,70,350,45" />
+ <!-- ====================================================================== -->
+ <!-- Fourth and fifth polygons. -->
+ <!-- ====================================================================== -->
+ <!-- Closed, convex, "regular". -->
+ <polygon xml:id="polygon-05" fill="none" stroke="#0000FF" stroke-width="8" points="59,185,98,203,108,245,82,279,39,280,11,247,19,205,59,185" />
+ <!-- Open, convex, "regular". -->
+ <polygon xml:id="polygon-06" fill="#00FF00" stroke="#0000FF" stroke-width="8" points="179,185,218,203,228,245,202,279,159,280,131,247,139,205" />
+ <!-- ====================================================================== -->
+ <!-- Sixth polygons, irregular with both concave and convex angles. -->
+ <!-- ====================================================================== -->
+ <polygon xml:id="polygon-07" fill="none" stroke="#00FF00" stroke-width="8" points="270,225 300,245 320,225 340,245 280,280 390,280 420,240 280,185" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-polygon-02-t.png b/test/svg/svg1.2/svg/shapes-polygon-02-t.png
new file mode 100644
index 0000000..55589a9
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-polygon-02-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-polygon-02-t.svg b/test/svg/svg1.2/svg/shapes-polygon-02-t.svg
new file mode 100644
index 0000000..be2971e
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-polygon-02-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AN" desc="Test points attribute syntax. Test that empty and invalid points attributes result in not rendering 'polygon' elements." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: shapes-polygon-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Testing different points attribute syntaxes, empty and invalid points
+ attributes (e.g. odd number of coordinates).
+ </p>
+ <p>
+ Only three identical polygon elements should be rendered down the
+ right hand side of the test.
+ </p>
+ <p>
+ The rendered picture should match the reference image, except for
+ possible variations in the labelling text (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-polygon-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Test that empty and invalid points attributes don't result in rendering 'polygon' elements.</text>
+ <text font-size="12" x="25" y="160">Only three similar <polygon /> elements should be rendered.</text>
+ <text font-size="12" x="25" y="180">Three different syntaxes in the points attribute.</text>
+ <!-- Test polygon without points attribute. -->
+ <polygon xml:id="polygon-01" fill="red" stroke="black" />
+ <!-- Test polygon with empty points attribute. -->
+ <polygon xml:id="polygon-02" fill="red" stroke="black" points="" />
+ <!-- odd number of coordinates -->
+ <polygon xml:id="polygon-03" fill="red" stroke="black" points="179,45,218,63,228,105,202,139,159,140,131,107,139,65,179" />
+ <!-- two alternative points attribute syntaxes -->
+ <polygon xml:id="polygon-04" fill="red" stroke="black" transform="translate(40,0)" points="350,45 375,80 410,95 375,110 350,145 325,120 290,95 325,70,350,45" />
+ <polygon xml:id="polygon-05" fill="red" stroke="black" transform="translate(40,100)" points="350,45,375,80,410,95,375,110,350,145,325,120,290,95,325,70,350,45" />
+ <polygon xml:id="polygon-06" fill="red" stroke="black" transform="translate(40,200)" points="350 45 375 80 410 95 375 110 350 145 325 120 290 95 325 70 350 45" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/shapes-polyline-01-t.png b/test/svg/svg1.2/svg/shapes-polyline-01-t.png
new file mode 100644
index 0000000..5809ec3
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-polyline-01-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-polyline-01-t.svg b/test/svg/svg1.2/svg/shapes-polyline-01-t.svg
new file mode 100644
index 0000000..1ee881c
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-polyline-01-t.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN" owner="LH" desc="Test that viewer has the basic capability to handle the 'polyline' element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: shapes-polyline-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-polyline-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the <polyline/> element with different fill, stroke and stroke-width attributes</text>
+ <!-- Test case label. -->
+ <!-- ====================================================================== -->
+ <!-- First two polylines. -->
+ <!-- ====================================================================== -->
+ <!-- Open sawtooth line. -->
+ <polyline xml:id="polyline-01" fill="none" stroke="#000000" points="10,50,35,150,60,50,85,150,110,50,135,150" />
+ <!-- text font-family="Arial" font-size="12" x="52" y="40">stroked</text-->
+ <!-- Closed pentagon shaped polyline (5 segments). -->
+ <polyline xml:id="polyline-02" fill="none" stroke="blue" stroke-width="8" points="220,50,267,84,249,140,190,140,172,84,220,50" />
+ <!--text font-family="Arial" font-size="12" x="202" y="40">stroked</text-->
+ <!-- ====================================================================== -->
+ <!-- Third polyline. -->
+ <!-- ====================================================================== -->
+ <!-- The sawtooth again, polylines can be filled. -->
+ <polyline xml:id="polyline-03" fill="blue" stroke="#00FF00" stroke-width="4" points="310,50,335,150,360,50,385,150,410,50,435,150" />
+ <!--text font-family="Arial" font-size="12" x="340" y="40">filled & stroked</text-->
+ <!-- ====================================================================== -->
+ <!-- Fourth and fifth polylines. -->
+ <!-- ====================================================================== -->
+ <!-- An unclosed "septagon" shaped polyline (7th segment omitted). -->
+ <polyline xml:id="polyline-04" fill="none" stroke="red" stroke-width="8" points="59,185,98,203,108,245,82,279,39,280,11,247,19,205" />
+ <!--text font-family="Arial" font-size="12" x="36" y="175">stroked</text-->
+ <!-- Same shape, filled, shows difference with 'polygon'. -->
+ <polyline xml:id="polyline-05" fill="#00FF00" stroke="#0000FF" stroke-width="8" points="189,185,228,203,238,245,212,279,169,280,141,247,149,205" />
+ <!--text font-family="Arial" font-size="12" x="148" y="175">filled & stroked</text-->
+ <!-- ====================================================================== -->
+ <!-- Sixth polylines, irregular with both concave and convex angles. -->
+ <!-- ====================================================================== -->
+ <polyline xml:id="polyline-06" fill="#FF00FF" stroke="none" stroke-width="8" points="270,225 300,245 320,225 340,245 280,280 390,280 420,240 280,185" />
+ <!--text font-family="Arial" font-size="12" x="330" y="175">filled</text-->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-polyline-02-t.png b/test/svg/svg1.2/svg/shapes-polyline-02-t.png
new file mode 100644
index 0000000..780b549
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-polyline-02-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-polyline-02-t.svg b/test/svg/svg1.2/svg/shapes-polyline-02-t.svg
new file mode 100644
index 0000000..f34388f
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-polyline-02-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AN" desc="Test points attribute syntax. Test that empty and invalid points attributes result in not rendering 'polyline' elements." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: shapes-polyline-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Testing different points attribute syntaxes, empty and invalid points
+ attributes (e.g. odd number of coordinates).
+ </p>
+ <p>
+ Only three identical polygon elements should be rendered down the
+ right hand side of the test.
+ </p>
+ <p>
+ The rendered picture should match the reference image, except for possible
+ variations in the labelling text (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-polyline-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Test that empty and invalid points attributes result in not rendering <polyline /> elements.</text>
+ <text font-size="12" x="25" y="160">Only three similar <polyline /> elements should be rendered.</text>
+ <text font-size="12" x="25" y="180">Two different syntaxes in the points attribute.</text>
+ <!-- Test polyline without points attribute. -->
+ <polyline xml:id="polyline-01" fill="red" stroke="black" />
+ <!-- Test polyline with empty points attribute. -->
+ <polyline xml:id="polyline-02" fill="red" stroke="black" points="" />
+ <!-- odd number of coordinates -->
+ <polyline xml:id="polyline-03" fill="red" stroke="black" points="179,45,218,63,228,105,202,139,159,140,131,107,139,65,179" />
+ <!-- three alternative points attribute syntaxes -->
+ <polyline xml:id="polyline-04" fill="red" stroke="black" transform="translate(40,0)" points="350,45 375,80 410,95 375,110 350,145 325,120 290,95 325,70,350,45" />
+ <polyline xml:id="polyline-05" fill="red" stroke="black" transform="translate(40,100)" points="350,45,375,80,410,95,375,110,350,145,325,120,290,95,325,70,350,45" />
+ <polyline xml:id="polyline-06" fill="red" stroke="black" transform="translate(40,200)" points="350 45 375 80 410 95 375 110 350 145 325 120 290 95 325 70 350 45" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/shapes-rect-01-t.png b/test/svg/svg1.2/svg/shapes-rect-01-t.png
new file mode 100644
index 0000000..97332cb
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-rect-01-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-rect-01-t.svg b/test/svg/svg1.2/svg/shapes-rect-01-t.svg
new file mode 100644
index 0000000..3e5deec
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-rect-01-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN" owner="KRL" desc="Test that viewer has the basic capability to handle the <rect> element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: shapes-rect-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-rect-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the <rect/> element with different fill, stroke and rx attributes</text>
+ <!-- ====================================================================== -->
+ <!-- First of all draw two simple rectangles. One stroked, one filled. -->
+ <!-- ====================================================================== -->
+ <rect xml:id="Simple-rect-no-fill" fill="none" stroke="#000000" x="30" y="46" width="50" height="80" />
+ <rect xml:id="Simple-rect-filled" fill="red" x="130" y="46" width="50" height="80" />
+ <!-- ====================================================================== -->
+ <!-- Second set of rectangles this time with rounded corners. -->
+ <!-- ====================================================================== -->
+ <rect xml:id="Simple-round-rect-no-fill" fill="none" stroke="#000000" x="250" y="46" width="50" height="80" rx="30" />
+ <rect xml:id="Simple-round-rect-filled" fill="red" x="350" y="46" width="50" height="80" rx="30" />
+ <!-- ====================================================================== -->
+ <!-- Third set of rectangles. -->
+ <!-- ====================================================================== -->
+ <rect xml:id="rect-03" fill="none" stroke="#0000FF" stroke-width="8" x="30" y="196" width="50" height="80" />
+ <rect xml:id="rect-04" fill="#00FF00" stroke="#0000FF" stroke-width="8" x="130" y="196" width="50" height="80" />
+ <!-- ====================================================================== -->
+ <!-- Fourth set of rectangles. -->
+ <!-- ====================================================================== -->
+ <rect xml:id="rect-05" fill="none" stroke="#0000FF" stroke-width="8" x="250" y="196" width="50" height="80" rx="30" ry="50" />
+ <rect xml:id="rect-06" fill="#00FF00" x="350" y="196" width="50" height="80" rx="30" ry="50" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-rect-02-t.png b/test/svg/svg1.2/svg/shapes-rect-02-t.png
new file mode 100644
index 0000000..97ff79e
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-rect-02-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-rect-02-t.svg b/test/svg/svg1.2/svg/shapes-rect-02-t.svg
new file mode 100644
index 0000000..ecdaeb8
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-rect-02-t.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DJ,AN" owner="CN" desc="Testing the default attributes on the rect element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: shapes-rect-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ <p>Testing the default attributes on the rect element. There should be four rectangles. One should be placed on the left (default x), one on the top (default y). Two rounded rectangles should appear where rx and ry are of the same value (one of the two had been omitted).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-rect-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the default values of attributes of the <rect/> element</text>
+ <g fill="blue" stroke="#000000" fill-opacity="0.5">
+ <!-- Set x coordinate to default. -->
+ <rect y="46" width="50" height="80" />
+ <!-- Set y coordinate to default. -->
+ <rect x="130" width="50" height="80" />
+ <!-- Set width to default. -->
+ <rect x="250" y="46" height="80" width="0" />
+ <!-- Set height to default. -->
+ <rect x="350" y="46" height="0" width="50" />
+ <!-- Set rx to default. -->
+ <rect x="30" y="196" width="50" height="80" ry="20" />
+ <!-- Set ry to default. -->
+ <rect x="130" y="196" width="50" height="80" rx="20" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/shapes-rect-03-t.png b/test/svg/svg1.2/svg/shapes-rect-03-t.png
new file mode 100644
index 0000000..3ee8a45
Binary files /dev/null and b/test/svg/svg1.2/svg/shapes-rect-03-t.png differ
diff --git a/test/svg/svg1.2/svg/shapes-rect-03-t.svg b/test/svg/svg1.2/svg/shapes-rect-03-t.svg
new file mode 100644
index 0000000..470d689
--- /dev/null
+++ b/test/svg/svg1.2/svg/shapes-rect-03-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="AN" desc="Testing the correct stroking of the rect element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: shapes-rect-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing the correct stroking of the rect element. The blue lines indicate where a dash or gap should start and end. For the test to pass, it has to match the reference image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: shapes-rect-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="240" y="14" text-anchor="middle">Testing the correct stroking of the <rect/> element</text>
+ <g fill="red" stroke="#000000">
+ <!-- normal rectangle -->
+ <rect x="50" y="100" width="100" height="100" stroke-dasharray="100,5" stroke-width="5"/>
+ <!-- rectangle with rounded corner -->
+ <rect x="250" y="100" width="100" height="100" rx="10" ry="10" stroke-dasharray="100,5" stroke-width="5"/>
+ </g>
+ <g xml:id="lines_indicating_the_dashing" stroke="blue">
+ <!-- left rectangle -->
+ <line x1="50" y1="100" x2="50" y2="90" />
+ <line x1="150" y1="100" x2="150" y2="90" />
+ <line x1="150" y1="105" x2="160" y2="105" />
+ <line x1="145" y1="200" x2="145" y2="210" />
+ <line x1="140" y1="200" x2="140" y2="210" />
+ <line x1="50" y1="190" x2="40" y2="190" />
+ <line x1="50" y1="185" x2="40" y2="185" />
+ <!-- right rectangle -->
+ <line x1="260" y1="100" x2="260" y2="90" />
+ <line x1="350" y1="114" x2="360" y2="114" />
+ <line x1="350" y1="119" x2="360" y2="119" />
+ <line x1="326.4" y1="200" x2="326.4" y2="210" />
+ <line x1="321.4" y1="200" x2="321.4" y2="210" />
+ <line x1="250" y1="167" x2="240" y2="167" />
+ <line x1="250" y1="162" x2="240" y2="162" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark" fill-opacity="0.5">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-class-201-t.png b/test/svg/svg1.2/svg/struct-class-201-t.png
new file mode 100644
index 0000000..aa39618
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-class-201-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-class-201-t.svg b/test/svg/svg1.2/svg/struct-class-201-t.svg
new file mode 100644
index 0000000..622d50a
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-class-201-t.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events" xml:space="preserve">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="DS" desc="Tests that the value of the 'class' attribute is included in the DOM" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: struct-class-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests that the value of the 'class' attribute is included in the DOM,
+ including space-separated values, and values with extraneous spaces.
+ </p>
+ <p>
+ The rendered picture should match the reference image, except for
+ possible variations in the labelling text (per CSS2 rules). The pass
+ condition is seeing three green circles, with text below each circle
+ reflecting the normalized space-separated values for the class of that
+ circle. The leftmost circle has the value "foo", the middle circle has
+ the value "bar baz", and the rightmost circle has the value
+ " funky spacing ", normalized to "funky spacing". If any of the
+ circles are red, the test has failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-class-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle xml:id="circle_1" cx="120" cy="150" r="40" class="foo" />
+ <text id="text_1" x="120" y="210" font-size="18" fill="black" text-anchor="middle"> </text>
+
+ <circle xml:id="circle_2" cx="240" cy="150" r="40" class="bar baz" />
+ <text id="text_2" x="240" y="210" font-size="18" fill="black" text-anchor="middle"> </text>
+
+ <circle xml:id="circle_3" cx="360" cy="150" r="40" class=" funky spacing " />
+ <text id="text_3" x="360" y="210" font-size="18" fill="black" text-anchor="middle"> </text>
+
+ <script type="text/ecmascript">
+ <![CDATA[
+ function testAttributeValue( targetElId, outputElId, val )
+ {
+ var targetEl = document.getElementById( targetElId );
+
+ var classVal = targetEl.getAttribute( "class" );
+ //normalize value
+ classVal = classVal.replace(/^\s+|\s+$/g,"").replace(/\s+/g," ");
+
+ var fill = "red";
+ if ( classVal == val )
+ {
+ fill = "lime";
+ }
+ targetEl.setAttribute( "fill", fill );
+
+ var outputEl = document.getElementById( outputElId );
+ outputEl.firstChild.nodeValue = classVal;
+ }
+
+ testAttributeValue("circle_1", "text_1", "foo");
+ testAttributeValue("circle_2", "text_2", "bar baz");
+ testAttributeValue("circle_3", "text_3", "funky spacing");
+ ]]>
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-common-201-t.png b/test/svg/svg1.2/svg/struct-common-201-t.png
new file mode 100644
index 0000000..2b76df4
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-common-201-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-common-201-t.svg b/test/svg/svg1.2/svg/struct-common-201-t.svg
new file mode 100644
index 0000000..73c2479
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-common-201-t.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <handler type="application/ecmascript" xe:event="SVGLoad">
+ initTest(evt);
+ </handler>
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="test id and xml:id modification" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: struct-common-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests that reading of IDs and modification of id and xml:id is conformant to the SVG and xml:id specifications. The test passes if four green circles are shown.
+ </p>
+ <p>
+ The first circle has an id only; the second, xml:id only. The third circle has both, with the same values; and the fourth has both, with different values. All four circles have a red fill; on loading the document, a script
+ gets each of the circles by its ID and then sets the fill to green. Lastly, the script attempts
+ to get the fourth circle by ID, using the value of the id attribute; this must fail. If the fourth
+ circle is dark red, the implementation is not giving priority to the value of xml:id.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-common-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="application/ecmascript">
+ <![CDATA[
+ var svg_ns = "http://www.w3.org/2000/svg"
+ var doc;
+ var oldid;
+ var newid;
+ var bothids;
+ var different;
+
+ //
+ // onload handler for top level svg element.
+ //
+ function initTest(evt)
+ {
+ // Get Document
+ var target = evt.target;
+ doc = target.ownerDocument;
+
+ // Get elements identified by id, by xml:id, and by both
+ oldid = doc.getElementById("cod");
+ newid= doc.getElementById("plaice");
+ bothids= doc.getElementById("flounder");
+ different= doc.getElementById("mackerel");
+
+ //Make all four elements green
+ oldid.setAttribute("fill", "green");
+ newid.setAttribute("fill", "green");
+ bothids.setAttribute("fill", "green");
+ different.setAttribute("fill", "green");
+
+ //Try to select on id, should fail
+ different= doc.getElementById("herring");
+ different.setAttribute("fill", "#700");
+
+ }
+ ]]>
+ </script>
+
+ <circle cx="60" cy="100" r="50" fill="red" id="cod"/>
+ <circle cx="180" cy="100" r="50" fill="red" xml:id="plaice" />
+ <circle cx="300" cy="100" r="50" fill="red" id="flounder" xml:id="flounder"/>
+ <circle cx="420" cy="100" r="50" fill="red" id="herring" xml:id="mackerel"/>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="16" text-anchor="middle">
+ <text x="60" y="190">id only</text>
+ <text x="180" y="190">xml:id only</text>
+ <text x="300" y="190">id and</text>
+ <text x="300" y="210">xml:id, same</text>
+ <text x="300" y="230">values</text>
+ <text x="420" y="190">id and</text>
+ <text x="420" dy="210">xml:id, different</text>
+ <text x="420" dy="230">values</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-cond-01-t.png b/test/svg/svg1.2/svg/struct-cond-01-t.png
new file mode 100644
index 0000000..013bfcd
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-cond-01-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-cond-01-t.svg b/test/svg/svg1.2/svg/struct-cond-01-t.svg
new file mode 100644
index 0000000..5e47317
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-cond-01-t.svg
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="TT" desc="Test to determine if a simple switch element can be probably evaluated." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: struct-cond-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test evaluates a switch statement. The result should be a green rectangle in the lower left quarter of the output window.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ <p>The test uses the 'rect' element, as well as basic fill (solid primary colors), stroke (black 1-pixel lines), font-family (Arial) and font-size properties.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-cond-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <switch>
+ <rect fill="red" x="0" y="0" width="220" height="150" requiredExtensions="http://example.org/bogus" />
+ <rect fill="green" x="0" y="150" width="220" height="150" />
+ <rect fill="blue" x="240" y="0" width="220" height="150" />
+ </switch>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-cond-02-t.png b/test/svg/svg1.2/svg/struct-cond-02-t.png
new file mode 100644
index 0000000..129d396
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-cond-02-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-cond-02-t.svg b/test/svg/svg1.2/svg/struct-cond-02-t.svg
new file mode 100644
index 0000000..afba9c9
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-cond-02-t.svg
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="Test that viewer has the basic capability to switch on user langauge" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: struct-cond-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests ability to use the 'systemLanguage' as a test attribute within a switch element. To pass, either</p>
+ <p>It is an error to display no output; the last child of switch has no test, so it will always be taken unless a more suitable child has already evaluated to true.</p>
+ <p>In addition, the string "Why don't they just speak <language>" should appear in the center of the graphic, translated into that language. It is not an error for some or all of this string to display as 'missing character' glyphs, if no suitable font is available - however, this is unlikely if the language is indeed the users primary language. (It can easily occur during testing, however).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-cond-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="black" stroke="none" font-size="24" font-weight="normal" font-family="Arial, Tahoma, Verdana, 'Arial Unicode MS', Code2000">
+ <!-- a blank one <text x="20" y="220" xml:lang=""> <tspan font-weight="bold" > ?</text> <text x="230" y="150" xml:lang="en"></text> -->
+ <!-- put sample here for testing -->
+ <switch>
+ <g systemLanguage="af">
+ <text x="20" y="220" xml:lang="af" font-size="16">Waarom kan hulle nie net doodgewoon Afrikaans praat nie?</text>
+ <text x="230" y="150" xml:lang="en">Afrikaans</text>
+ </g>
+ <g systemLanguage="am">
+ <text x="20" y="220" xml:lang="am" font-family="'GF Zemen Unicode',Code2000" font-size="28">á??á??á??á?µá??á?? á? á??á?á?? á?¨á??á?á??á??á?©á?µá?§</text>
+ <text x="230" y="150" xml:lang="en">Amharic</text>
+ </g>
+ <g systemLanguage="ar">
+ <!-- this is a tiny test so there is no text-anchor, thus rtl text is explicitly positioned -->
+ <text x="20" y="220" xml:lang="ar-SA" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="19">Ù?Ù?اذا Ù?ا Ù?تÙ?Ù?Ù?Ù?Ù? اÙ?Ù?Ù?غة اÙ?عربÙ?Ø© Ù?ØسبØ?</text>
+ <text x="230" y="150" xml:lang="en">Arabic (SA)</text>
+ </g>
+ <g systemLanguage="bg">
+ <text x="20" y="220" xml:lang="bg" font-size="18">Ð?аÑ?о Ñ?е пÑ?оÑ?Ñ?о не могаÑ? да говоÑ?Ñ?Ñ? бÑ?лгаÑ?Ñ?ки ?</text>
+ <text x="230" y="150" xml:lang="en">Bulgarian</text>
+ </g>
+ <g systemLanguage="bn">
+ <text x="20" y="220" xml:lang="bn" font-family="'Arial Unicode MS','UT Bengali Khulna'" font-size="28">�রা ��ন বা�লা বল�ত পা�র না ?</text>
+ <text x="230" y="150" xml:lang="en">Bengali</text>
+ </g>
+ <!-- Tibetan needs complex layout: this will not work correctly though the font has the right glyphs: <g systemLanguage="bo"> <text x="20" y="220" xml:lang="bo" font-family="'Arial Unicode MS'" font-size="18"> ��རེ��ྱས��ོ�ར���ོས� �ོ�� ས������ེ���ར���ཤ���ྱི���རེ��</text> <text x="230" y="150" xml:lang="en">Tibetan</text> </g>-->
+ <g systemLanguage="ca">
+ <text x="20" y="220" xml:lang="bg" font-size="20">Per què no poden simplement parlar en català ?</text>
+ <text x="230" y="150" xml:lang="en">Catalan</text>
+ </g>
+ <g systemLanguage="cs">
+ <text x="20" y="220" xml:lang="cs">ProÄ? prostÄ? nemluvà Ä?esky ?</text>
+ <text x="230" y="150" xml:lang="en">Czech</text>
+ </g>
+ <g systemLanguage="cy">
+ <text x="20" y="220" xml:lang="cy" font-size="20">Pam dydyn nhw ddim yn siarad Cymraeg ?</text>
+ <text x="230" y="150" xml:lang="en">Welsh</text>
+ </g>
+ <g systemLanguage="da">
+ <text x="20" y="220" xml:lang="da">Hvorfor kan de ikke bare tale dansk ?</text>
+ <text x="230" y="150" xml:lang="en">Danish</text>
+ </g>
+ <!-- need a generic german, too -->
+ <g systemLanguage="de-DE">
+ <text x="20" y="220" xml:lang="de-DE" font-size="22">Warum sprechen sie nicht einfach Deutsch ?</text>
+ <text x="230" y="150" xml:lang="en">German (DE)</text>
+ </g>
+ <g systemLanguage="el">
+ <text x="20" y="220" xml:lang="el-GR" font-size="22">Î?α γιαÏ?ί δεν μÏ?οÏ?οÏ?ν να μιλήÏ?οÏ?ν Î?λληνικά ;</text>
+ <text x="230" y="150" xml:lang="en">Greek (modern, GR)</text>
+ </g>
+ <g systemLanguage="en">
+ <text x="20" y="220" xml:lang="en-US">Why can't they just speak English ?</text>
+ <text x="230" y="150" xml:lang="en">English (US)</text>
+ </g>
+ <g systemLanguage="es">
+ <text x="20" y="220" xml:lang="es-ES" font-size="18">¿Por qué no pueden simplemente hablar en castellano ?</text>
+ <text x="230" y="150" xml:lang="en">Spanish (ES)</text>
+ </g>
+ <g systemLanguage="eu">
+ <text x="20" y="220" xml:lang="eu" font-size="21">Zergatik ezin dute Euzkeraz bakarrik hitzegin?</text>
+ <text x="230" y="150" xml:lang="en">Basque</text>
+ </g>
+ <g systemLanguage="fa">
+ <text x="20" y="220" xml:lang="fa" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="22">خبØ? Ú?را Ù?ارسÙ? صØبت Ù?Ù?Ù? Ù?Ù?Ù?دØ?</text>
+ <text x="230" y="150" xml:lang="en">Farsi</text>
+ </g>
+ <g systemLanguage="fi">
+ <text x="20" y="220" xml:lang="fi" font-size="20">Miksi he eivät yksinkertaisesti puhu suomea ?</text>
+ <text x="230" y="150" xml:lang="en">Finnish</text>
+ </g>
+ <!-- put Canadian French before generic French -->
+ <g systemLanguage="fr">
+ <text x="20" y="220" xml:lang="fr-fR" font-size="17">Pourquoi, tout simplement, ne parlent-ils pas en Français ?</text>
+ <text x="230" y="150" xml:lang="en">French (FR)</text>
+ </g>
+ <g systemLanguage="gd">
+ <text x="20" y="220" xml:lang="gd" font-size="20">Carson nach eil iad a'bruidhinn na GÃ idhlige ?</text>
+ <text x="230" y="150" xml:lang="en">Scots Gaelic</text>
+ </g>
+ <g systemLanguage="gu">
+ <text x="20" y="220" xml:lang="gu" font-family="'Arial Unicode MS'" font-size="28">બદ�ધા લ��� ���રાત� ��મ નથ� બ�લતા?</text>
+ <text x="230" y="150" xml:lang="en">Gujarti (IN)</text>
+ </g>
+ <g systemLanguage="he">
+ <!-- he or iw, check -->
+ <text x="20" y="220" xml:lang="he" font-family="Tahoma,'Arial Unicode MS'" font-size="22">×?×?×? ×?×? פש×?×? ×?×? ×?×?×?ר×?×? ×¢×?ר×?ת ?</text>
+ <text x="230" y="150" xml:lang="en">Hebrew (modern)</text>
+ </g>
+ <g systemLanguage="hi">
+ <text x="20" y="220" xml:lang="hi" font-family="Mangal,Code2000,'Arial Unicode MS'">यह ल�� हिन�द� ��य�� नह�� ब�ल स�त� ह�� ?</text>
+ <text x="230" y="150" xml:lang="en">Hindi</text>
+ </g>
+ <g systemLanguage="hr">
+ <text x="20" y="220" xml:lang="hr">Zašto jednostavno ne govore hrvatski ?</text>
+ <text x="230" y="150" xml:lang="en">Croatian</text>
+ </g>
+ <g systemLanguage="hu">
+ <text x="20" y="220" xml:lang="hu" font-size="22">Miért nem beszélnek egyszerűen magyarul ?</text>
+ <text x="230" y="150" xml:lang="en">Hungarian</text>
+ </g>
+ <g systemLanguage="hy">
+ <text x="20" y="220" xml:lang="hy" font-family="Sylfaen,Code2000,'Arial Unicode MS'" font-size="22">Ô»Õ¶Õ¹Õ¸Ö?Õ? Õ¶Ö?Õ¡Õ¶Ö? Õ¹Õ¥Õ¶ ÕÕ¸Õ½Õ¸Ö?Õ´ Õ?Õ¡ÕµÕ¥Ö?Õ¥Õ¶ </text>
+ <text x="230" y="150" xml:lang="en">Armenian</text>
+ </g>
+ <g systemLanguage="id">
+ <text x="20" y="220" xml:lang="id" font-size="18">Mengapa mereka tidak bisa bicara bahasa Indonesia ?</text>
+ <text x="230" y="150" xml:lang="en">Indonesian</text>
+ </g>
+ <g systemLanguage="is">
+ <text x="20" y="220" xml:lang="is" font-size="20">Hvers vegna geta þeir ekki réttlátur tala �slenska ?</text>
+ <text x="230" y="150" xml:lang="en">Icelandic</text>
+ </g>
+ <g systemLanguage="it">
+ <text x="20" y="220" xml:lang="it" font-size="18">Perchè non possono semplicemente parlare italiano ?</text>
+ <text x="230" y="150" xml:lang="en">Italian</text>
+ </g>
+ <g systemLanguage="iu">
+ <!-- unable to distinguish North Baffin Island Inuktitut from South/Central Baffin Island Inuktitut because ISO 3166 codes do not offer any finer resolution than 'Canadian' -->
+ <text x="20" y="220" xml:lang="iu" font-family="NunacomU,'Ballymun RO','Arial Unicode MS'" font-size="28">á?±á?»á?ªá??á??á?¯á?? á??á??á??á??á?? á??á??á??á??á?á?±á??á?¦</text>
+ <text x="230" y="150" xml:lang="en">Inuktitut</text>
+ </g>
+ <g systemLanguage="ja-JP">
+ <text x="20" y="220" xml:lang="ja-JP" font-family="'MS Gothic',ï¼ï¼³ ã?´ã?·ã??ã?¯,'MS Mincho',ï¼ï¼³ æ??æ??,Code2000,'Arial Unicode MS',DFP-SMTWSong" font-size="22">ã?ªã??ã??ã?¿ã??ã?ªæ?¥æ?¬èª?ã??話ã??ã?¦ã??ã??ã?ªã??ã?®ã??ï¼?</text>
+ <text x="230" y="150" xml:lang="en">Japanese (JP)</text>
+ </g>
+ <g systemLanguage="jw">
+ <text x="20" y="220" xml:lang="jw" font-size="20">Kenapa kok ora nganggo basa Jawa  wae?</text>
+ <text x="230" y="150" xml:lang="en">Javanese</text>
+ </g>
+ <g systemLanguage="ka">
+ <text x="20" y="220" xml:lang="ka" font-family="Sylfaen,Code2000,'Arial Unicode MS'" font-size="20">á? á??á?¢á??á?? á??á? á??á??á??á??á? á??á??á??á??á??á?? á??á?¡á??á??á?? á?¥á??á? á??á?£á??á??á?? ?</text>
+ <text x="230" y="150" xml:lang="en">Georgian</text>
+ </g>
+ <g systemLanguage="kk">
+ <text x="20" y="220" xml:lang="kk" font-family="'Arial Unicode MS',Code2000">Ð?лаÑ? неге Ò?азаÒ? Ñ?iлiнде Ñ?ойлемейдi?</text>
+ <text x="230" y="150" xml:lang="en">Kazakh</text>
+ </g>
+ <g systemLanguage="kn">
+ <text x="20" y="220" xml:lang="kn" font-family="'Arial Unicode MS',Code2000" font-size="28">�ವರ� �ನ�ನಡ ಮಾತನಾಡಬಹ�ದಲ�ಲಾ?</text>
+ <text x="230" y="150" xml:lang="en">Kannada</text>
+ </g>
+ <g systemLanguage="ko">
+ <text x="20" y="220" xml:lang="ko" font-family="GulimChe,굴림체,Gulim,굴림,BatangChe,ë°?í??ì²´,Batang,ë°?í??,Code2000,'Arial Unicode MS'" font-size="15">ì?¸ê³?ì?? 모ë? ì?¬ë??ë?¤ì?´ í??êµì?´ 를 ì?´í?´í??ë?¤ë©´ ì?¼ë§?ë?? ì¢?ì??ê¹??</text>
+ <text x="230" y="150" xml:lang="en">Korean</text>
+ </g>
+ <g systemLanguage="ky">
+ <text x="20" y="220" xml:lang="ky" font-family="'Arial Unicode MS',Code2000">Ð?мне Ò¯Ñ?үн алаÑ? кÑ?Ñ?гÑ?зÑ?а Ñ?үйлбйÑ??</text>
+ <text x="230" y="150" xml:lang="en">Kirghiz</text>
+ </g>
+ <g systemLanguage="lt">
+ <text x="20" y="220" xml:lang="lt" font-size="28">KodÄ?l gi jie nekalba lietuviÅ¡kai ?</text>
+ <text x="230" y="150" xml:lang="en">Lithuanian</text>
+ </g>
+ <g systemLanguage="mk">
+ <text x="20" y="220" xml:lang="mk" font-size="20">Ð?оÑ?Ñ?о Ñ?ие едноÑ?Ñ?авно не говоÑ?аÑ? македонÑ?ки ?</text>
+ <text x="230" y="150" xml:lang="en">Macedonian</text>
+ </g>
+ <g systemLanguage="mr">
+ <text x="20" y="220" xml:lang="mr" font-family="Mangal,Code2000,'Arial Unicode MS'" font-size="26">ल��ा�ना मराठ� �ा ब�लता य�त नाह�?</text>
+ <text x="230" y="150" xml:lang="en">Marathi</text>
+ </g>
+ <g systemLanguage="nl">
+ <text x="20" y="220" xml:lang="nl" font-size="21">Waarom spreken ze niet gewoon Nederlands ?</text>
+ <text x="230" y="150" xml:lang="en">Dutch</text>
+ </g>
+ <g systemLanguage="no">
+ <text x="20" y="220" xml:lang="no" font-size="21">Hvorfor kan de ikke bare snakke norsk ?</text>
+ <text x="230" y="150" xml:lang="en">Norwegian</text>
+ </g>
+ <g systemLanguage="or">
+ <text x="20" y="220" xml:lang="or" font-family="'Arial Unicode MS',Code2000" font-size="26">ସà?ମାନà? à¬?ଡିଯା ରà? à¬?ହିନà?à¬?ି à¬?ହିବà? ନହିà¬??</text>
+ <text x="230" y="150" xml:lang="en">Oriya</text>
+ </g>
+ <g systemLanguage="pl">
+ <text x="20" y="220" xml:lang="pl">Dlaczego oni nie mówiÄ? po polsku ?</text>
+ <text x="230" y="150" xml:lang="en">Polish</text>
+ </g>
+ <!-- test two specific types of Portugese, then a generic alternative -->
+ <g systemLanguage="pt-PT">
+ <text x="20" y="220" xml:lang="pt-PT" font-size="18">Porque é que eles não falam simplesmente em Português ?</text>
+ <text x="230" y="150" xml:lang="en">Portugese (PT)</text>
+ </g>
+ <g systemLanguage="pt-BR">
+ <text x="20" y="220" xml:lang="pt-BR" font-size="17">Porque é que eles não falam em Português (do Brasil) ?</text>
+ <text x="230" y="150" xml:lang="en">Portugese (BR)</text>
+ </g>
+ <g systemLanguage="pt">
+ <text x="20" y="220" xml:lang="pt-PT" font-size="18">Porque é que eles não falam simplesmente em Português ?</text>
+ <text x="230" y="150" xml:lang="en">Portugese</text>
+ </g>
+ <g systemLanguage="ro">
+ <text x="20" y="220" xml:lang="ro">De ce ei nu vorbesc moldoveneÅ?te ?</text>
+ <text x="230" y="150" xml:lang="en">Romanian</text>
+ </g>
+ <g systemLanguage="ru">
+ <text x="20" y="220" xml:lang="ru">Ð?оÑ?емÑ? же они не говоÑ?Ñ?Ñ? по-Ñ?Ñ?Ñ?Ñ?ки ?</text>
+ <text x="230" y="150" xml:lang="en">Russian</text>
+ </g>
+ <g systemLanguage="sa">
+ <text x="20" y="220" xml:lang="sa" font-family="Mangal,Code2000,'Arial Unicode MS'" font-size="26">त� �ि� स�स���त� माम वदन�ति ?</text>
+ <text x="230" y="150" xml:lang="en">Sanskrit</text>
+ </g>
+ <g systemLanguage="sr">
+ <text x="20" y="220" xml:lang="sr">Zašto jednostavno ne govore srpski ?</text>
+ <text x="230" y="150" xml:lang="en">Serbian</text>
+ </g>
+ <g systemLanguage="si">
+ <text x="20" y="220" xml:lang="si" font-family="'Andale Mono WT J'" font-size="26">à¶?à·?යà·? à¶?à·?à·?නà·?ට à¶?à¶?à¶?රà·?à·? à¶?à¶à·? à·?නබ ?</text>
+ <text x="230" y="150" xml:lang="en">Sinhalese</text>
+ <!-- Sinhalese needs somewhat complex layout (many paired special cases, see http://www-texdev.mpce.mq.edu.au/l2h/indic/Sinhala/lreport/node1.html so this 'chart' font is not entirely suitable-->
+ </g>
+ <g systemLanguage="sl">
+ <text x="20" y="220" xml:lang="sl">Zakaj vendar ne govorijo slovensko ?</text>
+ <text x="230" y="150" xml:lang="en">Slovenian</text>
+ </g>
+ <g systemLanguage="sq">
+ <text x="20" y="220" xml:lang="sq">Pse nuk duan të flasin vetëm shqip ?</text>
+ <text x="230" y="150" xml:lang="en">Albanian</text>
+ </g>
+ <g systemLanguage="sv">
+ <text x="20" y="220" xml:lang="sv">Varför pratar dom inte bara svenska ?</text>
+ <text x="230" y="150" xml:lang="en">Swedish</text>
+ </g>
+ <g systemLanguage="ta">
+ <text x="20" y="220" xml:lang="ta" font-family="Latha,'Arial Unicode MS'" font-size="20">�வர��ள� �ன� தமிழில� ப�������ாத� ?</text>
+ <text x="230" y="150" xml:lang="en">Tamil</text>
+ </g>
+ <g systemLanguage="te">
+ <text x="20" y="220" xml:lang="te" font-family="'Arial Unicode MS'"> త�ల��� ల� ��ద��� మా��లాడర�?</text>
+ <text x="230" y="150" xml:lang="en">Telugu</text>
+ </g>
+ <g systemLanguage="tg">
+ <text x="20" y="220" xml:lang="tg" font-size="20">Ä?aro onho ba zaboni toÄ?iki gap namezanand?</text>
+ <text x="230" y="150" xml:lang="en">Tajik</text>
+ </g>
+ <g systemLanguage="th">
+ <text x="20" y="220" xml:lang="th" font-family="Tahoma,CordiaUPC,BrowalliaUPC,DilleniaUPC,EucrosiaUPC,FreesiaUPC,JasmineUPC, KodChiangUPC,LilyUPC,'Arial Unicode MS'" font-size="28">�ำ�ม��า�ึ��ม��ู� ภาษา��ย </text>
+ <text x="230" y="150" xml:lang="en">Thai</text>
+ </g>
+ <g systemLanguage="tl">
+ <text x="20" y="220" xml:lang="tl" font-size="19">Bakit hindi na lang sila magsalita ng Tagalog ?</text>
+ <text x="230" y="150" xml:lang="en">Tagalog (Filipino)</text>
+ </g>
+ <g systemLanguage="tr">
+ <text x="20" y="220" xml:lang="tr">Neden Türkçe konuÅ?amıyorlar?</text>
+ <text x="230" y="150" xml:lang="en">Turkish</text>
+ </g>
+ <g systemLanguage="tt">
+ <text x="20" y="220" xml:lang="tt" font-family="'Arial Unicode MS',Code2000" font-size="22">Ð?иÑ?лÓ?п олаÑ? Ñ?аÑ?аÑ?Ñ?а Ñ?үлÓ?Ñ?а алмÑ?йлаÑ??</text>
+ <text x="230" y="150" xml:lang="en">Tatar</text>
+ </g>
+ <g systemLanguage="uk">
+ <text x="20" y="220" xml:lang="uk">ЧомÑ? б Ñ?м не Ñ?озмовлÑ?Ñ?и Ñ?кÑ?аÑ?нÑ?Ñ?коÑ? ?</text>
+ <text x="230" y="150" xml:lang="en">Ukranian</text>
+ </g>
+ <g systemLanguage="ur-IN">
+ <text x="20" y="220" xml:lang="ur-IN" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="22">ﻦﻴﻫ ï»°ïº?ï» ï»ïº? ﻦﻴﻬﻨ ﻦï»ï»´ï»? ﻮﺪïºïº? بس ﻮﻩ ï»?ï»®ï®?Ø?</text>
+ <text x="230" y="150" xml:lang="en">Urdu (IN)</text>
+ </g>
+ <g systemLanguage="ur-PK">
+ <text x="20" y="220" xml:lang="ur-PK" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="19">ﻦﻴﻫ ï»°ïº?ï» ï»ïº? ﻦﻴﻬﻨ ﻦï»ï»´ï»? ﻮﺪïºïº? بس ﻮﻩ ï»?ï»®ï®?Ø?</text>
+ <text x="230" y="150" xml:lang="en">Urdu (PK)</text>
+ </g>
+ <!-- should have a generic Urdu here for when user preference is Urdu but neither Pakistan Urdu nor Indian Urdu -->
+ <g systemLanguage="uz">
+ <text x="20" y="220" xml:lang="uz" font-size="22">Nega ular uzbek tilinda gapirmaidilar?</text>
+ <text x="230" y="150" xml:lang="en">Uzbek</text>
+ </g>
+ <g systemLanguage="vi">
+ <text x="20" y="220" xml:lang="vi" font-family="Tahoma,Verdana,'Verdana Ref','Arial Unicode MS'" font-size="22">TaÌ£i sao hoÌ£ không thêÌ? chiÌ? noÌ?i tiêÌ?ng Việt ?</text>
+ <text x="230" y="150" xml:lang="en">Vietnamese</text>
+ </g>
+ <g systemLanguage="yi">
+ <text x="20" y="220" xml:lang="yi" font-family="Tahoma,'Arial Unicode MS'" font-size="22">פֿ×?ַרװ×?ָס רע×?×? ×?×¢×? × ×?×? פּש×?×? ×?×?Ö´×?×?ש ?</text>
+ <text x="230" y="150" xml:lang="en">Yiddish</text>
+ </g>
+ <g systemLanguage="zh-CN">
+ <text x="20" y="220" font-family="'MS Hei','MS Song',LiSu,é?¶ä¹¦,Code2000,'Arial Unicode MS'" font-size="26" xml:lang="zh-CN">ä»?们为ä»?ä¹?ä¸?说ä¸æ?? ï¼?ä¸å?½ï¼? ï¼?</text>
+ <text x="230" y="150" xml:lang="en">Chinese (CN)</text>
+ </g>
+ <g systemLanguage="zh-TW">
+ <text x="20" y="220" xml:lang="zh-TW" font-family="MingLiU,ç´°æ??é«?,PMingLiU,æ?°ç´°æ??é«?,DFP-SMTWSong,Code2000,'Arial Unicode MS'" font-size="26">ä»?å??ç?²ä»?麽ä¸?說ä¸æ??ï¼?å?°ç?£ï¼?ï¼?</text>
+ <text x="230" y="150" xml:lang="en">Chinese (TW)</text>
+ </g>
+ <g>
+ <!-- the default case, try three languages of W3C host institutions -->
+ <text x="90" y="100" fill="#700" font-size="14">You have no (matching) language preference set</text>
+ <text x="20" y="180" xml:lang="ja-JP" font-family="MS Gothic,ï¼ï¼³ ã?´ã?·ã??ã?¯,MS Mincho,ï¼ï¼³ æ??æ??,Code2000,'Arial Unicode MS',DFP-SMTWSong" font-size="20">ã?ªã??ã??ã?¿ã??ã?ªæ?¥æ?¬èª?ã??話ã??ã?¦ã??ã??ã?ªã??ã?®ã??ï¼?</text>
+ <text x="20" y="220" xml:lang="en-US">Why can't they just speak English ?</text>
+ <text x="20" y="260" xml:lang="fr-fR" font-size="16">Pourquoi, tout simplement, ne parlent-ils pas en Français ?</text>
+ </g>
+ </switch>
+ <!-- action item was to make a switch "for all ISO 639-1 language codes", a large task not completed. But there is enough here to make a good test case, including 19 of the top 20 langiuages by number of speakers (except Punjabi). Here is the full list (trailing * indicates language included in this test), accurate as of October 22, 2002 from the registration authority: http://lcweb.loc.gov/standards/iso639-2/langcodes.html aa Afar ab Abkhazian af Afrikaans * am Amharic * ar Arabic * as Assamese ae Avestan ay Aymara az Azerbaijani ba Bashkir be Byelorussian bg Bulgarian * bh Bihari bi Bislama bn Bengali [Bangla] * bo Tibetan * br Breton bs Bosnian ca Catalan * ce Chechen ch Chamorro co Corsican cs Czech * cu Church Slavic cv Chuvash cy Welsh * da Danish * de German * dz Dzongkha [Bhutani] el Greek, Modern (1453-) * en English, Modern * eo Esperanto es Spanish * et Estonian eu Basque * fa Persian (Farsi) * fi Finnish * fj Fijian fo Faeroese fr French, Modern * fy Frisia
n ga Irish gd Scots Gaelic * gl Gallegan [Galician] gn Guarani gu Gujarati * gv Manx ha Hausa he Hebrew * hi Hindi * ho Hiri Motu hr Croatian * hu Hungarian * hy Armenian * hz Herero ia Interlingua id Indonesian * ie Interlingue ik Inupiak is Icelandic * it Italian * iu Inuktitut * iw Hebrew * ja Japanese * jw Javanese ka Georgian * ki Kikuyu kj Kuanyama kk Kazakh * kl Kalaallisut [Greenlandic] km Khmer [Cambodian] kn Kannada * ko Korean * ks Kashmiri ku Kurdish kv Komi kw Cornish ky Kirghiz * la Latin ln Lingala lo Lao [Laothian] lt Lithuanian * lv Latvian [Lettish] mg Malagasy mh Marshall mi Maori mk Macedonian * ml Malayalam mn Mongolian mo Moldavian mr Marathi * ms Malay mt Maltese my Burmese na Nauru nb Norwegian Bokmal nd Ndebele, North ne Nepali ng Ndonga nl Dutch * nn Norwegian Nynorsk no Norwegian * nr Ndebele, South nv Navajo ny Chichewa~ Nyanja oc Occitan (post 1500); Provencal om Oromo [Afan] or Oriya * os Ossetian; Ossetic pa Panjabi pi Pali pl Polish * ps Pusht
o [Pashto] pt Portuguese * qu Quechua rm Rhaeto-Romance rn Kirundi ro Romanian * ru Russian * rw Kinyarwanda sa Sanskrit * sc Sardinian sd Sindhi se Northern Sami sg Sangro sr Serbian * si Sinhalese * sk Slovak sl Slovenian * sm Samoan sn Shona so Somali sq Albanian * sr Serbian ss Swati [Siswati] st Sotho, Southern [Sesotho] su Sundanese sv Swedish * sw Swahili ta Tamil * te Tegulu * tg Tajik * th Thai * ti Tigrinya tk Turkmen tl Tagalog * tn Tswana [Setswana] to Tonga tr Turkish * ts Tsonga tt Tatar * tw Twi ug Uighur uk Ukrainian * ur Urdu * uz Uzbek * vi Vietnamese * vo Volapuk wo Wolof xh Xhosa yi Yiddish * yo Yoruba za Zhuang zh Chinese * zu Zulu note: http://msdn.microsoft.com/workshop/management/ISO639codes.htm is obselete and incorrect -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-cond-03-t.png b/test/svg/svg1.2/svg/struct-cond-03-t.png
new file mode 100644
index 0000000..365c5c4
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-cond-03-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-cond-03-t.svg b/test/svg/svg1.2/svg/struct-cond-03-t.svg
new file mode 100644
index 0000000..df18dcb
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-cond-03-t.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="CL" desc="Tests the switch element with requiredFeature" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: struct-cond-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests the <switch> element with requiredFeature. If a red rectangle with white text 'FAIL' is
+ displayed, the test fails. Otherwise, if a green rectangle is displayed in the lower part with the text '',
+ the test is passed.
+ </p>
+ <p>
+ The red rectangle and the white text each require a non-existent feature; the test attribute will thus
+ evaluate to false and neither element will be rendered by a compliant implementation.
+ </p>
+ <p>
+ The upper subtest is informative; it distinguishes between a purely SVG Tiny 1.2
+ implementation and others which also implement more (eg SVG Full 1.1, or
+ some profile of SVG 1.2 greater than Tiny). The results of this subtest
+ does not affect the pass/fail criteria.
+ </p>
+ <p>
+ Because SVG Tiny does not support for SVG Full DOM, an SVG Tiny implementation which
+ does not support other SVG Profiles should show a rectangle
+ <span style="background: rgb( 95, 158, 160)">like this</span>.
+ If the application supports the DOM, meaning that it does more than just SVG Tiny, it
+ should show a rectangle <span style="background: rgb( 32, 178, 170)">like this</span>.
+ Either result is a pass.
+ </p>
+ <p>
+ The lower subtest,has another switch. The first child has a requiredFeature
+ set to http://www.w3.org/TR/SVG11/feature#BasicText which all SVG Tiny implementations
+ must support. If the application does, the lower rectangle is displayed in green
+ <span style="background:green; color: white">like this</span>. Otherwise, a red rectangle
+ indicates that the text has failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-cond-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <switch>
+ <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#SVGDOM">
+ <rect x="30" y="20" width="420" height="130" fill="rgb( 32, 178, 170)" />
+ <text x="240" y="100" font-size="18" text-anchor="middle">This viewer does more than SVG Tiny 1.2</text>
+ </g>
+ <g>
+ <rect x="30" y="20" width="420" height="130" fill="rgb( 95, 158, 160)" />
+ <text x="240" y="100" font-size="18" text-anchor="middle">
+ This viewer
+ does not implement SVG Full DOM
+ </text>
+ </g>
+ </switch>
+ <switch transform="translate(0, 140)">
+ <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#BasicText">
+ <rect x="30" y="20" width="420" height="130" fill="green" />
+ <text x="240" y="100" font-size="18" text-anchor="middle" fill="white">SVG Basic Text feature supported</text>
+ </g>
+ <g>
+ <rect x="30" y="20" width="420" height="130" fill="red" />
+ <text x="240" y="100" font-size="18" text-anchor="middle" fill="white">Fail: Basic Text feature not supported</text>
+ </g>
+ </switch>
+
+ <rect x="30" y="20" width="420" height="270" fill="red" requiredFeatures="http://example.org/NotAFeature"/>
+ <text x="240" y="180" fill="white" text-anchor="middle" font-size="36"
+ requiredFeatures="http://www.w3.org/TR/SVG11/feature#NotAFeatureEither">FAIL</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-cond-204-t.png b/test/svg/svg1.2/svg/struct-cond-204-t.png
new file mode 100644
index 0000000..b0b4547
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-cond-204-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-cond-204-t.svg b/test/svg/svg1.2/svg/struct-cond-204-t.svg
new file mode 100644
index 0000000..80a8287
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-cond-204-t.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="AE" desc="Required Formats Attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-cond-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Required Formats Attribute</p>
+ <p>
+ A series of switches are used to determine which Internet Media types ('MIME types')
+ are supported, using the 'requiredFormats' attribute,
+ displaying a 'yes' or 'no' as appropriate. The test is passed if there is text in
+ the second row of each column, and that text is only
+ <span style="color:#070">green</span> (in the top table)
+ or <span style="color:rgb(138, 43, 226)">blueviolet</span> (in the bottom table);
+ no <span style="color:red">red</span> text is displayed.
+ </p>
+ <p>
+ The SVG Tiny 1.2 specification mandates certain formats, so these must be supported:
+ image/jpeg, image/png, image/svg+xml.
+ It is an error not to support them, therefore 'yes' is green and 'no' is red.
+ </p>
+ <p>
+ This test also checks for support of Internet Media types which are
+ assumed to not exist and are unlikely to ever be registered: garbage/garbage.
+ Therefore, 'yes' is red and 'no' is green.
+ </p>
+ <p>
+ Lastly, most media types are optional. For example, image/tiff may be
+ supported but support is not mandated by the SVG Tiny 1.2 specification.
+ The second table examines these optional formats.
+ Both 'yes' and 'no' are displayed in blueviolet. Whether the particular Internet Media type
+ is supported or not does not affect whether the test is passed or failed, but does provide useful
+ information about the optional capabilities of a particular implementation.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-cond-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="#555" font-size="10" text-anchor="middle">
+ <text fill="#000" x="240" font-size="14" y="30" xml:id="display-title">requiredFormats Attribute</text>
+ <text x="240" y="45" xml:id="comment-1">
+ Supported Internet Media types are determined, using the 'requiredFormats' attribute
+ </text>
+ <!--text x="240" y="57" xml:id="comment-2">
+ Results that are expected are marked as such.
+ </text-->
+ </g>
+ <g font-size="10" transform="translate(-30,97)">
+ <text text-anchor="end" x="340" y="-15" fill="#555" font-size="14">Mandatory Formats</text>
+ <text x="350" y="-15" fill="#555" font-size="14">Supported?</text>
+ <text text-anchor="end" x="340" y="0" fill="black">image/svg+xml</text>
+ <switch>
+ <text x="350" y="0" fill="green" requiredFormats="image/svg+xml">Yes (required)</text>
+ <text x="350" y="0" fill="red">No (fail)</text>
+ </switch>
+ <text text-anchor="end" x="340" y="12" fill="black">image/png</text>
+ <switch>
+ <text x="350" y="12" fill="green" requiredFormats="image/png">Yes (required)</text>
+ <text x="350" y="12" fill="red">No (fail)</text>
+ </switch>
+ <text text-anchor="end" x="340" y="24" fill="black">image/jpeg</text>
+ <switch>
+ <text x="350" y="24" fill="green" requiredFormats="image/jpeg">Yes (required)</text>
+ <text x="350" y="24" fill="red">No (fail)</text>
+ </switch>
+ <text text-anchor="end" x="340" y="36" fill="black">foo/foo</text>
+ <switch>
+ <text x="350" y="36" fill="red" requiredFormats="garbage/garbage">Yes (fail)</text>
+ <text x="350" y="36" fill="green">No (expected)</text>
+ </switch>
+ <text text-anchor="end" x="340" y="48" fill="black">image/png image/svg+xml foo/foo</text>
+ <switch>
+ <text x="350" y="48" fill="red" requiredFormats="image/png image/svg+xml garbage/garbage">Yes (fail)</text>
+ <text x="350" y="48" fill="green">No (expected)</text>
+ </switch>
+ <text text-anchor="end" x="340" y="60" fill="black">image/svg+xml image/png image/jpeg</text>
+ <switch>
+ <text x="350" y="60" fill="green" requiredFormats="image/svg+xml image/png image/jpeg">Yes (required)</text>
+ <text x="350" y="60" fill="red">No (fail)</text>
+ </switch>
+
+ <text text-anchor="end" x="340" y="85" fill="#555" font-size="14">Optional Formats</text>
+ <text x="350" y="85" fill="#555" font-size="14">Supported?</text>
+
+ <text text-anchor="end" x="340" y="100" fill="black">image/tif</text>
+ <switch>
+ <text x="350" y="100" fill="rgb(138, 43, 226)" requiredFormats="image/tif">Yes</text>
+ <text x="350" y="100" fill="rgb(138, 43, 226)">No </text>
+ </switch>
+ <text text-anchor="end" x="340" y="112" fill="black">image/g3fax</text>
+ <switch>
+ <text x="350" y="112" fill="rgb(138, 43, 226)" requiredFormats="image/g3fax">Yes</text>
+ <text x="350" y="112" fill="rgb(138, 43, 226)">No</text>
+ </switch>
+
+ <text text-anchor="end" x="340" y="124" fill="black">video/mpeg</text>
+ <switch>
+ <text x="350" y="124" fill="rgb(138, 43, 226)" requiredFormats="video/mpeg">Yes</text>
+ <text x="350" y="124" fill="rgb(138, 43, 226)">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="136" fill="black">video/3gpp</text>
+ <switch>
+ <text x="350" y="136" fill="rgb(138, 43, 226)" requiredFormats="video/3gpp">Yes</text>
+ <text x="350" y="136" fill="rgb(138, 43, 226)">No</text>
+ </switch>
+
+ <text text-anchor="end" x="340" y="148" fill="black">audio/vnd.wave;codec=1</text>
+ <switch>
+ <text x="350" y="148" fill="rgb(138, 43, 226)" requiredFormats="audio/vnd.wave;codec=1">Yes</text>
+ <text x="350" y="148" fill="rgb(138, 43, 226)">No</text>
+ </switch>
+
+ <text text-anchor="end" x="340" y="160" fill="black">audio/3gpp</text>
+ <switch>
+ <text x="350" y="160" fill="rgb(138, 43, 226)" requiredFormats="audio/3gpp">Yes</text>
+ <text x="350" y="160" fill="rgb(138, 43, 226)">No</text>
+ </switch>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-cond-205-t.png b/test/svg/svg1.2/svg/struct-cond-205-t.png
new file mode 100644
index 0000000..8b87062
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-cond-205-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-cond-205-t.svg b/test/svg/svg1.2/svg/struct-cond-205-t.svg
new file mode 100644
index 0000000..b5073d3
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-cond-205-t.svg
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests all the feature strings." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-cond-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests all the SVG Tiny 1.2 feature strings using requiredFeatures.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-cond-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII" font-size="18">
+ <g fill="#555" font-size="10" text-anchor="middle">
+ <text fill="#000" x="240" font-size="14" y="30" xml:id="display-title">Required Features Attribute</text>
+ <text x="240" y="45" xml:id="comment-1">
+ A series of switches are used to determine which 'requiredFeatures' are supported.
+ </text>
+ </g>
+ <g font-size="10" transform="translate(-30,80)">
+ <text text-anchor="end" x="340" y="-15" fill="#555" font-size="14">Feature</text>
+ <text x="350" y="-15" fill="#555" font-size="14">Supported?</text>
+
+ <text text-anchor="end" x="340" y="0" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static</text>
+ <switch>
+ <text x="350" y="0" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static">Yes</text>
+ <text x="350" y="0" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="12" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static-DOM</text>
+ <switch>
+ <text x="350" y="12" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static-DOM">Yes</text>
+ <text x="350" y="12" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="24" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-animated</text>
+ <switch>
+ <text x="350" y="24" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-animated">Yes</text>
+ <text x="350" y="24" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="36" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-all</text>
+ <switch>
+ <text x="350" y="36" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-all">Yes</text>
+ <text x="350" y="36" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="48" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#CoreAttribute</text>
+ <switch>
+ <text x="350" y="48" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#CoreAttribute">Yes</text>
+ <text x="350" y="48" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="60" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#NavigationAttribute</text>
+ <switch>
+ <text x="350" y="60" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#NavigationAttribute">Yes</text>
+ <text x="350" y="60" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="72" fill="black">garbage</text>
+ <switch>
+ <text x="350" y="72" fill="green" requiredFeatures="garbage">Yes</text>
+ <text x="350" y="72" fill="red">No (expected)</text>
+ </switch>
+ <text text-anchor="end" x="340" y="84" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#NavigationAttribute</text>
+ <switch>
+ <text x="350" y="84" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#NavigationAttribute">Yes</text>
+ <text x="350" y="84" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="96" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Structure</text>
+ <switch>
+ <text x="350" y="96" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Structure">Yes</text>
+ <text x="350" y="96" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="108" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#structure</text>
+ <switch>
+ <text x="350" y="108" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#structure">Yes</text>
+ <text x="350" y="108" fill="red">No (expected)</text>
+ </switch>
+ <text text-anchor="end" x="340" y="120" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessing</text>
+ <switch>
+ <text x="350" y="120" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessing">Yes</text>
+ <text x="350" y="120" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="132" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessingAttribute</text>
+ <switch>
+ <text x="350" y="132" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessingAttribute">Yes</text>
+ <text x="350" y="132" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="144" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Image</text>
+ <switch>
+ <text x="350" y="144" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Image">Yes</text>
+ <text x="350" y="144" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="156" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Prefetch</text>
+ <switch>
+ <text x="350" y="156" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Prefetch">Yes</text>
+ <text x="350" y="156" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="168" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Discard</text>
+ <switch>
+ <text x="350" y="168" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Discard">Yes</text>
+ <text x="350" y="168" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Shape</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Shape">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="192" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Text</text>
+ <switch>
+ <text x="350" y="192" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Text">Yes</text>
+ <text x="350" y="192" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="204" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#PaintAttribute</text>
+ <switch>
+ <text x="350" y="204" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#PaintAttribute">Yes</text>
+ <text x="350" y="204" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="216" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#OpacityAttribute</text>
+ <switch>
+ <text x="350" y="216" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#OpacityAttribute">Yes</text>
+ <text x="350" y="216" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="228" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#GraphicsAttribute</text>
+ <switch>
+ <text x="350" y="228" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#GraphicsAttribute">Yes</text>
+ <text x="350" y="228" fill="red">No</text>
+ </switch>
+ <!--
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Gradient</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Gradient">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#SolidColor</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#SolidColor">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Hyperlinking</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Hyperlinking">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#XlinkAttribute</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#XlinkAttribute">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#ExternalResourcesRequired</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#ExternalResourcesRequired">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Scripting</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Scripting">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Handler</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Handler">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Listener</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Listener">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#TimedAnimation</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#TimedAnimation">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Animation</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Animation">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Audio</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Audio">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Video</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Video">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Font</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Font">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#Extensibility</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#Extensibility">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#MediaAttribute</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#MediaAttribute">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#TextFlow</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#TextFlow">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#TransformedVideo</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#TransformedVideo">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ <text text-anchor="end" x="340" y="180" fill="black">http://www.w3.org/Graphics/SVG/feature/1.2/#ComposedVideo</text>
+ <switch>
+ <text x="350" y="180" fill="green" requiredFeatures="http://www.w3.org/Graphics/SVG/feature/1.2/#ComposedVideo">Yes</text>
+ <text x="350" y="180" fill="red">No</text>
+ </switch>
+ -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-cond-209-t.png b/test/svg/svg1.2/svg/struct-cond-209-t.png
new file mode 100644
index 0000000..59336c5
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-cond-209-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-cond-209-t.svg b/test/svg/svg1.2/svg/struct-cond-209-t.svg
new file mode 100644
index 0000000..c9cd054
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-cond-209-t.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="DS" desc="Test to determine if 'display' or 'visibility' attributes have an incorrect effect on the 'switch' element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: struct-cond-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test evaluates the effects of the 'display' or 'visibility'
+ attributes on a switch statement. The result should be a green circle
+ in the center of the output window.
+ </p>
+ <p>
+ The rendered picture should match the reference image, except for
+ possible variations in the labelling text (per CSS2 rules). The pass
+ condition is seeing a green circle in the center of the image. If a
+ gray rectangle is visible, the test cannot be evaluated because the
+ 'display' attribute is not supported. If a blue rectangle is visible,
+ the test cannot be evaluated because the 'visibility' attribute is not
+ supported. If a red rectangle with a gray stroke is visible, the test
+ is failed because the switch is affected by the 'display' attribute.
+ If a red rectangle with a black stroke is visible, the test is failed
+ because the switch is affected by the 'display' attribute.
+ </p>
+ <p>
+ The test uses the 'rect' and 'circle' elements, as well as basic fill
+ (solid primary colors), stroke (black or gray 2-pixel lines), and the
+ 'display' and 'visibility' attributes.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-cond-209-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content">
+
+ <circle cx='240' cy='180' r='23' fill='lime' />
+
+ <switch xml:id="test-display">
+ <rect fill="gray" stroke-width="2" x="215" y="155" width="50" height="50" display="none" />
+ <rect fill="red" stroke="gray" stroke-width="2" x="215" y="155" width="50" height="50" />
+ </switch>
+
+ <switch xml:id="test-visibility">
+ <rect fill="blue" stroke-width="2" x="215" y="155" width="50" height="50" visibility="hidden" />
+ <rect fill="red" stroke="blue" stroke-width="2" x="215" y="155" width="50" height="50" />
+ </switch>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-cond-210-t.png b/test/svg/svg1.2/svg/struct-cond-210-t.png
new file mode 100644
index 0000000..e1827f5
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-cond-210-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-cond-210-t.svg b/test/svg/svg1.2/svg/struct-cond-210-t.svg
new file mode 100644
index 0000000..b46683e
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-cond-210-t.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="DS" desc="Test to determine if referenced resource (elements or paint servers) are still displayed event if hidden by a 'switch' element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: struct-cond-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test evaluates the effects of the switch statement on referencing
+ content such as gradients or elements. The result should be a yellow
+ rectangle in the center of the output window, with green circles in
+ three of the corners of the rectangle.
+ </p>
+ <p>
+ The rendered picture should match the reference image, except for
+ possible variations in the labelling text (per CSS2 rules). The pass
+ condition is seeing three circles, one solid green circle in upper
+ right corner of the rectangle, and a circle with a green gradient in
+ each of the bottom corners of the rectangle. If a red or black circle
+ is visible in the upper left corner of the rectangle, the test cannot
+ be evaluated because the 'switch' is not correctly supported. If any of
+ the upper-right or lower circles is not visible, or does not have the
+ correct fill, the test is failed. If the bottom-right circle is not
+ visible or does not have the gradient fill, then the 'switch' is not
+ correctly supported, and does not allow one conditionally hidden
+ resource to reference another.
+ </p>
+ <p>
+ The test uses the 'rect', 'circle', 'gradient', and 'use' elements, as
+ well as basic fill (solid primary colors) and radial gradients.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-cond-210-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <switch>
+ <g>
+ <rect fill="yellow" x="120" y="90" width="240" height="180" />
+ </g>
+ <g fill="red">
+ <circle xml:id="ref-source" cx="150" cy="120" r="25" />
+
+ <radialGradient xml:id="ref-gradient">
+ <stop offset="0" stop-color="green" />
+ <stop offset="1" stop-color="lime" />
+ </radialGradient>
+ </g>
+ <g>
+ <circle xml:id="ref-source-gradient" cx="150" cy="240" r="25" fill="url(#ref-gradient)"/>
+ </g>
+ </switch>
+
+ <use xlink:href="#ref-source" x="180" fill="lime" />
+ <use xlink:href="#ref-source-gradient" x="180" />
+ <circle xml:id="ref-source" cx="150" cy="240" r="25" fill="url(#ref-gradient)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-defs-01-t.png b/test/svg/svg1.2/svg/struct-defs-01-t.png
new file mode 100644
index 0000000..78289bb
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-defs-01-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-defs-01-t.svg b/test/svg/svg1.2/svg/struct-defs-01-t.svg
new file mode 100644
index 0000000..ef7781e
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-defs-01-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="TT" desc="Test to determine if the defs element is used as a container correctly" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: struct-defs-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test to verify that the defs element is used as a container correctly.</p>
+ <p>In this test a fill is created which is solid red. The view should be a solid red rectangle centered in the viewport 100 pixels from from left,top and right,bottom. Also, in the defs sections there are rectangle defined, one to paint over the entire canvas with a green fill and the other to obscure most of the red rectangle. The green rectangles should not show in the view as defs are referenced items and are not rendered. No green should show.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ <p>The test uses the 'rect' element, as well as basic fill (solid primary colors), stroke (black 1-pixel lines), font-family (Arial) and font-size properties.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-defs-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs xml:id="references">
+ <rect xml:id="rect11" x="0" y="0" width="480" height="360" color="#008000" />
+ </defs>
+ <defs>
+ <rect x="160" y="100" width="160" height="160" fill="#008000" />
+ </defs>
+ <rect x="140" y="80" width="200" height="200" fill="#F00" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-defs-201-t.png b/test/svg/svg1.2/svg/struct-defs-201-t.png
new file mode 100644
index 0000000..58d6a62
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-defs-201-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-defs-201-t.svg b/test/svg/svg1.2/svg/struct-defs-201-t.svg
new file mode 100644
index 0000000..1a4293e
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-defs-201-t.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests display=none on the defs element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-defs-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests that the value of the display property on the defs element or on its descendants
+ doesn't prevent the elements from being referenced.
+ </p>
+ <p>
+ The test has passed if the following conditions are met:
+ </p>
+ <ol>
+ <li>there are 8 big rects visible each of a different color.</li>
+ <li>on top of the 8 big rects there are 8 circles that contain the reference color, the color of each circle must match the color of the rect to the right of its center</li>
+ <li>from the top-left to the top-right corner the colors must be: green, lime, yellow, olive.</li>
+ <li>from the bottom-left to the bottom-right corner the colors must be: navy, teal, blue, fuchsia.</li>
+ </ol>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-defs-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs display="none">
+ <rect xml:id="r1" x="-50" y="-50" width="100" height="100" fill="currentColor"/>
+ <rect xml:id="r2" x="-50" y="-50" width="100" height="100" fill="currentColor" display="inline"/>
+ <rect xml:id="r3" x="-50" y="-50" width="100" height="100" fill="currentColor" display="none"/>
+ <g xml:id="g1" display="none">
+ <rect xml:id="r4" x="-50" y="-50" width="100" height="100" fill="currentColor"/>
+ <g xml:id="g2">
+ <use xml:id="u1" xlink:href="#r1" color="olive"/>
+ <use xml:id="u2" xlink:href="#r3" color="red"/>
+ <use xml:id="u3" xlink:href="#r1" transform="translate(-300 100)" color="navy"/>
+ <g xml:id="g3" display="none">
+ <use xml:id="u4" xlink:href="#r1" color="teal"/>
+ <use xml:id="u5" xlink:href="#r3" color="red" display="none"/>
+ <use xml:id="u6" xlink:href="#r1" transform="translate(100 0)" color="blue"/>
+ </g>
+ </g>
+ </g>
+ <use xml:id="u7" xlink:href="#r1"/>
+ </defs>
+
+ <g transform="translate(0 20)">
+ <use xlink:href="#r1" transform="translate(100 100)" color="green"/>
+
+ <!-- this should not be visible -->
+ <use xlink:href="#r3" transform="translate(100 100)" color="red"/>
+
+ <use xlink:href="#r2" transform="translate(200 100)" color="lime"/>
+ <use xlink:href="#r4" transform="translate(300 100)" color="yellow"/>
+
+ <!-- should show olive and navy rects -->
+ <use xlink:href="#g2" transform="translate(400 100)"/>
+
+ <use xlink:href="#u4" transform="translate(200 200)"/>
+ <use xlink:href="#u6" transform="translate(200 200)"/>
+ <use xlink:href="#u7" transform="translate(400 200)" color="fuchsia"/>
+
+ <!-- this should not be visible -->
+ <use xlink:href="#g3" transform="translate(200 200)" display="inline"/>
+
+ <circle cx="50" cy="50" r="25" fill="green"/>
+ <circle cx="150" cy="50" r="25" fill="lime"/>
+ <circle cx="250" cy="50" r="25" fill="yellow"/>
+ <circle cx="350" cy="50" r="25" fill="olive"/>
+ <circle cx="50" cy="250" r="25" fill="navy"/>
+ <circle cx="150" cy="250" r="25" fill="teal"/>
+ <circle cx="250" cy="250" r="25" fill="blue"/>
+ <circle cx="350" cy="250" r="25" fill="fuchsia"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-discard-201-t.png b/test/svg/svg1.2/svg/struct-discard-201-t.png
new file mode 100644
index 0000000..ca4098d
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-discard-201-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-discard-201-t.svg b/test/svg/svg1.2/svg/struct-discard-201-t.svg
new file mode 100644
index 0000000..9581608
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-discard-201-t.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="AE" desc="Discard Element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-discard-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Discard Element</p>
+ <p>The blue bars are animated then 'discarded' as indicated by comments.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-discard-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <title>Progressive rendering example</title>
+ <g fill="#555" font-size="10" text-anchor="middle">
+ <text xml:id="display-title" fill="#000" x="240" font-size="14" y="35">Discard Element</text>
+ <text xml:id="comment-1" x="240" y="50">
+ The blue bars are animated then 'discarded' as indicated by comments.
+ </text>
+ </g>
+ <g transform="scale(2.3) translate(5,20)">
+ <g transform="translate(-1.5, 0)" fill="#555">
+ <text x="10" y="20" font-size="6">0s</text>
+ <text x="30" y="20" font-size="6">1s</text>
+ <text x="50" y="20" font-size="6">2s</text>
+ <text x="70" y="20" font-size="6">3s</text>
+ <text x="90" y="20" font-size="6">4s</text>
+ <text x="110" y="20" font-size="6">5s</text>
+ </g>
+ <g stroke="#AAA" stroke-width="0.2" transform="translate(0, 11)">
+ <line x1="10" x2="10" y1="11" y2="65"/>
+ <line x1="30" x2="30" y1="11" y2="65"/>
+ <line x1="50" x2="50" y1="11" y2="65"/>
+ <line x1="70" x2="70" y1="11" y2="65"/>
+ <line x1="90" x2="90" y1="11" y2="65"/>
+ <line x1="110" x2="110" y1="11" y2="65"/>
+ </g>
+ <line x1="0" y1="11" x2="0" y2="65" stroke="red" stroke-width="1">
+ <animateMotion from="10,11" to="110,11" begin="0s" dur="5s" fill="freeze"/>
+ </line>
+ <rect xml:id="rect1" x="10" y="25" height="5" width="0" fill="blue" fill-opacity="0.5">
+ <animate attributeName="width" from="0" to="40" begin="0s" dur="2s" fill="freeze"/>
+ <discard begin="5s"/>
+ </rect>
+ <rect xml:id="rect2" x="50" y="35" height="5" width="0" fill="blue" fill-opacity="0.5">
+ <animate attributeName="width" from="0" to="40" begin="2s" dur="2s" fill="freeze"/>
+ <discard begin="4s"/>
+ </rect>
+ <rect xml:id="rect3" x="10" y="45" height="5" width="0" fill="blue" fill-opacity="0.5">
+ <animate attributeName="width" from="0" to="80" begin="0s" dur="4s" fill="freeze"/>
+ <discard begin="4s"/>
+ </rect>
+ <rect xml:id="rect4" x="10" y="55" height="5" width="0" fill="blue" fill-opacity="0.5">
+ <animate attributeName="width" from="0" to="100" begin="0s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect xml:id="rect5" x="10" y="65" height="5" width="0" fill="blue" fill-opacity="0.5">
+ <animate attributeName="width" from="0" to="100" begin="5s" dur="5s" fill="freeze"/>
+ </rect>
+ <g font-size="6" fill="#555" transform="translate(120, 0)">
+ <text y="30">Starts at 0s, Discards at 5s</text>
+ <text y="40">Starts at 2s, Discards at 4s</text>
+ <text y="50">Starts at 0s, Discards at 4s</text>
+ <text y="60">Starts at 0s, No discard.</text>
+ <text y="70">Starts at 5s.</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-discard-204-t.png b/test/svg/svg1.2/svg/struct-discard-204-t.png
new file mode 100644
index 0000000..5f0f66e
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-discard-204-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-discard-204-t.svg b/test/svg/svg1.2/svg/struct-discard-204-t.svg
new file mode 100644
index 0000000..cb01610
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-discard-204-t.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests the xlink:href on discard is not animatable." status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-discard-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests that trying to animate xlink:href on the discard element will not
+ apply.
+ </p>
+ <p>
+ The test has passed if after 3 seconds there are 4 green circles visible, and
+ no red.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-discard-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(30,20)">
+ <circle xml:id="c1" cx="150" cy="100" r="50" fill="green"/>
+ <rect xml:id="r1" x="100" y="50" width="100" height="100" fill="red">
+ <discard xml:id="discard1" begin="3s"/>
+ </rect>
+
+ <circle xml:id="c2" cx="260" cy="100" r="50" fill="green"/>
+ <rect xml:id="r2" x="210" y="50" width="100" height="100" fill="red"/>
+
+ <circle xml:id="c3" cx="150" cy="200" r="50" fill="red"/>
+ <circle xml:id="c4" cx="150" cy="200" r="50" fill="green"/>
+
+ <circle xml:id="c5" cx="260" cy="200" r="50" fill="red"/>
+ <circle xml:id="c6" cx="260" cy="200" r="50" fill="green"/>
+
+ <discard xml:id="discard2" xlink:href="#r2" begin="3s">
+ <animate attributeName="xlink:href" to="#c6" begin="1s" dur="1s" fill="freeze"/>
+ </discard>
+
+ <animate attributeName="xlink:href" xlink:href="#discard1" to="#c4" begin="1s" dur="1s" fill="freeze"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-discard-205-t.png b/test/svg/svg1.2/svg/struct-discard-205-t.png
new file mode 100644
index 0000000..1ef7306
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-discard-205-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-discard-205-t.svg b/test/svg/svg1.2/svg/struct-discard-205-t.svg
new file mode 100644
index 0000000..aed33a1
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-discard-205-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests that discard elements are discarded." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-discard-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests that discard elements themselves are discarded after being activated.
+ </p>
+ <p>
+ The test has passed if after 3 seconds there are three green circles visible, and no red.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-discard-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(30,20)">
+ <circle xml:id="c1" cx="150" cy="100" r="50" fill="green"/>
+ <rect xml:id="r1" x="100" y="50" width="100" height="100" fill="red"/>
+
+ <circle xml:id="c2" cx="260" cy="100" r="50" fill="green"/>
+ <rect xml:id="r2" x="210" y="50" width="100" height="100" fill="red"/>
+
+ <circle xml:id="c3" cx="205" cy="200" r="50" fill="green"/>
+
+ <discard xml:id="discard1" xlink:href="#r1" begin="1s"/>
+ <discard xml:id="discard2" xlink:href="#r2" begin="1s"/>
+ <discard xml:id="discard3" xlink:href="#unresolved" begin="1s"/>
+
+ <set xml:id="set" attributeName="display" to="inline" begin="2s" dur="1s" fill="freeze"/>
+
+ <handler xe:event="beginEvent" xe:observer="set">
+ var d1 = document.getElementById("discard1");
+ var d2 = document.getElementById("discard2");
+ var d3 = document.getElementById("discard3");
+
+ if(d1 || d2 || d3)
+ document.getElementById("c3").setAttribute("fill", "red");
+ </handler>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-discard-206-t.png b/test/svg/svg1.2/svg/struct-discard-206-t.png
new file mode 100644
index 0000000..fe001ca
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-discard-206-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-discard-206-t.svg b/test/svg/svg1.2/svg/struct-discard-206-t.svg
new file mode 100644
index 0000000..54bddd1
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-discard-206-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests that discard elements can be discarded before activation." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-discard-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests that discard elements can be discarded before activation.
+ </p>
+ <p>
+ The test has passed if after 3 seconds there is there are 4 green rects visible,
+ and nothing red.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-discard-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(30,-30)">
+ <rect xml:id="r0" x="100" y="100" width="200" height="200" fill="red"/>
+ <rect xml:id="r1" x="100" y="100" width="100" height="100" fill="green"/>
+ <rect xml:id="r2" x="200" y="100" width="100" height="100" fill="green"/>
+ <rect xml:id="r3" x="100" y="200" width="100" height="100" fill="green"/>
+ <rect xml:id="r4" x="200" y="200" width="100" height="100" fill="green"/>
+ <rect xml:id="r5" x="100" y="100" width="200" height="200" fill="red"/>
+
+ <discard xml:id="discard1" xlink:href="#r1" begin="2s"/>
+ <discard xml:id="discard2" xlink:href="#r2" begin="2s"/>
+ <discard xml:id="discard3" xlink:href="#r3" begin="2s"/>
+ <discard xml:id="discard4" xlink:href="#r5"/>
+ <discard xml:id="discard5" xlink:href="#discard1" begin="1s"/>
+ <discard xml:id="discard6" xlink:href="#discard2" begin="0s"/>
+ <discard xml:id="discard7" xlink:href="#discard3"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-discard-207-t.png b/test/svg/svg1.2/svg/struct-discard-207-t.png
new file mode 100644
index 0000000..dd3e77e
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-discard-207-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-discard-207-t.svg b/test/svg/svg1.2/svg/struct-discard-207-t.svg
new file mode 100644
index 0000000..7d25721
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-discard-207-t.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Tests the discard acts the same as removeChild." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-discard-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests that discard acts the same as removeChild.
+ First two red rects and a blue circle should be seen. The blue circle has
+ its radius animated to 0 over the course of 3 seconds. At the point where
+ the blue circle disappears the two red rects should be removed from the
+ tree. This reveals two green circles.
+ </p>
+ <p>
+ The test has passed if in the interval 0-3 seconds there are two red rects and a blue circle, and after 3 seconds two green circles can be seen and the text at the bottom says "Test passed".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-discard-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(30,0)">
+ <circle cx="150" cy="100" r="50" fill="green"/>
+ <rect xml:id="r1" x="100" y="50" width="100" height="100" fill="red">
+ <discard xml:id="discard1" begin="circleanim.end"/>
+ </rect>
+
+ <circle cx="260" cy="100" r="50" fill="green"/>
+ <rect xml:id="r2" x="210" y="50" width="100" height="100" fill="red">
+
+ </rect>
+
+ <circle cx="205" cy="210" r="50" fill="blue">
+ <animate xml:id="circleanim" attributeName="r" to="0" dur="3s" fill="freeze">
+ <handler xml:id="discardhandler" xe:event="endEvent">
+ var r2 = document.getElementById("r2");
+ var parenta = r2.parentNode;
+ parenta.removeChild(r2);
+ </handler>
+ </animate>
+ <animate xml:id="circleanim2" attributeName="r" from="0" to="0" begin="circleanim.end+1s" dur="1s" fill="freeze">
+ <handler xml:id="checker" xe:event="beginEvent">
+ <![CDATA[
+ var r1 = document.getElementById("r1");
+ var r2 = document.getElementById("r2");
+ var res = document.getElementById("result");
+ var str = (r1 || r2) ? "Test failed." : "Test passed.";
+ res.textContent = str;
+ ]]>
+ </handler>
+ </animate>
+ </circle>
+ </g>
+ <text xml:id="result" x="240" y="290" text-anchor="middle">Test running...</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-frag-02-t.png b/test/svg/svg1.2/svg/struct-frag-02-t.png
new file mode 100644
index 0000000..f664dcc
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-frag-02-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-frag-02-t.svg b/test/svg/svg1.2/svg/struct-frag-02-t.svg
new file mode 100644
index 0000000..a5ebc4f
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-frag-02-t.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="validates the use of the preserveAspectRatio" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-frag-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates the use of the preserveAspectRatio attribute on the root svg element in an SVG Tiny document. In this document, preserveAspectRatio is set to none and the width and height of the document set to 100%.</p>
+ <p>The document's viewBox is defined to be 100 by 100 with an origin in (100, 100). The content is made of 2 red squares and 2 orange circles.</p>
+ <p>Because preserveAspectRatio is set to 'none', the content should appear distorted: squares show as rectangles and circles show as ellipses.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-frag-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="100" y="100" width="50" height="50" fill="rgb(220, 20, 60)" />
+ <rect x="150" y="150" width="50" height="50" fill="rgb(220, 20, 60)" />
+ <circle cx="125" cy="175" r="25" fill="rgb(255, 215, 0)" />
+ <circle cx="175" cy="125" r="25" fill="rgb(255, 215, 0)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-frag-03-t.png b/test/svg/svg1.2/svg/struct-frag-03-t.png
new file mode 100644
index 0000000..f664dcc
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-frag-03-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-frag-03-t.svg b/test/svg/svg1.2/svg/struct-frag-03-t.svg
new file mode 100644
index 0000000..862a599
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-frag-03-t.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="validates the use of the preserveAspectRatio" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-frag-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates the use of the preserveAspectRatio attribute on the root svg element in an SVG Tiny document. In this document, preserveAspectRatio is set to 'xMidYMid meet' and the width and height of the document set to 100%.</p>
+ <p>The document's viewBox is defined to be 100 by 100 with an origin in (100, 100). The content is made of 2 red squares and 2 orange circles.</p>
+ <p>Because preserveAspectRatio is set to 'xMidYMid meet', the content should appear centered within the viewport: squares show as squares (and not rectangles) and circles show as circles (and not ellipses).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-frag-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="100" y="100" width="50" height="50" fill="rgb(220, 20, 60)" />
+ <rect x="150" y="150" width="50" height="50" fill="rgb(220, 20, 60)" />
+ <circle cx="125" cy="175" r="25" fill="rgb(255, 215, 0)" />
+ <circle cx="175" cy="125" r="25" fill="rgb(255, 215, 0)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-frag-04-t.png b/test/svg/svg1.2/svg/struct-frag-04-t.png
new file mode 100644
index 0000000..f664dcc
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-frag-04-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-frag-04-t.svg b/test/svg/svg1.2/svg/struct-frag-04-t.svg
new file mode 100644
index 0000000..5c6c7e6
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-frag-04-t.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="validates svg element with no viewbox" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-frag-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates the operation of the svg element when there is no viewbox.</p>
+ <p>The document's size is 480 by 360 with an x/y origin in (1000, 1000). Because x/y are ignored on the root svg element, the x/y origin should have no effect on the drawing.</p>
+ <p>The document contains squares and circles between the (100,100) and (200, 200) coordinates. Changing the viewport size should have no effect on the placement or scale of the document's conten.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-frag-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="100" y="100" width="50" height="50" fill="rgb(220, 20, 60)" />
+ <rect x="150" y="150" width="50" height="50" fill="rgb(220, 20, 60)" />
+ <circle cx="125" cy="175" r="25" fill="rgb(255, 215, 0)" />
+ <circle cx="175" cy="125" r="25" fill="rgb(255, 215, 0)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-frag-05-t.png b/test/svg/svg1.2/svg/struct-frag-05-t.png
new file mode 100644
index 0000000..4a67b66
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-frag-05-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-frag-05-t.svg b/test/svg/svg1.2/svg/struct-frag-05-t.svg
new file mode 100644
index 0000000..c7847eb
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-frag-05-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="CL" desc="support for namespace prefixes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: struct-frag-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This tests that XML Namespaces are correctly implemented, in that the tuple of local name and namespace URI, rather than the prefix, is important. The first subtest is a group where the namespace prefix 's' is bound to the SVG namespace and an 's:circle' is drawn in pale yellow. The same group declares the default namespace to be a non-SVG namespace; the blue circle element in that namespace must not be drawn.</p>
+ <p>The second subtest puts the namespace declarations on the elements themselves. The prefix 'toto' is bound to the SVG namespace and the XLink namespace is made the default namespace. Thus, the blue '<toto:a href="uri">Valid</toto:a>' is a valid link and must be traversable. Select this link, then go back to the test.</p>
+ <p>The third subtest has no prefix on the element name 'a' and uses the usual 'xlink:' prefix on the 'href' attribute. However, both the default namespace and the namespace bound to the 'xlink' prefix are dummy namespaces. Not only should the link not be traversable, it must not even display at all. If the text 'Invalid' is displayed, the test fails.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-frag-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial,sans-serif">
+ <s:g xmlns:s="http://www.w3.org/2000/svg" xmlns="http://www.example.org/notsvg">
+ <s:circle cx="240" cy="180" r="130" fill="#FF6" />
+ <circle cx="240" cy="180" r="150" fill="#369" />
+ </s:g>
+ <text x="240" y="100" text-anchor="middle" font-size="40" fill="#369">
+ <toto:a dahut:href="../images/linkingToc-t.svg" xmlns:toto="http://www.w3.org/2000/svg" xmlns:dahut="http://www.w3.org/1999/xlink">Valid</toto:a>
+ </text>
+ <text x="240" y="250" text-anchor="middle" font-size="40" fill="#C33">
+ <a xlink:href="../images/linkingToc-t.svg" xmlns="http://example.org/notsvg" xmlns:xlink="http://example.org/notxlink">Invalid</a>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-frag-06-t.png b/test/svg/svg1.2/svg/struct-frag-06-t.png
new file mode 100644
index 0000000..a253615
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-frag-06-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-frag-06-t.svg b/test/svg/svg1.2/svg/struct-frag-06-t.svg
new file mode 100644
index 0000000..4dfc3c8
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-frag-06-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="VH" desc="tests required XML features, such as entities and the internal DTD subset" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-frag-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test adds testing of some basic XML features SVG User Agents should support.</p>
+ <p>First, the test checks support for the default entities amp, lt, gt, apos and quot. This is what the first line shows in gray.</p>
+ <p>Second, the test checks support for hexadecimal and decimal character entities, as shown in the second line, again in gray</p>
+ <p>Finally, the last line shows usage of an entity defined in the document's internal DTD subset. The same geometry (a path) is reused twice, once filled in gray and ones stroked in gray.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-frag-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="30" y="30">Default entities: amp, lt, gt, apos, quot: </text>
+ <text x="90" y="60" fill="gray">&, <, >, ', "</text>
+ <text x="30" y="100">Character references:</text>
+ <text x="90" y="130" fill="gray"> A hexadecimal (&#x41)= A</text>
+ <text x="90" y="160" fill="gray"> A decimal (&#65)= A</text>
+ <text x="30" y="200">Entity references:</text>
+ <text x="105" y="228" text-anchor="middle">gray</text>
+ <g transform="translate(90, 235) scale(0.2)" fill="gray">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z" />
+ </g>
+ <text x="205" y="228" text-anchor="middle">outlined</text>
+ <g transform="translate(190, 235) scale(0.2)" fill="none" stroke="gray" stroke-width="5">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-group-01-t.png b/test/svg/svg1.2/svg/struct-group-01-t.png
new file mode 100644
index 0000000..b6ed68a
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-group-01-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-group-01-t.svg b/test/svg/svg1.2/svg/struct-group-01-t.svg
new file mode 100644
index 0000000..cfb3205
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-group-01-t.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="TT" desc="Test that the g element functions correctly as a container." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: struct-group-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The test checks to see that graphics elements (g) can be nested and that the like attributes can be passed to the children. All the g elements for this test are in the g element whose xml:id=allGs. The two red rectangles and the yellow are in the g labeled rects. The reds inherit a fill color the green rect has a fill specified and it should not be overwritten. The two yellow rectangles should inherit the fill color and the transform attribute, they should be yellow and rotated at -20 degrees. These two rectangles are in g "yellowNrotate", that g is nested inside g "gratuitiousG". The black rectangle in the upper right, has no attributes inherited from its parent. The focus is nesting of g elements and passing on of attributes.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ <p>The test uses the 'rect' element, as well as basic fill (solid primary colors), stroke (black 1-pixel lines), font-family (Arial) and font-size properties.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-group-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="rects" fill="red">
+ <rect x="0" y="0" width="240" height="180" />
+ <rect x="60" y="45" width="120" height="90" fill="green" />
+ <rect x="240" y="180" width="240" height="180" />
+ </g>
+ <g xml:id="singleG">
+ <rect x="240" y="0" width="240" height="180" fill="black" />
+ </g>
+ <g xml:id="gratuitiousG">
+ <g xml:id="yellowNrotate" fill="yellow" transform="rotate(-20)">
+ <rect x="0" y="224" width="40" height="40" />
+ <rect x="0" y="280" width="40" height="40" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-group-03-t.png b/test/svg/svg1.2/svg/struct-group-03-t.png
new file mode 100644
index 0000000..33af2e4
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-group-03-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-group-03-t.svg b/test/svg/svg1.2/svg/struct-group-03-t.svg
new file mode 100644
index 0000000..b22d3aa
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-group-03-t.svg
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="property inheritance" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-group-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates that properties are inherited (or not, depending on their defintion), from a group to its children.</p>
+ <p>The two rows displayed in this test should be identical. In the top row, each property is set to the value 'inherit'. In the bottom row, which is the reference, each property is set to the value that should be inherited in the top row.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-group-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="propertyCell" x="-5" y="-14" width="110" height="22" />
+ <rect xml:id="sampleCell" x="-5" y="-14" width="50" height="22" />
+ </defs>
+ <g xml:id="grid" transform="translate(70, 150) rotate(-90)" fill="none" stroke="black">
+ <use xlink:href="#propertyCell" />
+ <use xlink:href="#propertyCell" y="22" />
+ <use xlink:href="#propertyCell" y="44" />
+ <use xlink:href="#propertyCell" y="66" />
+ <use xlink:href="#propertyCell" y="88" />
+ <use xlink:href="#propertyCell" y="110" />
+ <use xlink:href="#propertyCell" y="132" />
+ <use xlink:href="#propertyCell" y="154" />
+ <use xlink:href="#propertyCell" y="176" />
+ <use xlink:href="#propertyCell" y="198" />
+ <use xlink:href="#propertyCell" y="220" />
+ <use xlink:href="#propertyCell" y="242" />
+ <use xlink:href="#propertyCell" y="264" />
+ <use xlink:href="#propertyCell" y="286" />
+ <use xlink:href="#propertyCell" y="308" />
+ <use xlink:href="#propertyCell" y="330" />
+ <use xlink:href="#propertyCell" y="352" />
+ <g transform="translate(-50, 0)">
+ <use xlink:href="#sampleCell" />
+ <use xlink:href="#sampleCell" y="22" />
+ <use xlink:href="#sampleCell" y="44" />
+ <use xlink:href="#sampleCell" y="66" />
+ <use xlink:href="#sampleCell" y="88" />
+ <use xlink:href="#sampleCell" y="110" />
+ <use xlink:href="#sampleCell" y="132" />
+ <use xlink:href="#sampleCell" y="154" />
+ <use xlink:href="#sampleCell" y="176" />
+ <use xlink:href="#sampleCell" y="198" />
+ <use xlink:href="#sampleCell" y="220" />
+ <use xlink:href="#sampleCell" y="242" />
+ <use xlink:href="#sampleCell" y="264" />
+ <use xlink:href="#sampleCell" y="286" />
+ <use xlink:href="#sampleCell" y="308" />
+ <use xlink:href="#sampleCell" y="330" />
+ <use xlink:href="#sampleCell" y="352" />
+ </g>
+ <g transform="translate(-100, 0)">
+ <use xlink:href="#sampleCell" />
+ <use xlink:href="#sampleCell" y="22" />
+ <use xlink:href="#sampleCell" y="44" />
+ <use xlink:href="#sampleCell" y="66" />
+ <use xlink:href="#sampleCell" y="88" />
+ <use xlink:href="#sampleCell" y="110" />
+ <use xlink:href="#sampleCell" y="132" />
+ <use xlink:href="#sampleCell" y="154" />
+ <use xlink:href="#sampleCell" y="176" />
+ <use xlink:href="#sampleCell" y="198" />
+ <use xlink:href="#sampleCell" y="220" />
+ <use xlink:href="#sampleCell" y="242" />
+ <use xlink:href="#sampleCell" y="264" />
+ <use xlink:href="#sampleCell" y="286" />
+ <use xlink:href="#sampleCell" y="308" />
+ <use xlink:href="#sampleCell" y="330" />
+ <use xlink:href="#sampleCell" y="352" />
+ </g>
+ </g>
+ <g xml:id="properties" transform="translate(70, 150) rotate(-90)">
+ <text>color</text>
+ <text y="22">display</text>
+ <text y="44">fill</text>
+ <text y="66">fill-rule</text>
+ <text y="88">stroke</text>
+ <text y="110">stroke-dasharray</text>
+ <text y="132">stroke-dashoffset</text>
+ <text y="154">stroke-linecap</text>
+ <text y="176">stroke-linejoin</text>
+ <text y="198">stroke-miterlimit</text>
+ <text y="220">stroke-width</text>
+ <text y="242">visibility</text>
+ <text y="264">font-family</text>
+ <text y="286">font-size</text>
+ <text y="308">font-style</text>
+ <text y="330">font-weight</text>
+ <text y="352">text-anchor</text>
+ </g>
+ <g xml:id="inheritGroup" transform="translate(56, 155)">
+ <g color="#0F0">
+ <rect x="3" y="10" width="16" height="32" fill="currentColor" />
+ </g>
+ <g display="none" transform="translate(22, 0)">
+ <rect x="3" y="10" width="16" height="32" display="inherit" />
+ </g>
+ <g fill="#0F0" transform="translate(44, 0)">
+ <rect x="3" y="10" width="16" height="32" fill="inherit" />
+ </g>
+ <g fill-rule="evenodd" transform="translate(66, 0)">
+ <polygon points="10.5,0 21,21 0,7 21,7 0,21" fill-rule="inherit" fill="#0F0" transform="translate(3, 15) scale(0.7)" />
+ </g>
+ <g stroke="#0F0" transform="translate(88, 0)">
+ <rect x="3" y="10" width="16" height="32" stroke="inherit" fill="none" />
+ </g>
+ <g stroke-dasharray="2 2 5 5" transform="translate(110, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dasharray="inherit" stroke-width="2" />
+ </g>
+ <g stroke-dashoffset="4" transform="translate(132, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dashoffset="inherit" stroke-dasharray="2 2 5 5" stroke-width="2" />
+ </g>
+ <g stroke-linecap="round" transform="translate(154, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-linecap="inherit" stroke-width="10" />
+ </g>
+ <g stroke-linejoin="round" transform="translate(176, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-linejoin="inherit" stroke-width="5" fill="none" />
+ </g>
+ <g stroke-miterlimit="1" transform="translate(198, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-miterlimit="inherit" stroke-width="5" fill="none" />
+ </g>
+ <g stroke-width="5" transform="translate(220, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-width="inherit" />
+ </g>
+ <g visibility="hidden" transform="translate(242, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" visibility="inherit" />
+ </g>
+ <g font-family="serif" transform="translate(264, 0)">
+ <text x="11" y="30" font-size="20" text-anchor="middle" font-family="inherit">A</text>
+ </g>
+ <g font-size="10" transform="translate(286, 0)">
+ <text x="11" y="30" font-size="inherit" text-anchor="middle" font-family="serif">A</text>
+ </g>
+ <g font-style="italic" transform="translate(308, 0)">
+ <text x="11" y="30" font-style="inherit" text-anchor="middle" font-size="20" font-family="serif">A</text>
+ </g>
+ <g font-weight="bold" transform="translate(330, 0)">
+ <text x="11" y="30" font-weight="inherit" text-anchor="middle" font-family="serif" font-size="20">A</text>
+ </g>
+ <g text-anchor="middle" transform="translate(352, 0)">
+ <text x="11" y="30" text-anchor="inherit" font-family="serif" font-size="20">A</text>
+ </g>
+ </g>
+ <g xml:id="referenceGroup" transform="translate(56, 205)">
+ <g>
+ <rect x="3" y="10" width="16" height="32" fill="#0F0" />
+ </g>
+ <g transform="translate(22, 0)">
+ <rect x="3" y="10" width="16" height="32" display="none" />
+ </g>
+ <g transform="translate(44, 0)">
+ <rect x="3" y="10" width="16" height="32" fill="#0F0" />
+ </g>
+ <g transform="translate(66, 0)">
+ <polygon points="10.5,0 21,21 0,7 21,7 0,21" fill-rule="evenodd" fill="#0F0" transform="translate(3, 15) scale(0.7)" />
+ </g>
+ <g transform="translate(88, 0)">
+ <rect x="3" y="10" width="16" height="32" stroke="#0F0" fill="none" />
+ </g>
+ <g stroke-dasharray="2 2 5 5" transform="translate(110, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dasharray="inherit" stroke-width="2" />
+ </g>
+ <g transform="translate(132, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dashoffset="4" stroke-dasharray="2 2 5 5" stroke-width="2" />
+ </g>
+ <g transform="translate(154, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-linecap="round" stroke-width="10" />
+ </g>
+ <g transform="translate(176, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-linejoin="round" stroke-width="5" fill="none" />
+ </g>
+ <g transform="translate(198, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-miterlimit="1" stroke-width="5" fill="none" />
+ </g>
+ <g transform="translate(220, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-width="5" />
+ </g>
+ <g transform="translate(242, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" visibility="hidden" />
+ </g>
+ <g transform="translate(264, 0)">
+ <text x="11" y="30" font-size="20" text-anchor="middle" font-family="serif">A</text>
+ </g>
+ <g transform="translate(286, 0)">
+ <text x="11" y="30" font-size="10" text-anchor="middle" font-family="serif">A</text>
+ </g>
+ <g transform="translate(308, 0)">
+ <text x="11" y="30" font-style="italic" text-anchor="middle" font-size="20" font-family="serif">A</text>
+ </g>
+ <g transform="translate(330, 0)">
+ <text x="11" y="30" font-weight="bold" text-anchor="middle" font-family="serif" font-size="20">A</text>
+ </g>
+ <g transform="translate(352, 0)">
+ <text x="11" y="30" text-anchor="middle" font-family="serif" font-size="20">A</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-01-t.png b/test/svg/svg1.2/svg/struct-image-01-t.png
new file mode 100644
index 0000000..fe72ad9
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-01-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-01-t.svg b/test/svg/svg1.2/svg/struct-image-01-t.svg
new file mode 100644
index 0000000..8495435
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-01-t.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="TT" desc="Test that the jpg and png image formats are understood." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: struct-image-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The image test case checks to see if the basic image formats allowed in the tiny profile are supported. The upper right has an JPG image the lower right has a PNG image. They are the same image. Those positions are relative to the upper left of the entire canvas. If any of the components are missing, then an image format is not being properly supported.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <image xml:id="image1JPEG" x="240" y="0" width="240" height="150" xlink:href="../images/struct-image-01.jpg" />
+ <image xml:id="image1PNG" x="240" y="150" width="240" height="150" xlink:href="../images/struct-image-01.png" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-03-t.png b/test/svg/svg1.2/svg/struct-image-03-t.png
new file mode 100644
index 0000000..851e062
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-03-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-03-t.svg b/test/svg/svg1.2/svg/struct-image-03-t.svg
new file mode 100644
index 0000000..e3a240c
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-03-t.svg
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="CL" desc="Test gamma correction of PNG images based on gAMA chunk. Derived from original HTML test by Dave Martindale." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: struct-image-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test verifies the support for gamma correction of displayed PNG images. Several different images are displayed one above the other; if gamma correction is correctly performed based on the values in the gAMA chunk in the PNG file, the resulting displayed values are the same in all of the files (except for rounding error, which gives some artefacts at the right side of the lowest two images due to the very high levels of gamma correction needed for this test).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="23" y="13" width="434" height="224" stroke="none" fill="black" />
+ <image x="25" y="15" width="430" height="48" xlink:href="../images/gam030.png" />
+ <image x="25" y="43" width="430" height="48" xlink:href="../images/gam045.png" />
+ <image x="25" y="91" width="430" height="48" xlink:href="../images/gam056.png" />
+ <image x="25" y="139" width="430" height="48" xlink:href="../images/gam100.png" />
+ <image x="25" y="187" width="430" height="48" xlink:href="../images/gam200.png" />
+ <text x="25" y="285" font-size="40">Gamma correction</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-04-t.png b/test/svg/svg1.2/svg/struct-image-04-t.png
new file mode 100644
index 0000000..14db00c
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-04-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-04-t.svg b/test/svg/svg1.2/svg/struct-image-04-t.svg
new file mode 100644
index 0000000..a822763
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-04-t.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="TT" desc="Test that jpg and png image formats are understood when inlined with the data: URI scheme." status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: struct-image-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The image test case checks to see if the basic image formats allowed in the tiny profile are supported using the data: URI schema and base64 encoding.. The upper right has an JPG image the lower right has a PNG image. They are the same image. Those positions are relative to the upper left of the entire canvas. If any of the components are missing, then an image format is not being properly supported.</p>
+ <p>The rendered picture should match the reference image, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <image xml:id="image1JPEG" x="240" y="0" width="240" height="150" xlink:href="data:image/jpg;base64,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" />
+ <image xml:id="image1PNG" x="240" y="150" width="240" height="150" xlink:href="data:image/png;base64,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" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-06-t.png b/test/svg/svg1.2/svg/struct-image-06-t.png
new file mode 100644
index 0000000..1dcc496
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-06-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-06-t.svg b/test/svg/svg1.2/svg/struct-image-06-t.svg
new file mode 100644
index 0000000..3278ec3
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-06-t.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="image preserveAspectRatio" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-image-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Check that all the preserveAspectRatio values are supported for the <image> element. In particular, check that values which are not supported on the svg element's preserveAspectRatio are supported for <image>.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="9">
+ <desc>Example PreserveAspectRatio - demonstrate available options</desc>
+ <text x="10" y="30">SVG to fit</text>
+ <g transform="translate(20,40)">
+ <image xlink:href="../images/smiley.png" width="50" height="50" />
+ </g>
+ <text x="10" y="110">Viewport 1</text>
+ <g transform="translate(10,120)">
+ <rect x=".5" y=".5" width="49" height="29" fill="none" stroke="blue" />
+ </g>
+ <text x="10" y="180">Viewport 2</text>
+ <g transform="translate(20,190)">
+ <rect x=".5" y=".5" width="29" height="59" fill="none" stroke="blue" />
+ </g>
+ <g xml:id="meet-group-1" transform="translate(100, 50)">
+ <text x="0" y="-20">---------- meet ----------</text>
+ <g transform="translate(30,0)">
+ <text y="-5">xMid*</text>
+ <rect x=".5" y=".5" width="49" height="29" fill="none" stroke="blue" />
+ <image xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMid meet" width="50" height="30" />
+ </g>
+ </g>
+ <g xml:id="meet-group-2" transform="translate(230, 50)">
+ <text x="0" y="-20">---------- meet ----------</text>
+ <g transform="translate(30, 0)">
+ <text y="-5">*YMid</text>
+ <rect x=".5" y=".5" width="29" height="59" fill="none" stroke="blue" />
+ <image xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMid meet" width="30" height="60" />
+ </g>
+ </g>
+ <g xml:id="meet-group-3" transform="translate(350, 50)">
+ <text x="0" y="-20">---------- meet ----------</text>
+ <g transform="translate(30, 0)">
+ <text y="-5">*none</text>
+ <rect x=".5" y=".5" width="29" height="59" fill="none" stroke="blue" />
+ <image xlink:href="../images/smiley.png" preserveAspectRatio="none" width="30" height="60" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-07-t.png b/test/svg/svg1.2/svg/struct-image-07-t.png
new file mode 100644
index 0000000..fc03c92
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-07-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-07-t.svg b/test/svg/svg1.2/svg/struct-image-07-t.svg
new file mode 100644
index 0000000..8a542de
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-07-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="image support for xml:base" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-image-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test validates that xml:base is properly handled on the <image> element. It shows the same image three times, with different xml:base and xlink:href values.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(10,0)">
+ <!-- Default, base is the document URI -->
+ <g transform="translate(40, 100)">
+ <text x="50" y="-30" text-anchor="middle" font-size="24">no</text>
+ <text x="50" text-anchor="middle" font-size="24">xml:base</text>
+ <image xlink:href="../images/smiley.png" x="0" y="20" width="100" height="100" />
+ </g>
+ <!-- xml:base on image -->
+ <g transform="translate(180, 100)">
+ <text x="50" y="-30" text-anchor="middle" font-size="24">xml:base</text>
+ <text x="50" text-anchor="middle" font-size="24">on image</text>
+ <image xml:base="../images/" xlink:href="smiley.png" x="0" y="20" width="100" height="100" />
+ </g>
+ <!-- xml:base on group -->
+ <g transform="translate(320, 100)" xml:base="../images/">
+ <text x="50" y="-30" text-anchor="middle" font-size="24">xml:base</text>
+ <text x="50" text-anchor="middle" font-size="24">on parent</text>
+ <image xlink:href="smiley.png" x="0" y="20" width="100" height="100" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-08-t.png b/test/svg/svg1.2/svg/struct-image-08-t.png
new file mode 100644
index 0000000..a45e438
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-08-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-08-t.svg b/test/svg/svg1.2/svg/struct-image-08-t.svg
new file mode 100644
index 0000000..d6938b3
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-08-t.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="Alpha PNG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-image-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests PNG images with alpha. The result should be identical to the reference image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="50" width="160" height="170" fill="#000" />
+ <rect x="160" y="50" width="160" height="170" fill="#920" />
+ <rect x="320" y="50" width="160" height="170" fill="#029" />
+ <image xlink:href="../images/rgbalpha.png" x="0" y="60" width="162" height="150" />
+ <image xlink:href="../images/rgbalpha.png" x="160" y="60" width="162" height="150" />
+ <image xlink:href="../images/rgbalpha.png" x="320" y="60" width="162" height="150" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-09-t.png b/test/svg/svg1.2/svg/struct-image-09-t.png
new file mode 100644
index 0000000..4dd9d24
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-09-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-09-t.svg b/test/svg/svg1.2/svg/struct-image-09-t.svg
new file mode 100644
index 0000000..7ca4bb3
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-09-t.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="tRNS PNG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-image-09-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests PNG images with pallete ransparency (tRNS chunk). The result should be identical to the reference image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="150" y="50" width="162" height="162" fill="#af4" />
+ <rect x="310" y="50" width="162" height="162" fill="#fa6" />
+ <image xlink:href="../images/stefan_252_tRNS_opti.png" x="10" y="60" width="162" height="150" />
+ <image xlink:href="../images/stefan_252_tRNS_opti.png" x="160" y="60" width="162" height="150" />
+ <image xlink:href="../images/stefan_252_tRNS_opti.png" x="320" y="60" width="162" height="150" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-image-10-t.png b/test/svg/svg1.2/svg/struct-image-10-t.png
new file mode 100644
index 0000000..2656584
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-image-10-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-image-10-t.svg b/test/svg/svg1.2/svg/struct-image-10-t.svg
new file mode 100644
index 0000000..1486a26
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-image-10-t.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="Greyscale PNG test" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-image-10-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests PNG greyscale images with alpha. The result should be identical to the reference image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-image-10-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="50" width="160" height="170" fill="#000" />
+ <rect x="160" y="50" width="160" height="170" fill="#920" />
+ <rect x="320" y="50" width="160" height="170" fill="#029" />
+ <image xlink:href="../images/galpha.png" x="0" y="60" width="162" height="150" />
+ <image xlink:href="../images/galpha.png" x="160" y="60" width="162" height="150" />
+ <image xlink:href="../images/galpha.png" x="320" y="60" width="162" height="150" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-progressive-201-t.png b/test/svg/svg1.2/svg/struct-progressive-201-t.png
new file mode 100644
index 0000000..2eda264
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-progressive-201-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-progressive-201-t.svg b/test/svg/svg1.2/svg/struct-progressive-201-t.svg
new file mode 100644
index 0000000..3587855
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-progressive-201-t.svg
@@ -0,0 +1,1886 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Tests progressive rendering" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-progressive-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests progressive rendering. Progressive rendering is an optional feature.
+ </p>
+ <p>
+ On user agents which support progressive rendering, the test is passed
+ if the circles render progressively. The update frequency is
+ implementation dependant.
+ </p>
+ <p>
+ On user agents which do not support progressive rendering, the test is passed
+ if all the circles are all displayed in a single render.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-progressive-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="15" y="15" fill="none" width="450" height="270" stroke="black" stroke-width="0.25"/>
+ <text x="20" y="30" font-size="10">Testing progressive rendering, if supported</text>
+ <text x="20" y="40" font-size="10">The rectangle should be full of circles,</text>
+ <text x="20" y="50" font-size="10">rendered progressively.</text>
+ <rect x="10" y="40" width="280" height="100" fill="none" stroke="black" transform="translate(12, 42)"/>
+ <g xml:id="Circles1750" stroke="black" stroke-width="1" fill="red" transform="translate(12, 42)">
+ <g transform="translate(12, 42)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 46)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 50)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 54)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 58)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 62)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 66)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 70)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 74)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 78)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 82)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 86)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 90)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 94)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 98)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 102)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 106)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 110)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 114)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 118)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 122)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 126)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 130)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 134)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 138)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+ </g>
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-progressive-202-t.png b/test/svg/svg1.2/svg/struct-progressive-202-t.png
new file mode 100644
index 0000000..9834416
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-progressive-202-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-progressive-202-t.svg b/test/svg/svg1.2/svg/struct-progressive-202-t.svg
new file mode 100644
index 0000000..06efcc8
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-progressive-202-t.svg
@@ -0,0 +1,1886 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Tests progressive rendering" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-progressive-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests progressive rendering. On user agents which support progressive rendering,
+ the rectangle should be full of circles, rendered all at once because of forward use with externalResourcesRequired.
+ The update frequency is implementation dependant.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-progressive-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+ <rect x="15" y="15" fill="none" width="450" height="270" stroke="black" stroke-width="0.25"/>
+ <text x="20" y="30" font-size="10">Testing progressive rendering, if supported</text>
+ <text x="20" y="40" font-size="10">The rectangle should be full of circles,</text>
+ <text x="20" y="50" font-size="10">rendered all at once because of forward use with externalResourcesRequired</text>
+
+ <rect x="10" y="40" width="280" height="100" fill="none" stroke="black" transform="translate(12, 42)"/>
+
+ <use xlink:href="#Circles3500" externalResourcesRequired="true" />
+
+ <defs>
+ <g xml:id="Circles3500" stroke="black" stroke-width="1" fill="red" transform="translate(12, 42)">
+ <g transform="translate(12, 42)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 46)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 50)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+
+ <g transform="translate(12, 54)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 58)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 62)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 66)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 70)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 74)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 78)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 82)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 86)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 90)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 94)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 98)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 102)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 106)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 110)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 114)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 118)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 122)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 126)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 130)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 134)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 138)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <circle cx="200" cy="0" r="2" />
+ <circle cx="204" cy="0" r="2" />
+ <circle cx="208" cy="0" r="2" />
+ <circle cx="212" cy="0" r="2" />
+ <circle cx="216" cy="0" r="2" />
+ <circle cx="220" cy="0" r="2" />
+ <circle cx="224" cy="0" r="2" />
+ <circle cx="228" cy="0" r="2" />
+ <circle cx="232" cy="0" r="2" />
+ <circle cx="236" cy="0" r="2" />
+ <circle cx="240" cy="0" r="2" />
+ <circle cx="244" cy="0" r="2" />
+ <circle cx="248" cy="0" r="2" />
+ <circle cx="252" cy="0" r="2" />
+ <circle cx="256" cy="0" r="2" />
+ <circle cx="260" cy="0" r="2" />
+ <circle cx="264" cy="0" r="2" />
+ <circle cx="268" cy="0" r="2" />
+ <circle cx="272" cy="0" r="2" />
+ <circle cx="276" cy="0" r="2" />
+ </g>
+ </g>
+ </defs>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-progressive-203-t.png b/test/svg/svg1.2/svg/struct-progressive-203-t.png
new file mode 100644
index 0000000..85bf2e2
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-progressive-203-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-progressive-203-t.svg b/test/svg/svg1.2/svg/struct-progressive-203-t.svg
new file mode 100644
index 0000000..102f389
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-progressive-203-t.svg
@@ -0,0 +1,1397 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Tests progressive rendering" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-progressive-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests progressive rendering. On user agents which support progressive rendering,
+ the rectangle should be full of circles, rendered progressively.
+ Images should appear as the circles pass the yellow dots.
+ The update frequency is implementation dependant.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-progressive-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+ <rect x="15" y="15" fill="none" width="450" height="270" stroke="black" stroke-width="0.25"/>
+ <text x="20" y="30" font-size="10">Testing progressive rendering with external references, if supported.</text>
+ <text x="20" y="40" font-size="10">Rectangle should progressively fill up with circles.</text>
+ <text x="20" y="50" font-size="10">Images should appear as the circles pass the yellow dots.</text>
+
+ <rect x="10" y="40" width="200" height="100" fill="none" stroke="black" transform="translate(12, 42)" />
+
+
+ <g stroke="black" stroke-width="1" fill="yellow" transform="translate(12, 42)">
+ <circle transform="translate(12, 42)" cx="205" cy="0" r="2" />
+ <circle transform="translate(12, 74)" cx="205" cy="0" r="2" />
+ <circle transform="translate(12, 106)" cx="205" cy="0" r="2" />
+ <circle transform="translate(12, 138)" cx="205" cy="0" r="2" />
+ </g>
+
+
+ <g xml:id="Circles1750" stroke="black" stroke-width="1" fill="red" transform="translate(12, 42)">
+
+ <g transform="translate(12, 42)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <image xml:id="img1" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton1.jpg" />
+ </g>
+
+ <g transform="translate(12, 46)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 50)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+
+ <g transform="translate(12, 54)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 58)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 62)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 66)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 70)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 74)">
+ <image xml:id="img2" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton2.jpg" />
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 78)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 82)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 86)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 90)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 94)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 98)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 102)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 106)">
+ <image xml:id="img3" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton3.jpg" />
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 110)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 114)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 118)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 122)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 126)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 130)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 134)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 138)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <image xml:id="img4" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton4.jpg" />
+ </g>
+ </g>
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-progressive-204-t.png b/test/svg/svg1.2/svg/struct-progressive-204-t.png
new file mode 100644
index 0000000..ce5bee7
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-progressive-204-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-progressive-204-t.svg b/test/svg/svg1.2/svg/struct-progressive-204-t.svg
new file mode 100644
index 0000000..2bbe579
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-progressive-204-t.svg
@@ -0,0 +1,1397 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DOH" owner="AE" desc="Tests progressive rendering" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-progressive-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests progressive rendering. On user agents which support progressive rendering,
+ the content should be rendered all at once due to forward use of externalResourcesRequired on top-level SVG.
+ The update frequency is implementation dependant.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-progressive-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+ <rect x="15" y="15" fill="none" width="450" height="270" stroke="black" stroke-width="0.25"/>
+ <text x="20" y="30" font-size="10">Testing progressive rendering with external references, if supported.</text>
+ <text x="20" y="40" font-size="10">Rendered all at once because of forward use with externalResourcesRequired on top-level SVG</text>
+
+ <rect x="10" y="40" width="200" height="100" fill="none" stroke="black" transform="translate(12, 42)" />
+
+
+ <g stroke="black" stroke-width="1" fill="yellow" transform="translate(12, 42)">
+ <circle transform="translate(12, 42)" cx="205" cy="0" r="2" />
+ <circle transform="translate(12, 74)" cx="205" cy="0" r="2" />
+ <circle transform="translate(12, 106)" cx="205" cy="0" r="2" />
+ <circle transform="translate(12, 138)" cx="205" cy="0" r="2" />
+ </g>
+
+
+ <g xml:id="Circles1750" stroke="black" stroke-width="1" fill="red" transform="translate(12, 42)">
+
+ <g transform="translate(12, 42)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <image xml:id="img1" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton1.jpg" />
+ </g>
+
+ <g transform="translate(12, 46)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 50)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+
+ <g transform="translate(12, 54)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 58)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 62)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 66)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 70)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 74)">
+ <image xml:id="img2" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton2.jpg" />
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 78)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 82)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 86)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 90)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 94)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 98)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 102)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 106)">
+ <image xml:id="img3" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton3.jpg" />
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 110)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 114)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 118)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 122)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 126)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 130)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 134)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ </g>
+
+ <g transform="translate(12, 138)">
+ <circle cx="0" cy="0" r="2" />
+ <circle cx="4" cy="0" r="2" />
+ <circle cx="8" cy="0" r="2" />
+ <circle cx="12" cy="0" r="2" />
+ <circle cx="16" cy="0" r="2" />
+ <circle cx="20" cy="0" r="2" />
+ <circle cx="24" cy="0" r="2" />
+ <circle cx="28" cy="0" r="2" />
+ <circle cx="32" cy="0" r="2" />
+ <circle cx="36" cy="0" r="2" />
+ <circle cx="40" cy="0" r="2" />
+ <circle cx="44" cy="0" r="2" />
+ <circle cx="48" cy="0" r="2" />
+ <circle cx="52" cy="0" r="2" />
+ <circle cx="56" cy="0" r="2" />
+ <circle cx="60" cy="0" r="2" />
+ <circle cx="64" cy="0" r="2" />
+ <circle cx="68" cy="0" r="2" />
+ <circle cx="72" cy="0" r="2" />
+ <circle cx="76" cy="0" r="2" />
+ <circle cx="80" cy="0" r="2" />
+ <circle cx="84" cy="0" r="2" />
+ <circle cx="88" cy="0" r="2" />
+ <circle cx="92" cy="0" r="2" />
+ <circle cx="96" cy="0" r="2" />
+ <circle cx="100" cy="0" r="2" />
+ <circle cx="104" cy="0" r="2" />
+ <circle cx="108" cy="0" r="2" />
+ <circle cx="112" cy="0" r="2" />
+ <circle cx="116" cy="0" r="2" />
+ <circle cx="120" cy="0" r="2" />
+ <circle cx="124" cy="0" r="2" />
+ <circle cx="128" cy="0" r="2" />
+ <circle cx="132" cy="0" r="2" />
+ <circle cx="136" cy="0" r="2" />
+ <circle cx="140" cy="0" r="2" />
+ <circle cx="144" cy="0" r="2" />
+ <circle cx="148" cy="0" r="2" />
+ <circle cx="152" cy="0" r="2" />
+ <circle cx="156" cy="0" r="2" />
+ <circle cx="160" cy="0" r="2" />
+ <circle cx="164" cy="0" r="2" />
+ <circle cx="168" cy="0" r="2" />
+ <circle cx="172" cy="0" r="2" />
+ <circle cx="176" cy="0" r="2" />
+ <circle cx="180" cy="0" r="2" />
+ <circle cx="184" cy="0" r="2" />
+ <circle cx="188" cy="0" r="2" />
+ <circle cx="192" cy="0" r="2" />
+ <circle cx="196" cy="0" r="2" />
+ <image xml:id="img4" x="210" y="-10" width="20" height="20" xlink:href="../images/greentopbutton4.jpg" />
+ </g>
+ </g>
+
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-svg-201-t.png b/test/svg/svg1.2/svg/struct-svg-201-t.png
new file mode 100644
index 0000000..26c2c48
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-svg-201-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-svg-201-t.svg b/test/svg/svg1.2/svg/struct-svg-201-t.svg
new file mode 100644
index 0000000..5779d9f
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-svg-201-t.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ snapshotTime="3"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Tests that the snapshotTime attribute is set" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-svg-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The svg should look the same on both sides and the text
+ should read "OK".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-svg-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+
+ <rect xml:id="referenceframe" x="10" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="testframe" x="249" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="textframe" x="340" y="315" width="120" height="40" stroke="#000000" fill="none"/>
+
+ <text xml:id="title" x="10" y="25" font-size="15">Get-FloatTrait(snapshotTime) on svg and check value</text>
+ <text xml:id="referencetext" x="75" y="50" font-size="20">reference</text>
+ <text xml:id="scripttext" x="325" y="50" font-size="20">scripted</text>
+ <g fill="black">
+ <text xml:id="status" x="350" y="350" font-size="40" fill="red">Error!</text>
+ </g>
+
+ <text xml:id="reftextelement" x="20" y="150" font-size="25" fill="#184bed">
+ l8 4 bed
+ </text>
+
+ <text xml:id="scripttextelement" x="259" y="150" fill="#184bed" font-size="25">
+ l8 4 bed
+ </text>
+
+ <defs>
+ <path xml:id="moon" fill="#eac900" d="M 0 0 C 50 20 50 80 0 100 C 30 80 30 20 0 0 z" transform="rotate(30)"/>
+ </defs>
+
+ <use xlink:href="#moon" x="90" y="200"/>
+ <use xlink:href="#moon" x="329" y="200"/>
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ var text = document.getElementById("status");
+ var svg = document.getElementById("svg-root");
+ var fs = svg.getFloatTrait("snapshotTime");
+ if(fs == "3")
+ {
+ text.setTrait("#text", "OK!");
+ text.setTrait("fill", "inherit");
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-svg-202-t.png b/test/svg/svg1.2/svg/struct-svg-202-t.png
new file mode 100644
index 0000000..d3af90c
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-svg-202-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-svg-202-t.svg b/test/svg/svg1.2/svg/struct-svg-202-t.svg
new file mode 100644
index 0000000..27b12d3
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-svg-202-t.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Tests the default value for attribute snapshotTime" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-svg-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The svg shold look the same on both sides and the text
+ should read "OK".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-svg-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect xml:id="referenceframe" x="10" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="testframe" x="249" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="textframe" x="340" y="315" width="120" height="40" stroke="#000000" fill="none"/>
+
+ <text xml:id="title" x="10" y="25" font-size="15">GetFloatTrait(snapshotTime) on svg where snapshotTime is default</text>
+ <text xml:id="referencetext" x="75" y="50" font-size="20">reference</text>
+ <text xml:id="scripttext" x="325" y="50" font-size="20">scripted</text>
+ <g fill="black">
+ <text xml:id="status" x="350" y="350" font-size="40" fill="red">Error!</text>
+ </g>
+
+ <text xml:id="reftextelement" x="20" y="150" font-size="25" fill="#184bed">
+ l8 4 bed
+ </text>
+
+ <text xml:id="scripttextelement" x="259" y="150" fill="#184bed" font-size="25">
+ l8 4 bed
+ </text>
+
+ <defs>
+ <path xml:id="moon" fill="#eac900" d="M 0 0 C 50 20 50 80 0 100 C 30 80 30 20 0 0 z" transform="rotate(30)"/>
+ </defs>
+
+ <use xlink:href="#moon" x="90" y="200"/>
+ <use xlink:href="#moon" x="329" y="200"/>
+
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ var text = document.getElementById("status");
+ var svg = document.getElementById("svg-root");
+ var fs = svg.getFloatTrait("snapshotTime");
+ if(fs == "0")
+ {
+ text.setTrait("#text", "OK!");
+ text.setTrait("fill", "inherit");
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-svg-203-t.png b/test/svg/svg1.2/svg/struct-svg-203-t.png
new file mode 100644
index 0000000..0d30b65
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-svg-203-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-svg-203-t.svg b/test/svg/svg1.2/svg/struct-svg-203-t.svg
new file mode 100644
index 0000000..4dcef9c
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-svg-203-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test svg element in svg." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-svg-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests that any <svg> elements that are encountered inside
+ an <svg> element are ignored, if the user agent supports SVG Tiny 1.2 only.
+ </p>
+ <p>
+ If the user agent can handle SVG 1.1 Basic or Full, then the test has passed
+ if only the string "This text should be visible if the viewer supports at least SVG 1.1 Basic."
+ is visible.
+ </p>
+ <p>
+ If the user agent supports only SVG 1.2 Tiny then the test has passed if
+ the svg element and it's contents have been ignored. Only the string
+ "This text should be visible if the viewer supports only SVG 1.2 Tiny." should
+ be visible.
+ </p>
+ <p>
+ If <em>both</em> strings are visible then the test has failed.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-svg-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="240" y="250" text-anchor="middle" font-size="10">This text should be visible if the viewer supports only SVG 1.2 Tiny.</text>
+
+ <svg x="10" y="200" width="460" height="100" viewBox="0 0 400 100" overflow="visible">
+ <rect width="400" height="100" fill="white"/>
+ <text x="200" y="30" text-anchor="middle" font-size="10">This text should be visible if the viewer supports at least SVG 1.1 Basic.</text>
+ </svg>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-svg-204-t.png b/test/svg/svg1.2/svg/struct-svg-204-t.png
new file mode 100644
index 0000000..5163766
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-svg-204-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-svg-204-t.svg b/test/svg/svg1.2/svg/struct-svg-204-t.svg
new file mode 100644
index 0000000..263d5c7
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-svg-204-t.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="-100" height="-1"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test negative values for width and height on the svg element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-svg-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test is passed if nothing is rendered as the SVG root element
+ contains negative values for the width and height.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-svg-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="240" y="150" text-anchor="middle">Failed</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-use-01-t.png b/test/svg/svg1.2/svg/struct-use-01-t.png
new file mode 100644
index 0000000..2d0b0d4
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-01-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-01-t.svg b/test/svg/svg1.2/svg/struct-use-01-t.svg
new file mode 100644
index 0000000..b8f456c
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-01-t.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="Tests that the viewer can handle various types of use references" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-use-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to validate proper handling of the use element. In particular, the test checks the proper inheritance of properties through the shadow tree (rather than through the document tree).</p>
+ <p>The test should display various elements in different shades of green. If an element is not displayed in green, but in red fill and/or yellow stroke, then it is in error.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g fill="red" stroke="yellow" stroke-width="3">
+ <rect xml:id="usedRect" width="20" height="20" />
+ <circle xml:id="usedCircle" cx="10" cy="10" r="10" />
+ <ellipse xml:id="usedEllipse" cx="10" cy="10" rx="10" ry="10" />
+ <line xml:id="usedLine" x1="0" y1="10" x2="20" y2="10" />
+ <path xml:id="usedPath" d="M 0 0 L 20 0 L 20 20 L 0 20 Z" />
+ <polygon xml:id="usedPolygon" points="0,0 20,0 20,20 0,20 0 0" />
+ <polyline xml:id="usedPolyline" points="0,0 20,0 20,20" />
+ <g xml:id="usedG">
+ <rect width="10" height="20" />
+ <rect x="10" width="10" height="20" fill="rgb(0,128,0)" />
+ </g>
+ <use xml:id="usedUse" xlink:href="#usedRect" />
+ <image xml:id="usedImage" xlink:href="../images/20x20.png" width="20" height="20" />
+ <text xml:id="usedText">Text</text>
+ </g>
+ </defs>
+ <g>
+ <g xml:id="labels" transform="translate(130, 40)" font-size="20" text-anchor="end">
+ <text><rect></text>
+ <text y="30"><circle></text>
+ <text y="60"><ellipse></text>
+ <text y="90"><line></text>
+ <text y="120"><polyline></text>
+ <text y="150"><polygon></text>
+ <text y="180"><path></text>
+ <text y="210"><image></text>
+ <text y="240"><text></text>
+ </g>
+ <g xml:id="labelsColumn2" transform="translate(310, 40)" font-size="20" text-anchor="end">
+ <text><g></text>
+ <text y="30"><use></text>
+ </g>
+ </g>
+ <g transform="translate(150, 25)">
+ <use xlink:href="#usedRect" fill="#0F0" />
+ <use y="30" xlink:href="#usedCircle" fill="#0F0" />
+ <use y="60" xlink:href="#usedEllipse" fill="#0F0" />
+ <use y="90" xlink:href="#usedLine" stroke="#0F0" stroke-width="2" />
+ <use y="120" xlink:href="#usedPolyline" stroke="#0F0" stroke-width="2" fill="none" />
+ <use y="150" xlink:href="#usedPolygon" fill="#0F0" />
+ <use y="180" xlink:href="#usedPath" fill="#0F0" />
+ <use y="210" xlink:href="#usedImage" fill="#FF0" />
+ <use y="260" xlink:href="#usedText" fill="#0F0" font-weight="bold" font-size="25" font-style="italic" />
+ <use x="180" y="0" xlink:href="#usedG" fill="#0F0" />
+ <use x="180" y="30" xlink:href="#usedUse" fill="#0c0" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-03-t.png b/test/svg/svg1.2/svg/struct-use-03-t.png
new file mode 100644
index 0000000..7b279d8
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-03-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-03-t.svg b/test/svg/svg1.2/svg/struct-use-03-t.svg
new file mode 100644
index 0000000..a400f18
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-03-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CN" owner="VH" desc="tests x/y attribs on use element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: struct-use-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to validate proper handling of the x/y attributes on the use element.</p>
+ <p>The test shows a <use> element displayed on the right. On the left, a group built as described in section 5.6 of the SVG 1.1 specification validates that the <use element is properly processed.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect xml:id="usedRect" width="100" height="100" fill="rgb(250,220,0)" stroke="rgb(200,40,40)" stroke-width="20" />
+ </defs>
+ <text x="120" y="60" text-anchor="middle">Reference</text>
+ <text x="360" y="60" text-anchor="middle"><use></text>
+ <!-- This group is constructed as described in section 5.6 of the -->
+ <!-- SVG 1.1 Specification. -->
+ <g xml:id="reference" transform="rotate(45,120,170) translate(70,120)">
+ <rect width="100" height="100" fill="rgb(250,220,0)" stroke="rgb(200,40,40)" stroke-width="20" />
+ </g>
+ <g transform="translate(240, 0)">
+ <use xlink:href="#usedRect" x="70" y="120" transform="rotate(45,120,170)" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-09-t.png b/test/svg/svg1.2/svg/struct-use-09-t.png
new file mode 100644
index 0000000..da362ee
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-09-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-09-t.svg b/test/svg/svg1.2/svg/struct-use-09-t.svg
new file mode 100644
index 0000000..c68e38d
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-09-t.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE, AG" owner="AN, DS" desc="Tests the use element in symbol definition" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-use-09-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests a set of 'use' and 'rect' elements inside 'g' elements, with
+ each referencing the one before. For the test to pass, 5 nested
+ rectangles with a green stroke must be rendered, and no red rectangles
+ must be rendered.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-09-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content">
+ <!-- put all of the actual test here -->
+ <defs>
+ <g xml:id="rect1">
+ <rect x="-50" y="-50" width="100" height="100" fill="none" stroke="green" stroke-width="3" />
+ </g>
+ <g xml:id="rect2">
+ <use xlink:href="#rect1" />
+ <rect x="-55" y="-55" width="110" height="110" fill="none" stroke="green" stroke-width="3" />
+ </g>
+ <g xml:id="rect3">
+ <use xlink:href="#rect2" />
+ <rect x="-60" y="-60" width="120" height="120" fill="none" stroke="green" stroke-width="3" />
+ </g>
+ <g xml:id="rect4">
+ <use xlink:href="#rect3" />
+ <rect x="-65" y="-65" width="130" height="130" fill="none" stroke="green" stroke-width="3" />
+ </g>
+ <g xml:id="rects">
+ <use xlink:href="#rect4" />
+ <rect x="-70" y="-70" width="140" height="140" fill="none" stroke="green" stroke-width="3" />
+ </g>
+ </defs>
+
+ <g>
+ <rect x="190" y="130" width="100" height="100" fill="none" stroke="red" />
+ <rect x="185" y="125" width="110" height="110" fill="none" stroke="red" />
+ <rect x="180" y="120" width="120" height="120" fill="none" stroke="red" />
+ <rect x="175" y="115" width="130" height="130" fill="none" stroke="red" />
+ <rect x="170" y="110" width="140" height="140" fill="none" stroke="red" />
+ </g>
+
+ <use x="240" y="180" xlink:href="#rects" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-use-201-t.png b/test/svg/svg1.2/svg/struct-use-201-t.png
new file mode 100644
index 0000000..bb6d4fb
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-201-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-202-t.png b/test/svg/svg1.2/svg/struct-use-202-t.png
new file mode 100644
index 0000000..a692200
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-202-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-202-t.svg b/test/svg/svg1.2/svg/struct-use-202-t.svg
new file mode 100644
index 0000000..8333f77
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-202-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test reference restriction B on the 'use' element." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: struct-use-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test tests the reference restriction B on the use element.
+ </p>
+ <p>
+ A compliant SVG Tiny 1.2 user agent must treat each of the invalid IRI:s as if the xlink:href
+ attribute hadn't been specified, which is the same as disabling rendering of the use element
+ in question. Thus for the test to pass the content that the use element tries to reference
+ must be invisible, the end result should be an empty (white) rect.
+ </p>
+ <p>
+ For a user agent that handles at least SVG 1.1 Basic the testcase has still passed if the referenced
+ content in the rect that is labelled "B" is visible since this is allowed for 1.1.
+ If the script in the external resource is executed then the color of the rect will be green.
+ If not then the rect will be red.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="50" text-anchor="middle">Test <use> reference restriction B</text>
+
+ <g>
+ <!-- it's unclear if this is an invalid IRI, it references a fragment that has a script in it -->
+ <use xlink:href="../images/scriptresource.svg#g" x="110" y="105" width="80" height="80"/>
+ <rect x="105" y="100" width="90" height="120" fill="none" stroke="black"/>
+ <rect x="105" y="190" width="90" height="30" fill="none" stroke="black"/>
+ <text x="150" y="210" text-anchor="middle">B</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-use-203-t.png b/test/svg/svg1.2/svg/struct-use-203-t.png
new file mode 100644
index 0000000..edbe10d
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-203-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-203-t.svg b/test/svg/svg1.2/svg/struct-use-203-t.svg
new file mode 100644
index 0000000..3efca16
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-203-t.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL, AS" owner="BB" desc="Tests external references on the use element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.2 $" testname="$RCSfile: struct-use-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The intent of the file is to determine if the UA supports references to external SVG fragments. To pass this test, the UA agent must display a total of 8 graphical primitives (2 rectangles, 2 circles, 2 ellipses and 2 triangles). For each object, the UA should display a semi transparent duplicate copy at an offset position. See referenced image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-203-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="ExtContent">
+ <use xlink:href="../images/svgRef12.svg#alpha" />
+ <use xlink:href="../images/svgRef12.svg#beta" />
+ <use xlink:href="../images/svgRef12.svg#gamma" />
+ <use xlink:href="../images/svgRef12.svg#delta" />
+ <use xlink:href="../images/svgRef12.svg#testContent" x="-5" y="5" fill-opacity="0.5" />
+ </g>
+ <text font-size="20" x="240" y="30" text-anchor="middle">External references on <use></text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-204-t.png b/test/svg/svg1.2/svg/struct-use-204-t.png
new file mode 100644
index 0000000..edbe10d
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-204-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-204-t.svg b/test/svg/svg1.2/svg/struct-use-204-t.svg
new file mode 100644
index 0000000..604f7c1
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-204-t.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL, AS" owner="BB" desc="Tests external references on the use element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.2 $" testname="$RCSfile: struct-use-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The intent of the file is to determine if the UA supports references to external SVG fragments. To pass this test, the UA agent must display a total of 8 graphical primitives (2 rectangles, 2 circles, 2 ellipses and 2 triangles). For each object, the UA should display a semi-transparent duplicate copy at an offset position. See referenced image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-204-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="ExtContent">
+ <use xlink:href="../images/svgRef12.svg#alpha" />
+ <use xlink:href="../images/svgRef12.svg#beta" />
+ <use xlink:href="../images/svgRef12.svg#gamma" />
+ <use xlink:href="../images/svgRef12.svg#delta" />
+ <use xlink:href="../images/svgRef12.svg#testContent" x="-5" y="5" fill-opacity="0.5" />
+ </g>
+ <text font-size="20" x="240" y="30" text-anchor="middle">External references on <use></text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-205-t.png b/test/svg/svg1.2/svg/struct-use-205-t.png
new file mode 100644
index 0000000..fcfb6ca
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-205-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-205-t.svg b/test/svg/svg1.2/svg/struct-use-205-t.svg
new file mode 100644
index 0000000..ac4d496
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-205-t.svg
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test SVGElementInstance and events" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-use-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test checks some aspects of the SVGElementInstance with regards to events.
+ </p>
+ <p>
+ Four blue rects should be visible at first. To run the test each rect must be clicked a minimum of two times. Once
+ to run the basic test, and once to verify that the event handler was removed properly. The test has passed if after
+ clicking all the rects two times or more there are four green rects with the word "Passed" on them. If anything red
+ is visible or the text on any of the rects say "Failed" then the test has failed.
+ </p>
+ <p>
+ The top-left rect checks that correspondingUseElement and correspondingElement are returning the correct values, and
+ also that the currentTarget isn't the same as target here.
+ </p>
+ <p>
+ The top-right rect checks that events bubble the correct way when SVGElementInstance is involved. It's almost the same
+ as the first subtest, but uses another 'use' element.
+ </p>
+ <p>
+ The bottom-left rect doesn't use 'use' elements at all, it's to illustrate event bubbling in normal trees as compared
+ to SVGElementInstance trees.
+ </p>
+ <p>
+ The bottom-right rect uses nested 'use' elements. The event handler 'nestedhandler' should be executed first, and will
+ check some aspects of nested use elements. It will modify what it references, and that is checked in the 'h4' event
+ handler.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="50" text-anchor="middle">Test SVGElementInstance and events</text>
+
+ <defs>
+ <g xml:id="g">
+ <rect xml:id="r" width="100" height="100" rx="10"/>
+ <text xml:id="t" font-size="9" x="50" y="50" text-anchor="middle" pointer-events="none" fill="white">Click here</text>
+ </g>
+ <use xml:id="nesteduse" xlink:href="#g">
+ <handler xml:id="nestedhandler" xe:event="click">
+ var link = "#fail";
+ // The correspondingUseElement is always the outermost use element if use elements are nested
+ if(event.target.correspondingUseElement == document.getElementById("u3"))
+ {
+ // The currentTarget is the 'nesteduse' use element when this event is received,
+ // and the target is the element where the event originated
+ if(event.currentTarget.correspondingElement == document.getElementById("nesteduse"))
+ {
+ link = "#pass";
+ }
+ }
+ document.getElementById("nesteduse").setAttributeNS("http://www.w3.org/1999/xlink", "href", link);
+
+ // Remove the handler, so that clicking again does nothing
+ document.getElementById("nesteduse").removeChild(document.getElementById("nestedhandler"));
+ </handler>
+ </use>
+ <g xml:id="fail">
+ <rect xml:id="rf" width="100" height="100" fill="red" rx="10"/>
+ <text xml:id="tf" font-size="9" x="50" y="50" text-anchor="middle" pointer-events="none" fill="white">Failed</text>
+ </g>
+ <g xml:id="pass">
+ <rect xml:id="rp" width="100" height="100" fill="green" rx="10"/>
+ <text xml:id="tp" font-size="9" x="50" y="50" text-anchor="middle" pointer-events="none" fill="white">Passed</text>
+ </g>
+ </defs>
+
+ <g transform="translate(40,-20)" fill="blue">
+ <use xml:id="u1" xlink:href="#g" x="100" y="100">
+ <handler xml:id="h1" xe:event="click">
+ var link = "#fail";
+ // The currentTarget is this use element, and the target should be the rect element where
+ // the event originated. Checks these conditions.
+ // if(event.target != event.currentTarget)
+ {
+ if(event.target.correspondingUseElement == event.currentTarget)
+ {
+ if(event.target.correspondingElement == document.getElementById("r"))
+ {
+ link = "#pass";
+ }
+ }
+ }
+ document.getElementById("u1").setAttributeNS("http://www.w3.org/1999/xlink", "href", link);
+
+ // Remove the handler, so that clicking again does nothing
+ document.getElementById("u1").removeChild(document.getElementById("h1"));
+ </handler>
+ </use>
+ <use xml:id="u2" xlink:href="#g" x="204" y="100">
+ <handler xml:id="h2" xe:event="click">
+ var link = "#fail";
+ // The target element should have a correspondingUseElement that is the element using it.
+ // In this case it should be 'u2', and the correspondingElement should be the rect with id 'r'.
+ if(event.target.correspondingUseElement == document.getElementById("u2"))
+ {
+ if(event.target.correspondingElement == document.getElementById("r"))
+ {
+ link = "#pass";
+ }
+ }
+ document.getElementById("u2").setAttributeNS("http://www.w3.org/1999/xlink", "href", link);
+
+ // Remove the handler, so that clicking again does nothing
+ document.getElementById("u2").removeChild(document.getElementById("h2"));
+ </handler>
+ </use>
+ <g xml:id="g3" transform="translate(100,204)">
+ <rect xml:id="r3" width="100" height="100" rx="10"/>
+ <text xml:id="t3" font-size="9" x="50" y="50" text-anchor="middle" pointer-events="none" fill="white">Click here</text>
+
+ <handler xml:id="h3" xe:event="click">
+ var status = "Failed";
+ // This subtest is included to show the how target and currentTarget works on normal elements.
+ if(event.target != event.currentTarget)
+ {
+ if(event.target == document.getElementById("r3"))
+ {
+ if(event.currentTarget == document.getElementById("g3"))
+ {
+ status = "Passed";
+ }
+ }
+ }
+ document.getElementById("r3").setAttributeNS(null, "fill", status == "Passed" ? "green" : "red");
+ document.getElementById("t3").textContent = status;
+
+ // Remove the handler, so that clicking again does nothing
+ document.getElementById("g3").removeChild(document.getElementById("h3"));
+ </handler>
+ </g>
+ <use xml:id="u3" xlink:href="#nesteduse" x="204" y="204">
+ <handler xml:id="h4" xe:event="click">
+ var link = "#fail";
+ // If the nested use handler was executed then the rect element where the event originated has no
+ // corresponding use element anymore, correspondingUseElement will be null.
+ if(!event.target.correspondingUseElement)
+ {
+ if(event.target.correspondingElement == document.getElementById("r"))
+ {
+ link = "#pass";
+ }
+ }
+ document.getElementById("u3").setAttributeNS("http://www.w3.org/1999/xlink", "href", link);
+
+ // Remove the handler, so that clicking again does nothing
+ document.getElementById("u3").removeChild(document.getElementById("h4"));
+ </handler>
+ </use>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-use-206-t.png b/test/svg/svg1.2/svg/struct-use-206-t.png
new file mode 100644
index 0000000..cf87b28
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-206-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-206-t.svg b/test/svg/svg1.2/svg/struct-use-206-t.svg
new file mode 100644
index 0000000..8265b32
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-206-t.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AS" owner="ED" desc="Tests interaction in use element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.1 $" testname="$RCSfile: struct-use-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ If the user agent supports referencing external content you should see three green rects.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <use xml:id="use-elm" x="60" y="50" xlink:href="../images/struct-use-206-resource.svg#svg-root"/>
+ <rect x="300" y="170" width="120" height="120" fill="lime" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-207-t.png b/test/svg/svg1.2/svg/struct-use-207-t.png
new file mode 100644
index 0000000..38616b1
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-207-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-207-t.svg b/test/svg/svg1.2/svg/struct-use-207-t.svg
new file mode 100644
index 0000000..e8cebea
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-207-t.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="AG" desc="Tests external references and computed inherited values" status="accepted"
+ approved="yes"
+ version="$Revision: 1.2 $" testname="$RCSfile: struct-use-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This file is intented to test the computed values in external
+ references. Both files (referencing and referenced) define similar
+ colors/gradients via 'color', 'linearGradient' and 'radialGradient'.
+ The ids of those definitions are the same but the actual appearance are
+ different. These definitions are used to test the property inheritance
+ feature of SVG.
+ </p>
+ <p>
+ The top left rectangle should be filled with the blue linear gradient
+ since the 'use' has a specified value defined in the 'defs' section.
+ The top right rectangle is forestgreen since the 'use' has a computed
+ value. The bottom left rectangle is also forestgreen since the fill is
+ not inherited from the referenced element's original parent. The bottom
+ right rectangle is filled with the orange radial gradient since the
+ computed value is given by the CSS cascade.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-207-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient xml:id="linearGrad1" gradientUnits="objectBoundingBox" y1="0" x1="0" y2="1" x2="1">
+ <stop offset="0" stop-color="blue" />
+ <stop offset="0.33" stop-color="white" />
+ <stop offset="0.5" stop-color="navy" />
+ <stop offset="0.66" stop-color="white" />
+ <stop offset="1.0" stop-color="blue" />
+ </linearGradient>
+ <radialGradient xml:id="radialGrad1" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.5">
+ <stop offset="0" stop-color="blue" />
+ <stop offset="0.33" stop-color="white" />
+ <stop offset="0.5" stop-color="navy" />
+ <stop offset="0.66" stop-color="white" />
+ <stop offset="1.0" stop-color="blue" />
+ </radialGradient>
+ </defs>
+ <g color="green">
+ <use xlink:href="../images/svgRef13.svg#rect1" fill="url(#linearGrad1)" />
+ <use xlink:href="../images/svgRef13.svg#rect2" fill="currentColor" />
+ <use xlink:href="../images/svgRef13.svg#rect3" />
+ <use xlink:href="../images/svgRef13.svg#rect4" />
+ <text font-size="24" x="240" y="35" text-anchor="middle">External references and computed values</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-208-t.png b/test/svg/svg1.2/svg/struct-use-208-t.png
new file mode 100644
index 0000000..88a9cae
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-208-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-208-t.svg b/test/svg/svg1.2/svg/struct-use-208-t.svg
new file mode 100644
index 0000000..8d80936
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-208-t.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AG" desc="Tests interaction in use element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: struct-use-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests the reference a group of shapes with the use element.
+ </p>
+ <p>
+ The test is passed if two green circles with a black border are
+ rendered.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="red">
+ <g xml:id="ref_circle">
+ <circle cx="150" cy="100" r="60" stroke="black" stroke-width="3"/>
+ <circle cx="300" cy="100" r="60" stroke="black" stroke-width="3"/>
+ </g>
+ </g>
+
+ <use xml:id="use-elm" x="0" y="0" xlink:href="#ref_circle" fill="green"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-209-t.png b/test/svg/svg1.2/svg/struct-use-209-t.png
new file mode 100644
index 0000000..8631317
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-209-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-209-t.svg b/test/svg/svg1.2/svg/struct-use-209-t.svg
new file mode 100644
index 0000000..8779a84
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-209-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AG" desc="Tests cyclic references" status="accepted"
+ approved="yes"
+ version="$Revision: 1.2 $" testname="$RCSfile: struct-use-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests circular references.
+ </p>
+ <p>
+ For this test to pass the green text "This text should be visible." must
+ be rendered. It is not an error if graphics are visible in addition to
+ the green text. It is not a requirement that graphics be rendered in
+ addition to the green text.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(60,50)">
+ <use xml:id="use-elm-1" xlink:href="../images/struct-use-209-t-cycles.svg#svg-root"/>
+ <rect width="120" height="120" fill="none" stroke="black"/>
+ <text x="60" y="140" text-anchor="middle" font-size="14">'use' referencing 'svg' element</text>
+ </g>
+
+ <g transform="translate(300,50)">
+ <use xml:id="use-elm-2" xlink:href="../images/struct-use-209-t-cycles.svg#image"/>
+ <rect width="120" height="120" fill="none" stroke="black"/>
+ <text x="60" y="140" text-anchor="middle" font-size="14">'use' referencing 'image' element</text>
+ </g>
+
+ <text x="240" y="260" text-anchor="middle" fill="green" font-size="35">This text should be visible.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/struct-use-recursion-01-t.png b/test/svg/svg1.2/svg/struct-use-recursion-01-t.png
new file mode 100644
index 0000000..a855e41
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-recursion-01-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-recursion-02-t.png b/test/svg/svg1.2/svg/struct-use-recursion-02-t.png
new file mode 100644
index 0000000..656f658
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-recursion-02-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-recursion-02-t.svg b/test/svg/svg1.2/svg/struct-use-recursion-02-t.svg
new file mode 100644
index 0000000..b5856c8
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-recursion-02-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="DS" desc="Test for recursion in 'use' elements referencing external files." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-use-recursion-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test checks for recursion in 'use' elements with external references. The passing conditions are that the browser does not crash, and that the green test is rendered. The passing conditions are that the
+ browser does not crash, and that at least one orange circle and a line of green text are rendered. Also, on an implementation-specific basis, additional orange and yellow circles with a dashed gray stroke may or may
+ not be rendered, depending upon when and how the implementation detects the circular reference, with the number of dashed circles of a given color indicating now many times the level of recurrsion permitted by the implementation..
+ </p>
+ <p>
+ This test depends upon 'struct-use-recursion-03-t.svg'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-recursion-02-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="group-1">
+ <circle xml:id="circle-1" cx='100' cy='25' r='10' fill='#FF7F00' />
+ <use xml:id="use-1" x="0" y="25" xlink:href="struct-use-recursion-03-t.svg#group-2" stroke="gray" stroke-width="2" stroke-dasharray="4" stroke-linecap="round"/>
+ </g>
+
+ <text xml:id="pass" x="240" y="280" text-anchor="middle" fill="green" font-size="24">This text should be visible.</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/struct-use-recursion-03-t.png b/test/svg/svg1.2/svg/struct-use-recursion-03-t.png
new file mode 100644
index 0000000..7b5419f
Binary files /dev/null and b/test/svg/svg1.2/svg/struct-use-recursion-03-t.png differ
diff --git a/test/svg/svg1.2/svg/struct-use-recursion-03-t.svg b/test/svg/svg1.2/svg/struct-use-recursion-03-t.svg
new file mode 100644
index 0000000..ca2329f
--- /dev/null
+++ b/test/svg/svg1.2/svg/struct-use-recursion-03-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="DS" desc="Test for recursion in 'use' elements referencing external files." status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: struct-use-recursion-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test checks for recursion in 'use' elements with external references. The passing conditions are that the browser does not crash, and that at least one yellow circle and a line of green text are rendered.
+ Also, on an implementation-specific basis, additional orange and yellow circles with a dashed gray stroke may or may not be rendered, depending upon when and how the implementation detects the circular reference,
+ with the number of dashed circles of a given color indicating now many times the level of recurrsion permitted by the implementation.
+ </p>
+ <p>
+ This test depends upon 'struct-use-recursion-02-t.svg'. It differs from 'struct-use-recursion-02-t.svg' in that the 'use' element comes before the 'circle' element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: struct-use-recursion-03-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="group-2">
+ <use xml:id="use-2" x="0" y="25" xlink:href="struct-use-recursion-02-t.svg#group-1" stroke="gray" stroke-width="2" stroke-dasharray="4" stroke-linecap="round"/>
+ <circle xml:id="circle-2" cx='380' cy='25' r='10' fill='#FFFF00' />
+ </g>
+
+ <text xml:id="pass" x="240" y="280" text-anchor="middle" fill="green" font-size="24">This text should be visible.</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/styling-inherit-01-t.png b/test/svg/svg1.2/svg/styling-inherit-01-t.png
new file mode 100644
index 0000000..a200f37
Binary files /dev/null and b/test/svg/svg1.2/svg/styling-inherit-01-t.png differ
diff --git a/test/svg/svg1.2/svg/styling-inherit-01-t.svg b/test/svg/svg1.2/svg/styling-inherit-01-t.svg
new file mode 100644
index 0000000..d05e8f1
--- /dev/null
+++ b/test/svg/svg1.2/svg/styling-inherit-01-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE,AN" owner="CL" desc="Verify property inheritance" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: styling-inherit-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Verify property inheritance as required by 6.7 "Property inheritance". </p>
+ <p>For this test to pass:</p>
+ <p>At the center right, there is an ellipse. The fill color is not specified on that element but on its parent. The ellipse must be filled a solid yellow</p>
+ <p>At the top left, an oval shape is formed from a rectangle with a radial gradient. The color of the middle stop uses the keyword 'inherit' and thus takes its parent's value of green, giving a yellow, green, white gradient from the center to the edge.</p>
+ <p>At the bottom left, an oval shape is formed from a rectangle with a radial gradient. The color of the middle stop uses the value 'currentColor' and thus takes the value its parent's color property, a dark red, giving a yellow, dark red, white gradient from the center to the edge</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: styling-inherit-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="yellow">
+ <g stroke="#555">
+ <ellipse rx="90" ry="60" cx="330" cy="140" />
+ </g>
+ </g>
+ <radialGradient xml:id="ygw" stop-color="green">
+ <stop offset="0%" stop-color="yellow" />
+ <stop offset="50%" stop-color="inherit" />
+ <stop offset="100%" stop-color="white" />
+ </radialGradient>
+ <rect width="180" height="120" x="40" y="20" stroke="none" fill="url(#ygw)" />
+ <radialGradient xml:id="yrw" color="#700">
+ <stop offset="0%" stop-color="yellow" />
+ <stop offset="50%" stop-color="currentColor" />
+ <stop offset="100%" stop-color="white" />
+ </radialGradient>
+ <rect width="180" height="120" x="40" y="160" stroke="none" fill="url(#yrw)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/styling-inherit-02-t.png b/test/svg/svg1.2/svg/styling-inherit-02-t.png
new file mode 100644
index 0000000..231433b
Binary files /dev/null and b/test/svg/svg1.2/svg/styling-inherit-02-t.png differ
diff --git a/test/svg/svg1.2/svg/styling-inherit-02-t.svg b/test/svg/svg1.2/svg/styling-inherit-02-t.svg
new file mode 100644
index 0000000..5c4fb5e
--- /dev/null
+++ b/test/svg/svg1.2/svg/styling-inherit-02-t.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE, ED" owner="CL" desc="Inheritance test for stop-color" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: styling-inherit-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests inheritance, animation and effect of display:none on stop-color. Three
+ rectangles are displayed. After a five second animation has completed,
+ the test is passed if all three rectangles display a green to blue gradient.
+ </p>
+ <p>
+ The stop-color property is not inherited by default, but the value 'inherit' forces it to
+ inherit the current animated value from its parent.
+ </p>
+ <p>
+ In the first subtest, the value of the stop-color property on the second stop is
+ 'inherit'. Its parent, linearGradient with id "MyGradient" also has stop-color set to
+ "inherit". The parent of this gradient is the group with id "g2" and the property
+ stop-color is animated on that group. Thus, after the animation finishes,
+ the inherited value is blue.
+ </p>
+ <p>
+ In the second subtest, the value of the stop-color property on the second stop is
+ 'currentColor'. Its parent, linearGradient with id "MyGradient" does not have the
+ color property set, but the property <em>is</em> inherited, so it inherits from the
+ parent - the group with id "g2". The property color is animated on that group.
+ Thus, after the animation finishes, the inherited value is again blue.
+ </p>
+ <p>
+ The third subtest is not animated. It checks that, per specification, the properties
+ on a gradient are inherited from the point of definition, not the point of use. An
+ implementation which does this incorrectly will show a green to red fill.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: styling-inherit-02-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- originally from http://lists.w3.org/Archives/Member/w3c-svg-wg/2006JulSep/0470.html -->
+ <rect xml:id="r1" fill="url(#MyGradient)" width="100" height="100" x="30"
+ y="100"/>
+ <rect xml:id="r2" fill="url(#MyGradient2)" width="100" height="100" x="180"
+ y="100"/>
+ <g xml:id="g1" display="none">
+ <g xml:id="g2">
+ <animateColor xml:id="a1" attributeName="stop-color" from="red" to="blue"
+ dur="5" begin="0" additive="replace" accumulate="none" fill="freeze"/>
+ <animateColor xml:id="a2" attributeName="color" from="red" to="blue" dur="5"
+ begin="0" additive="replace" accumulate="none" fill="freeze"/>
+ <linearGradient xml:id="MyGradient" stop-color="inherit">
+ <stop offset="0" stop-color="green" />
+ <stop offset="1" stop-color="inherit" />
+ </linearGradient>
+ <linearGradient xml:id="MyGradient2">
+ <stop offset="0" stop-color="green" />
+ <stop offset="1" stop-color="currentColor" />
+ </linearGradient>
+ </g>
+ </g>
+ <g xml:id="g3" stop-color="red">
+ <rect xml:id="r3" fill="url(#MyGradient3)" width="100" height="100" x="330"
+ y="100" stop-color="inherit"/>
+ </g>
+ <g xml:id="g4" stop-color="blue">
+ <linearGradient xml:id="MyGradient3" stop-color="inherit">
+ <stop offset="0" stop-color="green" />
+ <stop offset="1" stop-color="inherit" />
+ </linearGradient>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/styling-inherit-03-t.png b/test/svg/svg1.2/svg/styling-inherit-03-t.png
new file mode 100644
index 0000000..8ccffe9
Binary files /dev/null and b/test/svg/svg1.2/svg/styling-inherit-03-t.png differ
diff --git a/test/svg/svg1.2/svg/styling-inherit-03-t.svg b/test/svg/svg1.2/svg/styling-inherit-03-t.svg
new file mode 100644
index 0000000..f3fed0d
--- /dev/null
+++ b/test/svg/svg1.2/svg/styling-inherit-03-t.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="test animation and inheritance on solid-color" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: styling-inherit-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests inheritance, animation, currentColor on solid-color. Four
+ rectangles are displayed. After a five second animation has completed,
+ the test is passed if all four rectangles display a solid green fill.
+ </p>
+ <p>
+ <em>Note: </em>The solid-color property is not inherited by default, but the value 'inherit' forces it to
+ inherit the current animated value from its parent.
+ </p>
+
+ <p>
+ In the first subtest, the rectangle has a solid fill.
+ On the solidColor element, the value of the solid-color property is
+ 'inherit'. Its parent, a group, also has solid-color set to
+ "inherit". The parent of this group is another group, the property
+ solid-color is green on it.
+ </p>
+ <p>
+ In the second subtest, the rectangle has a solid fill.
+ On the solidColor element, the value of the solid-color property is
+ 'inherit'. Its parent has solid-color set to
+ "inherit". The parent of this group is another group whose solid-color
+ property is yellow.
+ The solid-color property on the solidColor element is
+ animated from yellow to green. Thus, after the animation finishes,
+ the inherited value is green.
+ </p>
+ <p>
+ In the third subtest, the rectangle has a solid fill.
+ On the solidColor element, the value of the solid-color property is
+ 'inherit'. Its parent has solid-color set to
+ "inherit". The parent of this group is another group whose solid-color
+ property is yellow.
+ The solid-color property on the outermost group is
+ animated from yellow to green. Thus, after the animation finishes,
+ the inherited value is green.
+ </p>
+ <p>
+ In the fourth subtest, the rectangle has a solid fill.
+ On the solidColor element, the value of the solid-color property is
+ 'currentColor'. Its parent has color set to
+ "inherit". The parent of this group is another group whose color
+ property is yellow.
+ The color property on theoutermost group is
+ animated from yellow to green. Thus, after the animation finishes,
+ the inherited value of color, and thus the value used by currentColor, is green.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: styling-inherit-03-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="gramps" solid-color="green">
+ <g xml:id="daddy" solid-color="inherit">
+ <solidColor xml:id="g" solid-color="inherit"/>
+ </g>
+ </g>
+
+ <g xml:id="granny" solid-color="yellow">
+ <g xml:id="mummy" solid-color="inherit">
+ <solidColor xml:id="y2g" solid-color="inherit">
+ <animateColor attributeName="solid-color" begin="0s" dur="5s" to="green" fill="freeze"/>
+ </solidColor>
+ </g>
+ </g>
+
+ <g xml:id="floom" solid-color="yellow">
+ <animateColor attributeName="solid-color" begin="0s" dur="5s" to="green" fill="freeze"/>
+ <g xml:id="wooble" solid-color="inherit">
+ <solidColor xml:id="y2g2" solid-color="inherit"/>
+ </g>
+ </g>
+
+ <g xml:id="brillig" color="yellow">
+ <animateColor attributeName="color" begin="0s" dur="5s" to="green" fill="freeze"/>
+ <g xml:id="slithy" color="inherit">
+ <solidColor xml:id="toves" solid-color="currentColor"/>
+ </g>
+ </g>
+
+ <rect x="50" y="50" width="100" height="100" fill="url(#g)"/>
+ <rect x="200" y="50" width="100" height="100" fill="url(#y2g)"/>
+ <rect x="350" y="50" width="100" height="100" fill="url(#y2g2)"/>
+
+ <rect x="350" y="200" width="100" height="100" fill="url(#toves)"/>
+
+ <!-- put all of the actual test inside this group -->
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/styling-pres-01-t.png b/test/svg/svg1.2/svg/styling-pres-01-t.png
new file mode 100644
index 0000000..388090e
Binary files /dev/null and b/test/svg/svg1.2/svg/styling-pres-01-t.png differ
diff --git a/test/svg/svg1.2/svg/styling-pres-01-t.svg b/test/svg/svg1.2/svg/styling-pres-01-t.svg
new file mode 100644
index 0000000..ae1e710
--- /dev/null
+++ b/test/svg/svg1.2/svg/styling-pres-01-t.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="Check !important in presentation attribute is an unsupported value" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: styling-pres-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Check that !important in presentation attribute is an unsupported attribute value. To pass, two rectangles should be drawn. A black filled rectangle and a lime green stroked rectangle.</p>
+ <p>
+ A fill attribute is set to red with !important. This is an unsupported attribute value,
+ consequently the fill attribute should be the lacuna value, which is black. Therefore, to pass, the rectangle should be filled with black.
+ </p>
+ <p>A lime green border is also drawn, to check that rendering continues after the element with the unsupported value.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: styling-pres-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle r="80" cx="240" cy="150" fill="blue" />
+ <rect width="200" height="160" x="140" y="70" fill="red !important" />
+ <rect width="200" height="160" x="140" y="70" fill="none" stroke="lime" stroke-width="4" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-align-01-t.png b/test/svg/svg1.2/svg/text-align-01-t.png
new file mode 100644
index 0000000..defff52
Binary files /dev/null and b/test/svg/svg1.2/svg/text-align-01-t.png differ
diff --git a/test/svg/svg1.2/svg/text-align-01-t.svg b/test/svg/svg1.2/svg/text-align-01-t.svg
new file mode 100644
index 0000000..884d7b9
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-align-01-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test 'text-anchor' property (horizontal)." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-align-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test 'text-anchor' property (horizontal).</p>
+ <p>The three lines test the three values for property 'text-anchor': start, middle and end.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-align-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="34" x="5" y="40">Test 'text-anchor' (horizontal)</text>
+ <g xml:id="text-anchor" font-family="Arial" font-size="14">
+ <g transform="translate(230,130)">
+ <line stroke="black" x2="50" />
+ <circle r="3" />
+ <text font-size="30" fill="red">text-anchor:none</text>
+ </g>
+ <g transform="translate(230,180)">
+ <line stroke="black" x2="50" />
+ <circle r="3" />
+ <text font-size="30" text-anchor="start" fill="red">text-anchor:start</text>
+ </g>
+ <g transform="translate(230,230)">
+ <line stroke="black" x1="-25" x2="25" />
+ <circle r="3" />
+ <text font-size="30" text-anchor="middle" fill="green">text-anchor:middle</text>
+ </g>
+ <g transform="translate(230,280)">
+ <line stroke="black" x1="-50" x2="0" />
+ <circle r="3" />
+ <text font-size="30" text-anchor="end" fill="blue">text-anchor:end</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-align-07-t.png b/test/svg/svg1.2/svg/text-align-07-t.png
new file mode 100644
index 0000000..2b9dbe3
Binary files /dev/null and b/test/svg/svg1.2/svg/text-align-07-t.png differ
diff --git a/test/svg/svg1.2/svg/text-align-07-t.svg b/test/svg/svg1.2/svg/text-align-07-t.svg
new file mode 100644
index 0000000..217102d
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-align-07-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CN" desc="Test horizontal baselines across script and font size changes." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-align-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test horizontal baselines across script and font size changes.</p>
+ <p>
+ The dominant baseline should be alphabetic, so the 'ab' will be sitting
+ on the blue line, the japanese glyphs will be on the ideographic
+ baseline and 'ण' is a devangari character and will use the hanging
+ baseline. The smaller versions of the characters should be aligned to
+ the same baselines. So 'ab' on the blue line, the ideographic chars
+ slightly below the line and the devangari should be hanging from the
+ hanging baseline.
+ </p>
+ <p>Original test authored by Rodney Hardy at CISRA.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-align-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="'Arial Unicode MS',Georgia,'Times New Roman',Times,'MS Mincho',serif" font-size="30">
+ <!-- The dominant baseline should be alphabetic, so the 'ab' will be sitting on the blue line, the japanese glyphs will be on the ideographic baseline and 'ण' is a devangari character and will use the hanging baseline. The smaller versions of the characters should be aligned to the same baselines. So 'ab' on the blue line, the ideographic chars slightly below the line and the devangari should be hanging from the hanging baseline. -->
+ <text x="50" y="100" font-size="50">
+ a犜ण
+ <tspan font-size="25">a犜ण</tspan>
+ <tspan font-size="10">a犜ण</tspan>
+ </text>
+ <line x1="50" y1="100" x2="400" y2="100" stroke-width="1" stroke="blue" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-align-08-t.png b/test/svg/svg1.2/svg/text-align-08-t.png
new file mode 100644
index 0000000..6d4eca3
Binary files /dev/null and b/test/svg/svg1.2/svg/text-align-08-t.png differ
diff --git a/test/svg/svg1.2/svg/text-align-08-t.svg b/test/svg/svg1.2/svg/text-align-08-t.svg
new file mode 100644
index 0000000..6d0ea9a
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-align-08-t.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CN" desc="Test horizontal baselines across script and font size changes (SVG Font)." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-align-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test horizontal baselines across script and font size changes. It uses
+ an SVG Font, where the Latin letter "a" is a rectangle, the Japanese
+ letter "ç??" is an upward-pointing triangle, and the Devanagari letter
+ "ण" is a downward-pointing triangle.
+ </p>
+ <p>
+ The dominant baseline should be alphabetic, so the 'a' will be sitting
+ on the alphabetic (blue) line, the japanese glyph (upward pointing
+ triangle) will be aligned on the ideographic (red) baseline and 'ण' is
+ a devangari character (downward pointing triangle) and will use the
+ hanging baseline (green). The smaller versions of the characters should
+ be aligned to the same baselines as the respective larger characters,
+ so all like shapes align to the same baseline..
+ </p>
+ <p>Original test authored by Rodney Hardy at CISRA.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-align-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont" units-per-em="1000" ascent="800" descent="200" alphabetic="200" ideographic="0" hanging="900" />
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z" />
+ <glyph unicode=" " glyph-name="space" />
+ <glyph unicode="a" glyph-name="rectangle" d="M0 200L500 200L500 900L0 900Z" />
+ <glyph unicode="ç??" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z" />
+ <glyph unicode="ण" glyph-name="downward-triangle" d="M0 900L500 900L250 0Z" />
+ </font>
+ </defs>
+ <g font-family="SVGFont">
+ <!-- The dominant baseline should be alphabetic, so the 'ab' will be sitting on the blue line, the japanese glyphs will be on the ideographic baseline and 'ण' is a devangari character and will use the hanging baseline. The smaller versions of the characters should be aligned to the same baselines. So 'a' on the blue line, the ideographic chars slightly below the line and the devangari should be hanging from the hanging baseline. -->
+ <text x="50" y="200" font-size="150">
+ aç??ण
+ <tspan font-size="75">aç??ण</tspan>
+ <tspan font-size="30">aç??ण</tspan>
+ </text>
+ <line x1="50" y1="200" x2="433" y2="200" stroke-width="1" stroke="blue" />
+ <line x1="50" y1="230" x2="433" y2="230" stroke-width="1" stroke="red" />
+ <line x1="50" y1="95" x2="433" y2="95" stroke-width="1" stroke="green" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-align-201-t.png b/test/svg/svg1.2/svg/text-align-201-t.png
new file mode 100644
index 0000000..d01c521
Binary files /dev/null and b/test/svg/svg1.2/svg/text-align-201-t.png differ
diff --git a/test/svg/svg1.2/svg/text-align-201-t.svg b/test/svg/svg1.2/svg/text-align-201-t.svg
new file mode 100644
index 0000000..df4964d
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-align-201-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="DS" desc="Test viewer basic capability to handle 'text-anchor' property." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: text-align-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test for viewer capability to handle the basics of the 'textAnchor'
+ alignment property for 'text' when it has child elements.
+ </p>
+ <p>
+ The first line from the top tests that a 'tspan' element is rendered
+ after the text content of the parent 'text' element.
+ </p>
+ <p>
+ The second line from the top tests that all the text content, including
+ that of child 'tspan' elements, is taken into account when positioning
+ the text with respect to its alignment point.
+ </p>
+ <p>
+ The rendered picture should match the reference image, except for
+ possible variations in the text fonts and layout (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-align-201-t.svg,v $</title>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="5" y="40" font-size="40" fill="black">Test of 'text-anchor'</text>
+ <text x="20" y="80" font-size="30" fill="black">text-anchor, text and tspan</text>
+ <!-- Test cases -->
+ <line x1="220" y1="120" x2="220" y2="260" stroke="red" />
+ <g font-family="Arial" font-size="30" fill="blue">
+ <text x="220" y="140" text-anchor="start">
+ start text
+ <tspan xml:space="preserve" fill="red"> red tspan</tspan>
+ </text>
+ <text x="220" y="180" text-anchor="middle" font-size="23">
+ first text <tspan font-weight="bold">first tspan</tspan> <tspan font-weight="bold">last tspan</tspan> last text
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-align-202-t.png b/test/svg/svg1.2/svg/text-align-202-t.png
new file mode 100644
index 0000000..83a2f6f
Binary files /dev/null and b/test/svg/svg1.2/svg/text-align-202-t.png differ
diff --git a/test/svg/svg1.2/svg/text-align-202-t.svg b/test/svg/svg1.2/svg/text-align-202-t.svg
new file mode 100644
index 0000000..7510cdf
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-align-202-t.svg
@@ -0,0 +1,895 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="test alignment on RTL text" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: text-align-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>This test checks for text alignment on right-to-left text.</p>
+ <p>The first subtest has the word for 'Egypt', Ù?ص</p>
+ <p>The second subtest has the hebrew text פע×?×?×?ת </p>
+ <p>Text-anchor values of start are black, middle are maroon and end are dark blue.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-align-202-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <font xml:id="Untitled2" horiz-adv-x="537" >
+ <font-face
+ font-family="svgSerifHebrewArabic"
+ font-weight="500"
+ font-stretch="normal"
+ units-per-em="1000"
+ panose-1="2 0 6 3 0 0 0 0 0 0"
+ ascent="800"
+ descent="-200"
+ x-height="-1e+10"
+ cap-height="-1e+10"
+ bbox="11 -345 531 843"
+ underline-thickness="50"
+ underline-position="-100"
+ unicode-range="U+0590-U+06FF,U+FB50-U+FEFC"/>
+ <missing-glyph horiz-adv-x="432"
+ d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+
+ <!-- ligatures -->
+ <glyph glyph-name="uniFDF2" unicode="اﻠﻠﻪ" horiz-adv-x="640" arabic-form="isolated"
+ d="M918 261q45 0 45 87q0 110 -10 155l-29 132l55 29l19 -162q6 -65 8 -148v-20q0 -98 -13 -131t-59 -33q-109 2 -119 75q-12 -75 -111 -75q-60 0 -103 114l-34 -30q-54 1 -87 21t-33 50q0 23 9.5 42t30.5 34.5t33.5 23t40 20t28.5 12.5v45l31 34q3 -77 6.5 -122.5t10 -80.5
+ t19 -50.5t29.5 -22.5t44 -7q41 0 50.5 13.5t9.5 56.5q0 144 -24 271l55 41q3 -235 28 -342q8 -33 53 -33q2 0 6 0.5t7 0.5h4zM483 341q14 -23 31.5 -31t54.5 -8q16 0 23 1v107q-91 -34 -109 -69zM786 782q2 0 11 -15t22 -15q14 9 14 24q0 8 -3 15q3 6 6 6q3 1 7 -10t4 -37
+ q0 -16 -5.5 -22t-20.5 -6q-11 0 -29 5q-17 -21 -31 -21q-34 0 -34 41q0 18 2 30h2q3 1 5 -4t3 -11t4.5 -11.5t9.5 -5.5q7 0 19 6.5t12 18.5q0 5 -1 8q1 2 3 4zM790 853q-4 30 -28 67l28 30q5 -28 5 -57q0 -27 -5 -40z" />
+ <glyph glyph-name="uniFEFB" unicode="لا" horiz-adv-x="676" arabic-form="isolated"
+ d="M440 438c28 61.3333 53.3333 125.5 76 192.5c22.6667 67 35 116.5 37 148.5l-20 55c0 1.33331 -0.166687 3.66669 -0.5 7s-0.5 6 -0.5 8c0 26.6667 7 49 21 67v-14c0.666687 -18 21 -34 61 -48l-10 -52l-18 -19c-5.33331 -14 -9.83331 -33.5 -13.5 -58.5
+ s-13.3333 -62 -29 -111s-41.5 -115.167 -77.5 -198.5c39.3333 -70 59 -123 59 -159c0 -28.6667 -17.3333 -46.8333 -52 -54.5s-111 -12.5 -229 -14.5l6 91c81.3333 32.6667 137.667 75.6667 169 129l-141 212c-34.6667 51.3333 -53.6667 77.6667 -57 79
+ c-2.66667 0 -7.33333 -1.83331 -14 -5.5s-11.6667 -5.5 -15 -5.5c-12 0 -26.6667 9.16669 -44 27.5s-26 44.8333 -26 79.5c0 30.6667 6 46 18 46c14 0 42.1667 -27.5 84.5 -82.5c42.3333 -55 82.3333 -112.333 120 -172zM336 273c49.3333 1.33334 83 4.33334 101 9
+ s27 14 27 28c0 9.33334 -8 30.6667 -24 64c-30 -41.3333 -64.6667 -75 -104 -101z" />
+ <glyph glyph-name="uniFEFC" unicode="لا" horiz-adv-x="724" arabic-form="terminal"
+ d="M739 197h-48c-70 0 -105 54.6667 -105 164l-11 98c-30 -116.667 -75.6667 -195.667 -137 -237c-46.6667 -17.3333 -123.667 -26 -231 -26c-36 0 -64 0.333328 -84 1c110.667 35.3333 206.333 72.3333 287 111c98.6667 56.6667 148 174.667 148 354
+ c0 62 -4.66669 146 -14 252l120 -119c-28 -20 -42 -76.3333 -42 -169c0 -74.6667 9 -172.333 27 -293c14 -35.3333 29.3333 -53 46 -53h37zM438 445c-69.3333 144 -143.667 216 -223 216h-8l-3 144c66.6667 -4 117.333 -39.6667 152 -107s62 -151.667 82 -253z" />
+
+ <!-- ascii -->
+ <glyph unicode=" " horiz-adv-x="450"/>
+
+ <!-- hebrew -->
+ <glyph glyph-name="afii57664" unicode="א"
+ d="M71 51c0 9.33333 -6.16666 36.5 -18.5 81.5c-12.3333 45 -18.5 74.5 -18.5 88.5c0 34 21 75 63 123c-3.33334 0.666656 -8.33334 3.5 -15 8.5s-14.3333 12.3333 -23 22c-8.66667 9.66666 -16.1667 24.3333 -22.5 44c-6.33333 19.6667 -9.5 41.8333 -9.5 66.5
+ c0 24 6.33333 46 19 66s25.3333 30 38 30h2c1.33334 0 2.16666 -1 2.5 -3s0.833336 -6.66669 1.5 -14s2 -15.3333 4 -24c6 -22.6667 25.1667 -50.6667 57.5 -84c32.3333 -33.3333 63.1667 -61 92.5 -83c29.3333 -22 45.6667 -33 49 -33l51 71
+ c-5.33334 0 -20.5 11.5 -45.5 34.5s-37.5 42.8333 -37.5 59.5c0 16.6667 7.33334 34 22 52s29 27 43 27c4 0 6.16666 -1.33331 6.5 -4s0.166656 -6.33331 -0.5 -11v-6c0 -14 8.16666 -27.6667 24.5 -41c16.3333 -13.3333 34.1667 -25 53.5 -35s37.1667 -23.3333 53.5 -40
+ s24.5 -35 24.5 -55c0 -26.6667 -9.33334 -50.1667 -28 -70.5s-34 -30.5 -46 -30.5c-0.666656 0 -4.33334 15.6667 -11 47c-2.66666 13.3333 -7.33334 25 -14 35s-12.6667 16.6667 -18 20l-8 5l-49 -77c1.33334 0 8 -3.5 20 -10.5s26.5 -17.5 43.5 -31.5
+ s33.8333 -29.6667 50.5 -47s30.8333 -38 42.5 -62s17.5 -47.6667 17.5 -71c0 -41.3333 -4 -69 -12 -83s-18.6667 -21 -32 -21h-7c-0.666656 0 -1.5 6.33333 -2.5 19c-1 12.6667 -6.5 29.3333 -16.5 50c-10 20.6667 -25.3333 39 -46 55
+ c-42.6667 31.3333 -96.5 74.3333 -161.5 129c-65 54.6667 -97.8333 82 -98.5 82l-9 -7c-6 -4.66666 -12.1667 -12.1667 -18.5 -22.5s-9.5 -21.5 -9.5 -33.5c0 -15.3333 6.66666 -32.6667 20 -52s27.8333 -36.6667 43.5 -52c15.6667 -15.3333 30.1667 -33.1667 43.5 -53.5
+ c13.3333 -20.3333 20 -39.1667 20 -56.5c0 -12 -3.5 -22.1667 -10.5 -30.5c-7 -8.33333 -14.8333 -14 -23.5 -17s-16.6667 -6.5 -24 -10.5h-115l6 12c0.666668 2 2.66667 3 6 3c5.33333 0 9.33333 0.5 12 1.5s5.66667 2.66667 9 5c3.33334 2.33333 5.66666 6.33333 7 12
+ c1.33334 5.66667 2 13.1667 2 22.5z" />
+ <glyph glyph-name="afii57665" unicode="ב"
+ d="M115 442c-26.6667 0 -46.6667 5.5 -60 16.5c-13.3333 11 -20 34.5 -20 70.5c0 36.6667 9.33333 59.6667 28 69c0 -2 1.33334 -5.5 4 -10.5s9 -10.3333 19 -16s22.3333 -8.5 37 -8.5h206c32 0 59.8333 -10.1667 83.5 -30.5s35.5 -57.1667 35.5 -110.5l2 -314h54l-35 -108
+
+ h-445l35 108h370v260c0 30.6667 -8.16666 50.6667 -24.5 60s-40.5 14 -72.5 14h-217z" />
+ <glyph glyph-name="afii57666" unicode="ג" horiz-adv-x="350"
+ d="M141 433c-17.3333 0 -30.1667 5.33334 -38.5 16s-12.5 31.3333 -12.5 62c0 44 6.33334 73 19 87c0 -0.666687 0.833336 -2.33331 2.5 -5s4 -6.16669 7 -10.5l7.5 -10.5c4 -6 15.1667 -9.5 33.5 -10.5s37.3333 -3.33331 57 -7s32.8333 -11.8333 39.5 -24.5
+ c8.66666 -14.6667 13 -37.6667 13 -69v-22v-264c0 -29.3333 2.83334 -59 8.5 -89s11.8333 -58.6667 18.5 -86c-16.6667 0 -27.3333 0.666667 -32 2c-4.66666 1.33333 -7.83334 4.83333 -9.5 10.5c-1.66667 5.66667 -2.5 14.1667 -2.5 25.5
+ c-1.33333 10 -5.5 29.8333 -12.5 59.5s-10.5 44.8333 -10.5 45.5h-10l-62 -143h-118v4c0 67.3333 10 102 30 104l120 21c4.66667 4.66667 12.8333 14.6667 24.5 30s17.8333 27.3333 18.5 36c1.33333 16 5.16667 43.8333 11.5 83.5c6.33333 39.6667 9.5 65.8333 9.5 78.5
+ c0 6 -0.333328 10.3333 -1 13v4c0 15.3333 -4 29.8333 -12 43.5s-22 20.5 -42 20.5c-6 0 -15.5 -0.833344 -28.5 -2.5s-22.5 -2.5 -28.5 -2.5z" />
+ <glyph glyph-name="afii57667" unicode="ד"
+ d="M53 596c0 -4.66669 4.5 -11.5 13.5 -20.5s23.1667 -13.5 42.5 -13.5h315c14.6667 0 28 -5.5 40 -16.5s18 -23.8333 18 -38.5c0 -17.3333 -4.5 -32.5 -13.5 -45.5s-20.8333 -19.5 -35.5 -19.5h-10v-350c0 -2.66666 0.166656 -5.83334 0.5 -9.5s0.5 -6.5 0.5 -8.5
+ c0 -10.6667 -3.66666 -26 -11 -46s-15.6667 -30 -25 -30h-2l-2 1c-0.666656 0 -1 3.33333 -1 10c0 2 0.166656 6.16667 0.5 12.5c0.333344 6.33333 0.5 11.1667 0.5 14.5l9 406h-281c-32.6667 0 -55.3333 6.83334 -68 20.5c-12.6667 13.6667 -19 33.8333 -19 60.5
+ c0 37.3333 9.33333 61.6667 28 73z" />
+ <glyph glyph-name="afii57668" unicode="ה"
+ d="M52 598c0 -3.33331 1.16667 -7.33331 3.5 -12s8 -9.66669 17 -15s20.8333 -8 35.5 -8h315c12.6667 0 22.8333 -5.5 30.5 -16.5s11.5 -24.1667 11.5 -39.5c0 -43.3333 -14 -65 -42 -65h-10l5 -343c0 -2 1 -7.83334 3 -17.5s3 -17.5 3 -23.5
+ c0 -9.33333 -2.83334 -21.6667 -8.5 -37c-5.66666 -15.3333 -12.5 -23 -20.5 -23c-3.33334 0 -6 0.666667 -8 2c-0.666656 0 -1 2 -1 6c0 2.66667 0.166656 7.33333 0.5 14c0.333344 6.66667 0.5 11.6667 0.5 15l5 407h-280c-60 0 -90 28.6667 -90 86c0 32.6667 10 56 30 70
+ zM74 142c0 -16.6667 0.666664 -34.8333 2 -54.5s2 -30.1667 2 -31.5c0 -14 -2.16666 -27 -6.5 -39s-11.1667 -18 -20.5 -18l-1 1h-3c-4.66667 0 -7 16.6667 -7 50c0 2 0.166668 7 0.5 15s0.5 16.6667 0.5 26c0 8.66666 -0.333332 21 -1 37s-1 28 -1 36
+ c0 40.6667 4.83333 75.3333 14.5 104c9.66667 28.6667 19.1667 43 28.5 43c4 0 6 -6.33334 6 -19c0 -6 -2.33334 -25.6667 -7 -59c-4.66666 -33.3333 -7 -63.6667 -7 -91z" />
+ <glyph glyph-name="afii57669" unicode="ו" horiz-adv-x="350"
+ d="M166 563c32.6667 0 53.8333 -6.33331 63.5 -19s14.5 -32.3333 14.5 -59c0 -6 -0.166672 -14.1667 -0.5 -24.5s-0.5 -17.5 -0.5 -21.5l12 -340c0 -14.6667 -2 -34.8333 -6 -60.5c-4 -25.6667 -9.33333 -38.5 -16 -38.5h-2c-0.666672 0 -3.33333 5 -8 15s-7 18.3333 -7 25
+ l7 325v7c0 13.3333 -7.66667 28.8333 -23 46.5s-34 26.5 -56 26.5c-4 0 -10 -0.166656 -18 -0.5s-13.6667 -0.5 -17 -0.5c-18.6667 0 -33.5 5.83334 -44.5 17.5s-16.5 26.5 -16.5 44.5c0 16 4 33.3333 12 52s15.6667 32 23 40l3 -10c2 -7.33331 5.5 -13.3333 10.5 -18
+ s12.1667 -7 21.5 -7c2.66666 0 6 -0.166687 10 -0.5s7 -0.5 9 -0.5c4 0 9.16667 0.166687 15.5 0.5s10.8333 0.5 13.5 0.5z" />
+ <glyph glyph-name="afii57670" unicode="ז" horiz-adv-x="350"
+ d="M225 420c-4.66667 0 -8.5 2.16666 -11.5 6.5s-4.5 8.5 -4.5 12.5c0 4.66666 2 7 6 7c0 -0.666656 -3.66667 -1 -11 -1c-2 -5.33334 -6.16667 -12.5 -12.5 -21.5s-11.3333 -19 -15 -30s-5.5 -24.8333 -5.5 -41.5c0 -20.6667 5.33333 -54.6667 16 -102
+ c10.6667 -47.3333 16 -84 16 -110c0 -30.6667 -5.33333 -58.3333 -16 -83c-3.33333 -8 -6.16667 -17.5 -8.5 -28.5s-4.66667 -18.6667 -7 -23c-2.33333 -4.33333 -6.5 -6.5 -12.5 -6.5c-7.33333 0 -14 7.16667 -20 21.5c-6 14.3333 -9 25.5 -9 33.5
+ c0 0.666668 2.5 11.5 7.5 32.5s7.5 47.1667 7.5 78.5c0 15.3333 -0.833328 37.5 -2.5 66.5s-2.5 50.8333 -2.5 65.5c0 31.3333 1.66667 55.1667 5 71.5s8.83333 29.5 16.5 39.5l29.5 37c-2.66667 0 -7.66667 -0.166656 -15 -0.5s-13 -0.5 -17 -0.5
+ c-32.6667 0 -58.1667 7 -76.5 21s-27.5 39 -27.5 75c0 26.6667 7 46 21 58c0 -0.666687 4.33334 -4.83331 13 -12.5s14 -13.1667 16 -16.5c3.33334 -4.66669 24.3333 -7.33331 63 -8s61.3333 -3.66669 68 -9c20.6667 -16 31 -37 31 -63c0 -20.6667 -4 -37.3333 -12 -50
+ s-18 -19 -30 -19z" />
+ <glyph glyph-name="afii57671" unicode="ח"
+ d="M65 -1c-5.33333 0 -9.33333 3.83333 -12 11.5c-2.66667 7.66667 -4 24.8333 -4 51.5l4 306c0.666668 15.3333 16 40 46 74c-26 0 -44.1667 8 -54.5 24s-15.5 39 -15.5 69c0 32.6667 7.66667 53.6667 23 63c4.66667 -9.33331 9.83333 -16.6667 15.5 -22
+ c5.66666 -5.33331 10.8333 -8.66669 15.5 -10s9.33334 -2.33331 14 -3s8.33334 -0.666687 11 0h315c13.3333 0 23.8333 -5.33331 31.5 -16s11.5 -24 11.5 -40c0 -43.3333 -14.3333 -65 -43 -65h-10l11 -345c0 -66 -8.66666 -99 -26 -99
+ c-5.33334 0 -9.16666 4.66667 -11.5 14c-2.33334 9.33333 -3.5 17 -3.5 23v407h-265c-20.6667 -30 -31 -54.6667 -31 -74v-314c0 -36.6667 -7.33334 -55 -22 -55z" />
+ <glyph glyph-name="afii57672" unicode="ט"
+ d="M70 323c0 -26.6667 2.5 -67 7.5 -121s9.83334 -85.3333 14.5 -94h350c17.3333 50 26 121.667 26 215c0 37.3333 -7.83334 62 -23.5 74s-51.5 18 -107.5 18c-19.3333 0 -39.1667 -6.83334 -59.5 -20.5s-37 -28.6667 -50 -45l-37.5 -45.5
+ c-12 -14 -20.3333 -21.3333 -25 -22c-2 0 -3 1 -3 3c0 5.33334 14.6667 32.3333 44 81s47.3333 84.6667 54 108c16 59.3333 25 89 27 89c14.6667 1.33331 25 2 31 2c29.3333 0 55 -5 77 -15s39.1667 -23 51.5 -39s22.3333 -35.6667 30 -59s12.8333 -46 15.5 -68
+ s4 -46.6667 4 -74c0 -46.6667 -1.66666 -87.5 -5 -122.5s-7.5 -62.3333 -12.5 -82s-10.8333 -38.6667 -17.5 -57c-6.66666 -18.3333 -13.3333 -34.5 -20 -48.5h-400c1.33333 16 2 33.3333 2 52c0.666668 21.3333 1 49.3333 1 84c0 16 -0.166668 41.1667 -0.5 75.5
+ s-0.5 63.1667 -0.5 86.5c0 31.3333 3.5 59.3333 10.5 84s12.8333 40.5 17.5 47.5s8.33334 11.8333 11 14.5c-8 0 -19.1667 6.83334 -33.5 20.5s-21.5 31.1667 -21.5 52.5c0 18 3.16667 35.6667 9.5 53c6.33333 17.3333 14.8333 26.6667 25.5 28
+ c0 -12.6667 7.16666 -24.1667 21.5 -34.5s30 -19 47 -26s32.6667 -18.5 47 -34.5s21.5 -35 21.5 -57c0 -14.6667 -3 -29 -9 -43s-10.6667 -21.6667 -14 -23c0 3.33334 -13.3333 14.5 -40 33.5c-26.6667 19 -42 28.5 -46 28.5c-2 -2.66666 -4.33334 -7.5 -7 -14.5
+ s-5.5 -20.1667 -8.5 -39.5s-4.5 -41 -4.5 -65z" />
+ <glyph glyph-name="afii57673" unicode="י" horiz-adv-x="350"
+ d="M118 478c-17.3333 0 -31.1667 6 -41.5 18s-15.5 27.3333 -15.5 46c0 15.3333 3.16666 32 9.5 50s13.5 31 21.5 39c0 -5.33331 4.83334 -12.1667 14.5 -20.5s21.5 -12.5 35.5 -12.5c5.33333 0 13.6667 0.333313 25 1s20 1 26 1c22.6667 0 38.8333 -6.83331 48.5 -20.5
+ s14.5 -29.1667 14.5 -46.5c0 -24.6667 -5.83333 -66.1667 -17.5 -124.5s-21.5 -87.5 -29.5 -87.5c0 0.666656 0.5 4.16666 1.5 10.5s2.16667 14.6667 3.5 25s2 20.1667 2 29.5c0 34.6667 -6.83333 58.8333 -20.5 72.5s-29.5 20.5 -47.5 20.5
+ c-3.33333 0 -8.33333 -0.166656 -15 -0.5c-6.66666 -0.333344 -11.6667 -0.5 -15 -0.5z" />
+ <glyph glyph-name="afii57674" unicode="ך"
+ d="M62 564c0 -4.66669 5.33334 -11.8333 16 -21.5s21 -14.5 31 -14.5h325c13.3333 0 27 -6.33331 41 -19c14 -12.6667 21 -26.3333 21 -41c0 -16 -6.33334 -30.3333 -19 -43s-27 -19 -43 -19h-10c8 -304 12 -494.333 12 -571c0 -60 -0.333344 -105.333 -1 -136
+ c0 -29.3333 -7.33334 -44 -22 -44c-2.66666 0 -5 0.333344 -7 1c-1.33334 0 -5.33334 5.83334 -12 17.5s-10 20.8333 -10 27.5l11 705h-283c-57.3333 0 -86 23 -86 69c0 17.3333 3.66667 35 11 53c7.33333 18 15.6667 30 25 36z" />
+ <glyph glyph-name="afii57675" unicode="כ"
+ d="M101 442c-46.6667 0 -70 29 -70 87c0 35.3333 9.66667 58.3333 29 69c0 -2 1.33333 -5.33331 4 -10c2.66666 -4.66669 9 -10 19 -16s22.3333 -9 37 -9h246c24.6667 0 45.1667 -4.66669 61.5 -14s28.3333 -23 36 -41s12.8333 -36.5 15.5 -55.5s4 -41.5 4 -67.5
+ c0 -12 -0.333344 -29.5 -1 -52.5s-1 -39.8333 -1 -50.5c0 -12.6667 0.666656 -33.1667 2 -61.5s2 -49.5 2 -63.5c0 -49.3333 -7.16666 -87.8333 -21.5 -115.5c-14.3333 -27.6667 -41.8333 -41.5 -82.5 -41.5h-366l36 108h322c34 0 56 7.33334 66 22
+ c10 14.6667 15 40.6667 15 78c0 6.66667 -0.166656 18.1667 -0.5 34.5c-0.333344 16.3333 -0.5 29.5 -0.5 39.5v45c0 46 -5.16666 76.6667 -15.5 92s-35.8333 23 -76.5 23h-260z" />
+ <glyph glyph-name="afii57676" unicode="ל"
+ d="M159 843c11.3333 0 21.5 -5.16669 30.5 -15.5s15.1667 -20.8333 18.5 -31.5l4 -16c0 -3.33331 -2.16667 -9.16669 -6.5 -17.5s-8.66667 -21.6667 -13 -40s-6.5 -41.5 -6.5 -69.5v-65h261c16 0 29.8333 -5.66669 41.5 -17s17.8333 -26.6667 18.5 -46l9 -204v-2
+ c0 -15.3333 -8.16666 -34.8333 -24.5 -58.5c-16.3333 -23.6667 -32.1667 -43.5 -47.5 -59.5s-37.6667 -38 -67 -66l-49 -47c-10.6667 -10.6667 -18 -20.6667 -22 -30c-4 -9.33333 -5.83334 -16 -5.5 -20s-1.33334 -7.16667 -5 -9.5s-11.5 -3.5 -23.5 -3.5
+ c-17.3333 0 -26 4.66667 -26 14c0 12 12.6667 30.1667 38 54.5s53.1667 48.3333 83.5 72s58.1667 49.6667 83.5 78c25.3333 28.3333 38 52.1667 38 71.5v6l-13 113c-5.33334 21.3333 -18.6667 32 -40 32l-302 2c-3.33333 0 -5 9.66666 -5 29v6l7 191
+ c0.666672 16.6667 6.16667 30.6667 16.5 42s15.5 22.3333 15.5 33c0 12.6667 -4.66667 21 -14 25s-14 12.6667 -14 26c0 15.3333 5.66667 23 17 23h2z" />
+ <glyph glyph-name="afii57677" unicode="ם"
+ d="M389 563c22 0 42.6667 -9 62 -27s29 -47.6667 29 -89v-18l3 -427l-450 -2l11 334c0.666668 30.6667 8.16667 56.3333 22.5 77c14.3333 20.6667 25.8333 31 34.5 31h2h26h-1c-7.33334 0 -16.8333 -11 -28.5 -33s-17.5 -47 -17.5 -75v-226h382l1 280
+ c0 18.6667 -2.5 32.6667 -7.5 42s-14.8333 14 -29.5 14c-2.66666 0 -7.33334 -0.166656 -14 -0.5s-12 -0.5 -16 -0.5h-288c-31.3333 0 -53.6667 6.66666 -67 20c-13.3333 13.3333 -20 28.6667 -20 46c0 17.3333 4.83333 34.8333 14.5 52.5
+ c9.66667 17.6667 20.1667 29.8333 31.5 36.5c-0.666664 0 -1 -2.66669 -1 -8c0 -18 12.3333 -27 37 -27h284z" />
+ <glyph glyph-name="afii57678" unicode="מ"
+ d="M483 127c0 -14 0.333344 -25 1 -33v-12c0 -6 -6.66666 -21 -20 -45s-20 -36.3333 -20 -37h-335c0.666664 0 11.6667 17.6667 33 53c21.3333 35.3333 32.3333 53.6667 33 55h286l3 121v4c0 60.6667 -19.5 110.5 -58.5 149.5s-90.1667 58.5 -153.5 58.5
+ c-29.3333 0 -56 -6.33334 -80 -19s-42.8333 -28.1667 -56.5 -46.5c-13.6667 -18.3333 -25.1667 -38.5 -34.5 -60.5s-15.6667 -41.6667 -19 -59c-3.33333 -17.3333 -5 -32.3333 -5 -45c0 -7.33333 2.16667 -27.3333 6.5 -60c4.33334 -32.6667 6.5 -60.6667 6.5 -84
+ c0 -44 -7.33333 -66.3333 -22 -67c-2.66667 0 -5.83333 4 -9.5 12s-5.5 16.6667 -5.5 26v14c0 18 -1.66667 42.5 -5 73.5s-5 54.5 -5 70.5c0 36 6.16667 77.1667 18.5 123.5c12.3333 46.3333 33.8333 82.5 64.5 108.5c-3.33334 5.33334 -11.6667 12.1667 -25 20.5
+ s-24.6667 18.1667 -34 29.5s-14 25.6667 -14 43c0 15.3333 2.66667 30.8333 8 46.5s12 26.1667 20 31.5c0 -0.666687 8 -10.6667 24 -30c3.33334 -6 17 -11 41 -15s39.6667 -10.6667 47 -20c6 -7.33331 10.6667 -16.3333 14 -27c3.33333 -10.6667 5.66667 -20.6667 7 -30
+ s2.66667 -15 4 -17c1.33333 -3.33334 10.3333 -0.333344 27 9c14.6667 8.66666 27.1667 20.8333 37.5 36.5c10.3333 15.6667 17.8333 29.1667 22.5 40.5s7.33334 17 8 17c41.3333 -4 75.3333 -12.3333 102 -25s46.5 -29.6667 59.5 -51s21.6667 -42.8333 26 -64.5
+ s6.5 -47.8333 6.5 -78.5c0 -13.3333 -0.5 -34 -1.5 -62s-1.5 -49 -1.5 -63v-7c0 -3.33333 -0.166656 -15.1667 -0.5 -35.5s-0.5 -36.8333 -0.5 -49.5z" />
+ <glyph glyph-name="afii57679" unicode="ן" horiz-adv-x="350"
+ d="M122 416c-23.3333 0 -39.8333 7.33334 -49.5 22c-9.66667 14.6667 -14.5 31.3333 -14.5 50c0 32 12 57.3333 36 76c0 -4.66669 6.66666 -15.3333 20 -32c4 -5.33331 20.1667 -9.33331 48.5 -12s46.1667 -6.33331 53.5 -11c22.6667 -15.3333 34 -34 34 -56
+ c0 -23.3333 -9.5 -53.1667 -28.5 -89.5s-28.5 -73.5 -28.5 -111.5l12 -495v-4c0 -19.3333 -2.83333 -40.1667 -8.5 -62.5s-14.5 -33.5 -26.5 -33.5h-4c-4.66667 0 -7 12.3333 -7 37l14 558c0 16.6667 4.16667 37.3333 12.5 62s12.5 40.3333 12.5 47c0 37.3333 -17 56 -51 56
+ c-2.66667 0 -6.83333 -0.166656 -12.5 -0.5s-9.83334 -0.5 -12.5 -0.5z" />
+ <glyph glyph-name="afii57680" unicode="נ" horiz-adv-x="350"
+ d="M144 444c-24 0 -41.5 5.83334 -52.5 17.5s-16.5 35.1667 -16.5 70.5c0 33.3333 5.33334 55.3333 16 66c0 -0.666687 2.66666 -4 8 -10s9 -10.6667 11 -14c4.66666 -6.66669 20 -10 46 -10h13c37.3333 0 62.1667 -7.5 74.5 -22.5s18.5 -49.1667 18.5 -102.5
+ c1.33334 -8 2 -56 2 -144c0 -73.3333 -0.666656 -142.667 -2 -208c0 -0.666664 -7.16667 -14.8333 -21.5 -42.5c-14.3333 -27.6667 -21.5 -42.5 -21.5 -44.5h-172l55 108h129l16 269v7c0 16 -4.5 30.1667 -13.5 42.5s-25.5 18.5 -49.5 18.5
+ c-4 0 -10.6667 -0.166656 -20 -0.5s-16 -0.5 -20 -0.5z" />
+ <glyph glyph-name="afii57681" unicode="ס"
+ d="M59 283c0 -62.6667 6.33334 -107.5 19 -134.5s40 -40.5 82 -40.5h157c5.33334 0 13.1667 -0.166664 23.5 -0.5s17.8333 -0.5 22.5 -0.5c18.6667 0 33.5 1.66666 44.5 5s21.8333 10.6667 32.5 22c10.6667 11.3333 18.3333 29.1667 23 53.5s7 55.8333 7 94.5
+ c0 60.6667 -7.16666 102.5 -21.5 125.5s-43.1667 34.5 -86.5 34.5h-257c0 -3.33334 -2.5 -8.66666 -7.5 -16l-16 -24c-5.66666 -8.66666 -10.8333 -23.5 -15.5 -44.5c-4.66667 -21 -7 -45.8333 -7 -74.5zM79 443c-28.6667 3.33334 -43 29 -43 77c0 42 8.66667 68 26 78
+ c0 -1.33331 1.33333 -4.5 4 -9.5c2.66666 -5 9 -10.5 19 -16.5s22 -9 36 -9h246c22 0 40.8333 -4.16669 56.5 -12.5s27.8333 -18.8333 36.5 -31.5c8.66666 -12.6667 15.5 -29.1667 20.5 -49.5s8.16666 -39.1667 9.5 -56.5s2 -38 2 -62c0 -8 -0.166656 -19.6667 -0.5 -35
+ s-0.5 -26.6667 -0.5 -34c0 -95.3333 -15.1667 -166.167 -45.5 -212.5c-30.3333 -46.3333 -73.1667 -69.5 -128.5 -69.5h-157c-23.3333 0 -43.1667 3.66667 -59.5 11c-16.3333 7.33333 -29.1667 16.5 -38.5 27.5c-9.33333 11 -16.3333 26.5 -21 46.5s-7.66667 39 -9 57
+ c-1.33333 18 -2 41.3333 -2 70v70c0 64 16.3333 117.667 49 161z" />
+ <glyph glyph-name="afii57682" unicode="ע"
+ d="M414 564c25.3333 0 42.5 -4.66669 51.5 -14s13.5 -28 13.5 -56c0 -50 -13.3333 -131 -40 -243s-50.3333 -175.667 -71 -191c-12 -8 -74.6667 -20 -188 -36l-169 -24c8.66667 15.3333 18 36.3333 28 63c10 26.6667 15 43 15 49l136 27l-31.5 68
+ c-11 22.6667 -20.8333 46 -29.5 70c-8.66666 24 -13 42.6667 -13 56c0 9.33334 2.16666 20.5 6.5 33.5s9.16667 24.1667 14.5 33.5l15 26l7 12c0 -0.666656 -3 -1 -9 -1c-22 0 -37 6.5 -45 19.5s-12 31.5 -12 55.5c0 52 8.66666 81 26 87c0 -2 1 -5.16669 3 -9.5
+ s6.66667 -9 14 -14s16.3333 -7.5 27 -7.5h7c50 0 75 -25 75 -75c0 -17.3333 -2.66667 -34.6667 -8 -52s-9.66667 -27 -13 -29c0 4 -5.33333 8.83334 -16 14.5s-24.6667 8.5 -42 8.5l-6 -15c-4 -10 -8 -22.6667 -12 -38s-6 -29.6667 -6 -43c0 -14 2.5 -27.5 7.5 -40.5
+ s14 -33.6667 27 -62c13 -28.3333 25.1667 -59.1667 36.5 -92.5c5.33333 0 32.1667 4 80.5 12c48.3333 8 73.8333 13.3333 76.5 16c21.3333 32.6667 38.1667 70.8333 50.5 114.5c12.3333 43.6667 18.5 81.8333 18.5 114.5v4c0 12 -5.16666 20 -15.5 24s-22 5.66666 -35 5
+ s-25.6667 2.16666 -38 8.5s-19.8333 17.5 -22.5 33.5c-1.33334 4.66666 -2 12.6667 -2 24c0 21.3333 3.16666 42.1667 9.5 62.5s14.5 32.8333 24.5 37.5l7 -8c4.66666 -6 7.66666 -11.6667 9 -17c4 -7.33331 15.3333 -11 34 -11h4z" />
+ <glyph glyph-name="afii57683" unicode="ף"
+ d="M174 182c31.3333 0 54.6667 7.16667 70 21.5c15.3333 14.3333 23 42.1667 23 83.5c0 25.3333 -5.16666 42.3333 -15.5 51c-10.3333 8.66666 -26.5 13 -48.5 13c-7.33333 0 -20.6667 -0.5 -40 -1.5s-35 -1.5 -47 -1.5c-28 0 -42 6 -42 18c0 6.66666 3.66666 14 11 22
+ s14.3333 14 21 18c4.66666 0 11.3333 0.166656 20 0.5c8.66667 0.333344 15 0.5 19 0.5h154c43.3333 0 77.5 -13.3333 102.5 -40s37.5 -74 37.5 -142c0 -6 -1.16666 -47.5 -3.5 -124.5s-3.5 -141.167 -3.5 -192.5c0 -164.667 11 -247 33 -247c13.3333 0 20 59.3333 20 178
+ c0 70.6667 -2.33334 154.667 -7 252l-7 146v26c0 176.667 -56 265 -168 265h-193c-40 0 -60 11.6667 -60 35c-17.3333 -8.66669 -26 -35.3333 -26 -80c0 -24 4.33333 -41.3333 13 -52c8.66667 -10.6667 24.6667 -18.6667 48 -24
+ c-13.3333 -14.6667 -26.8333 -33.8333 -40.5 -57.5c-13.6667 -23.6667 -20.5 -48.8333 -20.5 -75.5c0 -10 5.16667 -23.3333 15.5 -40c10.3333 -16.6667 20.1667 -27.6667 29.5 -33c18 -12.6667 53 -19 105 -19z" />
+ <glyph glyph-name="afii57684" unicode="פ"
+ d="M175 216c32 0 55.3333 7.33333 70 22c14.6667 14.6667 22 41.3333 22 80c0 27.3333 -5.16666 45.5 -15.5 54.5c-10.3333 9 -26.8333 13.5 -49.5 13.5c-6.66667 0 -19.5 -0.5 -38.5 -1.5s-34.5 -1.5 -46.5 -1.5c-28 0 -42 6.33334 -42 19c0 6 3.66666 13 11 21
+ s14.3333 13.6667 21 17c4.66666 0 11.3333 0.333344 20 1c8.66667 0.666656 15 1 19 1h154c25.3333 0 46.1667 -2.66666 62.5 -8s30.1667 -17 41.5 -35c14.6667 -24 25.1667 -44.8333 31.5 -62.5s9.83334 -39.8333 10.5 -66.5l6 -162h-398l-35 -108h417
+ c2 4.66667 8.5 23.6667 19.5 57c11 33.3333 16.5 50.3333 16.5 51v164c0 29.3333 -0.666656 55.1667 -2 77.5s-5.33334 47.8333 -12 76.5s-15.6667 52.1667 -27 70.5c-11.3333 18.3333 -27.8333 34 -49.5 47s-47.5 19.5 -77.5 19.5h-193c-40 0 -60 11.6667 -60 35
+ c-18 -9.33331 -27 -36 -27 -80c0 -24 4.5 -41.1667 13.5 -51.5s25.1667 -18.5 48.5 -24.5l-11 -14c-7.33334 -9.33334 -14.5 -19 -21.5 -29s-13.6667 -23.5 -20 -40.5c-6.33333 -17 -9.5 -33.5 -9.5 -49.5c0 -10 5.33333 -23.3333 16 -40
+ c10.6667 -16.6667 20.3333 -28 29 -34c19.3333 -12.6667 54.6667 -19 106 -19z" />
+ <glyph glyph-name="afii57685" unicode="ץ"
+ d="M443 361c-6.66666 6.66666 -13 13.3333 -19 20s-10 11 -12 13s-4.16666 3.66666 -6.5 5s-4.83334 2 -7.5 2s-7.16666 -0.666656 -13.5 -2s-10.8333 -2 -13.5 -2c-4.66666 -4 -18.1667 -14 -40.5 -30s-41.3333 -31.3333 -57 -46s-29.5 -30.3333 -41.5 -47
+ c-13.3333 -20 -23.8333 -72.3333 -31.5 -157c-7.66667 -84.6667 -17.1667 -139.667 -28.5 -165l4 -195v-3c0 -19.3333 -3.5 -40.5 -10.5 -63.5s-17.8333 -34.5 -32.5 -34.5c-5.33334 0 -9.16666 4.66666 -11.5 14s-3.5 16.6667 -3.5 22l13 633
+ c0 4.66666 3.66667 11.1667 11 19.5s11 15.8333 11 22.5c0 14.6667 -6.66667 25.3333 -20 32c-13.3333 6.66666 -28.1667 10.5 -44.5 11.5s-31.1667 6.33334 -44.5 16c-13.3333 9.66666 -20 24.8333 -20 45.5c0 17.3333 3.66667 35.1667 11 53.5
+ c7.33333 18.3333 15.6667 31.1667 25 38.5c0 -1.33331 3.83333 -5.66669 11.5 -13c7.66666 -7.33331 12.5 -12.3333 14.5 -15c4 -5.33331 15.5 -9.16669 34.5 -11.5s32.5 -5.83331 40.5 -10.5c23.3333 -16 35 -39.6667 35 -71c0 -24 -7.5 -51.5 -22.5 -82.5
+ s-22.5 -67.1667 -22.5 -108.5l6 -230c3.33333 8.66667 11.1667 52.5 23.5 131.5s24.5 126.833 36.5 143.5c10.6667 14.6667 22.6667 28.3333 36 41c13.3333 12.6667 30.1667 26.3333 50.5 41s33.5 24.6667 39.5 30c-8 4.66666 -14.1667 14.5 -18.5 29.5s-6.5 27.5 -6.5 37.5
+ c0 16 4.5 31.8333 13.5 47.5c9 15.6667 19.5 26.1667 31.5 31.5c0 -1.33331 4.16666 -5.66669 12.5 -13s13.5 -13.3333 15.5 -18c2.66666 -6.66669 9 -10.8333 19 -12.5c10 -1.66666 20.1667 -5.16666 30.5 -10.5s17.5 -15.3333 21.5 -30c5.33334 -17.3333 8 -34.3333 8 -51
+ c0 -30.6667 -9 -50.3333 -27 -59z" />
+ <glyph glyph-name="afii57686" unicode="צ"
+ d="M369 598c0 -13.3333 5.5 -23.8333 16.5 -31.5s23.3333 -13 37 -16s26 -10.8333 37 -23.5s16.5 -30 16.5 -52c0 -16.6667 -3.83334 -32.3333 -11.5 -47s-17.5 -24.6667 -29.5 -30c0 23.3333 -16.3333 39 -49 47l-40 -192c18 -8.66667 30.5 -15.1667 37.5 -19.5
+ s14.1667 -10.1667 21.5 -17.5s16.6667 -17.3333 28 -30c16.6667 -16.6667 28 -32.6667 34 -48c6 -15.3333 9 -35.3333 9 -60c0 -14.6667 -3.5 -30.3333 -10.5 -47c-7 -16.6667 -12.5 -27 -16.5 -31h-436c32 55.3333 49.6667 91.3333 53 108h314
+ c0 13.3333 -2.33334 23.6667 -7 31c-18.6667 23.3333 -39.8333 40.8333 -63.5 52.5s-45.1667 18.5 -64.5 20.5c-19.3333 2 -37.6667 4.16667 -55 6.5s-30.8333 8.16667 -40.5 17.5s-14.5 24.6667 -14.5 46c0 9.33334 0.5 25.3333 1.5 48s1.5 39.6667 1.5 51
+ c0 29.3333 -3.5 49 -10.5 59s-19.5 15 -37.5 15h-20c-20 0 -34.3333 5.83334 -43 17.5c-8.66667 11.6667 -13 25.1667 -13 40.5c0 16 3.83333 32.5 11.5 49.5c7.66667 17 16.1667 28.8333 25.5 35.5c0 -11.3333 4.33333 -19.6667 13 -25
+ c8.66666 -5.33331 18.5 -8.33331 29.5 -9s22.5 -3.16669 34.5 -7.5s20.6667 -11.1667 26 -20.5c7.33333 -11.3333 11 -43 11 -95c0 -9.33334 -0.166672 -24 -0.5 -44s-0.5 -34.6667 -0.5 -44s55 -39.6667 165 -91l39 191c-28 9.33334 -42 29.3333 -42 60
+ c0 17.3333 4.16666 34.5 12.5 51.5s18.5 28.1667 30.5 33.5z" />
+ <glyph glyph-name="afii57687" unicode="ק"
+ d="M457 230c0 41.3333 -2.33334 73.6667 -7 97s-13.6667 41 -27 53s-28 19.5 -44 22.5s-39.3333 4.5 -70 4.5h-206c-22.6667 0 -38.5 1.66666 -47.5 5s-13.8333 8.66666 -14.5 16s-2 16.6667 -4 28c-3.33333 12 -5 25 -5 39c0 33.3333 9.66667 56.3333 29 69
+ c0 -6 5.33334 -13.6667 16 -23s24.6667 -14 42 -14h194c22.6667 0 41.6667 -1.16669 57 -3.5s28.8333 -6.33331 40.5 -12c11.6667 -5.66666 20.8333 -13.3333 27.5 -23s12.5 -21.6667 17.5 -36s8.66666 -31.3333 11 -51l8 -68c3 -25.6667 5.5 -54.8333 7.5 -87.5
+ c0.666656 -4.66667 1 -11.6667 1 -21c0 -21.3333 -2.66666 -39.8333 -8 -55.5s-15 -29.8333 -29 -42.5c-14 -12.6667 -25.6667 -22.1667 -35 -28.5s-25.8333 -15.3333 -49.5 -27c-23.6667 -11.6667 -40.1667 -20.1667 -49.5 -25.5
+ c-46.6667 -26.6667 -83.1667 -46.8333 -109.5 -60.5c-26.3333 -13.6667 -45.5 -20.5 -57.5 -20.5c-3.33333 0 -5 1 -5 3c0 6 18 21.3333 54 46c36 24.6667 76 49.6667 120 75c9.33334 5.33334 22.6667 11.8333 40 19.5s30.8333 14.1667 40.5 19.5
+ c9.66666 5.33333 20 12.5 31 21.5s19 20.1667 24 33.5s7.5 29 7.5 47zM76 -153c0 -66.6667 -3.33334 -112.333 -10 -137c-6.66667 -24.6667 -21.3333 -42.3333 -44 -53c-0.666666 0 -1 1.33334 -1 4s1.66667 19.3333 5 50s5 54.6667 5 72c0 4.66667 -0.5 34.5 -1.5 89.5
+ s-1.5 119.833 -1.5 194.5v150c0 23.3333 3 45.6667 9 67s11.3333 32 16 32c2 0 5.16667 -6 9.5 -18c4.33334 -12 6.5 -26 6.5 -42c0 -7.33333 -0.833336 -17.6667 -2.5 -31s-2.5 -32.3333 -2.5 -57c0 -28.6667 2 -81.5 6 -158.5s6 -131.167 6 -162.5z" />
+ <glyph glyph-name="afii57688" unicode="ר"
+ d="M336 563c14 0 27.3333 -1.83331 40 -5.5s25.3333 -9.66669 38 -18s23 -21.1667 31 -38.5c8 -17.3333 12.3333 -38 13 -62l1 -18c0.666656 -12 1.66666 -28.1667 3 -48.5s2.5 -42.6667 3.5 -67s1.83334 -51.5 2.5 -81.5s1 -57.6667 1 -83c0 -36 -0.666656 -63.6667 -2 -83
+ c-1.33334 -19.3333 -2 -29.3333 -2 -30v-12c0 -11.3333 -2.66666 -17 -8 -17c-2.66666 0 -4.66666 0.333333 -6 1c-2 0 -6.5 4.16667 -13.5 12.5c-7 8.33333 -10.5 15.5 -10.5 21.5v1l11 267v20c0 50.6667 -3.5 83.6667 -10.5 99s-18.1667 23 -33.5 23
+ c-3.33334 0 -11.3333 -0.333344 -24 -1s-24 -1 -34 -1h-225c-30 0 -52 5.5 -66 16.5s-21 32.5 -21 64.5c0 40 9 65 27 75c0 -4.66669 5.33333 -11.6667 16 -21c10.6667 -9.33331 24 -14 40 -14h229z" />
+ <glyph glyph-name="afii57689" unicode="ש"
+ d="M81 455c-13.3333 0 -25.3333 4.16666 -36 12.5s-16 22.5 -16 42.5c0 18 3.66667 36.6667 11 56s17 30 29 32l8 -10c5.33334 -6.66669 8.66666 -13 10 -19c2 -6.66669 6 -11.1667 12 -13.5s12.3333 -3.33331 19 -3s13.6667 -1.66669 21 -6s13 -11.5 17 -21.5s6 -20 6 -30
+ c0 -16.6667 -4.33333 -32.8333 -13 -48.5s-15 -24.5 -19 -26.5c0 8.66666 -3.33334 15.8333 -10 21.5s-16 8.5 -28 8.5l-6 -13c-3.33334 -8.66666 -6.83334 -21.1667 -10.5 -37.5s-5.5 -33.8333 -5.5 -52.5c0 -28.6667 7 -71.8333 21 -129.5
+ c14 -57.6667 27.6667 -94.1667 41 -109.5c21.3333 34 49.8333 96.6667 85.5 188c35.6667 91.3333 53.5 143.667 53.5 157h-2c-18 0 -32.6667 4.83334 -44 14.5s-17 22.8333 -17 39.5c0 16.6667 4.5 35.5 13.5 56.5s19.1667 32.5 30.5 34.5c0 -0.666687 2 -4.16669 6 -10.5
+ s6.66666 -12.5 8 -18.5c1.33334 -8 6.33334 -12.5 15 -13.5s18.5 -3.16669 29.5 -6.5s19.1667 -11.3333 24.5 -24c4.66666 -11.3333 7 -22.6667 7 -34c0 -16.6667 -3.5 -32.1667 -10.5 -46.5s-12.5 -22.5 -16.5 -24.5c-2.66666 16.6667 -12.3333 25 -29 25
+ c0 -24.6667 -41.3333 -137 -124 -337h239c28 4 52.6667 41.6667 74 113c21.3333 71.3333 32 139.667 32 205c0 11.3333 -5.16666 19 -15.5 23s-21.8333 5.83334 -34.5 5.5s-25.1667 3 -37.5 10s-20.1667 18.5 -23.5 34.5c-0.666656 2.66666 -1 6.66666 -1 12
+ c0 16.6667 4.33334 34 13 52s19 29.6667 31 35c0 -1.33331 2.16666 -5.66669 6.5 -13s7.16666 -13 8.5 -17c2.66666 -7.33331 12.6667 -12.3333 30 -15s30 -12.3333 38 -29c6 -13.3333 9 -34.6667 9 -64c0 -59.3333 -9.16669 -127 -27.5 -203
+ c-18.3333 -76 -36.3333 -136.833 -54 -182.5c-17.6667 -45.6667 -28.5 -70.5 -32.5 -74.5h-332c0 6.66667 -0.833336 16.5 -2.5 29.5s-2.5 23.8333 -2.5 32.5c-2 30 -10 69 -24 117s-21 90.6667 -21 128c0 15.3333 1.16667 30.3333 3.5 45s5.33333 27 9 37
+ s7.66667 19.5 12 28.5s8.33334 15.8333 12 20.5l9.5 12l4 5h-4z" />
+ <glyph glyph-name="afii57690" unicode="ת"
+ d="M71 598c0 -2.66669 1.16666 -6.33331 3.5 -11s8.16666 -9.83331 17.5 -15.5s21.3333 -8.5 36 -8.5h232c37.3333 0 60.8333 -1.83331 70.5 -5.5s21.1667 -14.5 34.5 -32.5c5.33334 -7.33331 9.33334 -15.6667 12 -25s4.16666 -18.8333 4.5 -28.5s0.833344 -20.5 1.5 -32.5
+ l15 -340v-17c0 -55.3333 -7 -83 -21 -83c-0.666656 0 -1 0.333333 -1 1h-2c-2 0 -6.5 4.33333 -13.5 13c-7 8.66667 -10.1667 16 -9.5 22l17 353c0 18 -2.33334 31.8333 -7 41.5s-14.3333 14.5 -29 14.5c-3.33334 0 -8.5 -0.333344 -15.5 -1s-12.5 -1 -16.5 -1h-294
+ c-1.33334 -4.66666 -4 -10.8333 -8 -18.5s-8.33334 -23 -13 -46s-7 -47.1667 -7 -72.5c0 -22.6667 5 -43.6667 15 -63c10 -19.3333 20.8333 -35 32.5 -47c11.6667 -12 22.5 -26.3333 32.5 -43s15 -33.3333 15 -50c0 -23.3333 -6.33333 -46.1667 -19 -68.5
+ c-12.6667 -22.3333 -29.3333 -33.5 -50 -33.5h-71c-0.666668 0.666667 -1 7.66667 -1 21c0 35.3333 2 59 6 71s11.6667 18 23 18c16.6667 0 30 -1.66666 40 -5c-5.33334 12 -12.3333 25 -21 39s-16.8333 33.5 -24.5 58.5s-11.5 49.1667 -11.5 72.5
+ c0 69.3333 15.6667 125 47 167c-11.3333 0 -22.3333 8.16666 -33 24.5c-10.6667 16.3333 -16 36.8333 -16 61.5c0 38 9.66667 61.3333 29 70z" />
+ <glyph glyph-name="afii57716" unicode="װ"
+ d="M406 563c32 0 53.1667 -6.5 63.5 -19.5s15.5 -35.8333 15.5 -68.5v-21v-15l10 -340c0 -14.6667 -2 -34.8333 -6 -60.5c-4 -25.6667 -9.33334 -38.5 -16 -38.5h-2c-0.666656 0 -3.16666 5 -7.5 15s-6.5 18.3333 -6.5 25l6 325v7c0 12 -7.16666 27.1667 -21.5 45.5
+ s-33.5 27.5 -57.5 27.5c-4 0 -9.66666 -0.166656 -17 -0.5s-13 -0.5 -17 -0.5c-18.6667 0 -33.5 5.66666 -44.5 17s-16.5 25.6667 -16.5 43c0 16 4 33.6667 12 53s15.3333 33 22 41l3 -10c2 -7.33331 5.5 -13.3333 10.5 -18s12.1667 -7 21.5 -7
+ c2.66666 0 6.16666 -0.166687 10.5 -0.5s7.16666 -0.5 8.5 -0.5c4.66666 0 10 0.166687 16 0.5s10.3333 0.5 13 0.5zM146 563c32 0 53 -6.66669 63 -20s15 -33.3333 15 -60c0 -4.66666 -0.166672 -11.3333 -0.5 -20s-0.5 -14.6667 -0.5 -18v-6l12 -340c0 -14 -2 -34 -6 -60
+ s-9.33333 -39 -16 -39h-2c-2 0 -5 5 -9 15s-6 18.3333 -6 25l7 325c0 14.6667 -6.66667 31.6667 -20 51s-33 29 -59 29c-4 0 -10 -0.166656 -18 -0.5s-13.6667 -0.5 -17 -0.5c-18.6667 0 -33.5 5.83334 -44.5 17.5s-16.5 26.5 -16.5 44.5c0 16 4 33.3333 12 52
+ s15.6667 32 23 40c0 -0.666687 0.666668 -3.16669 2 -7.5c1.33334 -4.33331 2.83334 -8.33331 4.5 -12s5 -7.16669 10 -10.5s11.1667 -5 18.5 -5c2.66666 0 6 -0.166687 10 -0.5s7 -0.5 9 -0.5c4 0 9.16666 0.166687 15.5 0.5c6.33333 0.333313 10.8333 0.5 13.5 0.5z" />
+ <glyph glyph-name="afii57717" unicode="ױ"
+ d="M407 563c32.6667 0 53.8333 -6.83331 63.5 -20.5s14.5 -34.5 14.5 -62.5v-35v-6l10 -340c0 -14.6667 -2 -34.8333 -6 -60.5c-4 -25.6667 -9.33334 -38.5 -16 -38.5h-2c-0.666656 0 -3.33334 5 -8 15s-7 18.3333 -7 25l8 325v5c0 14.6667 -7.5 30.8333 -22.5 48.5
+ s-33.8333 26.5 -56.5 26.5c-4 0 -10 -0.166656 -18 -0.5s-13.6667 -0.5 -17 -0.5c-18 0 -32.6667 5.66666 -44 17s-17 26 -17 44c0 16 4 33.5 12 52.5s15.6667 32.5 23 40.5l3 -10c2 -7.33331 5.5 -13.3333 10.5 -18s12.1667 -7 21.5 -7
+ c2.66666 0 6.16666 -0.166687 10.5 -0.5s7.16666 -0.5 8.5 -0.5c4 0 9.33334 0.166687 16 0.5s11 0.5 13 0.5zM91 445c-17.3333 0 -31.3333 6.16666 -42 18.5s-16 27.8333 -16 46.5c0 15.3333 3 31.8333 9 49.5s13 30.5 21 38.5c0 -4.66669 5.16666 -11.3333 15.5 -20
+ s23.1667 -13 38.5 -13c4.66666 0 12.6667 0.333313 24 1s19.6667 1 25 1c22 0 37.6667 -7 47 -21s14 -29.3333 14 -46c0 -24 -5.83333 -65.1667 -17.5 -123.5s-21.1667 -87.5 -28.5 -87.5v1c0 0.666656 0.5 4.5 1.5 11.5s2.16667 15.6667 3.5 26s2 20.1667 2 29.5
+ c0 33.3333 -7 56.5 -21 69.5s-30 19.5 -48 19.5c-3.33334 0 -8 -0.166656 -14 -0.5s-10.6667 -0.5 -14 -0.5z" />
+ <glyph glyph-name="afii57718" unicode="ײ"
+ d="M349 478c-17.3333 0 -31.1667 6 -41.5 18s-15.5 27.3333 -15.5 46c0 15.3333 3.16666 32 9.5 50s13.1667 31 20.5 39c0 -5.33331 4.83334 -12.1667 14.5 -20.5s21.5 -12.5 35.5 -12.5c5.33334 0 13.6667 0.333313 25 1s20 1 26 1c22.6667 0 38.8333 -6.83331 48.5 -20.5
+ s14.5 -29.1667 14.5 -46.5c0 -22.6667 -6 -63.6667 -18 -123s-21.3333 -89 -28 -89v1c0 0.666656 0.666656 4.5 2 11.5s2.5 15.6667 3.5 26s1.5 20.1667 1.5 29.5c0 33.3333 -6.83334 56.6667 -20.5 70s-29.5 20 -47.5 20c-3.33334 0 -8.33334 -0.166656 -15 -0.5
+ s-11.6667 -0.5 -15 -0.5zM88 478c-17.3333 0 -31.1667 6 -41.5 18s-15.5 27.3333 -15.5 46c0 15.3333 3 32 9 50s12.6667 31 20 39c0 -4 5.16666 -10.5 15.5 -19.5s22.5 -13.5 36.5 -13.5c4.66666 0 12.6667 0.333313 24 1c11.3333 0.666687 20 1 26 1
+ c22.6667 0 38.8333 -7 48.5 -21s14.5 -29.3333 14.5 -46c0 -24 -5.83333 -65.3333 -17.5 -124s-21.1667 -88 -28.5 -88v1c0 0.666656 1 8.83334 3 24.5s3 29.5 3 41.5c0 33.3333 -6.66667 56.8333 -20 70.5s-29 20.5 -47 20.5c-3.33334 0 -8.33334 -0.166656 -15 -0.5
+ s-11.6667 -0.5 -15 -0.5z" />
+ <glyph glyph-name="uni05F3" unicode="׳" horiz-adv-x="396"
+ d="M283 727c5.33334 0 9 -1.16669 11 -3.5s3 -7.5 3 -15.5c0 -24 -11.8333 -53 -35.5 -87c-23.6667 -34 -48.1667 -62.6667 -73.5 -86c-25.3333 -23.3333 -42.3333 -35 -51 -35c-3.33333 0 -5 2 -5 6c0 12.6667 10.6667 39.3333 32 80s40.6667 73 58 97
+ c13.3333 17.3333 24.1667 29 32.5 35c8.33334 6 17.8333 9 28.5 9z" />
+ <glyph glyph-name="uni05F4" unicode="״" horiz-adv-x="396"
+ d="M197 727c5.33333 0 8.83333 -1 10.5 -3s2.5 -7 2.5 -15c0 -24 -11.8333 -53.1667 -35.5 -87.5s-48.3333 -63.1667 -74 -86.5c-25.6667 -23.3333 -42.5 -35 -50.5 -35c-3.33333 0 -5 2 -5 6c0 12.6667 10.6667 39.5 32 80.5c21.3333 41 41 73.1667 59 96.5
+ c13.3333 18 24 29.8333 32 35.5s17.6667 8.5 29 8.5zM332 727c5.33334 0 9 -1.16669 11 -3.5s3 -7.5 3 -15.5c0 -24 -11.8333 -53 -35.5 -87s-48.3333 -62.6667 -74 -86c-25.6667 -23.3333 -42.8333 -35 -51.5 -35c-3.33333 0 -5 2 -5 6c0 12 10.8333 38.6667 32.5 80
+ s41.1667 73.6667 58.5 97c13.3333 17.3333 24.1667 29 32.5 35s17.8333 9 28.5 9z" />
+
+ <!-- arabic -->
+ <glyph glyph-name="afii57388" unicode="،" horiz-adv-x="226"
+ d="M245 256q-10 -60 -67 -61q-67 0 -79 64q1 9 0 19t2 24t7.5 28t16 31.5t28.5 34.5t47 28l18 -1q-50 -44 -74 -89q34 2 44 2q17 0 28.5 -7t17 -21t8 -25t3.5 -27z" />
+ <glyph glyph-name="afii57403" unicode="؛" horiz-adv-x="250"
+ d="M143 395q-38 0 -63.5 28t-25.5 72q0 133 109 227l19 -26q-69 -69 -69 -115q0 -12 11.5 -17.5t26.5 -6t32.5 -9t26.5 -25.5q8 -18 8 -38v-13q-1 -9 -4.5 -19.5t-11 -25t-23 -23.5t-36.5 -9zM150 322q58 0 68 -73q-9 -68 -62 -68h-5q-70 0 -70 70q0 69 69 71z" />
+ <glyph glyph-name="afii57407" unicode="؟" horiz-adv-x="473"
+ d="M147 663q0 50 33.5 83.5t88.5 33.5q67 0 93.5 -35t26.5 -81q0 -36 -14.5 -51.5t-31.5 -15.5t-29 14t-12 28q0 13 16.5 32t16.5 29q0 11 -19.5 28.5t-44.5 17.5q-64 0 -64 -62q0 -28 15 -51t32.5 -39t32.5 -56.5t15 -99.5q0 -28 -3 -63h-25q-1 63 -11 98t-22.5 46
+ t-35.5 33t-40 51q-18 29 -18 60zM344 256q0 -58 -44 -58h-1q-60 0 -60 51q1 51 55 51q50 0 50 -44z" />
+ <glyph glyph-name="afii57409" unicode="ء" horiz-adv-x="350"
+ d="M277 363q-5 0 -18 28t-27 28q-20 0 -40 -35t-20 -59q0 -16 10 -43t24 -27q7 0 14 3.5t16 9.5t33.5 18.5t59.5 26.5l-13 -52q-76 -23 -231 -140q43 60 97 108q-39 10 -55 28t-16 54q0 53 34 98t82 71h8q56 -3 56 -60q0 -17 -3.5 -37t-10.5 -20z" />
+ <glyph glyph-name="afii57410" unicode="آ" horiz-adv-x="321"
+ d="M154 1055q16 0 43 -2t39 -2q34 0 54 9t67 45l-17 -55q-17 -29 -44.5 -40t-85.5 -11q-11 0 -35.5 1t-41.5 1q-15 -1 -26.5 0t-35.5 -12t-59 -43q35 69 59 89t83 20zM149 154q27 331 27 391q0 83 -9 265l42 89q14 -255 14 -418q0 -171 -74 -327z" />
+ <glyph glyph-name="afii57411" unicode="أ" horiz-adv-x="249"
+ d="M209 1044q-4 0 -12 18t-18 18q-13 0 -25.5 -22.5t-12.5 -38.5q0 -11 6 -28t15 -17q5 0 9.5 2t10 6t22 12t38.5 17l-8 -33q-49 -15 -150 -91q26 36 63 70q-26 7 -36 18.5t-10 34.5q0 35 22 64t53 46h5q36 -2 36 -39t-8 -37zM149 154q27 369 27 391q0 85 -9 266l42 89
+ q14 -255 14 -419q0 -171 -74 -327z" />
+ <glyph glyph-name="afii57412" unicode="ؤ" horiz-adv-x="399"
+ d="M342 652q-4 0 -12 18t-18 18q-13 0 -25.5 -22.5t-12.5 -38.5q0 -11 6 -28t15 -17q5 0 9.5 2t10 6t22 12t38.5 17l-8 -33q-49 -15 -150 -91q26 36 63 70q-26 7 -36 18.5t-10 34.5q0 35 22 64t53 46h5q36 -2 36 -39t-8 -37zM189 303q0 65 32 108t85 43h9q68 -11 84 -172
+ v-85q0 -112 -106 -247q-59 -75 -167 -75h-53v10q119 70 149.5 96.5t75.5 100.5q34 55 34 96q0 14 -2 21h-99q-42 18 -42 88v16zM341 288q-2 52 -10 77t-32 25q-45 0 -45 -102h9q9 0 27.5 -0.5t26.5 -0.5q16 0 24 1z" />
+ <glyph glyph-name="afii57413" unicode="إ" horiz-adv-x="249"
+ d="M212 37q-4 0 -12 18t-18 18q-13 0 -25.5 -22.5t-12.5 -38.5q0 -11 6 -28t15 -17q5 0 9.5 2t10 6t22 12t38.5 17l-8 -33q-49 -15 -150 -91q26 36 63 70q-26 7 -36 18.5t-10 34.5q0 35 22 64t53 46h5q36 -2 36 -39t-8 -37zM149 154q27 369 27 391q0 85 -9 266l42 89
+ q14 -255 14 -419q0 -171 -74 -327z" />
+ <glyph glyph-name="afii57414" unicode="ئ" horiz-adv-x="776"
+ d="M447 606q-4 0 -12 18t-18 18q-13 0 -25.5 -22.5t-12.5 -38.5q0 -11 6 -28t15 -17q5 0 9.5 2t10 6t22 12t38.5 17l-8 -33q-49 -15 -150 -91q26 36 63 70q-26 7 -36 18.5t-10 34.5q0 35 22 64t53 46h5q36 -2 36 -39t-8 -37zM714 465q27 0 35.5 -15t8.5 -43q0 -9 -2 -27
+ q-33 26 -66 26q-34 0 -80.5 -43t-46.5 -63q0 -29 80 -29q3 0 19 2t30 2q63 0 63 -37v-4q0 -118 -132 -197q-89 -53 -206 -53q-82 0 -141 17.5t-89 47t-43 60.5t-13 65q0 107 83 222l11 -4q-52 -98 -52 -163t52 -106.5t146 -48.5q302 16 348 109q-2 20 -101 20h-6
+ q-95 0 -95 56q0 65 67 135.5t130 70.5z" />
+ <glyph glyph-name="afii57415" unicode="ا" horiz-adv-x="249"
+ d="M149 154q27 369 27 391q0 85 -9 266l42 89q14 -255 14 -419q0 -171 -74 -327z" />
+ <glyph glyph-name="afii57416" unicode="ب" horiz-adv-x="950"
+ d="M644 2l-52 -54l-52 54l52 53zM926 278q0 82 -10 117t-42 62l18 64q65 -41 65 -124q0 -5 -1 -13t-1 -13v-174h-718q-56 0 -83.5 21t-27.5 76q0 77 70 203l10 -9q-52 -104 -52 -141t42 -69h730z" />
+ <glyph glyph-name="afii57417" unicode="ة" horiz-adv-x="424"
+ d="M392 670l-55 -55l-55 55l55 55zM235 670l-56 -55l-55 55l55 55zM251 564q72 -80 107.5 -145t35.5 -104q0 -21 -8.5 -46t-18.5 -33q-14 -12 -41 -23t-49 -11q-64 0 -93 11.5t-51 49.5q-6 10 -6 34q0 40 30 97.5t50 87.5l-8 10zM235 454q-69 -80 -69 -126q0 -32 32.5 -45
+ t74.5 -13q52 0 69.5 8.5t17.5 26.5q0 28 -31.5 78t-93.5 71z" />
+ <glyph glyph-name="afii57418" unicode="ت" horiz-adv-x="925"
+ d="M530 574l-65 -66l-67 66l67 67zM740 574l-65 -66l-67 66l67 67zM862 512q63 -39 63 -119q0 -9 -2 -25v-169h-693q-79 0 -96 41q-11 25 -11 53q0 19 5 47q12 59 63 149l9 -8q-32 -62 -49 -125q-1 -4 -1 -12q0 -35 41 -67h704q0 45 -5 95q-6 46 -45 79z" />
+ <glyph glyph-name="afii57419" unicode="ث" horiz-adv-x="924"
+ d="M756 543l-64 -66l-67 66l67 67zM531 543l-64 -66l-67 66l67 67zM643 665l-65 -67l-66 67l66 66zM921 275q0 64 -8.5 103t-16.5 49.5t-26 25.5l17 63q65 -41 65 -123q0 -5 -1 -13t-1 -13v-173h-713q-55 0 -82.5 21t-27.5 76q0 75 70 201l9 -8q-51 -99 -51 -140
+ q0 -38 42 -69h724z" />
+ <glyph glyph-name="afii57420" unicode="ج" horiz-adv-x="750"
+ d="M330 491q16 0 111 -16.5t206 -16.5l88 2l-20 -63h-7q-173 0 -292 -51t-193 -158q-54 -76 -54 -157q0 -35 8.5 -67.5t28 -64t58 -50.5t91.5 -19q112 0 296 46l48 -47q-157 -49 -319 -55h-26q-132 14 -178 78q-45 63 -45 82q-7 21 -7 53q0 68 31.5 128.5t93.5 132.5
+ q143 118 237 144q-52 15 -106 27t-108 12q-50 0 -64 -17l-27 -10q47 48 77 67.5t72 19.5zM497 104l-53 -53l-52 53l52 51z" />
+ <glyph glyph-name="afii57421" unicode="ح" horiz-adv-x="748"
+ d="M330 505q12 0 109.5 -16t209.5 -16l89 1l-20 -62h-7q-175 0 -294.5 -50t-194.5 -156q-54 -75 -54 -155q0 -36 8.5 -68.5t28.5 -63t59 -49t93 -18.5q110 0 307 44l37 -46q-159 -48 -320 -54h-27q-133 14 -180 77q-45 59 -45 82q-7 20 -7 52q0 67 32 126.5t94 131.5
+ q145 118 239 143q-51 14 -108.5 25.5t-109.5 11.5q-50 0 -62 -16l-27 -10q33 33 50 47.5t43.5 26.5t56.5 12z" />
+ <glyph glyph-name="afii57422" unicode="خ" horiz-adv-x="701"
+ d="M308 503q19 0 107.5 -15.5t193.5 -15.5l84 2l-19 -59h-7q-323 0 -461 -195q-51 -70 -51 -145q0 -32 8 -62t25.5 -60t53 -48.5t84.5 -18.5q105 0 303 59l29 -60q-150 -45 -302 -51h-25q-125 13 -170 72q-42 57 -42 78q-7 18 -7 49q0 62 29 117.5t90 126.5q137 110 225 134
+ q-50 13 -103 24t-102 11q-47 0 -59 -15l-25 -9q31 31 47 45t41 25t53 11zM379 680l-44 -44l-43 44l43 43z" />
+ <glyph glyph-name="afii57423" unicode="د" horiz-adv-x="397"
+ d="M382 278q-7 27 -8 45t-7 35t-7.5 27.5t-9.5 22t-14 18.5t-19.5 17.5t-26.5 19l-36 22.5l2 79q22 -7 35.5 -12.5t40 -26t43.5 -48.5t32.5 -80t19.5 -119q0 -78 -56 -78h-202q-55 0 -55 96v21l12 1q4 -38 28 -40h228z" />
+ <glyph glyph-name="afii57424" unicode="ذ" horiz-adv-x="399"
+ d="M303 725l-57 -57l-55 57l55 55zM378 277q-6 26 -7 44t-6.5 34.5t-7.5 27t-10 22l-13.5 19t-19 17.5t-27 18.5l-35.5 22.5l2 78q21 -7 35 -13t40 -26t42.5 -47.5t32 -79t19.5 -117.5q0 -77 -55 -77h-200q-54 0 -54 95v20l12 2q4 -38 28 -40h224z" />
+ <glyph glyph-name="afii57425" unicode="ر" horiz-adv-x="328"
+ d="M325 447q20 -69 20 -148q0 -22 -5 -58t-6 -46l-128 -241q-49 -72 -103 -84l-104 -23l5 21q83 49 106 81l69 100q70 99 88 140t18 79q0 45 -18 132z" />
+ <glyph glyph-name="afii57426" unicode="ز" horiz-adv-x="331"
+ d="M326 601l-56 -56l-59 56l59 53zM325 447q20 -69 20 -148q0 -22 -5 -58t-6 -46l-128 -241q-43 -53 -103 -84l-104 -23l5 21q18 14 34 24t39 31.5t46.5 49t57 76t71.5 112.5q33 54 33 107q0 45 -18 132z" />
+ <glyph glyph-name="afii57427" unicode="س" horiz-adv-x="951"
+ d="M883 274q52 0 52 19q0 26 -40 116l23 36q45 -101 45 -153t-19 -70t-56 -18q-23 0 -31.5 0.5t-25 8t-34.5 23.5q-25 -34 -61 -34q-58 0 -107 -1q0 -45 -8.5 -79.5t-18 -53.5t-32 -35.5t-35.5 -22.5t-43 -18q-63 -25 -152 -25h-33q-34 2 -60.5 8t-57.5 21t-48 47.5
+ t-17 79.5q0 64 82 224l13 -23q-67 -101 -67 -158q0 -70 41 -106t150 -36q63 0 134 21t84 41q30 45 30 122q0 67 -42 116l33 72q32 -56 39 -120h107q40 0 40 68v16l13 7q13 -56 31 -74.5t71 -18.5z" />
+ <glyph glyph-name="afii57428" unicode="ش" horiz-adv-x="949"
+ d="M876 272q49 0 49 19q0 25 -39 114l23 36q44 -99 44 -151q0 -50 -19 -68.5t-55 -18.5q-7 -1 -17 -0.5t-20 2.5t-24 9.5t-29 20.5q-25 -33 -59 -33q-59 0 -107 -1q0 -55 -9 -91.5t-31.5 -58.5t-40 -31.5t-55.5 -24.5q-60 -25 -149 -25h-33q-26 1 -47 4.5t-47.5 13.5
+ t-44 25.5t-30 44t-12.5 66.5q0 63 81 220l13 -23q-67 -102 -67 -156q0 -68 39.5 -103.5t150.5 -35.5q62 0 132 21t83 41q29 44 29 120q0 67 -41 113l33 72q30 -56 38 -118h106q40 0 40 69v13l13 7q12 -54 30 -73t72 -19zM855 553l-47 -45l-49 45l49 45zM774 656l-47 -46
+ l-49 46l49 44zM691 553l-47 -45l-49 45l49 45z" />
+ <glyph glyph-name="afii57429" unicode="ص" horiz-adv-x="949"
+ d="M832 466q20 0 38 -5t37 -18t30 -41t11 -67q0 -33 -7 -67l-15 -34v-1q0 -31 -187 -31l-150 -1q-1 -66 -19.5 -111.5t-53.5 -69.5t-76.5 -33.5t-97.5 -9.5q-212 0 -212 177q4 111 35 197l18 -6q-28 -78 -28 -150q0 -78 40.5 -120t147.5 -44q65 2 111 18.5t68.5 42.5
+ t32 52.5t9.5 56.5q0 71 -63 144l34 72q44 -105 59 -131l120 120q58 55 107 60h11zM895 323q0 82 -84 82q-80 0 -183 -131q7 0 20.5 -0.5t20.5 -0.5q27 0 162 5q64 16 64 45z" />
+ <glyph glyph-name="afii57430" unicode="ض" horiz-adv-x="949"
+ d="M832 466q20 0 38 -5t37 -18t30 -41t11 -67q0 -33 -7 -67l-15 -34v-1q0 -31 -187 -31l-150 -1q-1 -66 -19.5 -111.5t-53.5 -69.5t-76.5 -33.5t-97.5 -9.5q-212 0 -212 177q4 111 35 197l18 -6q-28 -78 -28 -150q0 -78 40.5 -120t147.5 -44q65 2 111 18.5t68.5 42.5
+ t32 52.5t9.5 56.5q0 71 -63 144l34 72q44 -105 59 -131l120 120q58 55 107 60h11zM895 333q0 82 -84 82q-80 0 -183 -131q7 0 20.5 -0.5t20.5 -0.5q27 0 162 5q64 16 64 45zM747 633l-49 -48l-48 48l48 48z" />
+ <glyph glyph-name="afii57431" unicode="ط" horiz-adv-x="557"
+ d="M165 277q21 15 21 39q0 126 -86 384l63 83l26.5 -146.5t26.5 -168t12 -140.5q0 -4 -0.5 -11t-0.5 -10q115 131 218 131q22 0 41 -6t39 -21t31.5 -47t11.5 -78v-4q0 -81 -61 -81h-513l-1 79zM536 304q0 45 -28.5 64.5t-65.5 19.5q-38 0 -86.5 -28t-79.5 -56l-20 -20h279
+ q1 7 1 20z" />
+ <glyph glyph-name="afii57432" unicode="ظ" horiz-adv-x="550"
+ d="M443 612l-46 -46l-47 46l47 47zM165 277q21 15 21 39q0 126 -86 384l63 83l26.5 -146.5t26.5 -168t12 -140.5q0 -4 -0.5 -11t-0.5 -10q115 131 218 131q22 0 41 -6t39 -21t31.5 -47t11.5 -78v-4q0 -81 -61 -81h-513l-1 79zM536 304q0 45 -28.5 64.5t-65.5 19.5
+ q-38 0 -86.5 -28t-79.5 -56l-20 -20h279q1 7 1 20z" />
+ <glyph glyph-name="afii57433" unicode="ع" horiz-adv-x="625"
+ d="M130 -67q0 53 31 127t93 126q-87 75 -122 117v29v2q0 62 65 119q56 49 126 49h5q53 -8 121 -50q-13 1 -36 1q-76 0 -153.5 -28t-86.5 -54q2 -37 51 -77.5t95 -40.5q10 0 37.5 14t81 31t121.5 22l-35 -67q-146 -15 -219 -90q-131 -123 -131 -195q0 -76 361 -122h111
+ l-104 -65q-176 8 -265 26t-118 46t-29 80z" />
+ <glyph glyph-name="afii57434" unicode="غ" horiz-adv-x="602"
+ d="M130 -62q0 60 33 131.5t90 119.5q-87 74 -121 116v29v2q0 62 65 119q55 48 124 48h4q52 -8 121 -49q-10 1 -30 1q-77 0 -156 -28t-88 -54q4 -36 51.5 -76.5t93.5 -40.5h6q119 58 231 66l-35 -66q-143 -15 -216 -89q-129 -122 -129 -194q0 -73 356 -120h110l-103 -65
+ q-173 8 -261 26t-117 45.5t-29 78.5zM323 720l-48 -48l-49 48l49 48z" />
+ <glyph glyph-name="afii57441" unicode="ف" horiz-adv-x="801"
+ d="M592 432q0 59 29.5 121.5t73.5 62.5h4q25 0 49.5 -24t40.5 -71q22 -64 22 -158v-66q0 -92 -86 -92l-526 1q-43 5 -56.5 28.5t-14.5 98.5q2 54 26 130l26 -27q-34 -78 -34 -114q0 -34 34 -41q50 0 150 -0.5t149 -0.5q33 0 99 0.5t99 0.5h3q85 0 85 48v5q-56 13 -94.5 20.5
+ t-58.5 25.5t-20 52zM693 529q-36 -10 -36 -71q0 -49 85 -49q15 0 22 1v1q-8 39 -27.5 76t-43.5 42zM675 712l-49 -50l-50 50l50 51z" />
+ <glyph glyph-name="afii57442" unicode="ق" horiz-adv-x="696"
+ d="M709 562l-55 -55l-55 55l55 55zM552 562l-56 -55l-55 55l55 55zM719 183q-17 -140 -88 -187q-95 -56 -259 -56h-31q-209 45 -209 163q-2 22 -2 35q0 96 51 218h11q-28 -97 -28 -167q0 -28 4 -47q11 -116 273 -116h13q96 16 152 36q75 38 75 111q0 10 -1 16q-2 18 -31 18
+ q-21 0 -49 -7q-95 0 -95 51q0 4 2 14q2 37 30 86q29 59 69 66q52 -24 85 -77q25 -51 28 -94v-63zM607 354h-3q-33 0 -48 -44q-6 -10 -6 -18q0 -20 41 -20h9q38 0 44 2q6 0 6 10q0 2 -2 10q-3 16 -17 37z" />
+ <glyph glyph-name="afii57443" unicode="ك" horiz-adv-x="757"
+ d="M948 958l-199 -87q-19 -8 -73.5 -33.5t-54.5 -32.5q0 -10 107 -126l40 -51t31 -41.5t24.5 -38.5t21.5 -43t21 -55.5l24 -74.5q4 -39 4 -75q0 -101 -42 -101h-1l-587 2q-78 0 -128 87q-15 25 -15 89q0 67 20 131l8 -4q-7 -45 -7 -85q0 -77 39.5 -111t137.5 -34h11h529
+ q2 24 2 35q0 121 -125 286l-61 65l-11 -14q-34 23 -86 75q-4 26 -4 38q0 60 45.5 102t171.5 94l163 66z" />
+ <glyph glyph-name="afii57444" unicode="ل" horiz-adv-x="655"
+ d="M377 -150q-45 0 -83 7.5t-77.5 27t-62 60t-22.5 98.5q0 102 61 261l16 -6q-46 -141 -46 -216q0 -74 76 -126q88 -19 160 -19q82 0 117 18q89 46 89 157q0 264 -37 704l38 38l52 41l47 -146l-52 -64v-52q0 -169 6 -305t6 -167q0 -83 -11.5 -137t-42 -95.5t-88 -60
+ t-146.5 -18.5z" />
+ <glyph glyph-name="afii57445" unicode="م" horiz-adv-x="549"
+ d="M280 303q-28 0 -51 -38q-4 16 -4 33q0 66 80 68h27q28 0 81.5 -17.5t103.5 -52.5t50 -74q0 -26 -28 -57t-63 -31l-72 24q-71 24 -120 24q-60 0 -85 -36q30 -234 30 -373q0 -63 -22 -111q-20 126 -36 206t-22.5 100t-11 52.5t-8.5 96.5v11q0 50 42 95.5t107 45.5
+ q25 0 130 -28q-25 17 -68 39.5t-60 22.5z" />
+ <glyph glyph-name="afii57446" unicode="ن" horiz-adv-x="651"
+ d="M441 451l-59 -55l-58 55l58 55zM362 -20q67 0 112.5 7t84.5 26.5t58 58t19 97.5q-1 156 -41 188l58 96q17 -71 20 -243l-7 -78q-5 -70 -26 -117t-57 -70.5t-76 -32.5t-96 -9q-32 0 -49 1q-136 0 -188.5 53t-52.5 156q0 92 28 189l21 -4q-17 -74 -17 -132q0 -6 1 -18.5
+ t1 -18.5q0 -147 207 -149z" />
+ <glyph glyph-name="afii57470" unicode="ه" horiz-adv-x="424"
+ d="M251 564q72 -80 107.5 -145t35.5 -104q0 -21 -8.5 -46t-18.5 -33q-14 -12 -41 -23t-49 -11q-64 0 -93 11.5t-51 49.5q-6 10 -6 34q0 40 30 97.5t50 87.5l-8 10zM235 454q-69 -80 -69 -126q0 -32 32.5 -45t74.5 -13q52 0 69.5 8.5t17.5 26.5q0 28 -31.5 78t-93.5 71z" />
+ <glyph glyph-name="afii57448" unicode="و" horiz-adv-x="399"
+ d="M189 303q0 65 32 108t85 43h9q68 -11 84 -172v-85q0 -112 -106 -247q-59 -75 -167 -75h-53v10q119 70 149.5 96.5t75.5 100.5q34 55 34 96q0 14 -2 21h-99q-42 18 -42 88v16zM341 288q-2 52 -10 77t-32 25q-45 0 -45 -102h9q9 0 27.5 -0.5t26.5 -0.5q16 0 24 1z" />
+ <glyph glyph-name="afii57449" unicode="ى" horiz-adv-x="776"
+ d="M714 465q27 0 35.5 -15t8.5 -43q0 -9 -2 -27q-33 26 -66 26q-34 0 -80.5 -43t-46.5 -63q0 -29 80 -29q3 0 19 2t30 2q63 0 63 -37v-4q0 -118 -132 -197q-89 -53 -206 -53q-82 0 -141 17.5t-89 47t-43 60.5t-13 65q0 107 83 222l11 -4q-52 -98 -52 -163t52 -106.5
+ t146 -48.5q302 16 348 109q-2 20 -101 20h-6q-95 0 -95 56q0 65 67 135.5t130 70.5z" />
+ <glyph glyph-name="afii57450" unicode="ي" horiz-adv-x="776"
+ d="M461 -122l-65 -66l-67 66l67 67zM619 -89l-65 -66l-67 66l67 67zM714 465q27 0 35.5 -15t8.5 -43q0 -9 -2 -27q-33 26 -66 26q-34 0 -80.5 -43t-46.5 -63q0 -29 80 -29q3 0 19 2t30 2q63 0 63 -37v-4q0 -118 -132 -197q-89 -53 -206 -53q-82 0 -141 17.5t-89 47t-43 60.5
+ t-13 65q0 107 83 222l11 -4q-52 -98 -52 -163t52 -106.5t146 -48.5q302 16 348 109q-2 20 -101 20h-6q-95 0 -95 56q0 65 67 135.5t130 70.5z" />
+ <glyph glyph-name="afii57451" unicode="ً" horiz-adv-x="300"
+ d="M190 1006l-78 -37.5t-42 -28.5t-16 -36l151 74q23 10 32 22t12 35zM190 916l-78 -37.5t-42 -28.5t-16 -36l151 74q23 10 32 22t12 35z" />
+ <glyph glyph-name="afii57453" unicode="ٍ" horiz-adv-x="300"
+ d="M180 -153l-74.5 -37t-43.5 -29t-18 -37l151 74q23 10 32 22t12 35zM180 -63l-74.5 -37t-43.5 -29t-18 -37l151 74q23 10 32 22t12 35z" />
+ <glyph glyph-name="afii57454" unicode="َ" horiz-adv-x="300"
+ d="M190 1006l-78 -37.5t-42 -28.5t-16 -36l151 74q23 10 32 22t12 35z" />
+ <glyph glyph-name="afii57455" unicode="ُ" horiz-adv-x="300"
+ d="M219 1010q24 -11 30 -17.5t6 -15.5q0 -11 -6 -25l-50 23q-34 -64 -127 -100h-21q71 39 124 112l-21 17t-15 13.5t-9 14.5t-3 18q0 34 25.5 59t51.5 25q31 0 31 -41q0 -30 -16 -83zM201 1052q0 18 -5.5 25t-21.5 7q-13 0 -13 -17q0 -12 39 -41q1 10 1 26z" />
+ <glyph glyph-name="afii57456" unicode="ِ" horiz-adv-x="300"
+ d="M180 -153l-74.5 -37t-43.5 -29t-18 -37l151 74q23 10 32 22t12 35z" />
+ <glyph glyph-name="afii57457" unicode="ّ" horiz-adv-x="300"
+ d="M250 1011q-1 -13 -15 -30.5t-35 -17.5q-8 0 -17 3q-18 -45 -51 -45q-19 0 -31.5 15.5t-12.5 39.5q0 14 5 37h7q-5 -18 -5 -28q0 -15 8.5 -24t20.5 -9q13 0 22.5 11t27.5 42q10 -14 22 -14q11 0 23 13t12 25q0 21 -23 35l6 12q36 -50 36 -65z" />
+ <glyph glyph-name="afii57392" unicode="٠" horiz-adv-x="297"
+ d="M331 404l-111 -124l-106 125l106 122z" />
+ <glyph glyph-name="afii57393" unicode="١" horiz-adv-x="254"
+ d="M210 796q79 -141 101.5 -271.5t22.5 -347.5q-6 -22 -15 -22q-11 0 -20.5 60t-20 141t-41.5 181.5t-77 165.5z" />
+ <glyph glyph-name="afii57394" unicode="٢" horiz-adv-x="427"
+ d="M300 705q22 0 38.5 3.5t28 13.5l18.5 16.5t13 25.5l8 25.5t7 30.5l34 -38q0 -97 -22 -131.5t-97 -34.5q-51 0 -83 23q27 -126 39 -438q-14 -29 -26 -29q-19 0 -29 58.5t-16 138.5t-34.5 180t-78.5 166l60 94q48 -68 72 -86t68 -18z" />
+ <glyph glyph-name="afii57395" unicode="٣" horiz-adv-x="497"
+ d="M144 824l42.5 -54t32 -40.5t22.5 -18t32 -8.5q44 0 57.5 19t20.5 69q7 15 14 15q11 0 16.5 -29.5t12.5 -42.5q9 -19 41 -19q49 0 49 49v5q3 6 11 19t10 13q4 0 13 -49q0 -120 -77 -125q-60 7 -76 52q-30 -38 -46 -48t-46 -10q-8 0 -32 2q23 -95 23 -209q0 -231 -39 -231
+ q-12 0 -27 29q5 97 5 156q-1 29 0 54t-3.5 59t-13.5 70.5t-31 89.5t-54 116z" />
+ <glyph glyph-name="afii57396" unicode="٤" horiz-adv-x="440"
+ d="M353 675q37 0 56.5 5t20.5 5q3 0 3 -4q0 -5 -11 -27q-17 -28 -43.5 -37.5t-98.5 -9.5h-48h-20q13 -62 13 -169q0 -260 -29 -260q-15 0 -18 16q-7 213 -23.5 294.5t-81.5 213.5l46 95l48 -67q7 -19 13 -19q2 0 7 22t14 48t36.5 48t68.5 22q24 0 58 -17t34 -49
+ q0 -12 -14 -12q-28 27 -58 27q-12 0 -28 -3.5t-33.5 -16.5t-17.5 -34q0 -16 7 -36q28 -22 47.5 -28.5t51.5 -6.5z" />
+ <glyph glyph-name="afii57397" unicode="٥" horiz-adv-x="465"
+ d="M145 189q-59 0 -79 36.5t-20 107.5q0 16 42 115q39 98 143 239l-21 29l52 57q87 -128 127 -213.5t43 -188.5v-11q0 -73 -29.5 -121.5t-87.5 -48.5q-60 0 -84 60q-25 -53 -86 -61zM257 661q-69 -98 -117.5 -190.5t-48.5 -140.5q0 -81 55 -81q12 0 21.5 8t21.5 23.5
+ t23 23.5q13 11 40 -16t47 -27q12 0 30 6.5t36.5 28t18.5 53.5q0 50 -34 141t-93 171z" />
+ <glyph glyph-name="afii57398" unicode="٦" horiz-adv-x="466"
+ d="M247 559q27 0 43 5t27.5 13t49.5 26t95 37q3 -45 3 -76q-84 -28 -196.5 -152.5t-179.5 -271.5q-2 -1 -4 -1q-6 0 -6 9q0 46 45.5 155t108.5 185q-86 13 -119.5 42t-33.5 54q0 50 58.5 113t110.5 65h5q36 0 57.5 -14.5t42.5 -48.5q1 -1 1 -3q0 -4 -9 -4q-8 0 -31.5 4.5
+ t-39.5 4.5q-46 0 -79.5 -33t-33.5 -54q0 -22 19.5 -38.5t65.5 -16.5z" />
+ <glyph glyph-name="afii57399" unicode="٧" horiz-adv-x="421"
+ d="M212 268q0 65 -57.5 217t-107.5 198l25 91q113 -148 175 -429q21 283 118 428l23 -90q-31 -45 -67 -161.5t-40 -225.5l-5 -45q-5 -47 -39 -47v-1q-26 12 -26 48q0 2 0.5 8t0.5 9z" />
+ <glyph glyph-name="afii57400" unicode="٨" horiz-adv-x="459"
+ d="M314 592q54 -206 121 -293l-36 -100l-154 441l-151 -441l-38 97q67 86 121 294t68 219q17 -11 69 -217z" />
+ <glyph glyph-name="afii57401" unicode="٩" horiz-adv-x="424"
+ d="M398 165q-133 121 -133 344q0 34 1 53q-51 -9 -88 -9q-55 0 -78 26t-23 60q0 13 3.5 32.5t13 46t24 49t39.5 38t56 15.5q49 0 79.5 -65t35.5 -176q-2 -16 -2 -46q0 -76 23.5 -136t71.5 -122zM142 677q0 -29 19.5 -38t61.5 -9q29 0 47 1q-4 24 -7.5 38.5t-11 31.5t-21 25
+ t-32.5 8q-23 0 -39.5 -19.5t-16.5 -37.5z" />
+ <glyph glyph-name="uni066B" unicode="٫" horiz-adv-x="212"
+ d="M79 183q-24 0 -39.5 23t-15.5 44q0 25 19.5 41t46.5 16q31 0 48.5 -28t17.5 -67q0 -25 -13 -53.5t-36 -47.5l-15 -3q29 48 36 91q-37 -16 -49 -16z" />
+ <glyph glyph-name="uni0674" unicode="ٴ" horiz-adv-x="300"
+ d="M203 970q-4 0 -12 18t-18 18q-13 0 -25.5 -22.5t-12.5 -38.5q0 -11 6 -28t15 -17q5 0 9.5 2t10 6t22 12t38.5 17l-8 -33q-49 -15 -150 -91q26 36 63 70q-26 7 -36 18.5t-10 34.5q0 35 22 64t53 46h5q36 -2 36 -39t-8 -37z" />
+ <glyph glyph-name="afii57506" unicode="پ" horiz-adv-x="926"
+ d="M508 26l-52 -55l-53 55l53 52zM921 277q0 51 -4 84.5t-14.5 53t-15 25t-19.5 18.5l18 64q66 -40 66 -125q0 -5 -1 -13t-1 -13v-176h-724q-55 0 -83.5 21.5t-28.5 76.5q0 79 71 204l10 -8q-52 -101 -52 -143q0 -38 42 -69h736zM600 -83l-52 -55l-53 55l53 52zM693 26
+ l-53 -55l-53 55l53 52z" />
+ <glyph glyph-name="afii57507" unicode="چ" horiz-adv-x="750"
+ d="M673 112l-62 -63l-63 63l63 61zM473 112l-62 -63l-63 63l63 61zM580 -13l-62 -61l-63 61l63 62zM334 506q13 0 111 -16.5t212 -16.5l90 2l-20 -63h-7q-177 0 -298 -51t-198 -158q-54 -77 -54 -156q0 -35 8.5 -67.5t28 -64.5t59 -51t94.5 -19q114 0 313 45l37 -47
+ q-162 -50 -325 -54h-27q-134 13 -182 77q-45 61 -45 83q-8 22 -8 53q0 67 32.5 127.5t95.5 133.5q145 118 242 144q-54 15 -109.5 27t-109.5 12q-51 0 -65 -17l-27 -10q34 34 51 48.5t43.5 26.5t57.5 12z" />
+ <glyph glyph-name="afii57508" unicode="ژ" horiz-adv-x="338"
+ d="M363 587l-52 -50l-53 50l53 49zM285 707l-52 -50l-54 50l54 48zM216 587l-52 -50l-53 50l53 49zM325 447q20 -69 20 -148q0 -22 -5 -58t-6 -46l-128 -241q-49 -72 -103 -84l-104 -23l5 21q18 14 34 24t39 31.5t46.5 49t57 76t71.5 112.5q33 54 33 107q0 45 -18 132z" />
+ <glyph glyph-name="afii57509" unicode="گ" horiz-adv-x="874"
+ d="M948 962l-199 -87q-19 -8 -73.5 -33.5t-54.5 -32.5q0 -10 107 -126l40 -51t31 -41.5t24.5 -38.5t21.5 -43t21 -55.5l24 -74.5q4 -39 4 -75q0 -101 -42 -101h-1l-587 2q-78 0 -128 87q-15 26 -15 89q0 67 20 131l8 -5q-7 -45 -7 -84q0 -77 39.5 -111t137.5 -34h11h529
+ q2 24 2 35q0 121 -125 286l-61 65l-11 -14q-34 23 -86 75q-4 26 -4 38q0 60 45.5 102t171.5 94l163 66zM870 1115v-52l-304 -135q21 45 304 187z" />
+ <glyph glyph-name="uni06CC" unicode="ی" horiz-adv-x="776"
+ d="M714 465q27 0 35.5 -15t8.5 -43q0 -9 -2 -27q-33 26 -66 26q-34 0 -80.5 -43t-46.5 -63q0 -29 80 -29q3 0 19 2t30 2q63 0 63 -37v-4q0 -118 -132 -197q-89 -53 -206 -53q-82 0 -141 17.5t-89 47t-43 60.5t-13 65q0 107 83 222l11 -4q-52 -98 -52 -163t52 -106.5
+ t146 -48.5q302 16 348 109q-2 20 -101 20h-6q-95 0 -95 56q0 65 67 135.5t130 70.5z" />
+ <glyph glyph-name="uni06D4" unicode="۔" horiz-adv-x="176"
+ d="M90 238q10 37 48 46q38 -9 48 -46q-10 -38 -48 -48q-38 10 -48 48z" />
+
+ <!-- presentational forms -->
+ <glyph glyph-name="uniFB56" unicode="پ" horiz-adv-x="926" arabic-form="isolated"
+d="M508 26l-52 -55l-53 55l53 52zM921 277c0 34 -1.33331 62.1667 -4 84.5s-7.5 40 -14.5 53s-12 21.3333 -15 25s-9.5 9.83334 -19.5 18.5l18 64c44 -26.6667 66 -68.3333 66 -125c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.66666 -1 -13v-176h-724
+c-36.6667 0 -64.5 7.16667 -83.5 21.5s-28.5 39.8333 -28.5 76.5c0 52.6667 23.6667 120.667 71 204l10 -8c-34.6667 -67.3333 -52 -115 -52 -143c0 -25.3333 14 -48.3333 42 -69h736zM600 -83l-52 -55l-53 55l53 52zM693 26l-53 -55l-53 55l53 52z" />
+ <glyph glyph-name="uniFB57" unicode="پ" horiz-adv-x="926" arabic-form="terminal"
+ d="M508 26l-52 -55l-53 55l53 52zM921 277c0 34 -1.33331 62.1667 -4 84.5s-7.5 40 -14.5 53s-12 21.3333 -15 25s-9.5 9.83334 -19.5 18.5l18 64c44 -26.6667 66 -68.3333 66 -125c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.66666 -1 -13v-176h-724
+c-36.6667 0 -64.5 7.16667 -83.5 21.5s-28.5 39.8333 -28.5 76.5c0 52.6667 23.6667 120.667 71 204l10 -8c-34.6667 -67.3333 -52 -115 -52 -143c0 -25.3333 14 -48.3333 42 -69h736zM600 -83l-52 -55l-53 55l53 52zM693 26l-53 -55l-53 55l53 52z" />
+ <glyph glyph-name="uniFB58" unicode="پ" horiz-adv-x="308" arabic-form="initial"
+ d="M148 58l-57 -58l-58 58l58 58zM207 -73l-57 -59l-57 59l57 58zM268 58l-57 -58l-58 58l58 58zM256 534c30 -43.3333 45 -93 45 -149v-74c0 -73.3333 -17.3333 -110.333 -52 -111h-252l-9 83h280v11c0 68 -18.6667 120.667 -56 158z" />
+ <glyph glyph-name="uniFB59" unicode="پ" horiz-adv-x="308" arabic-form="medial"
+ d="M148 58l-57 -58l-58 58l58 58zM207 -73l-57 -59l-57 59l57 58zM268 58l-57 -58l-58 58l58 58zM256 534c30 -43.3333 45 -93 45 -149v-74c0 -73.3333 -17.3333 -110.333 -52 -111h-252l-9 83h280v11c0 68 -18.6667 120.667 -56 158z" />
+ <glyph glyph-name="uniFB7A" unicode="چ" horiz-adv-x="750" arabic-form="isolated"
+ d="M673 112l-62 -63l-63 63l63 61zM473 112l-62 -63l-63 63l63 61zM580 -13l-62 -61l-63 61l63 62zM334 506c9.33334 0 46.5 -5.5 111.5 -16.5s135.5 -16.5 211.5 -16.5l90 2l-20 -63h-7c-230.667 0 -396 -69.6667 -496 -209c-36 -51.3333 -54 -103.333 -54 -156
+c0 -23.3333 2.83333 -45.8333 8.5 -67.5c5.66667 -21.6667 15 -43.1667 28 -64.5c13 -21.3333 32.6667 -38.3333 59 -51c26.3333 -12.6667 57.8333 -19 94.5 -19c76 0 180.333 15 313 45l37 -47c-108 -33.3333 -216.333 -51.3333 -325 -54h-27
+c-89.3333 8.66667 -150 34.3333 -182 77c-30 40.6667 -45 68.3333 -45 83c-5.33334 14.6667 -8 32.3333 -8 53c0 44.6667 10.8333 87.1667 32.5 127.5c21.6667 40.3333 53.5 84.8333 95.5 133.5c96.6667 78.6667 177.333 126.667 242 144c-36 10 -72.5 19 -109.5 27
+s-73.5 12 -109.5 12c-34 0 -55.6667 -5.66666 -65 -17l-27 -10c22.6667 22.6667 39.6667 38.8333 51 48.5s25.8333 18.5 43.5 26.5s36.8333 12 57.5 12z" />
+ <glyph glyph-name="uniFB7B" unicode="چ" horiz-adv-x="750" arabic-form="terminal"
+ d="M490 32l-52 -52l-51 52l51 51zM628 401c6 -54.6667 13.3333 -89.3333 22 -104s27.3333 -22 56 -22h50l-3 -81h-40c-20.6667 2 -37.6667 8.83333 -51 20.5s-22.8333 28 -28.5 49s-9.33331 39.5 -11 55.5s-2.5 36.3333 -2.5 61zM333 501c11.3333 0 50 -5.5 116 -16.5
+s134 -16.5 204 -16.5l89 2l-20 -62h-7c-228.667 0 -392.333 -69 -491 -207c-35.3333 -50.6667 -53 -102.333 -53 -155c0 -17.3333 1.33333 -34.1667 4 -50.5c2.66667 -16.3333 8.16667 -33.8333 16.5 -52.5c8.33333 -18.6667 19.3333 -34.8333 33 -48.5s32.5 -25 56.5 -34
+s52 -13.5 84 -13.5c73.3333 0 164.333 11.3333 273 34l67 -36c-107.333 -32 -214.333 -50 -321 -54h-27c-90 9.33333 -150 35 -180 77c-30 40.6667 -45 68 -45 82c-4.66666 13.3333 -7 30.6667 -7 52c0 44.6667 10.6667 87 32 127s52.6667 84 94 132
+c95.3333 77.3333 175 124.667 239 142c-34 9.33334 -70 18 -108 26s-74.3333 12 -109 12c-34 0 -55 -5.33334 -63 -16l-27 -10c32 32 57.8333 54.3333 77.5 67c19.6667 12.6667 43.8333 19 72.5 19zM575 131l-52 -52l-51 52l51 51zM419 131l-52 -52l-51 52l51 51z" />
+ <glyph glyph-name="uniFB7C" unicode="چ" horiz-adv-x="580" arabic-form="initial"
+ d="M271 59l-50 -51l-52 51l52 51zM445 59l-52 -51l-50 51l50 51zM358 -38l-51 -52l-51 52l51 51zM149 354c10.6667 14.6667 21.3333 28.5 32 41.5s20.6667 24.3333 30 34s19.6667 17.3333 31 23s23.3333 8.5 36 8.5c18.6667 0 46.5 -12.8333 83.5 -38.5
+s76.1667 -57.5 117.5 -95.5c20 -23.3333 63 -40.3333 129 -51l2 -76h-590c-15.3333 0 -23 25 -23 75l462 1l-127 90c-15.3333 10.6667 -32 16 -50 16c-22 0 -61 -10.3333 -117 -31z" />
+ <glyph glyph-name="uniFB7D" unicode="چ" horiz-adv-x="580" arabic-form="medial"
+ d="M271 59l-50 -51l-52 51l52 51zM445 59l-52 -51l-50 51l50 51zM358 -38l-51 -52l-51 52l51 51zM149 354c10.6667 14.6667 21.3333 28.5 32 41.5s20.6667 24.3333 30 34s19.6667 17.3333 31 23s23.3333 8.5 36 8.5c18.6667 0 46.5 -12.8333 83.5 -38.5
+s76.1667 -57.5 117.5 -95.5c20 -23.3333 63 -40.3333 129 -51l2 -76h-590c-15.3333 0 -23 25 -23 75l462 1l-127 90c-15.3333 10.6667 -32 16 -50 16c-22 0 -61 -10.3333 -117 -31z" />
+ <glyph glyph-name="uniFB8A" unicode="ژ" horiz-adv-x="338" arabic-form="isolated"
+ d="M363 587l-52 -50l-53 50l53 49zM285 707l-52 -50l-54 50l54 48zM216 587l-52 -50l-53 50l53 49zM325 447c13.3333 -46 20 -95.3333 20 -148c0 -11.3333 -0.333344 -19.6667 -1 -25l-10 -79l-128 -241c-32.6667 -48 -67 -76 -103 -84l-104 -23l5 21
+c12.6667 10 24.6667 18.5 36 25.5c11.3333 7 24.3333 17.6667 39 32c14.6667 14.3333 30 30.6667 46 49c16 18.3333 34.8333 43.5 56.5 75.5s45.1667 69 70.5 111c22 36 33 71.6667 33 107c0 30 -6 74 -18 132z" />
+ <glyph glyph-name="uniFB8B" unicode="ژ" horiz-adv-x="338" arabic-form="terminal"
+ d="M363 587l-52 -50l-53 50l53 49zM285 707l-52 -50l-54 50l54 48zM216 587l-52 -50l-53 50l53 49zM325 447c13.3333 -46 20 -95.3333 20 -148c0 -11.3333 -0.333344 -19.6667 -1 -25l-10 -79l-128 -241c-32.6667 -48 -67 -76 -103 -84l-104 -23l5 21
+c12.6667 10 24.6667 18.5 36 25.5c11.3333 7 24.3333 17.6667 39 32c14.6667 14.3333 30 30.6667 46 49c16 18.3333 34.8333 43.5 56.5 75.5s45.1667 69 70.5 111c22 36 33 71.6667 33 107c0 30 -6 74 -18 132z" />
+ <glyph glyph-name="uniFB92" unicode="گ" horiz-adv-x="874" arabic-form="isolated"
+ d="M142 426c0 -50 12.1667 -87.1667 36.5 -111.5s71.8333 -36.5 142.5 -36.5h9h529c1.33331 16 2 27.6667 2 35c0 80.6667 -41.6667 176 -125 286l-61 65l-11 -14c-20 13.3333 -39.6667 29.6667 -59 49l-27 26c-2.66669 17.3333 -4 30 -4 38c0 40 15.1667 74 45.5 102
+s87.5 59.3333 171.5 94l163 66l-6 -63l-199 -87c-12.6667 -5.33331 -37.1667 -16.5 -73.5 -33.5s-54.5 -27.8333 -54.5 -32.5c0 -6.66669 35.6667 -48.6667 107 -126l40 -51c11.3333 -14 21.6667 -27.8333 31 -41.5s17.5 -26.5 24.5 -38.5s14.1667 -26.3333 21.5 -43
+c7.33331 -16.6667 14.3333 -35.1667 21 -55.5l24 -74.5c2.66669 -26 4 -51 4 -75c0 -67.3333 -14 -101 -42 -101h-1l-587 2c-52 0 -94.6667 29 -128 87c-10 17.3333 -15 47 -15 89c0 44.6667 6.66666 88.3333 20 131l8 -5c-4.66667 -35.3333 -7 -62.3333 -7 -81zM870 1115
+v-52l-304 -135c14 30 115.333 92.3333 304 187z" />
+ <glyph glyph-name="uniFB93" unicode="گ" horiz-adv-x="874" arabic-form="terminal"
+ d="M142 426c0 -50 12.1667 -87.1667 36.5 -111.5s71.8333 -36.5 142.5 -36.5h9h529c1.33331 16 2 27.6667 2 35c0 80.6667 -41.6667 176 -125 286l-61 65l-11 -14c-20 13.3333 -39.6667 29.6667 -59 49l-27 26c-2.66669 17.3333 -4 30 -4 38c0 40 15.1667 74 45.5 102
+s87.5 59.3333 171.5 94l163 66l-6 -63l-199 -87c-12.6667 -5.33331 -37.1667 -16.5 -73.5 -33.5s-54.5 -27.8333 -54.5 -32.5c0 -6.66669 35.6667 -48.6667 107 -126l40 -51c11.3333 -14 21.6667 -27.8333 31 -41.5s17.5 -26.5 24.5 -38.5s14.1667 -26.3333 21.5 -43
+c7.33331 -16.6667 14.3333 -35.1667 21 -55.5l24 -74.5c2.66669 -26 4 -51 4 -75c0 -67.3333 -14 -101 -42 -101h-1l-587 2c-52 0 -94.6667 29 -128 87c-10 17.3333 -15 47 -15 89c0 44.6667 6.66666 88.3333 20 131l8 -5c-4.66667 -35.3333 -7 -62.3333 -7 -81zM870 1115
+v-52l-304 -135c14 30 115.333 92.3333 304 187z" />
+ <glyph glyph-name="uniFB94" unicode="گ" horiz-adv-x="329" arabic-form="initial"
+ d="M398 912l-199 -82c-85.3333 -36 -128 -56.6667 -128 -62s35.6667 -44.6667 107 -118l40 -47.5c11.3333 -13 21.6667 -25.8333 31 -38.5c9.33334 -12.6667 17.5 -24.6667 24.5 -36s14 -25 21 -41s14 -33.5 21 -52.5s15.1667 -42.5 24.5 -70.5
+c2.66666 -24 4 -47.6667 4 -71c0 -62.6667 -14 -94 -42 -94h-1l-306 2l6 78h308c1.33334 13.3333 2 23 2 29c0 72.6667 -41.6667 160.333 -125 263l-61 61l-11 -13c-16.6667 10 -36.3333 25.3333 -59 46l-27 24c-2.66667 17.3333 -4 29.3333 -4 36
+c0 38.6667 15.8333 71.1667 47.5 97.5c31.6667 26.3333 88.1667 55.1667 169.5 86.5l163 62zM354 1077v-50l-304 -130c14 29.3333 115.333 89.3333 304 180z" />
+ <glyph glyph-name="uniFB95" unicode="گ" horiz-adv-x="329" arabic-form="medial"
+ d="M398 912l-199 -82c-85.3333 -36 -128 -56.6667 -128 -62s35.6667 -44.6667 107 -118l40 -47.5c11.3333 -13 21.6667 -25.8333 31 -38.5c9.33334 -12.6667 17.5 -24.6667 24.5 -36s14 -25 21 -41s14 -33.5 21 -52.5s15.1667 -42.5 24.5 -70.5
+c2.66666 -24 4 -47.6667 4 -71c0 -62.6667 -14 -94 -42 -94h-1l-306 2l6 78h308c1.33334 13.3333 2 23 2 29c0 72.6667 -41.6667 160.333 -125 263l-61 61l-11 -13c-16.6667 10 -36.3333 25.3333 -59 46l-27 24c-2.66667 17.3333 -4 29.3333 -4 36
+c0 38.6667 15.8333 71.1667 47.5 97.5c31.6667 26.3333 88.1667 55.1667 169.5 86.5l163 62zM354 1077v-50l-304 -130c14 29.3333 115.333 89.3333 304 180z" />
+ <glyph glyph-name="uniFBFC" unicode="ی" horiz-adv-x="776" arabic-form="isolated"
+ d="M714 465c18 0 29.8333 -5 35.5 -15s8.5 -24.3333 8.5 -43c0 -2 -0.166687 -4.66666 -0.5 -8s-0.5 -5.66666 -0.5 -7l-1 -12c-22 17.3333 -44 26 -66 26c-22.6667 0 -49.5 -14.3333 -80.5 -43s-46.5 -49.6667 -46.5 -63c0 -19.3333 26.6667 -29 80 -29
+c2 0 8.33331 0.666656 19 2s20.6667 2 30 2c42 0 63 -12.3333 63 -37v-4c0 -78.6667 -44 -144.333 -132 -197c-59.3333 -35.3333 -128 -53 -206 -53c-54.6667 0 -101.667 5.83333 -141 17.5c-39.3333 11.6667 -69 27.3333 -89 47c-20 19.6667 -34.3333 39.8333 -43 60.5
+c-8.66667 20.6667 -13 42.3333 -13 65c0 71.3333 27.6667 145.333 83 222l11 -4c-34.6667 -65.3333 -52 -119.667 -52 -163c0 -43.3333 17.3333 -78.8333 52 -106.5c34.6667 -27.6667 83.3333 -43.8333 146 -48.5c201.333 10.6667 317.333 47 348 109
+c-1.33331 13.3333 -35 20 -101 20h-6c-63.3333 0 -95 18.6667 -95 56c0 43.3333 22.3333 88.5 67 135.5s88 70.5 130 70.5z" />
+ <glyph glyph-name="uniFBFD" unicode="ی" horiz-adv-x="700" arabic-form="terminal"
+ d="M370 -14c70 0 130.167 8 180.5 24c50.3333 16 75.5 32.3333 75.5 49v2c0 10 -9 15 -27 15c-1.33331 0 -3.83331 -0.166664 -7.5 -0.5s-6.5 -0.5 -8.5 -0.5h-110c-28 4 -42 20.3333 -42 49c0 2 0.333344 5.16667 1 9.5s1 7.83333 1 10.5c0 38.6667 28 74.6667 84 108
+c30 18 81.3333 27 154 27h50l-1 -77c-8.66669 0 -20.6667 0.166672 -36 0.5s-26.3333 0.5 -33 0.5c-74 0 -123.667 -3.83333 -149 -11.5c-25.3333 -7.66667 -38 -23.1667 -38 -46.5c0 -9.33333 6.33334 -14 19 -14h111c51.3333 0 77 -16.3333 77 -49
+c0 -42.6667 -19 -78 -57 -106s-91 -46.6667 -159 -56c-9.33334 -1.33334 -42.3333 -2 -99 -2c-88 8 -147.167 22.8333 -177.5 44.5c-30.3333 21.6667 -45.8333 56.5 -46.5 104.5v13c0 66 18.3333 135.333 55 208l7 -4c-28 -57.3333 -42 -104.333 -42 -141
+c0 -47.3333 10.6667 -84 32 -110c44.6667 -31.3333 106.667 -47 186 -47z" />
+ <glyph glyph-name="uniFBFE" unicode="ی" horiz-adv-x="304" arabic-form="initial"
+ d="M173 55l-59 -57l-61 57l61 57zM300 55l-59 -57l-61 57l61 57zM286 514c30 -41.3333 45 -88 45 -140v-69c0 -69.3333 -17.3333 -104.333 -52 -105h-252c-32.6667 0 -49 26 -49 78h320v10c0 64 -18.6667 113.667 -56 149z" />
+ <glyph glyph-name="uniFBFF" unicode="ی" horiz-adv-x="304" arabic-form="medial"
+ d="M173 55l-59 -57l-61 57l61 57zM300 55l-59 -57l-61 57l61 57zM286 514c30 -41.3333 45 -88 45 -140v-69c0 -69.3333 -17.3333 -104.333 -52 -105h-252c-32.6667 0 -49 26 -49 78h320v10c0 64 -18.6667 113.667 -56 149z" />
+ <glyph glyph-name="uniFDF2" unicode="ﷲ" horiz-adv-x="640" arabic-form="isolated"
+ d="M918 261c30 0 45 29 45 87c0 73.3333 -3.33331 125 -10 155l-29 132l55 29l19 -162c4 -43.3333 6.66669 -92.6667 8 -148v-20c0 -65.3333 -4.33331 -109 -13 -131s-28.3333 -33 -59 -33c-72.6667 1.33333 -112.333 26.3333 -119 75c-8 -50 -45 -75 -111 -75
+c-40 0 -74.3333 38 -103 114l-34 -30c-36 0.666672 -65 7.66666 -87 21s-33 30 -33 50c0 15.3333 3.16666 29.3333 9.5 42s16.5 24.1667 30.5 34.5s25.1667 18 33.5 23s21.6667 11.6667 40 20s27.8333 12.5 28.5 12.5v45l31 34c2 -51.3333 4.16669 -92.1667 6.5 -122.5
+s5.66669 -57.1667 10 -80.5s10.6667 -40.1667 19 -50.5s18.1667 -17.8333 29.5 -22.5c11.3333 -4.66667 26 -7 44 -7c27.3333 0 44.1667 4.5 50.5 13.5s9.5 27.8333 9.5 56.5c0 96 -8 186.333 -24 271l55 41c2 -156.667 11.3333 -270.667 28 -342c5.33331 -22 23 -33 53 -33
+c1.33331 0 3.33331 0.166656 6 0.5s5 0.5 7 0.5h4zM483 341c9.33334 -15.3333 19.8333 -25.6667 31.5 -31c11.6667 -5.33334 29.8333 -8 54.5 -8c10.6667 0 18.3333 0.333344 23 1v107c-60.6667 -22.6667 -97 -45.6667 -109 -69zM786 782c1.33331 0 5 -5 11 -15
+s13.3333 -15 22 -15c9.33331 6 14 14 14 24c0 5.33331 -1 10.3333 -3 15c2 4 4 6 6 6c2 0.666687 4.33331 -2.66669 7 -10s4 -19.6667 4 -37c0 -10.6667 -1.83331 -18 -5.5 -22s-10.5 -6 -20.5 -6c-7.33331 0 -17 1.66669 -29 5c-11.3333 -14 -21.6667 -21 -31 -21
+c-22.6667 0 -34 13.6667 -34 41c0 12 0.666687 22 2 30h2c2 0.666687 3.66669 -0.666687 5 -4s2.33331 -7 3 -11s2.16669 -7.83331 4.5 -11.5s5.5 -5.5 9.5 -5.5c4.66669 0 11 2.16669 19 6.5s12 10.5 12 18.5c0 3.33331 -0.333313 6 -1 8
+c0.666687 1.33331 1.66669 2.66669 3 4zM790 853c-2.66669 20 -12 42.3333 -28 67l28 30c3.33331 -18.6667 5 -37.6667 5 -57c0 -18 -1.66669 -31.3333 -5 -40z" />
+ <glyph glyph-name="uniFDFC" unicode="﷼" horiz-adv-x="837" arabic-form="isolated"
+ d="M600 292c16 -20 26.6667 -38.3333 32 -55s8 -43.3333 8 -80v-84h-162c-24.6667 0 -41.8333 16.1667 -51.5 48.5c-9.66666 32.3333 -15.5 78.6667 -17.5 139c-2 60.3333 -4.66666 99.8333 -8 118.5c-5.33334 27.3333 -15.3333 48 -30 62l42 67
+c12.6667 -38 20.3333 -90.6667 23 -158l6 -154c5.33334 -42 17.3333 -63 36 -63h137c0 23.3333 -2.5 41.3333 -7.5 54s-16.5 29.3333 -34.5 50zM812 9c0 -33.3333 -19.8333 -68.8333 -59.5 -106.5c-39.6667 -37.6667 -75.8333 -56.5 -108.5 -56.5
+c-26.6667 0 -52 4.66667 -76 14l-73 28l5 13c45.3333 -8.66666 76 -13 92 -13c44 0 87.6667 19 131 57c42.6667 36.6667 64 71.6667 64 105c0 34 -17.3333 69.3333 -52 106l20 54c38 -34.6667 57 -73.6667 57 -117v-84zM638 5l-27 -49l-55 30l26 48zM560 -25l-27 -50l-55 29
+l25 49zM322 415c22.6667 -142 34 -239.667 34 -293c0 -52 -16 -88 -48 -108s-78.6667 -30 -140 -30c-94.6667 0 -142 34.6667 -142 104c0 46 19.6667 104.667 59 176l11 -6c-29.3333 -53.3333 -44 -96.6667 -44 -130c0 -56.6667 38.3333 -85 115 -85
+c36.6667 0 72.6667 6.66667 108 20c35.3333 13.3333 53 30.6667 53 52c0 43.3333 -14 148.333 -42 315l-15 8v8c0 26 6 51 18 75h6c0.666656 -14.6667 6 -24 16 -28l40 -18c0 -20 -3 -42 -9 -66z" />
+ <glyph glyph-name="uniFE70" unicode="ﹰ" arabic-form="isolated"
+ d="M190 1006l-78.5 -38c-19 -9.33331 -32.6667 -18.5 -41 -27.5c-8.33333 -9 -13.8333 -21.1667 -16.5 -36.5l151 74c15.3333 6.66669 26 14 32 22s10 19.6667 12 35zM190 916l-78.5 -38c-19 -9.33331 -32.6667 -18.5 -41 -27.5c-8.33333 -9 -13.8333 -21.1667 -16.5 -36.5
+l151 74c15.3333 6.66669 26 14 32 22s10 19.6667 12 35z" />
+ <glyph glyph-name="uniFE74" unicode="ﹴ" arabic-form="isolated"
+ d="M180 -153l-76 -37c-19.3333 -9.33333 -33.5 -18.8333 -42.5 -28.5s-14.8333 -22.1667 -17.5 -37.5l151 74c15.3333 6.66667 26 14 32 22s10 19.6667 12 35zM180 -63l-76 -37c-19.3333 -9.33334 -33.5 -18.8333 -42.5 -28.5c-9 -9.66667 -14.8333 -22.1667 -17.5 -37.5
+l151 74c15.3333 6.66666 26 14 32 22s10 19.6667 12 35z" />
+ <glyph glyph-name="uniFE76" unicode="ﹶ" arabic-form="isolated"
+ d="M190 1006l-78.5 -38c-19 -9.33331 -32.6667 -18.5 -41 -27.5c-8.33333 -9 -13.8333 -21.1667 -16.5 -36.5l151 74c15.3333 6.66669 26 14 32 22s10 19.6667 12 35z" />
+ <glyph glyph-name="uniFE78" unicode="ﹸ" arabic-form="isolated"
+ d="M219 1010c16 -7.33331 26 -13 30 -17s6 -9.33331 6 -16c0 -7.33331 -2 -15.6667 -6 -25l-50 23c-22.6667 -42.6667 -65 -76 -127 -100h-21c47.3333 26 88.6667 63.3333 124 112l-34 28c-9.33333 8.66669 -14 20.3334 -14 35c0 23.3334 8.66667 43.1666 26 59.5
+s34.3333 24.5 51 24.5c20.6667 0 31 -14 31 -42c0 -19.3334 -5.33333 -46.6666 -16 -82zM201 1052c0 12 -1.66667 20.3334 -5 25s-10.3333 7 -21 7c-9.33333 0 -14 -5.33337 -14 -16c0 -8.66663 13 -22.6666 39 -42c0.666672 6.66663 1 15.3334 1 26z" />
+ <glyph glyph-name="uniFE7A" unicode="ﹺ" arabic-form="isolated"
+ d="M180 -153l-76 -37c-19.3333 -9.33333 -33.5 -18.8333 -42.5 -28.5s-14.8333 -22.1667 -17.5 -37.5l151 74c15.3333 6.66667 26 14 32 22s10 19.6667 12 35z" />
+ <glyph glyph-name="uniFE7C" unicode="ﹼ" arabic-form="isolated"
+ d="M250 1011c-0.666672 -8 -5.83333 -18.1667 -15.5 -30.5s-21.1667 -18.5 -34.5 -18.5c-3.33333 0 -9 1.33331 -17 4c-12 -30 -29 -45 -51 -45c-12.6667 0 -23.1667 5.16669 -31.5 15.5s-12.5 23.5 -12.5 39.5c0 9.33331 1.66666 21.6667 5 37h7
+c-3.33334 -12 -5 -21.3333 -5 -28c0 -10 2.66666 -18 8 -24s12.3333 -9 21 -9c4.66667 0 8.5 0.666687 11.5 2s7.83333 6 14.5 14s14.6667 20.3333 24 37c7.33333 -9.33331 14.6667 -14 22 -14s15 4.33331 23 13s12 17 12 25c0 14 -7.66667 25.6666 -23 35l6 12
+c24 -33.3334 36 -55 36 -65z" />
+ <glyph glyph-name="uniFE81" unicode="آ" horiz-adv-x="321" arabic-form="isolated"
+ d="M155 1055c10 0 23.5 -0.5 40.5 -1.5s29.8333 -1.5 38.5 -1.5c24 0 42.8333 2.83337 56.5 8.5s35.8333 20.5 66.5 44.5l-17 -55c-12 -19.3334 -27 -32.6667 -45 -40s-46 -11 -84 -11c-3.33333 0 -13.6667 0.333313 -31 1s-33 1 -47 1
+c-10.6667 -0.666687 -19.8333 -0.5 -27.5 0.5s-19.3333 -2.83331 -35 -11.5c-15.6667 -8.66669 -35.1667 -23.3333 -58.5 -44c22.6667 45.3333 42 74.8333 58 88.5c16 13.6666 44.3333 20.5 85 20.5zM149 154c18 210.667 27 343 27 397c0 56.6667 -3 143 -9 259l42 89
+c9.33333 -170 14 -309.333 14 -418c0 -114 -24.6667 -223 -74 -327z" />
+ <glyph glyph-name="uniFE8C" unicode="ئ" horiz-adv-x="301" arabic-form="medial"
+ d="M175 653c0 14.6667 7.66667 34.6667 23 60s35 38 59 38h5c27.3333 -1.33331 41.6667 -16 43 -44c-12 8 -23 12 -33 12c-12 0 -24 -5.33331 -36 -16s-18 -20 -18 -28c0 -6 4.83333 -14.8333 14.5 -26.5s20.8333 -17.5 33.5 -17.5c13.3333 0 32.3333 3.33331 57 10
+c-39.3333 -34 -91.6667 -62.3333 -157 -85c11.3333 22 28.6667 38.3333 52 49c-28.6667 14 -43 30 -43 48zM271 509c28.6667 -42.6667 43 -89.6667 43 -141v-70c0 -70.6667 -16.6667 -106 -50 -106h-240c-30.6667 0 -46 26.3333 -46 79h304v11
+c0 64.6667 -17.3333 114.667 -52 150z" />
+ <glyph glyph-name="uniFE8D" unicode="ا" horiz-adv-x="249" arabic-form="isolated"
+ d="M149 154l13.5 182c4.33333 56 7.33333 93.1667 9 111.5s2.83333 35.6667 3.5 52c0.666672 16.3333 1 33.8333 1 52.5c0 56.6667 -3 143 -9 259l42 89c9.33333 -170 14 -309.667 14 -419c0 -114 -24.6667 -223 -74 -327z" />
+ <glyph glyph-name="uniFE8E" unicode="ا" horiz-adv-x="275" arabic-form="terminal"
+ d="M215 699c0 -50 -3 -100.5 -9 -151.5s-9 -91.1667 -9 -120.5c0 -30.6667 4 -64 12 -100c7.33333 -30.6667 36.6667 -46 88 -46h5v-81c-58 0 -98.6667 16.3333 -122 49c-23.3333 32.6667 -36.6667 82 -40 148c10.6667 84.6667 16 171.333 16 260
+c0 57.3333 -1.66667 106.333 -5 147l47 97c11.3333 -68 17 -135.333 17 -202z" />
+ <glyph glyph-name="uniFE8F" unicode="ب" horiz-adv-x="950" arabic-form="isolated"
+ d="M644 2l-52 -54l-52 54l52 53zM926 278c0 43.3333 -3 78 -9 104s-11.5 42.3333 -16.5 49s-13.8333 15.3333 -26.5 26l18 64c43.3333 -27.3333 65 -68.6667 65 -124c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.66666 -1 -13v-174h-718c-37.3333 0 -65.1667 7 -83.5 21
+s-27.5 39.3333 -27.5 76c0 52 23.3333 119.667 70 203l10 -9c-34.6667 -69.3333 -52 -116.333 -52 -141c0 -24 14 -47 42 -69h730z" />
+ <glyph glyph-name="uniFE90" unicode="ب" horiz-adv-x="950" arabic-form="terminal"
+ d="M644 2l-52 -54l-52 54l52 53zM926 278c0 43.3333 -3 78 -9 104s-11.5 42.3333 -16.5 49s-13.8333 15.3333 -26.5 26l18 64c43.3333 -27.3333 65 -68.6667 65 -124c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.66666 -1 -13v-174h-718c-37.3333 0 -65.1667 7 -83.5 21
+s-27.5 39.3333 -27.5 76c0 52 23.3333 119.667 70 203l10 -9c-34.6667 -69.3333 -52 -116.333 -52 -141c0 -24 14 -47 42 -69h730z" />
+ <glyph glyph-name="uniFE91" unicode="ب" horiz-adv-x="293" arabic-form="initial"
+ d="M251 29l-67 -69l-68 69l68 68zM274 525c30 -43.3333 45 -92.6667 45 -148v-73c0 -74 -17.3333 -111 -52 -111h-271l2 83h288v11c0 68 -18.3333 120.333 -55 157z" />
+ <glyph glyph-name="uniFE92" unicode="ب" horiz-adv-x="293" arabic-form="medial"
+ d="M251 29l-67 -69l-68 69l68 68zM274 525c30 -43.3333 45 -92.6667 45 -148v-73c0 -74 -17.3333 -111 -52 -111h-271l2 83h288v11c0 68 -18.3333 120.333 -55 157z" />
+ <glyph glyph-name="uniFE95" unicode="ت" horiz-adv-x="925" arabic-form="isolated"
+ d="M530 574l-65 -66l-67 66l67 67zM740 574l-65 -66l-67 66l67 67zM895 277c0 52.6667 -3 90.3333 -9 113s-19.6667 43 -41 61l17 61c42 -26 63 -65.6667 63 -119c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.33334 -1 -12v-169h-693
+c-34.6667 0 -61.1667 6.83333 -79.5 20.5s-27.5 38.1667 -27.5 73.5c0 50 22.6667 115.333 68 196l9 -8c-33.3333 -66.6667 -50 -112.333 -50 -137c0 -23.3333 13.6667 -45.6667 41 -67h704z" />
+ <glyph glyph-name="uniFE96" unicode="ت" horiz-adv-x="925" arabic-form="terminal"
+ d="M530 574l-65 -66l-67 66l67 67zM740 574l-65 -66l-67 66l67 67zM895 277c0 52.6667 -3 90.3333 -9 113s-19.6667 43 -41 61l17 61c42 -26 63 -65.6667 63 -119c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.33334 -1 -12v-169h-693
+c-34.6667 0 -61.1667 6.83333 -79.5 20.5s-27.5 38.1667 -27.5 73.5c0 50 22.6667 115.333 68 196l9 -8c-33.3333 -66.6667 -50 -112.333 -50 -137c0 -23.3333 13.6667 -45.6667 41 -67h704z" />
+ <glyph glyph-name="uniFE97" unicode="ت" horiz-adv-x="308" arabic-form="initial"
+ d="M150 689l-57 -58l-59 58l59 59zM295 688l-57 -59l-59 59l59 58zM254 533c29.3333 -44 44 -93.3333 44 -148v-74c0 -74 -17 -111 -51 -111h-251l-8 83h277v15c0 65.3333 -18.3333 116.333 -55 153z" />
+ <glyph glyph-name="uniFE98" unicode="ت" horiz-adv-x="308" arabic-form="medial"
+ d="M150 689l-57 -58l-59 58l59 59zM295 688l-57 -59l-59 59l59 58zM254 533c29.3333 -44 44 -93.3333 44 -148v-74c0 -74 -17 -111 -51 -111h-251l-8 83h277v15c0 65.3333 -18.3333 116.333 -55 153z" />
+ <glyph glyph-name="uniFE99" unicode="ث" horiz-adv-x="924" arabic-form="isolated"
+ d="M756 543l-64 -66l-67 66l67 67zM531 543l-64 -66l-67 66l67 67zM643 665l-65 -67l-66 67l66 66zM921 275c0 54 -3 92.6667 -9 116s-20 44 -42 62l17 63c43.3333 -27.3333 65 -68.3333 65 -123c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.66666 -1 -13v-173h-713
+c-36.6667 0 -64.1667 7 -82.5 21s-27.5 39.3333 -27.5 76c0 52 23.3333 119 70 201l9 -8c-34 -68 -51 -114.667 -51 -140c0 -24 14 -47 42 -69h724z" />
+ <glyph glyph-name="uniFE9A" unicode="ث" horiz-adv-x="924" arabic-form="terminal"
+ d="M756 543l-64 -66l-67 66l67 67zM531 543l-64 -66l-67 66l67 67zM643 665l-65 -67l-66 67l66 66zM921 275c0 54 -3 92.6667 -9 116s-20 44 -42 62l17 63c43.3333 -27.3333 65 -68.3333 65 -123c0 -3.33334 -0.333313 -7.66666 -1 -13s-1 -9.66666 -1 -13v-173h-713
+c-36.6667 0 -64.1667 7 -82.5 21s-27.5 39.3333 -27.5 76c0 52 23.3333 119 70 201l9 -8c-34 -68 -51 -114.667 -51 -140c0 -24 14 -47 42 -69h724z" />
+ <glyph glyph-name="uniFE9B" unicode="ث" horiz-adv-x="298" arabic-form="initial"
+ d="M163 675l-61 -61l-61 61l61 62zM293 673l-60 -61l-62 61l62 62zM230 794l-61 -62l-61 62l61 61zM264 532c30 -43.3333 45 -92.6667 45 -148v-73c0 -74 -17.3333 -111 -52 -111h-251l-8 83h278v11c0 68 -18.3333 120.333 -55 157z" />
+ <glyph glyph-name="uniFE9C" unicode="ث" horiz-adv-x="298" arabic-form="medial"
+ d="M163 675l-61 -61l-61 61l61 62zM293 673l-60 -61l-62 61l62 62zM230 794l-61 -62l-61 62l61 61zM264 532c30 -43.3333 45 -92.6667 45 -148v-73c0 -74 -17.3333 -111 -52 -111h-251l-8 83h278v11c0 68 -18.3333 120.333 -55 157z" />
+ <glyph glyph-name="uniFE9D" unicode="ج" horiz-adv-x="750" arabic-form="isolated"
+ d="M330 491c10.6667 0 47.6667 -5.5 111 -16.5s132 -16.5 206 -16.5l88 2l-20 -63h-5c-116 0 -213.833 -17 -293.5 -51s-144.167 -86.6667 -193.5 -158c-36 -50.6667 -54 -103.333 -54 -158c0 -23.3333 2.83333 -45.8333 8.5 -67.5c5.66667 -21.6667 15 -43 28 -64
+s32.1667 -37.8333 57.5 -50.5c25.3333 -12.6667 55.6667 -19 91 -19c72.6667 0 171.667 15.6667 297 47l48 -47c-104.667 -32.6667 -211 -51 -319 -55h-26c-88 9.33333 -147.333 35.3333 -178 78c-30 40.6667 -45 68 -45 82c-4.66666 14 -7 31.6667 -7 53
+c0 45.3333 10.5 87.6667 31.5 127c21 39.3333 52.1667 84 93.5 134c95.3333 78.6667 174.333 126.667 237 144c-37.3333 10 -73.5 19 -108.5 27s-70.1667 12 -105.5 12c-34.6667 0 -56 -5.66666 -64 -17l-27 -10c30.6667 32 56 54.5 76 67.5s44.3333 19.5 73 19.5zM497 104
+l-53 -53l-52 53l52 51z" />
+ <glyph glyph-name="uniFE9E" unicode="ج" horiz-adv-x="750" arabic-form="terminal"
+ d="M497 84l-53 -53l-52 53l52 52zM778 192h-45c-43.3333 4 -71.1667 20.8333 -83.5 50.5c-12.3333 29.6667 -18.8333 78.5 -19.5 146.5l8 -10c4 -23.3333 7.16669 -39.8333 9.5 -49.5s6.5 -20 12.5 -31s14 -18.1667 24 -21.5s23.6667 -5 41 -5h56zM337 494
+c9.33334 0 46.3333 -5.5 111 -16.5c64.6667 -11 136.333 -16.5 215 -16.5l91 1l-21 -63h-5c-119.333 0 -220 -17 -302 -51s-148.333 -87 -199 -159c-36.6667 -52 -55 -104.667 -55 -158c0 -18 1.66667 -35.6667 5 -53c3.33333 -17.3333 9.33333 -35.3333 18 -54
+c8.66667 -18.6667 19.8333 -35 33.5 -49s32 -25.5 55 -34.5s49.1667 -13.5 78.5 -13.5c74.6667 0 180.333 15.6667 317 47l37 -48c-108 -32.6667 -217 -51 -327 -55h-28c-90 9.33333 -151 35.3333 -183 78c-30.6667 41.3333 -46 69.3333 -46 84
+c-4.66666 13.3333 -7 31 -7 53c0 45.3333 10.6667 88.1667 32 128.5c21.3333 40.3333 53.3333 85.1667 96 134.5c98.6667 80.6667 180 129.333 244 146c-16 3.33334 -39.5 9 -70.5 17s-57 13.5 -78 16.5s-44.8333 4.5 -71.5 4.5c-35.3333 0 -57 -5.66666 -65 -17l-28 -10
+c22 22 38.6667 37.8333 50 47.5s26.1667 18.8333 44.5 27.5s37.8333 13 58.5 13z" />
+ <glyph glyph-name="uniFE9F" unicode="ج" horiz-adv-x="574" arabic-form="initial"
+ d="M128 383c68.6667 50.6667 117.667 76 147 76c12.6667 0 33.5 -8.83334 62.5 -26.5s54.8333 -36.5 77.5 -56.5c60.6667 -64 123.333 -97.3333 188 -100l2 -76h-585c-15.3333 0 -23 24.6667 -23 74l458 2l-126 88c-13.3333 8.66666 -31 18.1667 -53 28.5
+s-39.6667 15.5 -53 15.5c-10 0 -41.6667 -8.33334 -95 -25zM357 44l-53 -53l-52 53l52 52z" />
+ <glyph glyph-name="uniFEA0" unicode="ج" horiz-adv-x="574" arabic-form="medial"
+ d="M128 383c68.6667 50.6667 117.667 76 147 76c12.6667 0 33.5 -8.83334 62.5 -26.5s54.8333 -36.5 77.5 -56.5c60.6667 -64 123.333 -97.3333 188 -100l2 -76h-585c-15.3333 0 -23 24.6667 -23 74l458 2l-126 88c-13.3333 8.66666 -31 18.1667 -53 28.5
+s-39.6667 15.5 -53 15.5c-10 0 -41.6667 -8.33334 -95 -25zM357 44l-53 -53l-52 53l52 52z" />
+ <glyph glyph-name="uniFEA1" unicode="ح" horiz-adv-x="748" arabic-form="isolated"
+ d="M330 505c8 0 44.5 -5.33334 109.5 -16s134.833 -16 209.5 -16l89 1l-20 -62h-5c-117.333 0 -216 -16.6667 -296 -50s-145 -85.3333 -195 -156c-36 -50 -54 -101.667 -54 -155c0 -22.6667 2.83333 -44.6667 8.5 -66c5.66667 -21.3333 15 -42.5 28 -63.5
+s32.3333 -38 58 -51c25.6667 -13 56.1667 -19.5 91.5 -19.5c76 0 179.333 15 310 45l37 -46c-106 -32 -212.667 -50 -320 -54h-27c-88.6667 9.33333 -148.667 35 -180 77c-30 39.3333 -45 66.6667 -45 82c-4.66666 13.3333 -7 30.6667 -7 52
+c0 44.6667 10.6667 86.8333 32 126.5c21.3333 39.6667 52.6667 83.5 94 131.5c96.6667 78.6667 176.333 126.333 239 143c-32.6667 8.66666 -68.1667 17 -106.5 25s-75.1667 12 -110.5 12c-33.3333 0 -54.3333 -5.33334 -63 -16l-27 -10
+c34.6667 34.6667 61.8333 57.6667 81.5 69c19.6667 11.3333 42.5 17 68.5 17z" />
+ <glyph glyph-name="uniFEA2" unicode="ح" horiz-adv-x="750" arabic-form="terminal"
+ d="M638 389c4 -23.3333 7.16669 -39.8333 9.5 -49.5s6.5 -20 12.5 -31s14 -18.1667 24 -21.5s23.6667 -5 41 -5h56l-3 -80h-45c-18 2 -33.6667 7.16667 -47 15.5s-23.5 18 -30.5 29s-12.5 25.1667 -16.5 42.5s-6.5 33.1667 -7.5 47.5s-1.5 31.8333 -1.5 52.5h8zM337 494
+c9.33334 0 46.3333 -5.5 111 -16.5c64.6667 -11 136.333 -16.5 215 -16.5l91 1l-21 -63h-5c-119.333 0 -220 -17 -302 -51s-148.333 -87 -199 -159c-36.6667 -52 -55 -104.667 -55 -158c0 -22.6667 2.83333 -45 8.5 -67s15.1667 -43.8333 28.5 -65.5s33 -39 59 -52
+s57 -19.5 93 -19.5c74 0 176.667 15.6667 308 47l37 -58c-102 -26 -207.667 -41 -317 -45h-28c-90 9.33333 -151 35.3333 -183 78c-30.6667 41.3333 -46 69.3333 -46 84c-4.66666 13.3333 -7 31 -7 53c0 45.3333 10.6667 88.1667 32 128.5
+c21.3333 40.3333 53.3333 85.1667 96 134.5c98.6667 80.6667 180 129.333 244 146c-16 3.33334 -39.5 9 -70.5 17s-57 13.5 -78 16.5s-44.8333 4.5 -71.5 4.5c-35.3333 0 -57 -5.66666 -65 -17l-28 -10c22 22 38.6667 37.8333 50 47.5s26.1667 18.8333 44.5 27.5
+s37.8333 13 58.5 13z" />
+ <glyph glyph-name="uniFEA3" unicode="ح" horiz-adv-x="600" arabic-form="initial"
+ d="M148 353c18.6667 25.3333 32.6667 43.6667 42 55s22 22.6667 38 34s32 17 48 17c19.3333 0 47.6667 -12.8333 85 -38.5s75.6667 -57.1667 115 -94.5c20 -23.3333 62.6667 -40 128 -50l2 -76h-586c-15.3333 0 -23 24.6667 -23 74l459 2l-126 88
+c-15.3333 10.6667 -32 16 -50 16c-23.3333 0 -62 -10 -116 -30z" />
+ <glyph glyph-name="uniFEA4" unicode="ح" horiz-adv-x="600" arabic-form="medial"
+ d="M148 353c18.6667 25.3333 32.6667 43.6667 42 55s22 22.6667 38 34s32 17 48 17c19.3333 0 47.6667 -12.8333 85 -38.5s75.6667 -57.1667 115 -94.5c20 -23.3333 62.6667 -40 128 -50l2 -76h-586c-15.3333 0 -23 24.6667 -23 74l459 2l-126 88
+c-15.3333 10.6667 -32 16 -50 16c-23.3333 0 -62 -10 -116 -30z" />
+ <glyph glyph-name="uniFEA5" unicode="خ" horiz-adv-x="701" arabic-form="isolated"
+ d="M308 503c11.3333 0 46.6667 -5.16666 106 -15.5s124.333 -15.5 195 -15.5l84 2l-19 -59h-5c-216.667 0 -371 -65 -463 -195c-34 -46.6667 -51 -95 -51 -145c0 -21.3333 2.66667 -42 8 -62s13.8333 -40 25.5 -60s29.3333 -36.1667 53 -48.5
+c23.6667 -12.3333 51.8333 -18.5 84.5 -18.5c70 0 171 19.6667 303 59l29 -60c-100 -30 -200.667 -47 -302 -51h-25c-84.6667 8.66667 -141.333 32.6667 -170 72c-28 38 -42 64 -42 78c-4.66666 12 -7 28.3333 -7 49c0 44 10.1667 84.6667 30.5 122
+c20.3333 37.3333 49.8333 78 88.5 122c91.3333 73.3333 166.333 118 225 134c-32 8.66666 -66.1667 16.6667 -102.5 24s-70.8333 11 -103.5 11c-30.6667 0 -50 -5 -58 -15l-25 -9c30 30 54.3333 51 73 63c18.6667 12 41.3333 18 68 18zM379 680l-44 -44l-43 44l43 43z" />
+ <glyph glyph-name="uniFEA6" unicode="خ" horiz-adv-x="775" arabic-form="terminal"
+ d="M474 696l-54 -54l-53 54l53 53zM790 201h-45c-40.6667 4 -68.3333 18.6667 -83 44c-14.6667 25.3333 -22.3333 74.3333 -23 147l9 -11c6.66669 -44 14.8333 -73 24.5 -87s30.8333 -21 63.5 -21h57zM341 499c10.6667 0 49.3333 -5.66666 116 -17
+c66.6667 -11.3333 138.667 -17 216 -17l92 2l-20 -65h-5c-121.333 0 -223.833 -17.5 -307.5 -52.5c-83.6667 -35 -151.833 -88.8333 -204.5 -161.5c-36.6667 -52.6667 -55 -106.667 -55 -162c0 -17.3333 1.33333 -34.3333 4 -51c2.66667 -16.6667 8.33333 -34.8333 17 -54.5
+c8.66667 -19.6667 20 -36.6667 34 -51c14 -14.3333 33.1667 -26.3333 57.5 -36s52.5 -14.5 84.5 -14.5c78.6667 0 185.667 16.3333 321 49l36 -51c-112 -33.3333 -223 -52 -333 -56h-28c-91.3333 9.33333 -153.667 36 -187 80c-31.3333 42 -47 70.3333 -47 85
+c-4.66666 14 -7 32.3333 -7 55c0 46.6667 11 90.6667 33 132c22 41.3333 54.6667 86.6667 98 136c99.3333 81.3333 182 131 248 149c-16 3.33334 -39.1667 8.83334 -69.5 16.5s-56.8333 13.3333 -79.5 17s-48 5.5 -76 5.5c-35.3333 0 -57.3333 -5.66666 -66 -17l-28 -11
+c23.3333 23.3333 40.8333 40 52.5 50s26.6667 19.1667 45 27.5s37.8333 12.5 58.5 12.5z" />
+ <glyph glyph-name="uniFEA7" unicode="خ" horiz-adv-x="596" arabic-form="initial"
+ d="M320 618l-50 -49l-48 49l48 48zM147 351c9.33333 13.3333 19.1667 26.3333 29.5 39s20 23.8333 29 33.5s19.3333 17.5 31 23.5s23.8333 9 36.5 9c38 0 104 -44 198 -132c19.3333 -22.6667 62 -39 128 -49l1 -75h-580c-15.3333 0 -23 24.3333 -23 73l455 2l-91 64.5
+c-22 15 -38.6667 25.1667 -50 30.5s-22.6667 8 -34 8c-23.3333 0 -61.6667 -10 -115 -30z" />
+ <glyph glyph-name="uniFEA8" unicode="خ" horiz-adv-x="596" arabic-form="medial"
+ d="M320 618l-50 -49l-48 49l48 48zM147 351c9.33333 13.3333 19.1667 26.3333 29.5 39s20 23.8333 29 33.5s19.3333 17.5 31 23.5s23.8333 9 36.5 9c38 0 104 -44 198 -132c19.3333 -22.6667 62 -39 128 -49l1 -75h-580c-15.3333 0 -23 24.3333 -23 73l455 2l-91 64.5
+c-22 15 -38.6667 25.1667 -50 30.5s-22.6667 8 -34 8c-23.3333 0 -61.6667 -10 -115 -30z" />
+ <glyph glyph-name="uniFEA9" unicode="د" horiz-adv-x="397" arabic-form="isolated"
+ d="M382 278c-4 16.6667 -6.5 31 -7.5 43s-3.16666 23.3333 -6.5 34s-5.83334 19.6667 -7.5 27s-5 14.8333 -10 22.5s-9.66666 14.1667 -14 19.5s-10.8333 11.3333 -19.5 18s-17.6667 13.1667 -27 19.5l-36 23.5l2 79c14.6667 -4.66669 26.6667 -9 36 -13
+s22.6667 -12.6667 40 -26c17.3333 -13.3333 31.6667 -29.3333 43 -48s22.1667 -45.3333 32.5 -80s16.8333 -74.3333 19.5 -119c0 -52 -18.6667 -78 -56 -78h-202c-36.6667 0 -55 32 -55 96v21l12 1c2.66667 -25.3333 12 -38.6667 28 -40h228z" />
+ <glyph glyph-name="uniFEAA" unicode="د" horiz-adv-x="397" arabic-form="terminal"
+ d="M382 278c-4 16.6667 -6.5 31 -7.5 43s-3.16666 23.3333 -6.5 34s-5.83334 19.6667 -7.5 27s-5 14.8333 -10 22.5s-9.66666 14.1667 -14 19.5s-10.8333 11.3333 -19.5 18s-17.6667 13.1667 -27 19.5l-36 23.5l2 79c14.6667 -4.66669 26.6667 -9 36 -13
+s22.6667 -12.6667 40 -26c17.3333 -13.3333 31.6667 -29.3333 43 -48s22.1667 -45.3333 32.5 -80s16.8333 -74.3333 19.5 -119c0 -52 -18.6667 -78 -56 -78h-202c-36.6667 0 -55 32 -55 96v21l12 1c2.66667 -25.3333 12 -38.6667 28 -40h228z" />
+ <glyph glyph-name="uniFEAB" unicode="ذ" horiz-adv-x="399" arabic-form="isolated"
+ d="M303 725l-57 -57l-55 57l55 55zM378 277c-6 23.3333 -9.33334 42.3333 -10 57s-3.5 28.3333 -8.5 41l-12 30c-3 7.33334 -9.33334 15.3333 -19 24s-19.6667 16.6667 -30 24s-25.8333 17 -46.5 29l2 78c14 -4.66669 25.6667 -9 35 -13s22.6667 -12.6667 40 -26
+c17.3333 -13.3333 31.5 -29.1667 42.5 -47.5s21.6667 -44.6667 32 -79s16.8333 -73.5 19.5 -117.5c0 -51.3333 -18.3333 -77 -55 -77h-200c-36 0 -54 31.6667 -54 95v20l12 2c2.66667 -25.3333 12 -38.6667 28 -40h224z" />
+ <glyph glyph-name="uniFEAC" unicode="ذ" horiz-adv-x="399" arabic-form="terminal"
+ d="M303 725l-57 -57l-55 57l55 55zM378 277c-6 23.3333 -9.33334 42.3333 -10 57s-3.5 28.3333 -8.5 41l-12 30c-3 7.33334 -9.33334 15.3333 -19 24s-19.6667 16.6667 -30 24s-25.8333 17 -46.5 29l2 78c14 -4.66669 25.6667 -9 35 -13s22.6667 -12.6667 40 -26
+c17.3333 -13.3333 31.5 -29.1667 42.5 -47.5s21.6667 -44.6667 32 -79s16.8333 -73.5 19.5 -117.5c0 -51.3333 -18.3333 -77 -55 -77h-200c-36 0 -54 31.6667 -54 95v20l12 2c2.66667 -25.3333 12 -38.6667 28 -40h224z" />
+ <glyph glyph-name="uniFEAD" unicode="ر" horiz-adv-x="328" arabic-form="isolated"
+ d="M325 447c13.3333 -46 20 -95.3333 20 -148c0 -14.6667 -1.66666 -34 -5 -58s-5.33334 -39.3333 -6 -46l-128 -241c-32 -48 -66.3333 -76 -103 -84l-104 -23l5 21c55.3333 32.6667 90.6667 59.6667 106 81l69 100c46 66.6667 75.1667 113.5 87.5 140.5
+c12.3333 27 18.5 53.1667 18.5 78.5c0 30 -6 74 -18 132z" />
+ <glyph glyph-name="uniFEAE" unicode="ر" horiz-adv-x="328" arabic-form="terminal"
+ d="M325 447c13.3333 -46 20 -95.3333 20 -148c0 -14.6667 -1.66666 -34 -5 -58s-5.33334 -39.3333 -6 -46l-128 -241c-32 -48 -66.3333 -76 -103 -84l-104 -23l5 21c55.3333 32.6667 90.6667 59.6667 106 81l69 100c46 66.6667 75.1667 113.5 87.5 140.5
+c12.3333 27 18.5 53.1667 18.5 78.5c0 30 -6 74 -18 132z" />
+ <glyph glyph-name="uniFEAF" unicode="ز" horiz-adv-x="331" arabic-form="isolated"
+ d="M326 601l-56 -56l-59 56l59 53zM325 447c13.3333 -46 20 -95.3333 20 -148c0 -14.6667 -1.66666 -34 -5 -58s-5.33334 -39.3333 -6 -46l-128 -241c-28.6667 -35.3333 -63 -63.3333 -103 -84l-104 -23l5 21c54 38.6667 89.3333 67.3333 106 86
+c48.6667 58 90 116.5 124 175.5s51 105.167 51 138.5c0 30 -6 74 -18 132z" />
+ <glyph glyph-name="uniFEB0" unicode="ز" horiz-adv-x="331" arabic-form="terminal"
+ d="M326 648l-63 -63l-67 63l67 60zM325 447c13.3333 -46 20 -95.3333 20 -148c0 -14.6667 -1.66666 -34 -5 -58s-5.33334 -39.3333 -6 -46l-128 -241c-28.6667 -35.3333 -63 -63.3333 -103 -84l-104 -23l5 21c54 38.6667 89.3333 67.3333 106 86
+c48.6667 58 90 116.5 124 175.5s51 105.167 51 138.5c0 30 -6 74 -18 132z" />
+ <glyph glyph-name="uniFEB1" unicode="س" horiz-adv-x="951" arabic-form="isolated"
+ d="M882 274c35.3333 0 53 6.33334 53 19c0 17.3333 -13.3333 56 -40 116l23 36c30 -67.3333 45 -118.333 45 -153c0 -36.6667 -6.83331 -60.5 -20.5 -71.5s-34.1667 -16.5 -61.5 -16.5h-19c-21.3333 1.33333 -43 12 -65 32c-16.6667 -22.6667 -37 -34 -61 -34
+c-38.6667 0 -74.3333 -0.333328 -107 -1c0 -30 -2.66669 -56.5 -8 -79.5s-11.5 -41 -18.5 -54s-17.6667 -24.8333 -32 -35.5c-14.3333 -10.6667 -26.1667 -18.1667 -35.5 -22.5c-9.33331 -4.33333 -23.6667 -10.1667 -43 -17.5c-42 -16.6667 -92.6667 -25 -152 -25h-33
+c-22.6667 1.33333 -42.8333 4 -60.5 8c-17.6667 4 -36.8333 11 -57.5 21s-36.6667 25.8333 -48 47.5c-11.3333 21.6667 -17 48.1667 -17 79.5c0 42.6667 27.3333 117.333 82 224l13 -23c-44.6667 -69.3333 -67 -122 -67 -158c0 -48 9.66667 -80.8333 29 -98.5
+c19.3333 -17.6667 52.3333 -30.1667 99 -37.5c17.3333 -3.33333 38.6667 -5 64 -5c42 0 86.1667 6.83333 132.5 20.5c46.3333 13.6667 74.5 27.1667 84.5 40.5c20 32 30 71.6667 30 119s-14 87 -42 119l33 72c21.3333 -37.3333 34.3333 -77.3333 39 -120h107
+c26.6667 0 40 23 40 69v15l13 7c8.66669 -36.6667 19 -61.3333 31 -74s35.3333 -19 70 -19z" />
+ <glyph glyph-name="uniFEB2" unicode="س" horiz-adv-x="951" arabic-form="terminal"
+ d="M882 274c35.3333 0 53 6.33334 53 19c0 17.3333 -13.3333 56 -40 116l23 36c30 -67.3333 45 -118.333 45 -153c0 -36.6667 -6.83331 -60.5 -20.5 -71.5s-34.1667 -16.5 -61.5 -16.5h-19c-21.3333 1.33333 -43 12 -65 32c-16.6667 -22.6667 -37 -34 -61 -34
+c-38.6667 0 -74.3333 -0.333328 -107 -1c0 -30 -2.66669 -56.5 -8 -79.5s-11.5 -41 -18.5 -54s-17.6667 -24.8333 -32 -35.5c-14.3333 -10.6667 -26.1667 -18.1667 -35.5 -22.5c-9.33331 -4.33333 -23.6667 -10.1667 -43 -17.5c-42 -16.6667 -92.6667 -25 -152 -25h-33
+c-22.6667 1.33333 -42.8333 4 -60.5 8c-17.6667 4 -36.8333 11 -57.5 21s-36.6667 25.8333 -48 47.5c-11.3333 21.6667 -17 48.1667 -17 79.5c0 42.6667 27.3333 117.333 82 224l13 -23c-44.6667 -69.3333 -67 -122 -67 -158c0 -48 9.66667 -80.8333 29 -98.5
+c19.3333 -17.6667 52.3333 -30.1667 99 -37.5c17.3333 -3.33333 38.6667 -5 64 -5c42 0 86.1667 6.83333 132.5 20.5c46.3333 13.6667 74.5 27.1667 84.5 40.5c20 32 30 71.6667 30 119s-14 87 -42 119l33 72c21.3333 -37.3333 34.3333 -77.3333 39 -120h107
+c26.6667 0 40 23 40 69v15l13 7c8.66669 -36.6667 19 -61.3333 31 -74s35.3333 -19 70 -19z" />
+ <glyph glyph-name="uniFEB3" unicode="س" horiz-adv-x="600" arabic-form="initial"
+ d="M523 272c22.6667 0 37.8333 2 45.5 6s11.5 12.3333 11.5 25c0 17.3333 -17.3333 53 -52 107l23 54c38 -54 57 -95.6667 57 -125v-83c0 -24 -4 -39.3333 -12 -46s-26.3333 -10 -55 -10c-30 0 -55 12.6667 -75 38c-22 -25.3333 -41.3333 -38 -58 -38h-83
+c-19.3333 0 -38 12.6667 -56 38c-18 -25.3333 -37 -38 -57 -38h-197c-10 0 -17 25 -21 75c148 0 228.667 1 242 3c14.6667 2.66666 22 14 22 34c0 14 -5.33333 38.6667 -16 74l14 19c7.33334 -29.3333 12.5 -52.8333 15.5 -70.5s8 -31.1667 15 -40.5
+s15.6667 -15.3333 26 -18s26.5 -4 48.5 -4c50.6667 0 76 14.3333 76 43c0 16.6667 -6 40.6667 -18 72l9 18c14 -42.6667 25.5 -73.1667 34.5 -91.5s17.5 -29.8333 25.5 -34.5s19.6667 -7 35 -7z" />
+ <glyph glyph-name="uniFEB4" unicode="س" horiz-adv-x="600" arabic-form="medial"
+ d="M523 272c22.6667 0 37.8333 2 45.5 6s11.5 12.3333 11.5 25c0 17.3333 -17.3333 53 -52 107l23 54c38 -54 57 -95.6667 57 -125v-83c0 -24 -4 -39.3333 -12 -46s-26.3333 -10 -55 -10c-30 0 -55 12.6667 -75 38c-22 -25.3333 -41.3333 -38 -58 -38h-83
+c-19.3333 0 -38 12.6667 -56 38c-18 -25.3333 -37 -38 -57 -38h-197c-10 0 -17 25 -21 75c148 0 228.667 1 242 3c14.6667 2.66666 22 14 22 34c0 14 -5.33333 38.6667 -16 74l14 19c7.33334 -29.3333 12.5 -52.8333 15.5 -70.5s8 -31.1667 15 -40.5
+s15.6667 -15.3333 26 -18s26.5 -4 48.5 -4c50.6667 0 76 14.3333 76 43c0 16.6667 -6 40.6667 -18 72l9 18c14 -42.6667 25.5 -73.1667 34.5 -91.5s17.5 -29.8333 25.5 -34.5s19.6667 -7 35 -7z" />
+ <glyph glyph-name="uniFEB5" unicode="ش" horiz-adv-x="949" arabic-form="isolated"
+ d="M876 272c32.6667 0 49 6.66666 49 20c0 17.3333 -13 55 -39 113l23 36c29.3333 -66 44 -116.333 44 -151c0 -33.3333 -6.16669 -56.1667 -18.5 -68.5s-30.5 -18.5 -54.5 -18.5c-4.66669 -0.666672 -10.3333 -0.833328 -17 -0.5s-13.3333 1.16667 -20 2.5
+s-14.8333 4.5 -24.5 9.5s-19.5 11.8333 -29.5 20.5c-16.6667 -22 -36.3333 -33 -59 -33c-39.3333 0 -75 -0.333328 -107 -1c0 -36.6667 -3 -67.1667 -9 -91.5c-6 -24.3333 -16.5 -43.8333 -31.5 -58.5c-15 -14.6667 -28.3333 -25.1667 -40 -31.5
+c-11.6667 -6.33333 -30.1667 -14.5 -55.5 -24.5c-40 -16.6667 -89.6667 -25 -149 -25h-33c-17.3333 0.666666 -33 2.16667 -47 4.5s-29.8333 6.83333 -47.5 13.5c-17.6667 6.66667 -32.3333 15.1667 -44 25.5c-11.6667 10.3333 -21.6667 25 -30 44s-12.5 41.1667 -12.5 66.5
+c0 42 27 115.333 81 220l13 -23c-44 -67.3333 -66 -119 -66 -155v-2c0 -46.6667 9.5 -78.5 28.5 -95.5s51.5 -29.1667 97.5 -36.5c17.3333 -3.33333 38.3333 -5 63 -5c41.3333 0 85.3333 6.83333 132 20.5c46.6667 13.6667 74.3333 27.1667 83 40.5
+c19.3333 29.3333 29 69 29 119c0 46 -13.6667 84 -41 114l33 72c20 -37.3333 32.6667 -76.6667 38 -118h106c26.6667 0 40 22.6667 40 68v14l13 7c8 -36.6667 18 -61.1667 30 -73.5s36 -18.5 72 -18.5zM855 553l-47 -45l-49 45l49 45zM774 656l-47 -46l-49 46l49 44z
+M691 553l-47 -45l-49 45l49 45z" />
+ <glyph glyph-name="uniFEB6" unicode="ش" horiz-adv-x="949" arabic-form="terminal"
+ d="M876 272c32.6667 0 49 6.66666 49 20c0 17.3333 -13 55 -39 113l23 36c29.3333 -66 44 -116.333 44 -151c0 -33.3333 -6.16669 -56.1667 -18.5 -68.5s-30.5 -18.5 -54.5 -18.5c-4.66669 -0.666672 -10.3333 -0.833328 -17 -0.5s-13.3333 1.16667 -20 2.5
+s-14.8333 4.5 -24.5 9.5s-19.5 11.8333 -29.5 20.5c-16.6667 -22 -36.3333 -33 -59 -33c-39.3333 0 -75 -0.333328 -107 -1c0 -36.6667 -3 -67.1667 -9 -91.5c-6 -24.3333 -16.5 -43.8333 -31.5 -58.5c-15 -14.6667 -28.3333 -25.1667 -40 -31.5
+c-11.6667 -6.33333 -30.1667 -14.5 -55.5 -24.5c-40 -16.6667 -89.6667 -25 -149 -25h-33c-17.3333 0.666666 -33 2.16667 -47 4.5s-29.8333 6.83333 -47.5 13.5c-17.6667 6.66667 -32.3333 15.1667 -44 25.5c-11.6667 10.3333 -21.6667 25 -30 44s-12.5 41.1667 -12.5 66.5
+c0 42 27 115.333 81 220l13 -23c-44 -67.3333 -66 -119 -66 -155v-2c0 -46.6667 9.5 -78.5 28.5 -95.5s51.5 -29.1667 97.5 -36.5c17.3333 -3.33333 38.3333 -5 63 -5c41.3333 0 85.3333 6.83333 132 20.5c46.6667 13.6667 74.3333 27.1667 83 40.5
+c19.3333 29.3333 29 69 29 119c0 46 -13.6667 84 -41 114l33 72c20 -37.3333 32.6667 -76.6667 38 -118h106c26.6667 0 40 22.6667 40 68v14l13 7c8 -36.6667 18 -61.1667 30 -73.5s36 -18.5 72 -18.5zM855 553l-47 -45l-49 45l49 45zM774 656l-47 -46l-49 46l49 44z
+M691 553l-47 -45l-49 45l49 45z" />
+ <glyph glyph-name="uniFEB7" unicode="ش" horiz-adv-x="649" arabic-form="initial"
+ d="M570 280c21.3333 0 37.3333 2 48 6s16 12.6667 16 26c0 20 -19 59.3333 -57 118l24 60c42 -58.6667 63 -104.333 63 -137v-91c0 -26 -4.16669 -42.6667 -12.5 -50s-28.5 -11 -60.5 -11c-32.6667 0 -60 13.6667 -82 41c-24 -27.3333 -45 -41 -63 -41h-91
+c-20.6667 0 -41 13.6667 -61 41c-19.3333 -27.3333 -40 -41 -62 -41h-215c-10.6667 0 -18.3333 27.3333 -23 82c162 0 250 1 264 3c16 2.66666 24 15.3333 24 38c0 19.3333 -5.66666 46 -17 80l14 21c8.66666 -32.6667 14.5 -58.5 17.5 -77.5s8.5 -33.5 16.5 -43.5
+s17.5 -16.5 28.5 -19.5s28.8333 -4.5 53.5 -4.5c55.3333 0 83 16 83 48c0 17.3333 -6.66666 43.3333 -20 78l10 19c20 -62.6667 35.3333 -102.5 46 -119.5c10.6667 -17 29.3333 -25.5 56 -25.5zM585 648l-55 -53l-56 53l56 51zM491 767l-55 -53l-56 53l56 51zM395 648
+l-54 -53l-57 53l57 51z" />
+ <glyph glyph-name="uniFEB8" unicode="ش" horiz-adv-x="649" arabic-form="medial"
+ d="M570 280c21.3333 0 37.3333 2 48 6s16 12.6667 16 26c0 20 -19 59.3333 -57 118l24 60c42 -58.6667 63 -104.333 63 -137v-91c0 -26 -4.16669 -42.6667 -12.5 -50s-28.5 -11 -60.5 -11c-32.6667 0 -60 13.6667 -82 41c-24 -27.3333 -45 -41 -63 -41h-91
+c-20.6667 0 -41 13.6667 -61 41c-19.3333 -27.3333 -40 -41 -62 -41h-215c-10.6667 0 -18.3333 27.3333 -23 82c162 0 250 1 264 3c16 2.66666 24 15.3333 24 38c0 19.3333 -5.66666 46 -17 80l14 21c8.66666 -32.6667 14.5 -58.5 17.5 -77.5s8.5 -33.5 16.5 -43.5
+s17.5 -16.5 28.5 -19.5s28.8333 -4.5 53.5 -4.5c55.3333 0 83 16 83 48c0 17.3333 -6.66666 43.3333 -20 78l10 19c20 -62.6667 35.3333 -102.5 46 -119.5c10.6667 -17 29.3333 -25.5 56 -25.5zM585 648l-55 -53l-56 53l56 51zM491 767l-55 -53l-56 53l56 51zM395 648
+l-54 -53l-57 53l57 51z" />
+ <glyph glyph-name="uniFEB9" unicode="ص" horiz-adv-x="949" arabic-form="isolated"
+ d="M832 466c13.3333 0 26 -1.66666 38 -5s24.3333 -9.33334 37 -18s22.6667 -22.3333 30 -41s11 -41 11 -67c0 -22 -2.33331 -44.3333 -7 -67l-15 -34v-1c0 -20.6667 -62.3333 -31 -187 -31l-150 -1c-0.666687 -44.6667 -7.16669 -82.1667 -19.5 -112.5
+c-12.3333 -30.3333 -30.3333 -53.3333 -54 -69c-23.6667 -15.6667 -49.1667 -26.6667 -76.5 -33c-27.3333 -6.33333 -59.6667 -9.5 -97 -9.5c-141.333 0 -212 59 -212 177c2.66667 74 14.3333 139.667 35 197l18 -6c-18.6667 -52.6667 -28 -103.333 -28 -152
+c0 -50.6667 13.5 -89.8333 40.5 -117.5c27 -27.6667 76.1667 -42.5 147.5 -44.5c43.3333 1.33333 80.3333 7.5 111 18.5s53.5 25.1667 68.5 42.5s25.6667 34.8333 32 52.5c6.33331 17.6667 9.5 36.5 9.5 56.5c0 47.3333 -21 95.3333 -63 144l34 72
+c29.3333 -70 49 -113.667 59 -131l120 120c38.6667 36.6667 74.3333 56.6667 107 60h11zM895 323c0 54.6667 -28 82 -84 82c-54.6667 0 -115.667 -43.6667 -183 -131c4 0 10.3333 -0.166656 19 -0.5s15.3333 -0.5 20 -0.5c19.3333 0 74 1.66666 164 5
+c42.6667 11.3333 64 26.3333 64 45z" />
+ <glyph glyph-name="uniFEBA" unicode="ص" horiz-adv-x="949" arabic-form="terminal"
+ d="M832 466c13.3333 0 26 -1.66666 38 -5s24.3333 -9.33334 37 -18s22.6667 -22.3333 30 -41s11 -41 11 -67c0 -22 -2.33331 -44.3333 -7 -67l-15 -34v-1c0 -20.6667 -62.3333 -31 -187 -31l-150 -1c-0.666687 -44.6667 -7.16669 -82.1667 -19.5 -112.5
+c-12.3333 -30.3333 -30.3333 -53.3333 -54 -69c-23.6667 -15.6667 -49.1667 -26.6667 -76.5 -33c-27.3333 -6.33333 -59.6667 -9.5 -97 -9.5c-141.333 0 -212 59 -212 177c2.66667 74 14.3333 139.667 35 197l18 -6c-18.6667 -52.6667 -28 -103.333 -28 -152
+c0 -50.6667 13.5 -89.8333 40.5 -117.5c27 -27.6667 76.1667 -42.5 147.5 -44.5c43.3333 1.33333 80.3333 7.5 111 18.5s53.5 25.1667 68.5 42.5s25.6667 34.8333 32 52.5c6.33331 17.6667 9.5 36.5 9.5 56.5c0 47.3333 -21 95.3333 -63 144l34 72
+c29.3333 -70 49 -113.667 59 -131l120 120c38.6667 36.6667 74.3333 56.6667 107 60h11zM895 323c0 54.6667 -28 82 -84 82c-54.6667 0 -115.667 -43.6667 -183 -131c4 0 10.3333 -0.166656 19 -0.5s15.3333 -0.5 20 -0.5c19.3333 0 74 1.66666 164 5
+c42.6667 11.3333 64 26.3333 64 45z" />
+ <glyph glyph-name="uniFEBB" unicode="ص" horiz-adv-x="823" arabic-form="initial"
+ d="M724 492c74 -2 114.333 -64.6667 121 -188c0 -69.3333 -14.3333 -104 -43 -104h-416c-32 0 -65 16 -99 48c-31.3333 -32 -62.6667 -48 -94 -48h-169c-16 1.33333 -24 25.3333 -24 72h193c15.3333 10 27.5 19.5 36.5 28.5s15.5 20 19.5 33s6.33333 23.1667 7 30.5
+c0.666656 7.33334 1.33334 21 2 41l22 22c30 -103.333 78.6667 -155 146 -155h6c55.3333 83.3333 103.833 140.167 145.5 170.5s90.5 46.8333 146.5 49.5zM777 340c0 45.3333 -27.3333 72 -82 80c-30 -2.66666 -57.5 -9.33334 -82.5 -20s-46.6667 -25 -65 -43
+s-31.8333 -32.5 -40.5 -43.5c-8.66666 -11 -18.3333 -24.8333 -29 -41.5h263c24 12 36 34.6667 36 68z" />
+ <glyph glyph-name="uniFEBC" unicode="ص" horiz-adv-x="823" arabic-form="medial"
+ d="M724 492c74 -2 114.333 -64.6667 121 -188c0 -69.3333 -14.3333 -104 -43 -104h-416c-32 0 -65 16 -99 48c-31.3333 -32 -62.6667 -48 -94 -48h-169c-16 1.33333 -24 25.3333 -24 72h193c15.3333 10 27.5 19.5 36.5 28.5s15.5 20 19.5 33s6.33333 23.1667 7 30.5
+c0.666656 7.33334 1.33334 21 2 41l22 22c30 -103.333 78.6667 -155 146 -155h6c55.3333 83.3333 103.833 140.167 145.5 170.5s90.5 46.8333 146.5 49.5zM777 340c0 45.3333 -27.3333 72 -82 80c-30 -2.66666 -57.5 -9.33334 -82.5 -20s-46.6667 -25 -65 -43
+s-31.8333 -32.5 -40.5 -43.5c-8.66666 -11 -18.3333 -24.8333 -29 -41.5h263c24 12 36 34.6667 36 68z" />
+ <glyph glyph-name="uniFEBD" unicode="ض" horiz-adv-x="949" arabic-form="isolated"
+ d="M832 466c13.3333 0 26 -1.66666 38 -5s24.3333 -9.33334 37 -18s22.6667 -22.3333 30 -41s11 -41 11 -67c0 -22 -2.33331 -44.3333 -7 -67l-15 -34v-1c0 -20.6667 -62.3333 -31 -187 -31l-150 -1c-0.666687 -44.6667 -7.16669 -82.1667 -19.5 -112.5
+c-12.3333 -30.3333 -30.3333 -53.3333 -54 -69c-23.6667 -15.6667 -49.1667 -26.6667 -76.5 -33c-27.3333 -6.33333 -59.6667 -9.5 -97 -9.5c-141.333 0 -212 59 -212 177c2.66667 74 14.3333 139.667 35 197l18 -6c-18.6667 -52.6667 -28 -103.333 -28 -152
+c0 -50.6667 13.5 -89.8333 40.5 -117.5c27 -27.6667 76.1667 -42.5 147.5 -44.5c43.3333 1.33333 80.3333 7.5 111 18.5s53.5 25.1667 68.5 42.5s25.6667 34.8333 32 52.5c6.33331 17.6667 9.5 36.5 9.5 56.5c0 47.3333 -21 95.3333 -63 144l34 72
+c29.3333 -70 49 -113.667 59 -131l120 120c38.6667 36.6667 74.3333 56.6667 107 60h11zM895 333c0 54.6667 -28 82 -84 82c-54.6667 0 -115.667 -43.6667 -183 -131c4 0 10.3333 -0.166656 19 -0.5s15.3333 -0.5 20 -0.5c19.3333 0 74 1.66666 164 5
+c42.6667 11.3333 64 26.3333 64 45zM747 633l-49 -48l-48 48l48 48z" />
+ <glyph glyph-name="uniFEBE" unicode="ض" horiz-adv-x="949" arabic-form="terminal"
+ d="M832 466c13.3333 0 26 -1.66666 38 -5s24.3333 -9.33334 37 -18s22.6667 -22.3333 30 -41s11 -41 11 -67c0 -22 -2.33331 -44.3333 -7 -67l-15 -34v-1c0 -20.6667 -62.3333 -31 -187 -31l-150 -1c-0.666687 -44.6667 -7.16669 -82.1667 -19.5 -112.5
+c-12.3333 -30.3333 -30.3333 -53.3333 -54 -69c-23.6667 -15.6667 -49.1667 -26.6667 -76.5 -33c-27.3333 -6.33333 -59.6667 -9.5 -97 -9.5c-141.333 0 -212 59 -212 177c2.66667 74 14.3333 139.667 35 197l18 -6c-18.6667 -52.6667 -28 -103.333 -28 -152
+c0 -50.6667 13.5 -89.8333 40.5 -117.5c27 -27.6667 76.1667 -42.5 147.5 -44.5c43.3333 1.33333 80.3333 7.5 111 18.5s53.5 25.1667 68.5 42.5s25.6667 34.8333 32 52.5c6.33331 17.6667 9.5 36.5 9.5 56.5c0 47.3333 -21 95.3333 -63 144l34 72
+c29.3333 -70 49 -113.667 59 -131l120 120c38.6667 36.6667 74.3333 56.6667 107 60h11zM895 333c0 54.6667 -28 82 -84 82c-54.6667 0 -115.667 -43.6667 -183 -131c4 0 10.3333 -0.166656 19 -0.5s15.3333 -0.5 20 -0.5c19.3333 0 74 1.66666 164 5
+c42.6667 11.3333 64 26.3333 64 45zM747 633l-49 -48l-48 48l48 48z" />
+ <glyph glyph-name="uniFEBF" unicode="ض" horiz-adv-x="805" arabic-form="initial"
+ d="M608 704l-49 -48l-48 48l48 48zM791 443c22.6667 -48 34 -94.3333 34 -139c0 -69.3333 -14.3333 -104 -43 -104h-416c-32 0 -65 16 -99 48c-31.3333 -32 -62.6667 -48 -94 -48h-169c-16 1.33333 -24 28.6667 -24 82h193c23.3333 8 39.6667 19.6667 49 35
+s14.6667 44.6667 16 88l22 22c28 -97.3333 72.6667 -146 134 -146c8 0 14 0.333344 18 1c58 78.6667 107.167 132.667 147.5 162s88.5 45.3333 144.5 48c34 -2 63 -18.3333 87 -49zM757 341c0 44.6667 -27.3333 70.6667 -82 78c-82.6667 -6 -155 -51.6667 -217 -137h263
+c24 6 36 25.6667 36 59z" />
+ <glyph glyph-name="uniFEC0" unicode="ض" horiz-adv-x="805" arabic-form="medial"
+ d="M608 704l-49 -48l-48 48l48 48zM791 443c22.6667 -48 34 -94.3333 34 -139c0 -69.3333 -14.3333 -104 -43 -104h-416c-32 0 -65 16 -99 48c-31.3333 -32 -62.6667 -48 -94 -48h-169c-16 1.33333 -24 28.6667 -24 82h193c23.3333 8 39.6667 19.6667 49 35
+s14.6667 44.6667 16 88l22 22c28 -97.3333 72.6667 -146 134 -146c8 0 14 0.333344 18 1c58 78.6667 107.167 132.667 147.5 162s88.5 45.3333 144.5 48c34 -2 63 -18.3333 87 -49zM757 341c0 44.6667 -27.3333 70.6667 -82 78c-82.6667 -6 -155 -51.6667 -217 -137h263
+c24 6 36 25.6667 36 59z" />
+ <glyph glyph-name="uniFEC1" unicode="ط" horiz-adv-x="557" arabic-form="isolated"
+ d="M165 277c14 11.3333 21 23.6667 21 37c0 87.3333 -28.6667 216 -86 386l63 83l26.5 -146c9.66667 -51.3333 18.5 -107 26.5 -167s12 -107 12 -141c0 -2.66666 -0.166672 -6.5 -0.5 -11.5s-0.5 -8.5 -0.5 -10.5c77.3333 87.3333 150 131 218 131
+c33.3333 0 62.1667 -11 86.5 -33c24.3333 -22 36.5 -61.6667 36.5 -119v-4c0 -54 -20.3333 -81 -61 -81h-513l-1 79zM537 304c0 30 -9.66669 51.5 -29 64.5c-19.3333 13 -41 19.5 -65 19.5c-27.3333 0 -57.3333 -9.83334 -90 -29.5s-58.3333 -37.8333 -77 -54.5l-20 -20h279
+c1.33331 9.33334 2 16 2 20z" />
+ <glyph glyph-name="uniFEC5" unicode="ظ" horiz-adv-x="550" arabic-form="isolated"
+ d="M443 612l-46 -46l-47 46l47 47zM165 277c14 11.3333 21 23.6667 21 37c0 87.3333 -28.6667 216 -86 386l63 83l26.5 -146c9.66667 -51.3333 18.5 -107 26.5 -167s12 -107 12 -141c0 -2.66666 -0.166672 -6.5 -0.5 -11.5s-0.5 -8.5 -0.5 -10.5
+c77.3333 87.3333 150 131 218 131c33.3333 0 62.1667 -11 86.5 -33c24.3333 -22 36.5 -61.6667 36.5 -119v-4c0 -54 -20.3333 -81 -61 -81h-513l-1 79zM537 304c0 30 -9.66669 51.5 -29 64.5c-19.3333 13 -41 19.5 -65 19.5c-27.3333 0 -57.3333 -9.83334 -90 -29.5
+s-58.3333 -37.8333 -77 -54.5l-20 -20h279c1.33331 9.33334 2 16 2 20z" />
+ <glyph glyph-name="uniFEC9" unicode="ع" horiz-adv-x="625" arabic-form="isolated"
+ d="M130 -67c0 34.6667 10.3333 76.8333 31 126.5c20.6667 49.6667 51.6667 91.8333 93 126.5c-58 50 -98.6667 89 -122 117v32c0 40.6667 21.6667 80 65 118c37.3333 32.6667 79.3333 49 126 49h5c35.3333 -5.33334 75.6667 -22 121 -50c-8.66666 0.666656 -21 1 -37 1
+c-51.3333 0 -102.667 -9.33334 -154 -28c-51.3333 -18.6667 -79.6667 -36.6667 -85 -54c1.33333 -24 18.3333 -49.6667 51 -77c32.6667 -27.3333 64.3333 -41 95 -41h6c80 38.6667 158 61 234 67l-35 -67c-94.6667 -10 -167.667 -40 -219 -90
+c-87.3333 -83.3333 -131 -148.333 -131 -195c0 -50.6667 120.333 -91.3333 361 -122h111l-104 -65c-149.333 7.33333 -261.667 22 -337 44c-50 14 -75 50 -75 108z" />
+ <glyph glyph-name="uniFECA" unicode="ع" horiz-adv-x="575" arabic-form="terminal"
+ d="M359 536c8 -0.666687 16.3333 -2 25 -4s18.6667 -5.33331 30 -10s20.6667 -11.6667 28 -21s11 -20.3333 11 -33c0 -21.3333 -12.6667 -45 -38 -71c-16.6667 -8 -37.6667 -23 -63 -45c10.6667 -50.6667 49.3333 -76 116 -76h131l5 -76h-134
+c-68 11.3333 -119.333 46.6667 -154 106c-49.3333 -36 -87 -73 -113 -111s-39 -80.6667 -39 -128c0 -28 8.83333 -52.6667 26.5 -74c17.6667 -21.3333 39.5 -37 65.5 -47s49.8333 -17.3333 71.5 -22s40.1667 -7 55.5 -7c34 0 75.6667 14 125 42l43 -51
+c-69.3333 -37.3333 -130.667 -56 -184 -56c-69.3333 0 -127.167 20.1667 -173.5 60.5c-46.3333 40.3333 -69.5 93.1667 -69.5 158.5c0 42.6667 9.16667 83.8333 27.5 123.5s39.1667 72.6667 62.5 99s55.6667 58.5 97 96.5c-1.33334 4 -2.5 7.83334 -3.5 11.5
+s-2.33334 7.16666 -4 10.5s-3.33334 6.33334 -5 9s-4 4.66666 -7 6s-6.16666 2 -9.5 2c-0.666656 0 -1.66666 -0.166656 -3 -0.5s-2.33334 -0.5 -3 -0.5l-61 -11c2 79.3333 50 119 144 119z" />
+ <glyph glyph-name="uniFECB" unicode="ع" horiz-adv-x="674" arabic-form="initial"
+ d="M257 429c0 -24 14.3333 -51.3333 43 -82s62.3333 -46 101 -46c67.3333 0 158 8.66666 272 26l-50 -77c-116 -32.6667 -234 -49 -354 -49h-252c-16 0 -24 25.3333 -24 76l276 -1c-42.6667 63.3333 -64 114.333 -64 153c8 35.3333 27.8333 65.1667 59.5 89.5
+c31.6667 24.3333 66.8333 36.5 105.5 36.5l56 -5c58 -26 98.3333 -50.3333 121 -73c-64 10.6667 -114 16 -150 16c-34 0 -65.8333 -6.16666 -95.5 -18.5s-44.5 -27.5 -44.5 -45.5z" />
+ <glyph glyph-name="uniFECC" unicode="ع" horiz-adv-x="550" arabic-form="medial"
+ d="M346 528c37.3333 0 68.6667 -6.66669 94 -20c25.3333 -13.3333 38 -30.6667 38 -52v-1c0 -24.6667 -24 -63.3333 -72 -116c24 -41.3333 52.6667 -62 86 -62h2h74v-77h-76c-48 0 -92.3333 31 -133 93c-54 -62 -112.667 -93 -176 -93h-2l-167 -1
+c-14.6667 0.666672 -22.6667 26.6667 -24 78l144 1c3.33333 0 8.33333 -0.166656 15 -0.5s11.3333 -0.5 14 -0.5c101.333 0 152 29.6667 152 89c0 4 -1.33334 9.16666 -4 15.5s-8.66666 13 -18 20s-21 10.5 -35 10.5c-7.33333 0 -14.5 -3 -21.5 -9s-11.5 -14.6667 -13.5 -26
+h-9v22c2 41.3333 14 73.1667 36 95.5c22 22.3333 54 33.5 96 33.5z" />
+ <glyph glyph-name="uniFECD" unicode="غ" horiz-adv-x="602" arabic-form="isolated"
+ d="M130 -62c0 40 10.8333 83.8333 32.5 131.5c21.6667 47.6667 51.8333 87.5 90.5 119.5c-58 49.3333 -98.3333 88 -121 116v29v3c0 40.6667 21.6667 80 65 118c36.6667 32 78 48 124 48h4c34.6667 -5.33334 75 -21.6667 121 -49c-7.33334 0.666656 -18 1 -32 1
+c-51.3333 0 -103.167 -9.5 -155.5 -28.5c-52.3333 -19 -81.1667 -36.8333 -86.5 -53.5c2.66667 -24 19.8333 -49.5 51.5 -76.5s62.8333 -40.5 93.5 -40.5h6c79.3333 38.6667 156.333 60.6667 231 66l-35 -66c-95.3333 -10 -167.333 -39.6667 -216 -89
+c-86 -80.6667 -129 -145 -129 -193c0 -50.6667 118.667 -91 356 -121h110l-103 -65c-146 7.33333 -257 22 -333 44c-49.3333 14.6667 -74 50 -74 106zM323 720l-48 -48l-49 48l49 48z" />
+ <glyph glyph-name="uniFECE" unicode="غ" horiz-adv-x="577" arabic-form="terminal"
+ d="M394 674l-49 -50l-50 50l50 49zM359 536c8 -0.666687 16.3333 -2 25 -4s18.6667 -5.33331 30 -10s20.6667 -11.6667 28 -21s11 -20.3333 11 -33c0 -21.3333 -12.6667 -45 -38 -71c-16.6667 -8 -37.6667 -23 -63 -45c10.6667 -50.6667 49.3333 -76 116 -76h131l5 -76h-134
+c-68 11.3333 -119.333 46.6667 -154 106c-49.3333 -36 -87 -73 -113 -111s-39 -80.6667 -39 -128c0 -28 8.83333 -52.6667 26.5 -74c17.6667 -21.3333 39.5 -37 65.5 -47s49.8333 -17.3333 71.5 -22s40.1667 -7 55.5 -7c34 0 75.6667 14 125 42l43 -51
+c-69.3333 -37.3333 -130.667 -56 -184 -56c-69.3333 0 -127.167 20.1667 -173.5 60.5c-46.3333 40.3333 -69.5 93.1667 -69.5 158.5c0 42.6667 9.16667 83.8333 27.5 123.5s39.1667 72.6667 62.5 99s55.6667 58.5 97 96.5c-1.33334 4 -2.5 7.83334 -3.5 11.5
+s-2.33334 7.16666 -4 10.5s-3.33334 6.33334 -5 9s-4 4.66666 -7 6s-6.16666 2 -9.5 2c-0.666656 0 -1.66666 -0.166656 -3 -0.5s-2.33334 -0.5 -3 -0.5l-61 -11c2 79.3333 50 119 144 119z" />
+ <glyph glyph-name="uniFECF" unicode="غ" horiz-adv-x="578" arabic-form="initial"
+ d="M222 420c0 -20 12.3333 -45.5 37 -76.5c24.6667 -31 56 -46.5 94 -46.5c62 0 144.333 8.66666 247 26l-46 -74c-106 -32 -212.667 -48 -320 -48h-229c-14.6667 0 -22 24.3333 -22 73l251 -1c-39.3333 62.6667 -59 112 -59 148c8 34 26.3333 62.6667 55 86
+c28.6667 23.3333 60.3333 35 95 35l51 -5c51.3333 -24 87.6667 -47.3333 109 -70c-52.6667 10 -97.6667 15 -135 15c-30 0 -58.8333 -5.83334 -86.5 -17.5c-27.6667 -11.6667 -41.5 -26.5 -41.5 -44.5zM368 753l-46 -48l-46 48l46 49z" />
+ <glyph glyph-name="uniFED0" unicode="غ" horiz-adv-x="577" arabic-form="medial"
+ d="M355 522c39.3333 0 71.6667 -6.66669 97 -20c25.3333 -13.3333 38 -30.3333 38 -51v-3c0 -24 -24.6667 -61.3333 -74 -112c25.3333 -40 54.6667 -60 88 -60h2h97v-76h-98c-49.3333 0 -95 30 -137 90c-54.6667 -60 -114.667 -90 -180 -90h-2l-171 -1
+c-16 1.33333 -24.3333 27 -25 77l147 1c8 -0.666656 19.3333 -1 34 -1c101.333 0 152 29 152 87c0 8 -5 17.6667 -15 29s-24.6667 17 -44 17c-7.33334 0 -14.5 -3.16666 -21.5 -9.5s-11.5 -15.1667 -13.5 -26.5h-9v23c2 40.6667 14.3333 71.8333 37 93.5
+c22.6667 21.6667 55.3333 32.5 98 32.5zM397 703l-49 -50l-49 50l49 50z" />
+ <glyph glyph-name="uniFED1" unicode="ف" horiz-adv-x="801" arabic-form="isolated"
+ d="M789 521c14.6667 -64 22 -116.667 22 -158v-66c0 -61.3333 -28.6667 -92 -86 -92l-526 1c-16 2 -28.6667 5.66667 -38 11s-16.3333 14 -21 26s-7.66667 24.1667 -9 36.5s-2.33333 30.1667 -3 53.5c1.33333 36 10 79.3333 26 130l26 -27c-22.6667 -52 -34 -90 -34 -114
+c0 -22.6667 11.3333 -36.3333 34 -41c55.3333 -0.666656 138.333 -1 249 -1c27.3333 0 68.6667 0.166656 124 0.5c55.3333 0.333344 96.6667 0.5 124 0.5h5c55.3333 0 83 16 83 48v5c-38.6667 8.66666 -70.6667 15.5 -96 20.5s-44.5 13.5 -57.5 25.5s-19.5 29.6667 -19.5 53
+c0 42.6667 11 84.6667 33 126c16 38 39.3333 57 70 57h4c30.6667 0 60.6667 -31.6667 90 -95zM693 529c-24 -6.66669 -36 -30.3333 -36 -71c0 -32.6667 28 -49 84 -49c10 0 17.6667 0.333344 23 1v1c-5.33331 26 -14.5 51.3333 -27.5 76s-27.5 38.6667 -43.5 42zM675 712
+l-49 -50l-50 50l50 51z" />
+ <glyph glyph-name="uniFED2" unicode="ف" horiz-adv-x="801" arabic-form="terminal"
+ d="M789 521c14.6667 -64 22 -116.667 22 -158v-66c0 -61.3333 -28.6667 -92 -86 -92l-526 1c-16 2 -28.6667 5.66667 -38 11s-16.3333 14 -21 26s-7.66667 24.1667 -9 36.5s-2.33333 30.1667 -3 53.5c1.33333 36 10 79.3333 26 130l26 -27c-22.6667 -52 -34 -90 -34 -114
+c0 -22.6667 11.3333 -36.3333 34 -41c55.3333 -0.666656 138.333 -1 249 -1c27.3333 0 68.6667 0.166656 124 0.5c55.3333 0.333344 96.6667 0.5 124 0.5h5c55.3333 0 83 16 83 48v5c-38.6667 8.66666 -70.6667 15.5 -96 20.5s-44.5 13.5 -57.5 25.5s-19.5 29.6667 -19.5 53
+c0 42.6667 11 84.6667 33 126c16 38 39.3333 57 70 57h4c30.6667 0 60.6667 -31.6667 90 -95zM693 529c-24 -6.66669 -36 -30.3333 -36 -71c0 -32.6667 28 -49 84 -49c10 0 17.6667 0.333344 23 1v1c-5.33331 26 -14.5 51.3333 -27.5 76s-27.5 38.6667 -43.5 42zM675 712
+l-49 -50l-50 50l50 51z" />
+ <glyph glyph-name="uniFED3" unicode="ف" arabic-form="initial"
+ d="M296 509c14.6667 -44 22 -95.3333 22 -154v-63c0 -61.3333 -27.6667 -92 -83 -92h-265v74l218 1h5c53.3333 0 80 15.6667 80 47v5c-35.3333 8.66666 -65.5 15.3333 -90.5 20s-44 12.8333 -57 24.5s-19.5 28.8333 -19.5 51.5c0 44 10.6667 85 32 123
+c15.3333 37.3333 38 56 68 56h4c16 0 31.6667 -7.83331 47 -23.5c15.3333 -15.6667 28.3333 -38.8333 39 -69.5zM197 753l-49 -50l-48 50l48 50zM196 527c-13.3333 0 -25.6667 -8.33331 -37 -25c-11.3333 -16.6667 -17 -33 -17 -49c0 -9.33334 1.5 -17.6667 4.5 -25
+s7.5 -13.1667 13.5 -17.5s12.8333 -8 20.5 -11s16.5 -5.33334 26.5 -7s20.5 -3.16666 31.5 -4.5s22.5 -2.33334 34.5 -3c-2.66666 22 -7 43 -13 63s-14.6667 38.1667 -26 54.5c-11.3333 16.3333 -24 24.5 -38 24.5z" />
+ <glyph glyph-name="uniFED4" unicode="ف" arabic-form="medial"
+ d="M296 509c14.6667 -44 22 -95.3333 22 -154v-63c0 -61.3333 -27.6667 -92 -83 -92h-265v74l218 1h5c53.3333 0 80 15.6667 80 47v5c-35.3333 8.66666 -65.5 15.3333 -90.5 20s-44 12.8333 -57 24.5s-19.5 28.8333 -19.5 51.5c0 44 10.6667 85 32 123
+c15.3333 37.3333 38 56 68 56h4c16 0 31.6667 -7.83331 47 -23.5c15.3333 -15.6667 28.3333 -38.8333 39 -69.5zM197 753l-49 -50l-48 50l48 50zM196 527c-13.3333 0 -25.6667 -8.33331 -37 -25c-11.3333 -16.6667 -17 -33 -17 -49c0 -9.33334 1.5 -17.6667 4.5 -25
+s7.5 -13.1667 13.5 -17.5s12.8333 -8 20.5 -11s16.5 -5.33334 26.5 -7s20.5 -3.16666 31.5 -4.5s22.5 -2.33334 34.5 -3c-2.66666 22 -7 43 -13 63s-14.6667 38.1667 -26 54.5c-11.3333 16.3333 -24 24.5 -38 24.5z" />
+ <glyph glyph-name="uniFED5" unicode="ق" horiz-adv-x="696" arabic-form="isolated"
+ d="M709 562l-55 -55l-55 55l55 55zM552 562l-56 -55l-55 55l55 55zM606 417c24 -10.6667 48 -30.1667 72 -58.5s37.6667 -65.8333 41 -112.5v-63c-11.3333 -95.3333 -40.6667 -157.667 -88 -187c-60.6667 -37.3333 -147 -56 -259 -56h-31c-139.333 30 -209 84.3333 -209 163
+c0 3.33334 -0.333328 9 -1 17s-1 14 -1 18c0 64 17 136.667 51 218h11c-18.6667 -68.6667 -28 -124.667 -28 -168c0 -26 3.16667 -47.8333 9.5 -65.5c6.33333 -17.6667 18.8333 -34.3333 37.5 -50c18.6667 -15.6667 47 -27.3333 85 -35c38 -7.66667 86.3333 -11.5 145 -11.5
+c16.6667 0 43.1667 4.16667 79.5 12.5c36.3333 8.33333 64.8333 16.1667 85.5 23.5c50 24 75 61 75 111c0 13.3333 -2 22.5 -6 27.5s-12.6667 7.5 -26 7.5c-11.3333 0 -27.6667 -2.66667 -49 -8c-63.3333 0 -95 17 -95 51c0 31.3333 10.8333 65.6667 32.5 103
+s44.5 58.3333 68.5 63zM605 354c-16.6667 0 -30 -7.83334 -40 -23.5s-15 -28.5 -15 -38.5c0 -13.3333 13.6667 -20 41 -20h9c25.3333 0 40 0.666656 44 2c3.33331 0 5 3 5 9c0 16.6667 -6 32.6667 -18 48l-24 23h-2z" />
+ <glyph glyph-name="uniFED6" unicode="ق" horiz-adv-x="696" arabic-form="terminal"
+ d="M709 562l-55 -55l-55 55l55 55zM552 562l-56 -55l-55 55l55 55zM606 417c24 -10.6667 48 -30.1667 72 -58.5s37.6667 -65.8333 41 -112.5v-63c-11.3333 -95.3333 -40.6667 -157.667 -88 -187c-60.6667 -37.3333 -147 -56 -259 -56h-31c-139.333 30 -209 84.3333 -209 163
+c0 3.33334 -0.333328 9 -1 17s-1 14 -1 18c0 64 17 136.667 51 218h11c-18.6667 -68.6667 -28 -124.667 -28 -168c0 -26 3.16667 -47.8333 9.5 -65.5c6.33333 -17.6667 18.8333 -34.3333 37.5 -50c18.6667 -15.6667 47 -27.3333 85 -35c38 -7.66667 86.3333 -11.5 145 -11.5
+c16.6667 0 43.1667 4.16667 79.5 12.5c36.3333 8.33333 64.8333 16.1667 85.5 23.5c50 24 75 61 75 111c0 13.3333 -2 22.5 -6 27.5s-12.6667 7.5 -26 7.5c-11.3333 0 -27.6667 -2.66667 -49 -8c-63.3333 0 -95 17 -95 51c0 31.3333 10.8333 65.6667 32.5 103
+s44.5 58.3333 68.5 63zM605 354c-16.6667 0 -30 -7.83334 -40 -23.5s-15 -28.5 -15 -38.5c0 -13.3333 13.6667 -20 41 -20h9c25.3333 0 40 0.666656 44 2c3.33331 0 5 3 5 9c0 16.6667 -6 32.6667 -18 48l-24 23h-2z" />
+ <glyph glyph-name="uniFED7" unicode="ق" horiz-adv-x="650" arabic-form="initial"
+ d="M292 503c14 -40.6667 21 -90.3333 21 -149v-62c0 -60 -27.3333 -90 -82 -90h-261v72l215 1h5c52.6667 0 79 15.3333 79 46v5c-34.6667 8 -64.1667 14 -88.5 18s-43.1667 11.8333 -56.5 23.5c-13.3333 11.6667 -20 29.1667 -20 52.5c0 36.6667 9.33334 74.8333 28 114.5
+c18.6667 39.6667 42 59.5 70 59.5h4c16 0 31.6667 -7.66669 47 -23c15.3333 -15.3333 28.3333 -38 39 -68zM147 744l-48 -50l-47 50l47 48zM139 447c0 -12.6667 3.16667 -23.1667 9.5 -31.5s16.3333 -14.6667 30 -19s26.6667 -7.33334 39 -9s29.5 -3.16666 51.5 -4.5
+c-4.66666 34 -13.5 65.3333 -26.5 94s-29.5 43 -49.5 43c-13.3333 0 -25.6667 -8.16666 -37 -24.5s-17 -32.5 -17 -48.5zM276 744l-47 -50l-48 50l48 48z" />
+ <glyph glyph-name="uniFED8" unicode="ق" horiz-adv-x="650" arabic-form="medial"
+ d="M292 503c14 -40.6667 21 -90.3333 21 -149v-62c0 -60 -27.3333 -90 -82 -90h-261v72l215 1h5c52.6667 0 79 15.3333 79 46v5c-34.6667 8 -64.1667 14 -88.5 18s-43.1667 11.8333 -56.5 23.5c-13.3333 11.6667 -20 29.1667 -20 52.5c0 36.6667 9.33334 74.8333 28 114.5
+c18.6667 39.6667 42 59.5 70 59.5h4c16 0 31.6667 -7.66669 47 -23c15.3333 -15.3333 28.3333 -38 39 -68zM147 744l-48 -50l-47 50l47 48zM139 447c0 -12.6667 3.16667 -23.1667 9.5 -31.5s16.3333 -14.6667 30 -19s26.6667 -7.33334 39 -9s29.5 -3.16666 51.5 -4.5
+c-4.66666 34 -13.5 65.3333 -26.5 94s-29.5 43 -49.5 43c-13.3333 0 -25.6667 -8.16666 -37 -24.5s-17 -32.5 -17 -48.5zM276 744l-47 -50l-48 50l48 48z" />
+ <glyph glyph-name="uniFED9" unicode="ك" horiz-adv-x="757" arabic-form="isolated"
+ d="M948 958l-199 -87c-12.6667 -5.33331 -37.1667 -16.5 -73.5 -33.5s-54.5 -27.8333 -54.5 -32.5c0 -5.33331 4.16669 -12.6667 12.5 -22s19.5 -20.8333 33.5 -34.5s35.1667 -37.8333 63.5 -72.5s58.1667 -74.6667 89.5 -120c26.6667 -42.6667 50 -103 70 -181
+c2.66669 -10 4 -35 4 -75c0 -67.3333 -14 -101 -42 -101h-1l-587 2c-52 0 -94.6667 29 -128 87c-10 16.6667 -15 46.3333 -15 89c0 44.6667 6.66666 88.3333 20 131l8 -4c-4.66667 -30 -7 -58.3333 -7 -85c0 -51.3333 13.1667 -88.3333 39.5 -111s72.1667 -34 137.5 -34h11
+h529c1.33331 16 2 27.6667 2 35c0 81.3333 -41.6667 176.667 -125 286l-61 65l-11 -14c-22.6667 15.3333 -51.3333 40.3333 -86 75c-2.66669 17.3333 -4 30 -4 38c0 18.6667 2.33331 35 7 49s12.5 27.3333 23.5 40s25.8333 24.5 44.5 35.5s42 23.3333 70 37
+s61.3333 28.3333 100 44l135 56.5z" />
+ <glyph glyph-name="uniFEDA" unicode="ك" horiz-adv-x="757" arabic-form="terminal"
+ d="M948 958l-199 -87c-12.6667 -5.33331 -37.1667 -16.5 -73.5 -33.5s-54.5 -27.8333 -54.5 -32.5c0 -5.33331 4.16669 -12.6667 12.5 -22s19.5 -20.8333 33.5 -34.5s35.1667 -37.8333 63.5 -72.5s58.1667 -74.6667 89.5 -120c26.6667 -42.6667 50 -103 70 -181
+c2.66669 -10 4 -35 4 -75c0 -67.3333 -14 -101 -42 -101h-1l-587 2c-52 0 -94.6667 29 -128 87c-10 16.6667 -15 46.3333 -15 89c0 44.6667 6.66666 88.3333 20 131l8 -4c-4.66667 -30 -7 -58.3333 -7 -85c0 -51.3333 13.1667 -88.3333 39.5 -111s72.1667 -34 137.5 -34h11
+h529c1.33331 16 2 27.6667 2 35c0 81.3333 -41.6667 176.667 -125 286l-61 65l-11 -14c-22.6667 15.3333 -51.3333 40.3333 -86 75c-2.66669 17.3333 -4 30 -4 38c0 18.6667 2.33331 35 7 49s12.5 27.3333 23.5 40s25.8333 24.5 44.5 35.5s42 23.3333 70 37
+s61.3333 28.3333 100 44l135 56.5z" />
+ <glyph glyph-name="uniFEDB" unicode="ك" horiz-adv-x="318" arabic-form="initial"
+ d="M388 912l-199 -82c-2.66667 -1.33331 -16.5 -7.16669 -41.5 -17.5s-45.6667 -19.5 -62 -27.5s-24.5 -13.6667 -24.5 -17c0 -5.33331 35.6667 -44.6667 107 -118c56.6667 -68 98.5 -127.833 125.5 -179.5c27 -51.6667 40.5 -110.5 40.5 -176.5c0 -63.3333 -14 -95 -42 -95
+h-1l-306 2l6 78h308c1.33334 13.3333 2 23 2 29c0 70.6667 -41.6667 158.333 -125 263l-61 61l-11 -13c-22.6667 14.6667 -51.3333 38 -86 70c-2.66667 16 -4 28 -4 36c0 20.6667 3.66667 38.5 11 53.5c7.33333 15 19 29.1667 35 42.5s39.3333 27.3333 70 42
+c30.6667 14.6667 65.8333 30 105.5 46l152.5 60l6 2z" />
+ <glyph glyph-name="uniFEDC" unicode="ك" horiz-adv-x="318" arabic-form="medial"
+ d="M388 912l-199 -82c-2.66667 -1.33331 -16.5 -7.16669 -41.5 -17.5s-45.6667 -19.5 -62 -27.5s-24.5 -13.6667 -24.5 -17c0 -5.33331 35.6667 -44.6667 107 -118c56.6667 -68 98.5 -127.833 125.5 -179.5c27 -51.6667 40.5 -110.5 40.5 -176.5c0 -63.3333 -14 -95 -42 -95
+h-1l-306 2l6 78h308c1.33334 13.3333 2 23 2 29c0 70.6667 -41.6667 158.333 -125 263l-61 61l-11 -13c-22.6667 14.6667 -51.3333 38 -86 70c-2.66667 16 -4 28 -4 36c0 20.6667 3.66667 38.5 11 53.5c7.33333 15 19 29.1667 35 42.5s39.3333 27.3333 70 42
+c30.6667 14.6667 65.8333 30 105.5 46l152.5 60l6 2z" />
+ <glyph glyph-name="uniFEDD" unicode="ل" horiz-adv-x="655" arabic-form="isolated"
+ d="M665 161c0 -56.6667 -3.83331 -103 -11.5 -139s-21.8333 -67.6667 -42.5 -95c-20.6667 -27.3333 -50 -47 -88 -59s-86.6667 -18 -146 -18c-163.333 0 -245 64.3333 -245 193c0 64.6667 20.3333 151.667 61 261l16 -6c-30.6667 -94 -46 -166 -46 -216
+c0 -49.3333 25.3333 -91.3333 76 -126c59.3333 -12.6667 113 -19 161 -19c54 0 92.6667 6 116 18c59.3333 30.6667 89 83 89 157c0 176 -12.3333 410.667 -37 704l38 38l52 41l47 -146l-52 -64v-48c0 -114.667 2 -218.5 6 -311.5s6 -147.833 6 -164.5z" />
+ <glyph glyph-name="uniFEDE" unicode="ل" horiz-adv-x="655" arabic-form="terminal"
+ d="M665 161c0 -56.6667 -3.83331 -103 -11.5 -139s-21.8333 -67.6667 -42.5 -95c-20.6667 -27.3333 -50 -47 -88 -59s-86.6667 -18 -146 -18c-163.333 0 -245 64.3333 -245 193c0 64.6667 20.3333 151.667 61 261l16 -6c-30.6667 -94 -46 -166 -46 -216
+c0 -49.3333 25.3333 -91.3333 76 -126c59.3333 -12.6667 113 -19 161 -19c54 0 92.6667 6 116 18c59.3333 30.6667 89 83 89 157c0 176 -12.3333 410.667 -37 704l38 38l52 41l47 -146l-52 -64v-48c0 -114.667 2 -218.5 6 -311.5s6 -147.833 6 -164.5z" />
+ <glyph glyph-name="uniFEDF" unicode="ل" horiz-adv-x="206" arabic-form="initial"
+ d="M210 901l40 -130l-40 9v-391c0 -49.3333 -4.5 -87.3333 -13.5 -114c-9 -26.6667 -21 -44.5 -36 -53.5s-36.8333 -15.8333 -65.5 -20.5l-108 -3l1 77l78 2c61.3333 1.33334 91 38.3333 89 111l-10 452z" />
+ <glyph glyph-name="uniFEE0" unicode="ل" horiz-adv-x="206" arabic-form="medial"
+ d="M210 901l40 -130l-40 9v-391c0 -49.3333 -4.5 -87.3333 -13.5 -114c-9 -26.6667 -21 -44.5 -36 -53.5s-36.8333 -15.8333 -65.5 -20.5l-108 -3l1 77l78 2c61.3333 1.33334 91 38.3333 89 111l-10 452z" />
+ <glyph glyph-name="uniFEE1" unicode="م" horiz-adv-x="549" arabic-form="isolated"
+ d="M280 303c-18 0 -35 -12.6667 -51 -38c-2.66667 10.6667 -4 22 -4 34c0 43.3333 26.6667 65.6667 80 67h27c18.6667 0 45.8333 -5.66666 81.5 -17s70.1667 -28.8333 103.5 -52.5c33.3333 -23.6667 50 -48.5 50 -74.5c0 -17.3333 -9.33331 -36.3333 -28 -57
+s-40 -31 -64 -31l-71 24c-46.6667 16 -86.3333 24 -119 24c-40.6667 0 -69.3333 -12 -86 -36c20 -161.333 30 -285.667 30 -373c0 -42 -7.33333 -79 -22 -111c-14.6667 87.3333 -27.3333 157.833 -38 211.5c-10.6667 53.6667 -17.8333 86.6667 -21.5 99
+c-3.66667 12.3333 -7 28.5 -10 48.5s-5.83333 52 -8.5 96v11c0 9.33333 2.5 21 7.5 35s12.8333 29.3333 23.5 46s26.5 30.8333 47.5 42.5c21 11.6667 44.8333 17.5 71.5 17.5c14 0 57 -9.33334 129 -28c-63.3333 41.3333 -106 62 -128 62z" />
+ <glyph glyph-name="uniFEE2" unicode="م" horiz-adv-x="549" arabic-form="terminal"
+ d="M280 303c-18 0 -35 -12.6667 -51 -38c-2.66667 10.6667 -4 22 -4 34c0 43.3333 26.6667 65.6667 80 67h27c18.6667 0 45.8333 -5.66666 81.5 -17s70.1667 -28.8333 103.5 -52.5c33.3333 -23.6667 50 -48.5 50 -74.5c0 -17.3333 -9.33331 -36.3333 -28 -57
+s-40 -31 -64 -31l-71 24c-46.6667 16 -86.3333 24 -119 24c-40.6667 0 -69.3333 -12 -86 -36c20 -161.333 30 -285.667 30 -373c0 -42 -7.33333 -79 -22 -111c-14.6667 87.3333 -27.3333 157.833 -38 211.5c-10.6667 53.6667 -17.8333 86.6667 -21.5 99
+c-3.66667 12.3333 -7 28.5 -10 48.5s-5.83333 52 -8.5 96v11c0 9.33333 2.5 21 7.5 35s12.8333 29.3333 23.5 46s26.5 30.8333 47.5 42.5c21 11.6667 44.8333 17.5 71.5 17.5c14 0 57 -9.33334 129 -28c-63.3333 41.3333 -106 62 -128 62z" />
+ <glyph glyph-name="uniFEE3" unicode="م" horiz-adv-x="403" arabic-form="initial"
+ d="M307 430c24.6667 0 51.1667 -20.3333 79.5 -61s42.5 -79.6667 42.5 -117c0 -40.6667 -25.6667 -65 -77 -73c-44.6667 0 -82.6667 10.6667 -114 32l-45 31c-21.3333 -26.6667 -50.6667 -40 -88 -40h-4h-101v76l101 -1c22.6667 0.666656 41.8333 6.33334 57.5 17
+s28 23.5 37 38.5s17.5 29.8333 25.5 44.5s18.6667 27.1667 32 37.5c13.3333 10.3333 29.3333 15.5 48 15.5h6zM342 240c18 0 27 11.3333 27 34c0 12.6667 -14 36.3333 -42 71l-19 14l-17 -7c-20.6667 -16.6667 -33.6667 -36 -39 -58c10 -16 23.6667 -29 41 -39
+s33.6667 -15 49 -15z" />
+ <glyph glyph-name="uniFEE4" unicode="م" horiz-adv-x="403" arabic-form="medial"
+ d="M307 430c24.6667 0 51.1667 -20.3333 79.5 -61s42.5 -79.6667 42.5 -117c0 -40.6667 -25.6667 -65 -77 -73c-44.6667 0 -82.6667 10.6667 -114 32l-45 31c-21.3333 -26.6667 -50.6667 -40 -88 -40h-4h-101v76l101 -1c22.6667 0.666656 41.8333 6.33334 57.5 17
+s28 23.5 37 38.5s17.5 29.8333 25.5 44.5s18.6667 27.1667 32 37.5c13.3333 10.3333 29.3333 15.5 48 15.5h6zM342 240c18 0 27 11.3333 27 34c0 12.6667 -14 36.3333 -42 71l-19 14l-17 -7c-20.6667 -16.6667 -33.6667 -36 -39 -58c10 -16 23.6667 -29 41 -39
+s33.6667 -15 49 -15z" />
+ <glyph glyph-name="uniFEE5" unicode="ن" horiz-adv-x="651" arabic-form="isolated"
+ d="M441 451l-59 -55l-58 55l58 55zM362 -20c95.3333 0 164.833 13.5 208.5 40.5s65.5 76.5 65.5 148.5c-0.666687 104 -14.3333 166.667 -41 188l58 96c11.3333 -47.3333 18 -128.333 20 -243l-7 -78c-3.33331 -46.6667 -12 -85.6667 -26 -117
+c-14 -31.3333 -33 -54.8333 -57 -70.5c-24 -15.6667 -49.3333 -26.5 -76 -32.5c-26.6667 -6 -58.6667 -9 -96 -9c-21.3333 0 -37.6667 0.333336 -49 1c-90.6667 0 -153.5 17.6667 -188.5 53c-35 35.3333 -52.5 87.3333 -52.5 156c0 61.3333 9.33333 124.333 28 189l21 -4
+c-11.3333 -48.6667 -17 -92 -17 -130c0 -4.66667 0.333328 -11.3333 1 -20s1 -15 1 -19c0 -98 69 -147.667 207 -149z" />
+ <glyph glyph-name="uniFEE6" unicode="ن" horiz-adv-x="651" arabic-form="terminal"
+ d="M441 451l-59 -55l-58 55l58 55zM362 -20c95.3333 0 164.833 13.5 208.5 40.5s65.5 76.5 65.5 148.5c-0.666687 104 -14.3333 166.667 -41 188l58 96c11.3333 -47.3333 18 -128.333 20 -243l-7 -78c-3.33331 -46.6667 -12 -85.6667 -26 -117
+c-14 -31.3333 -33 -54.8333 -57 -70.5c-24 -15.6667 -49.3333 -26.5 -76 -32.5c-26.6667 -6 -58.6667 -9 -96 -9c-21.3333 0 -37.6667 0.333336 -49 1c-90.6667 0 -153.5 17.6667 -188.5 53c-35 35.3333 -52.5 87.3333 -52.5 156c0 61.3333 9.33333 124.333 28 189l21 -4
+c-11.3333 -48.6667 -17 -92 -17 -130c0 -4.66667 0.333328 -11.3333 1 -20s1 -15 1 -19c0 -98 69 -147.667 207 -149z" />
+ <glyph glyph-name="uniFEE7" unicode="ن" horiz-adv-x="323" arabic-form="initial"
+ d="M278 630l-61 -58l-62 58l62 58zM286 508c30 -40 45 -85.6667 45 -137v-68c0 -68.6667 -17.3333 -103 -52 -103h-282l-9 77h310v9c0 62.6667 -18.6667 111.667 -56 147z" />
+ <glyph glyph-name="uniFEE8" unicode="ن" horiz-adv-x="323" arabic-form="medial"
+ d="M278 630l-61 -58l-62 58l62 58zM286 508c30 -40 45 -85.6667 45 -137v-68c0 -68.6667 -17.3333 -103 -52 -103h-282l-9 77h310v9c0 62.6667 -18.6667 111.667 -56 147z" />
+ <glyph glyph-name="uniFEE9" unicode="ه" horiz-adv-x="424" arabic-form="isolated"
+ d="M394 315c0 -67.3333 -39 -105 -117 -113c-43.3333 0 -74.6667 3.66667 -94 11s-36 24 -50 50c-4 8 -6 19.3333 -6 34c0 26.6667 10 59.1667 30 97.5s36.6667 67.5 50 87.5l-8 10l52 72h1c40 -45.3333 66.3333 -79.3333 79 -102l51 -87c8 -20.6667 12 -40.6667 12 -60z
+M274 270c58 0 87 10.6667 87 32c0 18.6667 -10.6667 45.1667 -32 79.5s-52.6667 58.5 -94 72.5v-1c-4.66667 -4.66666 -11 -12 -19 -22l-23 -30c-7.33333 -10 -13.6667 -21.6667 -19 -35s-8 -26 -8 -38c0 -20.6667 11 -35.5 33 -44.5s47 -13.5 75 -13.5z" />
+ <glyph glyph-name="uniFEEA" unicode="ه" horiz-adv-x="622" arabic-form="terminal"
+ d="M615 201c-68.6667 0 -117.833 14.1667 -147.5 42.5c-29.6667 28.3333 -52.1667 85.8333 -67.5 172.5c-21.3333 -51.3333 -57 -77 -107 -77c-108.667 2 -163 26.6667 -163 74c0 56.6667 74.3333 116.333 223 179c-2.66666 8.66669 -4 18.6667 -4 30
+c0 25.3333 8 50.6667 24 76l74 -337c29.3333 -57.3333 64.6667 -86 106 -86h94l-5 -72c-1.33331 -1.33333 -10.3333 -2 -27 -2zM199 440c0 -15.3333 11.3333 -26.5 34 -33.5s43.3333 -10.5 62 -10.5c35.3333 0 58.3333 3.66666 69 11s18.3333 22.3333 23 45
+c-2 8 -4.5 19.5 -7.5 34.5s-6 28.5 -9 40.5s-6.5 22.6667 -10.5 32c-107.333 -44.6667 -161 -84.3333 -161 -119z" />
+ <glyph glyph-name="uniFEEB" unicode="ه" horiz-adv-x="525" arabic-form="initial"
+ d="M353 747c119.333 -116 179 -237.667 179 -365c0 -14 -1 -29.3333 -3 -46s-5.5 -36 -10.5 -58s-13.3333 -41.3333 -25 -58s-25.8333 -27.3333 -42.5 -32c-68 6.66667 -131.333 37.3333 -190 92c-58.6667 -52.6667 -122 -79.6667 -190 -81h-83l7 76
+c91.3333 0 165 16 221 48c-34 16 -59 52.3333 -75 109c0 111.333 71.3333 183 214 215l-56 37c4.66666 30.6667 22.6667 51.6667 54 63zM455 294c6.66666 0 14 14.3333 22 43s12 49.6667 12 63c0 62.6667 -23.3333 121.667 -70 177l-2 -47
+c-16.6667 -72.6667 -42 -130 -76 -172c63.3333 -36.6667 100.667 -58 112 -64h2zM323 423c25.3333 66 38 107.333 38 124c0 19.3333 -8 30.3333 -24 33c-32 -9.33331 -61.5 -23.5 -88.5 -42.5s-40.5 -39.8333 -40.5 -62.5c0 -26.6667 32 -55.6667 96 -87z" />
+ <glyph glyph-name="uniFEEC" unicode="ه" horiz-adv-x="476" arabic-form="medial"
+ d="M378 404c0 -11.3333 -0.666656 -21 -2 -29s-5 -18.5 -11 -31.5s-17 -25.1667 -33 -36.5s-36.3333 -21 -61 -29h220v-77h-220c21.3333 -4.66667 40.6667 -15 58 -31c30.6667 -18 46 -47.3333 46 -88v-1c0 -26 -11.6667 -51.8333 -35 -77.5s-48 -38.5 -74 -38.5h-4
+c-21.3333 0 -39.1667 13.5 -53.5 40.5s-24.5 58.5 -30.5 94.5l-5 101h-191l1 77h187l9 125c10.6667 43.3333 22.8333 74.8333 36.5 94.5c13.6667 19.6667 34.1667 29.5 61.5 29.5c28 0 51.8333 -15.6667 71.5 -47s29.5 -56.6667 29.5 -76zM348 399
+c0 7.33334 -1.5 16.1667 -4.5 26.5s-9.66666 20.8333 -20 31.5s-23.5 16 -39.5 16c-19.3333 0 -34.3333 -9.83334 -45 -29.5s-17.5 -44 -20.5 -73s-7.16667 -59.8333 -12.5 -92.5h32c36.6667 15.3333 64.1667 31.5 82.5 48.5s27.5 41.1667 27.5 72.5zM209 188
+c15.3333 -104 42.3333 -157.333 81 -160c42.6667 12 64 31.6667 64 59c0 34 -14.5 61.5 -43.5 82.5s-62.8333 31.5 -101.5 31.5v-13z" />
+ <glyph glyph-name="uniFEED" unicode="و" horiz-adv-x="399" arabic-form="isolated"
+ d="M330 199h-99c-28 12 -42 42 -42 90v14c0 41.3333 14 81 42 119c16 21.3333 41 32 75 32h9c45.3333 -7.33334 73.3333 -64.6667 84 -172v-85c0 -76 -35.3333 -158.333 -106 -247c-39.3333 -50 -95 -75 -167 -75h-53v10c79.3333 46 129.167 78 149.5 96
+s45.5 51.6667 75.5 101c22.6667 36.6667 34 69 34 97c0 4 -0.666656 10.6667 -2 20zM341 288c-1.33334 35.3333 -4.66666 61.1667 -10 77.5s-16 24.5 -32 24.5c-30 0 -45 -34 -45 -102h10c5.33334 0 14.1667 -0.166656 26.5 -0.5s21.5 -0.5 27.5 -0.5
+c10.6667 0 18.3333 0.333344 23 1z" />
+ <glyph glyph-name="uniFEEE" unicode="و" horiz-adv-x="399" arabic-form="terminal"
+ d="M330 199h-99c-28 12 -42 42 -42 90v14c0 41.3333 14 81 42 119c16 21.3333 41 32 75 32h9c45.3333 -7.33334 73.3333 -64.6667 84 -172v-85c0 -76 -35.3333 -158.333 -106 -247c-39.3333 -50 -95 -75 -167 -75h-53v10c79.3333 46 129.167 78 149.5 96
+s45.5 51.6667 75.5 101c22.6667 36.6667 34 69 34 97c0 4 -0.666656 10.6667 -2 20zM341 288c-1.33334 35.3333 -4.66666 61.1667 -10 77.5s-16 24.5 -32 24.5c-30 0 -45 -34 -45 -102h10c5.33334 0 14.1667 -0.166656 26.5 -0.5s21.5 -0.5 27.5 -0.5
+c10.6667 0 18.3333 0.333344 23 1z" />
+ </font>
+ <path d="M20,10 L20,280" stroke="#BBB" />
+ <path d="M240,10 L240,280" stroke="#BBB" />
+ <path d="M460,10 L460,280" stroke="#BBB" />
+ <path d="M10,60 L470,60" stroke="#BBB" />
+ <path d="M10,150 L470,150" stroke="#BBB" />
+ <path d="M10,240 L470,240" stroke="#BBB" />
+ <g font-family="Andalus,Diwani Letter,serif" font-size="50">
+ <text text-anchor="middle" x="240" y="60" xml:lang="ar" fill="#700">Ø¢Ù?ات</text>
+ <text text-anchor="start" x="460" y="60" xml:lang="ar">Ø¢Ù?ات</text>
+ <text text-anchor="end" x="20" y="60" xml:lang="ar" fill="#009">Ø¢Ù?ات</text>
+ </g>
+ <g font-family="FreeSerif, svgSerifHebrewArabic,serif" font-size="50">
+ <text text-anchor="middle" x="240" y="150" xml:lang="ar" fill="#700">Ù?ص</text>
+ <text text-anchor="start" x="460" y="150" xml:lang="ar">Ù?ص</text>
+ <text text-anchor="end" x="20" y="150" xml:lang="ar" fill="#009">Ù?ص</text>
+ <!--
+ <text text-anchor="middle" x="380" y="320">اﻠﻠﻪ لا</text>
+ -->
+ </g>
+ <g font-family="svgSerifHebrewArabic,serif" font-size="50">
+ <text text-anchor="middle" x="240" y="240" xml:lang="he" fill="#700">פע×?×?×?ת </text>
+ <text text-anchor="start" x="460" y="240" xml:lang="he">פע×?×?×?ת</text>
+ <text text-anchor="end" x="20" y="240" xml:lang="he" fill="#009">פע×?×?×?ת</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+
diff --git a/test/svg/svg1.2/svg/text-area-201-t.png b/test/svg/svg1.2/svg/text-area-201-t.png
new file mode 100644
index 0000000..67d2fa2
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-201-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-201-t.svg b/test/svg/svg1.2/svg/text-area-201-t.svg
new file mode 100644
index 0000000..ab1a4b2
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-201-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Testing 'textArea' with fixed 'width' and 'height'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-area-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing 'textArea' with fixed 'width' and 'height'</p>
+ <p>
+ Lines should break at character boundaries if there is not enough room to perform word breaks.
+ The 'height' of the first 'textArea' below (top-right) is less than that of the characters
+ so nothing should appear.
+ </p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-201-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" x="240" y="30" font-size="14" fill="#000">TextArea with Fixed Width and Height</text>
+ <text xml:id="comment-1" x="240" y="45">
+ Lines should break at character boundaries if there is not enough room to perform word breaks.
+ </text>
+ <text xml:id="comment-2" x="240" y="57">
+ The 'height' of the first 'textArea' below (top-right) is less than that of the characters
+ </text>
+ <text xml:id="comment-3" x="240" y="69">
+ so nothing should appear.
+ </text>
+ </g>
+ <text x="465" y="295" font-size="8" text-anchor="end" fill="#555">
+ Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919
+ </text>
+ <rect x="15" y="80" width="48" height="200" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="80" width="48" height="200" font-size="24" fill="#369">Together they searched all through the great palace and even to the farthest limits of the palace grounds, which were quite extensive, but nowhere could they find a trace of Ozma. When Dorothy returned to where Betsy and Trot awaited her, the little girl's face was rather solemn and troubled, for never before had Ozma gone away without telling her friends where she was going, or without an escort that befitted her royal state.</textArea>
+ <rect x="75" y="80" width="390" height="15" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="75" y="80" width="390" height="15" font-size="24" fill="#396">Together they searched all through the great palace and even to the farthest limits of the palace grounds, which were quite extensive, but nowhere could they find a trace of Ozma. When Dorothy returned to where Betsy and Trot awaited her, the little girl's face was rather solemn and troubled, for never before had Ozma gone away without telling her friends where she was going, or without an escort that befitted her royal state.</textArea>
+ <rect x="75" y="105" width="390" height="175" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="75" y="105" width="390" height="175" font-size="24" fill="#396">Together they searched all through the great palace and even to the farthest limits of the palace grounds, which were quite extensive, but nowhere could they find a trace of Ozma. When Dorothy returned to where Betsy and Trot awaited her, the little girl's face was rather solemn and troubled, for never before had Ozma gone away without telling her friends where she was going, or without an escort that befitted her royal state.</textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-202-t.png b/test/svg/svg1.2/svg/text-area-202-t.png
new file mode 100644
index 0000000..7b2392f
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-202-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-202-t.svg b/test/svg/svg1.2/svg/text-area-202-t.svg
new file mode 100644
index 0000000..56581ac
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-202-t.svg
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Testing 'textArea' with fixed 'width' and 'height'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-area-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing 'textArea' with fixed 'width' and 'height'</p>
+ <p>
+ Three 'textArea' elements contain words which are increasing in 'font-size'.
+
+ To pass, no characters should appear in the top-right box since the 'height' of the 'textArea' is less
+ than that of the characters.
+
+ There should be no characters outside of the border of the larger bottom-left box.
+
+ In the left-side box, there may be characters outside of the border, depending on whether
+ the implementation breaks words or not.
+ </p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" x="240" y="30" font-size="14" fill="#000">TextArea with Fixed Width and Height</text>
+ </g>
+ <text x="465" y="295" font-size="8" text-anchor="end" fill="#555">
+ Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919
+ </text>
+ <rect x="15" y="80" width="48" height="200" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="80" width="48" height="200" font-size="10" fill="#936">
+ <tspan>
+ <tspan font-size="10">Together </tspan>
+ <tspan font-size="11">they </tspan>
+ <tspan font-size="12">searched </tspan>
+ <tspan font-size="13">all </tspan>
+ <tspan font-size="14">through </tspan>
+ <tspan font-size="15">the </tspan>
+ <tspan font-size="16">great </tspan>
+ <tspan font-size="17">palace </tspan>
+ <tspan font-size="18">and </tspan>
+ <tspan font-size="19">even </tspan>
+ <tspan font-size="20">to </tspan>
+ <tspan font-size="21">the </tspan>
+ <tspan font-size="22">farthest </tspan>
+ <tspan font-size="23">limits </tspan>
+ <tspan font-size="24">of </tspan>
+ <tspan font-size="25">the </tspan>
+ <tspan font-size="26">palace </tspan>
+ <tspan font-size="27">grounds, </tspan>
+ <tspan font-size="28">which </tspan>
+ <tspan font-size="29">were </tspan>
+ <tspan font-size="30">quite </tspan>
+ <tspan font-size="31">extensive </tspan>
+ </tspan>
+ </textArea>
+ <rect x="75" y="80" width="390" height="15" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="75" y="80" width="390" height="15" font-size="10" fill="#396">
+ <tspan>
+ <tspan font-size="10">Together </tspan>
+ <tspan font-size="11">they </tspan>
+ <tspan font-size="12">searched </tspan>
+ <tspan font-size="13">all </tspan>
+ <tspan font-size="14">through </tspan>
+ <tspan font-size="15">the </tspan>
+ <tspan font-size="16">great </tspan>
+ <tspan font-size="17">palace </tspan>
+ <tspan font-size="18">and </tspan>
+ <tspan font-size="19">even </tspan>
+ <tspan font-size="20">to </tspan>
+ <tspan font-size="21">the </tspan>
+ <tspan font-size="22">farthest </tspan>
+ <tspan font-size="23">limits </tspan>
+ <tspan font-size="24">of </tspan>
+ <tspan font-size="25">the </tspan>
+ <tspan font-size="26">palace </tspan>
+ <tspan font-size="27">grounds, </tspan>
+ <tspan font-size="28">which </tspan>
+ <tspan font-size="29">were </tspan>
+ <tspan font-size="30">quite </tspan>
+ <tspan font-size="31">extensive </tspan>
+ </tspan>
+ </textArea>
+ <rect x="75" y="105" width="390" height="175" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="75" y="105" width="390" height="175" font-size="10" fill="#396">
+ <tspan>
+ <tspan font-size="10">Together </tspan>
+ <tspan font-size="11">they </tspan>
+ <tspan font-size="12">searched </tspan>
+ <tspan font-size="13">all </tspan>
+ <tspan font-size="14">through </tspan>
+ <tspan font-size="15">the </tspan>
+ <tspan font-size="16">great </tspan>
+ <tspan font-size="17">palace </tspan>
+ <tspan font-size="18">and </tspan>
+ <tspan font-size="19">even </tspan>
+ <tspan font-size="20">to </tspan>
+ <tspan font-size="21">the </tspan>
+ <tspan font-size="22">farthest </tspan>
+ <tspan font-size="23">limits </tspan>
+ <tspan font-size="24">of </tspan>
+ <tspan font-size="25">the </tspan>
+ <tspan font-size="26">palace </tspan>
+ <tspan font-size="27">grounds, </tspan>
+ <tspan font-size="28">which </tspan>
+ <tspan font-size="29">were </tspan>
+ <tspan font-size="30">quite </tspan>
+ <tspan font-size="31">extensive </tspan>
+ <tspan font-size="32">but </tspan>
+ <tspan font-size="33">nowhere </tspan>
+ <tspan font-size="34">could </tspan>
+ <tspan font-size="36">they </tspan>
+ <tspan font-size="37">find </tspan>
+ <tspan font-size="38">a </tspan>
+ <tspan font-size="39">trace </tspan>
+ <tspan font-size="40">of </tspan>
+ <tspan font-size="41">Ozma. </tspan>
+ </tspan>
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!-- <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-203-t.png b/test/svg/svg1.2/svg/text-area-203-t.png
new file mode 100644
index 0000000..86ce9ed
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-203-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-203-t.svg b/test/svg/svg1.2/svg/text-area-203-t.svg
new file mode 100644
index 0000000..e998f8f
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-203-t.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea with Animated Width and Height" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-area-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with Animated Width and Height</p>
+ <p>
+ A visible rectangle is drawn the same size as the textArea. The text
+ contained in the textArea should automatically wrap.
+ </p>
+ <p>
+ The textArea starts off as a 24x 24 square and is animated down to full
+ size. The text should continually rewrap as the textArea increases in
+ size.
+ </p>
+ <p>
+ The text is taken from "The Lost Princess of Oz" by Baum, L. Frank
+ (Lyman Frank), 1856-1919
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-203-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000">TextArea with Animated Width and Height</text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">
+ The text should continually rewrap as the 'textArea' decreases and increases in size.
+ </text>
+ <text x="465" y="290" font-size="8" text-anchor="end" fill="#555">
+ Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919
+ </text>
+ <rect x="15" y="60" height="215" width="450" fill="none" stroke="black" stroke-width="0.25">
+ <animate attributeName="width" from="450" to="10" calcMode="paced" begin="1s" dur="3s" fill="freeze"/>
+ <animate attributeName="height" from="215" to="10" calcMode="paced" begin="1s" dur="3s" fill="freeze"/>
+ <animate attributeName="width" from="10" to="450" calcMode="paced" begin="5s" dur="3s" fill="freeze"/>
+ <animate attributeName="height" from="10" to="215" calcMode="paced" begin="5s" dur="3s" fill="freeze"/>
+ </rect>
+ <textArea x="15" y="60" height="215" width="450" font-size="16" fill="#258">
+ <animate attributeName="width" from="450" to="10" calcMode="paced" begin="1s" dur="3s" fill="freeze"/>
+ <animate attributeName="height" from="215" to="10" calcMode="paced" begin="1s" dur="3s" fill="freeze"/>
+ <animate attributeName="width" from="10" to="450" calcMode="paced" begin="5s" dur="3s" fill="freeze"/>
+ <animate attributeName="height" from="10" to="215" calcMode="paced" begin="5s" dur="3s" fill="freeze"/>
+ Together they searched all through the great palace and even to the farthest limits of the palace grounds, which were quite extensive, but nowhere could they find a trace of Ozma. When Dorothy returned to where Betsy and Trot awaited her, the little girl's face was rather solemn and troubled, for never before had Ozma gone away without telling her friends where she was going, or without an escort that befitted her royal state. She was gone, however, and none had seen her go. Dorothy had met and questioned the Scarecrow, Tik-Tok, the Shaggy Man, Button-Bright, Cap'n Bill, and even the wise and powerful Wizard of Oz, but not one of them had seen Ozma since she parted with her friends the evening before and had gone to her own rooms.
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-204-t.png b/test/svg/svg1.2/svg/text-area-204-t.png
new file mode 100644
index 0000000..6f1602b
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-204-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-204-t.svg b/test/svg/svg1.2/svg/text-area-204-t.svg
new file mode 100644
index 0000000..0b667a5
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-204-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea with Animated Font-size" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-area-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with Animated Font-size</p>
+ <p>The font-size is animated from 32 to 8.5 - text should continually rewrap as the font-size decreases in size.</p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-204-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000">TextArea with Animated Font-size</text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">The text should continually rewrap as the 'font-size' decreases and increases in size.</text>
+ <text x="465" y="290" font-size="8" text-anchor="end" fill="#555">Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</text>
+ <rect x="15" y="60" height="215" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="60" width="450" height="215" font-size="16" fill="#259">
+ <animate xml:id="a1" attributeName="font-size" from="32" to="8.5" calcMode="paced" dur="3s" fill="freeze"/>
+ <animate xml:id="a2" attributeName="font-size" from="8.5" to="250" calcMode="paced" dur="3s" begin="a1.end" fill="freeze"/>
+ <animate attributeName="font-size" from="250" to="32" calcMode="paced" dur="3s" begin="a2.end" fill="freeze"/>
+ No sooner were the Wizard of Oz and his followers well within the castle entrance when the big gates swung to with a clang and heavy bars dropped across them. They looked at one another uneasily, but no one cared to speak of the incident. If they were indeed prisoners in the wicker castle, it was evident they must find a way to escape, but their first duty was to attend to the errand on which they had come and seek the Royal Ozma, whom they believed to be a prisoner of the magician, and rescue her.
+ <tbreak/>
+ They found they had entered a square courtyard, from which an entrance led into the main building of the castle. No person had appeared to greet them so far, although a gaudy peacock perched upon the wall cackled with laughter and said in its sharp, shrill voice, "Poor fools! Poor fools!"
+ <tbreak/>
+ "I hope the peacock is mistaken," remarked the Frogman, but no one else paid any attention to the bird. They were a little awed by the stillness and loneliness of the place. As they entered the doors of the castle, which stood invitingly open, these also closed behind them and huge bolts shot into place. The animals had all accompanied the party into the castle because they felt it would be dangerous for them to separate. They were forced to follow a zigzag passage, turning this way and that, until finally they entered a great central hall, circular in form and with a high dome from which was suspended an enormous chandelier.
+ <tbreak/>
+ The Wizard went first, and Dorothy, Betsy and Trot followed him, Toto keeping at the heels of his little mistress. Then came the Lion, the Woozy and the Sawhorse, then Cayke the Cookie Cook and Button-Bright, then the Lavender Bear carrying the Pink Bear, and finally the Frogman and the Patchwork Girl, with Hank the Mule tagging behind. So it was the Wizard who caught the first glimpse of the big, domed hall, but the others quickly followed and gathered in a wondering group just within the entrance.
+ <tbreak/>
+ Upon a raised platform at one side was a heavy table on which lay Glinda's Great Book of Records, but the platform was firmly fastened to the floor and the table was fastened to the platform and the Book was chained fast to the table, just as it had been when it was kept in Glinda's palace. On the wall over the table hung Ozma's Magic Picture. On a row of shelves at the opposite side of the hall stood all the chemicals and essences of magic and all the magical instruments that had been stolen from Glinda and Ozma and the Wizard, with glass doors covering the shelves so that no one could get at them.
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-205-t.png b/test/svg/svg1.2/svg/text-area-205-t.png
new file mode 100644
index 0000000..c07e8f4
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-205-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-205-t.svg b/test/svg/svg1.2/svg/text-area-205-t.svg
new file mode 100644
index 0000000..777fdbc
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-205-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea with Height Set to Auto" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-area-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with Height Set to Auto</p>
+ <p>Text should wrap at the right-hand margin and continue to the end of the paragraph.</p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-205-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000">TextArea with Height Set to Auto</text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">Text should wrap at the right-hand margin and continue to the end of the paragraph.</text>
+ <text x="465" y="290" font-size="8" text-anchor="end" fill="#555">Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</text>
+ <line x1="15" y1="60" x2="465" y2="60" stroke="black" stroke-width="0.25"/>
+ <line x1="15" y1="60" x2="15" y2="275" stroke="black" stroke-width="0.25"/>
+ <line x1="465" y1="60" x2="465" y2="275" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="60" width="450" height="auto" font-size="16" fill="#259" text-align="start">
+ With this, he jumped upon the back of the Sawhorse again, and the quaint steed, which never tired, dashed away at full speed. The three girls were very much disturbed in mind. Even the Patchwork Girl seemed to realize that a great calamity had overtaken them all. Ozma was a fairy of considerable power, and all the creatures in Oz as well as the three mortal girls from the outside world looked upon her as their protector and friend. The idea of their beautiful girl Ruler's being overpowered by an enemy and dragged from her splendid palace a captive was too astonishing for them to comprehend at first. Yet what other explanation of the mystery could there be?
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-206-t.png b/test/svg/svg1.2/svg/text-area-206-t.png
new file mode 100644
index 0000000..db87c48
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-206-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-206-t.svg b/test/svg/svg1.2/svg/text-area-206-t.svg
new file mode 100644
index 0000000..079f337
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-206-t.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea with Line-increment and Tbreak" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-area-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with Line-increment and Tbreak</p>
+ <p>The blue lines should appear below each of the five text lines in the 'textArea'.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-206-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000">TextArea with Line-increment and Tbreak</text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">
+ The blue lines should appear below each of the five text lines in the 'textArea'.
+ </text>
+ <g stroke="blue" stroke-width="1.5" stroke-opacity="0.6">
+ <line x1="15" y1="75" x2="465" y2="75"/>
+ <line x1="15" y1="95" x2="465" y2="95"/>
+ <line x1="15" y1="125" x2="465" y2="125"/>
+ <line x1="15" y1="175" x2="465" y2="175"/>
+ <line x1="15" y1="275" x2="465" y2="275"/>
+ </g>
+ <rect x="15" y="60" width="450" height="225" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="60" width="450" height="225" fill="#285" text-align="start">
+ <tspan line-increment="15">
+ 1. 'line-increment' set to 15.<tspan font-size="15">ABCDEF</tspan>
+ </tspan>
+ <tspan line-increment="20">
+ <tbreak/>2. 'line-increment' set to 20. <tspan font-size="20">ABCDEF</tspan>
+ </tspan>
+ <tspan line-increment="30">
+ <tbreak/>3. 'line-increment' set to 30. <tspan font-size="30">ABCDEF</tspan>
+ </tspan>
+ <tspan line-increment="50">
+ <tbreak/>4. 'line-increment' set to 50. <tspan font-size="50">ABCDEF</tspan>
+ </tspan>
+ <tspan line-increment="100">
+ <tbreak/>5. 'line-increment' set to 100. <tspan font-size="100">ABCD</tspan>
+ </tspan>
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-207-t.png b/test/svg/svg1.2/svg/text-area-207-t.png
new file mode 100644
index 0000000..833a976
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-207-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-207-t.svg b/test/svg/svg1.2/svg/text-area-207-t.svg
new file mode 100644
index 0000000..51e109a
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-207-t.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea Transformed by Rotation" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-area-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea Transformed by Rotation</p>
+ <p>The three 'textArea's should be rotated by 35, 90 and 180 degrees.</p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-207-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000">TextArea Transformed by Rotation</text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">
+ The three textArea's should be rotated by 35, 90 and 180 degrees.
+ </text>
+ <text x="465" y="290" font-size="8" text-anchor="end" fill="#555" visibility="visible">
+ Excerpts from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919
+ </text>
+ <g transform="rotate(35,80,-15)">
+ <rect x="130" y="40" width="195" height="130" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="130" y="40" width="195" height="130" font-size="14" fill="#259">
+ "Stone, is it?" Scraps, who was again dancing wildly around, for she never tired and could never keep still for long.<tbreak/>
+ "Course it's stone," answered Betsy scornfully.<tbreak/>
+ "Can't you see?"<tbreak/>
+ "Yes," said Scraps, going closer. "I can SEE the wall, but I can't FEEL it." And then, with her arms outstretched, she did a very queer thing. She walked right into the wall and disappeared.<tbreak/>
+ "For goodness sake!" Dorothy, amazed, as indeed they all were.<tbreak/>
+ "The gates must be around the other side," said the Wizard. "Let us follow the curve of the wall until we reach an opening in it."<tbreak/>
+ "Which way?" asked Dorothy.<tbreak/>
+ "We must guess that," he replied. "Suppose we go to the left. One direction is as good as another." They formed in marching order and went around the city wall to the left. It wasn't a big city, as I have said, but to go way around it outside the high wall was quite a walk, as they became aware. But around it our adventurers went without finding any sign of a gateway or other opening. When they had returned to the little mound from which they had started, they dismounted from the animals and again seated themselves on the grassy mound.
+ </textArea>
+ </g>
+ <g transform="rotate(90,50,50)">
+ <rect x="65" y="-365" width="100" height="205" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="65" y="-365" width="100" height="205" font-size="14" fill="#259">
+ The others of the party, however they might be puzzled by the serious problem that confronted them, would not allow themselves to despair.<tbreak/>
+ "If we once get over these mountains," said Button-Bright, "we could probably get along all right."<tbreak/>
+ "True enough," agreed Dorothy. "So we must find some way, of course, to get past these whirligig hills. But how?"<tbreak/>
+ "I wish the Ork was with us," sighed Trot.<tbreak/>
+ "But the Ork isn't here," said the Wizard, "and we must depend upon ourselves to conquer this difficulty. Unfortunately, all my magic has been stolen, otherwise I am sure could easily get over the mountains."<tbreak/>
+ "Unfortunately," observed the Woozy, "none of us has wings. And we're in a magic country without any magic."<tbreak/>
+ "What is that around your waist, Dorothy?" asked the Wizard.<tbreak/>
+ "That? Oh, that's just the Magic Belt I once captured from the Nome King," she replied.
+ </textArea>
+ </g>
+ <g transform="rotate(180,50,50)">
+ <rect x="-365" y="-175" width="205" height="100" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="-365" y="-175" width="205" height="100" font-size="14" fill="#259">
+ "A Magic Belt! Why, that's fine. I'm sure a Magic Belt would take you over these hills.".<tbreak/>
+ "It might if I knew how to work it," said the little girl. "Ozma knows a lot of its magic, but I've never found out about it. All I know is that while I am wearing it, nothing can hurt me.".<tbreak/>
+ "Try wishing yourself across and see if it will obey you," suggested the Wizard..<tbreak/>
+ "But what good would that do?" asked Dorothy. "If I got across, it wouldn't help the rest of you, and I couldn't go alone among all those giants and dragons while you stayed here.".<tbreak/>
+ "True enough," agreed the Wizard sadly. And then, after looking around the group, he inquired, "What is that on your finger, Trot?".<tbreak/>
+ "A ring. The Mermaids gave it to me," she explained, "and if ever I'm in trouble when I'm on the water, I can call the Mermaids and they'll come and help me. But the Mermaids can't help me on the land, you know, 'cause they swim, and--and--they haven't any legs.".<tbreak/>
+ "True enough," repeated the Wizard, more sadly.
+ </textArea>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-208-t.png b/test/svg/svg1.2/svg/text-area-208-t.png
new file mode 100644
index 0000000..d672a2b
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-208-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-208-t.svg b/test/svg/svg1.2/svg/text-area-208-t.svg
new file mode 100644
index 0000000..06f8491
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-208-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea with Both Width and Height Set to Auto" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-area-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with Both Width and Height Set to Auto</p>
+ <p>
+ The eight lines of numbers should not wrap. Each line is terminated by a tbreak element.
+ They have numbers from 0 to 50. Each line increases the 'font-size' by 25%.
+ The 'line-increment' attribute is not used.
+ </p>
+ <p>
+ This test is passed if eight lines of numbers are rendered and not
+ wrapped to a new line. Numbers displayed will decrease with each line.
+ Every line must begin with number 0.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-208-t.svg,v $</title>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="25" font-size="14" text-anchor="middle" fill="#000">TextArea with Both Width and Height Set to Auto</text>
+ <text xml:id="comment-1" x="240" y="40" font-size="11" text-anchor="middle" fill="#555">
+ The following eight lines of numbers should not wrap. They have numbers from 0 to 50.
+ </text>
+ <text xml:id="comment-2" x="240" y="52" font-size="11" text-anchor="middle" fill="#555">
+ Each line increases the 'font-size' by 25%. The 'line-increment' attribute is not used.
+ </text>
+ <line x1="15" y1="63" x2="465" y2="63" stroke="black" stroke-width="0.25"/>
+ <line x1="15" y1="63" x2="15" y2="290" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="60" width="auto" height="auto" font-size="13" xml:space="default">
+ <tspan fill="#285">
+ <tspan font-size="13">0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50</tspan>
+ <tspan font-size="16.25">
+ <tbreak/>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ </tspan>
+ <tspan font-size="19.5">
+ <tbreak/>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ </tspan>
+ <tspan font-size="22.75">
+ <tbreak/>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ </tspan>
+ <tspan font-size="26">
+ <tbreak/>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ </tspan>
+ <tspan font-size="29.25">
+ <tbreak/>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ </tspan>
+ <tspan font-size="32.5">
+ <tbreak/>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ </tspan>
+ <tspan font-size="35.75">
+ <tbreak/>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ </tspan>
+ </tspan>
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-209-t.png b/test/svg/svg1.2/svg/text-area-209-t.png
new file mode 100644
index 0000000..e36e24e
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-209-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-209-t.svg b/test/svg/svg1.2/svg/text-area-209-t.svg
new file mode 100644
index 0000000..bdd468e
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-209-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea Testing Word Breaks and Tbreak" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-area-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea Testing Word Breaks and Tbreak</p>
+ <p>
+ Each word should break onto a new line. The left-hand 'textArea' has no 'tbreak' elements
+ while the right-hand one uses 'tbreak' after each word. Both should appear the same.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-209-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="25" font-size="14" text-anchor="middle" fill="#000">TextArea Testing Word Breaks and Tbreak</text>
+ <text xml:id="comment-1" x="240" y="40" font-size="11" text-anchor="middle" fill="#555">
+ Each word should break onto a new line. The left-hand 'textArea' has no 'tbreak' elements
+ </text>
+ <text xml:id="comment-2" x="240" y="52" font-size="11" text-anchor="middle" fill="#555">
+ while the right-hand one uses 'tbreak' after each word. Both should appear the same.
+ </text>
+ <rect x="15" y="65" height="220" width="220" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="65" height="220" width="220" font-size="12" xml:space="default" fill="#359">
+ Pseudopseudohypoparathyroidism Dichlorodiphenyltrichloroethane Floccinaucinihilipilification Honorificabilitudinitatibus Trinitrophenylmethylnitramine Paradimethylaminobenzaldehyde Cystoureteropyelonephritis Ethylenediaminetetraacetate Octamethylpyrophosphoramide Electroencephalographically Antitransubstantiationalist Hydroxydesoxycorticosterone Methylchloroisothiazolinone Ethylenediaminetetraacetic Anhydrohydroxyprogesterone Antidisestablishmentarianism Requeterequeteacostumbrado Superpsicoanalisticamente Anticonstitutionnellement Sobreabundantisimamente Apesadumbradisimamente Otorrinolaringologistico Endocrinologicamente
+ </textArea>
+ <rect x="245" y="65" height="220" width="220" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="245" y="65" height="220" width="220" font-size="12" xml:space="default" fill="#359">
+ Pseudopseudohypoparathyroidism <tbreak/>Dichlorodiphenyltrichloroethane <tbreak/>Floccinaucinihilipilification <tbreak/>Honorificabilitudinitatibus <tbreak/>Trinitrophenylmethylnitramine <tbreak/>Paradimethylaminobenzaldehyde <tbreak/>Cystoureteropyelonephritis <tbreak/>Ethylenediaminetetraacetate <tbreak/>Octamethylpyrophosphoramide <tbreak/>Electroencephalographically <tbreak/>Antitransubstantiationalist <tbreak/>Hydroxydesoxycorticosterone <tbreak/>Methylchloroisothiazolinone <tbreak/>Ethylenediaminetetraacetic <tbreak/>Anhydrohydroxyprogesterone <tbreak/>Antidisestablishmentarianism <tbreak/>Requeterequeteacostumbrado <tbreak/>Superpsicoanalisticamente <tbreak/>Anticonstitutionnellement <tbreak/>Sobreabundantisimamente <tbreak/>Apesadumbradisimamente <tbreak/>Otorrinolaringologistico <tbreak/>Endocrinologicamente <tbreak/>
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-210-t.png b/test/svg/svg1.2/svg/text-area-210-t.png
new file mode 100644
index 0000000..a1708c9
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-210-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-210-t.svg b/test/svg/svg1.2/svg/text-area-210-t.svg
new file mode 100644
index 0000000..bc2c8c6
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-210-t.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Testing 'rotate' attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-area-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing "tbreak"</p>
+ <p>The gap between the lines should be as described</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-210-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000"><tbreak></text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">This slides tests the behaviour of <tbreak> in various situations</text>
+
+ <rect x="15" y="60" height="215" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="60" width="450" height="215" font-size="16" fill="#259"><tbreak/>
+This line should not be at the top of the textArea<tbreak/>
+This line should be immediately below the previous one<tbreak/>
+<tbreak/>
+There should be a gap between this line and the previous<tbreak/>
+<tbreak/>
+ <tbreak/>
+There should be a big gap between this line and the previous<tbreak/>
+<tspan line-increment="32"><tbreak/></tspan>
+There should be a big gap between this line and the previous<tbreak/>
+<tbreak/>
+<tbreak/>
+<tbreak/>
+<tbreak/>
+<tbreak/>
+<tbreak/>
+<tbreak/>
+<tbreak/>
+<tspan fill="red">This line should not be visible !</tspan>
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-211-t.png b/test/svg/svg1.2/svg/text-area-211-t.png
new file mode 100644
index 0000000..01a5a34
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-211-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-211-t.svg b/test/svg/svg1.2/svg/text-area-211-t.svg
new file mode 100644
index 0000000..5faca6e
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-211-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Testing 'tbreak' attribute while animating 'font-size' in 'tspan' in 'textArea'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: text-area-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with Line-increment and Tbreak</p>
+ <p>Testing 'tbreak' while animating the 'font-size' attribute in 'tspan' in 'textArea'</p>
+ <p>
+ This test defines one 'textArea' element with a 'tspan' child. The 'tspan' has as red fill and also an animation
+ which animates the font-size from 0 to 20. The tspan element has a tbreak element before and after it.
+ </p>
+ <p>
+ To pass, the red text should both start and end on a new line, even when the font-size of the tspan is animated.
+ </p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-211-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="#555" font-size="10" text-anchor="middle">
+ <text fill="#000" x="240" font-size="14" y="20" xml:id="display-title">TextArea with Line-increment and Tbreak</text>
+ </g>
+ <text x="465" y="295" font-size="8" text-anchor="end" fill="#555">Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</text>
+ <rect x="15" y="70" height="210" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="70" width="450" height="210" font-size="19" fill="#259">
+ The turning movement now stopped, and the room became stationary. Looking far up, they saw Ugu suspended in his cage
+ at the very top, which had once been the floor.
+ <tspan fill="#905">
+ <tbreak/>"Ah," said he, grinning down at them, "the way to conquer is to act, and he who acts promptly is sure to win.
+ This makes a very good prison, from which I am sure you cannot escape. Please amuse yourselves in any way you like,
+ but I must beg you to excuse me, as I have business in another part of my castle."
+ <animate xml:id="a1" attributeName="font-size" from="19" to="0" calcMode="paced" begin="1s" dur="3s"/>
+ <animate attributeName="font-size" from="0" to="25" calcMode="paced" begin="a1.end" dur="3s" fill="freeze"/>
+ </tspan>
+ <tbreak/>Saying this, he opened a trap door in the floor of his cage (which was now over his head) and climbed through it
+ and disappeared from their view. The diamond dishpan still remained in the cage, but the bars kept it from falling down
+ on their heads.
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!-- <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-213-t.png b/test/svg/svg1.2/svg/text-area-213-t.png
new file mode 100644
index 0000000..4075ce6
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-213-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-213-t.svg b/test/svg/svg1.2/svg/text-area-213-t.svg
new file mode 100644
index 0000000..10c2b96
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-213-t.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea with Animated Width and Height" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-area-213-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with Animated Width and Height</p>
+ <p>
+ A visible rectangle is drawn the same size as the textArea. The text contained in the textArea should
+ automatically wrap.
+ </p>
+ <p>
+ The textArea starts off as a 24x 24 square and is animated down to full size. The text should continually
+ rewrap as the textArea increases in size.
+ </p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-213-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000">TextArea with display-align </text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">
+ The text should be clipped properly for each display-align value, as height animates
+ </text>
+ <text x="365" y="290" font-size="8" text-anchor="end" fill="#555">
+ Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919
+ </text>
+
+ <g transform="translate(0,130)">
+ <text x="420" y="0" text-anchor="middle" font-style="italic">
+ default
+ <set xml:id="aDefault" attributeName="fill" to="red" begin="0" dur="6"/>
+ </text>
+ <text x="420" y="15" text-anchor="middle" >
+ auto
+ <set xml:id="aAuto" attributeName="fill" to="red" begin="aDefault.end" dur="6"/>
+ </text>
+ <text x="420" y="30" text-anchor="middle" >
+ before
+ <set xml:id="aBefore" attributeName="fill" to="red" begin="aAuto.end" dur="6"/>
+ </text>
+ <text x="420" y="45" text-anchor="middle" >
+ center
+ <set xml:id="aCenter" attributeName="fill" to="red" begin="aBefore.end" dur="6"/>
+ </text>
+ <text x="420" y="60" text-anchor="middle" >
+ after
+ <set xml:id="aAfter" attributeName="fill" to="red" begin="aCenter.end" />
+ </text>
+ </g>
+
+ <rect x="15" y="60" height="215" width="350" fill="none" stroke="black" stroke-width="0.25">
+ <animate xml:id="a1" attributeName="height" from="215" to="0" calcMode="paced" begin="aDefault.begin+1;aAuto.begin+1;aBefore.begin+1;aCenter.begin+1;aAfter.begin+1" dur="2s" fill="freeze"/>
+ <animate xml:id="a2" attributeName="height" from="0" to="215" calcMode="paced" begin="a1.end" dur="2s" fill="freeze"/>
+ </rect>
+ <textArea x="15" y="60" height="215" width="350" font-size="16" fill="#258" >
+ <set attributeName="display-align" to="auto" begin="aAuto.begin" />
+ <set attributeName="display-align" to="before" begin="aBefore.begin" />
+ <set attributeName="display-align" to="center" begin="aCenter.begin" />
+ <set attributeName="display-align" to="after" begin="aAfter.begin" />
+ <animate attributeName="height" from="215" to="0" calcMode="paced" begin="a1.begin" dur="2s" fill="freeze"/>
+ <animate attributeName="height" from="0" to="215" calcMode="paced" begin="a1.end" dur="2s" fill="freeze"/>
+ Together they searched all through the great palace and even to the farthest limits of the palace grounds, which were quite extensive, but nowhere could they find a trace of Ozma. When Dorothy returned to where Betsy and Trot awaited her, the little girl's face was rather solemn and troubled...
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-220-t.png b/test/svg/svg1.2/svg/text-area-220-t.png
new file mode 100644
index 0000000..e5553e4
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-220-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-220-t.svg b/test/svg/svg1.2/svg/text-area-220-t.svg
new file mode 100644
index 0000000..2e781c2
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-220-t.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Testing 'rotate' attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-area-220-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing "textArea"</p>
+ <p>A visible rectangle is drawn the same size as the textArea. The text contained in the textArea should automatically wrap.</p>
+ <p>The textArea starts off as a 24x 24 square and is animated down to full size. The text should continually rewrap as the textArea increases in size.</p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-220-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="30" font-size="14" text-anchor="middle" fill="#000">'textArea' with 'text-align' set to 'end'</text>
+ <text xml:id="comment-1" x="240" y="45" font-size="11" text-anchor="middle" fill="#555">All text should be right-justified. Each paragraph is terminated with a double 'tbreak'.</text>
+ <text x="465" y="290" font-size="8" text-anchor="end" fill="#555">Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</text>
+ <rect x="15" y="60" height="215" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="60" width="450" height="215" font-size="16" fill="#259" text-align="end">
+ "Just as you like, Ugu," said Dorothy, resuming her seat. "Perhaps you are right, for you're certainly a better dove than you were a man, and if you should ever backslide an' feel wicked again, you couldn't do much harm as a gray dove."
+ <tbreak/><tbreak/>
+ "Then you forgive me for all the trouble I caused you?" he asked earnestly.
+ <tbreak/><tbreak/>
+ "Of course. Anyone who's sorry just has to be forgiven."
+ <tbreak/><tbreak/>
+ "Thank you," said the gray dove, and flew away again.
+ <tbreak/><tbreak/>
+ <tspan font-style="italic">THE END</tspan>
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-221-t.png b/test/svg/svg1.2/svg/text-area-221-t.png
new file mode 100644
index 0000000..34f9ef9
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-221-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-221-t.svg b/test/svg/svg1.2/svg/text-area-221-t.svg
new file mode 100644
index 0000000..146b26d
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-221-t.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="TextArea with Line-increment and Text-anchor" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-area-221-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>TextArea with line-increment, text-align and display-align</p>
+ <p>
+ All text should be centered vertically and horizontally.
+ The 'font-size' is varied along with 'line-increment'.
+ </p>
+ <p>The text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-221-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="display-title" x="240" y="25" font-size="14" text-anchor="middle" fill="#000">TextArea with line-increment, text-align and display-align</text>
+ <text xml:id="comment-1" x="240" y="40" font-size="11" text-anchor="middle" fill="#555">
+ All text should be centered horizontally and vertically.
+ </text>
+ <text x="465" y="290" font-size="8" text-anchor="end" fill="#555" visibility="hidden">
+ Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919
+ </text>
+ <rect x="15" y="60" width="450" height="220" fill="none" stroke="black" stroke-width="0.25"/>
+ <textArea x="15" y="60" width="450" height="220" fill="#259" text-align="center" font-size="40" display-align="center">
+ The Lost Princess of Oz
+ <tspan line-increment="25">
+ <tbreak/>
+ </tspan>
+ <tspan font-size="20">
+ by<tbreak/>
+ </tspan>
+ <tspan font-size="24" line-increment="28">
+ Baum, L. Frank (Lyman Frank)<tbreak/>
+ <tspan font-size="18">1856-1919</tspan>
+ <tbreak/>
+ </tspan>
+ <tspan font-size="16" line-increment="20">
+ The eleventh book in the OZ set<tbreak/>
+ Published 1917
+ </tspan>
+ </textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-area-222-t.png b/test/svg/svg1.2/svg/text-area-222-t.png
new file mode 100644
index 0000000..26e2f5d
Binary files /dev/null and b/test/svg/svg1.2/svg/text-area-222-t.png differ
diff --git a/test/svg/svg1.2/svg/text-area-222-t.svg b/test/svg/svg1.2/svg/text-area-222-t.svg
new file mode 100644
index 0000000..3f36221
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-area-222-t.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ASL" owner="AE" desc="Testing 'textArea' with fixed 'width' and 'height'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-area-222-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing 'textArea' with editable attribute</p>
+ <p>Activating a textArea element should bring up UI asking for new text</p>
+ <p>The initial text is taken from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-area-222-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle" font-size="10" fill="#555">
+ <text xml:id="display-title" x="240" y="30" font-size="14" fill="#000">TextArea with editable attribute</text>
+ <text xml:id="comment-1" x="240" y="45">
+ Activating a textArea element should allow edit of textArea contents.
+ </text>
+ </g>
+ <text x="465" y="295" font-size="8" text-anchor="end" fill="#555">
+ Excerpt from "The Lost Princess of Oz" by Baum, L. Frank (Lyman Frank), 1856-1919
+ </text>
+ <rect x="15" y="80" width="48" height="200" fill="none" stroke="black" stroke-width="2">
+ <set attributeName="stroke" to="red" begin="text1.focusin" end="text1.focusout"/>
+ </rect>
+
+ <textArea xml:id="text1" editable="simple" x="15" y="80" width="48" height="200" font-size="24" fill="#369">Together they searched all through the great palace and even to the farthest limits of the palace grounds, which were quite extensive, but nowhere could they find a trace of Ozma.</textArea>
+
+ <rect x="75" y="105" width="390" height="175" fill="none" stroke="black" stroke-width="2">
+ <set attributeName="stroke" to="red" begin="text2.focusin" end="text2.focusout"/>
+ </rect>
+
+ <textArea xml:id="text2" editable="simple" x="75" y="105" width="390" height="175" font-size="24" fill="#396">Together they searched all through the great palace and even to the farthest limits of the palace grounds, which were quite extensive, but nowhere could they find a trace of Ozma.</textArea>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-edit-201-t.png b/test/svg/svg1.2/svg/text-edit-201-t.png
new file mode 100644
index 0000000..ea486df
Binary files /dev/null and b/test/svg/svg1.2/svg/text-edit-201-t.png differ
diff --git a/test/svg/svg1.2/svg/text-edit-201-t.svg b/test/svg/svg1.2/svg/text-edit-201-t.svg
new file mode 100644
index 0000000..5545568
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-edit-201-t.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE,AN" owner="ED" desc="Test editable in textArea" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: text-edit-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test checks basic text-editing capabilities.
+ </p>
+ <p>
+ Start editing by activating the textArea that has a green dashed outline.
+ This textArea has no child text content, but has a defined width and height.
+ Input the string "123 456" (one two three, space, space, four five six).
+
+ After input is complete, click the button labeled "Check #1". If the frame around
+ the textArea goes from being dashed to being solid then that part of the test has passed.
+ Another condition is that the text string "123 456" should look like it only has one space
+ and not two due to the whitespace handling rules.
+ </p>
+ <p>
+ Next activate the middle textArea that has a red dashed outline.
+ Input two spaces between 3 and 4. Now since this textArea has xml:space="preserve" those
+ two spaces should be rendered as two spaces, meaning it must look different from the first
+ textArea on the left. The textContent must be the same in both cases though, and this is
+ verified by clicking the button labeled "Check #2". If the test is successful the frame
+ will turn from dashed red to solid red.
+ </p>
+ <p>
+ Finally activate the rightmost textArea that has a blue dashed outline.
+ Then exit the editing mode without changing the text. The text must not change and the 'tbreak' element
+ must be kept in the position it's in. Now activate the textArea again and input an additional linebreak between 3 and 4.
+ The line "345" must now be on the third line, the second line being blank.
+ Click the button labeled "Check #3" to verify the result, the frame will turn from dashed
+ blue to solid blue if successful.
+ </p>
+ <p>
+ The test has passed if after inputting text according to the instructions above and clicking the three
+ buttons the rendered image matches the reference image exactly.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-edit-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18" stroke-width="2">
+
+ <text y="50" x="240" text-anchor="middle">Test editable text in textArea</text>
+
+ <g transform="translate(50,100)">
+ <text x="50" y="-10" text-anchor="middle" font-size="9" xml:space="preserve">Input the string "123 456" (two spaces).</text>
+
+ <textArea xml:id="ta1" width="100" height="100" pointer-events="boundingBox" editable="simple"> </textArea>
+ <rect xml:id="r1" width="100" height="100" stroke="green" fill="none" stroke-dasharray="5,5"/>
+
+ <rect y="110" width="100" height="20" rx="5" fill="none" stroke="green" pointer-events="fill">
+ <handler xe:event="click">
+ if(document.getElementById("ta1").textContent == "123 456")
+ document.getElementById("r1").setAttributeNS(null, "stroke-dasharray", "none");
+ </handler>
+ </rect>
+ <text x="50" y="126" text-anchor="middle" pointer-events="none">Check #1</text>
+ </g>
+ <g transform="translate(190,140)">
+ <text x="50" y="-10" text-anchor="middle" font-size="9">Insert two spaces between 3 and 4.</text>
+
+ <textArea xml:id="ta2" width="100" height="100" xml:space="preserve" pointer-events="boundingBox" editable="simple">123456</textArea>
+ <rect xml:id="r2" width="100" height="100" stroke="red" fill="none" stroke-dasharray="5,5"/>
+
+ <rect y="110" width="100" height="20" rx="5" fill="none" stroke="red" pointer-events="fill">
+ <handler xe:event="click">
+ if(document.getElementById("ta2").textContent == "123 456")
+ document.getElementById("r2").setAttributeNS(null, "stroke-dasharray", "none");
+ </handler>
+ </rect>
+ <text x="50" y="126" text-anchor="middle" pointer-events="none">Check #2</text>
+ </g>
+ <g transform="translate(330,100)">
+ <text x="50" y="-10" text-anchor="middle" font-size="9">Insert an additional linefeed between 3 and 4.</text>
+
+ <textArea xml:id="ta3" width="100" height="100" pointer-events="boundingBox" editable="simple">
+ 123<tbreak/>456
+ </textArea>
+ <rect xml:id="r3" width="100" height="100" stroke="blue" fill="none" stroke-dasharray="5,5"/>
+
+ <rect y="110" width="100" height="20" rx="5" fill="none" stroke="blue" pointer-events="fill">
+ <handler xe:event="click">
+ <![CDATA[
+ var ta = document.getElementById("ta3");
+ if (ta.textContent == "123456" &&
+ ta.firstElementChild.localName == 'tbreak' &&
+ ta.lastElementChild.localName == 'tbreak' &&
+ ta.firstElementChild != ta.lastElementChild &&
+ ta.firstElementChild.nextElementSibling == ta.lastElementChild)
+ document.getElementById("r3").setAttributeNS(null, "stroke-dasharray", "none");
+ ]]>
+ </handler>
+ </rect>
+ <text x="50" y="126" text-anchor="middle" pointer-events="none">Check #3</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!-- <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/text-fonts-01-t.png b/test/svg/svg1.2/svg/text-fonts-01-t.png
new file mode 100644
index 0000000..100fac6
Binary files /dev/null and b/test/svg/svg1.2/svg/text-fonts-01-t.png differ
diff --git a/test/svg/svg1.2/svg/text-fonts-01-t.svg b/test/svg/svg1.2/svg/text-fonts-01-t.svg
new file mode 100644
index 0000000..debda5c
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-fonts-01-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DS" owner="CL," desc="Test that viewer has the basic capability to handle different font families" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-fonts-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Purpose of test is to determine if the font family is being correctly selected. The top two lines of text test serif fonts; the top line in maroon tests the generic font family 'serif' and the second line in black tests a selection of commonly available named serif fonts. The next two lines of text test sans-serif fonts; the top line in maroon tests the generic font family 'sans-serif' and the second line in black tests a selection of commonly available named sans serif fonts. The following two lines of text test monospaced fonts; the top line in maroon tests the generic font family 'monospaced' and the second line in black tests a selection of commonly available named monospaced fonts. The lowercase 'i' and uppercase'W' should be the same width,for monospaced fonts.</p>
+ <p>The seventh line of text, in green, tests for three non-existent fonts (nonsense names). There is no fallback generic font specified. The text must be displayed anyway.</p>
+ <p>The first six lines contain two Japanese characters (画像) at the end of the line. Both of these characters must be displayed, although it is compliant to display them with the 'missing glyph' if no suitable font containing Japanese characters can be found. Most but not all fonts have a visible missing glyph character. If the selected font has a visible missing glyph character, it should appear wherever the corresponding glyph is not available.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-fonts-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-weight="normal" font-size="24" stroke="none">
+ <text font-family="Georgia, 'Minion Web', 'Times New Roman', Times, 'MS PMincho', Heisei-Mincho, serif " x="20" y="80">A serifed face ç?»å??</text>
+ <text font-family="Arial, 'Arial Unicode', 'Myriad Web', Geneva, 'Lucida Sans Unicode', 'MS PGothic', Osaka, sans-serif " x="20" y="160">A sans-serif face ç?»å??</text>
+ <text font-family="'Lucida Console', 'Courier New', Courier, Monaco, 'MS Gothic', Osaka-Mono, monospace" x="20" y="240">A mono (iW) face ç?»å??</text>
+ <g xml:id="generic" fill="maroon">
+ <text font-family="serif" x="40" y="50">A serifed face ç?»å??</text>
+ <text font-family="sans-serif " x="40" y="130">A sans-serif face ç?»å??</text>
+ <text font-family="monospace " x="40" y="210">A mono (iW) face ç?»å??</text>
+ </g>
+ <text fill="green" font-family="'No such font at all', 'another fictitious one', sillynamewithoutspaces" x="40" y="290">This must be displayed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-fonts-02-t.png b/test/svg/svg1.2/svg/text-fonts-02-t.png
new file mode 100644
index 0000000..eaa35c9
Binary files /dev/null and b/test/svg/svg1.2/svg/text-fonts-02-t.png differ
diff --git a/test/svg/svg1.2/svg/text-fonts-02-t.svg b/test/svg/svg1.2/svg/text-fonts-02-t.svg
new file mode 100644
index 0000000..8816e86
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-fonts-02-t.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DS" owner="CL," desc="Test that viewer has the basic capability to handle different font weights" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-fonts-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Purpose of test is to determine if the font weight is being correctly rendered. A number of font families are specified. The numerical weight values (100 to 900) should show the lighter weights on the lower numbers and the heavier weights on the larger numbers. Heavier is defined to mean 'no lighter'.</p>
+ <p>If only one font weight is available, they should all display at the same weight. The transition from black to green figures shows the correct light to bold transition for the common case where two weights are available. If three or more weights are available, see the CSS2 specification for how these are allocated to the nine weight numbers.</p>
+ <p>The absolute keywords 'normal' and bold' are tested by the first two lines on the right hand side of the test, the third line of text tests the to 'bolder' relative keyword and the fourth tests the 'lighter' relative keyword.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-fonts-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Georgia,'Times New Roman',Times,'MS Mincho',serif" font-size="30">
+ <text font-weight="100" x="360" y="50">100</text>
+ <text font-weight="200" x="360" y="85">200</text>
+ <text font-weight="300" x="360" y="120">300</text>
+ <text font-weight="400" x="360" y="155">400</text>
+ <text font-weight="500" x="360" y="190">500</text>
+ <text fill="green" font-weight="600" x="360" y="225">600</text>
+ <text fill="green" font-weight="700" x="360" y="260">700</text>
+ <text fill="green" font-weight="800" x="360" y="295">800</text>
+ <text fill="green" font-weight="900" x="360" y="330">900</text>
+ <text font-weight="bold" x="60" y="80">This is bold</text>
+ <text font-weight="normal" x="60" y="130">This is normal</text>
+ <g font-weight="normal" fill="blue">
+ <text font-weight="bolder" x="60" y="180">Blue is bolder</text>
+ </g>
+ <g font-weight="bold" fill="blue">
+ <text font-weight="lighter" x="60" y="230">Blue is lighter</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-fonts-03-t.png b/test/svg/svg1.2/svg/text-fonts-03-t.png
new file mode 100644
index 0000000..53af40f
Binary files /dev/null and b/test/svg/svg1.2/svg/text-fonts-03-t.png differ
diff --git a/test/svg/svg1.2/svg/text-fonts-03-t.svg b/test/svg/svg1.2/svg/text-fonts-03-t.svg
new file mode 100644
index 0000000..7c56a30
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-fonts-03-t.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="MI" desc="Testing font-family attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-fonts-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Testing font-family attribute. Two SVG fonts are defined. Various text elements are then used with varying values for the font-family attribute. The first two text elements should display in their respective fonts, the last two should be displayed using the system font since the value specified for font-family is either invalid or not specified.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-fonts-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font>
+ <font-face font-family="SVGHaettenschweiler" />
+ <glyph unicode="A" horiz-adv-x="440" d="M440 0l-160 0 -20 180 -80 0 -20 -180 -160 0 120 700 200 0 120 -700zm-200 280l-20 220 -20 -220 40 0z" />
+ <glyph unicode="B" horiz-adv-x="378" d="M20 0l0 700 180 0c40,0 80,0 100,-20 40,-20 60,-60 60,-100l0 -100c0,-60 -40,-80 -100,-100 80,-20 100,-60 100,-100l0 -140c0,-40 -20,-80 -40,-100 -40,-20 -60,-40 -100,-40l-200 0zm200 460l0 120c0,20 -20,20 -40,20l0 -180c20,0 40,0 40,40zm0 -340l0 180c0,20 -20,40 -40,40l0 -260c20,0 40,20 40,40z" />
+ <glyph unicode="C" horiz-adv-x="370" d="M360 460l-140 0 0 140c0,0 -20,20 -20,20 -20,0 -20,-20 -20,-20l0 -500c0,0 0,0 20,0 0,0 20,0 20,0l0 180 140 0 0 -180c0,-20 -20,-60 -60,-80 -20,-20 -60,-20 -100,-20 -120,0 -180,40 -180,120l0 460c0,80 60,120 180,120 100,0 160,-40 160,-120l0 -120z" />
+ </font>
+ <font>
+ <font-face font-family="SVGCharlesworth" />
+ <glyph unicode="A" horiz-adv-x="712" d="M-60 0l0 20c0,0 20,0 40,0 40,0 40,0 60,20 0,0 20,20 40,80 20,60 40,120 80,200 20,80 40,160 80,220 20,60 40,120 40,120 0,20 -20,20 -80,20l0 20c20,0 80,0 140,0 100,0 140,0 160,0l0 -20c-40,0 -80,0 -80,-20 20,-60 60,-140 80,-220 40,-100 80,-180 100,-260 40,-80 60,-140 60,-140 0,0 20,-20 40,-20 40,0 60,0 60,0l0 -20c0,0 -60,0 -180,0 -20,0 -40,0 -80,0 -40,0 -60,0 -80,0l0 20c20,0 60,0 80,0 20,0 20,20 20,20 0,0 -20,60 -40,140 -40,80 -40,120 -60,140 -60,0 -140,0 -220,0 -20,-20 -20,-40 -20,-80 -20,-40 -40,-80 -40,-120 -20,-60 -20,-80 -20,-80 20,-20 60,-20 80,-20l20 -20c-40,0 -80,0 -140,0 -80,0 -120,0 -140,0zm260 360c40,0 80,0 120,0 60,0 100,0 100,0 0,0 0,0 -20,40 0,20 -20,60 -40,100 0,40 -20,80 -20,100 -20,20 -20,40 -20,60l0 0c-20,-40 -40,-80 -60,-160 -40,-80 -60,-120 -60,-140z" />
+ <glyph unicode="B" horiz-adv-x="684" d="M160 660c-20,20 -40,20 -100,20l-20 20c20,0 60,0 120,0 80,0 140,0 180,0 60,0 100,0 160,-20 40,-20 60,-60 60,-100 0,-40 -20,-100 -60,-120 -20,-40 -60,-60 -100,-80l0 0c40,0 60,-20 100,-40 20,0 40,-20 60,-40 20,-20 20,-40 40,-60 0,-20 0,-40 0,-60 0,-40 0,-60 -20,-100 -20,-20 -40,-40 -80,-60 -20,-20 -60,-20 -100,-20 -20,0 -40,0 -80,0 -60,0 -100,0 -160,0 -20,0 -60,0 -120,0l20 20c0,0 20,0 40,0 40,0 40,0 60,20 0,0 0,20 0,80 0,80 0,160 0,240 0,80 0,140 0,200 0,60 0,100 0,100zm120 -620c20,0 60,-20 80,-20 20,0 60,0 80,20 20,0 20,20 40,40 20,20 20,40 20,60 0,40 -20,80 -40,100 -20,40 -40,60 -80,80 -40,20 -60,20 -100,20 0,-20 0,-40 0,-80 0,-40 0,-80 0,-120 0,-40 0,-80 0,-100zm0 340c40,0 80,0 100,20 20,20 40,40 60,60 0,20 0,60 0,80 0,20 0,40 0,60 -20,20 -40,40 -60,60 -20,20 -40,20 -60,20 -20,0 -40,0 -40,0 0,0 0,-20 0,-40 0,-20 0,-60 0,-140 0,-60 0,-100 0,-120z" />
+ <glyph unicode="C" horiz-adv-x="808" d="M740 480l-20 0c0,20 0,60 0,80 -20,20 -20,40 -40,60 -40,20 -60,20 -100,40 -40,20 -60,20 -100,20 -20,0 -20,0 -40,0 -40,0 -100,-20 -120,-40 -40,-20 -60,-40 -80,-80 -20,-20 -40,-40 -60,-80 0,-20 0,-60 0,-80 0,-60 0,-120 20,-160 20,-40 60,-80 100,-120 20,-20 80,-40 120,-60 40,-20 100,-40 140,-40 80,20 160,40 220,60l0 -40c-40,-20 -80,-40 -140,-40 -40,-20 -100,-20 -140,-20 -80,0 -140,20 -200,40 -80,20 -120,60 -180,100 -40,60 -60,120 -60,200 0,0 0,20 0,20 0,60 0,100 20,140 20,40 60,80 100,120 20,40 80,60 140,80 60,20 120,40 200,40 60,0 120,-20 200,-20 0,0 0,0 0,20 20,40 20,40 20,60l20 0c0,-20 0,-60 0,-140 -20,-100 -20,-140 -20,-160z" />
+ </font>
+ </defs>
+ <text x="15" y="60" font-size="18">font-family = "Haettenschweiler"</text>
+ <text x="340" y="60" font-family="SVGHaettenschweiler" font-size="35">ABC</text>
+ <text x="15" y="110" font-size="18">font-family = "Charlesworth"</text>
+ <text x="340" y="110" font-family="SVGCharlesworth" font-size="35">ABC</text>
+ <text x="15" y="160" font-size="18">font-family = "Invalid Name"</text>
+ <text x="340" y="160" font-family="InvalidFontFamily" font-size="35">ABC</text>
+ <text x="15" y="210" font-size="18">font-family = not specified</text>
+ <text x="340" y="210" font-size="35">ABC</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-fonts-04-t.png b/test/svg/svg1.2/svg/text-fonts-04-t.png
new file mode 100644
index 0000000..3ff82d9
Binary files /dev/null and b/test/svg/svg1.2/svg/text-fonts-04-t.png differ
diff --git a/test/svg/svg1.2/svg/text-fonts-04-t.svg b/test/svg/svg1.2/svg/text-fonts-04-t.svg
new file mode 100644
index 0000000..d516606
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-fonts-04-t.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="MI" desc="Testing font-family attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: text-fonts-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Testing font-family attribute.
+ Various text elements are
+ used with varying values for the font-family attribute.
+ The first two text elements should display in their respective fonts,
+ <span style="font-family: Haettenschweiler">Haettenschweiler</span> and
+ <span style="font-family: Charlesworth"></span>,
+ <em>if</em> they are installed on the target system. Otherwise, simply
+ displaying
+ the text in some fallback font is enough to pass the test.
+ The last two should be displayed using a fallback font since the
+ value specified for font-family is either invalid or not specified.
+ Failing to display the text means the test is not passed.
+ </p>
+ <p>
+ If the two named fonts are available on the system,
+ the rendered picture should match the reference image exactly,
+ except for possible
+ variations in the labelling text (per CSS2 rules)
+ and variations in text antialiasing or hinting.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-fonts-04-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="15" y="60" font-size="18">font-family = "Haettenschweiler"</text>
+ <text x="340" y="60" font-family="Haettenschweiler" font-size="35">ABC</text>
+
+ <text x="15" y="110" font-size="18">font-family = "Charlesworth"</text>
+ <text x="340" y="110" font-family="Charlesworth" font-size="35">ABC</text>
+
+ <text x="15" y="160" font-size="18">font-family = "Invalid Name"</text>
+ <text x="340" y="160" font-family="InvalidFontFamily" font-size="35">ABC</text>
+
+ <text x="15" y="210" font-size="18">font-family = not specified</text>
+ <text x="340" y="210" font-size="35">ABC</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-fonts-202-t.png b/test/svg/svg1.2/svg/text-fonts-202-t.png
new file mode 100644
index 0000000..a5700b3
Binary files /dev/null and b/test/svg/svg1.2/svg/text-fonts-202-t.png differ
diff --git a/test/svg/svg1.2/svg/text-fonts-202-t.svg b/test/svg/svg1.2/svg/text-fonts-202-t.svg
new file mode 100644
index 0000000..5e1fdf3
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-fonts-202-t.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DS" owner="CL" desc="Test that viewer has the basic capability to handle different font weights" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-fonts-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the 'font-weight' property when multiple weights are available. A
+ font family with six weights is specified, with a fallback to 'serif'. If
+ the platform supports installable opentype fonts, please download
+ <a href="http://justanotherfoundry.com/Zalamander/index.htm">Zalamander Caps</a>
+ by Tim Ahrens of <a href="http://justanotherfoundry.com/">Just Another Foundry</a>.
+ </p>
+ <p>
+ The numerical weight values (100 to 900) should show the lighter weights on the
+ lower numbers and the heavier weights on the larger numbers. Heavier is defined
+ to mean 'no lighter'.
+ </p>
+ <p>
+ If only one font weight is available, they should all display at the same weight.
+ The transition from black to green figures shows the correct light to bold transition
+ for the common case where two weights are available. If three or more weights are
+ available, see the CSS2 specification for how these are allocated to the nine weight
+ numbers.
+ </p>
+ <p>
+ The absolute keywords 'normal' and bold' are tested by the first two lines on the
+ right hand side of the test, the third line of text tests the to 'bolder' relative
+ keyword and the fourth tests the 'lighter' relative keyword.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-fonts-202-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII" font-size="18">
+ <g font-family="'ZalamanderCaps', serif" font-size="30">
+ <text font-weight="100" x="360" y="50">100</text>
+ <text font-weight="200" x="360" y="85">200</text>
+ <text font-weight="300" x="360" y="120">300</text>
+ <text font-weight="400" x="360" y="155">400</text>
+ <text font-weight="500" x="360" y="190">500</text>
+ <text fill="green" font-weight="600" x="360" y="225">600</text>
+ <text fill="green" font-weight="700" x="360" y="260">700</text>
+ <text fill="green" font-weight="800" x="360" y="295">800</text>
+ <text fill="green" font-weight="900" x="360" y="330">900</text>
+ <text font-weight="bold" x="60" y="80">This is bold</text>
+ <text font-weight="normal" x="60" y="130">This is normal</text>
+ <g font-weight="normal" fill="blue">
+ <text font-weight="bolder" x="60" y="180">Blue is bolder</text>
+ </g>
+ <g font-weight="bold" fill="blue">
+ <text font-weight="lighter" x="60" y="230">Blue is lighter</text>
+ </g>
+ <g font-size="14">
+ <text x="30" y="270">ZalamanderCaps is an OpenType font</text>
+ <text x="30" y="290">by Tim Ahrens of Just Another Foundry</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-intro-01-t.png b/test/svg/svg1.2/svg/text-intro-01-t.png
new file mode 100644
index 0000000..acc22b6
Binary files /dev/null and b/test/svg/svg1.2/svg/text-intro-01-t.png differ
diff --git a/test/svg/svg1.2/svg/text-intro-01-t.svg b/test/svg/svg1.2/svg/text-intro-01-t.svg
new file mode 100644
index 0000000..175ba5e
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-intro-01-t.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test left-to-right aspect of internationalized text." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-intro-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test left-to-right aspect of internationalized text.</p>
+ <p>Various text strings in various languages appear. The main purpose of the test is to verify that the correct characters appear and that they appear in the correct order and orientation, even though the first choice font does not have the right glyphs.</p>
+ <p>Correct rendering requires that each character is rendered. it may be rendered with the 'missing glyph' if no glyphs are found in the fonts listed in the content, or in any fallback font that is available. The first choice font is a special SVG font that only contains the 'missing glyph'. Missing glyph from other fonts may conformantly be used, however.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-intro-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="Missy" horiz-adv-x="5">
+ <font-face font-family="MissingInAction" font-weight="normal" font-style="normal" units-per-em="8" cap-height="8" x-height="4" ascent="8" descent="2" alphabetic="0" mathematical="4" ideographic="-2" hanging="8" />
+ <missing-glyph d="M1,3h2v2h-2z" />
+ </font>
+ </defs>
+ <text font-family="Arial Unicode MS" font-size="40" fill="red" x="5" y="40">Test left-to-right text.</text>
+ <g font-size="17" font-family="MissingInAction, Georgia, 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'">
+ <text x="10" y="75">Polish: MogÄ? jeÅ?Ä? szkÅ?o, i mi ...</text>
+ <text x="10" y="110">Russian: Я могÑ? еÑ?Ñ?Ñ? Ñ?Ñ?екло, ...</text>
+ <text x="10" y="145" font-size="17">Greek: Î?Ï?οÏ?Ï? να Ï?άÏ? ...</text>
+ <text x="10" y="180">Hebrew: ×?× ×? ×?×?×?×? ×?×?×?×?×? ×?×?×?×?×?ת ... </text>
+ <text x="10" y="215">Yiddish: ×?×?×? קע×? עס×? ×?×?×?Ö¸×? ×?×?×? ...</text>
+ </g>
+ <g font-size="17" font-family="MissingInAction, 'MS Song', SimHei,'LucidaSansUnicode', 'Arial Unicode MS'">
+ <text x="10" y="250">Chinese:æ??è?½å??ä¸?ç?»ç??è??ä¸?伤身ä½?ã??</text>
+ </g>
+ <g font-size="17" font-family="MissingInAction, 'MS-Gothic','LucidaSansUnicode', 'Arial Unicode MS'">
+ <text x="10" y="285" font-size="17">Japanese: ç§?ã?¯ã?¬ã?©ã?¹ã??é£?ã?¹ã?¾ã??ã??</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-intro-04-t.png b/test/svg/svg1.2/svg/text-intro-04-t.png
new file mode 100644
index 0000000..6e66dd7
Binary files /dev/null and b/test/svg/svg1.2/svg/text-intro-04-t.png differ
diff --git a/test/svg/svg1.2/svg/text-intro-04-t.svg b/test/svg/svg1.2/svg/text-intro-04-t.svg
new file mode 100644
index 0000000..ba6c44a
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-intro-04-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="JF" desc="Test basic of internationalized text." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-intro-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test basic aspect of internationalized text.</p>
+ <p>Various text strings in various languages appear. The main purpose of the test is to verify that the correct characters appear and that they appear in the correct order and orientation.</p>
+ <p>Correct rendering requires that each character is rendered. It is not required that a given character be rendered with any particular font; just that it is rendered. It may be rendered with the 'missing glyph' if no glyphs are found in the fonts listed in the content, or in any fallback font that is available.</p>
+ <p>A future version of this test might include all necessary glyphs as an SVG font.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-intro-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="16" fill="red" x="10" y="20">Test horizontal text.</text>
+ <g font-size="17" font-family="'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'">
+ <text x="10" y="60">Polish: MogÄ? jeÅ?Ä? szkÅ?o, i mi nie szkodzi.</text>
+ <text x="10" y="90">Russian: Я могÑ? еÑ?Ñ?Ñ? Ñ?Ñ?екло, Ñ?Ñ?о мне не вÑ?едиÑ?.</text>
+ <text x="10" y="120" font-size="15">Greek: Î?Ï?οÏ?Ï? να Ï?άÏ? Ï?Ï?αÏ?μÎνα γÏ?αλιά Ï?Ï?Ï?ίÏ? να Ï?άθÏ? Ï?ίÏ?οÏ?α.</text>
+ <!-- Greek and japanese smaller just to make it fit on the line -->
+ <text x="10" y="150">Text "×?× ×? ×?×?×?×? ×?×?×?×?×? ×?×?×?×?×?ת ×?×?×? ×?×? ×?×?×?ק ×?×?" is in Hebrew</text>
+ <text x="10" y="180">Yiddish: ×?×?×? קע×? עס×? ×?×?×?Ö¸×? ×?×?×? עס ×?×?×? ×?×?ר × ×?ש×? װײ.</text>
+ <text x="10" y="210">Chinese:æ??è?½å??ä¸?ç?»ç??è??ä¸?伤身ä½?ã??</text>
+ <text x="10" y="240" font-size="15">Japanese: ç§?ã?¯ã?¬ã?©ã?¹ã??é£?ã?¹ã??ã??ã?¾ã??ã??ã??ã??ã?¯ç§?ã??å?·ã?¤ã??ã?¾ã??ã??ã??</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-intro-05-t.png b/test/svg/svg1.2/svg/text-intro-05-t.png
new file mode 100644
index 0000000..1e2e784
Binary files /dev/null and b/test/svg/svg1.2/svg/text-intro-05-t.png differ
diff --git a/test/svg/svg1.2/svg/text-intro-05-t.svg b/test/svg/svg1.2/svg/text-intro-05-t.svg
new file mode 100644
index 0000000..cc9d7b7
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-intro-05-t.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CL" desc="Tests Arabic text using various platform fonts" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-intro-05-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests Arabic text using various platform fonts. If these fonts are not available, a fallback font should be used that has Arabic glyphs. If such a font is not available, the 'missing glyph' (typically an open rectangle) should be displayed. It is an error to display the wrong Arabic glyphs, for example to display all isolate forms.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-intro-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="460" y="80" text-anchor="end" xml:lang="ar" font-size="30" font-family="Andalus">Ù?Ù?اذا Ù?ا Ù?تÙ?Ù?Ù?Ù?Ù? اÙ?Ù?Ù?غة اÙ?عربÙ?Ø© Ù?ØسبØ?</text>
+ <!-- andalus font comes with Windows 2000 and XP -->
+ <text x="460" y="160" text-anchor="end" xml:lang="ar" font-size="36" font-family="'Diwani Letter'">Ù?Ù?اذا Ù?ا Ù?تÙ?Ù?Ù?Ù?Ù? اÙ?Ù?Ù?غة اÙ?عربÙ?Ø© Ù?ØسبØ?</text>
+ <!-- Diwani fonts come with Microsoft Arabic fonts extension for Office XP http://www.microsoft.com/downloads/details.aspx?FamilyID=A83C0E03-8913-47A3-ACB7-8AC357627620&displaylang=AR -->
+ <text x="460" y="240" text-anchor="end" xml:lang="ar" font-size="30" font-family="'Nafees Naskh'">Ù?Ù?اذا Ù?ا Ù?تÙ?Ù?Ù?Ù?Ù? اÙ?Ù?Ù?غة اÙ?عربÙ?Ø© Ù?ØسبØ?</text>
+ <!-- Nafees Nastaleeq and Nafees Naskh are freely available from the Center for Research in Urdu Language Processing (CRULP http://www.crulp.org ) at the National University of Computer and Emerging Sciences, Pakistan ( http://www.nu.edu.pk ) -->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-intro-06-t.png b/test/svg/svg1.2/svg/text-intro-06-t.png
new file mode 100644
index 0000000..73fe921
Binary files /dev/null and b/test/svg/svg1.2/svg/text-intro-06-t.png differ
diff --git a/test/svg/svg1.2/svg/text-intro-06-t.svg b/test/svg/svg1.2/svg/text-intro-06-t.svg
new file mode 100644
index 0000000..a85cda8
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-intro-06-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="CL" desc="test mandatory arabic ligatures" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-intro-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+ <p>This test ensures that mandatory ligatures in Arabic are displayed.</p>
+ <p>
+ There are two subtests. The first requires an isolate lam-alef ligature
+ and the second requires a right-joining lam-alef ligature.
+ </p>
+ <p>
+ The test is passed if subtests are displayed as following:
+ </p>
+ <ul>
+ <li>The first subtest has the word for 'tools', Ø¢Ù?ات</li>
+ <li>The second subtest has the word for 'three', Ø«Ù?اثة</li>
+ </ul>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-intro-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Andalus,Diwani Letter,serif">
+ <path d="M10,120 L470,120" stroke="#BBB" />
+ <path d="M10,240 L470,240" stroke="#BBB" />
+ <text text-anchor="middle" x="240" y="120" font-size="140" xml:lang="ar" fill="#700">Ø¢Ù?ات</text>
+ <text text-anchor="middle" x="240" y="240" font-size="140" xml:lang="ar" fill="#700">Ø«Ù?اثة</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-intro-201-t.png b/test/svg/svg1.2/svg/text-intro-201-t.png
new file mode 100644
index 0000000..9698ab0
Binary files /dev/null and b/test/svg/svg1.2/svg/text-intro-201-t.png differ
diff --git a/test/svg/svg1.2/svg/text-intro-201-t.svg b/test/svg/svg1.2/svg/text-intro-201-t.svg
new file mode 100644
index 0000000..fb7d29b
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-intro-201-t.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="DS" desc="Test for basic capability to handle 'text' elements and text presentation attributes." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: text-intro-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test text element, tspan element and various text styles.</p>
+ <p>The first group tests that text displays at all, that it displays in a straight line, and that the font style can be made italic or bold.</p>
+ <p>The second group tests that text can be treated as any other graphical element, with stroke and fill properties. The first word tests that fill color can be specified. The second word tests that stroke color can be specified in absence of fill. The third group tests the combination of all these effects. The final group tests positioning of 'text' elements.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-intro-201-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="19" y="61" font-size="32">Plain</text>
+ <text x="142" y="61" font-size="32" font-style="italic">Italic</text>
+ <text x="257" y="60" font-size="32" font-weight="bold">Bold</text>
+ <text x="224" y="110" font-size="32" fill="blue">fill only</text>
+ <text x="39" y="147" font-size="32" fill="none" stroke="red">stroke only</text>
+ <text x="10" y="200" font-size="32" font-style="italic" font-weight="bold" fill="blue" stroke="red">Bold, italic, fill and stroke</text>
+ <g>
+ <rect x="50" y="225" width="380" height="64" fill="none" stroke="black" stroke-width="2" />
+ <g>
+ <text x="55" y="245" font-size="24" fill="black">Each line of text which flows in a </text>
+ <text x="55" y="265" font-size="24" fill="black">rectangular box has to be broken</text>
+ <text x="55" y="285" font-size="24" fill="black">into separated lines.</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-text-04-t.png b/test/svg/svg1.2/svg/text-text-04-t.png
new file mode 100644
index 0000000..7e42e78
Binary files /dev/null and b/test/svg/svg1.2/svg/text-text-04-t.png differ
diff --git a/test/svg/svg1.2/svg/text-text-04-t.svg b/test/svg/svg1.2/svg/text-text-04-t.svg
new file mode 100644
index 0000000..17b9b17
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-text-04-t.svg
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="Tests that the viewer can handle the rotate attribute on the text element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-text-04-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to validate proper handling of the text element's x and y attributes. In the various samples, a red marker shows the text's (0,0) coordinate. The blue markers show the current text positions. These are either defined by absolute x/y positioning or they are computed from the embeded font's glyphs advances.</p>
+ <p>The first text sample shows a reference piece of text.</p>
+ <p>The second text sample (x all) shows a piece of text where all the glyphs are positioned along the x axis.</p>
+ <p>The third text sample (x more) is a text element where there are more x values than characters (5 values for 4 characters). The last x value should be ignored and the result should be the same as the third sample.</p>
+ <p>The fourth text sample (x fewer) is a text element where there are fewer x values than characters (3 values for 4 characters). The last character should not be positioned but laid out normally, following its previous character sibling.</p>
+ <p>The fifth (y all), sixth (y more) and seventh (y fewer) text sample parallel the second, third and fourth test, but for the y attribute values.</p>
+ <p>The samples in the right column show combinations of x/y value sets.</p>
+ <p>In all the above tests, blue markers represent the expected glyph positions. The red markers are showing positions where no glyph should appear. The glyphs are black squares of increasing sizes.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-text-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="embeded" horiz-adv-x="224">
+ <font-face font-family="embeded" units-per-em="1000" ascent="1000" descent="-250" alphabetic="0" />
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="750" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="750" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z" />
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="750" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z" />
+ </font>
+ </defs>
+ <defs>
+ <rect xml:id="marker" x="-4" y="-4" width="8" height="8" />
+ </defs>
+ <g font-size="16">
+ <g xml:id="reference" transform="translate(130, 40)">
+ <text text-anchor="end" x="-30">Reference</text>
+ <g>
+ <use xlink:href="#marker" x="0" fill="#8888FF" />
+ <use xlink:href="#marker" x="15" fill="#8888FF" />
+ <use xlink:href="#marker" x="30" fill="#8888FF" />
+ <use xlink:href="#marker" x="45" fill="#8888FF" />
+ <text xml:id="ref" font-family="embeded" font-size="20">1234</text>
+ </g>
+ </g>
+ <g xml:id="xAll" transform="translate(130, 80)">
+ <text text-anchor="end" x="-30">x all</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" fill="#8888FF" />
+ <use xlink:href="#marker" x="80" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" x="20 40 60 80">1234</text>
+ </g>
+ <g xml:id="xMore" transform="translate(130, 120)">
+ <text text-anchor="end" x="-30">x more</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" fill="#8888FF" />
+ <use xlink:href="#marker" x="80" fill="#8888FF" />
+ <use xlink:href="#marker" x="100" fill="red" />
+ <text font-family="embeded" font-size="20" x="20 40 60 80 100">1234</text>
+ </g>
+ <g xml:id="xFewer" transform="translate(130, 160)">
+ <text text-anchor="end" x="-30">x fewer</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" fill="#8888FF" />
+ <use xlink:href="#marker" x="75" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" x="20 40 60">1234</text>
+ </g>
+ <g xml:id="yAll" transform="translate(130, 200)">
+ <text text-anchor="end" x="-30">y all</text>
+ <use xlink:href="#marker" x="0" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="15" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="30" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="45" y="10" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" y="-10 -5 5 10">1234</text>
+ </g>
+ <g xml:id="yMore" transform="translate(130, 250)">
+ <text text-anchor="end" x="-30">y more</text>
+ <use xlink:href="#marker" x="0" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="15" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="30" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="45" y="10" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" y="-10 -5 5 10 20">1234</text>
+ </g>
+ <g xml:id="yFewer" transform="translate(130, 300)">
+ <text text-anchor="end" x="-30">y fewer</text>
+ <use xlink:href="#marker" x="0" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="15" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="30" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="45" y="5" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" y="-10 -5 5">1234</text>
+ </g>
+ <g transform="translate(220, 0)">
+ <g xml:id="xyAll" transform="translate(130, 80)">
+ <text text-anchor="end" x="-30">x/y all</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="80" y="10" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" x="20 40 60 80" y="-10 -5 5 10">1234</text>
+ </g>
+ <g xml:id="xyMore" transform="translate(130, 120)">
+ <text text-anchor="end" x="-30">x/y more</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="80" y="10" fill="#8888FF" />
+ <use xlink:href="#marker" x="100" y="20" fill="red" />
+ <text font-family="embeded" font-size="20" x="20 40 60 80 100" y="-10 -5 5 10 20">1234</text>
+ </g>
+ <g xml:id="xyFewer" transform="translate(130, 160)">
+ <text text-anchor="end" x="-30">x/y fewer</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="75" y="5" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" x="20 40 60" y="-10 -5 5">1234</text>
+ </g>
+ <g xml:id="xAllyFewer" transform="translate(130, 200)">
+ <text text-anchor="end" x="-30">x all y fewer</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="80" y="5" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" x="20 40 60 80" y="-10 -5 5">1234</text>
+ </g>
+ <g xml:id="xFewerYall" transform="translate(130, 240)">
+ <text text-anchor="end" x="-30">x fewer y all</text>
+ <use xlink:href="#marker" x="0" fill="red" />
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF" />
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF" />
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF" />
+ <use xlink:href="#marker" x="77.52" y="10" fill="#8888FF" />
+ <text font-family="embeded" font-size="20" x="20 40 60" y="-10 -5 5 10">1234</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-text-06-t.png b/test/svg/svg1.2/svg/text-text-06-t.png
new file mode 100644
index 0000000..5527e31
Binary files /dev/null and b/test/svg/svg1.2/svg/text-text-06-t.png differ
diff --git a/test/svg/svg1.2/svg/text-text-06-t.svg b/test/svg/svg1.2/svg/text-text-06-t.svg
new file mode 100644
index 0000000..d223921
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-text-06-t.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="VH" desc="x/y glyph positioning on ligatures" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-text-06-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>The purpose of this test is to validate the interaction of x/y glyph positioning and ligatures.</p>
+ <p>The first line shows an example where there is a ligature (fi) which should be accounted for before breaking into text chunks (see specification section 10.5, additional x/y/dx/dy processing rules, bullet discussing ligatures). In this first line, the ligatures cause the x position 180 (shown in red), to be ignored. As a result, a glyph should be shown over each pale blue square markers. The glyphs are black squares of increasing sizes except for the initial ligature which has the form of two small black triangles joined at their tops. The ligature should show on the first pale blue marker position.</p>
+ <p>The second line shows the same test but using multiple y positions.</p>
+ <p>The third line shows the same test but using multiple x and y positions.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-text-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font xml:id="embeded" horiz-adv-x="224">
+ <font-face font-family="embeded" units-per-em="1000" panose-1="0 0 0 0 0 0 0 0 0 0" ascent="917" descent="-250" alphabetic="0" />
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z" />
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z" />
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z" />
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z" />
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z" />
+ <glyph unicode="fi" glyph-name="fi" horiz-adv-x="1500" d="M 0 0 L 500 0 L 0 700 L 500 700 Z" />
+ </font>
+ </defs>
+ <defs>
+ <g xml:id="marker">
+ <line y2="-15" stroke="red" />
+ <rect x="-4" y="-4" width="8" height="8" />
+ </g>
+ </defs>
+ <g font-size="10">
+ <g transform="translate(20, 30)">
+ <g xml:id="legend" transform="translate(10, 40)" font-size="12">
+ <text>x positioning</text>
+ <text y="40">y positioning</text>
+ <text y="140">x/y positioning</text>
+ </g>
+ <g transform="translate(100, 40)">
+ <use xlink:href="#marker" x="10" fill="#8888ff" />
+ <use xlink:href="#marker" x="180" fill="red" />
+ <use xlink:href="#marker" x="40" fill="#8888ff" />
+ <use xlink:href="#marker" x="70" fill="#8888ff" />
+ <use xlink:href="#marker" x="100" fill="#8888ff" />
+ <use xlink:href="#marker" x="130" fill="#8888ff" />
+ <text x="10 180 40 70 100 130" y="0" font-family="embeded">fi1234</text>
+ </g>
+ <g transform="translate(100, 80)">
+ <use xlink:href="#marker" y="-10" fill="#8888ff" />
+ <use xlink:href="#marker" x="15" y="50" fill="red" />
+ <use xlink:href="#marker" x="15" y="0" fill="#8888ff" />
+ <use xlink:href="#marker" x="30" y="10" fill="#8888ff" />
+ <use xlink:href="#marker" x="45" y="20" fill="#8888ff" />
+ <use xlink:href="#marker" x="60" y="30" fill="#8888ff" />
+ <text y="-10 50 0 10 20 30" x="0" font-family="embeded">fi1234</text>
+ </g>
+ <g transform="translate(100, 180)">
+ <use xlink:href="#marker" x="10" y="-10" fill="#8888ff" />
+ <use xlink:href="#marker" x="180" y="50" fill="red" />
+ <use xlink:href="#marker" x="40" y="0" fill="#8888ff" />
+ <use xlink:href="#marker" x="70" y="10" fill="#8888ff" />
+ <use xlink:href="#marker" x="100" y="20" fill="#8888ff" />
+ <use xlink:href="#marker" x="130" y="30" fill="#8888ff" />
+ <text x="10 180 40 70 100 130" y="-10 50 0 10 20 30" font-family="embeded">fi1234</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-text-07-t.png b/test/svg/svg1.2/svg/text-text-07-t.png
new file mode 100644
index 0000000..52f846f
Binary files /dev/null and b/test/svg/svg1.2/svg/text-text-07-t.png differ
diff --git a/test/svg/svg1.2/svg/text-text-07-t.svg b/test/svg/svg1.2/svg/text-text-07-t.svg
new file mode 100644
index 0000000..791e7c2
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-text-07-t.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="MI" desc="Tests multiple x, y, rotate" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-text-07-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Tests multiple x, y, rotate, with various combinations. Since an array of values is given, each glyph must use the value from the corresponding character in the list.</p>
+ <p>The rendered picture should match the reference image exactly, except for possible variations in the labelling text (per CSS2 rules).</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-text-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240 260 280 300 320 340 360" y="60 80 100 120 140 160 180 200" font-size="35">Multi X Y</text>
+ <text x="10" y="60" rotate="0 10 20 30 40 50 60" font-size="35">ROTATE</text>
+ <text x="10 30 50 70 90 110 130 150 170 190 210 230 250" y="300 290 280 270 260 250 240 230 220 210 200 190 180" rotate="0 -10 -20 -30 -40 -50 -60 -70 -80 -90 -100 -110 -120" font-size="35">Both Together</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-text-08-t.png b/test/svg/svg1.2/svg/text-text-08-t.png
new file mode 100644
index 0000000..4bdfda2
Binary files /dev/null and b/test/svg/svg1.2/svg/text-text-08-t.png differ
diff --git a/test/svg/svg1.2/svg/text-text-08-t.svg b/test/svg/svg1.2/svg/text-text-08-t.svg
new file mode 100644
index 0000000..0a8418f
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-text-08-t.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="DJ" owner="SH" desc="tests text opacity properties" status="accepted"
+ approved="yes"
+ version="$Revision" testname="$RCSfile: text-text-08-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Two opacity properties (fill-opacity and stroke-opacity) of 'text' elements are covered in this test.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-text-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="19" y="60" font-size="64" fill="blue" stroke="red" stroke-width="2">Normal Text</text>
+ <text x="19" y="120" font-size="64" fill="blue" stroke="red" stroke-width="2" fill-opacity="0.50">Fill opacity</text>
+ <text x="19" y="180" font-size="64" fill="blue" stroke="red" stroke-width="2" stroke-opacity="0.50">Stroke opacity</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-text-09-t.png b/test/svg/svg1.2/svg/text-text-09-t.png
new file mode 100644
index 0000000..7c4ce3a
Binary files /dev/null and b/test/svg/svg1.2/svg/text-text-09-t.png differ
diff --git a/test/svg/svg1.2/svg/text-text-09-t.svg b/test/svg/svg1.2/svg/text-text-09-t.svg
new file mode 100644
index 0000000..dbeb542
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-text-09-t.svg
@@ -0,0 +1,55 @@
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CL" desc="Tests multiple x, y, rotate" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: text-text-09-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests multiple x, y, rotate, with various combinations. Since an
+ array of values is given, each glyph must use the value from the
+ corresponding character in the list. In this test, there are less values
+ in the array than there are characters.
+ <!-- publish once the eratta are out -->
+ </p>
+ <p>
+ The rendered picture should match the reference image exactly, except for possible
+ variations in the labelling text (per CSS2 rules).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-text-09-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240 260 280 300" y="60 80 100 120 140" font-size="35">Multi X Y</text>
+ <text x="10" y="60" rotate="0 10 20 30" font-size="35">ROTATE</text>
+ <text x="10 30 50 70 90 110 130 150" y="300 290 280 270 260 250 240 230" rotate="0 -10 -20 -30 -40 -50 -60 -70 -80 -90" font-size="35">Both Together</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-tselect-03-t.png b/test/svg/svg1.2/svg/text-tselect-03-t.png
new file mode 100644
index 0000000..53ef316
Binary files /dev/null and b/test/svg/svg1.2/svg/text-tselect-03-t.png differ
diff --git a/test/svg/svg1.2/svg/text-tselect-03-t.svg b/test/svg/svg1.2/svg/text-tselect-03-t.svg
new file mode 100644
index 0000000..34fc8ad
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-tselect-03-t.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="ED" desc="Tests bidirectional text selection" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-tselect-03-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test demonstrates text selection of bidirectional text.
+ </p>
+ <p>To pass the test the the first 9 characters in logical order starting from logical position 0 are to be selected. This must be done by the tester since there's no way to control the selection in DOM. The selection should be started at the letter 'a' and proceed to the number '1' as indicated by the arrows. Visually this makes the selection discontigous and these substrings must be selected (listed in visual order):</p>
+ <p>"abc"</p>
+ <p>the space between "c" and "ו"</p>
+ <p>"1"</p>
+ <p>the space between "3" and "ג"</p>
+ <p>"אבג"</p>
+ <p>If only the substrings listed above were selected then the test has passed.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-tselect-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ <font xml:id="mini" horiz-adv-x="500" >
+ <font-face
+ font-family="tselect"
+ font-weight="400"
+ font-stretch="normal"
+ units-per-em="1000"
+ panose-1="2 2 6 3 5 4 5 2 3 4"
+ ascent="800"
+ descent="-200"
+ x-height="450"
+ cap-height="686"
+ bbox="-797 -545 2010 1166"
+ underline-thickness="50"
+ underline-position="-100"
+ unicode-range="U+05D0-U+05D5, U+0061-U+0066, U+0020, U+0031-U+0033" />
+ <missing-glyph horiz-adv-x="432" d="M33 0v666h333v-666h-333zM66 33h267v600h-267v-600z" />
+ <glyph glyph-name="one" unicode="1" d="M183 593q-18 0 -72 -22v14l180 91l8 -2v-600q0 -36 18 -47t77 -12v-15h-276v15q56 2 75.5 16.5t19.5 61.5v453q0 47 -30 47z" />
+ <glyph glyph-name="two" unicode="2" d="M31 477q5 23 10 40t21.5 49.5t37 54t57 38.5t82.5 17q78 0 131.5 -51t53.5 -126q0 -113 -128 -247l-168 -176h239q34 0 50.5 11.5t44.5 54.5l13 -5l-55 -137h-390v12l178 189q130 138 130 260q0 63 -39 102t-102 39q-52 0 -83.5 -28.5t-61.5 -101.5z" />
+ <glyph glyph-name="three" unicode="3" d="M81 78q23 0 68.5 -28t79.5 -28q55 0 93 43t38 106q0 52 -27 91.5t-74 56.5q-29 11 -106 11v13q34 12 58.5 23.5t51.5 31t41.5 47.5t14.5 64q0 47 -30.5 77t-79.5 30q-47 0 -82.5 -25.5t-66.5 -80.5l-15 4q26 71 70.5 116.5t126.5 45.5q69 0 112.5 -38t43.5 -99q0 -41 -21 -72t-73 -66q60 -26 94 -66.5t34 -115.5q0 -106 -78.5 -169.5t-197.5 -63.5q-52 0 -82.5 15.5t-30.5 41.5q0 16 10.5 25.5t27.5 9.5z" />
+ <glyph glyph-name="a" unicode="a" horiz-adv-x="444" d="M37 97q0 38 21.5 69t57 50.5t80 39t91.5 36.5v61q0 83 -76 83q-30 0 -51 -14.5t-21 -34.5q0 -8 2.5 -22t2.5 -18q0 -17 -13.5 -29.5t-31.5 -12.5q-17 0 -30 13t-13 30q0 47 48.5 79.5t119.5 32.5q82 0 113 -39.5t31 -120.5v-195q0 -33 6.5 -45.5t23.5 -12.5q21 0 44 19v-26q-26 -29 -45.5 -39.5t-44.5 -10.5q-31 0 -45.5 17t-18.5 56q-86 -73 -146 -73q-46 0 -75.5 30t-29.5 77zM287 123v145q-90 -33 -126 -64t-36 -75v-4q0 -32 18.5 -54.5t44.5 -22.5q34 0 73 23q16 9 21 19t5 33z" />
+ <glyph glyph-name="b" unicode="b" d="M153 681v-306q15 37 54 61t85 24q75 0 125.5 -62.5t50.5 -154.5q0 -107 -67.5 -180t-166.5 -73q-60 0 -112.5 20.5t-52.5 43.5v519q0 31 -9.5 41t-39.5 10q-11 0 -17 -1v16l29 8q67 19 116 36zM153 322v-252q0 -19 29 -33.5t68 -14.5q62 0 96 46t34 129q0 91 -34.5 145.5t-93.5 54.5q-39 0 -69 -23t-30 -52z" />
+ <glyph glyph-name="c" unicode="c" horiz-adv-x="444" d="M25 213q0 111 65.5 179t153.5 68q63 0 108.5 -30.5t45.5 -72.5q0 -17 -14 -29.5t-34 -12.5q-34 0 -47 46l-6 22q-8 28 -20 38t-39 10q-61 0 -98.5 -48.5t-37.5 -125.5q0 -86 43.5 -140.5t111.5 -54.5q43 0 74 21t67 73l14 -9q-10 -20 -17.5 -33t-27 -39t-38.5 -42t-50 -29.5t-64 -13.5q-83 0 -136.5 62.5t-53.5 160.5z" />
+ <glyph glyph-name="d" unicode="d" d="M344 -10l-4 3v64q-48 -67 -128 -67q-83 0 -134 59.5t-51 155.5q0 106 61 180.5t147 74.5q54 0 105 -43v156q0 31 -9 41t-37 10q-14 0 -22 -1v16q91 24 147 44l5 -2v-567q0 -35 8.5 -46t35.5 -11q5 0 23 1v-16zM251 42q38 0 63.5 21.5t25.5 38.5v230q0 40 -31 70t-71 30q-57 0 -91 -51t-34 -136q0 -92 38 -147.5t100 -55.5z" />
+ <glyph glyph-name="e" unicode="e" horiz-adv-x="444" d="M97 277q2 -63 17 -108.5t39 -68t48.5 -32t51.5 -9.5q48 0 83.5 24t71.5 81l16 -7q-31 -81 -86 -124t-126 -43q-86 0 -136.5 60.5t-50.5 163.5q0 111 58.5 178.5t150.5 67.5q76 0 118 -45.5t53 -137.5h-308zM99 309h204q-10 65 -31 90t-67 25q-90 0 -106 -115z" />
+ <glyph glyph-name="f" unicode="f" horiz-adv-x="333" d="M341 580q-16 0 -27.5 11.5t-18 26t-20 26t-32.5 11.5q-57 0 -57 -89v-116h123v-32h-122v-314q0 -56 16 -71.5t77 -17.5v-15h-260v15q54 3 68.5 18.5t14.5 70.5v314h-82v32h82q2 112 42 172.5t134 60.5q45 0 74.5 -17.5t29.5 -44.5q0 -17 -12.5 -29t-29.5 -12z" />
+ <glyph glyph-name="afii57664" unicode="א" horiz-adv-x="537" d="M71 51q0 14 -18.5 81.5t-18.5 88.5q0 51 63 123q-5 1 -15 8.5t-23 22t-22.5 44t-9.5 66.5q0 36 19 66t38 30h2q2 0 2.5 -3t1.5 -14t4 -24q9 -34 57.5 -84t92.5 -83t49 -33l51 71q-8 0 -45.5 34.5t-37.5 59.5t22 52t43 27q6 0 6.5 -4t-0.5 -11v-6q0 -21 24.5 -41t53.5 -35t53.5 -40t24.5 -55q0 -40 -28 -70.5t-46 -30.5q-1 0 -11 47q-4 20 -14 35t-18 20l-8 5l-49 -77q2 0 20 -10.5t43.5 -31.5t50.5 -47t42.5 -62t17.5 -71q0 -62 -12 -83t-32 -21h-7q-1 0 -2.5 19t-16.5 50t-46 55q-64 47 -161.5 129t-98.5 82l-9 -7q-9 -7 -18.5 -22.5t-9.5 -33.5q0 -23 20 -52t43.5 -52t43.5 -53.5t20 -56.5q0 -18 -10.5 -30.5t-23.5 -17t-24 -10.5h-115l6 12q1 3 6 3q8 0 12 1.5t9 5t7 12t2 22.5z" />
+ <glyph glyph-name="afii57665" unicode="ב" horiz-adv-x="537" d="M115 442q-40 0 -60 16.5t-20 70.5q0 55 28 69q0 -3 4 -10.5t19 -16t37 -8.5h206q48 0 83.5 -30.5t35.5 -110.5l2 -314h54l-35 -108h-445l35 108h370v260q0 46 -24.5 60t-72.5 14h-217z" />
+ <glyph glyph-name="afii57666" unicode="ג" horiz-adv-x="350" d="M141 433q-26 0 -38.5 16t-12.5 62q0 66 19 87q0 -1 2.5 -5t7 -10.5l7.5 -10.5q6 -9 33.5 -10.5t57 -7t39.5 -24.5q13 -22 13 -69v-22v-264q0 -44 8.5 -89t18.5 -86q-25 0 -32 2t-9.5 10.5t-2.5 25.5q-2 15 -12.5 59.5t-10.5 45.5h-10l-62 -143h-118v4q0 101 30 104l120 21q7 7 24.5 30t18.5 36q2 24 11.5 83.5t9.5 78.5q0 9 -1 13v4q0 23 -12 43.5t-42 20.5q-9 0 -28.5 -2.5t-28.5 -2.5z" />
+ <glyph glyph-name="afii57667" unicode="ד" horiz-adv-x="537" d="M53 596q0 -7 13.5 -20.5t42.5 -13.5h315q22 0 40 -16.5t18 -38.5q0 -26 -13.5 -45.5t-35.5 -19.5h-10v-350q0 -4 0.5 -9.5t0.5 -8.5q0 -16 -11 -46t-25 -30h-2l-2 1q-1 0 -1 10q0 3 0.5 12.5t0.5 14.5l9 406h-281q-49 0 -68 20.5t-19 60.5q0 56 28 73z" />
+ <glyph glyph-name="afii57668" unicode="ה" horiz-adv-x="537" d="M52 598q0 -5 3.5 -12t17 -15t35.5 -8h315q19 0 30.5 -16.5t11.5 -39.5q0 -65 -42 -65h-10l5 -343q0 -3 3 -17.5t3 -23.5q0 -14 -8.5 -37t-20.5 -23q-5 0 -8 2q-1 0 -1 6q0 4 0.5 14t0.5 15l5 407h-280q-90 0 -90 86q0 49 30 70zM74 142q0 -25 2 -54.5t2 -31.5q0 -21 -6.5 -39t-20.5 -18l-1 1h-3q-7 0 -7 50q0 3 0.5 15t0.5 26q0 13 -1 37t-1 36q0 61 14.5 104t28.5 43q6 0 6 -19q0 -9 -7 -59t-7 -91z" />
+ <glyph glyph-name="afii57669" unicode="ו" horiz-adv-x="350" d="M166 563q49 0 63.5 -19t14.5 -59q0 -9 -0.5 -24.5t-0.5 -21.5l12 -340q0 -22 -6 -60.5t-16 -38.5h-2q-1 0 -8 15t-7 25l7 325v7q0 20 -23 46.5t-56 26.5q-6 0 -18 -0.5t-17 -0.5q-28 0 -44.5 17.5t-16.5 44.5q0 24 12 52t23 40l3 -10q3 -11 10.5 -18t21.5 -7q4 0 10 -0.5t9 -0.5q6 0 15.5 0.5t13.5 0.5z" />
+ <glyph glyph-name="space" unicode=" " horiz-adv-x="250"/>
+ </font>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" y="300" x="10">Start selecting here</text>
+ <text font-size="12" y="130" x="10">select from 'a' to '1'</text>
+ <path d="M0 100l0 -100m-2 20l2 -20l2 20" transform="translate(20 190)" stroke="black" fill="none"/>
+ <path d="M20 140l160 0m-20 -2l20 2l-20 2" stroke="black" fill="none"/>
+
+ <text xml:id="text" font-size="48" y="128" x="10" font-family="tselect" transform="translate(0 60)"> abc אבג 123 דהו def </text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-ws-01-t.png b/test/svg/svg1.2/svg/text-ws-01-t.png
new file mode 100644
index 0000000..6cb1986
Binary files /dev/null and b/test/svg/svg1.2/svg/text-ws-01-t.png differ
diff --git a/test/svg/svg1.2/svg/text-ws-01-t.svg b/test/svg/svg1.2/svg/text-ws-01-t.svg
new file mode 100644
index 0000000..2103460
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-ws-01-t.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="LH," desc="Test that viewer correctly handle whitespace and the 'space' attribute." status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: text-ws-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test for viewer correct handling of whitespace and the 'xml:space' attribute. There are two sub-tests, for xml:space value "default". In each test, the content of the 'text' element is written on multiple lines. The first test of each pair has indented text with leading space characters, tabs, etc. The second has no indentation, but a line break before the content and after it. There are no space (or other whitespace) characters at the ends of the lines.</p>
+ <p>The two test cases are self-descriptive. From the top; first, "default" value applied to 3 lines of content with indents, space characters, tabs, etc; second, "default" applied to two lines content with no indent;</p>
+ <p>In each test, the test string is in blue and the reference image is in black. The rendered picture should approximately match the reference image, however there is some question in the reference image concerning the exact amount of space in the long-space areas. The third test uses the nbsp unicode character to force the reference white spaces display, which provides an accurate match if the font in use has the same metrics for that character and the default white space. Also, variations are possible in the text fonts and layout (per CSS2 rules).</p>
+ <p>The test also uses the 'rect' element, as well as basic fill (solid primary colors), stroke (black 1-pixel lines), font-family (Arial) and font-size properties.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-ws-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="15" y="35" font-size="32" fill="black">Basic: xml:space attribute</text>
+ <text x="35" y="60" font-size="32" fill="black">& whitespace handling.</text>
+ <!-- Test 1: indented, spaces, tabs, and space='default' -->
+ <!-- Features=" line break and spaces before 1st line" tabs before 2nd line; -->
+ <!-- spaces before 3rd line; no space at ends of any lines. -->
+ <text x="15" y="105" fill="blue" font-size="40" xml:space="default">WS with indented lines.</text>
+ <text x="15" y="140" fill="black" font-size="40">WS with indented lines.</text>
+ <rect x="25" y="145" width="350" height="36" fill="none" stroke="black" />
+ <text x="28" y="175" fill="black" font-size="40">xml:space='default'</text>
+ <!-- Test 2: non-indented,and space='default' -->
+ <!-- Features=" line break before 1st line" no space either at beginning -->
+ <!-- or end of any lines. -->
+ <text x="15" y="225" fill="blue" font-size="40" xml:space="default"> WS non-indented lines. </text>
+ <text x="15" y="260" fill="black" font-size="40">WS non-indented lines.</text>
+ <rect x="25" y="265" width="350" height="36" fill="none" stroke="black" />
+ <text x="28" y="295" fill="black" font-size="40">xml:space='default'</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/text-ws-02-t.png b/test/svg/svg1.2/svg/text-ws-02-t.png
new file mode 100644
index 0000000..4ba9c1a
Binary files /dev/null and b/test/svg/svg1.2/svg/text-ws-02-t.png differ
diff --git a/test/svg/svg1.2/svg/text-ws-02-t.svg b/test/svg/svg1.2/svg/text-ws-02-t.svg
new file mode 100644
index 0000000..0750468
--- /dev/null
+++ b/test/svg/svg1.2/svg/text-ws-02-t.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="VH" owner="LH," desc="Test that viewer correctly handle whitespace and the 'space' attribute." status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: text-ws-02-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>Test for viewer correct handling of whitespace and the 'xml:space' attribute. There are two sub-tests, for value "preserve". In each test, the content of the 'text' element is written on multiple lines. The first test of each pair has indented text with leading space characters, tabs, etc. The second has no indentation, but a line break before the content and after it. There are no space (or other whitespace) characters at the ends of the lines.</p>
+ <p>The two test cases are self-descriptive. From the top; first, "preserve" applied to essentially the same content as first; second, "preserve" applied to essentially the same content as second.</p>
+ <p>In each test, the test string is in blue and the reference image is in black. The rendered picture should approximately match the reference image, however there is some question in the reference image concerning the exact amount of space in the long-space areas. The third test uses the nbsp unicode character to force the reference white spaces display, which provides an accurate match if the font in use has the same metrics for that character and the default white space. Also, variations are possible in the text fonts and layout (per CSS2 rules).</p>
+ <p>The test also uses the 'rect' element, as well as basic fill (solid primary colors), stroke (black 1-pixel lines), font-family (Arial) and font-size properties.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: text-ws-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="15" y="35" font-size="32" fill="black">Basic: xml:space attribute</text>
+ <text x="35" y="60" font-size="32" fill="black">& whitespace handling.</text>
+ <!-- Test 3: indented, spaces, tabs, and space='preserve' -->
+ <!-- Features=" line break and spaces before 1st line" tabs before 2nd line; -->
+ <!-- spaces before 3rd line; no space at ends of any lines. -->
+ <text x="15" y="105" fill="blue" font-size="40" xml:space="preserve">
+WS
+ with
+ indented lines.
+ </text>
+ <!-- should match this, with blank replacing HT, LF, etc -->
+ <text x="15" y="140" fill="black" font-size="40" xml:space="preserve"> WS   with  indented lines.</text>
+ <rect x="25" y="145" width="380" height="36" fill="none" stroke="black" />
+ <text x="28" y="175" fill="black" font-size="40">xml:space='preserve'</text>
+ <!-- Test 4: non-indented, and space='preserve' -->
+ <!-- Features=" no line break before 1st line" no space either at beginning -->
+ <!-- or end of any lines. -->
+ <text x="15" y="225" fill="blue" font-size="40" xml:space="preserve">WS
+non-indented lines.
+ </text>
+ <text x="15" y="260" fill="black" font-size="40">WS non-indented lines.</text>
+ <rect x="25" y="265" width="380" height="36" fill="none" stroke="black" />
+ <text x="28" y="295" fill="black" font-size="40">xml:space='preserve'</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-conform-201-t.png b/test/svg/svg1.2/svg/udom-conform-201-t.png
new file mode 100644
index 0000000..c1824fc
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-conform-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-conform-201-t.svg b/test/svg/svg1.2/svg/udom-conform-201-t.svg
new file mode 100644
index 0000000..5318033
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-conform-201-t.svg
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test that '#text' trait access works on text content elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-conform-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>getTrait[NS]</tt> and <tt>setTrait[NS]</tt>
+ methods of the <b>TraitAccess</b> interface work for the special
+ <tt>'#text'</tt> trait on the <tt>desc</tt>, <tt>title</tt>,
+ <tt>metadata</tt>, <tt>text</tt>, <tt>tspan</tt> and <tt>textArea</tt>
+ elements.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether the
+ <tt>getTrait</tt> and <tt>getTraitNS</tt> returned the expected
+ strings for each of the relevant elements; blue for pass,
+ red for fail. The four text strings below it indicate whether
+ <tt>setTrait</tt> and <tt>setTraitNS</tt> worked on the <tt>text</tt>
+ and <tt>textArea</tt> elements; they must all be the string â??PASSâ??.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-conform-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>#text trait access test</text>
+
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <desc xml:id='desc'>This is the desc.</desc>
+ <title xml:id='title'>This is the title.</title>
+ <metadata xml:id='metadata'>This is the metadata.</metadata>
+ <g font-size='12'>
+ <text xml:id='text' x='10' y='140'>This is the text <tspan xml:id='tspan'>and this is the tspan</tspan>.</text>
+ <text xml:id='text2' x='10' y='150'/>
+
+ <textArea xml:id='textArea' x='10' y='150' width='300'>This is the textArea.</textArea>
+ <textArea xml:id='textArea2' x='10' y='160' width='300'/>
+ </g>
+
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b) {
+ if (!b) {
+ throw 'assertion failed';
+ }
+ }
+
+ function test(e, t) {
+ assertTrue(e.getTrait('#text') == t
+ && e.getTraitNS(null, '#text') == t);
+ }
+
+ function set(e, t) {
+ e.setTrait('#text', t);
+ }
+
+ function set2(e, t) {
+ e.setTraitNS(null, '#text', t);
+ }
+
+ try {
+ // Get all of the elements.
+ var ids = 'desc title metadata tspan text textArea text2 textArea2'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Test getting the initial text.
+ test(desc, 'This is the desc.');
+ test(title, 'This is the title.');
+ test(metadata, 'This is the metadata.');
+ test(tspan, 'and this is the tspan');
+ test(text, 'This is the text and this is the tspan.');
+ test(textArea, 'This is the textArea.');
+ test(text2, '');
+ test(textArea2, '');
+
+ // Test setting text on a <desc>.
+ set (desc, 'New desc text.');
+ test(desc, 'New desc text.');
+ set2(desc, 'Second new desc text.');
+ test(desc, 'Second new desc text.');
+
+ // Test setting text on a <title>.
+ set (title, 'New title text.');
+ test(title, 'New title text.');
+ set2(title, 'Second new title text.');
+ test(title, 'Second new title text.');
+
+ // Test setting text on a <metadata>.
+ set (metadata, 'New metadata text.');
+ test(metadata, 'New metadata text.');
+ set2(metadata, 'Second new metadata text.');
+ test(metadata, 'Second new metadata text.');
+
+ // Test setting text on a <tspan>, and that the enclosing
+ // <text>'s text content is returned appropriately.
+ set (tspan, 'New tspan text.');
+ test(tspan, 'New tspan text.');
+ test(text, 'This is the text New tspan text..');
+ set2(tspan, 'Second new tspan text.');
+ test(tspan, 'Second new tspan text.');
+ test(text, 'This is the text Second new tspan text..');
+
+ // Test setting text on a <text>, and that the enclosed
+ // <tspan> isnâ??t changed.
+ set (text, 'PASS');
+ test(text, 'PASS');
+ set2(text2, 'PASS');
+ test(text2, 'PASS');
+ test(tspan, 'Second new tspan text.');
+
+ // Test that the <tspan> was removed from its parent.
+ assertTrue(tspan.parentNode == null);
+
+ // Test setting text on a <textArea>.
+ set (textArea, 'PASS');
+ test(textArea, 'PASS');
+ set2(textArea2, 'PASS');
+ test(textArea2, 'PASS');
+
+ // Set the rectangle to be blue if the previous tests all passed.
+ document.getElementById('ind').setAttributeNS(null, 'fill', 'blue');
+ } catch (e) {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-201-t.png b/test/svg/svg1.2/svg/udom-dom-201-t.png
new file mode 100644
index 0000000..779e82b
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-201-t.svg b/test/svg/svg1.2/svg/udom-dom-201-t.svg
new file mode 100644
index 0000000..a2f29ae
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-201-t.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test that the DOMException interface and its constants exist" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-dom-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <b>DOMException</b> interface is present
+ and that all of its constant fields exist and are correct.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether all
+ of the constant fields are correct; green for pass, red for fail.
+ </p>
+
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>DOMException test</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b) {
+ if (!b) {
+ throw 'assertion failed';
+ }
+ }
+
+ var ks = {
+ INDEX_SIZE_ERR: 1,
+ DOMSTRING_SIZE_ERR: 2,
+ HIERARCHY_REQUEST_ERR: 3,
+ WRONG_DOCUMENT_ERR: 4,
+ INVALID_CHARACTER_ERR: 5,
+ NO_DATA_ALLOWED_ERR: 6,
+ NO_MODIFICATION_ALLOWED_ERR: 7,
+ NOT_FOUND_ERR: 8,
+ NOT_SUPPORTED_ERR: 9,
+ INUSE_ATTRIBUTE_ERR: 10,
+ INVALID_STATE_ERR: 11,
+ SYNTAX_ERR: 12,
+ INVALID_MODIFICATION_ERR: 13,
+ NAMESPACE_ERR: 14,
+ INVALID_ACCESS_ERR: 15,
+ VALIDATION_ERR: 16,
+ TYPE_MISMATCH_ERR: 17
+ };
+
+ try {
+ // Test that each constant exists.
+ for (var k in ks) {
+ assertTrue(DOMException[k] === ks[k]);
+ }
+
+ // Set the rectangle to be green if the previous tests all passed.
+ document.getElementById('ind').setAttributeNS(null, 'fill', 'green');
+ } catch (e) {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-202-t.png b/test/svg/svg1.2/svg/udom-dom-202-t.png
new file mode 100644
index 0000000..1b4b836
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-202-t.svg b/test/svg/svg1.2/svg/udom-dom-202-t.svg
new file mode 100644
index 0000000..4f32d50
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-202-t.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the attributes of the Node interface" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-dom-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <b>Node</b> interface attributes
+ <tt>namespaceURI</tt>, <tt>localName</tt>, <tt>parentNode</tt>
+ and <tt>ownerDocument</tt> are correct, for some simple cases.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether all
+ of the attributes being tested have the expected values; green for
+ pass, red for fail.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Node interface attribute test</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <svg:g xml:id='g1' xmlns:svg='http://www.w3.org/2000/svg'>
+ <g xml:id='g2' xmlns:v='http://example.org/vegetable'>
+ <apple xml:id='a1' xmlns='http://example.org/fruit'/>
+ <v:asparagus xml:id='a2'/>
+ </g>
+ </svg:g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b) {
+ if (!b) {
+ throw 'assertion failed';
+ }
+ }
+
+ try {
+ g1 = document.getElementById('g1');
+ g2 = document.getElementById('g2');
+ a1 = document.getElementById('a1');
+ a2 = document.getElementById('a2');
+
+ // Test namespaceURI.
+ assertTrue(document.namespaceURI == null);
+ assertTrue(g1.namespaceURI == 'http://www.w3.org/2000/svg');
+ assertTrue(a1.namespaceURI == 'http://example.org/fruit');
+ assertTrue(a2.namespaceURI == 'http://example.org/vegetable');
+
+ // Test localName.
+ assertTrue(document.localName == null);
+ assertTrue(g1.localName == 'g');
+ assertTrue(a1.localName == 'apple');
+ assertTrue(a2.localName == 'asparagus');
+
+ // Test parentNode.
+ assertTrue(document.parentNode == null);
+ assertTrue(g2.parentNode == g1);
+ assertTrue(a1.parentNode == g2);
+ assertTrue(a2.parentNode == g2);
+
+ // Test ownerDocument.
+ assertTrue(document.ownerDocument == null);
+ assertTrue(g1.ownerDocument == document);
+ assertTrue(g2.ownerDocument == document);
+ assertTrue(a1.ownerDocument == document);
+ assertTrue(a2.ownerDocument == document);
+
+ // Set the rectangle to be green if the previous tests all passed.
+ document.getElementById('ind').setAttributeNS(null, 'fill', 'green');
+ } catch (e) {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-203-t.png b/test/svg/svg1.2/svg/udom-dom-203-t.png
new file mode 100644
index 0000000..ca85009
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-203-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-203-t.svg b/test/svg/svg1.2/svg/udom-dom-203-t.svg
new file mode 100644
index 0000000..1bc2b29
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-203-t.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test that the Node.textContent attribute works" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-dom-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>textContent</tt> attribute of the
+ <b>Node</b> interface works correctly. The test is passed
+ if a blue square and two "PASS" are displayed.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether the
+ behavior when manipulating the <tt>textContent</tt> attribute
+ on various elements.
+ The two text strings below it indicate whether setting
+ <tt>textContent</tt> on the <tt>text</tt> and <tt>textArea</tt>
+ elements succeeded.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Node.textContent test</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <desc xml:id='desc'>This is the desc.</desc>
+ <title xml:id='title'>This is the title.</title>
+ <metadata xml:id='metadata'>This is the metadata.</metadata>
+ <g font-size='12'>
+ <text xml:id='text' x='10' y='140'>
+ This is the text <tspan xml:id='tspan'>and this is the tspan</tspan>.
+ </text>
+ <textArea xml:id='textArea' x='10' y='150' width='300'>This is the textArea.</textArea>
+ </g>
+
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b) {
+ if (!b) {
+ throw 'assertion failed';
+ }
+ }
+
+ function test(e, t) {
+ assertTrue(e.textContent == t);
+ }
+
+ function set(e, t) {
+ e.textContent = t;
+ }
+
+ try {
+ // Get all of the elements.
+ var ids = 'desc title metadata tspan text textArea'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Test getting the initial text.
+ test(desc, 'This is the desc.');
+ test(title, 'This is the title.');
+ test(metadata, 'This is the metadata.');
+ test(tspan, 'and this is the tspan');
+ test(text, 'This is the text and this is the tspan.');
+ test(textArea, 'This is the textArea.');
+
+ // Test setting text on a <desc>.
+ set (desc, 'New desc text.');
+ test(desc, 'New desc text.');
+
+ // Test setting text on a <title>.
+ set (title, 'New title text.');
+ test(title, 'New title text.');
+
+ // Test setting text on a <metadata>.
+ set (metadata, 'New metadata text.');
+ test(metadata, 'New metadata text.');
+
+ // Test setting text on a <tspan>, and that the enclosing
+ // <text>'s text content is returned appropriately.
+ set (tspan, 'New tspan text.');
+ test(tspan, 'New tspan text.');
+ test(text, 'This is the text New tspan text..');
+
+ // Test setting text on a <text>, and that the enclosed
+ // <tspan> isnâ??t changed.
+ set (text, 'PASS');
+ test(text, 'PASS');
+ test(tspan, 'New tspan text.');
+
+ // Test that the <tspan> was removed from its parent.
+ assertTrue(tspan.parentNode == null);
+
+ // Test setting text on a <textArea>.
+ set (textArea, 'PASS');
+ test(textArea, 'PASS');
+
+ // Set the rectangle to be blue if the previous tests all passed.
+ document.getElementById('ind').setAttributeNS(null, 'fill', 'blue');
+ } catch (e) {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-204-t.png b/test/svg/svg1.2/svg/udom-dom-204-t.png
new file mode 100644
index 0000000..868f279
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-204-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-204-t.svg b/test/svg/svg1.2/svg/udom-dom-204-t.svg
new file mode 100644
index 0000000..2f3c909
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-204-t.svg
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test the operation of Node.appendChild" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-dom-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>appendChild</tt> method of the
+ <b>Node</b> interface works correctly.
+ </p>
+ <p>
+ The test has been passed if six blue rectangles are displayed.
+ Each rectangle indicates the result of a different aspect of
+ <tt>appendChild</tt> behavior being tested:
+ </p>
+ <ul>
+ <li>
+ The first is a test of appending a newly created <tt>rect</tt> that
+ is not yet in the document tree.
+ </li>
+ <li>
+ The second is a test of appending a <tt>rect</tt> that is already
+ somewhere else in the document tree. In its initial position, it
+ inherits <tt>fill='red'</tt>, and in its new position, it inherits
+ <tt>fill='blue'</tt>.
+ </li>
+ <li>
+ The third is a test of appending a <tt>rect</tt> to its current
+ parent. This results in the <tt>rect</tt> being moved to the
+ final position in the list of child nodes. In its initial
+ position, a red <tt>rect</tt> occludes this blue one. In its final
+ position, this blue <tt>rect</tt> occludes the red one.
+ </li>
+ <li>
+ The fourth is a test of appending a second element to the document
+ node. This results in a DOMException being thrown with code
+ HIERARCHY_REQUEST_ERR. If this exception is thrown, the
+ <tt>rect</tt> is changed from red to blue.
+ </li>
+ <li>
+ The fifth is a test of appending an element to one of its
+ descendant elements. This also results in a DOMException being
+ thrown with code HIERARCHY_REQUEST_ERR. If this exception is
+ thrown, the <tt>rect</tt> is changed from red to blue.
+ </li>
+ <li>
+ The sixth is a test of appending an element from another document
+ into this document. The element from the other document is obtained
+ by calling <tt>parseXML</tt>. A DOMException must be thrown with
+ code WRONG_DOCUMENT_ERR. If this exception is thrown, the
+ <tt>rect</tt> is changed from red to blue.
+ </li>
+ </ul>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Node.appendChild test</text>
+ <text x='10' y='150' font-size='12'>All six rectangles above must be blue.</text>
+ <g xml:id='g1' fill='blue' transform='translate(0,30)'>
+ <g xml:id='g2' fill='red'>
+ <rect xml:id='rect1' x='10' y='30' width='50' height='50'/>
+ </g>
+ <rect xml:id='rect2' x='130' y='30' width='50' height='50' fill='blue'/>
+ <rect xml:id='rect3' x='130' y='30' width='50' height='50' fill='red'/>
+ <rect xml:id='rect4' x='190' y='30' width='50' height='50' fill='red'/>
+ <rect xml:id='rect5' x='250' y='30' width='50' height='50' fill='red'/>
+ <rect xml:id='rect6' x='310' y='30' width='50' height='50' fill='red'/>
+ <g xml:id='g3'>
+ <g xml:id='g4'/>
+ </g>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ SVGNS = 'http://www.w3.org/2000/svg';
+
+ // Get all of the elements.
+ var ids = 'g1 g2 g3 g4 rect1 rect2 rect3 rect4 rect5 rect6'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Test appending an element not already in the tree.
+ newRect = document.createElementNS(SVGNS, 'rect');
+ newRect.setAttributeNS(null, 'x', '70');
+ newRect.setAttributeNS(null, 'y', '30');
+ newRect.setAttributeNS(null, 'width', '50');
+ newRect.setAttributeNS(null, 'height', '50');
+ g1.appendChild(newRect);
+
+ // Test appending an element already in the tree.
+ g1.appendChild(rect1);
+
+ // Test appending an element already in the tree to its same parent.
+ g1.appendChild(rect2);
+
+ newG = document.createElementNS(SVGNS, 'g');
+
+ // Test appending a second element to the document.
+ try {
+ document.appendChild(newG);
+ } catch (e) {
+ if (e.code == DOMException.HIERARCHY_REQUEST_ERR) {
+ rect4.setAttributeNS(null, 'fill', 'blue');
+ }
+ }
+
+ // Test appending an element to its descendant.
+ try {
+ g4.appendChild(g3);
+ } catch (e) {
+ if (e.code == DOMException.HIERARCHY_REQUEST_ERR) {
+ rect5.setAttributeNS(null, 'fill', 'blue');
+ }
+ }
+
+ // Test appending an element from another document.
+ try {
+ var newDoc = parseXML('<a/>', null);
+ g1.appendChild(newDoc.documentElement);
+ } catch (e) {
+ if (e.code == DOMException.WRONG_DOCUMENT_ERR) {
+ rect6.setAttributeNS(null, 'fill', 'blue');
+ }
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-206-t.png b/test/svg/svg1.2/svg/udom-dom-206-t.png
new file mode 100644
index 0000000..9a71344
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-206-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-206-t.svg b/test/svg/svg1.2/svg/udom-dom-206-t.svg
new file mode 100644
index 0000000..9640da5
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-206-t.svg
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the operation of Node.removeChild" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-dom-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>removeChild</tt> method of the
+ <b>Node</b> interface works correctly.
+ </p>
+ <p>
+ The test has three sub-tests, for different <tt>removeChild</tt>
+ behavior, which consist of a paired rectangle and circle:
+ </p>
+ <ul>
+ <li>
+ The first is a test of successfully removing a single element
+ from the document. Initially, a red rectangle occludes a blue
+ rectangle. This red rectangle should then be removed by the
+ <tt>removeChild</tt> call, which results in the blue rectangle
+ becoming visible. The circle beneath it represents whether
+ <tt>removeChild</tt> returned the correct value (i.e., a reference
+ to the same red rectangle that was removed). If this return
+ value is incorrect, the circle will remain red. If it was
+ correct, the circle is changed to be blue.
+ </li>
+ <li>
+ The second is a test of successfully removing a subtree
+ from the document. The subtree is simply a <tt>g</tt> element
+ with a red <tt>rect</tt> as a child, which initially occludes
+ a blue rectangle. The group with the red rectangle should then be
+ removed by the <tt>removeChild</tt> call, which results in the blue
+ rectangle becoming visible. The circle beneath it represents
+ whether <tt>removeChild</tt> returned the correct value (i.e., a
+ reference to the <tt>g</tt> element that was removed). If this
+ return value is incorrect, the circle will remain red. If it was
+ correct, the circle is changed to be blue.
+ </li>
+ <li>
+ The third is a test of <tt>removeChild</tt> throwing a NOT_FOUND_ERR
+ <b>DOMException</b> when passed an element that is not a child of
+ the element on which the method was called. If the blue rectangle
+ remains, the implementation correctly did not remove it. The circle
+ indicates whether the exception was thrown as expected. If the
+ exception was not thrown, or the wrong is exception is thrown,
+ the circle will remain red. Otherwise, the circle will be changed
+ to be blue.
+ </li>
+ </ul>
+ <p>
+ The test has been passed if the top row shows three blue rectangles
+ and the bottom row shows three blue circles.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Node.removeChild test</text>
+ <text x='10' y='280' font-size='12'>All three rects and three circles must be blue.</text>
+ <g xml:id='g1' transform='translate(120,60)'>
+ <g font-size='10'>
+ <g text-anchor='middle'>
+ <text x='55' y='20'>remove single element</text>
+ <text x='155' y='20'>remove subtree</text>
+ <text x='255' y='20'>remove incorrect element</text>
+ </g>
+ <g text-anchor='end'>
+ <text x='0' y='55'>removeChild operation</text>
+ <text x='0' y='125'>removeChild return value</text>
+ </g>
+ </g>
+ <rect xml:id='rect1' x='30' y='30' width='50' height='50' fill='blue'/>
+ <rect xml:id='rect2' x='30' y='30' width='50' height='50' fill='red'/>
+ <circle xml:id='circle1' cx='55' cy='125' r='25' fill='red'/>
+ <rect x='130' y='30' width='50' height='50' fill='blue'/>
+ <g xml:id='g2'>
+ <rect x='130' y='30' width='50' height='50' fill='red'/>
+ </g>
+ <circle xml:id='circle2' cx='155' cy='125' r='25' fill='red'/>
+ <rect xml:id='rect3' x='230' y='30' width='50' height='50' fill='blue'/>
+ <circle xml:id='circle3' cx='255' cy='125' r='25' fill='red'/>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ // Get all of the elements.
+ var ids = 'g1 g2 rect1 rect2 rect3 circle1 circle2 circle3'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Test removing a single element.
+ if (g1.removeChild(rect2) == rect2) {
+ circle1.setAttributeNS(null, 'fill', 'blue');
+ }
+
+ // Test removing a subtree.
+ if (g1.removeChild(g2) == g2) {
+ circle2.setAttributeNS(null, 'fill', 'blue');
+ }
+
+ // Test removing a child from the wrong parent.
+ try {
+ g2.removeChild(rect3);
+ } catch (e) {
+ if (e.code == DOMException.NOT_FOUND_ERR) {
+ circle3.setAttributeNS(null, 'fill', 'blue');
+ }
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-207-t.png b/test/svg/svg1.2/svg/udom-dom-207-t.png
new file mode 100644
index 0000000..51c76ca
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-207-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-207-t.svg b/test/svg/svg1.2/svg/udom-dom-207-t.svg
new file mode 100644
index 0000000..8330228
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-207-t.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the operation of Node.cloneNode" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-dom-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>cloneNode</tt> method of the
+ <b>Node</b> interface works correctly.
+ </p>
+ <p>
+ The test has two sub-tests: one for a deep clone, and
+ one for a shallow clone.
+ </p>
+ <ul>
+ <li>
+ The first row shows the deep clone sub-test. A group
+ containing three cascaded rectangles and a <tt>text</tt>
+ element are cloned and inserted into the document 180
+ user units to the right. The group inherits fill and
+ stroke colors from a parent element, and where the cloned
+ copy of the group is inserted, different colors are
+ inherited. The original group inherits a blue fill and
+ a light blue stroke, while the cloned group inherits an
+ orange fill and a light orange stroke. The text in both copies
+ of the group have a white fill and no stroke.
+ </li>
+ <li>
+ The second row shows the shallow clone sub-test. A <tt>circle</tt>
+ element with two child <tt>set</tt> elements (that set the fill to
+ blue and the stroke to light blue) is shallow cloned and inserted
+ into the document 100 user units to the right. Since it is a
+ shallow clone, the cloned <tt>circle</tt> does not have the
+ <tt>set</tt> element children, and inherits an orange fill
+ and a light orange stroke.
+ </li>
+ </ul>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Node.cloneNode test</text>
+ <g transform='translate(100,50)'>
+ <g font-size='10' text-anchor='middle'>
+ <text x='50' y='120'>original</text>
+ <text x='230' y='120'>deep clone</text>
+ <text x='50' y='230'>original</text>
+ <text x='230' y='230'>shallow clone</text>
+ </g>
+ <g stroke-width='4'>
+ <g xml:id='g1' fill='blue' stroke='#88f'>
+ <g xml:id='g2'>
+ <rect x='10' y='30' width='50' height='50'/>
+ <rect x='20' y='40' width='50' height='50'/>
+ <rect x='30' y='50' width='50' height='50'/>
+ <text x='55' y='80' fill='white' stroke='none' text-anchor='middle'>A</text>
+ </g>
+ </g>
+ <g xml:id='g3' transform='translate(180,0)' fill='#f80' stroke='#fc8' stroke-width='4'/>
+
+ <circle xml:id='circle1' cx='50' cy='185' r='25' fill='#f80' stroke='#fc8'>
+ <set attributeName='fill' to='blue'/>
+ <set attributeName='stroke' to='#88f'/>
+ </circle>
+ <g xml:id='g4' transform='translate(180,0)'/>
+ </g>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ // Get all of the elements.
+ var ids = 'g1 g2 g3 g4 circle1'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Test deep cloning an element.
+ g2c = g2.cloneNode(true);
+ g3.appendChild(g2c);
+
+ // Test shallow cloning an element.
+ circle1c = circle1.cloneNode(false);
+ g4.appendChild(circle1c);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-209-t.png b/test/svg/svg1.2/svg/udom-dom-209-t.png
new file mode 100644
index 0000000..bfe2d4e
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-209-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-209-t.svg b/test/svg/svg1.2/svg/udom-dom-209-t.svg
new file mode 100644
index 0000000..f775261
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-209-t.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test the operation of Element.setAttribute(NS)" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-dom-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>setAttribute</tt> and <tt>setAttributeNS</tt>
+ methods on the <b>Element</b> interface work correctly, for some
+ simple cases.
+ </p>
+ <p>
+ There are five sub-tests (a rectangle for each). These are:
+ </p>
+ <ul>
+ <li>Sub-test 1: test setting known attributes in no namespace.</li>
+ <li>Sub-test 2: test setting unknown attributes in no namespace.</li>
+ <li>
+ Sub-test 3: test setting known attributes in a namespace, correctly using <tt>setAttributeNS</tt> with a namespace URI.
+ </li>
+ <li>
+ Sub-test 4: test setting known attributes in a namespace, incorrectly using <tt>setAttribute</tt> with a QName.
+ </li>
+ <li>Sub-test 5: test setting unknown attributes in a namespace.</li>
+ </ul>
+ <p>
+ The test has been passed if all five rectangles are blue.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Element.setAttribute(NS) test</text>
+ <text x='10' y='250' font-size='12'>All five rectangles must be blue.</text>
+ <defs>
+ <rect xml:id='good' width='50' height='50' fill='blue'/>
+ <rect xml:id='bad' width='50' height='50' fill='red'/>
+ </defs>
+ <g xml:id='g1' xmlns:v='http://example.org/vegetable' transform='translate(0,50)'>
+ <rect xml:id='rect1' x='10' y='30' width='0' height='0' fill='blue'/>
+ <rect xml:id='rect2' x='80' y='30' width='50' height='50' fill='red'/>
+ <rect x='150' y='30' width='50' height='50' fill='red'/>
+ <use xml:id='use1' xlink:href='#invalid' x='150' y='30'/>
+ <rect x='220' y='30' width='50' height='50' fill='blue'/>
+ <use xml:id='use2' xlink:href='#invalid' x='150' y='30'/>
+ <rect xml:id='rect3' x='290' y='30' width='50' height='50' fill='red'/>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ XMLNS = 'http://www.w3.org/XML/1998/namespace';
+ XLINKNS = 'http://www.w3.org/1999/xlink';
+ VNS = 'http://example.org/vegetable';
+
+ // Get all of the elements.
+ var ids = 'g1 rect1 rect2 rect3 use1 use2'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Test setting known attributes in no namespace.
+ rect1.setAttribute('width', '50');
+ rect1.setAttributeNS(null, 'height', '50');
+
+ // Test setting unknown attributes in no namespace.
+ rect2.setAttribute('probability', 'high');
+ rect2.setAttributeNS(null, 'altitude', '12000ft');
+ if (rect2.getAttribute('probability') == 'high' &&
+ rect2.getAttributeNS(null, 'probability') == 'high' &&
+ rect2.getAttribute('altitude') == '12000ft' &&
+ rect2.getAttributeNS(null, 'altitude') == '12000ft') {
+ rect2.setAttributeNS(null, 'fill', 'blue');
+ }
+
+ // Test setting known attributes in a namespace.
+ use1.setAttributeNS(XLINKNS, 'href', '#good');
+ use2.setAttribute('xlink:href', '#bad');
+
+ // Test setting unknown attributes in a namespace.
+ rect3.setAttribute('v:crispness', 'quiteCrisp');
+ rect3.setAttributeNS(VNS, 'hasSeeds', 'true');
+ if (rect3.getAttribute('v:crispness') == 'quiteCrisp' &&
+ rect3.getAttributeNS(VNS, 'crispness') != 'quiteCrisp' &&
+ rect3.getAttribute('v:hasSeeds') != 'true' &&
+ rect3.getAttributeNS(VNS, 'hasSeeds') == 'true') {
+ rect3.setAttributeNS(null, 'fill', 'blue');
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-210-t.png b/test/svg/svg1.2/svg/udom-dom-210-t.png
new file mode 100644
index 0000000..cface29
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-210-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-210-t.svg b/test/svg/svg1.2/svg/udom-dom-210-t.svg
new file mode 100644
index 0000000..c617a4d
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-210-t.svg
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the operation of Document.createElementNS" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-dom-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>createElementNS</tt> method on the
+ <b>Document</b> interface works correctly, for each SVG Tiny 1.2
+ element, and for some unknown elements.
+ </p>
+ <p>
+ There are four sub-tests (a rectangle for each). The test has been
+ passed if all four rectangles are blue.
+ </p>
+ <p>
+ Thes are:
+ </p>
+ <ul>
+ <li>Sub-test 1: test creating each SVG Tiny 1.2 element.</li>
+ <li>Sub-test 2: test creating an unknown element in no namespace.</li>
+ <li>Sub-test 3: test creating an unknown element in the SVG namespace.</li>
+ <li>Sub-test 4: test creating an unknown element in another namespace.</li>
+ </ul>
+ <p>
+
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-210-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Document.createElement(NS) test</text>
+ <g font-size='10'>
+ <text x='10' y='150'>SVG elements</text>
+ <text x='120' y='150'>Unknown element,</text>
+ <text x='120' y='160'>no namespace</text>
+ <text x='230' y='150'>Unknown element,</text>
+ <text x='230' y='160'>SVG namespace</text>
+ <text x='340' y='150'>Unknown element,</text>
+ <text x='340' y='160'>non-SVG namespace</text>
+ </g>
+ <text x='10' y='250' font-size='12'>All four rectangles must be blue.</text>
+ <g xml:id='g1' transform='translate(0,50)'>
+ <rect xml:id='rect1' x='10' y='30' width='50' height='50' fill='red'/>
+ <rect xml:id='rect2' x='120' y='30' width='50' height='50' fill='red'/>
+ <rect xml:id='rect3' x='230' y='30' width='50' height='50' fill='red'/>
+ <rect xml:id='rect4' x='340' y='30' width='50' height='50' fill='red'/>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ SVGNS = 'http://www.w3.org/2000/svg';
+ EVNS = 'http://www.w3.org/2001/xml-events';
+ VNS = 'http://example.org/vegetable';
+
+ // Get all of the elements.
+ var ids = 'g1 rect1 rect2 rect3 rect4'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // List of all SVG element names.
+ var elementNames = 'a animate animateColor animateMotion animateTransform animation audio circle defs desc discard ellipse font font-face font-face-src font-face-uri foreignObject g glyph handler hkern image line linearGradient metadata missing-glyph mpath path polygon polyline prefetch radialGradient rect script set solidColor stop svg switch tbreak text textArea title tspan use video'.split(' ');
+
+ var elementName, elt;
+
+ // Test creating SVG Tiny 1.2 elements.
+ try {
+ for (var i in elementNames) {
+ elementName = elementNames[i];
+ elt = document.createElementNS(SVGNS, elementName);
+ if (elt.localName != elementName ||
+ elt.namespaceURI != SVGNS ||
+ elt.parentNode != null ||
+ elt.ownerDocument != document ||
+ elt.textContent != '') {
+ throw 'assertion failed for <' + elementName + '>';
+ }
+ }
+ elt = document.createElementNS(EVNS, 'listener');
+ if (elt.localName != 'listener' ||
+ elt.namespaceURI != EVNS ||
+ elt.parentNode != null ||
+ elt.ownerDocument != document ||
+ elt.textContent != '') {
+ throw 'assertion failed for <ev:listener>';
+ }
+ rect1.setAttributeNS(null, 'fill', 'blue');
+ } catch (e) {
+ }
+
+ // Test creating an unknown element in no namespace.
+ try {
+ elt = document.createElementNS(null, 'thing');
+ if (elt.localName == 'thing' &&
+ elt.namespaceURI == null &&
+ elt.parentNode == null &&
+ elt.ownerDocument == document &&
+ elt.textContent == '') {
+ rect2.setAttributeNS(null, 'fill', 'blue');
+ }
+ } catch (e) {
+ }
+
+ // Test creating an unknown element in the SVG namespace.
+ try {
+ elt = document.createElementNS(SVGNS, 'donkey');
+ if (elt.localName == 'donkey' &&
+ elt.namespaceURI == SVGNS &&
+ elt.parentNode == null &&
+ elt.ownerDocument == document &&
+ elt.textContent == '') {
+ rect3.setAttributeNS(null, 'fill', 'blue');
+ }
+ } catch (e) {
+ }
+
+ // Test creating an unknown element in a different namespace.
+ try {
+ elt = document.createElementNS(VNS, 'gourd');
+ if (elt.localName == 'gourd' &&
+ elt.namespaceURI == VNS &&
+ elt.parentNode == null &&
+ elt.ownerDocument == document &&
+ elt.textContent == '') {
+ rect4.setAttributeNS(null, 'fill', 'blue');
+ }
+ } catch (e) {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-211-t.png b/test/svg/svg1.2/svg/udom-dom-211-t.png
new file mode 100644
index 0000000..0d3ec84
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-211-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-211-t.svg b/test/svg/svg1.2/svg/udom-dom-211-t.svg
new file mode 100644
index 0000000..8f58bcf
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-211-t.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Simple test of the Document.documentElement attribute" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-dom-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This performs a simple test on the <tt>documentElement</tt> attribute
+ on the <b>Document</b> interface.
+ </p>
+ <p>
+ The test has been passed if there is a single green rectangle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-211-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Document.documentElement test</text>
+ <rect xml:id='rect1' x='10' y='60' width='50' height='50' fill='red'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ rect1 = document.getElementById('rect1');
+
+ var de = rect1;
+ while (de.parentNode.parentNode) {
+ de = de.parentNode;
+ }
+ if (document.documentElement == de) {
+ rect1.setAttributeNS(null, 'fill', 'green');
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-dom-213-t.png b/test/svg/svg1.2/svg/udom-dom-213-t.png
new file mode 100644
index 0000000..51b42a6
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-dom-213-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-dom-213-t.svg b/test/svg/svg1.2/svg/udom-dom-213-t.svg
new file mode 100644
index 0000000..3ab84f0
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-dom-213-t.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test the ElementTraversal interface attributes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-dom-213-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>firstElementChild</tt>,
+ <tt>lastElementChild</tt>, <tt>nextElementSibling</tt> and
+ <tt>previousElementSibling</tt> methods of the <b>ElementTraversal</b>
+ interface works correctly.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether all
+ of the attributes being tested have the expected values; green for
+ pass, red for fail.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-dom-213-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id='t1' x='10' y='42'>ElementTraversal test</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <svg:g xml:id='g1' xmlns:svg='http://www.w3.org/2000/svg'>
+ <g xml:id='g2' xmlns:v='http://example.org/vegetable'>
+ <apple xml:id='a1' xmlns='http://example.org/fruit'/>
+ <v:asparagus xml:id='a2'/>
+ </g>
+ </svg:g>
+ <script xml:id='s1' type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b)
+ {
+ if (!b)
+ {
+ throw 'assertion failed';
+ }
+ }
+
+ try
+ {
+ // Get all of the elements.
+ var ids = 't1 ind g1 g2 a1 a2 s1'.split(' ');
+ for (var i in ids)
+ {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ var rels =
+ {
+ ind: [null, null, g1, t1],
+ g1: [ g2, g2, s1, ind],
+ g2: [ a1, a2, null, null],
+ a1: [null, null, a2, null],
+ a2: [null, null, null, a1],
+ s1: [null, null, null, g1]
+ };
+
+ for (var id in rels)
+ {
+ var elt = this[id];
+ var rel = rels[id];
+ assertTrue(elt.firstElementChild == rel[0]);
+ assertTrue(elt.lastElementChild == rel[1]);
+ assertTrue(elt.nextElementSibling == rel[2]);
+ assertTrue(elt.previousElementSibling == rel[3]);
+ }
+
+ // Set the rectangle to be green if the previous tests all passed.
+ ind.setAttributeNS(null, 'fill', 'green');
+ }
+
+ catch (e)
+ {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-201-t.png b/test/svg/svg1.2/svg/udom-event-201-t.png
new file mode 100644
index 0000000..05c1755
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-201-t.svg b/test/svg/svg1.2/svg/udom-event-201-t.svg
new file mode 100644
index 0000000..55e380d
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-201-t.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the simple operation of the EventTarget interface methods" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-event-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the methods of the <b>EventTarget</b> interface work
+ correctly.
+ </p>
+ <p>
+ There are three sub-tests (a rectangle for each). These are:
+ </p>
+ <ul>
+ <li>Sub-test 1: test adding a listener with addEventListener.</li>
+ <li>
+ Sub-test 2: test adding a listener with addEventListener then
+ removing it with removeEventListener.
+ </li>
+ <li>
+ Sub-test 3: test adding a listener for an event type with incorrect
+ casing.
+ </li>
+ </ul>
+ <p>
+ The test has been passed if all three rectangles are blue.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>EventTarget interface test</text>
+ <text x='10' y='250' font-size='12'>All three rectangles must be blue.</text>
+ <rect xml:id='rect1' x='10' y='90' width='50' height='50' fill='red'/>
+ <rect xml:id='rect2' x='80' y='90' width='50' height='50' fill='blue'/>
+ <rect xml:id='rect3' x='150' y='90' width='50' height='50' fill='blue'/>
+ <script xml:id='script1' type='application/ecmascript'>
+ <![CDATA[
+ // Get all of the elements.
+ var ids = 'rect1 rect2 rect3 script1'.split(' ');
+ for (var i in ids)
+ {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Test a simple addEventListener.
+ script1.addEventListener
+ (
+ 'load',
+ function(e) { rect1.setAttributeNS(null, 'fill', 'blue'); },
+ false
+ );
+
+ // Test an addEventListener followed by a removeEventListener.
+ function listener1(e)
+ {
+ rect2.setAttributeNS(null, 'fill', 'red');
+ }
+ script1.addEventListener('load', listener1, false);
+ script1.removeEventListener('load', listener1, false);
+
+ // Test case sensitivity of event type.
+ script1.addEventListener
+ (
+ 'Load',
+ function(e) { rect3.setAttributeNS(null, 'fill', 'red'); },
+ false
+ );
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-202-t.png b/test/svg/svg1.2/svg/udom-event-202-t.png
new file mode 100644
index 0000000..3d4b763
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-202-t.svg b/test/svg/svg1.2/svg/udom-event-202-t.svg
new file mode 100644
index 0000000..f34f0ce
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-202-t.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED,AE" owner="CM" desc="Test the simple attributes of the Event interface" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-event-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>target</tt>, <tt>currentTarget</tt>,
+ <tt>type</tt> and <tt>cancelable</tt>
+ attributes of the <b>Event</b> interface work correctly.
+ </p>
+ <p>
+ The test consists of a single rectangle, which has event listeners
+ registered on it and all of its ancestor nodes. Clicking on the
+ rectangle will test that the attribute of the <b>Event</b> object
+ all have expected values, for each invocation of an event listener.
+ It also tests whether each of the event listeners is indeed invoked.
+ </p>
+ <p>
+ The test has been passed if the rectangle becomes blue when clicking
+ it.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Event interface attributes test</text>
+ <text x='10' y='190' font-size='12'>Click the black rectangle above.</text>
+ <text x='10' y='208' font-size='12'>If it turns blue, the test has been passed.</text>
+ <rect xml:id='rect1' x='10' y='53' width='50' height='50' fill='black'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ rect1 = document.getElementById('rect1');
+ numPasses = 0;
+ count = 0;
+
+ // Add listeners to each ancestor element, to test the attributes
+ // of the Event object.
+ function makeListener(n)
+ {
+ return function(e)
+ {
+ if (e.target == rect1 &&
+ e.currentTarget == n &&
+ e.type == 'click' &&
+ e.cancelable == true) {
+ numPasses++;
+ }
+ }
+ }
+
+ for (var n = rect1; n; n = n.parentNode)
+ {
+ n.addEventListener('click', makeListener(n), false);
+ count++;
+ }
+
+ function docListener(e)
+ {
+ if (e.target == rect1)
+ {
+ rect1.setAttributeNS(null, 'fill', numPasses == count ? 'blue' : 'red');
+ document.removeEventListener('click', docListener, false);
+ }
+ }
+
+ document.addEventListener('click', docListener, false);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-203-t.png b/test/svg/svg1.2/svg/udom-event-203-t.png
new file mode 100644
index 0000000..ed01767
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-203-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-203-t.svg b/test/svg/svg1.2/svg/udom-event-203-t.svg
new file mode 100644
index 0000000..dff635f
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-203-t.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED,AE" owner="CM" desc="Test the stopPropagation method of the Event interface" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-event-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>stopPropagation</tt> method of the
+ <b>Event</b> interface.
+ </p>
+ <p>
+ The test consists of a single rectangle, which has event listeners
+ registered on it and some of its ancestor nodes. Clicking on the
+ rectangle will dispatch the <tt>click</tt> event. The listener on
+ the parent node of the <tt>rect</tt> calls <tt>stopPropagation()</tt>.
+ The test checks that the listener for the grandparent node is not
+ dispatched.
+ </p>
+ <p>
+ The test has been passed if the rectangle becomes blue when clicking
+ it.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Event.stopPropagation test</text>
+ <text x='10' y='240' font-size='12'>Click the rectangle above.</text>
+ <text x='10' y='258' font-size='12'>If it turns blue, the test has been passed.</text>
+ <g xml:id='g1'>
+ <g xml:id='g2'>
+ <rect xml:id='rect1' x='10' y='103' width='50' height='50' fill='black'/>
+ </g>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ // Get all of the elements.
+ var ids = 'g1 g2 rect1'.split(' ');
+ for (var i in ids)
+ {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ g2.addEventListener
+ (
+ 'click',
+ function(e)
+ {
+ e.stopPropagation();
+ rect1.setAttributeNS(null, 'fill', 'blue');
+ },
+ false
+ );
+
+ g1.addEventListener
+ (
+ 'click',
+ function(e)
+ {
+ rect1.setAttributeNS(null, 'fill', 'red');
+ },
+ false
+ );
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-204-t.png b/test/svg/svg1.2/svg/udom-event-204-t.png
new file mode 100644
index 0000000..10aeee5
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-204-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-204-t.svg b/test/svg/svg1.2/svg/udom-event-204-t.svg
new file mode 100644
index 0000000..a875344
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-204-t.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the defaultPrevented attribute and preventDefault method of the Event interface" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-event-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>defaultPrevented</tt> attribute and the
+ <tt>preventDefault</tt> method of the <b>Event</b> interface.
+ </p>
+ <p>
+ The test consists of a single rectangle, which has event listeners
+ registered on it and some of its ancestor nodes. Clicking on the
+ rectangle will dispatch the <tt>click</tt> event. The listener on
+ the grandparent node of the <tt>rect</tt> calls
+ <tt>preventDefault()</tt>. The test checks that the event object has
+ <tt>defaultPrevented</tt> set to <tt>true</tt>.
+ </p>
+ <p>
+ The test has been passed if the rectangle becomes blue when clicking
+ it.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Event interface preventDefault/defaultPrevented test</text>
+ <text x='10' y='140' font-size='12'>Click the rectangle above.</text>
+ <text x='10' y='158' font-size='12'>If it turns blue, the test has been passed.</text>
+ <g xml:id='g1'>
+ <g xml:id='g2'>
+ <a xml:id='a1' xlink:href='../images/fail.svg'>
+ <rect xml:id='rect1' x='10' y='53' width='50' height='50' fill='black'/>
+ </a>
+ </g>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ numPasses = 0;
+
+ // Get all of the elements.
+ var ids = 'g1 g2 a1 rect1'.split(' ');
+ for (var i in ids)
+ {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ function listener1(e)
+ {
+ if (!e.defaultPrevented)
+ {
+ numPasses++;
+ }
+ }
+
+ function listener2(e)
+ {
+ e.preventDefault();
+ if (e.defaultPrevented)
+ {
+ numPasses++;
+ }
+ }
+
+ function listener3(e)
+ {
+ if (e.defaultPrevented)
+ {
+ numPasses++;
+ }
+ }
+
+ function listener4(e)
+ {
+ if (e.target == rect1)
+ {
+ rect1.setAttributeNS(null, 'fill', numPasses == 4 ? 'blue' : 'red');
+ document.removeEventListener('click', listener4, false);
+ }
+ }
+
+ rect1.addEventListener('click', listener1, false);
+ a1.addEventListener('click', listener1, false);
+ g2.addEventListener('click', listener2, false);
+ g1.addEventListener('click', listener3, false);
+ document.addEventListener('click', listener4, false);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-205-t.png b/test/svg/svg1.2/svg/udom-event-205-t.png
new file mode 100644
index 0000000..975bbfa
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-205-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-205-t.svg b/test/svg/svg1.2/svg/udom-event-205-t.svg
new file mode 100644
index 0000000..790869e
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-205-t.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the attributes of the MouseEvent interface" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-event-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>clientX</tt>, <tt>clientY</tt> and <tt>button</tt>
+ attributes of the <b>MouseEvent</b> interface.
+ </p>
+ <p>
+ The test consists of three rectangles, one for each of the three
+ common mouse buttons. To perform the test, the user must move the
+ mouse cursor over a rectangle, press the mouse button down, then
+ move the mouse cursor out of the rectangle. If after this the
+ rectangle becomes blue, then that sub-test has been passed, indicating
+ that the <tt>clientX</tt>, <tt>clientY</tt> and <tt>button</tt>
+ attributes of the <b>MouseEvent</b> object had expected values for
+ the <tt>mouseover</tt>, <tt>mousedown</tt> and <tt>mouseout</tt>
+ events.
+ </p>
+ <p>
+ The test as a whole has been passed if, for each rectangle that
+ corresponds to a button on the pointing device that the user
+ agent supports, it becomes blue after performing the interaction.
+ If the user agent does not support a pointing device at all,
+ then the test is passed automatically without needing to
+ perform any interaction.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>MouseEvent interface test</text>
+ <g font-size='12'>
+ <text x='10' y='70' >For each rectangle below, move the mouse over the</text>
+ <text x='10' y='83'>rectangle, click, then move the mouse out of the rectangle.</text>
+ <text x='10' y='105'>The text underneath the rectangle indicates which mouse</text>
+ <text x='10' y='118'>button to use.</text>
+ <text x='10' y='140'>If each rectangle (for which there exists the corresponding</text>
+ <text x='10' y='153'>button that the user agent supports) turns blue, the test has been passed.</text>
+ </g>
+ <rect xml:id='rect0' x='95' y='190' width='50' height='50' fill='black'/>
+ <rect xml:id='rect1' x='205' y='190' width='50' height='50' fill='black'/>
+ <rect xml:id='rect2' x='315' y='190' width='50' height='50' fill='black'/>
+ <g text-anchor='middle' font-size='12'>
+ <text x='120' y='258'>primary</text>
+ <text x='120' y='270'>(usually left)</text>
+ <text x='230' y='258'>extra</text>
+ <text x='230' y='270'>(usually middle)</text>
+ <text x='340' y='258'>secondary</text>
+ <text x='340' y='270'>(usually right)</text>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ over = [];
+ down = [];
+
+ function checkBounds(r, x, y) {
+ var x1 = Number(r.getAttributeNS(null, 'x'));
+ var y1 = Number(r.getAttributeNS(null, 'y'));
+ var x2 = x1 + Number(r.getAttributeNS(null, 'width'));
+ var y2 = y1 + Number(r.getAttributeNS(null, 'height'));
+ var m = r.getScreenCTM().inverse();
+ x = m.getComponent(0) * x + m.getComponent(2) * y + m.getComponent(4);
+ y = m.getComponent(1) * x + m.getComponent(3) * y + m.getComponent(5);
+ return x >= x1 && x <= x2 && y >= y1 && y <= y2;
+ }
+
+ function makeListener1(r, i)
+ {
+ return function(e)
+ {
+ e.preventDefault();
+ if (checkBounds(r, e.clientX, e.clientY))
+ {
+ if (!(i in over))
+ {
+ over[i] = true;
+ }
+ }
+ else
+ {
+ over[i] = false;
+ }
+ };
+ }
+
+ function makeListener2(r, i)
+ {
+ return function(e)
+ {
+ e.preventDefault();
+ if (e.button == i && checkBounds(r, e.clientX, e.clientY))
+ {
+ if (!(i in down))
+ {
+ down[i] = true;
+ }
+ }
+ else
+ {
+ down[i] = false;
+ }
+ };
+ }
+
+ function makeListener3(r, i)
+ {
+ return function(e)
+ {
+ e.preventDefault();
+ if (over[i] && down[i] && !checkBounds(r, e.clientX, e.clientY))
+ {
+ r.setAttributeNS(null, 'fill', 'blue');
+ }
+ delete over[i];
+ delete down[i];
+ };
+ }
+
+ for (var i = 0; i <= 2; i++)
+ {
+ var r = this['rect' + i] = document.getElementById('rect' + i);
+ r.addEventListener('mouseover', makeListener1(r, i), false);
+ r.addEventListener('mousedown', makeListener2(r, i), false);
+ r.addEventListener('mouseout', makeListener3(r, i), false);
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-207-t.png b/test/svg/svg1.2/svg/udom-event-207-t.png
new file mode 100644
index 0000000..414cb76
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-207-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-207-t.svg b/test/svg/svg1.2/svg/udom-event-207-t.svg
new file mode 100644
index 0000000..c828624
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-207-t.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the TextEvent interface" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: udom-event-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>data</tt> attribute of the <b>TextEvent</b>
+ interface.
+ </p>
+ <p>
+ To perform the test, the user must input some text. This can be
+ from a variety of sources, such characters directly from a keyboard,
+ text pasted from the clipboard, input from an IME or input from a
+ speech recognizer.
+ Once the text has been input, the black rectangle should turn blue to
+ indicate that the test has been passed. In addition, the
+ <tt>text</tt> element below the rectangle will show the text that was
+ input.
+ </p>
+ <p>
+ If the rectangle becomes red, the test failed because the
+ <tt>data</tt> attribute had an invalid value. If the rectangle
+ remains black, the test failed because the <tt>textInput</tt>
+ event is not supported. If the text string does not appear,
+ or does not match the input text, the test failed because the
+ <tt>textInput</tt> event is not supported correctly (e.g. it
+ only tests for any keyboard activity).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>TextEvent interface test</text>
+ <text x='10' y='68' font-size='12'>Input some text. The rectangle below should become blue</text>
+ <text x='10' y='81' font-size='12'>to indicate that the test has been passed.</text>
+ <rect xml:id='rect1' x='10' y='95' width='50' height='50'/>
+ <text x='10' y='172' font-size='12'>
+ Text input: [<tspan xml:id='tspan1' fill='blue'/>]
+ </text>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ document.documentElement.addEventListener
+ (
+ 'textInput',
+ function(e)
+ {
+ if (e.data != null && e.data != '')
+ {
+ document.getElementById('rect1').setAttributeNS(null, 'fill', 'blue');
+ document.getElementById('tspan1').textContent = e.data;
+ }
+ else
+ {
+ document.getElementById('rect1').setAttributeNS(null, 'fill', 'red');
+ }
+ },
+ false
+ );
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-208-t.png b/test/svg/svg1.2/svg/udom-event-208-t.png
new file mode 100644
index 0000000..6805d36
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-208-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-208-t.svg b/test/svg/svg1.2/svg/udom-event-208-t.svg
new file mode 100644
index 0000000..d0e38ff
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-208-t.svg
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test the UIEvent interface and the dispatch order of mouse events" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-event-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>detail</tt> attribute of the <b>UIEvent</b>
+ interface and the dispatch order of mouse events when clicking.
+ </p>
+ <p>
+ To perform the test, the user must triple click on the circle.
+ The nine rectangles to the right of the circle indicate whether the
+ <tt>detail</tt> attribute of the <b>UIEvent</b> object was correct
+ for the <tt>mousedown</tt>, <tt>click</tt> and <tt>mouseup</tt>
+ events. The first row of rectangles checks the three events when
+ <tt>detail = 1</tt>, the second row for <tt>detail = 2</tt> and
+ the third row for <tt>detail = 3</tt>.
+ </p>
+ <p>
+ In addition, the circle should remain black after the nine rectangles
+ have become blue. If the circle becomes red, it indicates that
+ the test failed because the <tt>mousedown</tt>, <tt>click</tt> and
+ <tt>mouseup</tt> events were fired in an incorrect order.
+ </p>
+ <p>
+ The test has been passed if, after triple clicking the circle, all nine
+ rectangles are blue and the circle remains black.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>UIEvent interface and mouse event dispatch order test</text>
+ <text x='10' y='68' font-size='12'>Triple click the circle. The nine rectangles below should turn blue and the</text>
+ <text x='10' y='81' font-size='12'>circle should remain black to indicate that the test has been passed.</text>
+ <circle xml:id='circle1' cx='100' cy='185' r='60'/>
+ <g fill='grey'>
+ <rect xml:id='rect1_mousedown' x='225' y='90' width='50' height='50'/>
+ <rect xml:id='rect1_click' x='295' y='90' width='50' height='50'/>
+ <rect xml:id='rect1_mouseup' x='365' y='90' width='50' height='50'/>
+ <rect xml:id='rect2_mousedown' x='225' y='160' width='50' height='50'/>
+ <rect xml:id='rect2_click' x='295' y='160' width='50' height='50'/>
+ <rect xml:id='rect2_mouseup' x='365' y='160' width='50' height='50'/>
+ <rect xml:id='rect3_mousedown' x='225' y='230' width='50' height='50'/>
+ <rect xml:id='rect3_click' x='295' y='230' width='50' height='50'/>
+ <rect xml:id='rect3_mouseup' x='365' y='230' width='50' height='50'/>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ var order = 'rect1_mousedown rect1_mouseup rect1_click rect2_mousedown rect2_mouseup rect2_click rect3_mousedown rect3_mouseup rect3_click'.split(' ');
+
+ var circle1 = document.getElementById('circle1');
+ for (var i = 1; i <= 3; i++)
+ {
+ function makeListener(i)
+ {
+ return function(e)
+ {
+ if (order.length && e.detail == i)
+ {
+ var id = 'rect' + i + '_' + e.type;
+ if (order.shift() != id)
+ {
+ circle1.setAttributeNS(null, 'fill', 'red');
+ }
+ var elt = document.getElementById(id);
+ if (elt)
+ {
+ elt.setAttributeNS(null, 'fill', 'blue');
+ }
+ }
+ };
+ }
+ var listener = makeListener(i);
+ circle1.addEventListener('mousedown', listener, false);
+ circle1.addEventListener('click', listener, false);
+ circle1.addEventListener('mouseup', listener, false);
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-209-t.png b/test/svg/svg1.2/svg/udom-event-209-t.png
new file mode 100644
index 0000000..3d4b763
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-209-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-209-t.svg b/test/svg/svg1.2/svg/udom-event-209-t.svg
new file mode 100644
index 0000000..52eb14b
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-209-t.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test an EventListener given by an object with a .handleEvent property" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-event-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>target</tt>, <tt>currentTarget</tt>,
+ <tt>type</tt> and <tt>cancelable</tt>
+ attributes of the <b>Event</b> interface work correctly. It
+ is the same as udom-event-202-t except that the event listener
+ is given by an ECMAScript object with a <tt>handleEvent</tt>
+ property, rather than by an ECMAScript Function object.
+ </p>
+ <p>
+ The test consists of a single rectangle, which has event listeners
+ registered on it and all of its ancestor nodes. Clicking on the
+ rectangle will test that the attribute of the <b>Event</b> object
+ all have expected values, for each invocation of an event listener.
+ It also tests whether each of the event listeners is indeed invoked.
+ </p>
+ <p>
+ The test has been passed if the rectangle becomes blue when clicking
+ it.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Event interface attributes test</text>
+ <text x='10' y='190' font-size='12'>Click the black rectangle above.</text>
+ <text x='10' y='208' font-size='12'>If it turns blue, the test has been passed.</text>
+ <rect xml:id='rect1' x='10' y='53' width='50' height='50' fill='black'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ rect1 = document.getElementById('rect1');
+ numPasses = 0;
+ count = 0;
+
+ // Add listeners to each ancestor element, to test the attributes
+ // of the Event object.
+ function makeListener(n) {
+ return {
+ handleEvent: function(e) {
+ if (e.target == rect1 &&
+ e.currentTarget == n &&
+ e.type == 'click' &&
+ e.cancelable == true) {
+ numPasses++;
+ }
+ }
+ }
+ }
+
+ for (var n = rect1; n; n = n.parentNode) {
+ n.addEventListener('click', makeListener(n), false);
+ count++;
+ }
+
+ function docListener(e) {
+ if (e.target == rect1) {
+ rect1.setAttributeNS(null, 'fill', numPasses == count ? 'blue' : 'red');
+ document.removeEventListener('click', docListener, false);
+ }
+ }
+
+ document.addEventListener('click', docListener, false);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-event-210-t.png b/test/svg/svg1.2/svg/udom-event-210-t.png
new file mode 100644
index 0000000..c627a90
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-event-210-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-event-210-t.svg b/test/svg/svg1.2/svg/udom-event-210-t.svg
new file mode 100644
index 0000000..a9bd77a
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-event-210-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="ED" desc="Tests the mousewheel event" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-event-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The test at first should show a green rectangle.
+ </p>
+ <p>
+ Trigger some mousewheel events, for example by using a mouse with a scrollwheel
+ or a jog dial.
+ The test has passed if, when you scroll down, the rectangle rotates clockwise;
+ and when you scroll up, the rectangle rotates counter clockwise.
+ For reference the values of the Mousewheel event are displayed as text.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-event-210-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script>
+ var angle=0;
+ </script>
+
+ <handler xe:event="mousewheel">
+ <![CDATA[
+ document.getElementById("t").textContent = "wheelDelta: " + evt.wheelDelta + " detail: " + evt.detail;
+
+ document.getElementById("r").setAttributeNS(null, "transform", "rotate("+angle+" 50 50)");
+ if(evt.wheelDelta > 0)
+ angle++;
+ else
+ angle--;
+ if(angle<0)
+ angle=360;
+ if(angle>360)
+ angle=0;
+ ]]>
+ </handler>
+
+ <text x="240" y="60" text-anchor="middle">Mouseover the rect and use the scrollwheel</text>
+
+ <g transform="translate(100,100)">
+ <rect xml:id="r" width="100" height="100" fill="green"/>
+ </g>
+ <text xml:id="t" x="250" y="160" font-size="18"></text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/udom-glob-201-t.png b/test/svg/svg1.2/svg/udom-glob-201-t.png
new file mode 100644
index 0000000..02b16ec
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-glob-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-glob-201-t.svg b/test/svg/svg1.2/svg/udom-glob-201-t.svg
new file mode 100644
index 0000000..009090e
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-glob-201-t.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test that the GlobalException interface and its constants exist" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-glob-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <b>GlobalException</b> interface is present
+ and that all of its constant fields exist and are correct.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether all
+ of the constant fields are correct; green for pass, red for fail.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-glob-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>GlobalException interface test</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b)
+ {
+ if (!b)
+ {
+ throw 'assertion failed';
+ }
+ }
+
+ var ks =
+ {
+ NOT_CONNECTED_ERR: 1,
+ ENCODING_ERR: 2,
+ DENIED_ERR: 3,
+ UNKNOWN_ERR: 4
+ };
+
+ try
+ {
+ // Test that each constant exists.
+ for (var k in ks)
+ {
+ assertTrue(GlobalException[k] === ks[k]);
+ }
+
+ // Set the rectangle to be green if the previous tests all passed.
+ document.getElementById('ind').setAttributeNS(null, 'fill', 'green');
+ }
+
+ catch (e)
+ {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-glob-202-t.png b/test/svg/svg1.2/svg/udom-glob-202-t.png
new file mode 100644
index 0000000..1d7e8ba
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-glob-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-glob-202-t.svg b/test/svg/svg1.2/svg/udom-glob-202-t.svg
new file mode 100644
index 0000000..1f8a3d2
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-glob-202-t.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="AE" desc="Test that the method gotoLocation works for a simple case" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-glob-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <b>gotoLocation</b> method is present
+ and works for a simple case.
+ </p>
+ <p>
+ Once loaded, the SVG file will be replaced by the words success. Note that the
+ contents of this file may be displayed for a short interval until the new file is loaded.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-glob-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>gotoLocation test</text>
+ <text x='10' y='120' fill='red' font-size='64'>FAIL</text>
+
+ <script type='application/ecmascript'>
+ gotoLocation( "../images/success.svg" );
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-glob-203-t.png b/test/svg/svg1.2/svg/udom-glob-203-t.png
new file mode 100644
index 0000000..227b950
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-glob-203-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-glob-203-t.svg b/test/svg/svg1.2/svg/udom-glob-203-t.svg
new file mode 100644
index 0000000..058079c
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-glob-203-t.svg
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AE" desc="Testing SVGGlobal postURL's callback status" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-glob-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This SVG will test the SVGGlobal's postURL() callback status. The test
+ is passed if, on each row, both squares have the same color.
+ </p>
+ <p>
+ There are multiple calls to postURL(), each with a different expected
+ HTTP return code.
+ </p>
+ <p>
+ The test works in conjunction with a JSP servlet called HttpCodeTest,
+ which will simulate the various HTTP return codes, based on the query
+ parameter from the client.
+ </p>
+ <p>
+ For each call to postURL(), two squares will appear. The first square
+ represents the "expected" status code. The second square represents the
+ "actual" status code that the callback function receives. The status
+ codes are color-coded.
+ </p>
+ <p>
+ Note that the status codes may take some time to update, due to the
+ asynchronous nature of the postURL() callback. Tester should allow some
+ time for all postURL() calls to receive ther return codes. The latency
+ will vary depending on the network environment, but normally, it should
+ only be a couple minutes at most.
+ </p>
+ <p>
+ 100-ranges status codes are not tested here because the spec states that
+ these status codes should be ignored. It is not clear what the expected
+ callback status should be in this case.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-glob-203-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="title" transform="translate(20,50)">
+ <text xml:id="expected" x="0" y="0" fill="black">Testing SVGGlobal postURL's callback status </text>
+ </g>
+ <g xml:id="rowgroup" transform="translate(270,80)">
+ <text xml:id="expected" text-anchor="middle" x="40" y="0" font-size="10" fill="black">expected</text>
+ <text xml:id="actual" text-anchor="middle" x="90" y="0" font-size="10" fill="black">actual</text>
+ </g>
+ <script xml:id='script1' type='application/ecmascript'>
+ <![CDATA[
+ // This can be changed if the test is run locally.
+ var servlet_url = "http://www.w3.org/2008/04/http";
+ var j = 0;
+
+ var ids = 'rowgroup script1'.split(' ');
+ for (var i in ids)
+ {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Valid values for expected_status: true, false, none
+ function rowdef(label, data, expected_status)
+ {
+ this.label = label;
+ this.data = data;
+ this.expected_status = expected_status;
+ }
+
+ var rows =
+ [
+/* The spec says that 100-ranges status codes should be ignored.
+ new rowdef( "rc 100" , "rc=100" , "true" )
+ , new rowdef( "rc 300, redirected to rc 100" , "rc=300&redirect=100" , "true" )
+*/
+ new rowdef( "rc 200" , "rc=200" , "true" )
+ , new rowdef( "rc 400" , "rc=400" , "false" )
+ , new rowdef( "rc 500" , "rc=500" , "false" )
+ , new rowdef( "rc 300, redirected to rc 200" , "rc=300&redirect=200" , "true" )
+ , new rowdef( "rc 300, redirected to rc 400" , "rc=300&redirect=400" , "false" )
+ , new rowdef( "rc 300, redirected to rc 500" , "rc=300&redirect=500" , "false" )
+ ];
+
+ j = rows.length;
+
+ function constructRow(i)
+ {
+ var svgNS = "http://www.w3.org/2000/svg";
+ var rowstart = 25;
+ var rowheight = 20;
+
+ // Create row
+ var row = document.createElementNS(svgNS, "g");
+ row.setAttribute("transform", "translate(0," + (rowstart + (rowheight*i)) + ")");
+
+ // Create row label
+ var rowlabel = document.createElementNS(svgNS, "text");
+ rowlabel.setAttribute( "id" , "rowlabel" + i );
+ rowlabel.setAttribute( "text-anchor" , "end" );
+ rowlabel.setAttribute( "fill" , "black" );
+ rowlabel.textContent = rows[i].label;
+ row.appendChild(rowlabel);
+
+ // Create expected box
+ var expected = document.createElementNS(svgNS, "rect");
+ expected.setAttribute( "id" , "expected" + i );
+ expected.setAttribute( "x" , "30" );
+ expected.setAttribute( "y" , "-15" );
+ expected.setAttribute( "width" , "18" );
+ expected.setAttribute( "height" , "18" );
+
+ if(rows[i].expected_status == "none")
+ {
+ expected.setAttribute( "fill", "red" );
+ }
+ else if(rows[i].expected_status == "true")
+ {
+ expected.setAttribute( "fill", "green" );
+ }
+ else if(rows[i].expected_status == "false")
+ {
+ expected.setAttribute( "fill", "lime" );
+ }
+ else
+ {
+ // This should not happen.
+ expected.setAttribute( "fill", "yellow" );
+ }
+ row.appendChild(expected);
+
+ // Create actual box
+ var actual = document.createElementNS(svgNS, "rect");
+ actual.setAttribute( "id" , "actual" + i );
+ actual.setAttribute( "x" , "80" );
+ actual.setAttribute( "y" , "-15" );
+ actual.setAttribute( "width" , "18" );
+ actual.setAttribute( "height" , "18" );
+ actual.setAttribute( "fill" , "gray" );
+ row.appendChild(actual);
+
+ // Append row
+ rowgroup.appendChild(row);
+ }
+
+ function updateStatus(id,status)
+ {
+ var res = document.getElementById(id);
+ if(status.success)
+ {
+ res.setAttribute("fill", "green");
+ }
+ else
+ {
+ res.setAttribute("fill", "lime");
+ }
+
+ --j;
+
+ if (j == 0)
+ {
+ //test is complete
+ var finished_elmt = document.getElementById("test_status");
+ finished_elmt.textContent = "Callbacks now finished";
+ finished_elmt.setAttribute("fill", "green");
+ }
+ }
+
+ function callback(i)
+ {
+ this.fn = function(status) { updateStatus("actual" + i, status); };
+ }
+
+ var callbacks = new Array(rows.length);
+
+ function onLoad(evt)
+ {
+ var type = "application/x-www-form-urlencoded";
+ var encoding = "utf-8";
+ for(var i = 0; i < rows.length; i++)
+ {
+ constructRow(i);
+ callbacks[i] = new callback(i);
+ postURL(servlet_url, rows[i].data, callbacks[i].fn, type, encoding);
+ }
+ }
+
+ script1.addEventListener("load", onLoad, false);
+ ]]>
+ </script>
+
+ <g xml:id="status-legend" transform="translate(20,300)">
+ <g transform="translate(0,0)">
+ <rect xml:id="nonerect" x="0" y="-15" width="18" height="18" fill="red"/>
+ <text xml:id="nonetxt" text-anchor="start" x="30" y="0" fill="black">no status</text>
+ </g>
+ <g transform="translate(150,0)">
+ <rect xml:id="falserect" x="0" y="-15" width="18" height="18" fill="lime"/>
+ <text xml:id="falsetxt" text-anchor="start" x="30" y="0" fill="black">status=false</text>
+ </g>
+ <g transform="translate(320,0)">
+ <rect xml:id="truerect" x="0" y="-15" width="18" height="18" fill="green"/>
+ <text xml:id="truetxt" text-anchor="start" x="30" y="0" fill="black">status=true</text>
+ </g>
+ </g>
+
+ <text x="100" y="250" xml:id="test_status" fill="red">Callbacks not yet finished</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-glob-204-t.png b/test/svg/svg1.2/svg/udom-glob-204-t.png
new file mode 100644
index 0000000..e14cc46
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-glob-204-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-glob-204-t.svg b/test/svg/svg1.2/svg/udom-glob-204-t.svg
new file mode 100644
index 0000000..bf71ac6
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-glob-204-t.svg
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="AE" desc="Testing SVGGlobal getURL's callback status" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-glob-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This SVG will test the SVGGlobal's getURL() callback status. The test is
+ passed if, on each row, both squares have the same color.
+ </p>
+ <p>
+ There are multiple calls to getURL(), each with a different expected
+ HTTP return code.
+ </p>
+ <p>
+ The test works in conjunction with a JSP servlet called HttpCodeTest,
+ which will simulate the various HTTP return codes, based on the query
+ parameter from the client.
+ </p>
+ <p>
+ For each call to getURL(), two squares will appear. The first square
+ represents the "expected" status code. The second square represents the
+ "actual" status code that the callback function receives. The status
+ codes are color-coded.
+ </p>
+ <p>
+ Note that the status codes may take some time to update, due to the
+ asynchronous nature of the getURL() callback. Tester should allow some
+ time for all getURL() calls to receive ther return codes. The latency
+ will vary depending on the network environment, but normally, it should
+ only be a couple minutes at most. Once all calls have returned, the text
+ "Callbacks now finished" will show, in green.
+ </p>
+ <p>
+ 100-ranges status codes are not tested here because the spec states that
+ these status codes should be ignored. It is not clear what the expected
+ callback status should be in this case.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-glob-204-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:id="title" transform="translate(20,50)">
+ <text xml:id="expected" x="0" y="0" fill="black">Testing SVGGlobal getURL's callback status </text>
+ </g>
+ <g xml:id="rowgroup" transform="translate(270,80)">
+ <text xml:id="expected" text-anchor="middle" x="40" y="0" font-size="10" fill="black">expected</text>
+ <text xml:id="actual" text-anchor="middle" x="90" y="0" font-size="10" fill="black">actual</text>
+ </g>
+ <script xml:id='script1' type='application/ecmascript'>
+ <![CDATA[
+ // This can be changed if the test is run locally.
+ var servlet_url = "http://www.w3.org/2008/04/http";
+ var j = 0;
+
+ var ids = 'rowgroup script1'.split(' ');
+ for (var i in ids)
+ {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Valid values for expected_status: true, false, none
+ function rowdef(label, url, expected_status)
+ {
+ this.label = label;
+ this.url = url;
+ this.expected_status = expected_status;
+ }
+
+ var rows =
+ [
+/* The spec says that 100-range status codes should be ignored.
+ new rowdef( "rc 100" , servlet_url + "?rc=100" , "false" )
+ , new rowdef( "rc 300, redirected to rc 100" , servlet_url + "?rc=300&redirect=100" , "false" )
+*/
+ new rowdef( "rc 200" , servlet_url + "?rc=200" , "true" )
+ , new rowdef( "rc 400" , servlet_url + "?rc=400" , "false" )
+ , new rowdef( "rc 500" , servlet_url + "?rc=500" , "false" )
+ , new rowdef( "rc 300, redirected to rc 200" , servlet_url + "?rc=300&redirect=200" , "true" )
+ , new rowdef( "rc 300, redirected to rc 400" , servlet_url + "?rc=300&redirect=400" , "false" )
+ , new rowdef( "rc 300, redirected to rc 500" , servlet_url + "?rc=300&redirect=500" , "false" )
+ ];
+
+ j = rows.length;
+
+ function constructRow(i)
+ {
+ var svgNS = "http://www.w3.org/2000/svg";
+ var rowstart = 25;
+ var rowheight = 20;
+
+ // Create row
+ var row = document.createElementNS(svgNS, "g");
+ row.setAttribute("transform", "translate(0," + (rowstart + (rowheight*i)) + ")");
+
+ // Create row label
+ var rowlabel = document.createElementNS(svgNS, "text");
+ rowlabel.setAttribute( "id" , "rowlabel" + i );
+ rowlabel.setAttribute( "text-anchor" , "end" );
+ rowlabel.setAttribute( "fill" , "black" );
+ rowlabel.textContent = rows[i].label;
+ row.appendChild(rowlabel);
+
+ // Create expected box
+ var expected = document.createElementNS(svgNS, "rect");
+ expected.setAttribute( "id" , "expected" + i );
+ expected.setAttribute( "x" , "30" );
+ expected.setAttribute( "y" , "-15" );
+ expected.setAttribute( "width" , "18" );
+ expected.setAttribute( "height" , "18" );
+
+ if(rows[i].expected_status == "none")
+ {
+ expected.setAttribute( "fill", "red" );
+ }
+ else if(rows[i].expected_status == "true")
+ {
+ expected.setAttribute( "fill", "green" );
+ }
+ else if(rows[i].expected_status == "false")
+ {
+ expected.setAttribute( "fill", "lime" );
+ }
+ else
+ {
+ // This should not happen.
+ expected.setAttribute( "fill", "yellow" );
+ }
+ row.appendChild(expected);
+
+ // Create actual box
+ var actual = document.createElementNS(svgNS, "rect");
+ actual.setAttribute( "id" , "actual" + i );
+ actual.setAttribute( "x" , "80" );
+ actual.setAttribute( "y" , "-15" );
+ actual.setAttribute( "width" , "18" );
+ actual.setAttribute( "height" , "18" );
+ actual.setAttribute( "fill" , "gray" );
+ row.appendChild(actual);
+
+ // Append row
+ rowgroup.appendChild(row);
+ }
+
+ function updateStatus(id,status)
+ {
+ var res = document.getElementById(id);
+ if(status.success)
+ {
+ res.setAttribute("fill", "green");
+ }
+ else
+ {
+ res.setAttribute("fill", "lime");
+ }
+
+ --j;
+
+ if (j == 0)
+ {
+ //test is complete
+ var finished_elmt = document.getElementById("test_status");
+ finished_elmt.textContent = "Callbacks now finished";
+ finished_elmt.setAttribute("fill", "green");
+ }
+ }
+
+ function callback(i)
+ {
+ this.fn = function(status) { updateStatus("actual" + i, status); };
+ }
+
+ var callbacks = new Array(rows.length);
+
+ {
+ for(var i = 0; i < rows.length; i++)
+ {
+ constructRow(i);
+ callbacks[i] = new callback(i);
+ getURL(rows[i].url, callbacks[i].fn);
+ }
+ }
+
+ ]]></script>
+
+ <g xml:id="status-legend" transform="translate(20,300)">
+ <g transform="translate(0,0)">
+ <rect xml:id="nonerect" x="0" y="-15" width="18" height="18" fill="red"/>
+ <text xml:id="nonetxt" text-anchor="start" x="30" y="0" fill="black">no status</text>
+ </g>
+ <g transform="translate(150,0)">
+ <rect xml:id="falserect" x="0" y="-15" width="18" height="18" fill="lime"/>
+ <text xml:id="falsetxt" text-anchor="start" x="30" y="0" fill="black">status=false</text>
+ </g>
+ <g transform="translate(320,0)">
+ <rect xml:id="truerect" x="0" y="-15" width="18" height="18" fill="green"/>
+ <text xml:id="truetxt" text-anchor="start" x="30" y="0" fill="black">status=true</text>
+ </g>
+ </g>
+
+ <text x="100" y="250" xml:id="test_status" fill="red">Callbacks not yet finished</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-node-201-t.png b/test/svg/svg1.2/svg/udom-node-201-t.png
new file mode 100644
index 0000000..84d0b5b
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-node-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-node-201-t.svg b/test/svg/svg1.2/svg/udom-node-201-t.svg
new file mode 100644
index 0000000..87daabd
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-node-201-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="ASl" desc="CloneNode with use elements" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-node-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test with cloneNode on a use element. The red rect is cloned directly on the rect element.
+ The yellow rect is cloned on the use element. Two red and two yellow rects must be showing.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-node-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <rect xml:id="rect2" focusable="true" focusHighlight="auto"
+ width="100" height="100" fill="yellow" stroke="blue" stroke-width="5" />
+ </defs>
+
+ <rect xml:id="rect" focusable="true" focusHighlight="auto"
+ x="30" y="60" width="100" height="100" fill="red" stroke="blue" stroke-width="5">
+ </rect>
+
+ <use xml:id="useRect" x="250" y="60" xlink:href="#rect2" />
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ var svg = document.documentElement;
+ var rect = document.getElementById("rect");
+ var rect2 = document.getElementById("useRect");
+ var rectClone1 = rect.cloneNode(false);
+ var rectClone2 = rect2.cloneNode(false);
+ rectClone1.setFloatTrait("y", 180);
+ rectClone2.setFloatTrait("y", 180);
+ svg.appendChild(rectClone1);
+ svg.appendChild(rectClone2);
+ ]]>
+ </script>
+
+ <text x="10" y="20" font-size="15">Test with cloneNode on a use element. </text>
+ <text x="10" y="35" font-size="15">Two red and two yellow rects must be visible! </text>
+ <text x="140" y="110" font-size="15">Rect</text>
+ <text x="360" y="110" font-size="15">Used rect</text>
+ <text x="140" y="230" font-size="15">Clone</text>
+ <text x="360" y="230" font-size="15">Clone</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+
diff --git a/test/svg/svg1.2/svg/udom-node-202-t.png b/test/svg/svg1.2/svg/udom-node-202-t.png
new file mode 100644
index 0000000..e4921ea
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-node-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-node-202-t.svg b/test/svg/svg1.2/svg/udom-node-202-t.svg
new file mode 100644
index 0000000..0b951cd
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-node-202-t.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="ASl" desc="Test cloneNode and 'deep' parameter" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-node-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Testing CloneNode with different values of the "deep" parameter.
+ In this test an image with animations inside is cloned twice, one which should keep the animations and the second that should only clone image node.
+ The first and second image should animate from opacity 0 and width 20 to opacity 1 and width 100. The third image should not animate.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-node-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18" transform="scale(2.4, 1.8)">
+ <image xml:id="image" focusable="true" focusHighlight="auto"
+ x="10" y="-15" width="20" height="113" xlink:href="../images/struct-image-01.png">
+ <animate attributeName="opacity"
+ begin="0s" dur="4s"
+ from="0" to="1"/>
+ <animate attributeName="width"
+ begin="0s" dur="4s"
+ from="20" to="100"/>
+ </image>
+ <text x="10" y="60" font-weight="bold" font-size="10" fill="green">
+ Non cloned image
+ </text>
+
+ <text x="10" y="120" font-weight="bold" font-size="10" fill="lime">
+ Cloned image with Children
+ </text>
+
+ <text x="10" y="180" font-weight="bold" font-size="10" fill="lime">
+ Cloned image Only
+ </text>
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ var testGroup = document.getElementById("test-body-content");
+ var image = document.getElementById("image");
+ var imageClone = image.cloneNode(true);
+ imageClone.id = "imageClone";
+ imageClone.setFloatTrait("y", 70);
+ testGroup.appendChild(imageClone);
+
+ var imageCloneOnly = image.cloneNode(false);
+ imageCloneOnly.id = "imageCloneOnly";
+ imageCloneOnly.setFloatTrait("y", 120);
+ imageCloneOnly.setFloatTrait("opacity", 0.5);
+ testGroup.appendChild(imageCloneOnly);
+ ]]>
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-node-204-t.png b/test/svg/svg1.2/svg/udom-node-204-t.png
new file mode 100644
index 0000000..d71ae48
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-node-204-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-node-204-t.svg b/test/svg/svg1.2/svg/udom-node-204-t.svg
new file mode 100644
index 0000000..39c642d
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-node-204-t.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Tests uDOM Node accessor parentNode" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-node-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test basic uDOM support with node (parentNode) and trait access.
+ The svg shold look the same on both sides and the text
+ should read "OK".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-node-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect xml:id="referenceframe" x="10" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="testframe" x="249" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="textframe" x="340" y="315" width="120" height="40" stroke="#000000" fill="none"/>
+
+ <text xml:id="title" x="10" y="25" font-size="20">parentNode on Node</text>
+ <text xml:id="referencetext" x="75" y="50" font-size="20">reference</text>
+ <text xml:id="scripttext" x="325" y="50" font-size="20">scripted</text>
+ <g fill="black">
+ <text xml:id="status" x="350" y="350" font-size="40" fill="red">Error!</text>
+ </g>
+
+ <g fill="#0F0">
+ <circle xml:id="c1" cx="40" cy="100" r="20" fill="#FA5"/>
+ <circle xml:id="c2" cx="279" cy="100" r="20" fill="inherit"/>
+ </g>
+ <script type="text/ecmascript">
+ <![CDATA[
+
+ var c1 = document.getElementById("c1");
+ var c2 = document.getElementById("c2");
+
+ var fill = c1.getRGBColorTrait("fill");
+
+ var parNode = c1.parentNode;
+ parNode.setRGBColorTrait("fill", fill);
+
+ var text = document.getElementById("status");
+ if (parNode == c2.parentNode)
+ {
+ text.setTrait("#text", "OK!");
+ text.setTrait("fill", "inherit");
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-over-01-t.png b/test/svg/svg1.2/svg/udom-over-01-t.png
new file mode 100644
index 0000000..efba2e8
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-over-01-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-over-01-t.svg b/test/svg/svg1.2/svg/udom-over-01-t.svg
new file mode 100644
index 0000000..e80939a
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-over-01-t.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Checks if SVG DOM ECMA Script binding is supported" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-over-01-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Verify the basic capability to handle the SVG DOM API.
+ The test is composed of a top level svg element with an 'onload' event handler and a rect element.
+ Both the svg and the rect elements have an identifier. The 'onload' handler invokes SVG-specific DOM API methods which use these identifiers.
+ </p>
+ <p>
+ First, the handler gets the SVG root element and checks it has the expected identifier.
+ Then, the handler accesses the coordinates of the rect element and uses them to build a 'shadow' rectangle under the existing one.
+ Finally, the 'shadow' rectangle is created using the createElementNS method.
+ </p>
+ <p>
+ If an implementation supports the ECMAScript DOM binding for SVG, then the image must show the following text:
+ "This document's root identifier is: svg-root" and a red rectangle with a black shadow rectangle. Otherwise, only a red rectangle will show.
+ </p>
+ <p>The rendered picture should match the reference image.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-over-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii" />
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <handler xe:observer="svg-root" xe:event="SVGLoad">
+ domTest(evt);
+ </handler>
+ <script type="text/ecmascript">
+ <![CDATA[
+ function domTest(evt) {
+ var svg_ns = "http://www.w3.org/2000/svg";
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+ var rect = doc.getElementById("rectId");
+ var rootSVG = document.documentElement;
+ var rootId = rootSVG.getAttributeNS("http://www.w3.org/XML/1998/namespace", "id");
+ // Insert a new text element to the DOM tree using the id
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('x', '50');
+ newText.setAttribute('y', '100');
+ var message = "This document's root identifier is: " + rootId
+ newText.textContent = message;
+ rect.parentNode.appendChild(newText);
+ //
+ // Now, check that our rectangle is an instance of SVGRect by accessing
+ // specific methods in order to get its x, y, width and height attributes.
+ //
+ var x = rect.getFloatTrait("x");
+ var y = rect.getFloatTrait("y");
+ var width = rect.getFloatTrait("width");
+ var height = rect.getFloatTrait("height");
+ //
+ // Now, build a new svg rect element.
+ //
+ var newRect = doc.createElementNS(svg_ns, 'rect');
+ //
+ // Set the x, y, width and height of this element
+ //
+ newRect.setFloatTrait("x", x + 10);
+ newRect.setFloatTrait("y", y + 10);
+ newRect.setAttribute("width", width);
+ newRect.setAttribute("height", height);
+ //
+ // Insert new element in DOM tree
+ //
+ rect.parentNode.insertBefore(newRect, rect);
+ }
+ ]]>
+ </script>
+ <rect xml:id="rectId" x="40" y="150" width="50" height="50" fill="red" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000" />
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1" />
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-smil-201-t.png b/test/svg/svg1.2/svg/udom-smil-201-t.png
new file mode 100644
index 0000000..d0cf657
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-smil-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-smil-201-t.svg b/test/svg/svg1.2/svg/udom-smil-201-t.svg
new file mode 100644
index 0000000..cf3dd42
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-smil-201-t.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test ElementTimeControl's beginElement and beginElementAt methods" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-smil-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>beginElement</tt> and <tt>beginElementAt</tt>
+ methods of the <b>ElementTimeControl</b> interface.
+ </p>
+ <p>
+ The test consists of four animated rectangles, one pink, three blue.
+ To perform the test, the user must click the pink rectangle.
+ The pink rectangle is set to animate with <tt>begin='mousedown'</tt>,
+ while the three blue rectangles have <tt>begin='indefinite'</tt>,
+ and are begun with calls to methods on the <b>ElementTimeControl</b>
+ interface:
+ </p>
+ <ul>
+ <li>
+ The first blue rectangle is begun with <tt>.beginElement()</tt>.
+ </li>
+ <li>
+ The second blue rectangle is begun with <tt>.beginElementAt(0)</tt>.
+ </li>
+ <li>
+ The third blue rectangle is begun with <tt>.beginElementAt(2.5)</tt>.
+ </li>
+ </ul>
+ <p>
+ The test has been passed if the three blue rectangles reach their
+ destination at the same time as the pink rectangle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-smil-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>ElementTimeControl.beginElement(At) test 1</text>
+ <text x='10' y='68' font-size='12'>Click the pink rectangle.</text>
+ <g stroke-width='4'>
+ <g stroke='#aaa'>
+ <line x1='150' y1='115' x2='320' y2='115'/>
+ <line x1='150' y1='165' x2='320' y2='165'/>
+ <line x1='150' y1='215' x2='320' y2='215'/>
+ <line x1='250' y1='265' x2='320' y2='265'/>
+ </g>
+ <g fill='#ccc' stroke='#666'>
+ <rect x='120' y='100' width='30' height='30'/>
+ <rect x='320' y='100' width='30' height='30'/>
+ <rect x='120' y='150' width='30' height='30'/>
+ <rect x='320' y='150' width='30' height='30'/>
+ <rect x='120' y='200' width='30' height='30'/>
+ <rect x='320' y='200' width='30' height='30'/>
+ <rect x='220' y='250' width='30' height='30'/>
+ <rect x='320' y='250' width='30' height='30'/>
+ </g>
+ <g stroke='black'>
+ <rect xml:id='rect1' x='120' y='100' width='30' height='30' fill='rgb(204,0,102)'>
+ <animate xml:id='animate1' attributeName='x' from='120' to='320' begin='mousedown' dur='5s' restart='never' fill='freeze'/>
+ </rect>
+ <g fill='rgb(0,102,204)'>
+ <rect x='120' y='150' width='30' height='30'>
+ <animate xml:id='animate2' attributeName='x' from='120' to='320' begin='indefinite' dur='5s' restart='never' fill='freeze'/>
+ </rect>
+ <rect x='120' y='200' width='30' height='30'>
+ <animate xml:id='animate3' attributeName='x' from='120' to='320' begin='indefinite' dur='5s' restart='never' fill='freeze'/>
+ </rect>
+ <rect x='220' y='250' width='30' height='30'>
+ <animate xml:id='animate4' attributeName='x' from='220' to='320' begin='indefinite' dur='2.5s' restart='never' fill='freeze'/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function listener(e) {
+ document.getElementById('animate2').beginElement();
+ document.getElementById('animate3').beginElementAt(0);
+ document.getElementById('animate4').beginElementAt(2.5);
+ e.target.removeEventListener('mousedown', listener, false);
+ }
+ document.getElementById('rect1').addEventListener
+ ('mousedown', listener, false);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-smil-202-t.png b/test/svg/svg1.2/svg/udom-smil-202-t.png
new file mode 100644
index 0000000..1eab626
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-smil-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-smil-202-t.svg b/test/svg/svg1.2/svg/udom-smil-202-t.svg
new file mode 100644
index 0000000..5bc753d
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-smil-202-t.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test ElementTimeControl's beginElement and beginElementAt methods with different begin instance time lists" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-smil-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>beginElement</tt> and <tt>beginElementAt</tt>
+ methods of the <b>ElementTimeControl</b> interface, with different
+ begin instance time lists.
+ </p>
+ <p>
+ The test has been passed if all the three rectangles and the circle
+ become blue one second after clicking the circle.
+ </p>
+ <p>
+ The test consists of a pink circle and three animated rectangles.
+ To perform the test, the user must click the pink circle.
+ The three rectangles all have animations that <tt>begin='0s'</tt>
+ and run indefinitely, and are also set to <tt>restart='none'</tt>.
+ Clicking the circle will attempt to begin the three animations as follows:
+ </p>
+ <ul>
+ <li>
+ The first rectangle's animation has <tt>.beginElement()</tt> called.
+ </li>
+ <li>
+ The second rectangle's animation has <tt>.beginElementAt(0)</tt> called.
+ </li>
+ <li>
+ The third rectangle's animation has <tt>.beginElementAt(0.5)</tt> called.
+ </li>
+ </ul>
+ <p>
+ All three animations should not begin with these method calls, since
+ the animations have already started and are set to <tt>restart='none'</tt>.
+ If an animation does restart, its <tt>endEvent</tt> will be captured
+ and the rectangle will become red. If the animation does not restart,
+ it will become blue one second after clicking the pink circle.
+ </p>
+ <p>
+ In addition, the circle should become blue one second after clicking
+ it. This indicates that the implementation correctly dispatches an
+ <tt>endEvent</tt> when an element restarts.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-smil-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>ElementTimeControl.beginElement(At) test 2</text>
+ <text x='10' y='68' font-size='12'>Click the pink circle. The test has passed if the rectangles</text>
+ <text x='10' y='81' font-size='12'>and the circle become blue one second after clicking the circle.</text>
+ <g stroke-width='4'>
+ <g stroke='black'>
+ <circle xml:id='circle1' cx='230' cy='140' r='20' fill='rgb(204,0,102)'>
+ <set xml:id='set1' attributeName='display' to='inline' begin='0s; mousedown+1s'/>
+ <set attributeName='fill' to='rgb(0,102,204)' begin='set1.endEvent'/>
+ </circle>
+ <g>
+ <set attributeName='fill' to='rgb(0,102,204)' begin='circle1.mousedown+1s' restart='never'/>
+ <rect xml:id='rect1' x='115' y='200' width='30' height='30'>
+ <animate xml:id='animate1' attributeName='display' values='inline' begin='0s' restart='never'/>
+ </rect>
+ <rect xml:id='rect2' x='215' y='200' width='30' height='30'>
+ <animate xml:id='animate2' attributeName='display' values='inline' begin='0s' restart='never'/>
+ </rect>
+ <rect xml:id='rect3' x='315' y='200' width='30' height='30'>
+ <animate xml:id='animate3' attributeName='display' values='inline' begin='0s' restart='never'/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ // Get all of the elements.
+ var ids = 'animate1 animate2 animate3 circle1'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Listener for clicking on the circle.
+ function listener(e) {
+ document.getElementById('animate1').beginElement();
+ document.getElementById('animate2').beginElementAt(0);
+ document.getElementById('animate3').beginElementAt(0.5);
+ e.target.removeEventListener('mousedown', listener, false);
+ }
+ document.getElementById('circle1').addEventListener
+ ('mousedown', listener, false);
+
+ // Listeners on the animations, to make sure that an 'end' event is not
+ // dispatched.
+ function makeListener(i) {
+ return function(e) {
+ document.getElementById('rect' + i).setAttributeNS(null, 'fill', 'red');
+ };
+ }
+ for (var i = 1; i <= 3; i++) {
+ document.getElementById('animate' + i).addEventListener
+ ('endEvent', makeListener(i), false);
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-smil-203-t.png b/test/svg/svg1.2/svg/udom-smil-203-t.png
new file mode 100644
index 0000000..92985b0
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-smil-203-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-smil-203-t.svg b/test/svg/svg1.2/svg/udom-smil-203-t.svg
new file mode 100644
index 0000000..abf81b7
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-smil-203-t.svg
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test ElementTimeControl's endElement and endElementAt methods" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-smil-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the <tt>endElement</tt> and <tt>endElementAt</tt>
+ methods of the <b>ElementTimeControl</b> interface.
+ </p>
+ <p>
+ The test consists of four animated rectangles, one pink, three blue.
+ To perform the test, the user must click the pink rectangle.
+ The pink rectangle is set to animate with <tt>begin='mousedown'</tt>.
+ The three blue rectangles have two animations each: the first is
+ an <tt>animation</tt> element that moves the rectangle along its
+ corresponding line, with <tt>begin='0s' dur='5s'</tt>. After the
+ <tt>animation</tt> element is a <tt>set</tt> element with
+ <tt>end='indefinite'</tt>. Each <tt>set</tt> animation is ended with
+ calls to methods on the <b>ElementTimeControl</b> interface:
+ </p>
+ <ul>
+ <li>
+ The first blue rectangle is ended with <tt>.endElement()</tt>.
+ </li>
+ <li>
+ The second blue rectangle is ended with <tt>.endElementAt(0)</tt>.
+ </li>
+ <li>
+ The third blue rectangle is end with <tt>.endElementAt(2.5)</tt>.
+ </li>
+ </ul>
+ <p>
+ The test has been passed if the first two blue rectangles follow the
+ animation of the pink rectangle, and the third blue rectangle follows
+ the animation of the pink rectangle after 2.5 seconds (i.e., half way
+ through the pink rectangle's animation).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-smil-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>ElementTimeControl.endElement(At) test</text>
+ <text x='10' y='68' font-size='12'>Click the pink rectangle.</text>
+ <g stroke-width='4'>
+ <g stroke='#aaa'>
+ <line x1='150' y1='115' x2='320' y2='115'/>
+ <line x1='150' y1='165' x2='320' y2='165'/>
+ <line x1='150' y1='215' x2='320' y2='215'/>
+ <line x1='250' y1='265' x2='320' y2='265'/>
+ </g>
+ <g fill='#ccc' stroke='#666'>
+ <rect x='120' y='100' width='30' height='30'/>
+ <rect x='320' y='100' width='30' height='30'/>
+ <rect x='120' y='150' width='30' height='30'/>
+ <rect x='320' y='150' width='30' height='30'/>
+ <rect x='120' y='200' width='30' height='30'/>
+ <rect x='320' y='200' width='30' height='30'/>
+ <rect x='220' y='250' width='30' height='30'/>
+ <rect x='320' y='250' width='30' height='30'/>
+ </g>
+ <g stroke='black'>
+ <rect xml:id='rect1' x='120' y='100' width='30' height='30' fill='rgb(204,0,102)'>
+ <animate xml:id='animate1' attributeName='x' from='120' to='320' begin='mousedown' dur='5s' restart='never' fill='freeze'/>
+ </rect>
+ <g fill='rgb(0,102,204)'>
+ <rect x='120' y='150' width='30' height='30'>
+ <animate attributeName='x' from='120' to='320' begin='animate1.begin' dur='5s' restart='never' fill='freeze'/>
+ <set xml:id='set1' attributeName='x' to='120' begin='0s'/>
+ </rect>
+ <rect x='120' y='200' width='30' height='30'>
+ <animate attributeName='x' from='120' to='320' begin='animate1.begin' dur='5s' restart='never' fill='freeze'/>
+ <set xml:id='set2' attributeName='x' to='120' begin='0s' end='indefinite'/>
+ </rect>
+ <rect x='220' y='250' width='30' height='30'>
+ <animate attributeName='x' from='120' to='320' begin='animate1.begin' dur='5s' restart='never' fill='freeze'/>
+ <set xml:id='set3' attributeName='x' to='220' begin='animate1.begin' end='indefinite'/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function listener(e) {
+ document.getElementById('set1').endElement();
+ document.getElementById('set2').endElementAt(0);
+ document.getElementById('set3').endElementAt(2.5);
+ e.target.removeEventListener('mousedown', listener, false);
+ }
+ document.getElementById('rect1').addEventListener
+ ('mousedown', listener, false);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-201-t.png b/test/svg/svg1.2/svg/udom-svg-201-t.png
new file mode 100644
index 0000000..506bc11
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-201-t.svg b/test/svg/svg1.2/svg/udom-svg-201-t.svg
new file mode 100644
index 0000000..5db52f8
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-201-t.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test that the SVGException interface and its constants exist" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-svg-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <b>SVGException</b> interface is present
+ and that all of its constant fields exist and are correct.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether all
+ of the constant fields are correct; green for pass, red for fail.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>SVGException interface test</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b) {
+ if (!b) {
+ throw 'assertion failed';
+ }
+ }
+
+ var ks = {
+ SVG_WRONG_TYPE_ERR: 0,
+ SVG_INVALID_VALUE_ERR: 1,
+ SVG_MATRIX_NOT_INVERTABLE: 2
+ };
+
+ try {
+ // Test that each constant exists.
+ for (var k in ks) {
+ assertTrue(SVGException[k] === ks[k]);
+ }
+
+ // Set the rectangle to be green if the previous tests all passed.
+ document.getElementById('ind').setAttributeNS(null, 'fill', 'green');
+ } catch (e) {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-204-t.png b/test/svg/svg1.2/svg/udom-svg-204-t.png
new file mode 100644
index 0000000..1cf7ad5
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-204-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-204-t.svg b/test/svg/svg1.2/svg/udom-svg-204-t.svg
new file mode 100644
index 0000000..6c44768
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-204-t.svg
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the SVGElementInstance interface" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svg-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>correspondingElement</tt> and
+ <tt>correspondingUseElement</tt> attributes of the
+ <b>SVGElementInstance</b> interface have expected values.
+ </p>
+ <p>
+ The test consists of a single rectangle that is a descendant
+ of a number of <tt>g</tt> elements and a couple of nested
+ <tt>use</tt> shadow trees. When the user clicks the rectangle,
+ a <tt>mousedown</tt> event is dispatched, which travels up
+ the nested shadow trees. If the <tt>correspondingElement</tt> and
+ <tt>correspondingUseElement</tt> attributes of the
+ <b>SVGElementInstance</b> object (which is the <tt>currentTarget</tt>
+ of the event) are correct, the rectangle becomes blue. Otherwise,
+ it becomes red.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>SVGElementInstance interface test</text>
+ <text x='10' y='68' font-size='12'>Click the rectangle. The test has passed if it turns blue.</text>
+ <g display='none'>
+ <g xml:id='g1'>
+ <g xml:id='g2'>
+ <rect xml:id='rect1' x='10' y='80' width='50' height='50'/>
+ </g>
+ </g>
+ <g xml:id='g3'>
+ <g xml:id='g4'>
+ <use xml:id='use1' xlink:href='#g1'/>
+ </g>
+ </g>
+ <g xml:id='g5'>
+ <g xml:id='g6'>
+ <use xml:id='use2' xlink:href='#g3'/>
+ </g>
+ </g>
+ </g>
+ <use xml:id='use3' xlink:href='#g5'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ targets = [];
+ currentTargets = [];
+ correspondingElements = [];
+ correspondingUseElements = [];
+
+ function listener(e) {
+ targets.push(e.target);
+ currentTargets.push(e.currentTarget);
+ correspondingElements.push(e.currentTarget.correspondingElement);
+ correspondingUseElements.push(e.currentTarget.correspondingUseElement);
+ }
+
+ // Get all of the elements.
+ var ids = 'g1 g2 g3 g4 g5 g6 use1 use2 use3 rect1'.split(' ');
+ for (var i in ids) {
+ var id = ids[i];
+ this[id] = document.getElementById(id);
+ this[id].addEventListener('mousedown', listener, false);
+ }
+
+ function assertTrue(b) {
+ if (!b) {
+ throw 'assertion failed';
+ }
+ }
+
+ function docListener(e) {
+ document.removeEventListener('mousedown', docListener, false);
+ var colour = 'blue';
+ try {
+ assertTrue(targets.length == 10);
+ assertTrue(targets[0]);
+ for (var i = 0; i < 9; i++) {
+ // Test all the targets are the same.
+ assertTrue(targets[i] == targets[i + 1]);
+
+ // Test all the currentTargets are different.
+ assertTrue(currentTargets[i] != currentTargets[i + 1]);
+
+ // Test none of the currentTargets is null.
+ assertTrue(currentTargets[i]);
+
+ // Test that all correspondingUseElements are use3.
+ assertTrue(correspondingUseElements[i] == use3);
+ }
+ assertTrue(currentTargets[9]);
+ assertTrue(!correspondingUseElements[9]);
+
+ // Test that all the correspondingElement are correct.
+ assertTrue(correspondingElements[0] == rect1);
+ assertTrue(correspondingElements[1] == g2);
+ assertTrue(correspondingElements[2] == g1);
+ assertTrue(correspondingElements[3] == use1);
+ assertTrue(correspondingElements[4] == g4);
+ assertTrue(correspondingElements[5] == g3);
+ assertTrue(correspondingElements[6] == use2);
+ assertTrue(correspondingElements[7] == g6);
+ assertTrue(correspondingElements[8] == g5);
+ assertTrue(!correspondingElements[9]);
+ } catch (ex) {
+ colour = 'red';
+ }
+ rect1.setAttributeNS(null, 'fill', colour);
+ }
+
+ document.addEventListener('mousedown', docListener, false);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-205-t.png b/test/svg/svg1.2/svg/udom-svg-205-t.png
new file mode 100644
index 0000000..093f6c0
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-205-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-205-t.svg b/test/svg/svg1.2/svg/udom-svg-205-t.svg
new file mode 100644
index 0000000..d3a828e
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-205-t.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test the SVGSVGElement NAV_ constants" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-svg-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>NAV_*</tt> constants on the
+ <b>SVGSVGElement</b> exist.
+ </p>
+ <p>
+ The rectangle in the top left corner indicates whether all
+ of the constant fields are correct; green for pass, red for fail.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>SVGSVGElement NAV_ constants test</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function assertTrue(b) {
+ if (!b) {
+ throw 'assertion failed';
+ }
+ }
+
+ var ks = {
+ NAV_AUTO: 1,
+ NAV_NEXT: 2,
+ NAV_PRxe: 3,
+ NAV_UP: 4,
+ NAV_UP_RIGHT: 5,
+ NAV_RIGHT: 6,
+ NAV_DOWN_RIGHT: 7,
+ NAV_DOWN: 8,
+ NAV_DOWN_LEFT: 9,
+ NAV_LEFT: 10,
+ NAV_UP_LEFT: 11
+ };
+
+ try {
+ // Test that each constant exists.
+ for (var k in ks) {
+ assertTrue(SVGSVGElement[k] === ks[k]);
+ }
+
+ // Set the rectangle to be green if the previous tests all passed.
+ document.getElementById('ind').setAttributeNS(null, 'fill', 'green');
+ } catch (e) {
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-206-t.png b/test/svg/svg1.2/svg/udom-svg-206-t.png
new file mode 100644
index 0000000..2250f7a
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-206-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-206-t.svg b/test/svg/svg1.2/svg/udom-svg-206-t.svg
new file mode 100644
index 0000000..68e9f32
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-206-t.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CM" desc="Test SVGSVGElement.currentScale" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svg-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests setting and getting the <tt>currentScale</tt> attribute of
+ the <b>SVGSVGElement</b> interface.
+ </p>
+ <p>
+ There are three sub-tests, each represented by a rectangle (blue for
+ pass, red for fail). The test has been passed if all three rectangles are blue, and
+ the test slide is shown at 90% of its regular size (i.e., the
+ range (0, 0) -> (533.333, 400) user units is shown).
+ </p>
+
+ <p>
+ The first sub-test checks that the initial value of
+ <tt>currentScale</tt> is 1. The second checks setting
+ <tt>currentScale</tt> to a valid value (in this case, 0.9), and
+ looks at the resulting screenCTM. The third exercises retrieving
+ the newly set value.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>SVGSVGElement.currentScale test</text>
+ <text x='10' y='280' font-size='12'>All three rectangles must be blue.</text>
+ <g font-size='12'>
+ <rect xml:id='rect1' x='10' y='60' width='50' height='50' fill='red'/>
+ <text x='10' y='130'>Initial value</text>
+
+ <rect xml:id='rect2' x='160' y='60' width='50' height='50' fill='red'/>
+ <text x='160' y='130'>Set value</text>
+
+ <rect xml:id='rect3' x='310' y='60' width='50' height='50' fill='red'/>
+ <text x='310' y='130'>Get new value</text>
+
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ function eq(a, b) {
+ return Math.abs(a - b) < 1e-4;
+ }
+
+ svg = document.documentElement;
+
+ if (svg.currentScale == 1) {
+ document.getElementById('rect1').setAttributeNS(null, 'fill', 'blue');
+ }
+
+ var m1 = svg.getScreenCTM();
+ svg.currentScale = 0.9;
+ var m2 = svg.getScreenCTM();
+ if (eq(m1.getComponent(0) * 0.9, m2.getComponent(0)) && eq(m1.getComponent(3) * 0.9, m2.getComponent(3))) {
+ document.getElementById('rect2').setAttributeNS(null, 'fill', 'blue');
+ }
+
+ if (eq(svg.currentScale, 0.9)) {
+ document.getElementById('rect3').setAttributeNS(null, 'fill', 'blue');
+ }
+
+
+ svg.currentScale = 0.9;
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-208-t.png b/test/svg/svg1.2/svg/udom-svg-208-t.png
new file mode 100644
index 0000000..e4bcd48
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-208-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-208-t.svg b/test/svg/svg1.2/svg/udom-svg-208-t.svg
new file mode 100644
index 0000000..4b8bb4e
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-208-t.svg
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Tests syncbase behavior togheter with pause/resume element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: udom-svg-208-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on SMIL with scripting. The animated bar should pause for 3s at 1.5s and resume at 4.5s.
+ The smaller rects should change color at the indicated times.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-208-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+ <text x="100" y="20" text-anchor="middle">repeatCount</text>
+
+ <text x="70" y="65" text-anchor="middle">0</text>
+ <text x="90" y="65" text-anchor="middle">1</text>
+ <text x="110" y="65" text-anchor="middle">5</text>
+ <text x="130" y="65" text-anchor="middle">6</text>
+ <text x="150" y="65" text-anchor="middle">7</text>
+
+ <text fill="#CCC" x="100" y="45" text-anchor="middle">
+ pause 3s
+ <set attributeName="fill" to="#F00"
+ begin="pause_anim.begin" end="pause_anim.end" dur="indefinite"/>
+ </text>
+
+ <rect x="50" y="70" width="100" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="50" y="70" width="80" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="50" y="70" width="60" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="50" y="70" width="40" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="50" y="70" width="20" height="10" fill="#CCC" stroke="#555"/>
+
+ <rect x="50" y="95" width="20" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_1" attributeName="width" from="0" to="20"
+ begin="0" end="9" dur="1" repeatCount="4"
+ accumulate="sum" additive="sum" fill="freeze">
+
+ </animate>
+
+ </rect>
+
+ <line x1="100" y1="50" x2="100" y2="120" stroke="#CCC" stroke-opacity="0.5">
+ <set attributeName="stroke" to="#F00"
+ begin="pause_anim.begin" end="pause_anim.end" dur="indefinite"/>
+ </line>
+
+
+ <!--=========================================================================-->
+
+ <text x="250" y="20" text-anchor="middle">repeatDur</text>
+
+ <text x="220" y="65" text-anchor="middle">0</text>
+ <text x="240" y="65" text-anchor="middle">1</text>
+ <text x="260" y="65" text-anchor="middle">5</text>
+ <text x="280" y="65" text-anchor="middle">6</text>
+ <text x="300" y="65" text-anchor="middle">7</text>
+
+ <text fill="#CCC" x="250" y="45" text-anchor="middle">
+ pause 3s
+ <set attributeName="fill" to="#F00"
+ begin="pause_anim.begin" end="pause_anim.end" dur="indefinite"/>
+ </text>
+
+ <rect x="200" y="70" width="100" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="200" y="70" width="80" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="200" y="70" width="60" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="200" y="70" width="40" height="10" fill="#CCC" stroke="#555"/>
+ <rect x="200" y="70" width="20" height="10" fill="#CCC" stroke="#555"/>
+
+ <rect x="200" y="95" width="20" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_2" attributeName="width" from="0" to="20"
+ begin="0" end="9" dur="1" repeatDur="4"
+ accumulate="sum" additive="sum" fill="freeze">
+
+ </animate>
+
+ </rect>
+
+ <line stroke="#CCC" x1="250" y1="50" x2="250" y2="120" stroke-opacity="0.5">
+ <set attributeName="stroke" to="#F00"
+ begin="pause_anim.begin" end="pause_anim.end" dur="indefinite"/>
+ </line>
+
+ <!--=========================================================================-->
+
+ <text x="280" y="140">end-3</text>
+ <text x="280" y="160">end-2</text>
+ <text x="280" y="180">A.begin-1</text>
+ <text x="280" y="200">repeat(1)</text>
+ <text x="280" y="220">repeat(2)</text>
+ <text x="280" y="240">repeat(3)</text>
+ <text x="280" y="260">repeat(4)</text>
+ <text x="280" y="280">end-6</text>
+
+
+ <!--=========================================================================-->
+
+ <text x="80" y="140">>1</text>
+ <rect x="50" y="130" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.end-3"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.end-3"/>
+ </rect>
+
+ <text x="45" y="160" text-anchor="end">A</text>
+ <text x="80" y="160">>5</text>
+ <rect x="50" y="150" width="25" height="10" fill="#CCC" stroke="#555">
+ <set xml:id="A" attributeName="fill" to="#FA5" begin="anim_1.end-2"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.end-2"/>
+ </rect>
+
+ <text x="80" y="180">>1</text>
+ <rect x="50" y="170" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="A.begin-1"/>
+ <set attributeName="stroke" to="#000" begin="A.begin-1"/>
+ </rect>
+
+ <text x="80" y="200">>1</text>
+ <rect x="50" y="190" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.repeat(1)"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.repeat(1)"/>
+ </rect>
+
+ <text x="80" y="220">>5</text>
+ <rect x="50" y="210" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.repeat(2)"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.repeat(2)"/>
+ </rect>
+
+ <text x="80" y="240">>6</text>
+ <rect x="50" y="230" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.repeat(3)"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.repeat(3)"/>
+ </rect>
+
+ <text x="80" y="260">never</text>
+ <rect x="50" y="250" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#F00" begin="anim_1.repeat(4)"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.repeat(4)"/>
+ </rect>
+
+ <text x="80" y="280">>=0</text>
+ <rect x="50" y="270" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.end-6"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.end-6"/>
+ </rect>
+
+
+ <!--=========================================================================-->
+ <text x="230" y="140">>1</text>
+ <rect x="200" y="130" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.end-3"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.end-3"/>
+ </rect>
+
+ <text x="230" y="160">>5</text>
+ <rect x="200" y="150" width="25" height="10" fill="#CCC" stroke="#555">
+ <set xml:id="B" attributeName="fill" to="#FA5" begin="anim_2.end-2"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.end-2"/>
+ </rect>
+
+ <text x="230" y="180">>1</text>
+ <rect x="200" y="170" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="B.begin-1"/>
+ <set attributeName="stroke" to="#000" begin="B.begin-1"/>
+ </rect>
+
+ <text x="230" y="200">>1</text>
+ <rect x="200" y="190" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.repeat(1)"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.repeat(1)"/>
+ </rect>
+
+ <text x="230" y="220">>5</text>
+ <rect x="200" y="210" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.repeat(2)"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.repeat(2)"/>
+ </rect>
+
+ <text x="230" y="240">>6</text>
+ <rect x="200" y="230" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.repeat(3)"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.repeat(3)"/>
+ </rect>
+
+ <text x="230" y="260">never</text>
+ <rect x="200" y="250" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#F00" begin="anim_2.repeat(4)"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.repeat(4)"/>
+ </rect>
+
+ <text x="230" y="280">>=0</text>
+ <rect x="200" y="270" width="25" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.end-6"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.end-6"/>
+ </rect>
+
+
+ <animate xml:id="pause_anim" attributeName="visibility" from="visible" to="visible"
+ begin="1.5" dur="3">
+
+ <handler type="text/ecmascript" xe:event="beginEvent">
+ document.getElementById("anim_1").pauseElement();
+ document.getElementById("anim_2").pauseElement();
+ </handler>
+
+ <handler type="text/ecmascript" xe:event="endEvent">
+ document.getElementById("anim_1").resumeElement();
+ document.getElementById("anim_2").resumeElement();
+ </handler>
+
+ </animate>
+
+
+ <text y="300" x="50 70 90 110 130 150 170 190 200"
+ text-anchor="middle">01234567(s)</text>
+ <rect x="50" y="305" width="140" height="3"/>
+ <rect x="50" y="305" width="140" height="3" fill="#F00">
+ <animate attributeName="width" values="0;140" dur="7" fill="freeze"/>
+ </rect>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-209-t.png b/test/svg/svg1.2/svg/udom-svg-209-t.png
new file mode 100644
index 0000000..2ea6e49
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-209-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-209-t.svg b/test/svg/svg1.2/svg/udom-svg-209-t.svg
new file mode 100644
index 0000000..b366040
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-209-t.svg
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test raising of begin, end and repeat events togheter with pause/resume element" status="accepted"
+ approved="yes"
+ version="$Revision: 1.3 $" testname="$RCSfile: udom-svg-209-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on SMIL with scripting. Animation should match the indicated begin- repeat- and end-values
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-209-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="10">
+
+ <defs>
+ <polygon xml:id="arrow" points="0,0, 3,-8, -3,-8"/>
+ </defs>
+
+ <text x="230" y="69" text-anchor="middle">begin</text>
+ <text x="230" y="82" text-anchor="middle">0-1s</text>
+ <text x="230" y="95" text-anchor="middle">5-6s</text>
+
+ <text x="280" y="69" text-anchor="middle">repeat(1)</text>
+ <text x="280" y="82" text-anchor="middle">1-2s</text>
+ <text x="280" y="95" text-anchor="middle">7.5-8.5s</text>
+
+ <text x="330" y="82" text-anchor="middle">repeat(2)</text>
+ <text x="330" y="95" text-anchor="middle">never</text>
+
+ <text x="380" y="82" text-anchor="middle">repeat(3)</text>
+ <text x="380" y="95" text-anchor="middle">never</text>
+
+ <text x="430" y="69" text-anchor="middle">end</text>
+ <text x="430" y="82" text-anchor="middle">3-4s</text>
+ <text x="430" y="95" text-anchor="middle">8-9s</text>
+
+ <text x="125" y="82" fill="#CCC">
+ Pause 5s
+ <set attributeName="fill" to="#F00" begin="pause_anim.begin" end="pause_anim.end"/>
+ </text>
+
+ <!--======================================================================-->
+ <!--= =-->
+ <!--======================================================================-->
+
+ <rect x="100" y="100" width="25" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_1"
+ attributeName="width" from="0" to="25" additive="sum"
+ begin="0;5" end="3;8" dur="1"
+ repeatCount="indefinite" accumulate="sum">
+
+ </animate>
+
+ </rect>
+
+ <use xlink:href="#arrow" x="125" y="100">
+ <animate attributeName="x"
+ values= "125; 163; 163; 125; 125; 163"
+ keyTimes="0; 0.1875; 0.375; 0.375; 0.8125; 1"
+ begin="0" dur="8"/>
+ </use>
+
+
+ <rect x="210" y="100" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_1.beginEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_1.beginEvent" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="260" y="100" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_1.repeat(1)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_1.repeat(1)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="310" y="100" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_1.repeat(2)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_1.repeat(2)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="360" y="100" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_1.repeat(3)" dur="1" to="#F00"/>
+ <set attributeName="stroke" begin="anim_1.repeat(3)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="410" y="100" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_1.endEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_1.endEvent" dur="1" to="#000"/>
+ </rect>
+
+
+ <!--======================================================================-->
+
+ <rect x="100" y="120" width="25" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_2"
+ attributeName="width" from="0" to="25" additive="sum"
+ begin="0;5" end="3;8" dur="1" fill="freeze"
+ repeatCount="indefinite" accumulate="sum">
+
+ </animate>
+
+ </rect>
+
+ <use xlink:href="#arrow" x="163" y="120">
+ <animate attributeName="x"
+ values= "125; 163; 163; 125; 125; 163"
+ keyTimes="0; 0.1875; 0.625; 0.625; 0.8125; 1"
+ begin="0" dur="8"/>
+ </use>
+
+
+ <rect x="210" y="120" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_2.beginEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_2.beginEvent" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="260" y="120" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_2.repeat(1)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_2.repeat(1)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="310" y="120" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_2.repeat(2)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_2.repeat(2)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="360" y="120" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_2.repeat(3)" dur="1" to="#F00"/>
+ <set attributeName="stroke" begin="anim_2.repeat(3)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="410" y="120" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_2.endEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_2.endEvent" dur="1" to="#000"/>
+ </rect>
+
+ <!--======================================================================-->
+
+ <rect x="100" y="140" width="25" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_3"
+ attributeName="width" from="0" to="25" additive="sum"
+ begin="0;5" end="3;8" dur="1" fill="freeze"
+ repeatDur="indefinite" accumulate="sum">
+
+ </animate>
+
+ </rect>
+
+ <use xlink:href="#arrow" x="163" y="140">
+ <animate attributeName="x"
+ values= "125; 163; 163; 125; 125; 163"
+ keyTimes="0; 0.1875; 0.625; 0.625; 0.8125; 1"
+ begin="0" dur="8"/>
+ </use>
+
+
+ <rect x="210" y="140" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_3.beginEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_3.beginEvent" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="260" y="140" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_3.repeat(1)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_3.repeat(1)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="310" y="140" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_3.repeat(2)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_3.repeat(2)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="360" y="140" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_3.repeat(3)" dur="1" to="#F00"/>
+ <set attributeName="stroke" begin="anim_3.repeat(3)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="410" y="140" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_3.endEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_3.endEvent" dur="1" to="#000"/>
+ </rect>
+
+
+ <!--======================================================================-->
+ <!--= =-->
+ <!--======================================================================-->
+
+ <rect x="10" y="170" fill="#EEE" width="460" height="90"/>
+ <text x="20" y="185">Scripted begin and end</text>
+
+
+
+ <rect x="100" y="200" width="25" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_4"
+ attributeName="width" from="0" to="25" additive="sum"
+ begin="indefinite" dur="1"
+ repeatCount="indefinite" accumulate="sum">
+
+ </animate>
+
+ </rect>
+
+ <use xlink:href="#arrow" x="125" y="200">
+ <animate attributeName="x"
+ values= "125; 163; 163; 125; 125; 163"
+ keyTimes="0; 0.1875; 0.375; 0.375; 0.8125; 1"
+ begin="0" dur="8"/>
+ </use>
+
+
+ <rect x="210" y="200" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_4.beginEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_4.beginEvent" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="260" y="200" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_4.repeat(1)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_4.repeat(1)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="310" y="200" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_4.repeat(2)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_4.repeat(2)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="360" y="200" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_4.repeat(3)" dur="1" to="#F00"/>
+ <set attributeName="stroke" begin="anim_4.repeat(3)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="410" y="200" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_4.endEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_4.endEvent" dur="1" to="#000"/>
+ </rect>
+
+
+ <!--======================================================================-->
+
+ <rect x="100" y="220" width="25" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_5"
+ attributeName="width" from="0" to="25" additive="sum"
+ begin="indefinite" dur="1" fill="freeze"
+ repeatCount="indefinite" accumulate="sum">
+
+ </animate>
+
+ </rect>
+
+ <use xlink:href="#arrow" x="163" y="220">
+ <animate attributeName="x"
+ values= "125; 163; 163; 125; 125; 163"
+ keyTimes="0; 0.1875; 0.625; 0.625; 0.8125; 1"
+ begin="0" dur="8"/>
+ </use>
+
+
+ <rect x="210" y="220" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_5.beginEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_5.beginEvent" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="260" y="220" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_5.repeat(1)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_5.repeat(1)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="310" y="220" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_5.repeat(2)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_5.repeat(2)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="360" y="220" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_5.repeat(3)" dur="1" to="#F00"/>
+ <set attributeName="stroke" begin="anim_5.repeat(3)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="410" y="220" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_5.endEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_5.endEvent" dur="1" to="#000"/>
+ </rect>
+
+ <!--======================================================================-->
+
+ <rect x="100" y="240" width="25" height="10" fill="#FA3" stroke="#000">
+
+ <animate xml:id="anim_6"
+ attributeName="width" from="0" to="25" additive="sum"
+ begin="indefinite" dur="1" fill="freeze"
+ repeatDur="indefinite" accumulate="sum">
+
+ </animate>
+
+ </rect>
+
+ <use xlink:href="#arrow" x="163" y="240">
+ <animate attributeName="x"
+ values= "125; 163; 163; 125; 125; 163"
+ keyTimes="0; 0.1875; 0.625; 0.625; 0.8125; 1"
+ begin="0" dur="8"/>
+ </use>
+
+
+ <rect x="210" y="240" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_6.beginEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_6.beginEvent" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="260" y="240" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_6.repeat(1)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_6.repeat(1)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="310" y="240" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_6.repeat(2)" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_6.repeat(2)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="360" y="240" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_6.repeat(3)" dur="1" to="#F00"/>
+ <set attributeName="stroke" begin="anim_6.repeat(3)" dur="1" to="#000"/>
+ </rect>
+
+ <rect x="410" y="240" width="40" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" begin="anim_6.endEvent" dur="1" to="#FA3"/>
+ <set attributeName="stroke" begin="anim_6.endEvent" dur="1" to="#000"/>
+ </rect>
+
+
+ <!--======================================================================-->
+
+ <animate attributeName="visibility" from="visible" to="visible"
+ begin="0;5" end="3;8">
+
+ <handler type="text/ecmascript" xe:event="beginEvent">
+ document.getElementById("anim_4").beginElement();
+ document.getElementById("anim_5").beginElement();
+ document.getElementById("anim_6").beginElement();
+ </handler>
+
+ <handler type="text/ecmascript" xe:event="endEvent">
+ document.getElementById("anim_4").endElement();
+ document.getElementById("anim_5").endElement();
+ document.getElementById("anim_6").endElement();
+ </handler>
+
+ </animate>
+
+
+ <!--======================================================================-->
+
+ <animate xml:id="pause_anim" attributeName="visibility"
+ from="visible" to="visible" begin="1.5" dur="5">
+
+ <handler type="text/ecmascript" xe:event="beginEvent">
+ document.getElementById("anim_1").pauseElement();
+ document.getElementById("anim_2").pauseElement();
+ document.getElementById("anim_3").pauseElement();
+ document.getElementById("anim_4").pauseElement();
+ document.getElementById("anim_5").pauseElement();
+ document.getElementById("anim_6").pauseElement();
+ </handler>
+
+ <handler type="text/ecmascript" xe:event="endEvent">
+ document.getElementById("anim_1").resumeElement();
+ document.getElementById("anim_2").resumeElement();
+ document.getElementById("anim_3").resumeElement();
+ document.getElementById("anim_4").resumeElement();
+ document.getElementById("anim_5").resumeElement();
+ document.getElementById("anim_6").resumeElement();
+ </handler>
+
+ </animate>
+
+
+ <text y="300" x="210 230 250 270 290 310 330 350 370 390 400"
+ text-anchor="middle">0123456789(s)</text>
+ <rect x="210" y="305" width="180" height="3"/>
+ <rect x="210" y="305" width="180" height="3" fill="#F00">
+ <animate attributeName="width" values="0;180" dur="9" fill="freeze"/>
+ </rect>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/udom-svg-210-t.png b/test/svg/svg1.2/svg/udom-svg-210-t.png
new file mode 100644
index 0000000..ca263ac
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-210-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-210-t.svg b/test/svg/svg1.2/svg/udom-svg-210-t.svg
new file mode 100644
index 0000000..e7d09d2
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-210-t.svg
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test active intervals with pause/resume element and restart 'whenNotActive'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-svg-210-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on SMIL with scripting. Animation should match the indicated begin- and end-values,
+ and should pause for three seconds when the pause-sign turn red.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-210-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <polygon xml:id="arrow" points="0,0, 3,-8, -3,-8"/>
+ </defs>
+
+ <text x="100" y="35">restart: whenNotActive</text>
+
+ <text x="310" y="100" text-anchor="middle">begin</text>
+ <text x="370" y="100" text-anchor="middle">end</text>
+
+ <!--======================================================================-->
+ <text x="100" y="120">begin: 0;3;5.5</text>
+
+ <text x="310" y="130" text-anchor="middle">0-1</text>
+ <text x="310" y="145" text-anchor="middle">5.5-6.5</text>
+ <text x="370" y="130" text-anchor="middle">5-6</text>
+ <text x="370" y="145" text-anchor="middle">7.5-8.5</text>
+
+ <rect x="100" y="150" width="100" height="10" stroke="#555" fill="#AAA"/>
+
+ <rect x="100" y="150" width="20" height="10" stroke="#000" fill="#FA5">
+ <animate xml:id="anim_1" attributeName="width" from="20" to="100"
+ begin="0;3;5.5" dur="2" restart="whenNotActive" fill="freeze"/>
+ </rect>
+
+ <rect x="300" y="150" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.beginEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.beginEvent" dur="1"/>
+ </rect>
+
+ <rect x="360" y="150" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.endEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.endEvent" dur="1"/>
+ </rect>
+
+ <use xlink:href="#arrow" x="120" y="150">
+ <animate attributeName="x"
+ values=" 120; 160; 160; 200; 200; 120; 200"
+ keyTimes="0; 0.133; 0.533; 0.667; 0.733; 0.733; 1"
+ begin="0" dur="7.5" fill="freeze"/>
+ </use>
+
+ <!--======================================================================-->
+ <text x="100" y="200">begin: 0;3;5.5</text>
+ <text x="100" y="220">end: 2.5;9</text>
+
+ <text x="310" y="230" text-anchor="middle">0-1</text>
+ <text x="310" y="245" text-anchor="middle">3-4</text>
+ <text x="370" y="230" text-anchor="middle">2.5-3.5</text>
+ <text x="370" y="245" text-anchor="middle">6-7</text>
+
+ <rect x="100" y="250" width="100" height="10" stroke="#555" fill="#AAA"/>
+
+ <rect x="100" y="250" width="20" height="10" stroke="#000" fill="#FA5">
+ <animate xml:id="anim_2" attributeName="width" from="20" to="100"
+ begin="0;3;5.5" end="2.5;9" dur="2" restart="whenNotActive" fill="freeze"/>
+ </rect>
+
+ <rect x="300" y="250" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.beginEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.beginEvent" dur="1"/>
+ </rect>
+
+ <rect x="360" y="250" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.endEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.endEvent" dur="1"/>
+ </rect>
+
+ <use xlink:href="#arrow" x="120" y="250">
+ <animate attributeName="x"
+ values=" 120; 160; 160; 160; 120; 120; 200"
+ keyTimes="0; 0.167; 0.417; 0.5; 0.5; 0.667; 1"
+ begin="0" dur="6" fill="freeze"/>
+ </use>
+
+ <!--======================================================================-->
+ <rect x="300" y="20" width="80" height="20" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#F00" begin="pause_anim.begin" end="pause_anim.end"/>
+ <set attributeName="stroke" to="#000" begin="pause_anim.begin" end="pause_anim.end"/>
+ </rect>
+
+ <text x="340" y="35" text-anchor="middle" fill="#AAA">
+ Pause 3s
+ <set attributeName="fill" to="#000" begin="pause_anim.begin" end="pause_anim.end"/>
+ </text>
+
+ <animate xml:id="pause_anim" attributeName="visibility"
+ from="visible" to="visible" begin="1" dur="3">
+
+ <handler type="text/ecmascript" xe:event="beginEvent">
+ document.getElementById("anim_1").pauseElement();
+ document.getElementById("anim_2").pauseElement();
+ </handler>
+
+ <handler type="text/ecmascript" xe:event="endEvent">
+ document.getElementById("anim_1").resumeElement();
+ document.getElementById("anim_2").resumeElement();
+ </handler>
+
+ </animate>
+
+
+ <text y="300" x="100 120 140 160 180 200 220 240 260 280 300"
+ text-anchor="middle">0123456789(s)</text>
+ <rect x="100" y="305" width="180" height="3"/>
+ <rect x="100" y="305" width="180" height="3" fill="#F00">
+ <animate attributeName="width" values="0;180" dur="9" fill="freeze"/>
+ </rect>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-211-t.png b/test/svg/svg1.2/svg/udom-svg-211-t.png
new file mode 100644
index 0000000..28e2ebf
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-211-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-211-t.svg b/test/svg/svg1.2/svg/udom-svg-211-t.svg
new file mode 100644
index 0000000..0ee1444
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-211-t.svg
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test active intervals with pause/resume element and restart 'never'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-svg-211-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on SMIL with scripting. Animation should match the indicated begin- and end-values,
+ and should pause for three seconds when the pause-sign turns red. restart is set to "never" so should NOT restart.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-211-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <polygon xml:id="arrow" points="0,0, 3,-8, -3,-8"/>
+ </defs>
+
+ <text x="100" y="35">restart: never</text>
+
+ <text x="310" y="100" text-anchor="middle">begin</text>
+ <text x="370" y="100" text-anchor="middle">end</text>
+
+ <!--======================================================================-->
+ <text x="100" y="120">begin: 0;3;5.5</text>
+
+ <text x="310" y="145" text-anchor="middle">0-1</text>
+ <text x="370" y="145" text-anchor="middle">5-6</text>
+
+ <rect x="100" y="150" width="100" height="10" stroke="#555" fill="#AAA"/>
+
+ <rect x="100" y="150" width="20" height="10" stroke="#000" fill="#FA5">
+ <animate xml:id="anim_1" attributeName="width" from="20" to="100"
+ begin="0;3;5.5" dur="2" restart="never" fill="freeze"/>
+ </rect>
+
+ <rect x="300" y="150" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.beginEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.beginEvent" dur="1"/>
+ </rect>
+
+ <rect x="360" y="150" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_1.endEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_1.endEvent" dur="1"/>
+ </rect>
+
+ <use xlink:href="#arrow" x="120" y="150">
+ <animate attributeName="x"
+ values=" 120; 160; 160; 200"
+ keyTimes="0; 0.2; 0.8; 1"
+ begin="0" dur="5" fill="freeze"/>
+ </use>
+
+ <!--======================================================================-->
+ <text x="100" y="200">begin: 0;3;5.5</text>
+ <text x="100" y="220">end: 2.5;9</text>
+
+ <text x="310" y="245" text-anchor="middle">0-1</text>
+ <text x="370" y="245" text-anchor="middle">2.5-3.5</text>
+
+ <rect x="100" y="250" width="100" height="10" stroke="#555" fill="#AAA"/>
+
+ <rect x="100" y="250" width="20" height="10" stroke="#000" fill="#FA5">
+ <animate xml:id="anim_2" attributeName="width" from="20" to="100"
+ begin="0;3;5.5" end="2.5;9" dur="2" restart="never" fill="freeze"/>
+ </rect>
+
+ <rect x="300" y="250" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.beginEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.beginEvent" dur="1"/>
+ </rect>
+
+ <rect x="360" y="250" width="20" height="10" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#FA5" begin="anim_2.endEvent" dur="1"/>
+ <set attributeName="stroke" to="#000" begin="anim_2.endEvent" dur="1"/>
+ </rect>
+
+ <use xlink:href="#arrow" x="120" y="250">
+ <animate attributeName="x"
+ values=" 120; 160"
+ keyTimes="0; 1"
+ begin="0" dur="1" fill="freeze"/>
+ </use>
+
+ <!--======================================================================-->
+ <rect x="300" y="20" width="80" height="20" fill="#CCC" stroke="#555">
+ <set attributeName="fill" to="#F00" begin="pause_anim.begin" end="pause_anim.end"/>
+ <set attributeName="stroke" to="#000" begin="pause_anim.begin" end="pause_anim.end"/>
+ </rect>
+
+ <text x="340" y="35" text-anchor="middle" fill="#AAA">
+ Pause 3s
+ <set attributeName="fill" to="#000" begin="pause_anim.begin" end="pause_anim.end"/>
+ </text>
+
+ <animate xml:id="pause_anim" attributeName="visibility"
+ from="visible" to="visible" begin="1" dur="3">
+
+ <handler type="text/ecmascript" xe:event="beginEvent">
+ document.getElementById("anim_1").pauseElement();
+ document.getElementById("anim_2").pauseElement();
+ </handler>
+
+ <handler type="text/ecmascript" xe:event="endEvent">
+ document.getElementById("anim_1").resumeElement();
+ document.getElementById("anim_2").resumeElement();
+ </handler>
+
+ </animate>
+
+
+ <text y="300" x="100 120 140 160 180 200 220 240 260 280 300"
+ text-anchor="middle">0123456789(s)</text>
+ <rect x="100" y="305" width="180" height="3"/>
+ <rect x="100" y="305" width="180" height="3" fill="#F00">
+ <animate attributeName="width" values="0;180" dur="9" fill="freeze"/>
+ </rect>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-213-t.png b/test/svg/svg1.2/svg/udom-svg-213-t.png
new file mode 100644
index 0000000..dd2de5e
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-213-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-213-t.svg b/test/svg/svg1.2/svg/udom-svg-213-t.svg
new file mode 100644
index 0000000..b7a011d
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-213-t.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="CM" desc="Test that SVGSVGElement.getCurrentTime returns a sensible value" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: udom-svg-213-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests that the <tt>getCurrentTime</tt> method of the
+ <b>SVGSVGElement</b> interface returns sensible values.
+ </p>
+ <p>
+ The test shows three rectangles. The test is passed if the first rectangle is blue, and after
+ clicking the second rectangle it turns blue, and after clicking
+ the third rectangle it also turns blue.
+ </p>
+ <p>
+ The first one represents
+ whether calling <tt>getCurrentTime</tt> before the <tt>load</tt>
+ event is dispatched returns 0. Clicking the second rectangle
+ (which is red to begin with) then tests that the current time is
+ greater than 0. Finally, clicking the third rectangle (which
+ also is red to begin with) tests that the current time is greater
+ than the time at which the second rectangle was clicked.
+
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-213-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>SVGSVGElement.getCurrentTime() test</text>
+ <rect xml:id='r1' x='10' y='60' width='40' height='40' fill='red'/>
+ <rect xml:id='r2' x='10' y='110' width='40' height='40' fill='red'/>
+ <rect xml:id='r3' x='10' y='160' width='40' height='40' fill='red'/>
+
+ <!-- To make sure that the SMIL timeline is active -->
+ <animate attributeName="display" from="inline" to="inline" dur="2s" repeatCount="indefinite"/>
+
+ <g font-size='15'>
+ <text xml:id='t1' x='60' y='85'/>
+ <text xml:id='t2' x='60' y='135'>Click this rectangle.</text>
+ <text xml:id='t3' x='60' y='185'>Then click this one.</text>
+ </g>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ var svg = document.documentElement;
+
+ var t;
+
+ // Time must be 0s before 'load' is dispatched.
+ t0 = svg.getCurrentTime();
+ if (t0 == 0) {
+ document.getElementById('r1').setAttributeNS(null, 'fill', 'blue');
+ }
+ document.getElementById('t1').textContent = 'Current time before document load: ' + t0;
+
+ var r2 = document.getElementById('r2');
+ var r3 = document.getElementById('r3');
+
+ // Test that the first click is some time after 0s.
+ r2.addEventListener('click',
+ function(evt) {
+ t = svg.getCurrentTime();
+ document.getElementById('t2').textContent = 'Current time when clicked: ' + t;
+ if (t > 0) {
+ r2.setAttributeNS(null, 'fill', 'blue');
+ }
+ }, false);
+
+ // Test that the second click is some time after the first click.
+ r3.addEventListener('click',
+ function(evt) {
+ var t2 = svg.getCurrentTime();
+ document.getElementById('t3').textContent = 'Current time when clicked: ' + t2;
+ if (t2 > t) {
+ r3.setAttributeNS(null, 'fill', 'blue');
+ }
+ }, false);
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-216-t.png b/test/svg/svg1.2/svg/udom-svg-216-t.png
new file mode 100644
index 0000000..3aea239
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-216-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-216-t.svg b/test/svg/svg1.2/svg/udom-svg-216-t.svg
new file mode 100644
index 0000000..c2ff44c
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-216-t.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="CM" desc="Test SVGSVGElement.createSVGPath()" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-svg-216-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests the basic functionality of
+ <tt>SVGSVGElement.createSVGPath()</tt>. It
+ verifies that the returned path object has no path segments
+ initially, that a path segment can be added to the path object,
+ and that the object returned is actually
+ <tt>instanceof SVGPath</tt>.
+ </p>
+ <p>
+ The test is passed if the rectangle is green.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-216-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='40'>SVGSVGElement.createSVGPath() test</text>
+ <rect xml:id='r1' x='10' y='50' width='100' height='100' fill='red'/>
+ <script>
+ <![CDATA[
+ var p = document.documentElement.createSVGPath();
+
+ if (p instanceof SVGPath
+ && p.numberOfSegments == 0
+ && (p.moveTo(1, 2),
+ (p.numberOfSegments == 1
+ && p.getSegment(0) == SVGPath.MOVE_TO))) {
+ document.getElementById('r1').setAttributeNS(null, 'fill', 'green');
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-218-t.png b/test/svg/svg1.2/svg/udom-svg-218-t.png
new file mode 100644
index 0000000..0873092
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-218-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-218-t.svg b/test/svg/svg1.2/svg/udom-svg-218-t.svg
new file mode 100644
index 0000000..2dc8eb4
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-218-t.svg
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE, AG" owner="CM" desc="More SVGGlobal.getURL() tests" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-svg-218-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test some more complex invocations of <tt>SVGGlobal.getURL()</tt>.
+ </p>
+ <p>
+ The test contains 3 subtests. The test is passed if all 3 rectangles
+ relating to a respective subtest turn green upon test completion.
+ </p>
+ <p>
+ The first subtest tests fetching a text/plain resource via a 3xx
+ redirection status code using SVGGlobal.getURL().
+ </p>
+ <p>
+ The second subtest tests a text/plain resource returned with status
+ code 403 using SVGGlobal.getURL().
+ </p>
+ <p>
+ The third subtest tests a text/plain resource returned with status
+ code 500 using SVGGlobal.getURL().
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-218-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='40'>More SVGSVGElement.getURL() tests</text>
+ <rect xml:id="r1" x="20" y="75" width="40" height="40" fill="black"/>
+ <rect xml:id="r2" x="20" y="135" width="40" height="40" fill="black"/>
+ <rect xml:id="r3" x="20" y="195" width="40" height="40" fill="black"/>
+ <g transform="translate(80,0)">
+ <text x="0" y="90">Fetch a text/plain resource via a 3xx </text>
+ <text x="0" y="110">redirection status code</text>
+
+ <text x="0" y="150">A text/plain resource returned with</text>
+ <text x="0" y="170">status code 403.</text>
+
+ <text x="0" y="210">A text/plain resource returned with</text>
+ <text x="0" y="230">status code 500.</text>
+ </g>
+
+ <text xml:id="test_status" text-anchor="middle" x="240" y="270" fill="black">
+ Test Running...
+ </text>
+ <script>
+ <![CDATA[
+
+ // This can be changed if the test is run locally.
+ var servlet_url = "http://www.w3.org/2008/04/http";
+ var tests_remaining = 3;
+ var test_passed = true;
+
+ function updateTestStatus()
+ {
+ --tests_remaining;
+
+ if (tests_remaining == 0)
+ {
+ var status_elmt = document.getElementById("test_status");
+
+ if (test_passed)
+ {
+ status_elmt.textContent = "Test completed and passed";
+ status_elmt.setAttribute("fill", "green");
+ }
+ else
+ {
+ status_elmt.textContent = "Test completed and failed";
+ status_elmt.setAttribute("fill", "green");
+ }
+ }
+ }
+
+ // Fetch a text/plain resource via a 3xx redirection status code.
+ var callback1 =
+ {
+ operationComplete: function(status)
+ {
+ var colour = 'green';
+ if
+ (
+ !status.success
+ //||
+ //status.contentType != "text/plain; charset=UTF-8"
+ ||
+ status.content != "ABCDEFGHI"
+ )
+ {
+ colour = 'red';
+ test_passed = false;
+ }
+ document.getElementById('r1').setAttributeNS(null, 'fill', colour);
+ updateTestStatus();
+ }
+ };
+ getURL(servlet_url + "?redirect=200&content", callback1);
+
+ // A text/plain resource returned with status code 403.
+ var callback2 =
+ {
+ operationComplete: function(status)
+ {
+ var colour = 'green';
+ if (status.success)
+ {
+ colour = 'red';
+ test_passed = false;
+ }
+ document.getElementById('r2').setAttributeNS(null, 'fill', colour);
+ updateTestStatus();
+ }
+ };
+ getURL(servlet_url + "?rc=403", callback2);
+
+ // A text/plain resource returned with status code 500.
+ var callback3 =
+ {
+ operationComplete: function(status)
+ {
+ var colour = 'green';
+ if (status.success)
+ {
+ colour = 'red';
+ test_passed = false;
+ }
+ document.getElementById('r3').setAttributeNS(null, 'fill', colour);
+ updateTestStatus();
+ }
+ };
+ getURL( servlet_url + "?rc=503", callback3);
+
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-220-t.png b/test/svg/svg1.2/svg/udom-svg-220-t.png
new file mode 100644
index 0000000..ec9a578
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-220-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-220-t.svg b/test/svg/svg1.2/svg/udom-svg-220-t.svg
new file mode 100644
index 0000000..c5c9884
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-220-t.svg
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ATE" owner="CM" desc="Test trait access for 'accumulate'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.10 $" testname="$RCSfile: udom-svg-220-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests trait access methods on the <b>TraitAccess</b> interface
+ for the 'accumulate' trait. Each trait getter and setter method is called on
+ each applicable SVG Tiny 1.2 element.
+ </p>
+ <p>
+ The test is passed if the rendering matches the reference rendering.
+ The rectangle must be blue, and there must be a blue circle to the
+ right of it whose diameter is the same as the height of the rectangle.
+ There must be no text displayed below the rectangle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-220-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Trait access test: accumulate</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <text xml:id='d' x='10' y='180' font-size='9px'/>
+ <circle xml:id='c1' cx='35' cy='120' r='5' fill='red'/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ SVGNS = 'http://www.w3.org/2000/svg';
+
+ function assertTrue(b, msg) {
+ if (!b) {
+ throw msg;
+ }
+ }
+
+ function assertException(f, code, msg) {
+ try {
+ f();
+ } catch (e) {
+ if (e.code == code) {
+ return;
+ }
+ throw 'Incorrect exception code: ' + msg;
+ }
+ throw 'No exception thrown: ' + msg;
+ }
+
+ function set(array) {
+ var o = { };
+ for (var i in array) {
+ o[array[i]] = true;
+ }
+ return o;
+ }
+
+ var svg = document.documentElement;
+
+ // Get all of the elements.
+ var ids = 'ind d c1'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Elements this trait applies to.
+ var applicableElementNames = set('set animate animateColor animateMotion animateTransform');
+
+ var e;
+ try {
+ for (var name in applicableElementNames) {
+ e = document.createElementNS(SVGNS, name);
+
+ assertTrue(e.getTrait('accumulate') == 'none', 'get lacuna value when missing using getTrait() on ' + name);
+ assertTrue(e.getTraitNS(null, 'accumulate') == 'none', 'get lacuna value when missing using getTraitNS() on ' + name);
+ assertTrue(e.getPresentationTrait('accumulate') == 'none', 'get lacuna value when missing using getPresentationTrait() on ' + name);
+ assertTrue(e.getPresentationTraitNS(null, 'accumulate') == 'none', 'get lacuna value when missing using getPresentationTraitNS() on ' + name);
+
+ e.setAttributeNS(null, 'accumulate', 'invalid');
+ assertTrue(e.getTrait('accumulate') == 'none', 'get lacuna value when unsupported using getTrait() on ' + name);
+ assertTrue(e.getTraitNS(null, 'accumulate') == 'none', 'get lacuna value when missing using getTraitNS() on ' + name);
+ assertTrue(e.getPresentationTrait('accumulate') == 'none', 'get lacuna value when unsupported using getPresentationTrait() on ' + name);
+ assertTrue(e.getPresentationTraitNS(null, 'accumulate') == 'none', 'get lacuna value when missing using getPresentationTraitNS() on ' + name);
+
+ e.setTrait('accumulate', 'sum');
+ assertTrue(e.getTrait('accumulate') == 'sum', 'get value "sum" using getTrait(), which was set with setTrait(), on ' + name);
+ assertTrue(e.getTraitNS(null, 'accumulate') == 'sum', 'get value "sum" using getTraitNS(), which was set with setTrait(), on ' + name);
+ assertTrue(e.getPresentationTrait('accumulate') == 'sum', 'get value "sum" using getPresentationTrait(), which was set with setTrait(), on ' + name);
+ assertTrue(e.getPresentationTraitNS(null, 'accumulate') == 'sum', 'get value "sum" using getPresentationTraitNS(), which was set with setTrait(), on ' + name);
+
+ e.setTrait('accumulate', 'none');
+ assertTrue(e.getTrait('accumulate') == 'none', 'get value "none" using getTrait(), which was set with setTrait(), on ' + name);
+ assertTrue(e.getTraitNS(null, 'accumulate') == 'none', 'get value "none" using getTraitNS(), which was set with setTrait(), on ' + name);
+ assertTrue(e.getPresentationTrait('accumulate') == 'none', 'get value "none" using getPresentationTrait(), which was set with setTrait(), on ' + name);
+ assertTrue(e.getPresentationTraitNS(null, 'accumulate') == 'none', 'get value "none" using getPresentationTraitNS(), which was set with setTrait(), on ' + name);
+
+ e.setTraitNS(null, 'accumulate', 'sum');
+ assertTrue(e.getTrait('accumulate') == 'sum', 'get value "sum" using getTrait(), which was set with setTraitNS(), on ' + name);
+ assertTrue(e.getTraitNS(null, 'accumulate') == 'sum', 'get value "sum" using getTraitNS(), which was set with setTraitNS(), on ' + name);
+ assertTrue(e.getPresentationTrait('accumulate') == 'sum', 'get value "sum" using getPresentationTrait(), which was set with setTraitNS(), on ' + name);
+ assertTrue(e.getPresentationTraitNS(null, 'accumulate') == 'sum', 'get value "sum" using getPresentationTraitNS(), which was set with setTraitNS(), on ' + name);
+
+ e.setTraitNS(null, 'accumulate', 'none');
+ assertTrue(e.getTrait('accumulate') == 'none', 'get value "none" using getTrait(), which was set with setTraitNS(), on ' + name);
+ assertTrue(e.getTraitNS(null, 'accumulate') == 'none', 'get value "none" using getTraitNS(), which was set with setTraitNS(), on ' + name);
+ assertTrue(e.getPresentationTrait('accumulate') == 'none', 'get value "none" using getPresentationTrait(), which was set with setTraitNS(), on ' + name);
+ assertTrue(e.getPresentationTraitNS(null, 'accumulate') == 'none', 'get value "none" using getPresentationTraitNS(), which was set with setTraitNS(), on ' + name);
+
+ assertException(function() { e.setTrait('accumulate', 'invalid') }, DOMException.NOT_SUPPORTED_ERR, 'set invalid value using setTrait(), on ' + name);
+ assertException(function() { e.setTraitNS(null, 'accumulate', 'invalid') }, DOMException.NOT_SUPPORTED_ERR, 'set invalid value using setTraitNS(), on ' + name);
+
+ assertException(function() { e.getFloatTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatTrait(), on ' + name);
+ assertException(function() { e.getFloatListTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatListTrait(), on ' + name);
+ assertException(function() { e.getMatrixTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getMatrixTrait(), on ' + name);
+ assertException(function() { e.getRectTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRectTrait(), on ' + name);
+ assertException(function() { e.getPathTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPathTrait(), on ' + name);
+ assertException(function() { e.getRGBColorTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRGBColorTrait(), on ' + name);
+
+ assertException(function() { e.getFloatPresentationTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatPresentationTrait(), on ' + name);
+ assertException(function() { e.getFloatListPresentationTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatListPresentationTrait(), on ' + name);
+ assertException(function() { e.getMatrixPresentationTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getMatrixPresentationTrait(), on ' + name);
+ assertException(function() { e.getRectPresentationTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRectPresentationTrait(), on ' + name);
+ assertException(function() { e.getPathPresentationTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPathPresentationTrait(), on ' + name);
+ assertException(function() { e.getRGBColorPresentationTrait('accumulate') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRGBColorPresentationTrait(), on ' + name);
+
+ assertException(function() { e.setFloatTrait('accumulate', 0) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatTrait(), on ' + name);
+ assertException(function() { e.setFloatListTrait('accumulate', []) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatListTrait(), on ' + name);
+ assertException(function() { e.setMatrixTrait('accumulate', svg.createSVGMatrixComponents(1, 0, 0, 1, 0, 0)) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getMatrixTrait(), on ' + name);
+ assertException(function() { e.setRectTrait('accumulate', svg.createSVGRect()) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRectTrait(), on ' + name);
+ assertException(function() { e.setPathTrait('accumulate', svg.createSVGPath()) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPathTrait(), on ' + name);
+ assertException(function() { e.setRGBColorTrait('accumulate', svg.createSVGRGBColor()) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRGBColorTrait(), on ' + name);
+ }
+
+ e = document.createElementNS(SVGNS, 'animate');
+ e.setAttributeNS(null, 'attributeName', 'r');
+ e.setAttributeNS(null, 'from', '0');
+ e.setAttributeNS(null, 'to', '5');
+ e.setAttributeNS(null, 'begin', '0s');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'repeatCount', '5');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ e.setTrait('accumulate', 'sum');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animate> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animate> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'animateMotion');
+ e.setAttributeNS(null, 'path', 'M0,0 L20,-7');
+ e.setAttributeNS(null, 'begin', '0s');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'repeatCount', '5');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ e.setTrait('accumulate', 'sum');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animateMotion> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animateMotion> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'animateColor');
+ e.setAttributeNS(null, 'from', 'black');
+ e.setAttributeNS(null, 'to', '#000040');
+ e.setAttributeNS(null, 'begin', '0s');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'repeatCount', '4');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ e.setTrait('accumulate', 'sum');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animateColor> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animateColor> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'animateTransform');
+ e.setAttributeNS(null, 'attributeName', 'transform');
+ e.setAttributeNS(null, 'type', 'scale');
+ e.setAttributeNS(null, 'from', '0');
+ e.setAttributeNS(null, 'to', '0.2');
+ e.setAttributeNS(null, 'begin', '0s');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'repeatCount', '5');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ e.setTrait('accumulate', 'sum');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animationTransform> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'accumulate', 'none'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animationTransform> element is in the document');
+
+ ind.setAttributeNS(null, 'fill', 'blue');
+ } catch (ex) {
+ var msg;
+ if (typeof ex == 'string') {
+ msg = ex;
+ } else if (typeof ex.message == 'string') {
+ msg = ex.message;
+ } else {
+ msg = String(ex);
+ }
+ d.textContent = ex;
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-224-t.png b/test/svg/svg1.2/svg/udom-svg-224-t.png
new file mode 100644
index 0000000..d72c198
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-224-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-224-t.svg b/test/svg/svg1.2/svg/udom-svg-224-t.svg
new file mode 100644
index 0000000..ac677ce
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-224-t.svg
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="CM" desc="Test trait access for 'begin'" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-svg-224-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests trait access methods on the <b>TraitAccess</b> interface
+ for the 'begin' trait. Each trait getter and setter method is called on
+ each applicable SVG Tiny 1.2 element.
+ </p>
+ <p>
+ The test is passed if, five seconds after the document begins:
+ </p>
+ <ul>
+ <li>the rectangle is blue,</li>
+ <li>
+ there is a blue circle to the right of the rectangle whose
+ diameter is the same as the height of the rectangle,
+ </li>
+ <li>an animation showing rotating rectangles to the right of the circle begins,</li>
+ <li>a video showing a dog to the right of the animation begins, and</li>
+ <li>an audio clip begins playing.</li>
+ </ul>
+ <p>
+ Also, there must be no text displayed inside the rounded green rectangle.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-224-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='42'>Trait access test: begin</text>
+ <rect xml:id='ind' x='10' y='60' width='50' height='50' fill='red'/>
+ <text xml:id='d' x='10' y='180' font-size='9px'/>
+ <circle xml:id='c1' cx='35' cy='85' r='5' fill='red' transform='scale(0.2)' fill-opacity='0.2'/>
+ <rect x="4" y="150" width="472" height="150" fill="none" stroke="green" stroke-width="2" rx="8"/>
+ <script type='application/ecmascript'>
+ <![CDATA[
+ SVGNS = 'http://www.w3.org/2000/svg';
+
+ function assertTrue(b, msg) {
+ if (!b) {
+ throw msg;
+ }
+ }
+
+ function assertException(f, code, msg) {
+ try {
+ f();
+ } catch (e) {
+ if (e.code == code) {
+ return;
+ }
+ throw 'Incorrect exception code: (' + e.code + '/' + code+') ' + msg;
+ }
+ throw 'No exception thrown: ' + msg;
+ }
+
+ var svg = document.documentElement;
+
+ // Get all of the elements.
+ var ids = 'ind d c1'.split(' ');
+ for (var i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ // Elements this trait applies to.
+ var applicableElementNames = [ 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'animation', 'audio', 'discard', 'set', 'video'];
+
+ var e;
+ try {
+ for (var i in applicableElementNames) {
+
+ name = applicableElementNames[i];
+
+ e = document.createElementNS(SVGNS, name);
+
+ assertException(function() { e.setTrait('begin', 'invalid') }, DOMException.INVALID_ACCESS_ERR, 'set invalid value using setTrait(), on ' + name);
+ assertException(function() { e.setTraitNS(null, 'begin', 'invalid') }, DOMException.INVALID_ACCESS_ERR, 'set invalid value using setTraitNS(), on ' + name);
+
+ assertException(function() { e.getTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getTrait(), on ' + name);
+ assertException(function() { e.getTraitNS(null, 'begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getTrait(), on ' + name);
+ assertException(function() { e.getFloatTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatTrait(), on ' + name);
+ //assertException(function() { e.getFloatListTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatListTrait(), on ' + name);
+ assertException(function() { e.getMatrixTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getMatrixTrait(), on ' + name);
+ assertException(function() { e.getRectTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRectTrait(), on ' + name);
+ assertException(function() { e.getPathTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPathTrait(), on ' + name);
+ assertException(function() { e.getRGBColorTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRGBColorTrait(), on ' + name);
+
+ assertException(function() { e.getPresentationTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPresentationTrait(), on ' + name);
+ assertException(function() { e.getPresentationTraitNS(null, 'begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPresentationTrait(), on ' + name);
+ assertException(function() { e.getFloatPresentationTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatPresentationTrait(), on ' + name);
+ //assertException(function() { e.getFloatListPresentationTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatListPresentationTrait(), on ' + name);
+ assertException(function() { e.getMatrixPresentationTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getMatrixPresentationTrait(), on ' + name);
+ assertException(function() { e.getRectPresentationTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRectPresentationTrait(), on ' + name);
+ assertException(function() { e.getPathPresentationTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPathPresentationTrait(), on ' + name);
+ assertException(function() { e.getRGBColorPresentationTrait('begin') }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRGBColorPresentationTrait(), on ' + name);
+
+
+ assertException(function() { e.setFloatTrait('begin', 0) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatTrait(), on ' + name);
+ //assertException(function() { e.setFloatListTrait('begin', []) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getFloatListTrait(), on ' + name);
+ assertException(function() { e.setMatrixTrait('begin', svg.createSVGMatrixComponents(1, 0, 0, 1, 0, 0)) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getMatrixTrait(), on ' + name);
+ assertException(function() { e.setRectTrait('begin', svg.createSVGRect()) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRectTrait(), on ' + name);
+ assertException(function() { e.setPathTrait('begin', svg.createSVGPath()) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getPathTrait(), on ' + name);
+ assertException(function() { e.setRGBColorTrait('begin', svg.createSVGRGBColor(0,0,0)) }, DOMException.TYPE_MISMATCH_ERR, 'incorrect get value using getRGBColorTrait(), on ' + name);
+ }
+
+
+ e = document.createElementNS(SVGNS, 'animate');
+ e.setTrait('begin', '5s');
+ e.setAttributeNS(null, 'attributeName', 'r');
+ e.setAttributeNS(null, 'from', '0');
+ e.setAttributeNS(null, 'to', '25');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animate> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animate> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'animateColor');
+ e.setTraitNS(null, 'begin', '5s');
+ e.setAttributeNS(null, 'attributeName', 'fill');
+ e.setAttributeNS(null, 'from', 'black');
+ e.setAttributeNS(null, 'to', '#0000ff');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animateColor> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animateColor> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'animateTransform');
+ e.setTrait('begin', '5s');
+ e.setAttributeNS(null, 'attributeName', 'transform');
+ e.setAttributeNS(null, 'type', 'scale');
+ e.setAttributeNS(null, 'from', '0');
+ e.setAttributeNS(null, 'to', '1');
+ e.setAttributeNS(null, 'begin', '0s');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animateTransform> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animateTransform> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'animateMotion');
+ e.setTrait('begin', '5s');
+ e.setAttributeNS(null, 'path', 'M0,0 L100,0');
+ e.setAttributeNS(null, 'from', '0');
+ e.setAttributeNS(null, 'to', '1');
+ e.setAttributeNS(null, 'dur', '0.1s');
+ e.setAttributeNS(null, 'fill', 'freeze');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animateMotion> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animateMotion> element is in the document');
+
+
+ e = document.createElementNS(SVGNS, 'animation');
+
+ e.setTrait('begin', '5s');
+ e.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '../images/animationresource-anim1.svg');
+ e.setAttributeNS(null, 'x', '165');
+ e.setAttributeNS(null, 'y', '60');
+ e.setAttributeNS(null, 'width', '50');
+ e.setAttributeNS(null, 'height', '50');
+ e.setAttributeNS(null, 'repeatCount', 'indefinite');
+ c1.appendChild(e);
+
+
+ // XXX Not true yet, see http://www.w3.org/mid/20080212041331 GE7358 arc mcc id au
+ // assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <animation> element is in the document');
+ // assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <animation> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'audio');
+ e.setTrait('begin', '5s');
+ e.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '../images/boing_x.wav');
+ c1.appendChild(e);
+
+ // XXX Not true yet, see http://www.w3.org/mid/20080212041331 GE7358 arc mcc id au
+ // assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <audio> element is in the document');
+ // assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <audio> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'set');
+ e.setTrait('begin', '5s');
+ e.setAttributeNS(null, 'attributeName', 'fill-opacity');
+ e.setAttributeNS(null, 'to', '1');
+ c1.appendChild(e);
+
+ assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <set> element is in the document');
+ assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <set> element is in the document');
+
+ e = document.createElementNS(SVGNS, 'video');
+ e.setTrait('begin', '5s');
+ e.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '../images/dogandball.3gp');
+ e.setAttributeNS(null, 'x', '225');
+ e.setAttributeNS(null, 'y', '60');
+ e.setAttributeNS(null, 'width', '50');
+ e.setAttributeNS(null, 'height', '50');
+ e.setAttributeNS(null, 'repeatCount', 'indefinite');
+ c1.appendChild(e);
+
+ // XXX Not true yet, see http://www.w3.org/mid/20080212041331 GE7358 arc mcc id au
+ // assertException(function() { e.setTrait('begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTrait() while <video> element is in the document');
+ // assertException(function() { e.setTraitNS(null, 'begin', '0s'); }, DOMException.NOT_SUPPORTED_ERR, 'setTraitNS() while <video> element is in the document');
+
+ ind.setAttributeNS(null, 'fill', 'blue');
+ } catch (ex) {
+ var msg;
+ if (typeof ex == 'string') {
+ msg = ex;
+ } else {
+ msg = String(ex);
+ }
+ d.textContent = ex;
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-225-t.png b/test/svg/svg1.2/svg/udom-svg-225-t.png
new file mode 100644
index 0000000..415822b
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-225-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-225-t.svg b/test/svg/svg1.2/svg/udom-svg-225-t.svg
new file mode 100644
index 0000000..3098de4
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-225-t.svg
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="480" height="360"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ED" desc="Test getScreenCTM when the CTM is being animated" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-svg-225-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test verifies that the CTM fetched by getScreenCTM is a snapshot value of the current animated state.
+
+ The CTM values are inspected on 'beginEvent', 'endEvent' and 'repeatEvent' times. The expected values are
+ calculated from the SMIL Animation equations and the current document time.
+
+ The test has passed if the testcase reports "Results match expected values." 8 times, and each such string
+ is prefixed with a green rectangle. When this happens the text in the rect with blue stroke changes from
+ 'failed' to 'passed'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-225-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 12;
+ var fontSize = "10";
+ var isPassed = new Array();
+ var eps = 1 / 65535; // 16.16 fixpoint epsilon
+
+ function drawString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ node_to_insert.setAttributeNS(null,"x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function drawStatusBox( status )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"rect");
+ node_to_insert.setAttributeNS(null,"x","10");
+ var yVal = ( startY - (rowHeight/2) ) + ( count - 1 ) * ( rowHeight );
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "width", rowHeight / 2 );
+ node_to_insert.setAttributeNS(null, "height", rowHeight / 2 );
+ if ( status )
+ {
+ node_to_insert.setAttributeNS(null, "fill", "green" );
+ }
+ else
+ {
+ node_to_insert.setAttributeNS(null, "fill", "red" );
+ }
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ drawString( "Results match expected values." );
+ drawStatusBox( true );
+ isPassed.push(true);
+ }
+ else
+ {
+ isPassed.push(false);
+ drawString( "Results do not match expected values!" );
+ drawString( "expected: " + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString() );
+ drawStatusBox( false );
+ }
+ }
+
+ function verifyMatrix2( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs( matrix.getComponent(0) - expected.getComponent(0) ) < epsilon ) &&
+ ( Math.abs( matrix.getComponent(1) - expected.getComponent(1) ) < epsilon ) &&
+ ( Math.abs( matrix.getComponent(2) - expected.getComponent(2) ) < epsilon ) &&
+ ( Math.abs( matrix.getComponent(3) - expected.getComponent(3) ) < epsilon ) &&
+ ( Math.abs( matrix.getComponent(4) - expected.getComponent(4) ) < epsilon ) &&
+ ( Math.abs( matrix.getComponent(5) - expected.getComponent(5) ) < epsilon )
+ )
+ {
+ drawString( "Results match expected values." );
+ drawStatusBox( true );
+ isPassed.push(true);
+ }
+ else
+ {
+ isPassed.push(false);
+ drawString( "Results do not match expected values!" );
+ drawString( "expected: " + expected.getComponent(0).toFixed(1) + " "
+ + expected.getComponent(1).toFixed(1) + " "
+ + expected.getComponent(2).toFixed(1) + " "
+ + expected.getComponent(3).toFixed(1) + " "
+ + expected.getComponent(4).toFixed(1) + " "
+ + expected.getComponent(5).toFixed(1) );
+ drawString( "got: " + matrix.getComponent(0).toFixed(1) + " "
+ + matrix.getComponent(1).toFixed(1) + " "
+ + matrix.getComponent(2).toFixed(1) + " "
+ + matrix.getComponent(3).toFixed(1) + " "
+ + matrix.getComponent(4).toFixed(1) + " "
+ + matrix.getComponent(5).toFixed(1) );
+ drawStatusBox( false );
+ }
+ }
+ ]]>
+ </handler>
+
+ <rect xml:id="rect1" transform="translate(240 160)" x="-60" y="-40" width="120" height="80" fill="green">
+ <animateTransform attributeName="transform" type="translate" values="0 0;10 10;20 30" dur="2s" begin="0s">
+ <handler xe:event="beginEvent">
+ var ctm = document.getElementById( "rect1" ).getScreenCTM( );
+ var expected = [ 1, 0, 0, 1, 0, 0 ];
+ verifyMatrix(ctm, expected, eps);
+ </handler>
+ <handler xe:event="endEvent">
+ var ctm = document.getElementById( "rect1" ).getScreenCTM( );
+ var expected = [ 1, 0, 0, 1, 240, 160 ];
+ verifyMatrix(ctm, expected, eps);
+ </handler>
+ </animateTransform>
+ </rect>
+
+ <animate attributeName="dummy" dur="0.5s" begin="0s" repeatCount="4">
+ <handler xe:event="repeatEvent">
+ <![CDATA[
+ var ctm = document.getElementById( "rect2" ).getScreenCTM( );
+
+ // using equations from SMIL:
+ // http://www.w3.org/TR/2005/REC-SMIL2-20051213/animation.html#adef-values
+
+ var t = document.documentElement.getCurrentTime();
+ var angle = 35;
+ if(t < 2)
+ angle = 360*(t/2);
+
+ var di = 2 / (5-1);
+ var i = Math.floor((t*5)/2);
+ var ti = di * i;
+ var vals = [0, 1, 2, 1, 0];
+ var scale = vals[i] + (vals[i+1]-vals[i]) * (t - ti) / di;
+
+ var expected = document.documentElement.createSVGMatrixComponents(1,0,0,1,0,0);
+ expected.mScale(0.1);
+ expected.mTranslate(3000,1000);
+ if(t > 0)
+ {
+ expected.mTranslate(240,160);
+ }
+ expected.mRotate(angle);
+ if(t > 0)
+ {
+ expected.mTranslate(-240,-160);
+ }
+ expected.mScale(scale);
+
+ verifyMatrix2(ctm, document.getElementById( "rect2" ).getScreenCTM( ), eps);
+ verifyMatrix2(ctm, expected, eps);
+ ]]>
+ </handler>
+ <handler xe:event="endEvent">
+ <![CDATA[
+ if( isPassed.length == 8 )
+ {
+ var fullpass = true;
+ for(var i = 0; i < isPassed.length; i++)
+ if(!isPassed[i])
+ fullpass = false;
+
+ if(fullpass)
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait( "#text", "passed" );
+ }
+ }
+ ]]>
+ </handler>
+ </animate>
+
+ <g xml:id="g1" transform="scale(0.1) translate(3000 1000)">
+ <g xml:id="g2" transform="rotate(35)">
+ <animateTransform attributeName="transform" type="rotate" values="0 240 160;360 240 160" dur="2s" begin="0s" repeatCount="2"/>
+ <rect xml:id="rect2" width="100" height="100" fill="green">
+ <animateTransform attributeName="transform" type="scale" values="0;1;2;1;0" dur="2s" begin="0s" repeatCount="2" additive="sum"/>
+ </rect>
+ </g>
+ </g>
+
+ <text x="240" y="40" text-anchor="middle" >SVGLocatable.getScreenCTM - animated test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/udom-svg-226-t.png b/test/svg/svg1.2/svg/udom-svg-226-t.png
new file mode 100644
index 0000000..e98c779
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-226-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-226-t.svg b/test/svg/svg1.2/svg/udom-svg-226-t.svg
new file mode 100644
index 0000000..f8b8fb6
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-226-t.svg
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AE" desc="Test SVGSVGElement.getCurrentTime" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svg-226-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Four animations begin at time 0 and end at times 1, 2, 5 and 9 seconds. Event listeners are registered
+ for the "endEvent" event.
+ As each animation ends, getCurrentTime() is called and verified with the expected time. The expected time is compared with
+ the minimum time to take into account implementation-specific document time resolution.
+ If all times have the expected values, the text changes from 'testing' to 'passed'
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-226-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var topsvg = document.documentElement;
+ var isPassed = true;
+
+ function drawString( text, id)
+ {
+ var text_element = document.getElementById(id);
+ if (isPassed)
+ {
+ text_element.setAttribute("fill", "#0C0");
+ }
+ else
+ {
+ text_element.textContent = text;
+ text_element.setAttribute("fill", "#F00");
+ }
+ }
+
+ function updateStatus()
+ {
+ var status = document.getElementById("TestStatus");
+ if ( isPassed )
+ {
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "#0C0");
+ }
+ else
+ {
+ status.setTrait("#text", "failed");
+ status.setAttribute("fill", "#F00");
+ }
+ }
+
+ function doTimer1( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 1 )
+ {
+ drawString( "", "time_test_1");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 1", "time_test_1" );
+ }
+ }
+
+ function doTimer2( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 2)
+ {
+ drawString( "", "time_test_2");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 2", "time_test_2" );
+ }
+ }
+
+ function doTimer3( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 5 )
+ {
+ drawString( "", "time_test_5");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 5", "time_test_5" );
+ }
+ }
+
+ function doTimer4( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 9 )
+ {
+ drawString( "", "time_test_9");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 9", "time_test_9" );
+ }
+
+ updateStatus();
+ }
+
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "testing");
+
+ try
+ {
+ document.getElementById("animationTimer1").addEventListener("endEvent", doTimer1, false);
+ document.getElementById("animationTimer2").addEventListener("endEvent", doTimer2, false);
+ document.getElementById("animationTimer3").addEventListener("endEvent", doTimer3, false);
+ document.getElementById("animationTimer4").addEventListener("endEvent", doTimer4, false);
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!", "test_status");
+ }
+ ]]>
+ </handler>
+
+ <defs>
+ <g xml:id="myScale">
+ <line x1="0" y1="0" x2="100" y2="0" stroke="black" stroke-width="3"/>
+ <g text-anchor="middle" transform="translate(0,10)" font-size="8" fill="#555">
+ <text x="0">0</text>
+ <text x="10">1</text>
+ <text x="20">2</text>
+ <text x="30">3</text>
+ <text x="40">4</text>
+ <text x="50">5</text>
+ <text x="60">6</text>
+ <text x="70">7</text>
+ <text x="80">8</text>
+ <text x="90">9</text>
+ <text x="100">10</text>
+ </g>
+ </g>
+ </defs>
+
+ <text x="240" y="40" text-anchor="middle">SVGSVGElement.getCurrentTime() - basic test</text>
+ <g xml:id="anim2" transform="translate( 200, 75)">
+ <use xlink:href="#myScale"/>
+ <rect transform="translate(-2.5,-7)" width="5" height="14" fill="blue" fill-opacity="0.4" >
+ <animate attributeName="x" from="0" to="100" dur="10" fill="freeze"/>
+ </rect>
+
+ <animate xml:id="animationTimer1" attributeName="display" begin="0" dur="1s" from="inline" to="inline"/>
+ <animate xml:id="animationTimer2" attributeName="display" begin="0" dur="2s" from="inline" to="inline"/>
+ <animate xml:id="animationTimer3" attributeName="display" begin="0" dur="5s" from="inline" to="inline"/>
+ <animate xml:id="animationTimer4" attributeName="display" begin="0" dur="9s" from="inline" to="inline"/>
+
+ </g>
+
+ <g fill="black">
+ <text xml:id="time_test_1" x="20" y="160">currentTime: 1</text>
+ <text xml:id="time_test_2" x="20" y="180">currentTime: 2</text>
+ <text xml:id="time_test_5" x="20" y="200">currentTime: 5</text>
+ <text xml:id="time_test_9" x="20" y="220">currentTime: 9</text>
+ </g>
+
+ <rect x="200" y="100" width="100" height="30" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="225" y="120">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-227-t.png b/test/svg/svg1.2/svg/udom-svg-227-t.png
new file mode 100644
index 0000000..c7726b8
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-227-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-227-t.svg b/test/svg/svg1.2/svg/udom-svg-227-t.svg
new file mode 100644
index 0000000..dfe5ac5
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-227-t.svg
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="AE" desc="Test SVGSVGElement.setCurrentTime" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-svg-227-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests setCurrentTime. The test is passed if the the moving bar skips
+ from 2 to 4 , and from 5 to 8; and after the animation completes, the
+ text "passed" appears at the bottom right.
+ </p>
+ <p>
+ Four animations begin at time 0 and end at times 1, 2, 5 and 9 seconds.
+ Event listeners are registered for the "endEvent" event.
+ As each animation ends, getCurrentTime() is called to verify the expected current time, which
+ is them followed by a call to setCurrentTime.
+ If all times have the expected values, the text changes from 'testing' to 'passed'
+ The expected time is compared with
+ the minimum time to take into account implementation-specific document time resolution.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-227-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var translate = topsvg.currentTranslate;
+
+ var startY = 80;
+ var rowHeight = 15;
+ var fontSize = "10";
+ var isPassed = true;
+
+ function drawString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size", fontSize);
+ node_to_insert.setAttributeNS(null,"x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function updateStatus()
+ {
+ var status = document.getElementById("TestStatus");
+ if ( isPassed )
+ {
+ status.setTrait("#text", "passed");
+ }
+ else
+ {
+ status.setTrait("#text", "failed");
+ }
+ }
+
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "testing");
+
+
+ {
+
+ function doTimer1( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 1 )
+ {
+ drawString( "currentTime: 1");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 1" );
+ }
+ }
+
+ function doTimer2( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 2 )
+ {
+ drawString( "currentTime: 2");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 2" );
+ }
+
+ drawString( "setCurrentTime to 4" );
+ topsvg.setCurrentTime( 4 );
+
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 4 )
+ {
+ drawString( "currentTime: 4");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 4" );
+ }
+ }
+
+ function doTimer3( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 5 )
+ {
+ drawString( "currentTime: 5");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 5" );
+ }
+
+ drawString( "setCurrentTime to 8" );
+ topsvg.setCurrentTime( 8 );
+
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 8 )
+ {
+ drawString( "currentTime: 8");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 1" );
+ }
+ }
+
+ function doTimer4( )
+ {
+ curTime = topsvg.getCurrentTime( );
+ if ( curTime >= 9 && curTime < 9.1 )
+ {
+ drawString( "currentTime: 9");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "currentTime: " + curTime + ", expecting 2" );
+ }
+
+ updateStatus();
+ }
+
+
+ document.getElementById("animationTimer1").addEventListener("endEvent", doTimer1, false);
+ document.getElementById("animationTimer2").addEventListener("endEvent", doTimer2, false);
+ document.getElementById("animationTimer3").addEventListener("endEvent", doTimer3, false);
+ document.getElementById("animationTimer4").addEventListener("endEvent", doTimer4, false);
+
+ drawString( "currentTime: " + topsvg.getCurrentTime( ) );
+ }
+
+ ]]>
+ </handler>
+
+ <defs>
+ <g xml:id="myScale">
+ <line x1="0" y1="0" x2="100" y2="0" stroke="black" stroke-width="3"/>
+ <g text-anchor="middle" transform="translate(0,10)" font-size="8" fill="#555">
+ <text x="0">0</text>
+ <text x="10">1</text>
+ <text x="20">2</text>
+ <text x="30">3</text>
+ <text x="40">4</text>
+ <text x="50">5</text>
+ <text x="60">6</text>
+ <text x="70">7</text>
+ <text x="80">8</text>
+ <text x="90">9</text>
+ <text x="100">10</text>
+ </g>
+ </g>
+ </defs>
+
+ <g>
+ <text x="240" y="40" text-anchor="middle">SVGSVGElement.setCurrentTime() - basic test</text>
+ <g xml:id="anim2" transform="translate( 200, 75 )">
+ <use xlink:href="#myScale"/>
+ <rect transform="translate(-2.5,-7)" width="5" height="14" fill="blue" fill-opacity="0.4" >
+ <animate attributeName="x" from="0" to="100" dur="10" fill="freeze"/>
+ </rect>
+ <animate xml:id="animationTimer1" attributeName="display" begin="0" dur="1s" from="inline" to="inline"/>
+ <animate xml:id="animationTimer2" attributeName="display" begin="0" dur="2s" from="inline" to="inline"/>
+ <animate xml:id="animationTimer3" attributeName="display" begin="0" dur="5s" from="inline" to="inline"/>
+ <animate xml:id="animationTimer4" attributeName="display" begin="0" dur="9s" from="inline" to="inline"/>
+ </g>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-228-t.png b/test/svg/svg1.2/svg/udom-svg-228-t.png
new file mode 100644
index 0000000..918162f
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-228-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-228-t.svg b/test/svg/svg1.2/svg/udom-svg-228-t.svg
new file mode 100644
index 0000000..9522213
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-228-t.svg
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AE" desc="Test " status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-svg-228-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This tests setFocus and getCurrentFocusedObject, setting the focus and then checking that the correct element has focus. Successes are shown in green,
+ failures in red. If all subtests pass, the text in the blue box changes from "failed" to "passed".
+ </p>
+ <p>
+ A numeric keypad is shown. Focus starts on the "5" and is then moved programatically
+ to each of the other numbers, finally returning to "5". Since this happens on the load event, there is no indication of the focus moving.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-228-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var translate = topsvg.currentTranslate;
+ var startY = 80;
+ var fontSize = "8";
+ var rowHeight = 15;
+ var isPassed = true;
+
+ function drawString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ node_to_insert.setAttributeNS(null,"x","25");
+ if (isPassed)
+ {
+ node_to_insert.setAttributeNS(null, "fill", "#0C0");
+ }
+ else
+ {
+ node_to_insert.setAttributeNS(null, "fill", "#F00");
+ }
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function getNavStr( nav )
+ {
+ var str = "UNDEFINED";
+ switch( nav )
+ {
+ case SVGSVGElement.NAV_DOWN:
+ str = "NAV_DOWN";
+ break;
+ case SVGSVGElement.NAV_UP:
+ str = "NAV_UP";
+ break;
+ case SVGSVGElement.NAV_LEFT:
+ str = "NAV_LEFT";
+ break;
+ case SVGSVGElement.NAV_RIGHT:
+ str = "NAV_RIGHT";
+ break;
+ case SVGSVGElement.NAV_DOWN_RIGHT:
+ str = "NAV_DOWN_RIGHT";
+ break;
+ case SVGSVGElement.NAV_UP_LEFT:
+ str = "NAV_UP_LEFT";
+ break;
+ case SVGSVGElement.NAV_DOWN_LEFT:
+ str = "NAV_DOWN_LEFT";
+ break;
+ case SVGSVGElement.NAV_UP_RIGHT:
+ str = "NAV_UP_RIGHT";
+ break;
+ }
+ return str;
+ }
+
+ iterations = [ "t3", "t7", "t2", "t8", "t6", "t4", "t1", "t9", "t5" ];
+ itercount = 9;
+
+ function doIter( iterpos )
+ {
+ topsvg.setFocus( document.getElementById ( iterations[iterpos] ) );
+ if ( topsvg.getCurrentFocusedObject().id != iterations[iterpos] )
+ {
+ isPassed = false;
+ drawString( "setFocus: " + iterations[iterpos] + " currentFocus: " + topsvg.getCurrentFocusedObject().id + ", expected " + iterations[iterpos]);
+ }
+ else
+ {
+ drawString( "setFocus: " + iterations[iterpos] + " currentFocus: " + topsvg.getCurrentFocusedObject().id );
+ }
+ }
+
+ drawString( "setFocus: t7" );
+ topsvg.setFocus( document.getElementById( "t7" ) );
+
+ try
+ {
+ for(iterpos = 0; iterpos < itercount; ++iterpos)
+ {
+ doIter( iterpos );
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString( "error: unexpected exception!");
+ }
+
+ var status = document.getElementById("TestStatus");
+
+ if ( isPassed )
+ {
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "#0C0");
+ }
+ else
+ {
+ status.setAttribute("fill", "#F00");
+ }
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGSVGElement.setFocus() and</text>
+ <text x="240" y="60" text-anchor="middle" >getCurrentFocusedObject()</text>
+
+ <g text-anchor="middle">
+ <g transform="translate(250,-60) scale(3.5,3)">
+ <text xml:id="t7" x="10" y="60" text-anchor="middle" nav-up="#t1" nav-down="#t4" nav-right="#t8" nav-left="#t9" nav-up-right="#t2" nav-down-right="#t5" nav-up-left="#t3" nav-down-left="#t6" nav-next="#t8" nav-prev="#t6">
+ 7
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t8" x="30" y="60" text-anchor="middle" nav-up="#t2" nav-down="#t5" nav-right="#t9" nav-left="#t7" nav-up-right="#t3" nav-down-right="#t6" nav-up-left="#t1" nav-down-left="#t4" nav-next="#t9" nav-prev="#t7">
+ 8
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t9" x="50" y="60" text-anchor="middle" nav-up="#t3" nav-down="#t6" nav-right="#t7" nav-left="#t8" nav-up-right="#t1" nav-down-right="#t4" nav-up-left="#t2" nav-down-left="#t5" nav-next="#t1" nav-prev="#t8">
+ 9
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t4" x="10" y="80" text-anchor="middle" nav-up="#t7" nav-down="#t1" nav-right="#t5" nav-left="#t6" nav-up-right="#t8" nav-down-right="#t2" nav-up-left="#t9" nav-down-left="#t3" nav-next="#t5" nav-prev="#t3">
+ 4
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t5" x="30" y="80" text-anchor="middle" nav-up="#t8" nav-down="#t2" nav-right="#t6" nav-left="#t4" nav-up-right="#t9" nav-down-right="#t3" nav-up-left="#t7" nav-down-left="#t1" nav-next="#t6" nav-prev="#t4">
+ 5
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t6" x="50" y="80" text-anchor="middle" nav-up="#t9" nav-down="#t3" nav-right="#t4" nav-left="#t5" nav-up-right="#t7" nav-down-right="#t1" nav-up-left="#t8" nav-down-left="#t2" nav-next="#t7" nav-prev="#t5">
+ 6
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t1" x="10" y="100" text-anchor="middle" nav-up="#t4" nav-down="#t7" nav-right="#t2" nav-left="#t3" nav-up-right="#t5" nav-down-right="#t8" nav-up-left="#t6" nav-down-left="#t9" nav-next="#t2" nav-prev="#t9">
+ 1
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t2" x="30" y="100" text-anchor="middle" nav-up="#t5" nav-down="#t8" nav-right="#t3" nav-left="#t1" nav-up-right="#t6" nav-down-right="#t9" nav-up-left="#t4" nav-down-left="#t7" nav-next="#t3" nav-prev="#t1">
+ 2
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ <text xml:id="t3" x="50" y="100" text-anchor="middle" nav-up="#t6" nav-down="#t9" nav-right="#t1" nav-left="#t2" nav-up-right="#t4" nav-down-right="#t7" nav-up-left="#t5" nav-down-left="#t8" nav-next="#t4" nav-prev="#t2">
+ 3
+ <set attributeName="fill" to="green" begin="focusin"/>
+ <set attributeName="fill" to="black" begin="focusout"/>
+ </text>
+ </g>
+ </g>
+
+ <rect x="25" y="230" width="70" height="25" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="60" y="247" text-anchor="middle">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-231-t.png b/test/svg/svg1.2/svg/udom-svg-231-t.png
new file mode 100644
index 0000000..e1c1807
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-231-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-231-t.svg b/test/svg/svg1.2/svg/udom-svg-231-t.svg
new file mode 100644
index 0000000..6766f17
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-231-t.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AE" desc="Test SVG Traits" status="accepted"
+ approved="yes"
+ version="$Revision: 1.11 $" testname="$RCSfile: udom-svg-231-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The TraitAccess tests uses a set of common ECMAScript code to test various trait combinations with expected values. If a result is not as expected, an error is displayed in red text, indicating the returned result and what was expected. When all subtests have returned success, the result is set to 'passed'. The pass condition for the test is that all subtests are green, and the word 'passed' is at the bottom right.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-231-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="40" text-anchor="middle" >TraitAccess.setRGBColorTrait() / getRGBColorTrait()</text>
+
+ <rect xml:id="rect1" x="300" y="20" width="10" height="1" fill="#ff1234"/>
+ <rect xml:id="rect2" x="0" y="0" width="0" height="0"/>
+
+ <path xml:id="path1"/>"
+
+ </g>
+
+ <rect xml:id="UnitTest" x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="UnitTestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+
+ <rect x="1" y="1" width="478" height="358" stroke="black" stroke-width="1" fill="none"/>
+
+ <g>
+ <script xlink:href="../images/TraitAccess.common.es" type="text/ecmascript" />
+ </g>
+
+ <g xml:id="test-start">
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ try
+ {
+ rowHeight = 10;
+ fontSize = 8;
+
+ var rect1 = document.getElementById( "rect1" );
+ var rect2 = document.getElementById( "rect2" );
+ var path1 = document.getElementById( "path1" );
+
+ var fill1 = topsvg.createSVGRGBColor( 255, 18, 52 );
+ var fill2 = topsvg.createSVGRGBColor( 0, 0, 0 );
+
+ var p1 = topsvg.createSVGPath();
+ p1.moveTo( 10, 10 );
+ p1.lineTo( 20, 20 );
+ p1.close();
+
+ var alphas = "abcdefghijklmnopPQRSTUVWXYZ";
+
+ runSetTraitIters
+ (
+ [
+ new setTraitIter ( "a01" , "setRGBColorTrait" , "getRGBColorTrait" , 0 , rect1 , "fill" , fill1 , fill1 , 0 , 0 , 0 )
+ , new setTraitIter ( "a02" , "setRGBColorTrait" , "getRGBColorTrait" , 0 , rect2 , "fill" , fill2 , fill2 , 0 , 0 , 0 )
+
+ , new setTraitIter ( "a03" , "setRGBColorTrait" , 0 , 0 , path1 , "d" , p1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a04" , "setRGBColorTrait" , 0 , 0 , rect1 , "x" , p1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a05" , "setRGBColorTrait" , 0 , 0 , rect1 , "x" , p1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a06" , "setRGBColorTrait" , 0 , 0 , rect1 , "fill" , null , 0 , 0 , DOMException.INVALID_ACCESS_ERR , "INVALID_ACCESS_ERR" )
+ , new setTraitIter ( "a07" , "setRGBColorTrait" , 0 , 0 , rect1 , "fill" , alphas , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a09" , "setRGBColorTrait" , 0 , 0 , rect1 , "fill" , "" , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a10" , "setRGBColorTrait" , 0 , 0 , rect1 , null , fill1 , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ , new setTraitIter ( "a11" , "setRGBColorTrait" , 0 , 0 , rect1 , "foo" , fill1 , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ ]
+ );
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Main: Unexpected exception thrown! " , "red");
+ }
+
+ if( isPassed )
+ {
+ var status = document.getElementById("UnitTestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "#0C0");
+ }
+ ]]>
+ </handler>
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
\ No newline at end of file
diff --git a/test/svg/svg1.2/svg/udom-svg-232-t.png b/test/svg/svg1.2/svg/udom-svg-232-t.png
new file mode 100644
index 0000000..0f13a00
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-232-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-232-t.svg b/test/svg/svg1.2/svg/udom-svg-232-t.svg
new file mode 100644
index 0000000..68a40f9
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-232-t.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="AE" desc="Test SVG Traits" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-svg-232-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The TraitAccess tests uses a set of common ECMAScript code to test various trait combinations with expected values. If a result is not as expected, an error is displayed in red text, indicating the returned result and what was expected. When all subtests have returned success, the result is set to 'passed'. The pass condition for the test is that all subtests are green, and the word 'passed' is at the bottom right.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-232-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="240" y="40" text-anchor="middle" >TraitAccess.setMatrixTrait() / getMatrixTrait()</text>
+
+ <g xml:id="g1" audio-level="0.5" transform="translate(50,50), scale(10,10)"/>
+ <g xml:id="g2" />
+
+ <rect xml:id="UnitTest" x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="UnitTestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+
+ <rect x="1" y="1" width="478" height="358" stroke="black" stroke-width="1" fill="none"/>
+
+ <g>
+ <script xlink:href="../images/TraitAccess.common.es" type="text/ecmascript" />
+ </g>
+
+ <rect xml:id="rect1" x="10" y="10" width="1" height="1"/>
+
+ <path xml:id="path1"/>
+
+ <g xml:id="test-start">
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ try
+ {
+ rowHeight = 10;
+ fontSize = 8;
+
+ var g1 = document.getElementById( "g1" );
+ var g2 = document.getElementById( "g2" );
+ var rect1 = document.getElementById( "rect1" );
+ var path1 = document.getElementById( "path1" );
+
+
+ var g1Matrix = topsvg.createSVGMatrixComponents( 10 , 0 , 0 , 10 , 50 , 50 );
+ var g2Matrix = topsvg.createSVGMatrixComponents( 1 , 0 , 0 , 1 , 0 , 0 );
+
+ var p1 = topsvg.createSVGPath();
+ p1.moveTo( 10, 10 );
+ p1.lineTo( 20, 20 );
+ p1.close();
+
+ var alphas = "abcdefghijklmnopNOPQRSTUVWXYZ";
+
+ runSetTraitIters
+ (
+ [
+ new setTraitIter ( "a01" , "setMatrixTrait" , "getMatrixTrait" , 0 , g1 , "transform" , g1Matrix , g1Matrix , 0 , 0 , 0 )
+ , new setTraitIter ( "a03" , "setMatrixTrait" , "getMatrixTrait" , 0 , g2 , "transform" , g2Matrix , g2Matrix , 0 , 0 , 0 )
+ , new setTraitIter ( "a04" , "setMatrixTrait" , 0 , 0 , path1 , "d" , g1Matrix , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a05" , "setMatrixTrait" , 0 , 0 , path1 , "d" , p1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a05" , "setMatrixTrait" , 0 , 0 , rect1 , "x" , g1Matrix , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a05" , "setMatrixTrait" , 0 , 0 , g1 , "transform" , null , 0 , 0 , DOMException.INVALID_ACCESS_ERR , "INVALID_ACCESS_ERR" )
+ , new setTraitIter ( "a07" , "setMatrixTrait" , 0 , 0 , g1 , "transform" , alphas , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a09" , "setMatrixTrait" , 0 , 0 , g1 , "transform" , "" , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a10" , "setMatrixTrait" , 0 , 0 , g1 , null , g1Matrix , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ , new setTraitIter ( "a11" , "setMatrixTrait" , 0 , 0 , g1 , "foo" , g1Matrix , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ ]
+ );
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Main: Unexpected exception thrown! ", "red");
+ }
+
+ if( isPassed )
+ {
+ var status = document.getElementById("UnitTestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "#0C0");
+ }
+ ]]>
+ </handler>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-233-t.png b/test/svg/svg1.2/svg/udom-svg-233-t.png
new file mode 100644
index 0000000..d0e453d
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-233-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-233-t.svg b/test/svg/svg1.2/svg/udom-svg-233-t.svg
new file mode 100644
index 0000000..e93e040
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-233-t.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AG" owner="AE" desc="Test SVG Traits" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-svg-233-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The TraitAccess tests uses a set of common ECMAScript code to test various trait combinations with expected values. If a result is not as expected, an error is displayed in red text, indicating the returned result and what was expected. When all subtests have returned success, the result is set to 'passed'. The pass condition for the test is that all subtests are green, and the word 'passed' is at the bottom right.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-233-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="240" y="40" text-anchor="middle" >TraitAccess.setPathTrait() / getPathTrait()</text>
+
+ <!-- Declare objects to access path traits from -->
+ <path xml:id="path1" d="M10 10 L 20 20 Z"/>
+ <path xml:id="path2" />
+ <rect xml:id="rect1" x="10" y="10" width="1" height="1"/>
+
+ <!-- Pass/fail box -->
+ <rect xml:id="UnitTest" x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="UnitTestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+
+ <script xlink:href="../images/TraitAccess.common.es" type="text/ecmascript" />
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ try
+ {
+ rowHeight = 10;
+ fontSize = 8;
+
+ var path1 = document.getElementById( "path1" );
+ var path2 = document.getElementById( "path2" );
+ var rect1 = document.getElementById( "rect1" );
+
+ var p1 = topsvg.createSVGPath();
+ p1.moveTo( 10, 10 );
+ p1.lineTo( 20, 20 );
+ p1.close();
+
+ var p2 = topsvg.createSVGPath();
+
+ var m1 = topsvg.createSVGMatrixComponents( 10 , 0 , 0 , 10 , 50 , 50 );
+
+ var alphas = "abcdefghijklmnopqrstuvwxyz";
+
+ runSetTraitIters
+ (
+ [
+ new setTraitIter ( "a01" , "setPathTrait" , "getPathTrait" , 0 , path1 , "d" , p1 , p1 , 0 , 0 , 0 )
+ , new setTraitIter ( "a03" , "setPathTrait" , "getPathTrait" , 0 , path2 , "d" , p2 , p2 , 0 , 0 , 0 )
+
+ , new setTraitIter ( "a05" , "setPathTrait" , 0 , 0 , path1 , "d" , m1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a05" , "setPathTrait" , 0 , 0 , rect1 , "fill" , p1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a05" , "setPathTrait" , 0 , 0 , rect1 , "x" , p1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a05" , "setPathTrait" , 0 , 0 , path1 , "d" , null , 0 , 0 , DOMException.INVALID_ACCESS_ERR , "INVALID_ACCESS_ERR" )
+ , new setTraitIter ( "a07" , "setPathTrait" , 0 , 0 , path1 , "d" , alphas , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a09" , "setPathTrait" , 0 , 0 , path1 , "d" , "" , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ ,new setTraitIter ( "a10" , "setPathTrait" , 0 , 0 , path1 , null , p1 , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ ]
+ );
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Main: Unexpected exception thrown! ", "red");
+ }
+
+ if( isPassed )
+ {
+ var status = document.getElementById("UnitTestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "#0C0");
+ }
+ ]]>
+ </handler>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!-- <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-236-t.png b/test/svg/svg1.2/svg/udom-svg-236-t.png
new file mode 100644
index 0000000..9f6b6b1
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-236-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-236-t.svg b/test/svg/svg1.2/svg/udom-svg-236-t.svg
new file mode 100644
index 0000000..b8af619
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-236-t.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root"
+ width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AZ" owner="AE" desc="Test SVG Traits" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svg-236-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The TraitAccess tests uses a set of common ECMAScript code to test various trait combinations with expected values. If a result is not as expected, an error is displayed in red text, indicating the returned result and what was expected. When all subtests have returned success, the result is set to 'passed'. The pass condition for the test is that all subtests are green, and the word 'passed' is at the bottom right.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-236-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="240" y="40" text-anchor="middle" >TraitAccess.setRectTrait() / getRectTrait()</text>
+
+ <rect xml:id="targetRect" fill="none" x="300" y="20" width="10" height="1">
+ <animateMotion xml:id="animm1" accumulate="sum" additive="replace" calcMode="paced" values="0,0; 100,0" dur="10s" />
+ <animateMotion xml:id="animm2" />
+ </rect>
+
+ <g xml:id="g1" audio-level="0.5" transform="translate(50,50), scale(10,10)"/>
+ <g xml:id="g2" />
+
+ </g>
+
+ <rect xml:id="UnitTest" x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="UnitTestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+
+ <rect x="1" y="1" width="478" height="358" stroke="black" stroke-width="1" fill="none"/>
+
+ <path xml:id="path1"/>
+
+ <g>
+ <script xlink:href="../images/TraitAccess.common.es" type="text/ecmascript" />
+ </g>
+
+ <g xml:id="test-start">
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ try
+ {
+ rowHeight = 10;
+ fontSize = 8;
+
+ var path1 = document.getElementById( "path1" );
+
+ var rect = topsvg.createSVGRect();
+ rect.x = 0;
+ rect.y = 0;
+ rect.width = 480;
+ rect.height = 360;
+
+ var p1 = topsvg.createSVGPath();
+ p1.moveTo( 10, 10 );
+ p1.lineTo( 20, 20 );
+ p1.close();
+
+ var alphas = "abcdefghijklmNOPQRSTUVWXYZ";
+
+ runSetTraitIters
+ (
+ [
+ new setTraitIter ( "a01" , "setRectTrait" , "getRectTrait" , 0 , topsvg , "viewBox" , rect , rect , 0 , 0 , 0 )
+
+ , new setTraitIter ( "a02" , "setRectTrait" , 0 , 0 , path1 , "d" , rect , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a02" , "setRectTrait" , 0 , 0 , path1 , "d" , p1 , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a03" , "setRectTrait" , 0 , 0 , topsvg , "viewBox" , null , 0 , 0 , DOMException.INVALID_ACCESS_ERR , "INVALID_ACCESS_ERR" )
+ , new setTraitIter ( "a05" , "setRectTrait" , 0 , 0 , topsvg , "viewBox" , alphas , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a07" , "setRectTrait" , 0 , 0 , topsvg , "viewBox" , "" , 0 , 0 , DOMException.TYPE_MISMATCH_ERR , "TYPE_MISMATCH_ERR" )
+ , new setTraitIter ( "a08" , "setRectTrait" , 0 , 0 , topsvg , null , rect , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ , new setTraitIter ( "a09" , "setRectTrait" , 0 , 0 , topsvg , "foo" , rect , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ ]
+ );
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Main: Unexpected exception thrown! ");
+ }
+
+ if( isPassed )
+ {
+ var status = document.getElementById("UnitTestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "#0C0");
+ }
+ ]]>
+ </handler>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svg-237-t.png b/test/svg/svg1.2/svg/udom-svg-237-t.png
new file mode 100644
index 0000000..661bdfe
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svg-237-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svg-237-t.svg b/test/svg/svg1.2/svg/udom-svg-237-t.svg
new file mode 100644
index 0000000..dee45c3
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svg-237-t.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="AE" desc="Test SVG Traits" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-svg-237-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The TraitAccess tests uses a set of common ECMAScript code to test
+ various trait combinations with expected values. If a result is not as
+ expected, an error is displayed in red text, indicating the returned
+ result and what was expected. When all subtests have returned success,
+ the result is set to 'passed'. The pass condition for the test is that
+ all subtests are green, and the word 'passed' is at the bottom right.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svg-237-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect xml:id="UnitTest" x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="UnitTestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+
+ <rect x="1" y="1" width="478" height="358" stroke="black" stroke-width="1" fill="none"/>
+
+ <g>
+ <script xlink:href="../images/TraitAccess.common.es" type="text/ecmascript" />
+ </g>
+
+ <text x="240" y="40" text-anchor="middle" >TraitAccess - methods supported by "accumulate"</text>
+
+ <rect xml:id="targetRect" fill="none" x="300" y="20" width="10" height="1">
+ <animateMotion xml:id="animm1" accumulate="sum" additive="replace" calcMode="paced" values="0,0; 100,0" dur="10s" />
+ <animateMotion xml:id="animm2" additive="replace" calcMode="paced" values="0,0; 100,0" dur="10s" />
+ </rect>
+
+ <g xml:id="test-start">
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ try
+ {
+ rowHeight = 10;
+ fontSize = 8;
+
+ var animm1 = document.getElementById( "animm1" );
+ var animm2 = document.getElementById( "animm2" );
+
+ document.getElementById( "targetRect" ).removeChild( animm1 );
+
+ runGetTraitIters
+ (
+ [
+ new getTraitIter ( "a01" , "getTrait" , 0 , animm1 , "accumulate" , "sum" , 0 , 0 , 0 )
+ , new getTraitIter ( "a02" , "getTraitNS" , null , animm1 , "accumulate" , "sum" , 0 , 0 , 0 )
+ , new getTraitIter ( "a03" , "getPresentationTrait" , 0 , animm1 , "accumulate" , "sum" , 0 , 0 , 0 )
+ , new getTraitIter ( "a04" , "getPresentationTraitNS" , null , animm1 , "accumulate" , "sum" , 0 , 0 , 0 )
+ , new getTraitIter ( "a05" , "getTrait" , 0 , animm2 , "accumulate" , "none" , 0 , 0 , 0 )
+ , new getTraitIter ( "a06" , "getTraitNS" , null , animm2 , "accumulate" , "none" , 0 , 0 , 0 )
+ , new getTraitIter ( "a07" , "getPresentationTrait" , 0 , animm2 , "accumulate" , "none" , 0 , 0 , 0 )
+ , new getTraitIter ( "a08" , "getPresentationTraitNS" , null , animm2 , "accumulate" , "none" , 0 , 0 , 0 )
+ ]
+ );
+
+ runSetTraitIters
+ (
+ [
+ new setTraitIter ( "b01" , "setTrait" , "getTrait" , 0 , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b02" , "setTrait" , "getTraitNS" , null , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b03" , "setTrait" , "getPresentationTrait" , 0 , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b04" , "setTrait" , "getPresentationTraitNS" , null , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b05" , "setTraitNS" , "getTrait" , null , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b06" , "setTraitNS" , "getTraitNS" , null , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b07" , "setTraitNS" , "getPresentationTrait" , null , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b08" , "setTraitNS" , "getPresentationTraitNS" , null , animm1 , "accumulate" , "none" , "none" , 0 , 0 , 0 )
+ , new setTraitIter ( "b09" , "setTrait" , 0 , 0 , animm2 , "accumulate" , "none" , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ , new setTraitIter ( "b10" , "setTraitNS" , 0 , null , animm2 , "accumulate" , "none" , 0 , 0 , DOMException.NOT_SUPPORTED_ERR , "NOT_SUPPORTED_ERR" )
+ ]
+ );
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Main: Unexpected exception thrown!" );
+ drawStatusBox( false );
+ }
+
+ if( isPassed )
+ {
+ var status = document.getElementById("UnitTestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "#0C0");
+ }
+ ]]>
+ </handler>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgcolor-201-t.png b/test/svg/svg1.2/svg/udom-svgcolor-201-t.png
new file mode 100644
index 0000000..fe2d4d6
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgcolor-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgcolor-201-t.svg b/test/svg/svg1.2/svg/udom-svgcolor-201-t.svg
new file mode 100644
index 0000000..3d58277
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgcolor-201-t.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CL" owner="AE" desc="Test SVGRGBColort" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-svgcolor-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates an SVGColor object and verifies that the intial data is all zero. It then modifies the red, green, and blue attributes.
+ To pass, the resulting attributes should be as expected should be correct, and when this happens the text
+ changes from 'failed' to 'passed'
+ </p>
+ <p>Note that, since the test does not insert this object into the document, it is not displayed. The test simply verifies that the object has been created correctly.</p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgcolor-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 20;
+ var isPassed = true;
+
+ function drawString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ color = topsvg.createSVGRGBColor( 0, 0, 0 );
+ drawString( "created SVGRGBColor [ " + color.red + " , " + color.green + " , " + color.blue + " ];" );
+ if ( ( color.red == 0 ) && ( color.green == 0 ) && ( color.blue == 0 ) )
+ {
+ drawString( "Results match expected values." );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values (0, 0, 0)" );
+ }
+
+ color.red = 128;
+ color.green = 90;
+ color.blue = 100;
+
+ drawString( "set SVGRGBColor to [ " + color.red + " , " + color.green + " , " + color.blue + " ];" );
+
+ if ( ( color.red == 128 ) && ( color.green == 90 ) && ( color.blue == 100 ) )
+ {
+ drawString( "Results match expected values." );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values (128, 90, 100)" );
+ }
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ }
+ ]]>
+ </handler>
+
+ <g>
+ <text x="240" y="40" text-anchor="middle" >SVGRGBColor - basic test</text>
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svglocatable-201-t.png b/test/svg/svg1.2/svg/udom-svglocatable-201-t.png
new file mode 100644
index 0000000..c265029
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svglocatable-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svglocatable-201-t.svg b/test/svg/svg1.2/svg/udom-svglocatable-201-t.svg
new file mode 100644
index 0000000..1f4d4a4
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svglocatable-201-t.svg
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGLocatable.getBBox." status="accepted"
+ approved="yes"
+ version="$Revision: 1.13 $" testname="$RCSfile: udom-svglocatable-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test draws a few basic shapes and checks for correct values from getBBox().
+ To pass, each returned bounding box must be correct (indicated by printing the values in green), and when this happens the text
+ in the rect with blue stroke changes from 'failed' to 'passed'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svglocatable-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 12;
+ var fontSize = "10";
+ var isPassed = true;
+
+ function drawString( text, color )
+{
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+}
+
+ function verifyBBox( bbox, x, y, width, height, epsilon )
+ {
+ if
+ (
+ ( Math.abs(bbox.x - x ) < epsilon ) &&
+ ( Math.abs(bbox.y - y ) < epsilon ) &&
+ ( Math.abs(bbox.width - width ) < epsilon ) &&
+ ( Math.abs(bbox.height - height ) < epsilon )
+ )
+ {
+ return "green"
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values ( " + x + ", " + y + ", " + width + ", " + height + " )", "red" );
+ return "red"
+ }
+ }
+
+ function displayGetBBox( )
+ {
+ drawString( "getBBox()", "black" );
+ var bbox = document.getElementById( "group1" ).getBBox( );
+ drawString( "[group1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, -70, -60, 230, 200, 1 / 65535 ) );
+
+ bbox = document.getElementById( "rect1" ).getBBox( );
+ drawString( "[rect1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, 10, 10, 50, 50, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect2" ).getBBox( );
+ drawString( "[rect2] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 10, 10, 100, 100, 1 / 65535 ));
+
+ bbox = document.getElementById( "group2" ).getBBox( );
+ drawString( "[group2] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, -80, -80, 230, 200, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect3" ).getBBox( );
+ drawString( "[rect3] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 0, 10, 150, 50, 1 / 65535 ));
+
+ bbox = document.getElementById( "circle1" ).getBBox( );
+ drawString( "[circle1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, -80, -80, 200, 200, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect4" ).getBBox( );
+ drawString( "[rect5] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, 10, 10, 400, 0, 1 / 65535 ));
+
+ bbox = document.getElementById( "myUse" ).getBBox( );
+ drawString( "[myUse] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, -30, -20, 60, 40, 1 / 65535 ));
+
+ bbox = document.getElementById( "thickLine" ).getBBox( );
+ drawString( "[thickLine] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 0, 0, 100, 0, 1 / 65535 ));
+
+ }
+
+ displayGetBBox();
+
+ // remove from tree, get bbox
+ drawString( "node removed from tree, should still have bounding box", "black" );
+ circle = document.getElementById( "circle2" );
+ document.getElementById( "body" ).removeChild(circle);
+ bbox = circle.getBBox( );
+ drawString( "[circle2]: " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, -80, -80, 200, 200, 1 / 65535 ));
+
+ var emptyG = document.getElementById( "emptyG" );
+ bbox = emptyG.getBBox( );
+ if ( bbox == null )
+ {
+ drawString( "[emptyG]: null" , "green");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values (null)" , "red");
+ }
+
+
+ if( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait( "#text", "passed" );
+ status.setAttribute( "fill", "green");
+ }
+
+ ]]>
+ </handler>
+
+ <defs>
+ <rect xml:id="myRect" x="0" y="0" width="60" height="40"/>
+ </defs>
+
+ <g xml:id="body">
+ <g xml:id="wrap" transform="translate(300,100)">
+ <g xml:id="group1" transform="translate(10, 20)" fill="#ff0">
+ <rect xml:id="rect1" transform="scale(2)" x="10" y="10" width="50" height="50"/>
+ <rect xml:id="rect2" x="10" y="10" width="100" height="100"/>
+ <g xml:id="group2" transform="translate(10, 20)">
+ <rect xml:id="rect3" x="0" y="10" width="150" height="50"/>
+ <circle xml:id="circle1" cx="20" cy="20" r="100" />
+ </g>
+ </g>
+ <rect xml:id="rect4" x="10" y="10" width="400" height="0"/>
+ <use xml:id="myUse" xlink:href="#myRect" x="-30" y="-20" fill="#ff0"/>
+ <g xml:id="emptyG"/>
+ <line xml:id="thickLine" stroke-width="10" x2="100" y2="0" stroke="#ff0"/>
+ </g>
+
+ <circle xml:id="circle2" cx="20" cy="20" r="100" />
+
+ <text x="240" y="40" text-anchor="middle" >SVGLocatable.getBBox() - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.13 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svglocatable-202-t.png b/test/svg/svg1.2/svg/udom-svglocatable-202-t.png
new file mode 100644
index 0000000..f3e7881
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svglocatable-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svglocatable-202-t.svg b/test/svg/svg1.2/svg/udom-svglocatable-202-t.svg
new file mode 100644
index 0000000..b42046b
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svglocatable-202-t.svg
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="480" height="360"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGLocatable.getScreenBBox." status="accepted"
+ approved="yes"
+ version="$Revision: 1.12 $" testname="$RCSfile: udom-svglocatable-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Note, this test does not have 100% for the svg width and height on purpose as to have exact
+ expected results for the screen bounding boxes
+ </p>
+ <p>
+ This test draws a few basic shapes and checks for correct values from getScreenBBox().
+ To pass, each returned bounding box must be correct (indicated by printing the values in green), and when this happens the text
+ changes from 'failed' to 'passed'
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svglocatable-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 12;
+ var fontSize = "10";
+ var isPassed = true;
+
+ function drawString( text, color )
+{
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+}
+
+ function verifyBBox( bbox, x, y, width, height, epsilon )
+ {
+ if
+ (
+ ( Math.abs(bbox.x - x ) < epsilon ) &&
+ ( Math.abs(bbox.y - y ) < epsilon ) &&
+ ( Math.abs(bbox.width - width ) < epsilon ) &&
+ ( Math.abs(bbox.height - height ) < epsilon )
+ )
+ {
+ return "green";
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values ( " + x + ", " + y + ", " + width + ", " + height + " )", "red" );
+ return "red";
+ }
+ }
+
+ function displayGetScreenBBox( )
+ {
+ drawString( "getScreenBBox()", "black" );
+
+ var bbox = document.getElementById( "group1" ).getScreenBBox( );
+ drawString( "[group1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, 240, 60, 230, 200, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect1" ).getScreenBBox( );
+ drawString( "[rect1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 330, 140, 100, 100, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect2" ).getScreenBBox( );
+ drawString( "[rect2] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 320, 130, 100, 100, 1 / 65535 ));
+
+ bbox = document.getElementById( "group2" ).getScreenBBox( );
+ drawString( "[group2] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 240, 60, 230, 200, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect3" ).getScreenBBox( );
+ drawString( "[rect3] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 320, 150, 150, 50, 1 / 65535 ));
+
+ bbox = document.getElementById( "circle1" ).getScreenBBox( );
+ drawString( "[circle1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 240, 60, 200, 200, 1 / 65535 ));
+
+ bbox = document.getElementById( "circle3" ).getScreenBBox( );
+ drawString( "[circle3] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 300, 20, 200, 200, 1 / 65535) );
+
+ bbox = document.getElementById( "circle4" ).getScreenBBox( );
+ drawString( "[circle4] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 600, 20, 200, 200, 1 / 65535 ));
+
+ }
+
+ displayGetScreenBBox();
+
+ // remove from tree, get bbox
+ drawString( "node removed from tree, should still have bounding box" , "black");
+ circle = document.getElementById( "circle2" );
+ document.getElementById( "body-content" ).removeChild(circle);
+ bbox = circle.getScreenBBox( );
+ if ( !bbox )
+ {
+ drawString( "screen bbox is null", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "screen bbox is not null! result: " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , "red");
+ }
+
+ if( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait( "#text", "passed" );
+ status.setAttribute( "fill", "green");
+ }
+
+ ]]>
+ </handler>
+
+ <g xml:id="body-content">
+
+ <g xml:id="wrap" transform="translate(300,100)">
+ <g xml:id="group1" transform="translate(10, 20)" fill="#ff0">
+ <rect xml:id="rect1" transform="scale(2)" x="10" y="10" width="50" height="50"/>
+ <rect xml:id="rect2" x="10" y="10" width="100" height="100"/>
+ <g xml:id="group2" transform="translate(10, 20)">
+ <rect xml:id="rect3" x="0" y="10" width="150" height="50"/>
+ <circle xml:id="circle1" cx="20" cy="20" r="100" />
+ </g>
+ </g>
+ <circle xml:id="circle3" cx="100" cy="20" r="100" fill="#ff0"/>
+ <circle xml:id="circle4" cx="400" cy="20" r="100" fill="#ff0"/>
+ </g>
+
+ <circle xml:id="circle2" cx="20" cy="20" r="100" />
+
+ <text x="240" y="40" text-anchor="middle" >SVGLocatable.getScreenBBox() - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svglocatable-203-t.png b/test/svg/svg1.2/svg/udom-svglocatable-203-t.png
new file mode 100644
index 0000000..2d6ce11
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svglocatable-203-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svglocatable-203-t.svg b/test/svg/svg1.2/svg/udom-svglocatable-203-t.svg
new file mode 100644
index 0000000..a40c339
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svglocatable-203-t.svg
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root"
+ width="480" height="360"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGLocatable.getScreenCTM" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: udom-svglocatable-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+
+ <p>
+ This test draws a few basic shapes and checks for correct values from getScreenCTM().
+ To pass, each returned CTM must be correct (indicated by printing the values in green),
+ and the string 'passed' appears in the lower right.
+ </p>
+ <p>
+ Note, this test does not have 100% for the svg width and height on purpose as to have exact
+ expected results for the screen CTM.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svglocatable-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 12;
+ var fontSize = "10";
+ var isPassed = true;
+ var eps = 1 / 65535; // epsilon for 16.16 fixpoint
+
+ function drawString( text, color )
+{
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+}
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ return "green";
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values ( "
+ + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString() + " )", "red" );
+ return "red"
+ }
+ }
+
+ function displayScreenCTM()
+ {
+ var expected;
+
+ drawString( "getScreenCTM()", "black" );
+ drawString ("", "black");
+
+ var matrix = document.getElementById( "group1" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 310, 120 ];
+ drawString( "[group1] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+ ;
+
+ var matrix = document.getElementById( "rect1" ).getScreenCTM( );
+ expected = [ 2, 0, 0, 2, 310, 120 ];
+ drawString( "[rect1] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+
+
+ var matrix = document.getElementById( "rect2" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 310, 120 ];
+ drawString( "[rect2] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+
+ var matrix = document.getElementById( "group2" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 320, 140 ];
+ drawString( "[group2] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+
+ var matrix = document.getElementById( "rect3" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 320, 140 ];
+ drawString("[rect3] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+
+ var matrix = document.getElementById( "circle1" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 320, 140 ];
+ drawString( "[circle1] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+ }
+
+ displayScreenCTM();
+
+ var matrix = document.getElementById( "rect5" ).getScreenCTM( );
+ expected = [ 0.707118, 0.707118, -0.707103, 0.707118, 197.57355, -116.98516 ];
+ drawString( "[rect5] " + matrix.getComponent(0).toFixed(3) + " "
+ + matrix.getComponent(1).toFixed(3) + " "
+ + matrix.getComponent(2).toFixed(3) + " "
+ + matrix.getComponent(3).toFixed(3) + " "
+ + matrix.getComponent(4).toFixed(3) + " "
+ + matrix.getComponent(5).toFixed(3), verifyMatrix( matrix, expected, 0.004 ));
+
+
+ var matrix = document.getElementById( "circle2" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 300, 100 ];
+ drawString( "[circle2] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+
+ var matrix = document.getElementById( "circle3" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 300, 100 ];
+ drawString( "[circle3] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , verifyMatrix( matrix, expected, eps ));
+
+ var matrix1 = topsvg.createSVGMatrixComponents(1, 0, 0, 1, 10, 10);
+ var matrix2 = topsvg.createSVGMatrixComponents(1, 0, 0, 1, 20, 30);
+ document.getElementById( "group3" ).setMatrixTrait("transform", matrix1);
+ document.getElementById( "rect4" ).setMatrixTrait("transform", matrix2);
+ var matrix = document.getElementById( "rect4" ).getScreenCTM( );
+ expected = [ 1, 0, 0, 1, 330, 140 ];
+ drawString( "[rect4] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString(), verifyMatrix( matrix, expected, eps ));
+
+ // Expected matrix is the first multiplied by the second matrix.
+ matrix = matrix1.mMultiply(matrix2);
+ expected = [ 1, 0, 0, 1, 30, 40 ];
+ drawString( "[matrix1*matrix2] " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString(), verifyMatrix( matrix, expected, eps ));
+
+ if( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait( "#text", "passed" );
+ }
+
+ ]]>
+ </handler>
+
+ <g xml:id="body-content">
+
+ <g xml:id="wrap" transform="translate(300,100)">
+ <g xml:id="group1" transform="translate(10, 20)" fill="#ff0">
+ <rect xml:id="rect1" transform="scale(2)" x="10" y="10" width="50" height="50"/>
+ <rect xml:id="rect2" x="10" y="10" width="100" height="100"/>
+ <g xml:id="group2" transform="translate(10, 20)">
+ <rect xml:id="rect3" x="0" y="10" width="150" height="50"/>
+ <circle xml:id="circle1" cx="20" cy="20" r="100" />
+ </g>
+ </g>
+ <circle xml:id="circle2" cx="100" cy="20" r="100" fill="#ff0"/>
+ <circle xml:id="circle3" cx="400" cy="20" r="100" fill="#ff0"/>
+
+ <g xml:id="group3">
+ <rect fill="none" xml:id="rect4" x="10" y="10" width="50" height="50"/>
+ </g>
+ </g>
+
+ <g xml:id="group4" transform="rotate(45, 240, 180)">
+ <rect xml:id="rect5" x="0" y="10" width="150" height="50" fill="#ff0"/>
+ </g>
+
+ <text x="240" y="40" text-anchor="middle" >SVGLocatable.getScreenCTM() - basic test</text>
+
+ </g>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-201-t.png b/test/svg/svg1.2/svg/udom-svgmatrix-201-t.png
new file mode 100644
index 0000000..b5eb7b7
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgmatrix-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-201-t.svg b/test/svg/svg1.2/svg/udom-svgmatrix-201-t.svg
new file mode 100644
index 0000000..80fc5d3
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgmatrix-201-t.svg
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGMatrix.getComponent" status="accepted"
+ approved="yes"
+ version="$Revision: 1.6 $" testname="$RCSfile: udom-svgmatrix-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates a SVGMatrix object and calls getComponent to verify the result
+ To pass, each returned component must be correct. To indicate a pass
+ the result of the test changes to green and the text at the bottom right
+ hand corner changes from "failed" to "passed".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgmatrix-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 20;
+ var isPassed = true;
+
+ function drawString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function drawResultString( text, result )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ node_to_insert.setAttributeNS(null,"font-size",rowHeight*0.8);
+ if (result)
+ {
+ node_to_insert.setAttributeNS(null, "fill", "green");
+ }
+ else
+ {
+ node_to_insert.setAttributeNS(null, "fill", "red");
+ }
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ drawResultString( "Results match expected values.", true );
+ }
+ else
+ {
+ isPassed = false;
+ drawResultString( "Results do not match expected values!", fail );
+ drawResultString( "expected: " + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString(), fail );
+ }
+ }
+
+ try
+ {
+ var matrix2 = topsvg.createSVGMatrixComponents( 1, 0, 0, 1, 10, 10 );
+ drawString( "created SVGMatrix: " + matrix2.getComponent(0).toString() + " "
+ + matrix2.getComponent(1).toString() + " "
+ + matrix2.getComponent(2).toString() + " "
+ + matrix2.getComponent(3).toString() + " "
+ + matrix2.getComponent(4).toString() + " "
+ + matrix2.getComponent(5).toString() );
+
+ var expected = [ 1, 0, 0, 1, 10, 10 ];
+
+ verifyMatrix( matrix2, expected, 1 / 65535 ); // epsilon for 16.16 fixpoint
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!");
+ }
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGMatrix.getComponent() - basic test</text>
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-202-t.png b/test/svg/svg1.2/svg/udom-svgmatrix-202-t.png
new file mode 100644
index 0000000..bfdb172
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgmatrix-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-202-t.svg b/test/svg/svg1.2/svg/udom-svgmatrix-202-t.svg
new file mode 100644
index 0000000..26c524f
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgmatrix-202-t.svg
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGMatrix.inverse" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svgmatrix-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates two SVGMatrix objects and calls inverse on each.
+ The first matrix is invertable, but the second one is not, and should throw an exception when inverse() is called.
+ To pass, the inverted matrix must be correct, and the exception for the second matrix must be thrown.
+ To indicate a pass the result of the test changes to green and the text at the bottom right
+ hand corner changes from "failed" to "passed".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgmatrix-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 20;
+ var isPassed = true;
+ var fontSize = "10";
+
+ function drawString( text, color )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+ }
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ drawString( "Results match expected values.", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values!", "red" );
+ drawString( "expected: " + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString(), "black" );
+ }
+ }
+
+ try
+ {
+ var matrix2 = topsvg.createSVGMatrixComponents( 1, 0, 0, 1, 10, 10 );
+ drawString( "created SVGMatrix (A): " + matrix2.getComponent(0).toString() + " "
+ + matrix2.getComponent(1).toString() + " "
+ + matrix2.getComponent(2).toString() + " "
+ + matrix2.getComponent(3).toString() + " "
+ + matrix2.getComponent(4).toString() + " "
+ + matrix2.getComponent(5).toString() , "black");
+ var matrix3 = matrix2.inverse();
+ drawString( "(A).inverse(): " + matrix3.getComponent(0).toString() + " "
+ + matrix3.getComponent(1).toString() + " "
+ + matrix3.getComponent(2).toString() + " "
+ + matrix3.getComponent(3).toString() + " "
+ + matrix3.getComponent(4).toString() + " "
+ + matrix3.getComponent(5).toString() ,"black");
+
+ var expected = [ 1, 0, 0, 1, -10, -10 ];
+ verifyMatrix( matrix3, expected, 1 / 65535 ); // epsilon for 16.16 fixpoint
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!", "red");
+ }
+
+ var matrix2 = topsvg.createSVGMatrixComponents( 0, 0, 0, 0, 10, 10 );
+ drawString( "created SVGMatrix (B): " + matrix2.getComponent(0).toString() + " "
+ + matrix2.getComponent(1).toString() + " "
+ + matrix2.getComponent(2).toString() + " "
+ + matrix2.getComponent(3).toString() + " "
+ + matrix2.getComponent(4).toString() + " "
+ + matrix2.getComponent(5).toString() , "black");
+ try
+ {
+ var matrix3 = matrix2.inverse();
+ }
+ catch(e)
+ {
+ if(e.code == SVGException.SVG_MATRIX_NOT_INVERTABLE)
+ {
+ drawString("(B).inverse(): Got SVG_MATRIX_NOT_INVERTABLE.", "green");
+ }
+ else
+ {
+ drawString("(B).inverse(): Expected SVG_MATRIX_NOT_INVERTABLE.", "red");
+ isPassed = false;
+ }
+ }
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ ]]>
+ </handler>
+
+ <g>
+
+ <text x="240" y="40" text-anchor="middle" >SVGMatrix.inverse() - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-203-t.png b/test/svg/svg1.2/svg/udom-svgmatrix-203-t.png
new file mode 100644
index 0000000..b8e006d
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgmatrix-203-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-203-t.svg b/test/svg/svg1.2/svg/udom-svgmatrix-203-t.svg
new file mode 100644
index 0000000..48b7ea2
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgmatrix-203-t.svg
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGMatrix.mMultiply" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svgmatrix-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates a few SVGMatrix objects and calls mMultiply.
+ To pass, the result matrices should be correct, and when this happens the text
+ changes from 'failed' to 'passed'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgmatrix-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 20;
+ var isPassed = true;
+
+ function drawString( text , col )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ node_to_insert.setAttributeNS(null, "fill", col );
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ drawString( "Results match expected values." , "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values!" , "red" );
+ drawString( "expected: " + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString() , "red" );
+ }
+ }
+
+ var matrix;
+ var matrix2;
+ var matrix3;
+ var expected;
+
+ try
+ {
+ matrix = topsvg.createSVGMatrixComponents( 1, 0, 0, 1, 5, 5 );
+ drawString( "created SVGMatrix (A): " + matrix.getComponent(0).toString() + " "
+ + matrix.getComponent(1).toString() + " "
+ + matrix.getComponent(2).toString() + " "
+ + matrix.getComponent(3).toString() + " "
+ + matrix.getComponent(4).toString() + " "
+ + matrix.getComponent(5).toString() , "black" );
+
+ matrix2 = topsvg.createSVGMatrixComponents( 1, 0, 0, 1, 10, 10 );
+ drawString( "created SVGMatrix (B): " + matrix2.getComponent(0).toString() + " "
+ + matrix2.getComponent(1).toString() + " "
+ + matrix2.getComponent(2).toString() + " "
+ + matrix2.getComponent(3).toString() + " "
+ + matrix2.getComponent(4).toString() + " "
+ + matrix2.getComponent(5).toString() , "black" );
+
+ matrix3 = matrix.mMultiply( matrix2 );
+ drawString( "(C) = (A).mMultiply(B): " + matrix3.getComponent(0).toString() + " "
+ + matrix3.getComponent(1).toString() + " "
+ + matrix3.getComponent(2).toString() + " "
+ + matrix3.getComponent(3).toString() + " "
+ + matrix3.getComponent(4).toString() + " "
+ + matrix3.getComponent(5).toString() , "black" );
+
+ expected = [ 1, 0, 0, 1, 15, 15 ];
+ expected2 = [ 1, 0, 0, 1, 10, 10 ];
+ var epsilon = 1 / 65535; // epsilon for 16.16 fixpoint
+ verifyMatrix( matrix3, expected, epsilon );
+ verifyMatrix( matrix, expected, epsilon );
+ verifyMatrix( matrix2, expected2, epsilon );
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString( "Unexpected exception!" , "red" );
+ }
+
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGMatrix.mMultiply() - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-204-t.png b/test/svg/svg1.2/svg/udom-svgmatrix-204-t.png
new file mode 100644
index 0000000..5e5ed2e
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgmatrix-204-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-204-t.svg b/test/svg/svg1.2/svg/udom-svgmatrix-204-t.svg
new file mode 100644
index 0000000..d5c6289
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgmatrix-204-t.svg
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGMatrix.mRotate" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svgmatrix-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates some SVGMatrix objects and then calls mRotate.
+ To pass, the result matrices should be correct, and when this happens the text
+ changes from 'failed' to 'passed'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgmatrix-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 65;
+ var rowHeight = 10;
+ var isPassed = true;
+ var eps = 1 / 65535; // 16.16 fixpoint epsilon
+
+ function drawString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ node_to_insert.setAttributeNS(null,"font-size",rowHeight*0.8);
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function drawResultString( text, result )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ node_to_insert.setAttributeNS(null,"font-size",rowHeight*0.8);
+ if (result)
+ {
+ node_to_insert.setAttributeNS(null, "fill", "green");
+ }
+ else
+ {
+ node_to_insert.setAttributeNS(null, "fill", "red");
+ }
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ drawResultString( "Results match expected values.", true );
+ }
+ else
+ {
+ isPassed = false;
+ drawResultString( "Results do not match expected values!", false );
+ drawResultString( "expected: " + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString(), false );
+ }
+ }
+
+ try
+ {
+ var matrix2 = topsvg.createSVGMatrixComponents( 1, 0, 0, 1, 10, 10 );
+ drawString( "created SVGMatrix (A): " + matrix2.getComponent(0).toString() + " "
+ + matrix2.getComponent(1).toString() + " "
+ + matrix2.getComponent(2).toString() + " "
+ + matrix2.getComponent(3).toString() + " "
+ + matrix2.getComponent(4).toString() + " "
+ + matrix2.getComponent(5).toString() );
+
+ var matrix7 = matrix2.mRotate( 90 );
+ drawString( "(B) = (A).mRotate(90): " + matrix7.getComponent(0).toString() + " "
+ + matrix7.getComponent(1).toString() + " "
+ + matrix7.getComponent(2).toString() + " "
+ + matrix7.getComponent(3).toString() + " "
+ + matrix7.getComponent(4).toString() + " "
+ + matrix7.getComponent(5).toString() );
+
+ var expected = [ 0, 1, -1, 0, 10, 10 ];
+ verifyMatrix( matrix7, expected, eps );
+ verifyMatrix( matrix2, expected, eps );
+
+ var matrix8 = matrix7.mRotate( 90 );
+ drawString( "(C) = (B).mRotate(90): " + matrix8.getComponent(0).toString() + " "
+ + matrix8.getComponent(1).toString() + " "
+ + matrix8.getComponent(2).toString() + " "
+ + matrix8.getComponent(3).toString() + " "
+ + matrix8.getComponent(4).toString() + " "
+ + matrix8.getComponent(5).toString() );
+
+ expected = [ -1, 0, 0, -1, 10, 10 ];
+ verifyMatrix( matrix8, expected, eps );
+ verifyMatrix( matrix7, expected, eps );
+
+ var matrix9 = matrix8.mRotate( 90 );
+ drawString( "(D) = (C).mRotate(90): " + matrix9.getComponent(0).toString() + " "
+ + matrix9.getComponent(1).toString() + " "
+ + matrix9.getComponent(2).toString() + " "
+ + matrix9.getComponent(3).toString() + " "
+ + matrix9.getComponent(4).toString() + " "
+ + matrix9.getComponent(5).toString() );
+
+ expected = [ 0, -1, 1, 0, 10, 10 ];
+ verifyMatrix( matrix9, expected, eps );
+ verifyMatrix( matrix8, expected, eps );
+
+ var matrix3 = matrix9.mRotate( 90 );
+ drawString( "(E) = (D).mRotate(90): " + matrix3.getComponent(0).toString() + " "
+ + matrix3.getComponent(1).toString() + " "
+ + matrix3.getComponent(2).toString() + " "
+ + matrix3.getComponent(3).toString() + " "
+ + matrix3.getComponent(4).toString() + " "
+ + matrix3.getComponent(5).toString() );
+
+ expected = [ 1, 0, 0, 1, 10, 10 ];
+ verifyMatrix( matrix3, expected, eps );
+ verifyMatrix( matrix9, expected, eps );
+
+ var matrix4 = matrix3.mRotate( 450 );
+ drawString( "(B) = (E).mRotate(450): " + matrix4.getComponent(0).toString() + " "
+ + matrix4.getComponent(1).toString() + " "
+ + matrix4.getComponent(2).toString() + " "
+ + matrix4.getComponent(3).toString() + " "
+ + matrix4.getComponent(4).toString() + " "
+ + matrix4.getComponent(5).toString() );
+
+ expected = [ 0, 1, -1, 0, 10, 10 ];
+ verifyMatrix( matrix4, expected, eps );
+ verifyMatrix( matrix9, expected, eps );
+
+ var matrix5 = matrix9.mRotate( -540 );
+ drawString( "(D) = (B).mRotate(-540): " + matrix5.getComponent(0).toString() + " "
+ + matrix5.getComponent(1).toString() + " "
+ + matrix5.getComponent(2).toString() + " "
+ + matrix5.getComponent(3).toString() + " "
+ + matrix5.getComponent(4).toString() + " "
+ + matrix5.getComponent(5).toString() );
+
+ expected = [ 0, -1, 1, 0, 10, 10 ];
+ verifyMatrix( matrix5, expected, eps );
+ verifyMatrix( matrix9, expected, eps );
+
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!");
+ }
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGMatrix.mRotate() - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-205-t.png b/test/svg/svg1.2/svg/udom-svgmatrix-205-t.png
new file mode 100644
index 0000000..e4eed81
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgmatrix-205-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-205-t.svg b/test/svg/svg1.2/svg/udom-svgmatrix-205-t.svg
new file mode 100644
index 0000000..1a32387
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgmatrix-205-t.svg
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGMatrix.mScale" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svgmatrix-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates an SVGMatrix object and calls mScale.
+ To pass, the result matrix should be correct, and when this happens the text
+ changes from 'failed' to 'passed'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgmatrix-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 20;
+ var isPassed = true;
+ var eps = 1 / 65535; // 16.16 fixpoint epsilon
+
+ function drawString( text, col )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ node_to_insert.setAttributeNS(null, "fill", col);
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ drawString( "Results match expected values.", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values!", "red" );
+ drawString( "expected: " + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString(), "red" );
+ }
+ }
+
+ try
+ {
+ var matrix2 = topsvg.createSVGMatrixComponents( 1, 0, 0, 1, 10, 10 );
+ drawString( "created SVGMatrix (A): " + matrix2.getComponent(0).toString() + " "
+ + matrix2.getComponent(1).toString() + " "
+ + matrix2.getComponent(2).toString() + " "
+ + matrix2.getComponent(3).toString() + " "
+ + matrix2.getComponent(4).toString() + " "
+ + matrix2.getComponent(5).toString(), "black" );
+
+ var matrix6 = matrix2.mScale( 2 );
+ drawString( "(B) = (A).mScale(2): " + matrix6.getComponent(0).toString() + " "
+ + matrix6.getComponent(1).toString() + " "
+ + matrix6.getComponent(2).toString() + " "
+ + matrix6.getComponent(3).toString() + " "
+ + matrix6.getComponent(4).toString() + " "
+ + matrix6.getComponent(5).toString(), "black" );
+
+ var expected = [ 2, 0, 0, 2, 10, 10 ];
+ verifyMatrix( matrix6, expected, eps );
+
+ var matrix7 = matrix6.mScale( 0.5 );
+ drawString( "(C) = (B).mScale(0.5): " + matrix7.getComponent(0).toString() + " "
+ + matrix7.getComponent(1).toString() + " "
+ + matrix7.getComponent(2).toString() + " "
+ + matrix7.getComponent(3).toString() + " "
+ + matrix7.getComponent(4).toString() + " "
+ + matrix7.getComponent(5).toString(), "black" );
+
+ var expected = [ 1, 0, 0, 1, 10, 10 ];
+ verifyMatrix( matrix7, expected, eps );
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!", "red");
+ }
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGMatrix.mScale() - basic test</text>
+ <rect xml:id="UnitTest" x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-206-t.png b/test/svg/svg1.2/svg/udom-svgmatrix-206-t.png
new file mode 100644
index 0000000..46982fb
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgmatrix-206-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgmatrix-206-t.svg b/test/svg/svg1.2/svg/udom-svgmatrix-206-t.svg
new file mode 100644
index 0000000..5059175
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgmatrix-206-t.svg
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGMatrix.mTranslate" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-svgmatrix-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates an SVGMatrix object and calls mTranslate.
+ To pass, the result matrix should be correct, and when this happens the text
+ changes from 'failed' to 'passed'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgmatrix-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 20;
+ var isPassed = true;
+ var eps = 1 / 65535; // epsilon for 16.16 fixpoint
+
+ function drawString( text, col )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.textContent=text ;
+ node_to_insert.setAttributeNS(null, "fill", col);
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function verifyMatrix( matrix, expected, epsilon )
+ {
+ if
+ (
+ ( Math.abs(matrix.getComponent(0) - expected[0]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(1) - expected[1]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(2) - expected[2]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(3) - expected[3]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(4) - expected[4]) < epsilon ) &&
+ ( Math.abs(matrix.getComponent(5) - expected[5]) < epsilon )
+ )
+ {
+ drawString( "Results match expected values.", "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values!", "red" );
+ drawString( "expected: " + expected[0].toString() + " "
+ + expected[1].toString() + " "
+ + expected[2].toString() + " "
+ + expected[3].toString() + " "
+ + expected[4].toString() + " "
+ + expected[5].toString(), "red" );
+ }
+ }
+
+ try
+ {
+ var matrix2 = topsvg.createSVGMatrixComponents( 1, 0, 0, 1, 10, 10 );
+ drawString( "created SVGMatrix (A): " + matrix2.getComponent(0).toString() + " "
+ + matrix2.getComponent(1).toString() + " "
+ + matrix2.getComponent(2).toString() + " "
+ + matrix2.getComponent(3).toString() + " "
+ + matrix2.getComponent(4).toString() + " "
+ + matrix2.getComponent(5).toString(), "black" );
+
+ var matrix5 = matrix2.mTranslate( 10, 10 );
+ drawString( "(B) = (A).mTranslate(10,10): " + matrix5.getComponent(0).toString() + " "
+ + matrix5.getComponent(1).toString() + " "
+ + matrix5.getComponent(2).toString() + " "
+ + matrix5.getComponent(3).toString() + " "
+ + matrix5.getComponent(4).toString() + " "
+ + matrix5.getComponent(5).toString(), "black" );
+
+ var expected = [ 1, 0, 0, 1, 20, 20 ];
+ verifyMatrix( matrix5, expected, eps );
+
+ var matrix6 = matrix5.mTranslate( -10, -10 );
+ drawString( "(C) = (B).mTranslate(-10,-10): " + matrix6.getComponent(0).toString() + " "
+ + matrix6.getComponent(1).toString() + " "
+ + matrix6.getComponent(2).toString() + " "
+ + matrix6.getComponent(3).toString() + " "
+ + matrix6.getComponent(4).toString() + " "
+ + matrix6.getComponent(5).toString(), "black" );
+
+ expected = [ 1, 0, 0, 1, 10, 10 ];
+ verifyMatrix( matrix6, expected, eps );
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!", "red");
+ }
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGMatrix.mTranslate() - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgpath-201-t.png b/test/svg/svg1.2/svg/udom-svgpath-201-t.png
new file mode 100644
index 0000000..92dfbcc
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgpath-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgpath-201-t.svg b/test/svg/svg1.2/svg/udom-svgpath-201-t.svg
new file mode 100644
index 0000000..97b3d6b
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgpath-201-t.svg
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AN" owner="AE" desc="Testing the SVGPath interface: .close(), .moveTo(), .lineTo(), .quadTo()" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-svgpath-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates path data using the SVGPath interface, with emphasis on support for close, moveTo and quadTo
+ To pass, the path data must match expected results for the text at the bottom of the test to read 'pass'.
+ The path data is verified by calling getSegment and getSegmentParam.
+ In addition, no red should be seen through the path element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgpath-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 11;
+ var fontSize = 10;
+ var isPassed = true;
+
+ function drawColorString( text, color )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+ }
+
+ function drawPathString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setFloatTrait("font-size",fontSize);
+ node_to_insert.setFloatTrait("x",25);
+ var yVal =startY + count++ * rowHeight;
+ node_to_insert.setFloatTrait("y",yVal);
+ node_to_insert.textContent=text;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function PathSegment( cmd, numParams )
+ {
+ this.cmd = cmd;
+ this.numParams = numParams;
+ }
+
+ function parseSegment( segment )
+ {
+ var segObj = new PathSegment( "UNDEFINED", 2 );
+ switch( segment )
+ {
+ case SVGPath.MOVE_TO:
+ segObj.cmd = "MOVE_TO";
+ break;
+
+ case SVGPath.LINE_TO:
+ segObj.cmd = "LINE_TO";
+ break;
+
+ case SVGPath.CURVE_TO:
+ segObj.cmd = "CURVE_TO";
+ segObj.numParams = 6;
+ break;
+
+ case SVGPath.QUAD_TO:
+ segObj.cmd = "QUAD_TO";
+ segObj.numParams = 4;
+ break;
+
+ case SVGPath.CLOSE:
+ segObj.numParams = 0;
+ segObj.cmd = "CLOSE"
+ break;
+ }
+ return segObj;
+ }
+
+ function drawSVGPath( path )
+ {
+ drawPathString( "numberOfSegments: " + path.numberOfSegments.toString() );
+
+ for( i = 0; i < path.numberOfSegments; i++ )
+ {
+ var segment = path.getSegment( i );
+ var segObj = parseSegment( segment );
+ var paramStr = "";
+ for ( j = 0; j < segObj.numParams; j++ )
+ {
+ paramStr += " " + path.getSegmentParam( i, j );
+ }
+ drawPathString( "segment " + i.toString() + ": " + segObj.cmd + " " + paramStr );
+ }
+ }
+
+ function expectedValue( cmd, numParams, params )
+ {
+ this.cmd = cmd;
+ this.numParams = numParams;
+ this.params = params;
+ }
+
+ /* expected = array of expectedValue */
+ function verifyPath( path, expected, numExpected )
+ {
+ if ( numExpected != path.numberOfSegments )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!", "red" );
+ drawColorString( "expected number of segments = " + numExpected.toString(), "black" );
+ return;
+ }
+
+ for ( var i = 0; i < path.numberOfSegments; ++i )
+ {
+ var segment = path.getSegment( i );
+ var segObj = parseSegment( segment );
+ if ( segObj.cmd != expected[i].cmd )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!", "red" );
+ drawColorString( "expected[" + i.toString() + "].cmd = " + expected[i].cmd, "black" );
+ return;
+ }
+ else
+ if ( segObj.numParams != expected[i].numParams )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!", "red" );
+ drawColorString( "expected[" + i.toString() + "].numParams = " + expected[i].numParams.toString(), "black" );
+ return;
+ }
+ else
+ {
+ for ( var j = 0; j < segObj.numParams; j++ )
+ {
+ if ( path.getSegmentParam( i, j ) != expected[i].params[j] )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!", "red" );
+ drawColorString( "expected[" + i.toString() + "].params[" + j.toString() + "] = " + expected[i].params[j].toString(), "black" );
+ return;
+ }
+ }
+ }
+ }
+
+ drawColorString( "Results match expected values.", "green" );
+ }
+
+ var expectedNumSegments;
+ var expected;
+ try
+ {
+ path = topsvg.createSVGPath( );
+ drawColorString( "created SVGPath", "black" );
+ path.moveTo( 372, 130 );
+ drawColorString( "added moveTo[372, 130]", "black" );
+
+ path.quadTo( 272, 50, 422, 10 );
+ drawColorString( "added quadTo[272, 50, 422, 10]", "black" );
+
+ path.close();
+ drawColorString( "added close", "black" );
+
+ path.moveTo( 442, 130 );
+ drawColorString( "added moveTo[442, 130]", "black" );
+
+ path.quadTo( 492, -20, 362, 40 );
+ drawColorString( "added quadTo[492, -20, 362, 40]", "black" );
+
+ path.close();
+ drawColorString( "added close", "black" );
+
+ drawSVGPath( path );
+
+ expectedNumSegments = 6;
+ expected =
+ [
+ new expectedValue( "MOVE_TO", 2, [ 372, 130 ] ),
+ new expectedValue( "QUAD_TO", 4, [ 272, 50, 422, 10 ] ),
+ new expectedValue( "CLOSE", 0, [ ] ),
+ new expectedValue( "MOVE_TO", 2, [ 442, 130 ] ),
+ new expectedValue( "QUAD_TO", 4, [ 492, -20, 362, 40 ] ),
+ new expectedValue( "CLOSE", 0, [ ] )
+ ];
+ verifyPath( path, expected, expectedNumSegments );
+
+ document.getElementById( "path1" ).setPathTrait( "d", path );
+ drawColorString( "set path trait", "black" );
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green")
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawColorString("Unexpected exception!", "red");
+ }
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGPath - close, moveTo, quadTo,</text>
+ <text x="240" y="60" text-anchor="middle" >getSegment, getSegmentParam</text>
+ <g transform="translate( 0, 100 )">
+ <path fill="red" stroke="none" d="M372 130Q272 50 422 10zm70 0q50-150-80-90z "/>
+ <path xml:id="path1" fill="green" stroke="none"/>
+ </g>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgpath-202-t.png b/test/svg/svg1.2/svg/udom-svgpath-202-t.png
new file mode 100644
index 0000000..a061ecd
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgpath-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgpath-202-t.svg b/test/svg/svg1.2/svg/udom-svgpath-202-t.svg
new file mode 100644
index 0000000..c5b3aad
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgpath-202-t.svg
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED,AN" owner="AE" desc="Test SVGPath.close(), .moveTo(), .lineTo()" status="accepted"
+ approved="yes"
+ version="$Revision: 1.14 $" testname="$RCSfile: udom-svgpath-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates path data using the SVGPath interface, with emphasis on support for lineTo and curveTo
+ To pass, the path data must match expected results for the text at the bottom of the test to read 'pass'.
+ The path data is verified by calling getSegment and getSegmentParam.
+ In addition, no red should be seen through the path element.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgpath-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 11;
+ var fontSize = 10;
+ var isPassed = true;
+ var epsilon = 1 / 65535; // 16.16 fixpoint epsilon
+
+ function drawColorString( text, color )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+ }
+
+ function drawPathString( text )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setFloatTrait("font-size",fontSize);
+ node_to_insert.setFloatTrait("x",25);
+ var yVal =startY + count++ * rowHeight;
+ node_to_insert.setFloatTrait("y",yVal);
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ function PathSegment( cmd, numParams )
+ {
+ this.cmd = cmd;
+ this.numParams = numParams;
+ }
+
+ function parseSegment( segment )
+ {
+ var segObj = new PathSegment( "UNDEFINED", 2 );
+ switch( segment )
+ {
+ case SVGPath.MOVE_TO:
+ segObj.cmd = "MOVE_TO";
+ break;
+
+ case SVGPath.LINE_TO:
+ segObj.cmd = "LINE_TO";
+ break;
+
+ case SVGPath.CURVE_TO:
+ segObj.cmd = "CURVE_TO";
+ segObj.numParams = 6;
+ break;
+
+ case SVGPath.QUAD_TO:
+ segObj.cmd = "QUAD_TO";
+ segObj.numParams = 4;
+ break;
+
+ case SVGPath.CLOSE:
+ segObj.numParams = 0;
+ segObj.cmd = "CLOSE"
+ break;
+ }
+ return segObj;
+ }
+
+ function drawSVGPath( path )
+ {
+ drawPathString( "numberOfSegments: " + path.numberOfSegments.toString() );
+
+ for( i = 0; i < path.numberOfSegments; i++ )
+ {
+ var segment = path.getSegment( i );
+ var segObj = parseSegment( segment );
+ var paramStr = "";
+ for ( j = 0; j < segObj.numParams; j++ )
+ {
+ paramStr += " " + path.getSegmentParam( i, j );
+ }
+ drawPathString( "segment " + i.toString() + ": " + segObj.cmd + " " + paramStr );
+ }
+ }
+
+ function expectedValue( cmd, numParams, params )
+ {
+ this.cmd = cmd;
+ this.numParams = numParams;
+ this.params = params;
+ }
+
+ /* expected = array of expectedValue */
+ function verifyPath( path, expected, numExpected )
+ {
+ if ( numExpected != path.numberOfSegments )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!", "red" );
+ drawColorString( "expected number of segments = " + numExpected.toString(), "black" );
+ return;
+ }
+
+ for ( var i = 0; i < path.numberOfSegments; ++i )
+ {
+ var segment = path.getSegment( i );
+ var segObj = parseSegment( segment );
+ if ( segObj.cmd != expected[i].cmd )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!", "red" );
+ drawColorString( "expected[" + i.toString() + "].cmd = " + expected[i].cmd, "black" );
+ return;
+ }
+ else
+ if ( segObj.numParams != expected[i].numParams )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!" , "red");
+ drawColorString( "expected[" + i.toString() + "].numParams = " + expected[i].numParams.toString(), "black" );
+ return;
+ }
+ else
+ {
+ for ( var j = 0; j < segObj.numParams; j++ )
+ {
+ if ( Math.abs(path.getSegmentParam( i, j ) - expected[i].params[j]) > epsilon )
+ {
+ isPassed = false;
+ drawColorString( "Results do not match expected values!" , "red");
+ drawColorString( "expected[" + i.toString() + "].params[" + j.toString() + "] = " + expected[i].params[j].toString(), "black" );
+ drawColorString( "actual[" + i.toString() + "].params[" + j.toString() + "] = " + path.getSegmentParam( i, j ) , "black");
+ return;
+ }
+ }
+ }
+ }
+
+ drawColorString( "Results match expected values.", "green" );
+ }
+
+ var expectedNumSegments;
+ var expected;
+ try
+ {
+ path = topsvg.createSVGPath( );
+ drawColorString( "created SVGPath" , "black");
+
+ path.moveTo( 360, 325 );
+ drawColorString( "added moveTo[360, 325]" , "black");
+
+ path.curveTo( 320, 265, 455, 225, 440, 325 );
+ drawColorString( "added curveTo[320, 265, 455, 225, 440, 325]", "black" );
+
+ path.lineTo( 360, 325 );
+ drawColorString( "added lineTo[360, 325]", "black" );
+
+ path.close();
+ drawColorString( "added close", "black" );
+
+ drawSVGPath( path );
+
+ expectedNumSegments = 4;
+ expected =
+ [
+ new expectedValue( "MOVE_TO", 2, [ 360, 325 ] ),
+ new expectedValue( "CURVE_TO", 6, [ 320, 265, 455, 225, 440, 325 ] ),
+ new expectedValue( "LINE_TO", 2, [ 360, 325 ] ),
+ new expectedValue( "CLOSE", 0, [] )
+ ];
+ verifyPath( path, expected, expectedNumSegments );
+
+ document.getElementById( "path1" ).setPathTrait( "d", path );
+ drawColorString( "set path trait", "black" );
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawColorString("Unexpected exception!", "red");
+ }
+ ]]>
+ </handler>
+
+
+ <text x="240" y="40" text-anchor="middle" >SVGPath - lineTo, curveTo</text>
+ <text x="240" y="60" text-anchor="middle" >getSegment, getSegmentParam</text>
+ <g transform="translate( 0, -100 )" stroke-width="10">
+ <path fill="none" stroke="red" d="M 360 325 c -40 -60 95 -100 80 0 L 360 325z"/>
+ <path xml:id="path1" fill="none" stroke="green"/>
+ </g>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.14 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!-- <g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgpoint-201-t.png b/test/svg/svg1.2/svg/udom-svgpoint-201-t.png
new file mode 100644
index 0000000..3cefc99
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgpoint-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgpoint-201-t.svg b/test/svg/svg1.2/svg/udom-svgpoint-201-t.svg
new file mode 100644
index 0000000..0e38662
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgpoint-201-t.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root"
+ width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="AE" desc="Test SVGPoint" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-svgpoint-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates a SVGPoint and sets some basic values for x and y. To pass, the text at the
+ bottom of the screen should read 'passed'.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgpoint-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 60;
+ var rowHeight = 11;
+ var fontSize = "10";
+ var isPassed = true;
+
+ function drawString( text, color )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString() );
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString() );
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.textContent=text ;
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+
+ function verifyPoint(description, point, x, y )
+ {
+ var epsilon = 1 / 65535;
+
+ drawString(description, "black");
+
+ point.x = x;
+ point.y = y;
+
+ if(( Math.abs(point.x - x ) < epsilon ) && ( Math.abs(point.y - y ) < epsilon ))
+ {
+ drawString( "Results match expected values[ " + x + " , " + y + " ];", "green" );
+ drawString( "Values in the point SVGPoint[ " + point.x + " , " + point.y + " ];", "black");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values[ " + x + " , " + y + " ];", "red" );
+ drawString( "Values in the point SVGPoint[ " + point.x + " , " + point.y + " ];", "black" );
+ }
+
+ drawString("", "black");
+
+ }
+
+ try
+ {
+ var point = topsvg.createSVGPoint( );
+
+ verifyPoint("created SVGPoint[ " + point.x+ " , " + point.y + " ];", point, 0, 0);
+
+ verifyPoint("Test for +epsilon,+epsilon positive integers", point, 32767, 32767);
+
+ verifyPoint("Test for -epsilon,-epsilon negative integers", point, -32767, -32767);
+
+ // to be updated after ACTION-2027
+ //verifyPoint("Test for +epsilon,+epsilon real positive numbers", point, 32767.65535, 32767.65535);
+
+ // to be updated after ACTION-2027
+ //verifyPoint("Test for -epsilon,-epsilon real negative numbers", point, -32767.65535, -32767.65535);
+
+ if( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute( "fill", "green" );
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!", "red");
+ }
+ ]]>
+ </handler>
+
+ <text x="240" y="40" text-anchor="middle" >SVGPoint </text>
+ <rect xml:id="rect1" x="30" y="50" width="50" height="50" fill="none"/>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="red">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-svgrect-201-t.png b/test/svg/svg1.2/svg/udom-svgrect-201-t.png
new file mode 100644
index 0000000..a4c72ff
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-svgrect-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-svgrect-201-t.svg b/test/svg/svg1.2/svg/udom-svgrect-201-t.svg
new file mode 100644
index 0000000..7c36826
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-svgrect-201-t.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AZ,AN" owner="AE" desc="Test SVGRect object" status="accepted"
+ approved="yes"
+ version="$Revision: 1.8 $" testname="$RCSfile: udom-svgrect-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This test creates SVGRect object and verifies that the initial data is all zero. It then modifies the x, y, width and height.
+ To pass, the result matrix should be correct, and when this happens the text
+ changes from 'failed' to 'passed'
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-svgrect-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <handler type="text/ecmascript" xe:event="SVGLoad">
+ <![CDATA[
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 15;
+ var fontSize = 10;
+ var isPassed = true;
+ var epsilon = 1 / 65535;
+
+ function drawString( text, col )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setFloatTrait("font-size",fontSize);
+ node_to_insert.setAttribute("x","25");
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setFloatTrait("y",yVal);
+ node_to_insert.textContent=text;
+ node_to_insert.setAttribute("fill", col);
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+ }
+
+ try
+ {
+ rect = topsvg.createSVGRect( );
+ drawString( "created SVGRect[ " + rect.x+ " , " + rect.y + " , " + rect.width + " , " + rect.height + " ];" , "black" );
+
+ if ( ( Math.abs(rect.x - 0 ) < epsilon ) && (Math.abs(rect.y - 0 ) < epsilon ) && (Math.abs(rect.width - 0 ) < epsilon ) && (Math.abs(rect.width - 0 ) < epsilon ) )
+ {
+ drawString( "Results match expected values." , "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values! (0,0,0,0)" , "red" );
+ }
+
+ rect.x = 10;
+ rect.y = 20;
+ rect.width = 30;
+ rect.height = 40;
+ drawString( "set SVGRect to[ " + rect.x+ " , " + rect.y + " , " + rect.width + " , " + rect.height + " ];" , "black" );
+
+ if ( ( Math.abs(rect.x - 10 ) < epsilon ) && (Math.abs(rect.y - 20 ) < epsilon ) && (Math.abs(rect.width - 30 ) < epsilon ) && (Math.abs(rect.height - 40 ) < epsilon ) )
+ {
+ drawString( "Results match expected values." , "green" );
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values! (10,20,30,40)" , "red" );
+ }
+
+ if ( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.setTrait("#text", "passed");
+ status.setAttribute("fill", "green");
+ }
+ }
+ catch(e)
+ {
+ isPassed = false;
+ drawString("Unexpected exception!" , "red");
+ }
+ ]]>
+ </handler>
+ <text x="240" y="40" text-anchor="middle" >SVGRect - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text xml:id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-textcontent-201-t.png b/test/svg/svg1.2/svg/udom-textcontent-201-t.png
new file mode 100644
index 0000000..be16c66
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-textcontent-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-textcontent-201-t.svg b/test/svg/svg1.2/svg/udom-textcontent-201-t.svg
new file mode 100644
index 0000000..cd3031a
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-textcontent-201-t.svg
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Test on textContent on element with several children containing text nodes" status="accepted"
+ approved="yes"
+ version="$Revision: 1.9 $" testname="$RCSfile: udom-textcontent-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests retrieving nested text using textContent.
+ </p>
+ <p>
+ For this test to pass the text "Not changed yet!" in red must be
+ replaced by the text "Rect Text and Rect Animate Text!" in green.
+ </p>
+ <p>
+ textContent is used in the following ways:
+ </p>
+ <div>
+ <ul>
+ <li>
+ to retrieve the text nested within the rect element "sourceTextRect"
+ </li>
+ <li>
+ to set the text in the "originalText" text element to ""
+ </li>
+ <li>
+ to set the text in the "destinationText" text element to the text
+ retrieved from the rect element "sourceTextRect"
+ </li>
+ </ul>
+ </div>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-textcontent-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- The text here will be changed to "" after 1 second -->
+ <text xml:id="originalText" x="10" y="50" font-weight="bold" font-size="20" fill="red">
+ Not changed yet!
+ <!-- Dummy animate element just to activate the listener -->
+ <animate xml:id="dummyAnim" attributeName="x" begin="1s" dur="1s" from="10" to="10"/>
+ </text>
+
+ <!-- This element will be populated with text after 1 second -->
+ <text xml:id="destinationText" x="10" y="50" font-weight="bold" font-size="20" fill="green"></text>
+
+ <!-- This element will supply the text that will populate the "destinationText" text element -->
+ <rect xml:id="sourceTextRect" x="10" y="10" width="20" height="20" fill="yellow" stroke="blue" stroke-width="5">
+ <text x="10" y="100" font-weight="bold" font-size="20" fill="green">
+ Rect Text
+ </text>
+
+ <animate xml:id="rectAnim" attributeName="x" begin="0s" dur="2s" from="10" to="30">
+ <desc>
+ and Rect Animate Text!
+ </desc>
+ </animate>
+ </rect>
+
+ <!-- Register event listener -->
+ <xe:listener observer="dummyAnim" event="beginEvent" handler="#handler"/>
+
+ <!-- Handler -->
+ <handler xml:id="handler" type="application/ecmascript">
+ textContent(evt);
+ </handler>
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ function textContent(evt)
+ {
+ var org_text = document.getElementById("originalText")
+ var des_text = document.getElementById("destinationText");
+ var src_text = document.getElementById("sourceTextRect");
+
+ org_text.textContent = "";
+ des_text.textContent = src_text.textContent;
+ }
+ ]]>
+ </script>
+ <text x="10" y="150" font-size="20">Test on textContent</text>
+ <text x="10" y="180" font-size="15">The text "Not changed yet!" (in red) that is located just below the rect </text>
+ <text x="10" y="200" font-size="15">must be replaced after 1s by</text>
+ <text x="10" y="220" font-size="15">"Rect Text and Rect Animate Text!" (in green)</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-textcontent-202-t.png b/test/svg/svg1.2/svg/udom-textcontent-202-t.png
new file mode 100644
index 0000000..79e848b
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-textcontent-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-textcontent-202-t.svg b/test/svg/svg1.2/svg/udom-textcontent-202-t.svg
new file mode 100644
index 0000000..093fcb3
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-textcontent-202-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="ASl" desc="Test to set textContent, which removes other element children" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-textcontent-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests access to textContent.
+ The only text that should be visible is the string "Rect Text and Rect Animate Text!" in green.
+ The set element that makes the element "setTextContent" hidden should be removed when setting the new textContent and therefore the text must be visible.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-textcontent-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text xml:id="setTextContent" x="10" y="75" font-weight="bold" font-size="25" fill="red">
+
+ Not changed yet!
+
+ <set attributeName="visibility" to="hidden"/>
+
+
+ </text>
+
+ <rect xml:id="rect" x="10" y="10" width="40" height="40" fill="red" stroke="blue" stroke-width="8">
+ <text xml:id="getTextContent" x="10" y="150" font-weight="bold" font-size="25" fill="green">
+ Rect Text
+ </text>
+
+ <animate xml:id="rectAnim" attributeName="x"
+ begin="0s" dur="2s"
+ from="10" to="30">
+ <desc>
+ and Rect Animate Text!
+ </desc>
+ </animate>
+
+ </rect>
+
+ <script type="application/ecmascript">
+ <![CDATA[
+ var text = document.getElementById("setTextContent");
+ var rect = document.getElementById("rect");
+ text.textContent = rect.textContent;
+ text.setTrait("fill", "green");
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-201-t.png b/test/svg/svg1.2/svg/udom-traitaccess-201-t.png
new file mode 100644
index 0000000..020a259
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-traitaccess-201-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-201-t.svg b/test/svg/svg1.2/svg/udom-traitaccess-201-t.svg
new file mode 100644
index 0000000..4a714bf
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-traitaccess-201-t.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Trait access in uDOM" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-traitaccess-201-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests trait access in uDOM.
+ The svg should look the same on both sides and the text
+ should read "Passed". Both the rects should link back to this test.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-traitaccess-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect xml:id="referenceframe" x="10" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="testframe" x="249" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="textframe" x="310" y="315" width="150" height="40" stroke="#000000" fill="none"/>
+
+ <text xml:id="title" x="10" y="25" font-size="20">Set/Get-TraitNs() on </text>
+ <text xml:id="referencetext" x="75" y="50" font-size="20">reference</text>
+ <text xml:id="scripttext" x="325" y="50" font-size="20">scripted</text>
+ <g fill="red">
+ <text xml:id="status" x="320" y="350" font-size="40" fill="red">Fail</text>
+ </g>
+ <g>
+ <a xml:id="a_ref" xlink:href="udom-traitaccess-201-t.svg">
+ <rect fill="#FC0" x="60" y="100" width="100" height="30" rx="5" ry="5"/>
+ </a>
+ </g>
+
+ <g>
+ <a xml:id="a_test" xlink:href="">
+ <rect fill="#FC0" x="299" y="100" width="100" height="30" rx="5" ry="5"/>
+ </a>
+ </g>
+
+ <script type="text/ecmascript">
+ <![CDATA[
+ var theA=document.getElementById("a_test");
+
+ theA.setTraitNS("http://www.w3.org/1999/xlink","href","udom-traitaccess-201-t.svg");
+
+ var text = document.getElementById("status");
+ if("udom-traitaccess-201-t.svg" == theA.getTraitNS("http://www.w3.org/1999/xlink","href"))
+ {
+ text.setTrait("#text", "Passed");
+ text.setTrait("fill", "green");
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-202-t.png b/test/svg/svg1.2/svg/udom-traitaccess-202-t.png
new file mode 100644
index 0000000..837b490
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-traitaccess-202-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-202-t.svg b/test/svg/svg1.2/svg/udom-traitaccess-202-t.svg
new file mode 100644
index 0000000..e8f9928
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-traitaccess-202-t.svg
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="AE" owner="ASl" desc="Trait access on solidColor" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-traitaccess-202-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on solidColor trait access.
+ The test result is displayed within the test.
+ </p>
+ <p>
+ The test is passed if the results for the sub tests are as follows
+ </p>
+ <ul>
+ <li>The first 1,2,255</li>
+ <li>The second sub test 254,4,3</li>
+ <li>The third sub test #FE0403</li>
+ <li>The fourth sub test #0506FD</li>
+ <li>The fith sub test is 0,0,0</li>
+ </ul>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-traitaccess-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="solidgroup">
+ <solidColor xml:id="solidfill" solid-opacity="0.2" solid-color="red">
+ </solidColor>
+ <solidColor xml:id="soliddefault">
+ </solidColor>
+ <solidColor xml:id="solidstroke" solid-opacity="0.4" solid-color="rgb(1,2,255)">
+ </solidColor>
+ </g>
+
+ <rect x="250" y="100" width="200" height="100" rx="25"
+ fill="url(#solidfill)"/>
+ <g transform="translate(250 170) rotate(-30)" >
+ <rect x="0" y="0" width="200" height="100" rx="25"
+ fill="none" stroke="url(#solidstroke)" stroke-width="30" />
+ </g>
+
+ <text x="5" y="20" font-size="20">Testing solidColor trait access</text>
+
+ <!-- Text for test 1, getRGBColorTrait -->
+ <text x="5" y="50" font-size="20">1. getRGBColorTrait(solid-color):</text>
+ <text x="5" y="70" xml:id="printout1" font-size="20">DOES NOT WORK!</text>
+
+ <!-- Text for test 2, setRGBColorTrait -->
+ <text x="5" y="110" font-size="20">2. setRGBColorTrait(solid-color):</text>
+ <text x="5" y="130" xml:id="printout2" font-size="20">DOES NOT WORK!</text>
+
+ <!-- Text for test 3, getTrait -->
+ <text x="5" y="170" font-size="20">3. getTrait(solid-color):</text>
+ <text x="5" y="190" xml:id="printout3" font-size="20">DOES NOT WORK!</text>
+
+ <!-- Text for test 4, setTrait -->
+ <text x="5" y="230" font-size="20">4. setTrait(solid-color):</text>
+ <text x="5" y="250" xml:id="printout4" font-size="20">DOES NOT WORK!</text>
+
+ <!-- Text for test 5, getting default -->
+ <text x="5" y="290" font-size="20">5. getting default:</text>
+ <text x="5" y="310" xml:id="printout5" font-size="20">DOES NOT WORK!</text>
+
+ <script type="text/ecmascript">
+ <![CDATA[
+ // Variables
+ var sc_stroke_element = document.getElementById("solidstroke");
+ var sc_default_element = document.getElementById("soliddefault");
+ var printout1 = document.getElementById("printout1");
+ var printout2 = document.getElementById("printout2");
+ var printout3 = document.getElementById("printout3");
+ var printout4 = document.getElementById("printout4");
+ var printout5 = document.getElementById("printout5");
+ var color1 = document.documentElement.createSVGRGBColor(254, 4, 3);
+
+ // Implementation test 1, getRGBColorTrait
+ var strokeRgb1 = sc_stroke_element.getRGBColorTrait("solid-color");
+ printout1.setTrait("#text", "(" + strokeRgb1.red + "," + strokeRgb1.green + "," + strokeRgb1.blue + ")" + " (should be (1,2,255))");
+
+ // Implementation test 2, setRGBColorTrait
+ sc_stroke_element.setRGBColorTrait("solid-color", color1);
+ var strokeRgb2 = sc_stroke_element.getRGBColorTrait("solid-color");
+ printout2.setTrait("#text", "(" + strokeRgb2.red + "," + strokeRgb2.green + "," + strokeRgb2.blue + ")" + " (should be (254,4,3))");
+
+ // Implementation test 3, getTrait
+ var strokeRgb3 = sc_stroke_element.getTrait("solid-color");
+ printout3.setTrait("#text", "(" + strokeRgb3 + ") (should be (#fe0403))");
+
+ // Implementation test 4, setTrait
+ sc_stroke_element.setTrait("solid-color", "#0506fd");
+ var strokeRgb4 = sc_stroke_element.getTrait("solid-color");
+ printout4.setTrait("#text", "(" + strokeRgb4 + ") (should be (#0506fd))");
+
+ // Implementation test 5, getting default
+ var strokeRgb5 = sc_default_element.getRGBColorTrait("solid-color");
+ printout5.setTrait("#text", "(" + strokeRgb5.red + "," + strokeRgb5.green + "," + strokeRgb5.blue + ")" + " (should be (0,0,0))");
+
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-203-t.png b/test/svg/svg1.2/svg/udom-traitaccess-203-t.png
new file mode 100644
index 0000000..fffd8e2
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-traitaccess-203-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-203-t.svg b/test/svg/svg1.2/svg/udom-traitaccess-203-t.svg
new file mode 100644
index 0000000..2217025
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-traitaccess-203-t.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="ASl" desc="Trait access on solidColor solid-opacity" status="accepted"
+ approved="yes"
+ version="$Revision: 1.7 $" testname="$RCSfile: udom-traitaccess-203-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on solidColor solid-opacity trait access.
+ Test result are displayed within the test.
+ The first sub-test should display a number approximately equal to 0.2.
+ The second sub-test should display a number approximately equal to 0.5.
+ The third sub-test should display a number equal to 1.
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-traitaccess-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g xml:id="solidgroup">
+ <solidColor xml:id="solidfill" solid-opacity="0.2" solid-color="rgb(0,0,255)">
+ </solidColor>
+ <solidColor xml:id="soliddefault">
+ </solidColor>
+ <solidColor xml:id="solidstroke" solid-opacity="0.8" solid-color="red">
+ </solidColor>
+ </g>
+
+ <rect x="250" y="100" width="200" height="100" rx="25"
+ fill="url(#solidfill)"/>
+ <g transform="translate(250 170) rotate(-30)" >
+ <rect x="0" y="0" width="200" height="100" rx="25"
+ fill="none" stroke="url(#solidstroke)" stroke-width="30" />
+ </g>
+
+ <text x="5" y="20" font-size="20">Testing solidColor trait access</text>
+
+ <!-- Text for test 1, getFloatTrait -->
+ <text x="5" y="75" font-size="20">1. getFloatTrait(solid-opacity):</text>
+ <text x="5" y="100" xml:id="printout1" font-size="20">DOES NOT WORK!</text>
+
+ <!-- Text for test 2, setFloatTrait -->
+ <text x="5" y="150" font-size="20">2. setFloatTrait(solid-opacity):</text>
+ <text x="5" y="175" xml:id="printout2" font-size="20">DOES NOT WORK!</text>
+
+ <!-- Text for test 3, getting default -->
+ <text x="5" y="225" font-size="20">3. getting default:</text>
+ <text x="5" y="250" xml:id="printout3" font-size="20">DOES NOT WORK!</text>
+
+ <script type="text/ecmascript">
+ <![CDATA[
+ //variables
+ var sc_fill_element = document.getElementById("solidfill");
+ var sc_default_element = document.getElementById("soliddefault");
+ var printout1 = document.getElementById("printout1");
+ var printout2 = document.getElementById("printout2");
+ var printout3 = document.getElementById("printout3");
+
+ sc_fill_element.getFloatTrait("solid-opacity");
+
+ // Impl. test 1, getFloatTrait
+ printout1.setTrait("#text", " " + sc_fill_element.getFloatTrait("solid-opacity") + " (should be ~0.2)");
+
+ // Impl. test 2, setFloatTrait
+ sc_fill_element.setFloatTrait("solid-opacity", 0.5);
+ printout2.setTrait("#text", " " + sc_fill_element.getFloatTrait("solid-opacity") + " (should be ~0.5)");
+
+ // Impl. test 3, getting default
+ printout3.setTrait("#text", " " + sc_default_element.getFloatTrait("solid-opacity") + " (should be 1)");
+ ]]>
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-204-t.png b/test/svg/svg1.2/svg/udom-traitaccess-204-t.png
new file mode 100644
index 0000000..290d97b
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-traitaccess-204-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-204-t.svg b/test/svg/svg1.2/svg/udom-traitaccess-204-t.svg
new file mode 100644
index 0000000..fb95602
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-traitaccess-204-t.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="ASl" desc="Tests set/get access on 'fillrule' trait." status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-traitaccess-204-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Tests set/get access on 'fill-rule' trait.
+ The start should look the same on both sides and the text should read "OK".
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-traitaccess-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect xml:id="referenceframe" x="10" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="testframe" x="249" y="30" width="220" height="280" stroke="#000000" fill="none"/>
+ <rect xml:id="textframe" x="340" y="315" width="120" height="40" stroke="#000000" fill="none"/>
+
+ <text xml:id="title" x="10" y="25" font-size="20">Set/Get-Trait(fillrule) on path</text>
+ <text xml:id="referencetext" x="75" y="50" font-size="20">reference</text>
+ <text xml:id="scripttext" x="325" y="50" font-size="20">scripted</text>
+ <g fill="black">
+ <text xml:id="status" x="350" y="350" font-size="40" fill="red">Error!</text>
+ </g>
+
+ <g>
+ <path xml:id="refelement" fill-rule="evenodd" fill="#6df57e" stroke="#b0001e" stroke-width="5" d="M 120,75 L 193,301 21,161 219,161 47,301 z" />
+ <defs>
+ <path xml:id="pathen" fill-rule="inherit" fill="#6df57e" stroke="#b0001e" stroke-width="5" d="M 360,75 L 433,301 261,161 459,161 287,301 z" />
+ </defs>
+ <use xml:id="useelement" xlink:href="#pathen" fill-rule="nonzero"/>
+ </g>
+
+ <script type="text/ecmascript">
+ <![CDATA[
+ var text = document.getElementById("status");
+ var useel = document.getElementById("useelement");
+ var fillrule = "evenodd";
+ useel.setTrait("fill-rule", fillrule);
+ var getvalue = useel.getTrait("fill-rule");
+ if(getvalue == fillrule)
+ {
+ text.setTrait("#text", "OK!");
+ text.setTrait("fill", "inherit");
+ }
+ ]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-205-t.png b/test/svg/svg1.2/svg/udom-traitaccess-205-t.png
new file mode 100644
index 0000000..79c04bf
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-traitaccess-205-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-205-t.svg b/test/svg/svg1.2/svg/udom-traitaccess-205-t.svg
new file mode 100644
index 0000000..1e22308
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-traitaccess-205-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewport-fill="red"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="ASl" desc="Test to check trait access with setRGBColorTrait on viewport-fill" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-traitaccess-205-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on Ecma-script. Sets viewport-fill to green with setRGBColorTrait (should show a green viewport).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-traitaccess-205-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="30" y="50" fill="white">Green = OK</text>
+ <text x="30" y="70" fill="white">Red = Error!</text>
+ <script type="application/ecmascript">
+ color = document.documentElement.createSVGRGBColor(0, 128, 0);
+ element = document.getElementById("svg-root");
+ element.setRGBColorTrait("viewport-fill", color);
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-206-t.png b/test/svg/svg1.2/svg/udom-traitaccess-206-t.png
new file mode 100644
index 0000000..ddc9ac4
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-traitaccess-206-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-206-t.svg b/test/svg/svg1.2/svg/udom-traitaccess-206-t.svg
new file mode 100644
index 0000000..95122a4
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-traitaccess-206-t.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewport-fill="red"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="CM" owner="ASl" desc="Test to check trait access with setTrait on viewport-fill" status="accepted"
+ approved="yes"
+ version="$Revision: 1.4 $" testname="$RCSfile: udom-traitaccess-206-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on Ecma-script. Sets viewport-fill to green with setTrait (should show a green viewport).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-traitaccess-206-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="30" y="50" fill="white" font-size="30">Green = OK</text>
+ <text x="30" y="80" fill="white" font-size="30">Red = Error!</text>
+ <script type="application/ecmascript">
+ element = document.getElementById("svg-root");
+ element.setTrait("viewport-fill", "green");
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-207-t.png b/test/svg/svg1.2/svg/udom-traitaccess-207-t.png
new file mode 100644
index 0000000..cc71e09
Binary files /dev/null and b/test/svg/svg1.2/svg/udom-traitaccess-207-t.png differ
diff --git a/test/svg/svg1.2/svg/udom-traitaccess-207-t.svg b/test/svg/svg1.2/svg/udom-traitaccess-207-t.svg
new file mode 100644
index 0000000..de06b0a
--- /dev/null
+++ b/test/svg/svg1.2/svg/udom-traitaccess-207-t.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.2" baseProfile="tiny" xml:id="svg-root" width="100%" height="100%"
+ viewport-fill="red"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+ reviewer="ED" owner="ASl" desc="Test to check trait access with setFloatTrait on viewport-fill-opacity" status="accepted"
+ approved="yes"
+ version="$Revision: 1.5 $" testname="$RCSfile: udom-traitaccess-207-t.svg,v $">
+ <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Test on Ecma-script. Sets viewport-fill-opacity to 0.5 with setFloatTrait
+ (should show a red viewport with correct opacity, and the text 'viewport-fill-opacity="0.5"' should show).
+ </p>
+ </d:OperatorScript>
+ </SVGTestCase>
+ <title xml:id="test-title">$RCSfile: udom-traitaccess-207-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g xml:id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="30" y="50" fill="red" font-size="30">viewport-fill-opacity="0.5"</text>
+ <script type="application/ecmascript">
+ element = document.getElementById("svg-root");
+ element.setFloatTrait("viewport-fill-opacity", 0.5);
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text xml:id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g xml:id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]