summaryrefslogtreecommitdiffstats
path: root/gfx/tests/crashtests
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/tests/crashtests')
-rw-r--r--gfx/tests/crashtests/1034403-1.html8
-rw-r--r--gfx/tests/crashtests/1134549-1.svg14
-rw-r--r--gfx/tests/crashtests/1205900.html20
-rw-r--r--gfx/tests/crashtests/1216832-1.html13
-rw-r--r--gfx/tests/crashtests/1225125-1.html11
-rw-r--r--gfx/tests/crashtests/122875-1.html1
-rw-r--r--gfx/tests/crashtests/1308394.html23
-rw-r--r--gfx/tests/crashtests/1317403-1.html18
-rw-r--r--gfx/tests/crashtests/1325159-1.html35
-rw-r--r--gfx/tests/crashtests/156882-1.html205
-rw-r--r--gfx/tests/crashtests/157320-1.html11
-rw-r--r--gfx/tests/crashtests/199379-1.html10
-rw-r--r--gfx/tests/crashtests/206561-1.html8
-rw-r--r--gfx/tests/crashtests/248518-1.html7
-rw-r--r--gfx/tests/crashtests/306649-1.xml1
-rw-r--r--gfx/tests/crashtests/306902-1.xml14
-rw-r--r--gfx/tests/crashtests/333861-1.html18
-rw-r--r--gfx/tests/crashtests/334735-1.html11
-rw-r--r--gfx/tests/crashtests/345576-1.html6
-rw-r--r--gfx/tests/crashtests/345629-1.html7
-rw-r--r--gfx/tests/crashtests/348462-1.html11
-rw-r--r--gfx/tests/crashtests/348462-2.html13
-rw-r--r--gfx/tests/crashtests/366643.html7
-rw-r--r--gfx/tests/crashtests/369688-1.html19
-rw-r--r--gfx/tests/crashtests/369947-1.html11
-rw-r--r--gfx/tests/crashtests/372094-1.xhtml45
-rw-r--r--gfx/tests/crashtests/376627-1.html3
-rw-r--r--gfx/tests/crashtests/377231-1.html1
-rw-r--r--gfx/tests/crashtests/377232-1.xhtml5
-rw-r--r--gfx/tests/crashtests/377461-1.xhtml16
-rw-r--r--gfx/tests/crashtests/383473-1.html8
-rw-r--r--gfx/tests/crashtests/383872-1.svg19
-rw-r--r--gfx/tests/crashtests/385228-1.svg22
-rw-r--r--gfx/tests/crashtests/385228-2.svg20
-rw-r--r--gfx/tests/crashtests/385289-1.xhtml30
-rw-r--r--gfx/tests/crashtests/385417-1.html1
-rw-r--r--gfx/tests/crashtests/385417-2.html10
-rw-r--r--gfx/tests/crashtests/385423-1.html17
-rw-r--r--gfx/tests/crashtests/385423-2.html17
-rw-r--r--gfx/tests/crashtests/385719-1.html1
-rw-r--r--gfx/tests/crashtests/389326-1-inner.xhtml29
-rw-r--r--gfx/tests/crashtests/389326-1.html9
-rw-r--r--gfx/tests/crashtests/390476.html13
-rw-r--r--gfx/tests/crashtests/393746-1.xhtml14
-rw-r--r--gfx/tests/crashtests/393749-1.html18
-rw-r--r--gfx/tests/crashtests/393822-1.html32
-rw-r--r--gfx/tests/crashtests/394246-1.html16
-rw-r--r--gfx/tests/crashtests/394246-2.html23
-rw-r--r--gfx/tests/crashtests/394384-1.html26
-rw-r--r--gfx/tests/crashtests/394751.xhtml3
-rw-r--r--gfx/tests/crashtests/395335-1.xhtml20
-rw-r--r--gfx/tests/crashtests/395458-1.html5
-rw-r--r--gfx/tests/crashtests/396321-1.svg5
-rw-r--r--gfx/tests/crashtests/398042-1.xhtml13
-rw-r--r--gfx/tests/crashtests/398042-2.xhtml13
-rw-r--r--gfx/tests/crashtests/402307-1.html10
-rw-r--r--gfx/tests/crashtests/403464-1.html134
-rw-r--r--gfx/tests/crashtests/404112-1.html10
-rw-r--r--gfx/tests/crashtests/404112-2.html8
-rw-r--r--gfx/tests/crashtests/405268-1.xhtml20
-rw-r--r--gfx/tests/crashtests/407761-1.html8
-rw-r--r--gfx/tests/crashtests/407842.html18
-rw-r--r--gfx/tests/crashtests/408754-1.html13
-rw-r--r--gfx/tests/crashtests/410728-1.xml14
-rw-r--r--gfx/tests/crashtests/416637-1.html5
-rw-r--r--gfx/tests/crashtests/419095-1.html20
-rw-r--r--gfx/tests/crashtests/419255-1.html4
-rw-r--r--gfx/tests/crashtests/420945-1.html4
-rw-r--r--gfx/tests/crashtests/420962-1.html4
-rw-r--r--gfx/tests/crashtests/421393-1.html14
-rw-r--r--gfx/tests/crashtests/421813-1.html4
-rw-r--r--gfx/tests/crashtests/423110-1.xhtml1
-rw-r--r--gfx/tests/crashtests/423270-1.html5
-rw-r--r--gfx/tests/crashtests/428633.html5
-rw-r--r--gfx/tests/crashtests/429899-1.html1
-rw-r--r--gfx/tests/crashtests/441360.html39
-rw-r--r--gfx/tests/crashtests/441360_data.gifbin0 -> 3016 bytes
-rw-r--r--gfx/tests/crashtests/445711.html11
-rw-r--r--gfx/tests/crashtests/463307-1.html5
-rw-r--r--gfx/tests/crashtests/467703-1.xhtml1
-rw-r--r--gfx/tests/crashtests/467873-1.html8
-rw-r--r--gfx/tests/crashtests/470418-1.html5
-rw-r--r--gfx/tests/crashtests/474410-1.html16
-rw-r--r--gfx/tests/crashtests/483120-1.xhtml23
-rw-r--r--gfx/tests/crashtests/483120-2.xhtml22
-rw-r--r--gfx/tests/crashtests/487549-1.html23
-rw-r--r--gfx/tests/crashtests/487549-bad_kern_table.ttfbin0 -> 18404 bytes
-rw-r--r--gfx/tests/crashtests/487724-1.html23
-rw-r--r--gfx/tests/crashtests/490777-1.html9
-rw-r--r--gfx/tests/crashtests/516512-1.html5
-rw-r--r--gfx/tests/crashtests/532726-1.html5
-rw-r--r--gfx/tests/crashtests/538065-1.html14
-rw-r--r--gfx/tests/crashtests/546870-1.html8
-rw-r--r--gfx/tests/crashtests/557348-1.html1
-rw-r--r--gfx/tests/crashtests/563740-1.html2
-rw-r--r--gfx/tests/crashtests/580100-1.html7
-rw-r--r--gfx/tests/crashtests/580100-bad_hhea_table.ttfbin0 -> 36109 bytes
-rw-r--r--gfx/tests/crashtests/580212-1.html7
-rw-r--r--gfx/tests/crashtests/580212-bad_loca_table.ttfbin0 -> 36109 bytes
-rw-r--r--gfx/tests/crashtests/580233-1.html7
-rw-r--r--gfx/tests/crashtests/580233-bad_gpos_table.ttfbin0 -> 173500 bytes
-rw-r--r--gfx/tests/crashtests/580719-1.html18
-rw-r--r--gfx/tests/crashtests/580719-bad_head_table.ttfbin0 -> 173520 bytes
-rw-r--r--gfx/tests/crashtests/593526.html1
-rw-r--r--gfx/tests/crashtests/593526.xul5
-rw-r--r--gfx/tests/crashtests/594654-1.xhtml5
-rw-r--r--gfx/tests/crashtests/595042-1.html1
-rw-r--r--gfx/tests/crashtests/595727-1.html23
-rw-r--r--gfx/tests/crashtests/624198.xhtml1
-rw-r--r--gfx/tests/crashtests/633322-1.html1
-rw-r--r--gfx/tests/crashtests/633453-1.html10
-rw-r--r--gfx/tests/crashtests/662467-1.html2
-rw-r--r--gfx/tests/crashtests/665218.html8
-rw-r--r--gfx/tests/crashtests/675550-1.html24
-rw-r--r--gfx/tests/crashtests/686190-1.html18
-rw-r--r--gfx/tests/crashtests/691581-1.html6
-rw-r--r--gfx/tests/crashtests/693143-1.html44
-rw-r--r--gfx/tests/crashtests/696936-1.html2
-rw-r--r--gfx/tests/crashtests/699563-1.html2
-rw-r--r--gfx/tests/crashtests/710149-1.html19
-rw-r--r--gfx/tests/crashtests/766452-1.html6
-rw-r--r--gfx/tests/crashtests/766452-2.html6
-rw-r--r--gfx/tests/crashtests/768079-1.html4
-rw-r--r--gfx/tests/crashtests/783041-1.html63
-rw-r--r--gfx/tests/crashtests/783041-2.html63
-rw-r--r--gfx/tests/crashtests/783041-3.html71
-rw-r--r--gfx/tests/crashtests/783041-4.html82
-rw-r--r--gfx/tests/crashtests/798853.html3
-rw-r--r--gfx/tests/crashtests/805760-1.html22
-rw-r--r--gfx/tests/crashtests/805760.ttfbin0 -> 61656 bytes
-rw-r--r--gfx/tests/crashtests/815489.html17
-rw-r--r--gfx/tests/crashtests/836225-1.html19
-rw-r--r--gfx/tests/crashtests/839745-1.html20
-rw-r--r--gfx/tests/crashtests/856784-1.html11
-rw-r--r--gfx/tests/crashtests/893572-1.html11
-rw-r--r--gfx/tests/crashtests/893572-2.html30
-rw-r--r--gfx/tests/crashtests/893572-3.html44
-rw-r--r--gfx/tests/crashtests/893572-4.html38
-rw-r--r--gfx/tests/crashtests/914457-1.html9
-rw-r--r--gfx/tests/crashtests/944579.html1
-rw-r--r--gfx/tests/crashtests/944579.pngbin0 -> 3452 bytes
-rw-r--r--gfx/tests/crashtests/944579.svg26
-rw-r--r--gfx/tests/crashtests/950000.html40
-rw-r--r--gfx/tests/crashtests/PigLatin_Plane15.ttfbin0 -> 57236 bytes
-rw-r--r--gfx/tests/crashtests/Prototype.ttfbin0 -> 29592 bytes
-rw-r--r--gfx/tests/crashtests/balinese-letter-spacing.html2
-rw-r--r--gfx/tests/crashtests/crashtests.list135
147 files changed, 2412 insertions, 0 deletions
diff --git a/gfx/tests/crashtests/1034403-1.html b/gfx/tests/crashtests/1034403-1.html
new file mode 100644
index 000000000..714994d3e
--- /dev/null
+++ b/gfx/tests/crashtests/1034403-1.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body style="font-variant: small-caps; font-family: 'Times New Roman';">
+<div>x&#xE0131;</div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/1134549-1.svg b/gfx/tests/crashtests/1134549-1.svg
new file mode 100644
index 000000000..1d0d5484a
--- /dev/null
+++ b/gfx/tests/crashtests/1134549-1.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="400" height="400"
+ viewBox="694400 -179730 8000 8000">
+
+ <defs>
+ <path id="tp_crash" d="M 698430.938,-174861.922 C 699068.125,-175493.781 699593.562,-176022.531 699499,-177727" />
+ </defs>
+
+ <text font-size="4000">
+ <textPath xlink:href="#tp_crash">Eisack</textPath>
+ </text>
+ <use xlink:href="#tp_crash" fill="none" stroke="green" stroke-width="200"></use>
+</svg>
diff --git a/gfx/tests/crashtests/1205900.html b/gfx/tests/crashtests/1205900.html
new file mode 100644
index 000000000..5e1f47cae
--- /dev/null
+++ b/gfx/tests/crashtests/1205900.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+
+<body>
+<canvas id="canvas0"></canvas>
+
+<script>
+ var canvas0=document.getElementById("canvas0");
+ var ctx=canvas0.getContext("2d");
+ canvas0.addEventListener("DOMAttrModified",
+ function(event) {
+ canvas0.toBlob(function(){},"image/jpeg",1);
+ }, true);
+ canvas0.setAttribute("height",470)
+</script>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/1216832-1.html b/gfx/tests/crashtests/1216832-1.html
new file mode 100644
index 000000000..0f02a9280
--- /dev/null
+++ b/gfx/tests/crashtests/1216832-1.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta charset="UTF-8">
+</head>
+<body>
+ <div style="transform-style: preserve-3d; border-bottom-style: outset; width: 4787550px;">
+ <div style="margin-left: 4787550px;"></div>
+ <div style="will-change: contents, transform;"></div>
+ </div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/1225125-1.html b/gfx/tests/crashtests/1225125-1.html
new file mode 100644
index 000000000..6632dff28
--- /dev/null
+++ b/gfx/tests/crashtests/1225125-1.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<body>
+
+<div style="mix-blend-mode: saturation; margin-right: 1187px; transform: translateX(2px);">
+ <div style="border-style: outset; mix-blend-mode: color-dodge; display: inherit; padding: 1760px; float: right;"></div>
+ <div style="height: 2000px; overflow: auto;"></div>
+</div>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/122875-1.html b/gfx/tests/crashtests/122875-1.html
new file mode 100644
index 000000000..6241666b0
--- /dev/null
+++ b/gfx/tests/crashtests/122875-1.html
@@ -0,0 +1 @@
+<html> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> </head> <body> @@ </body> </html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1308394.html b/gfx/tests/crashtests/1308394.html
new file mode 100644
index 000000000..fd7570801
--- /dev/null
+++ b/gfx/tests/crashtests/1308394.html
@@ -0,0 +1,23 @@
+<html class="reftest-print"><head>
+<svg xmlns="http://www.w3.org/2000/svg" width="90" height="20">
+ <linearGradient id="b" x2="0" y2="100%">
+ <stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
+ <stop offset="1" stop-opacity=".1"/>
+ </linearGradient>
+ <mask id="a">
+ <rect width="90" height="20" rx="3" fill="#fff"/>
+ </mask>
+ <g mask="url(#a)">
+ <path fill="#555" d="M0 0h33v20H0z"/>
+ <path fill="#007ec6" d="M33 0h57v20H33z"/>
+ <path fill="url(#b)" d="M0 0h90v20H0z"/>
+ </g>
+ <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
+ <text x="16.5" y="15" fill="#010101" fill-opacity=".3">AUR</text>
+ <text x="16.5" y="14">AUR</text>
+ <text x="60.5" y="15" fill="#010101" fill-opacity=".3">v2.0.4-1</text>
+ <text x="60.5" y="14">v2.0.4-1</text>
+ </g>
+</svg>
+</head>
+<body>
diff --git a/gfx/tests/crashtests/1317403-1.html b/gfx/tests/crashtests/1317403-1.html
new file mode 100644
index 000000000..1a972c0e1
--- /dev/null
+++ b/gfx/tests/crashtests/1317403-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<style>
+#o {
+ padding: 27660vw;
+ outline: thick dotted;
+ mask: subtract url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=), linear-gradient(#FFF, #555);
+}
+</style>
+<script>
+document.addEventListener("DOMContentLoaded", function(){
+ o.appendChild(document.createElement("div"));
+ o.appendChild(document.createElement("frame"));
+ o.appendChild(document.createElement("div"));
+});
+</script>
+<span id=o />
+</html>
diff --git a/gfx/tests/crashtests/1325159-1.html b/gfx/tests/crashtests/1325159-1.html
new file mode 100644
index 000000000..2441e9f2f
--- /dev/null
+++ b/gfx/tests/crashtests/1325159-1.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<style>
+#o_1 {
+ position: absolute;
+ top: 0px;
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+#o_2 {
+ height: 10000px;
+}
+</style>
+<script>
+function boom(){
+ let doc = document.documentElement;
+ o_2.style.MozBorderEndStyle = "dotted";
+ doc.style.MozPerspective = "24.5pt";
+ o_0.style.MozTransformStyle = "preserve-3d";
+ doc.style.overflow = "-moz-scrollbars-horizontal";
+ doc.style.textOverflow = "''";
+ o_0.style.offsetInlineStart = "calc(3*25px)";
+ doc.style.paddingTop = "calc(67108864%)";
+ doc.style.width = "3e-0%";
+ o_0.style.display = "-moz-stack";
+ o_0.style.position = "relative";
+}
+addEventListener("DOMContentLoaded", boom);
+</script>
+</head>
+<body id=o_0><div id=o_1></div><div id=o_2></div></body>
+</html>
diff --git a/gfx/tests/crashtests/156882-1.html b/gfx/tests/crashtests/156882-1.html
new file mode 100644
index 000000000..c861e0a83
--- /dev/null
+++ b/gfx/tests/crashtests/156882-1.html
@@ -0,0 +1,205 @@
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="charset=x-user-defined">
+<TITLE>Testcase</TITLE>
+</HEAD>
+<BODY>
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+&ouml;
+
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/gfx/tests/crashtests/157320-1.html b/gfx/tests/crashtests/157320-1.html
new file mode 100644
index 000000000..77119b6aa
--- /dev/null
+++ b/gfx/tests/crashtests/157320-1.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<title>foobidu</title>
+<meta http-equiv="Content-Type" content="text/html; charset=big5">
+
+</head>
+<body bgcolor="#C2C2C2" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
+ <!-- mozilla doesn't like that! //-->
+ <!-- but this works!!! //-->
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/199379-1.html b/gfx/tests/crashtests/199379-1.html
new file mode 100644
index 000000000..ba4afe0b5
--- /dev/null
+++ b/gfx/tests/crashtests/199379-1.html
@@ -0,0 +1,10 @@
+<html>
+ <head>
+ <title>bug 199379</title>
+ </head>
+ <body>
+ <form>
+ <input style="font-size:1000; width:32; height:34;" TYPE="SUBMIT" VALUE="link=basket&prod=96&tariff_id=999&desc=Fast Gate BASIC (ISDN 64K) &tariff=74,82&cp_id=5555&rating_tariff_id=0&parent_tariff_id=978&parent_product_id=&sItemDesc=Fast Gate BASIC (ISDN 64K) &package_id=0">
+ </form>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/206561-1.html b/gfx/tests/crashtests/206561-1.html
new file mode 100644
index 000000000..f17cf1121
--- /dev/null
+++ b/gfx/tests/crashtests/206561-1.html
@@ -0,0 +1,8 @@
+<html>
+ <head>
+ <title>bug 206561</title>
+ </head>
+ <body>
+ <div style="height: 100%; opacity: 0.8;"></div>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/248518-1.html b/gfx/tests/crashtests/248518-1.html
new file mode 100644
index 000000000..b15c78612
--- /dev/null
+++ b/gfx/tests/crashtests/248518-1.html
@@ -0,0 +1,7 @@
+<html><head>
+ <style type="text/css">
+ <!--
+ body{font: 10pt lucida;}
+ -->
+ </style>
+</head><body>Hello.</body></html>
diff --git a/gfx/tests/crashtests/306649-1.xml b/gfx/tests/crashtests/306649-1.xml
new file mode 100644
index 000000000..c9861807c
--- /dev/null
+++ b/gfx/tests/crashtests/306649-1.xml
@@ -0,0 +1 @@
+<?xml version="1.0"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg"> <g transform="scale(1e10)"> <rect x="0" y="0" width="400" height="200" rx="50" ry="50" fill="none" stroke="purple" stroke-width="30"/> </g> </svg> \ No newline at end of file
diff --git a/gfx/tests/crashtests/306902-1.xml b/gfx/tests/crashtests/306902-1.xml
new file mode 100644
index 000000000..24e8c068a
--- /dev/null
+++ b/gfx/tests/crashtests/306902-1.xml
@@ -0,0 +1,14 @@
+<?xml version='1.0'?>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<body>
+
+<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><msup>
+
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+</msup></math>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/333861-1.html b/gfx/tests/crashtests/333861-1.html
new file mode 100644
index 000000000..694b06b3b
--- /dev/null
+++ b/gfx/tests/crashtests/333861-1.html
@@ -0,0 +1,18 @@
+<html><head>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!--
+Copyright Georgi Guninski
+-->
+
+ <style>
+ button
+ {
+ font-size: 131131px;
+ }
+ </style>
+ </head><body>
+
+ <button>f00</button>
+</body></html>
diff --git a/gfx/tests/crashtests/334735-1.html b/gfx/tests/crashtests/334735-1.html
new file mode 100644
index 000000000..f1a2c04a5
--- /dev/null
+++ b/gfx/tests/crashtests/334735-1.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<title>demo 1</title>
+</head><body>
+
+These unusual characters, &#1048713;,
+cause Firefox to crash &#x100089;
+
+
+</body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/345576-1.html b/gfx/tests/crashtests/345576-1.html
new file mode 100644
index 000000000..547d4606c
--- /dev/null
+++ b/gfx/tests/crashtests/345576-1.html
@@ -0,0 +1,6 @@
+<html>
+<head>
+</head>
+<body>
+<font
+font-weight=5555555555555555555555555555555555555555555555555555555555555555555555 \ No newline at end of file
diff --git a/gfx/tests/crashtests/345629-1.html b/gfx/tests/crashtests/345629-1.html
new file mode 100644
index 000000000..0706b9d0d
--- /dev/null
+++ b/gfx/tests/crashtests/345629-1.html
@@ -0,0 +1,7 @@
+<html>
+<head>
+</head>
+<body>
+<font font-weight="467591">x</font>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/348462-1.html b/gfx/tests/crashtests/348462-1.html
new file mode 100644
index 000000000..e49b89158
--- /dev/null
+++ b/gfx/tests/crashtests/348462-1.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<style>.classname { font-size: 2666.3423423423423424 }</style>
+<title>bla crash</title>
+</head>
+
+<body>
+<p class="classname">crash!</p>
+</body>
+
+</html>
diff --git a/gfx/tests/crashtests/348462-2.html b/gfx/tests/crashtests/348462-2.html
new file mode 100644
index 000000000..5efbaa5b0
--- /dev/null
+++ b/gfx/tests/crashtests/348462-2.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<script type="text/javascript">
+
+function boom() {
+ document.body.appendChild(document.createTextNode(String.fromCharCode(25261)))
+ document.body.style.fontSize = '8388608px';
+}
+
+</script>
+</head>
+<body onload="boom()"></body>
+</html>
diff --git a/gfx/tests/crashtests/366643.html b/gfx/tests/crashtests/366643.html
new file mode 100644
index 000000000..b8ce73a1f
--- /dev/null
+++ b/gfx/tests/crashtests/366643.html
@@ -0,0 +1,7 @@
+<html><head>
+ <title>Uniscribe::Itemize crash</title>
+</head><body>
+
+x.&#8205;x.&#8205;x
+
+</body></html>
diff --git a/gfx/tests/crashtests/369688-1.html b/gfx/tests/crashtests/369688-1.html
new file mode 100644
index 000000000..f71c8b091
--- /dev/null
+++ b/gfx/tests/crashtests/369688-1.html
@@ -0,0 +1,19 @@
+<html class="reftest-wait">
+
+<head>
+<script>
+function boom()
+{
+ document.body.style.fontSizeAdjust = 0xffffffff;
+ document.documentElement.removeAttribute("class");
+}
+</script>
+</head>
+
+<body onload="setTimeout(boom, 30);">
+
+<p>Foo</p>
+
+</body>
+
+</html>
diff --git a/gfx/tests/crashtests/369947-1.html b/gfx/tests/crashtests/369947-1.html
new file mode 100644
index 000000000..efb0aed9c
--- /dev/null
+++ b/gfx/tests/crashtests/369947-1.html
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+</head>
+
+<body>
+
+<pre>bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar &rho; foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo </pre>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/372094-1.xhtml b/gfx/tests/crashtests/372094-1.xhtml
new file mode 100644
index 000000000..714e510af
--- /dev/null
+++ b/gfx/tests/crashtests/372094-1.xhtml
@@ -0,0 +1,45 @@
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-wait">
+<head>
+<script>
+<![CDATA[
+
+function init()
+{
+ setTimeout(function()
+ {
+ targetWindow = window.frames[0];
+ targetDocument = targetWindow.document;
+ targetDocument.body.appendChild(targetDocument.importNode(document.getElementById('rootish'), true));
+ targetDocument.designMode = 'on';
+ setTimeout(boom, 30);
+ }, 30);
+}
+
+function boom()
+{
+ var r = targetDocument.createRange();
+ r.setStart(targetDocument.getElementById("bar"), 0);
+ r.setEnd(targetDocument.getElementById("baz").firstChild, 0);
+ targetWindow.getSelection().addRange(r);
+
+ targetDocument.execCommand("indent", false, null);
+
+ document.documentElement.removeAttribute("class");
+}
+
+]]>
+</script>
+</head>
+
+<body onload="init()">
+
+<iframe src="data:text/html," style="width: 95%; height: 500px;"/>
+
+<div id="rootish">
+ <div>Foo</div>
+ <div id="bar">Bar</div>
+ <div><select><option id="baz">baz</option></select></div>
+</div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/376627-1.html b/gfx/tests/crashtests/376627-1.html
new file mode 100644
index 000000000..44319efed
--- /dev/null
+++ b/gfx/tests/crashtests/376627-1.html
@@ -0,0 +1,3 @@
+<html>
+<body>
+&#01;
diff --git a/gfx/tests/crashtests/377231-1.html b/gfx/tests/crashtests/377231-1.html
new file mode 100644
index 000000000..c3e52284c
--- /dev/null
+++ b/gfx/tests/crashtests/377231-1.html
@@ -0,0 +1 @@
+<div><span>&#1741;</span><span>&#8232;</span><span>&#1994;</span></div>
diff --git a/gfx/tests/crashtests/377232-1.xhtml b/gfx/tests/crashtests/377232-1.xhtml
new file mode 100644
index 000000000..4ab81eca0
--- /dev/null
+++ b/gfx/tests/crashtests/377232-1.xhtml
@@ -0,0 +1,5 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body style="font-family: arial">
+<div>&#1050;&#769;</div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/377461-1.xhtml b/gfx/tests/crashtests/377461-1.xhtml
new file mode 100644
index 000000000..adeaaaccf
--- /dev/null
+++ b/gfx/tests/crashtests/377461-1.xhtml
@@ -0,0 +1,16 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script>
+function boom()
+{
+ var div = document.getElementById("div");
+ div.textContent = "\uFDDE\r\uFDDE";
+}
+
+</script>
+</head>
+
+<body onload="boom();">
+<div id="div"></div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/383473-1.html b/gfx/tests/crashtests/383473-1.html
new file mode 100644
index 000000000..12d6d0f5b
--- /dev/null
+++ b/gfx/tests/crashtests/383473-1.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<body>
+
+<span style="font-size:72px; font-size-adjust:24">X</span>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/383872-1.svg b/gfx/tests/crashtests/383872-1.svg
new file mode 100644
index 000000000..2d32753f7
--- /dev/null
+++ b/gfx/tests/crashtests/383872-1.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml">
+
+<html:style>
+
+#para {
+ width: 30px;
+ height: 0.5px;
+ background: url("data:image/gif;base64,R0lGODlhMQA8ANX%2FAJ22hRgcFI6keHqNZzpDMZ%2B2hqO4iR8jGpythSgsIa28kwoLCGJrULzCoFBQPsfFqb20hRMRDMq4is62hbeidjMuJNC3iJ%2BMaIJyVdK6jdi%2Fm6KUgNfJtSYhGkM5LsetluvGtebLvq2PiPHLwsDAwPbMx7%2BbmdKpqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACQALAAAAAAxADwAAAb%2FQJJwSCwaj8TSqIRsOkmlKNNZCj0UBoPiEZo%2BjVUO5%2FFoNB6cUGgJJYYaBoAcUDCcQ99hiQMvzP91CmYNHEwjDwZ%2Bf3J1HHkkHApzA5SVAweYBwQMCGdwAgwVCaOjFQwABnhPIw1%2BAwkEsbEHC6dyA7F1BaAMAosCDg4ADV8ccbgDiwnJiw62zouTCQAKXkclDaAEzH%2FL0QMOoguk24soqCNOIwoM5dHei%2B22kwTm6E4hAvDR%2FJfc3fYUpGsSAhq%2Fg7gOTvtzTkEXggsP8hPw748wAJXO2SmEJEREiSAPOiCwYFsdA46OeAzJEiSyLCmLHPrYsuYcZzBlRjLw0UFF%2F5sICTRKgkhOxEu%2BgIbENXSIsTmmfAVTypIpyiHr5DhAwVXcT6qLEiqIGeJYvW7zwPJjcNGhkLIANoUlkBSjWgan8CYt8EAIBzkH6s5hm%2FSAWgEBEjgQgIJZNUiARRoGEEAwUMa3ygmEDGByPzls1QKAlzAVJD%2BeQV4Eu8%2FwVbipRUvEPMcwXxJZ3ck%2BCCzt5AZRGgBgQHP3n9B%2FbG9%2BOqCycXM0BSjHUwJRAQYHAmD6%2BrwdHbe4r%2FjR%2FfyXu81C9kgiXx60dzrEiBZg3z4WM9NFytIH4JNRgf8A1qRbfDIpsF85BkCg4IJZKPIHRXMIQBcqDQxkxAOERbONARtAMP%2FBhx9aIAEKE8oBTIl4afGAhUaEYOBqtQmggDMg1ojCVKAFk4kDCHDABj4IjMTNKwloQIEHNYKIggQJkGhfFiqy%2BISL7WQnSwUaTFBBkh%2BiMIEGDWywgQlqqCFlHmFcIeYGHTBwwZZcennmI1R4cYIIb3I5gZd09nmElnry6eegQgAapwWEEmpokihkkOigi9qYwZyPNhGpkpNW%2BsgIRwZqAaWaFqEBXoFOAEKoX1DgAAWlnopqEyBg4ACIFtRYwQUavHrECCCoesGHF9R66wRvWuDqoCcMdIIJzDbL7AUOYPAhBB182EECrLJ1gasjNHvCF6FUUEEw5JLrQQSzTiCRa7odYIDkBB5cK%2B64wVTgwb34eoBBHrzCGwGxFUTwLrzQ%2FkpBBRiAYM2jxHXQgb72YvAmq%2Bo6AC2rBX84AqiriJCAh9B6cEEGGViAQQK%2FQiDyyfe66eGHmfqZpQYlW6wBG7y%2BeauswF4gKwrzTmBBrroKMYIFFyQgsdAhZqDBmhpocGzRJIDwQQdOU%2B2nCZUGAQA7");
+}
+
+</html:style>
+
+<foreignObject width="100" height="100" x="100" y="100" transform="scale(.7,.7)">
+ <html:div>
+ <html:p id="para">Foo</html:p>
+ </html:div>
+</foreignObject>
+
+</svg>
diff --git a/gfx/tests/crashtests/385228-1.svg b/gfx/tests/crashtests/385228-1.svg
new file mode 100644
index 000000000..ec448b5b3
--- /dev/null
+++ b/gfx/tests/crashtests/385228-1.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" onload="setTimeout(boom, 10);" class="reftest-wait">
+
+<script type="text/javascript">
+
+function boom()
+{
+ var ttt = document.getElementById("ttt");
+ ttt.appendChild(document.createTextNode("Pattern on stroke"));
+ ttt.appendChild(document.createTextNode("\n"));
+ ttt.appendChild(document.createTextNode("\n"));
+
+ document.documentElement.removeAttribute("class");
+}
+
+</script>
+
+
+<text id="ttt" stroke="url(#pat2)" x="25" y="275"></text>
+
+<pattern id="pat2" width="20" height="1000"><g/></pattern>
+
+</svg>
diff --git a/gfx/tests/crashtests/385228-2.svg b/gfx/tests/crashtests/385228-2.svg
new file mode 100644
index 000000000..82586fcfa
--- /dev/null
+++ b/gfx/tests/crashtests/385228-2.svg
@@ -0,0 +1,20 @@
+<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 480 360" onload="yaa();" class="reftest-wait">
+
+<g id="g">
+ <rect width="440" height="340" fill="url(#pat1)"/>
+ <pattern id="pat1" width="20" height="20"><rect/></pattern>
+</g>
+
+<script type="text/javascript">
+
+function yaa()
+{
+ var g = document.getElementById("g");
+ document.documentElement.removeChild(g);
+ document.documentElement.appendChild(g);
+
+ document.documentElement.removeAttribute("class");
+}
+</script>
+
+</svg>
diff --git a/gfx/tests/crashtests/385289-1.xhtml b/gfx/tests/crashtests/385289-1.xhtml
new file mode 100644
index 000000000..666756c01
--- /dev/null
+++ b/gfx/tests/crashtests/385289-1.xhtml
@@ -0,0 +1,30 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script>
+function boom()
+{
+ var mss = document.getElementById("mss");
+
+ var j = document.createTextNode("j");
+ var comb = document.createTextNode("\u0302");
+
+ mss.appendChild(j);
+ mss.appendChild(comb);
+}
+</script>
+</head>
+
+<body onload="boom()">
+
+<div>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <msub id="mss">
+ <mi>v</mi>
+ <mn>1</mn>
+ </msub>
+ </math>
+</div>
+
+</body>
+
+</html>
diff --git a/gfx/tests/crashtests/385417-1.html b/gfx/tests/crashtests/385417-1.html
new file mode 100644
index 000000000..0bf70ec34
--- /dev/null
+++ b/gfx/tests/crashtests/385417-1.html
@@ -0,0 +1 @@
+<html><body>&#x22A3;&zwnj;</body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/385417-2.html b/gfx/tests/crashtests/385417-2.html
new file mode 100644
index 000000000..f94f21e69
--- /dev/null
+++ b/gfx/tests/crashtests/385417-2.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+</head>
+<body>
+
+<div><span style="text-transform: capitalize; font-variant: small-caps;">
+x</span></div>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/385423-1.html b/gfx/tests/crashtests/385423-1.html
new file mode 100644
index 000000000..748776c30
--- /dev/null
+++ b/gfx/tests/crashtests/385423-1.html
@@ -0,0 +1,17 @@
+<html class="reftest-wait">
+<head>
+<script>
+function boom()
+{
+ var div = document.getElementById("div")
+ div.appendChild(document.createTextNode(String.fromCharCode(0x076F) + String.fromCharCode(13) + String.fromCharCode(0x076F)));
+
+ document.documentElement.removeAttribute("class");
+}
+</script>
+
+</head>
+<body onload="setTimeout(boom, 10);">
+<div style="text-transform: lowercase" id="div">&#x76F;&#13;&#x76F;</div>
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/385423-2.html b/gfx/tests/crashtests/385423-2.html
new file mode 100644
index 000000000..7de8bdaaf
--- /dev/null
+++ b/gfx/tests/crashtests/385423-2.html
@@ -0,0 +1,17 @@
+<html class="reftest-wait">
+<head>
+<script>
+function boom()
+{
+ var div = document.getElementById("div")
+ div.appendChild(document.createTextNode(String.fromCharCode(0x076F) + String.fromCharCode(13) + String.fromCharCode(0x076F)));
+
+ document.documentElement.removeAttribute("class");
+}
+</script>
+
+</head>
+<body onload="setTimeout(boom, 10);">
+<div style="text-transform: lowercase" id="div"></div>
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/385719-1.html b/gfx/tests/crashtests/385719-1.html
new file mode 100644
index 000000000..3081dcc04
--- /dev/null
+++ b/gfx/tests/crashtests/385719-1.html
@@ -0,0 +1 @@
+<div>-<span>&zwj;</span>&#xB235;</div> \ No newline at end of file
diff --git a/gfx/tests/crashtests/389326-1-inner.xhtml b/gfx/tests/crashtests/389326-1-inner.xhtml
new file mode 100644
index 000000000..30236cf8b
--- /dev/null
+++ b/gfx/tests/crashtests/389326-1-inner.xhtml
@@ -0,0 +1,29 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script>
+<![CDATA[
+
+function boom()
+{
+ var f = document.getElementById("f");
+ var s = document.getElementById("s");
+ s.insertBefore(f, s.firstChild);
+
+ setTimeout(rel, 200);
+}
+
+function rel()
+{
+ location.reload();
+}
+
+]]>
+</script>
+
+</head>
+
+<body onload="boom();">
+<font id="f"><b>2</b>"</font>
+<b>"<span id="s">="<b></b></span></b>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/389326-1.html b/gfx/tests/crashtests/389326-1.html
new file mode 100644
index 000000000..2d9451596
--- /dev/null
+++ b/gfx/tests/crashtests/389326-1.html
@@ -0,0 +1,9 @@
+<html class="reftest-wait">
+<head>
+<script>
+setTimeout('document.documentElement.className = ""', 1000);
+</script>
+<body>
+<iframe src="389326-1-inner.xhtml"></iframe>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/390476.html b/gfx/tests/crashtests/390476.html
new file mode 100644
index 000000000..069369fe7
--- /dev/null
+++ b/gfx/tests/crashtests/390476.html
@@ -0,0 +1,13 @@
+<html><head>
+<title>Crash [@ _moz_cairo_win32_scaled_font_select_font] with negative font-size in canvas</title>
+<script>
+ var ctx = document.createElement('canvas').getContext('2d');
+ ctx.translate(100, 100);
+ ctx.mozTextStyle = "-14pt sans serif";
+ ctx.mozDrawText('text');
+</script>
+</head>
+<body>
+<canvas id="canvas"></canvas>
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/393746-1.xhtml b/gfx/tests/crashtests/393746-1.xhtml
new file mode 100644
index 000000000..feba6a3c0
--- /dev/null
+++ b/gfx/tests/crashtests/393746-1.xhtml
@@ -0,0 +1,14 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script>
+function boom()
+{
+ var text = document.createTextNode("t");
+ document.getElementById("foo").appendChild(text);
+}
+</script>
+</head>
+
+<body onload="boom();" dir="rtl"><b id="foo"></b> x </body>
+
+</html>
diff --git a/gfx/tests/crashtests/393749-1.html b/gfx/tests/crashtests/393749-1.html
new file mode 100644
index 000000000..edaba0eb2
--- /dev/null
+++ b/gfx/tests/crashtests/393749-1.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+<script>
+function boom()
+{
+ var het = document.createTextNode(String.fromCharCode(0x05D7)); // hebrew letter het
+ document.getElementById("s").appendChild(het);
+}
+</script>
+</head>
+
+<body onload="boom();" dir="rtl">
+
+<div><span id="s">A</span><span>&nbsp;</span>B</div>
+
+</body>
+
+</html>
diff --git a/gfx/tests/crashtests/393822-1.html b/gfx/tests/crashtests/393822-1.html
new file mode 100644
index 000000000..e763632df
--- /dev/null
+++ b/gfx/tests/crashtests/393822-1.html
@@ -0,0 +1,32 @@
+<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-wait">
+<head>
+<script>
+
+var ff;
+var jj;
+
+function boom()
+{
+ ff = document.createElement("font");
+ ff.setAttribute("size", "-2");
+ ff.appendChild(document.createTextNode("G"));
+
+ jj = document.getElementById("jj");
+
+ jj.appendChild(ff);
+ setTimeout(boom2, 30);
+}
+
+function boom2()
+{
+ jj.removeChild(ff);
+
+ document.documentElement.removeAttribute("class");
+}
+
+</script>
+</head>
+
+<body onload="boom();" dir="rtl"><div id="jj">h </div></body>
+
+</html>
diff --git a/gfx/tests/crashtests/394246-1.html b/gfx/tests/crashtests/394246-1.html
new file mode 100644
index 000000000..e09facb8b
--- /dev/null
+++ b/gfx/tests/crashtests/394246-1.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+<script>
+function boom()
+{
+ var div = document.getElementById("div");
+ div.innerHTML = div.innerHTML.slice(1);
+}
+</script>
+</head>
+<body onload="boom();">
+
+<div id="div">t
+&#769;</div>
+
+</body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/394246-2.html b/gfx/tests/crashtests/394246-2.html
new file mode 100644
index 000000000..e5fe8c175
--- /dev/null
+++ b/gfx/tests/crashtests/394246-2.html
@@ -0,0 +1,23 @@
+<html class="reftest-wait">
+<head>
+<script>
+function boom()
+{
+ var div = document.getElementById("div");
+ div.innerHTML = div.innerHTML.slice(1);
+ setTimeout(c, 30);
+}
+
+function c()
+{
+ div.innerHTML = div.innerHTML.slice(1);
+ document.documentElement.removeAttribute("class");
+}
+</script>
+</head>
+<body onload="boom();">
+
+<div id="div">t
+&#769;</div>
+
+</body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/394384-1.html b/gfx/tests/crashtests/394384-1.html
new file mode 100644
index 000000000..279c473a0
--- /dev/null
+++ b/gfx/tests/crashtests/394384-1.html
@@ -0,0 +1,26 @@
+<html class="reftest-wait">
+<head>
+<script>
+
+function boom()
+{
+ var t1 = document.createTextNode(String.fromCharCode(0x2011) + String.fromCharCode(13));
+ document.body.appendChild(t1);
+
+ setTimeout(boom2, 30);
+}
+
+function boom2()
+{
+ var letterA = document.createTextNode(String.fromCharCode(65));
+ document.body.appendChild(letterA);
+
+ document.documentElement.removeAttribute("class");
+}
+
+</script>
+</head>
+
+<body onload="setTimeout(boom, 50);"></body>
+
+</html>
diff --git a/gfx/tests/crashtests/394751.xhtml b/gfx/tests/crashtests/394751.xhtml
new file mode 100644
index 000000000..35a65af09
--- /dev/null
+++ b/gfx/tests/crashtests/394751.xhtml
@@ -0,0 +1,3 @@
+<parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">XML Parsing Error: not well-formed
+Location: file:///C:/Documents%20and%20Settings/mw/Bureaublad/crashzone/crash1.xhtml
+Line Number 3, Column 42964:<sourcetext>Line Number 3, Column 42134:&lt;sourcetext&gt;Line Number 3, Column 41312:&amp;lt;sourcetext&amp;gt;Line Number 3, Column 40498:&amp;amp;lt;sourcetext&amp;amp;gt;Line Number 3, Column 39692:&amp;amp;amp;lt;sourcetext&amp;amp;amp;gt;Line Number 3, Column 38894:&amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;gt;Line Number 3, Column 38104:&amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;gt;Line Number 3, Column 37322:&amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 36548:&amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 35782:&amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 35024:&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 34274:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 33532:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 32798:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 32072:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 31354:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 30644:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 29942:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 29248:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 28562:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 27884:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 27214:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 26552:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 25898:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 25252:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 24614:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 23984:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 23362:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 22748:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 22142:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 21544:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 20954:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 20372:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 19798:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 19232:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 18674:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 18124:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 17582:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 17048:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 16522:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 16004:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 15494:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 14992:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 14498:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 14012:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 13534:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 13064:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 12602:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 12148:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 11702:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 11264:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 10834:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 10412:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 9999:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 9594:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 9197:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 8808:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 8427:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 8054:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 7689:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 7332:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 6983:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 6642:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 6309:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 5984:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 5667:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 5358:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 5057:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 4764:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 4479:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 4202:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 3933:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 3672:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 3419:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 3174:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 2937:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 2708:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 2487:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 2274:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 2069:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 1872:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 1683:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 1502:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 1329:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 1164:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 1007:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 3, Column 859:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Line Number 1, Column 743:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;sourcetext&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#" xmlns:aaa="http://www.w3.org/2005/07/aaa" xmlns:xforms="http://www.w3.org/2002/xforms"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;9&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;svg:foreignObject x="0" y="0" width="100%" height="100%"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;wbr style="" id="a" name="b"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;area style="" id="b" name="b"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;=&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/area&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;marquee style="" id="b" name="b"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/marquee&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/wbr&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/svg:foreignObject&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;script style="" id="a" name="c"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;^&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;hx style="" id="b" name="c"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/hx&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;a style="" id="b" name="d"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;aa </sourcetext></parsererror> \ No newline at end of file
diff --git a/gfx/tests/crashtests/395335-1.xhtml b/gfx/tests/crashtests/395335-1.xhtml
new file mode 100644
index 000000000..d9b73edc1
--- /dev/null
+++ b/gfx/tests/crashtests/395335-1.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+<head>
+<script>
+
+function boom()
+{
+ document.getElementById("tree").firstChild.data = "xyz";
+}
+
+</script>
+</head>
+
+<body onload="boom();">
+
+<xul:tree id="tree">a</xul:tree>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/395458-1.html b/gfx/tests/crashtests/395458-1.html
new file mode 100644
index 000000000..80fc55178
--- /dev/null
+++ b/gfx/tests/crashtests/395458-1.html
@@ -0,0 +1,5 @@
+<html>
+<body style="direction: rtl;">
+&#30;
+</body>
+</html>
diff --git a/gfx/tests/crashtests/396321-1.svg b/gfx/tests/crashtests/396321-1.svg
new file mode 100644
index 000000000..603292134
--- /dev/null
+++ b/gfx/tests/crashtests/396321-1.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+
+<text>&#x202B;x</text>
+
+</svg>
diff --git a/gfx/tests/crashtests/398042-1.xhtml b/gfx/tests/crashtests/398042-1.xhtml
new file mode 100644
index 000000000..33c18a605
--- /dev/null
+++ b/gfx/tests/crashtests/398042-1.xhtml
@@ -0,0 +1,13 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<style id="s">
+maligngroup { white-space: pre; }
+</style>
+</head>
+
+<body onload="document.getElementById('s').disabled = true;">
+<ms xmlns="http://www.w3.org/1998/Math/MathML"><maligngroup>
+
+ </maligngroup></ms>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/398042-2.xhtml b/gfx/tests/crashtests/398042-2.xhtml
new file mode 100644
index 000000000..49b40673a
--- /dev/null
+++ b/gfx/tests/crashtests/398042-2.xhtml
@@ -0,0 +1,13 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<style id="s">
+maligngroup { white-space: pre; }
+</style>
+</head>
+
+<body onload="document.getElementById('s').disabled = true;">
+<ms xmlns="http://www.w3.org/1998/Math/MathML"><maligngroup>
+
+</maligngroup></ms>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/402307-1.html b/gfx/tests/crashtests/402307-1.html
new file mode 100644
index 000000000..0f9c2941d
--- /dev/null
+++ b/gfx/tests/crashtests/402307-1.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+</head>
+<body style="font-size: 15000px; word-spacing: 10px;">
+
+ABCDE&#xA2C9;
+&zwj;&#x9BB8;&#x9143;
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/403464-1.html b/gfx/tests/crashtests/403464-1.html
new file mode 100644
index 000000000..459486539
--- /dev/null
+++ b/gfx/tests/crashtests/403464-1.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html>
+<head>
+<title></title>
+
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript">
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<style type="text/css">
+body { margin: 0 4em; font-family: sans-serif; font-size:xx-large;}
+#content { width: 800px; margin: 0 auto; padding: 10em 0;}
+</style>
+
+</head>
+<body>
+
+<div id="content">
+
+ừ̴̵̶̷̸̡̢̧̨̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼͇͈͉͍͎́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̀́͂̓̈́͆͊͋͌̕̚ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣ͘͜͟͢͝͞͠͡
+</div><!-- #content -->
+
+
+<pre>
+u LATIN SMALL LETTER U
+̀ COMBINING GRAVE ACCENT
+́ COMBINING ACUTE ACCENT
+̂ COMBINING CIRCUMFLEX ACCENT
+̃ COMBINING TILDE
+̄ COMBINING MACRON
+̅ COMBINING OVERLINE
+̆ COMBINING BREVE
+̇ COMBINING DOT ABOVE
+̈ COMBINING DIAERESIS
+̉ COMBINING HOOK ABOVE
+̊ COMBINING RING ABOVE
+̋ COMBINING DOUBLE ACUTE ACCENT
+̌ COMBINING CARON
+̍ COMBINING VERTICAL LINE ABOVE
+̎ COMBINING DOUBLE VERTICAL LINE ABOVE
+̏ COMBINING DOUBLE GRAVE ACCENT
+̐ COMBINING CANDRABINDU
+̑ COMBINING INVERTED BREVE
+̒ COMBINING TURNED COMMA ABOVE
+̓ COMBINING COMMA ABOVE
+̔ COMBINING REVERSED COMMA ABOVE
+̕ COMBINING COMMA ABOVE RIGHT
+̖ COMBINING GRAVE ACCENT BELOW
+̗ COMBINING ACUTE ACCENT BELOW
+̘ COMBINING LEFT TACK BELOW
+̙ COMBINING RIGHT TACK BELOW
+̚ COMBINING LEFT ANGLE ABOVE
+̛ COMBINING HORN
+̜ COMBINING LEFT HALF RING BELOW
+̝ COMBINING UP TACK BELOW
+̞ COMBINING DOWN TACK BELOW
+̟ COMBINING PLUS SIGN BELOW
+̠ COMBINING MINUS SIGN BELOW
+̡ COMBINING PALATALIZED HOOK BELOW
+̢ COMBINING RETROFLEX HOOK BELOW
+̣ COMBINING DOT BELOW
+̤ COMBINING DIAERESIS BELOW
+̥ COMBINING RING BELOW
+̦ COMBINING COMMA BELOW
+̧ COMBINING CEDILLA
+̨ COMBINING OGONEK
+̩ COMBINING VERTICAL LINE BELOW
+̪ COMBINING BRIDGE BELOW
+̫ COMBINING INVERTED DOUBLE ARCH BELOW
+̬ COMBINING CARON BELOW
+̭ COMBINING CIRCUMFLEX ACCENT BELOW
+̮ COMBINING BREVE BELOW
+̯ COMBINING INVERTED BREVE BELOW
+̰ COMBINING TILDE BELOW
+̱ COMBINING MACRON BELOW
+̲ COMBINING LOW LINE
+̳ COMBINING DOUBLE LOW LINE
+̴ COMBINING TILDE OVERLAY
+̵ COMBINING SHORT STROKE OVERLAY
+̶ COMBINING LONG STROKE OVERLAY
+̷ COMBINING SHORT SOLIDUS OVERLAY
+̸ COMBINING LONG SOLIDUS OVERLAY
+̹ COMBINING RIGHT HALF RING BELOW
+̺ COMBINING INVERTED BRIDGE BELOW
+̻ COMBINING SQUARE BELOW
+̼ COMBINING SEAGULL BELOW
+̽ COMBINING X ABOVE
+̾ COMBINING VERTICAL TILDE
+̿ COMBINING DOUBLE OVERLINE
+̀ COMBINING GRAVE TONE MARK
+́ COMBINING ACUTE TONE MARK
+͂ COMBINING GREEK PERISPOMENI
+̓ COMBINING GREEK KORONIS
+̈́ COMBINING GREEK DIALYTIKA TONOS
+ͅ COMBINING GREEK YPOGEGRAMMENI
+͆ COMBINING BRIDGE ABOVE
+͇ COMBINING EQUALS SIGN BELOW
+͈ COMBINING DOUBLE VERTICAL LINE BELOW
+͉ COMBINING LEFT ANGLE BELOW
+͊ COMBINING NOT TILDE ABOVE
+͋ COMBINING HOMOTHETIC ABOVE
+͌ COMBINING ALMOST EQUAL TO ABOVE
+͍ COMBINING LEFT RIGHT ARROW BELOW
+͎ COMBINING UPWARDS ARROW BELOW
+͏ COMBINING GRAPHEME JOINER
+͐ COMBINING RIGHT ARROWHEAD ABOVE
+͑ COMBINING LEFT HALF RING ABOVE
+͒ COMBINING FERMATA
+͓ COMBINING X BELOW
+͔ COMBINING LEFT ARROWHEAD BELOW
+͕ COMBINING RIGHT ARROWHEAD BELOW
+͖ COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
+͗ COMBINING RIGHT HALF RING ABOVE
+͘ COMBINING DOT ABOVE RIGHT
+͙ COMBINING ASTERISK BELOW
+͚ COMBINING DOUBLE RING BELOW
+͛ COMBINING ZIGZAG ABOVE
+͜ COMBINING DOUBLE BREVE BELOW
+͝ COMBINING DOUBLE BREVE
+͞ COMBINING DOUBLE MACRON
+͟ COMBINING DOUBLE MACRON BELOW
+͠ COMBINING DOUBLE TILDE
+͡ COMBINING DOUBLE INVERTED BREVE
+͢ COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+ͣ COMBINING LATIN SMALL LETTER A
+
+</pre>
+<p>Friends and neighbors, this terrifying piece of Unicode technology was created by Mr SBP of <a href="http://inamidst.com/odds/supercombiner">inamidst.com</a></p>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/404112-1.html b/gfx/tests/crashtests/404112-1.html
new file mode 100644
index 000000000..aa5d3fea6
--- /dev/null
+++ b/gfx/tests/crashtests/404112-1.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+<title>Google</title>
+</head>
+<style>body,td,a,p,.h{font-family:arial,sans-serif}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}#gbar{float:left;font-weight:bold;height:22px;padding-left:2px}#gbh{border-top:1px solid #c9d7f1;font-size:0;height:0;position:absolute;right:0;top:24px;width:200%}#gbi{background:#fff;border:1px solid;border-color:#c9d7f1 #36c #36c #a2bae7;font-size:13px;top:24px;z-index:1000}#guser{padding-bottom:7px !important}#gbar,#guser{font-size:13px;padding-top:1px !important}@media all{.gb1,.gb3{height:22px;margin-right:.73em;vertical-align:top}}#gbi,.gb2{display:none;position:absolute;width:8em}.gb2{z-index:1001}#gbar a,#gbar a:active,#gbar a:visited{color:#00c;font-weight:normal}.gb2 a,.gb3 a{text-decoration:none}.gb2 a{display:block;padding:.2em .5em}#gbar .gb2 a:hover{background:#36c;color:#fff}
+</style>
+<body>
+<div id="gbh"></div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/404112-2.html b/gfx/tests/crashtests/404112-2.html
new file mode 100644
index 000000000..a3cb47fa4
--- /dev/null
+++ b/gfx/tests/crashtests/404112-2.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+<title>bug 404112</title>
+</head>
+<body>
+<div style="font-size: 0"></div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/405268-1.xhtml b/gfx/tests/crashtests/405268-1.xhtml
new file mode 100644
index 000000000..ecb6ecf21
--- /dev/null
+++ b/gfx/tests/crashtests/405268-1.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<script type="text/javascript">
+//<![CDATA[
+function boom()
+{
+ var div = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
+ document.body.appendChild(div);
+ div.style.fontSize = '68719476736px';
+ div.appendChild(document.createTextNode(String.fromCharCode(0)));
+}
+//]]>
+</script>
+</head>
+
+<body onload="boom()">
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/407761-1.html b/gfx/tests/crashtests/407761-1.html
new file mode 100644
index 000000000..96e9597f7
--- /dev/null
+++ b/gfx/tests/crashtests/407761-1.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html> <head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title></title>
+</head>
+<body>
+<span style="font-family: Verdana">IIIIIiiii'm dumb. ಠ_ಠ</span>
+</body> </html>
diff --git a/gfx/tests/crashtests/407842.html b/gfx/tests/crashtests/407842.html
new file mode 100644
index 000000000..a90c13b3d
--- /dev/null
+++ b/gfx/tests/crashtests/407842.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Gecko Crash Demo</title>
+</head>
+
+<body>
+
+<div>
+ <span style="font-size:463.25em"><a href="#">Hello World!</a></span>
+</div>
+
+</body>
+</html>
+
diff --git a/gfx/tests/crashtests/408754-1.html b/gfx/tests/crashtests/408754-1.html
new file mode 100644
index 000000000..4e716d682
--- /dev/null
+++ b/gfx/tests/crashtests/408754-1.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<style>
+ .a { width: 17895680}
+ .b { width: 10}
+</style>
+</head>
+<body>
+<table><tr>
+<td class="a">a</td><td class="b">b</td>
+</tr></table>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/410728-1.xml b/gfx/tests/crashtests/410728-1.xml
new file mode 100644
index 000000000..deaeb8fc5
--- /dev/null
+++ b/gfx/tests/crashtests/410728-1.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE html PUBLIC
+ "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
+ "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"
+[
+ <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
+]>
+<math display="block" xmlns="&mathml;">
+ <mi>f &#x0332;</mi>
+ <mi>-</mi>
+ <mo>+</mo>
+ <mo> -</mo>
+ <mo>&#x0332;</mo>
+</math>
diff --git a/gfx/tests/crashtests/416637-1.html b/gfx/tests/crashtests/416637-1.html
new file mode 100644
index 000000000..48323a744
--- /dev/null
+++ b/gfx/tests/crashtests/416637-1.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<head></head>
+<body style="font-size: 10000%">&#x2029;&#x0301;</body>
+</html>
diff --git a/gfx/tests/crashtests/419095-1.html b/gfx/tests/crashtests/419095-1.html
new file mode 100644
index 000000000..9f47af262
--- /dev/null
+++ b/gfx/tests/crashtests/419095-1.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+
+function boom()
+{
+ document.body.appendChild(document.createTextNode(String.fromCharCode(0x202E)));
+ document.body.appendChild(document.createTextNode(String.fromCharCode(0x000D)));
+ document.body.appendChild(document.createTextNode(String.fromCharCode(0x200D)));
+ document.body.appendChild(document.createTextNode(String.fromCharCode(0xD75A)));
+ document.body.appendChild(document.createTextNode(String.fromCharCode(0xD63F)));
+}
+
+</script>
+</head>
+
+<body onload="boom();">
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/419255-1.html b/gfx/tests/crashtests/419255-1.html
new file mode 100644
index 000000000..acde950dd
--- /dev/null
+++ b/gfx/tests/crashtests/419255-1.html
@@ -0,0 +1,4 @@
+<html>
+<head></head>
+<body><div style="text-transform: capitalize">&#x5426; &#x200C;</body>
+</html>
diff --git a/gfx/tests/crashtests/420945-1.html b/gfx/tests/crashtests/420945-1.html
new file mode 100644
index 000000000..a6eb2d57c
--- /dev/null
+++ b/gfx/tests/crashtests/420945-1.html
@@ -0,0 +1,4 @@
+<html>
+<head></head>
+<body dir="rtl"><div>&#x200C;&#x2028;</div></body>
+</html>
diff --git a/gfx/tests/crashtests/420962-1.html b/gfx/tests/crashtests/420962-1.html
new file mode 100644
index 000000000..f8cf8b453
--- /dev/null
+++ b/gfx/tests/crashtests/420962-1.html
@@ -0,0 +1,4 @@
+<html>
+<head></head>
+<body><div>&#x0301;&#x2029;</div></body>
+</html>
diff --git a/gfx/tests/crashtests/421393-1.html b/gfx/tests/crashtests/421393-1.html
new file mode 100644
index 000000000..82b697467
--- /dev/null
+++ b/gfx/tests/crashtests/421393-1.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<script type="text/javascript">
+
+function boom()
+{
+ document.body.appendChild(document.createTextNode("\uCEDD\u5C76\u000D\uCA34"));
+}
+
+</script>
+</head>
+
+<body onload="boom();"><span>&#x202E;&#x05BC;</span></body>
+</html>
diff --git a/gfx/tests/crashtests/421813-1.html b/gfx/tests/crashtests/421813-1.html
new file mode 100644
index 000000000..885408b1b
--- /dev/null
+++ b/gfx/tests/crashtests/421813-1.html
@@ -0,0 +1,4 @@
+<html>
+<head></head>
+<body onload="document.body.appendChild(document.createTextNode('y'));">x&#x2028;&#x200D;&#x202D;<span>&#x0643;</span></body>
+</html>
diff --git a/gfx/tests/crashtests/423110-1.xhtml b/gfx/tests/crashtests/423110-1.xhtml
new file mode 100644
index 000000000..9633ff868
--- /dev/null
+++ b/gfx/tests/crashtests/423110-1.xhtml
@@ -0,0 +1 @@
+<html xmlns="http://www.w3.org/1999/xhtml" style="min-width: -moz-max-content; float: left;"><head style="padding: 200%; display: -moz-inline-box; float: inherit;"></head></html>
diff --git a/gfx/tests/crashtests/423270-1.html b/gfx/tests/crashtests/423270-1.html
new file mode 100644
index 000000000..e7c1d606b
--- /dev/null
+++ b/gfx/tests/crashtests/423270-1.html
@@ -0,0 +1,5 @@
+<html>
+<body>
+<p style="font-family: DejaVu Sans">&#814;</p>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/428633.html b/gfx/tests/crashtests/428633.html
new file mode 100644
index 000000000..cbf601a4a
--- /dev/null
+++ b/gfx/tests/crashtests/428633.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<head></head>
+<body>A&#x101747;AAAAAAA&#x4f47;AAAAA&#xe33;AAAAAA</body>
+</html>
diff --git a/gfx/tests/crashtests/429899-1.html b/gfx/tests/crashtests/429899-1.html
new file mode 100644
index 000000000..11cccd686
--- /dev/null
+++ b/gfx/tests/crashtests/429899-1.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><body><span>&#x1104</span><span>&#x1104</span><span>&#x116A</span></body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/441360.html b/gfx/tests/crashtests/441360.html
new file mode 100644
index 000000000..0f06414e7
--- /dev/null
+++ b/gfx/tests/crashtests/441360.html
@@ -0,0 +1,39 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Testcase for bug </title>
+ <style type="text/css">
+
+ html,body {
+ color:black; background-color:white; font-size:16px; padding:0; margin:0;
+ }
+
+
+ </style>
+</head>
+<body>
+
+<div id="Image"></div>
+
+<script>
+var v;
+function insertImage() {
+ var img_node = document.createElement('iframe');
+ img_node.src = "441360_data.gif";
+ var image_div = document.getElementById('Image');
+ image_div.appendChild(img_node);
+}
+
+insertImage();
+v = document.body.offsetHeight;
+insertImage();
+v = document.body.offsetHeight;
+insertImage();
+v = document.body.offsetHeight;
+insertImage();
+v = document.body.offsetHeight;
+
+</script>
+
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/441360_data.gif b/gfx/tests/crashtests/441360_data.gif
new file mode 100644
index 000000000..96532dc21
--- /dev/null
+++ b/gfx/tests/crashtests/441360_data.gif
Binary files differ
diff --git a/gfx/tests/crashtests/445711.html b/gfx/tests/crashtests/445711.html
new file mode 100644
index 000000000..6ebd37eef
--- /dev/null
+++ b/gfx/tests/crashtests/445711.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/REC-html401-19991224/strict.dtd">
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Tamil testcase</title>
+ </head>
+ <body>
+ <p>&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;&#x0BCC;</p>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/463307-1.html b/gfx/tests/crashtests/463307-1.html
new file mode 100644
index 000000000..2d8eca317
--- /dev/null
+++ b/gfx/tests/crashtests/463307-1.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html style="position: relative; bottom: 4449920388in; margin: 200px;">
+<head></head>
+<body style="background: url(../../../layout/reftests/bugs/repeatable-diagonal-gradient.png);"></body>
+</html>
diff --git a/gfx/tests/crashtests/467703-1.xhtml b/gfx/tests/crashtests/467703-1.xhtml
new file mode 100644
index 000000000..e315baa32
--- /dev/null
+++ b/gfx/tests/crashtests/467703-1.xhtml
@@ -0,0 +1 @@
+<html xmlns="http://www.w3.org/1999/xhtml" style="margin: 78504em; background: url(../../../testing/crashtest/images/tree.gif); font-size: 305203ch; position: relative; left: 65em;"><head></head><body></body></html>
diff --git a/gfx/tests/crashtests/467873-1.html b/gfx/tests/crashtests/467873-1.html
new file mode 100644
index 000000000..ac4a6cdd0
--- /dev/null
+++ b/gfx/tests/crashtests/467873-1.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body onload="document.getElementById('q').appendChild(document.createTextNode('C'));">
+<div style="white-space: pre; direction: rtl;">A<div id="q" style="text-transform: capitalize;">B
+<div></div></div></div>
+</body></html>
diff --git a/gfx/tests/crashtests/470418-1.html b/gfx/tests/crashtests/470418-1.html
new file mode 100644
index 000000000..7f13b8735
--- /dev/null
+++ b/gfx/tests/crashtests/470418-1.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<head></head>
+<body><div style="text-transform: capitalize">&#x06CD;A</div></body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/474410-1.html b/gfx/tests/crashtests/474410-1.html
new file mode 100644
index 000000000..c7ea8e7b2
--- /dev/null
+++ b/gfx/tests/crashtests/474410-1.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style type="text/css">
+
+div { -moz-transform: matrix(3, 1, 16.8, 5.6, 0, 0); }
+div > div { border: 1px dashed #9ab; }
+
+</style>
+</head>
+<body>
+
+<div><div></div></div>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/483120-1.xhtml b/gfx/tests/crashtests/483120-1.xhtml
new file mode 100644
index 000000000..4a15e725b
--- /dev/null
+++ b/gfx/tests/crashtests/483120-1.xhtml
@@ -0,0 +1,23 @@
+<html xmlns="http://www.w3.org/1999/xhtml" style="font-family: monospace;">
+<head>
+
+<bindings xmlns="http://www.mozilla.org/xbl">
+ <binding id="w"><content><div xmlns="http://www.w3.org/1999/xhtml"><children xmlns="http://www.mozilla.org/xbl"/></div></content></binding>
+ <binding id="empty"><content/></binding>
+</bindings>
+
+<script type="text/javascript">
+
+function boom()
+{
+ document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ document.getElementById("d").previousSibling.data += "C";
+ document.getElementById("d").style.MozBinding = "url('#empty')";
+}
+
+</script>
+
+</head>
+
+<body onload="boom();"><span>A&#x202E;<span style="-moz-binding: url('#w');"></span>B<span id="d" style="font-size: 80%; color: green;">D</span></span></body>
+</html>
diff --git a/gfx/tests/crashtests/483120-2.xhtml b/gfx/tests/crashtests/483120-2.xhtml
new file mode 100644
index 000000000..a9e67fe70
--- /dev/null
+++ b/gfx/tests/crashtests/483120-2.xhtml
@@ -0,0 +1,22 @@
+<html xmlns="http://www.w3.org/1999/xhtml" style="font-family: monospace;">
+<head>
+
+<bindings xmlns="http://www.mozilla.org/xbl">
+ <binding id="w"><content><div xmlns="http://www.w3.org/1999/xhtml"><children xmlns="http://www.mozilla.org/xbl"/></div></content></binding>
+ <binding id="empty"><content/></binding>
+</bindings>
+
+<script type="text/javascript">
+
+function boom()
+{
+ document.getElementById("d").previousSibling.data += "C";
+ document.getElementById("d").style.MozBinding = "url('#empty')";
+}
+
+</script>
+
+</head>
+
+<body onload="boom();"><span>A&#x202E;<span style="-moz-binding: url('#w');"></span>B<span id="d" style="font-size: 80%; color: green;">D</span></span></body>
+</html>
diff --git a/gfx/tests/crashtests/487549-1.html b/gfx/tests/crashtests/487549-1.html
new file mode 100644
index 000000000..c20cb483f
--- /dev/null
+++ b/gfx/tests/crashtests/487549-1.html
@@ -0,0 +1,23 @@
+<html>
+<head>
+<title>Bad kern table - bug 487549</title>
+<!--
+ The font used here has an invalid 'kern' table that will crash ATSUI
+ if we attempt to use it.
+ See https://bugzilla.mozilla.org/show_bug.cgi?id=487549
+-->
+<style>
+@font-face {
+ font-family: bad-kern-font;
+ src: url(487549-bad_kern_table.ttf) format("truetype");
+}
+
+body {
+ font-family: bad-kern-font;
+}
+</style>
+</head>
+<body>
+ABC abc 123
+</body>
+</html>
diff --git a/gfx/tests/crashtests/487549-bad_kern_table.ttf b/gfx/tests/crashtests/487549-bad_kern_table.ttf
new file mode 100644
index 000000000..d8da04a3a
--- /dev/null
+++ b/gfx/tests/crashtests/487549-bad_kern_table.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/487724-1.html b/gfx/tests/crashtests/487724-1.html
new file mode 100644
index 000000000..abc158b43
--- /dev/null
+++ b/gfx/tests/crashtests/487724-1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script type="text/javascript">
+
+function boom()
+{
+ var w = document.getElementById("w");
+ var q = document.getElementById("q");
+ var e = document.createTextNode("");
+ document.documentElement.appendChild(document.body);
+ w.appendChild(e);
+ document.documentElement.offsetHeight;
+ w.removeChild(q);
+ document.documentElement.offsetHeight;
+ e.data += " x ";
+}
+
+</script>
+</head>
+
+<body onload="boom();"><span id="w">s&#x202E;<span id="q"></span><div></div><span>a</span></span></body>
+</html>
diff --git a/gfx/tests/crashtests/490777-1.html b/gfx/tests/crashtests/490777-1.html
new file mode 100644
index 000000000..f7e42b54b
--- /dev/null
+++ b/gfx/tests/crashtests/490777-1.html
@@ -0,0 +1,9 @@
+<!-- This crashed on Mac OS X with the modified ATSUI font backend implemented in
+ bug 481948. Crash occurs due to an unpaired low surrogate in text with the
+ right-to-left direction override; this cannot occur in direct HTML content
+ because the unpaired surrogate will be replaced with U+FFFD, but it can be
+ generated from Javascript. -->
+<html>
+<body onload="document.body.appendChild(document.createTextNode('\u202E\u4839\uDC1D'));">
+</body>
+</html>
diff --git a/gfx/tests/crashtests/516512-1.html b/gfx/tests/crashtests/516512-1.html
new file mode 100644
index 000000000..028e4507a
--- /dev/null
+++ b/gfx/tests/crashtests/516512-1.html
@@ -0,0 +1,5 @@
+<!DOCTYPE HTML>
+<html style="font-size: 70368744177663%; -moz-background-size: 2199023255552em 809464690865px; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4%2F58BAAT%2FAf9jgNErAAAAAElFTkSuQmCC);">
+<body>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/532726-1.html b/gfx/tests/crashtests/532726-1.html
new file mode 100644
index 000000000..d89a52475
--- /dev/null
+++ b/gfx/tests/crashtests/532726-1.html
@@ -0,0 +1,5 @@
+<html>
+<body style="word-spacing: 10px">
+<div>X &#x0301;&#x0000;</div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/538065-1.html b/gfx/tests/crashtests/538065-1.html
new file mode 100644
index 000000000..ff6669bee
--- /dev/null
+++ b/gfx/tests/crashtests/538065-1.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<title>Testcase for bug 538065</title>
+<style type="text/css">
+span.test { background: #ff0; }
+</style>
+</head>
+<body>
+<p>U+FEFF: <span class="test">&#xfeff;</span></p>
+<p>U+FFF9: <span class="test">&#xfff9;</span></p>
+<p>U+FFFA: <span class="test">&#xfffa;</span></p>
+<p>U+FFFB: <span class="test">&#xfffb;</span></p>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/546870-1.html b/gfx/tests/crashtests/546870-1.html
new file mode 100644
index 000000000..bc83d90e0
--- /dev/null
+++ b/gfx/tests/crashtests/546870-1.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body onload="document.getElementById('button').value='';">
+<input id="button" type="button" value="Should not crash" style="width: 1px; white-space: normal;">
+</body>
+</html>
diff --git a/gfx/tests/crashtests/557348-1.html b/gfx/tests/crashtests/557348-1.html
new file mode 100644
index 000000000..8248500ce
--- /dev/null
+++ b/gfx/tests/crashtests/557348-1.html
@@ -0,0 +1 @@
+<html style="background: -moz-repeating-radial-gradient(left center , circle closest-side, red, white 100px, black); width: 300px; height: 1px;"></html>
diff --git a/gfx/tests/crashtests/563740-1.html b/gfx/tests/crashtests/563740-1.html
new file mode 100644
index 000000000..8873cfa3a
--- /dev/null
+++ b/gfx/tests/crashtests/563740-1.html
@@ -0,0 +1,2 @@
+<html><body style="font-size-adjust: -18446744073709552000; font-weight: bold;">&#x9385;</body></html>
+
diff --git a/gfx/tests/crashtests/580100-1.html b/gfx/tests/crashtests/580100-1.html
new file mode 100644
index 000000000..41e4a474f
--- /dev/null
+++ b/gfx/tests/crashtests/580100-1.html
@@ -0,0 +1,7 @@
+<html><head>
+<style>@font-face{font-family:t;src:url(580100-bad_hhea_table.ttf);}
+p.t{font-size:40px;font-family:t;}</style>
+</head>
+<body>
+<p class="t">Lorem ipsum</p></body>
+</html>
diff --git a/gfx/tests/crashtests/580100-bad_hhea_table.ttf b/gfx/tests/crashtests/580100-bad_hhea_table.ttf
new file mode 100644
index 000000000..229767423
--- /dev/null
+++ b/gfx/tests/crashtests/580100-bad_hhea_table.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/580212-1.html b/gfx/tests/crashtests/580212-1.html
new file mode 100644
index 000000000..b5af08ddc
--- /dev/null
+++ b/gfx/tests/crashtests/580212-1.html
@@ -0,0 +1,7 @@
+<html><head>
+<style>@font-face{font-family:t;src:url(580212-bad_loca_table.ttf);}
+p.t{font-size:40px;font-family:t;}</style>
+</head>
+<body>
+<p class="t">Lorem ipsum</p></body>
+</html>
diff --git a/gfx/tests/crashtests/580212-bad_loca_table.ttf b/gfx/tests/crashtests/580212-bad_loca_table.ttf
new file mode 100644
index 000000000..ec303a922
--- /dev/null
+++ b/gfx/tests/crashtests/580212-bad_loca_table.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/580233-1.html b/gfx/tests/crashtests/580233-1.html
new file mode 100644
index 000000000..07d4abdcb
--- /dev/null
+++ b/gfx/tests/crashtests/580233-1.html
@@ -0,0 +1,7 @@
+<html><head>
+<style>@font-face{font-family:t;src:url(580233-bad_gpos_table.ttf);}
+p.t{font-size:40px;font-family:t;}</style>
+</head>
+<body>
+<p class="t">Lorem ipsum</p></body>
+</html>
diff --git a/gfx/tests/crashtests/580233-bad_gpos_table.ttf b/gfx/tests/crashtests/580233-bad_gpos_table.ttf
new file mode 100644
index 000000000..c753040ca
--- /dev/null
+++ b/gfx/tests/crashtests/580233-bad_gpos_table.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/580719-1.html b/gfx/tests/crashtests/580719-1.html
new file mode 100644
index 000000000..29fe9f73d
--- /dev/null
+++ b/gfx/tests/crashtests/580719-1.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+<style>
+@font-face {
+ font-family: t;
+ src: url(580719-bad_head_table.ttf);
+}
+
+p.t {
+ font-size: 40px;
+ font-family: t;
+}
+</style>
+</head>
+<body>
+<p class="t">Lorem ipsum</p>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/580719-bad_head_table.ttf b/gfx/tests/crashtests/580719-bad_head_table.ttf
new file mode 100644
index 000000000..9ad4896b0
--- /dev/null
+++ b/gfx/tests/crashtests/580719-bad_head_table.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/593526.html b/gfx/tests/crashtests/593526.html
new file mode 100644
index 000000000..f0de065dc
--- /dev/null
+++ b/gfx/tests/crashtests/593526.html
@@ -0,0 +1 @@
+<html style="max-width: 51079px; width: 730.549in; -moz-appearance: checkbox; box-shadow: 0.2em 0.2em rgb(204, 204, 204);">
diff --git a/gfx/tests/crashtests/593526.xul b/gfx/tests/crashtests/593526.xul
new file mode 100644
index 000000000..d1da4c3d8
--- /dev/null
+++ b/gfx/tests/crashtests/593526.xul
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+<box style="max-width: 51079px; width: 730.549in; -moz-appearance: checkbox; box-shadow: 0.2em 0.2em rgb(204, 204, 204);"></box>
+</window>
+
diff --git a/gfx/tests/crashtests/594654-1.xhtml b/gfx/tests/crashtests/594654-1.xhtml
new file mode 100644
index 000000000..4ab2ce6e7
--- /dev/null
+++ b/gfx/tests/crashtests/594654-1.xhtml
@@ -0,0 +1,5 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body onload="document.getElementById('x').appendChild(document.createElementNS('http://www.w3.org/1998/Math/MathML', 'mrow'));">
+<div style="position: fixed;"><div><msubsup xmlns="http://www.w3.org/1998/Math/MathML" id="x"/></div><menclose xmlns="http://www.w3.org/1998/Math/MathML"/></div><mroot xmlns="http://www.w3.org/1998/Math/MathML"/>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/595042-1.html b/gfx/tests/crashtests/595042-1.html
new file mode 100644
index 000000000..0cc2b2247
--- /dev/null
+++ b/gfx/tests/crashtests/595042-1.html
@@ -0,0 +1 @@
+<html style="-moz-box-shadow: 0 0 0.2em blue; -moz-appearance: button;"><body style="padding: 113in;"></body></html>
diff --git a/gfx/tests/crashtests/595727-1.html b/gfx/tests/crashtests/595727-1.html
new file mode 100644
index 000000000..3b5d242aa
--- /dev/null
+++ b/gfx/tests/crashtests/595727-1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+<script>
+
+function doTest()
+{
+ var r = document.documentElement;
+ while(r.firstChild) { r.removeChild(r.firstChild); }
+ var body = document.createElementNS("http://www.w3.org/1999/xhtml", "body");
+ r.appendChild(body);
+ body.contentEditable = "true";
+ document.execCommand("inserthtml", false, "<span style=\"position:relative;left:0.8px\">a<select></select>a</span>");
+
+ document.documentElement.removeAttribute("class");
+}
+
+document.addEventListener("MozReftestInvalidate", doTest, false);
+</script>
+</head>
+
+<body></body>
+</html>
diff --git a/gfx/tests/crashtests/624198.xhtml b/gfx/tests/crashtests/624198.xhtml
new file mode 100644
index 000000000..67d207b7a
--- /dev/null
+++ b/gfx/tests/crashtests/624198.xhtml
@@ -0,0 +1 @@
+<html xmlns="http://www.w3.org/1999/xhtml"><msqrt xmlns="http://www.w3.org/1998/Math/MathML"><mpadded depth="+98774970791px"/></msqrt></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/633322-1.html b/gfx/tests/crashtests/633322-1.html
new file mode 100644
index 000000000..89b0aaa61
--- /dev/null
+++ b/gfx/tests/crashtests/633322-1.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><body><div style="text-transform: uppercase">&#xA6F8;&#xDF;&#x200B;</div></body></html>
diff --git a/gfx/tests/crashtests/633453-1.html b/gfx/tests/crashtests/633453-1.html
new file mode 100644
index 000000000..2b08776c0
--- /dev/null
+++ b/gfx/tests/crashtests/633453-1.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+</head>
+<body>
+<p>Откуда: אֶרֶץ יִשְׂרָאֵל‎</p>
+</body>
+</html>
+
diff --git a/gfx/tests/crashtests/662467-1.html b/gfx/tests/crashtests/662467-1.html
new file mode 100644
index 000000000..ccf3c7d8e
--- /dev/null
+++ b/gfx/tests/crashtests/662467-1.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html><html style="min-height: 1540095em; opacity: 0.2; -moz-appearance: toolbar"><body></body></html>
+
diff --git a/gfx/tests/crashtests/665218.html b/gfx/tests/crashtests/665218.html
new file mode 100644
index 000000000..944b341bf
--- /dev/null
+++ b/gfx/tests/crashtests/665218.html
@@ -0,0 +1,8 @@
+<html class="reftest-print"><head>
+<style id="e"> @font-face {
+ font-family: "aaa";
+ src: url("doesnotexist.TTF");
+ }
+ * { font-family: "aaa"; }</style>
+</head>
+<body>
diff --git a/gfx/tests/crashtests/675550-1.html b/gfx/tests/crashtests/675550-1.html
new file mode 100644
index 000000000..d6c25b59e
--- /dev/null
+++ b/gfx/tests/crashtests/675550-1.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+
+.justify {
+ width: 400px;
+ text-align: justify;
+ background: lightgreen;
+}
+
+.force {
+ width: 400px;
+ display: inline-block;
+ height: 3px;
+ background: yellow;
+}
+
+</style>
+</head>
+<body onload="document.getElementById('s').textContent='\u202E\0 \u1DCEz'; /* cannot express \0 in html markup using amp escape */">
+<div class="justify"><span class="force"></span><span id="s"></span><span class="force"></span></div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/686190-1.html b/gfx/tests/crashtests/686190-1.html
new file mode 100644
index 000000000..26cda094f
--- /dev/null
+++ b/gfx/tests/crashtests/686190-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<head>
+<style type="text/css">
+@font-face {
+ font-family: foo;
+ src: url(Prototype.ttf);
+}
+body {
+ font-family: foo;
+ font-size: 2000px;
+ font-weight: 900;
+}
+</style>
+</head>
+<body>
+xyzzy
+</body>
+</html>
diff --git a/gfx/tests/crashtests/691581-1.html b/gfx/tests/crashtests/691581-1.html
new file mode 100644
index 000000000..ce2f35eaf
--- /dev/null
+++ b/gfx/tests/crashtests/691581-1.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html style="font-size: 0.03rem;">
+<body>
+ Test Text
+</body>
+</html>
diff --git a/gfx/tests/crashtests/693143-1.html b/gfx/tests/crashtests/693143-1.html
new file mode 100644
index 000000000..80b1e891a
--- /dev/null
+++ b/gfx/tests/crashtests/693143-1.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Tiny ugly fonts</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+<style type="text/css">
+
+body {
+ margin: 50px;
+}
+
+p, div {
+ margin: 0;
+}
+
+#test {
+ font-size: 1px;
+}
+
+#test p {
+ font-size: 8.3%;
+}
+
+#f1 { font-family: Terminal; }
+#f2 { font-family: FixedSys; }
+#f3 { font-family: Script; }
+#f4 { font-family: Roman; }
+
+</style>
+
+</head>
+<body>
+
+<h4>No text should show below this line</h4>
+<div id="test">
+<p id="f1">ugly font</p>
+<p id="f2">ugly font</p>
+<p id="f3">ugly font</p>
+<p id="f4">ugly font</p>
+</div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/696936-1.html b/gfx/tests/crashtests/696936-1.html
new file mode 100644
index 000000000..0ce95ddd6
--- /dev/null
+++ b/gfx/tests/crashtests/696936-1.html
@@ -0,0 +1,2 @@
+<!-- quirks mode only -->
+<body style="-moz-transform: perspective(-3);"></body>
diff --git a/gfx/tests/crashtests/699563-1.html b/gfx/tests/crashtests/699563-1.html
new file mode 100644
index 000000000..e73968d71
--- /dev/null
+++ b/gfx/tests/crashtests/699563-1.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html><html style="width: 16px; height: 16px; -moz-transform: matrix3d(1, 2, 300, 4, 5, 6000, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); filter: url(&quot;#none&quot;);"><div style="height: 100px; width: 100px;"></div></html>
+
diff --git a/gfx/tests/crashtests/710149-1.html b/gfx/tests/crashtests/710149-1.html
new file mode 100644
index 000000000..930ef9551
--- /dev/null
+++ b/gfx/tests/crashtests/710149-1.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+
+<script>
+
+function boom()
+{
+ var d = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
+ d.style.setProperty("-moz-transform", "translate(0pt, 10px)", "");
+ d.style.setProperty("opacity", "0.8", "");
+ d.style.setProperty("background-color", "gray", "");
+ var c = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
+ (d).appendChild(c);
+ (document.body).appendChild(d);
+ c.getContext("2d");
+}
+
+</script>
+
+<body onload="setTimeout(boom, 100);"></body>
diff --git a/gfx/tests/crashtests/766452-1.html b/gfx/tests/crashtests/766452-1.html
new file mode 100644
index 000000000..abb696979
--- /dev/null
+++ b/gfx/tests/crashtests/766452-1.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<script>
+
+document.createElement('canvas').getContext('2d').measureText("\u0CC4\u0CA7\u200C");
+
+</script>
diff --git a/gfx/tests/crashtests/766452-2.html b/gfx/tests/crashtests/766452-2.html
new file mode 100644
index 000000000..b70d6f813
--- /dev/null
+++ b/gfx/tests/crashtests/766452-2.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div style="font-family:Arial Unicode MS">&#x0CC4;&#x0CA7;&#x200C;</div>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/768079-1.html b/gfx/tests/crashtests/768079-1.html
new file mode 100644
index 000000000..b61e6607e
--- /dev/null
+++ b/gfx/tests/crashtests/768079-1.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<html style="-moz-perspective: 7000px; overflow: hidden;">
+<body style="overflow: hidden; -moz-transform: rotateX(30deg); border-radius: 1px; -moz-columns: 2 10px; visibility: collapse;">X</body>
+</html>
diff --git a/gfx/tests/crashtests/783041-1.html b/gfx/tests/crashtests/783041-1.html
new file mode 100644
index 000000000..0e57a7315
--- /dev/null
+++ b/gfx/tests/crashtests/783041-1.html
@@ -0,0 +1,63 @@
+<html>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+ <head>
+ <style>
+ #el7 {
+ font-size:.92em
+ }
+ #el0 {
+ height: 200px ! important;
+ margin: 0px;
+ display: table;
+ font-size:.92em
+ }
+
+ #el3 {
+ line-height: 0.5px;
+ text-shadow: 0px 5px 5px, 0px -20px 10px;
+ display: table-row-group;
+ transform: translate3d(-3px, -300px, 0px);
+ }
+
+ #el5 {
+ height:1em;
+ display:block;
+ }
+
+ .c4 {
+ margin: 1em;
+ padding: 0.5em;
+ }
+ </style>
+ <script>
+ onload = function() {
+ el7=document.createElement('iframe')
+ el7.setAttribute('id', 'el7')
+ document.body.appendChild(el7)
+
+ el0=document.createElement('span')
+ el0.setAttribute('id','el0')
+ document.body.appendChild(el0)
+ el0.appendChild(document.createTextNode('A'))
+
+ el3=document.createElement('q')
+ el3.setAttribute('id','el3')
+ el0.appendChild(el3)
+
+ el5=document.createElement('q')
+ el5.setAttribute('id','el5')
+ el3.appendChild(el5)
+
+ el0.appendChild(document.createTextNode('A'))
+
+ document.body.offsetTop
+ el0.setAttribute('class', 'c4');
+ el7.setAttribute('class', 'c4');
+ }
+ </script>
+ </head>
+ <body>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/783041-2.html b/gfx/tests/crashtests/783041-2.html
new file mode 100644
index 000000000..6d5745b81
--- /dev/null
+++ b/gfx/tests/crashtests/783041-2.html
@@ -0,0 +1,63 @@
+<html>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+ <head>
+ <style>
+ #el0 {
+ height: 200px ! important;
+ height: 1em;
+ width: 1em;
+ padding: 5px;
+ display: table;
+ -moz-transform:translate3d(0, 80px, 0);
+ }
+ #el0:before {
+ display: -moz-grid;
+ content: counter(c, hiragana) attr(id);
+ counter-increment: c 694;
+ }
+ #el0:after {
+ counter-reset: c 694;
+ content: counter(c, cjk-ideographic) attr(id);
+ }
+ #el1 {
+ text-shadow: 0px 20px 0px, 0px -20px 10px;
+ line-height: 4px;
+ transform: translate3d(0px, -300px, 0px);
+ display: table-row-group;
+ border-spacing: 7px;
+ }
+ #el1:after {
+ counter-reset: c;
+ display: -moz-box;
+ content: counter(c, cjk-ideographic) attr(id);
+ counter-increment: c 694;
+ }
+ #el2 {
+ display: table-row-group;
+ -moz-transform:translate3d(0, 80px, 0);
+ }
+ #el2:after {
+ content: counter(c, cjk-ideographic) attr(id);
+ }
+ </style>
+ <script>
+ onload = function() {
+ el0=document.createElement('div')
+ el0.setAttribute('id','el0')
+ document.body.appendChild(el0)
+ el1=document.createElement('div')
+ el1.setAttribute('id','el1')
+ el0.appendChild(el1)
+ el2=document.createElement('q')
+ el2.setAttribute('id','el2')
+ el1.appendChild(el2)
+ el0.appendChild(document.createTextNode('A'))
+ setTimeout("location.reload()", 100)
+ }
+ </script>
+ </head>
+ <body>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/783041-3.html b/gfx/tests/crashtests/783041-3.html
new file mode 100644
index 000000000..efdbced5e
--- /dev/null
+++ b/gfx/tests/crashtests/783041-3.html
@@ -0,0 +1,71 @@
+<html>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+ <head>
+ <style>
+ #el0 {
+ height: 200px ! important;
+ padding: 4px;
+ white-space: pre-wrap;
+ margin-top: 0px;
+ display: table;
+ }
+ #el3 {
+ line-height: 3px;
+ text-shadow: 0px 5px 5px, 0px -20px 10px;
+ }
+ #el3:before { display: inline-block; }
+ #el3:first-of-type { transform: translate3d(-30px, -300px, 0px); }
+ #el3:first-child { display: table-row-group; }
+ #el5:before { -moz-margin-before:1em; display: list-item; content: counter(c, ethiopic-halehame-tig) attr(id); counter-increment: c 810; }
+ #el5 { list-style-type:lower-greek }
+ #el5 { background:red;margin:0;height:1em;display:block }
+ #el5:nth-child(3) { -moz-svg-shadow:5px 5px 5px red; display: link; content: counter(c, asterisks) attr(id); counter-increment: c 266; }
+
+ .c4 {
+ margin: 1em; }
+ #el7 { font-size:.92em }
+ #el3 { font-size:.92em }
+ .c4 { padding:0.4em 0.5em 0.4em 2.5em }
+ .c4:after { margin:2px; display: -moz-box; content: counter(c, octal) attr(id); counter-increment: c 171; }
+ .c4:before { -moz-user-drag:none; display: -moz-inline-flexbox; content: counter(c, hiragana-iroha) attr(id); counter-increment: c 209; }
+ .c4:only-of-type { -moz-logical-height:50px; display: -moz-box; content: counter(c, binary) attr(id); counter-increment: c 871; }
+ </style>
+ <script>
+ onload = function() {
+ el0=document.createElement('ul')
+ el0.setAttribute('id','el0')
+ document.body.appendChild(el0)
+
+ el1=document.createElement('canvas')
+ document.body.appendChild(el1)
+
+
+ el3=document.createElement('q')
+ el3.setAttribute('id','el3')
+ el0.appendChild(el3)
+
+ el4=document.createElement('progress')
+ el4.setAttribute('id','el4')
+ document.body.appendChild(el4)
+
+ el5=document.createElement('q')
+ el5.setAttribute('id','el5')
+ el3.appendChild(el5)
+
+ el0.appendChild(document.createTextNode('A'))
+
+ el7=document.createElement('iframe')
+ el7.setAttribute('id', 'el7')
+ el0.parentNode.insertBefore(el7, el0)
+ el0.setAttribute('class', 'c4');
+ el3.setAttribute('class', 'c4');
+ el7.setAttribute('class', 'c4');
+ setTimeout("window.close()", 5000)
+ }
+ </script>
+ </head>
+ <body>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/783041-4.html b/gfx/tests/crashtests/783041-4.html
new file mode 100644
index 000000000..1538bfdf0
--- /dev/null
+++ b/gfx/tests/crashtests/783041-4.html
@@ -0,0 +1,82 @@
+<html>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+ <head>
+ <style>
+ #el0 {
+ height: 200px ! important;
+ padding: 4px;
+ white-space: pre-wrap;
+ margin-top: 0px;
+ display: table;
+ font-size:.92em
+ }
+
+ #el0:before {
+ content: counter(c, hiragana-iroha);
+ }
+
+ #el3 {
+ line-height: 3px;
+ text-shadow: 0px 5px 5px, 0px -20px 10px;
+ display: table-row-group;
+ transform: translate3d(-30px, -300px, 0px);
+ }
+
+ #el3:before {
+ display: inline-block;
+ }
+
+ #el5 {
+ height:1em;
+ display:block;
+ }
+
+ #el5:before {
+ display: list-item;
+ }
+
+ #el7 {
+ font-size:.92em
+ }
+ .c4 {
+ margin: 1em;
+ padding:0.4em 0.5em 0.4em 2.5em;
+ counter-increment: c;
+ }
+
+ .c4:after {
+ margin: 2px;
+ display: inline-block;
+ }
+ </style>
+ <script>
+ onload = function() {
+ el7=document.createElement('iframe')
+ el7.setAttribute('id', 'el7')
+ document.body.appendChild(el7)
+
+ el0=document.createElement('ul')
+ el0.setAttribute('id','el0')
+ document.body.appendChild(el0)
+
+
+ el3=document.createElement('q')
+ el3.setAttribute('id','el3')
+ el0.appendChild(el3)
+
+ el5=document.createElement('q')
+ el5.setAttribute('id','el5')
+ el3.appendChild(el5)
+
+ el0.appendChild(document.createTextNode('A'))
+
+ el0.setAttribute('class', 'c4');
+ el7.setAttribute('class', 'c4');
+ }
+ </script>
+ </head>
+ <body>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/798853.html b/gfx/tests/crashtests/798853.html
new file mode 100644
index 000000000..a0b16f77c
--- /dev/null
+++ b/gfx/tests/crashtests/798853.html
@@ -0,0 +1,3 @@
+<p style="font-size-adjust: 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; "><style>
+@-moz-keyframes cfpulse1 { 0% { opacity: 0.7301; font-size-adjust: 0.7684; } }
+* { -moz-animation-name: cfpulse1; -moz-animation-duration: 3s; \ No newline at end of file
diff --git a/gfx/tests/crashtests/805760-1.html b/gfx/tests/crashtests/805760-1.html
new file mode 100644
index 000000000..9f89d96e7
--- /dev/null
+++ b/gfx/tests/crashtests/805760-1.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+@font-face{
+ font-family:t; src:url(805760.ttf);
+}
+p.t{
+ font-size:40px;
+ font-family:t;
+}
+span.t {
+ font-size:10px;
+ font-family:t;
+}
+</style>
+</head>
+<body>
+<p class="t">Lorem ipsum</p>
+<span class="t">Lorem ipsum</span>
+</body></html>
+
diff --git a/gfx/tests/crashtests/805760.ttf b/gfx/tests/crashtests/805760.ttf
new file mode 100644
index 000000000..e02a76955
--- /dev/null
+++ b/gfx/tests/crashtests/805760.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/815489.html b/gfx/tests/crashtests/815489.html
new file mode 100644
index 000000000..3bc4d3eee
--- /dev/null
+++ b/gfx/tests/crashtests/815489.html
@@ -0,0 +1,17 @@
+><textarea></textarea><audio id=test1 style="cue-after: none; margin: 8508em -189em 182; ">><style>
+* { azimuth: behind; -moz-transform: skewy(86deg); }
+@-moz-keyframes cfpulse0 { 0% { opacity: 0.3175; transform: rotatex(67166.5665591deg); box-shadow: 167px 0px 8px ivory; quotes: "" "‹" "›"; } }
+* { -moz-animation-name: cfpulse0; -moz-animation-duration: 5s; background-color: -moz-buttonhoverface;</style><script>
+var docElement = document.body ? document.body : document.documentElement;
+function initCF() {
+try { test2 = document.createElementNS("http://www.w3.org/1999/xhtml", "tbody"); } catch(e) {}
+try { docElement.appendChild(test2); } catch(e) {}
+setTimeout("CFcrash()", 192);
+}
+document.addEventListener("DOMContentLoaded", initCF, false);
+function CFcrash() {
+try { test1.style.display = "table-column" } catch(e) {}
+setTimeout('try { var x = new XSLTProcessor(); x.transformToDocument(test1); } catch(e) {}', 205);
+setTimeout('try { docElement.appendChild(test1); } catch(e) {}', 391);
+try { test2.classList.add("not-exist"); } catch(e) {}
+}</script>> \ No newline at end of file
diff --git a/gfx/tests/crashtests/836225-1.html b/gfx/tests/crashtests/836225-1.html
new file mode 100644
index 000000000..18f023f7c
--- /dev/null
+++ b/gfx/tests/crashtests/836225-1.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<style type="text/css">
+@font-face {
+ font-family: foo;
+ src: url(PigLatin_Plane15.ttf);
+}
+body {
+ font-family: foo;
+ font-size: 24px;
+}
+</style>
+</head>
+<body>
+&#xf0050;&#xf0069;&#xf0067; &#xf004c;&#xf0061;&#xf0074;&#xf0069;&#xf006e;
+</body>
+</html>
diff --git a/gfx/tests/crashtests/839745-1.html b/gfx/tests/crashtests/839745-1.html
new file mode 100644
index 000000000..f45b2f41d
--- /dev/null
+++ b/gfx/tests/crashtests/839745-1.html
@@ -0,0 +1,20 @@
+<html>>><svg width="38.500000cm"> fill="#740000" height="64787">><rect height="182px" stroke="gray" width="39904px"></rect>
+<text font-size="52em" x="145 15 162 245 31261 251 143 3 2556045634 67 30 164 16925">k20n01 (21.00)</text>
+><rect height="44" stroke="gray" width="482.6"></rect>
+<text font-size="0.941166">3V97 T*2W t
+fSs
+_9 oCFRVeS
+@
+[^2h A3Y
+4
+ u
+vd`
+8%&amp;./h}*y|Z`6&amp;7 2?D4PoB|
+~#6b|/ak;sf?MaHHLAck Aee6fI*pU_i}5N%q? Qk7 uBJ l4;x7LlsrDu~:U=+P
+ *e#{z
+
+) n|NRXS:N
+ J p
+ZFfSc!W %rTL)#D+6Cd}0$
+k20n03 (22.00)</text>
+><text font-size="102em">> \ No newline at end of file
diff --git a/gfx/tests/crashtests/856784-1.html b/gfx/tests/crashtests/856784-1.html
new file mode 100644
index 000000000..b048f8d0e
--- /dev/null
+++ b/gfx/tests/crashtests/856784-1.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML><html><head>
+<style>
+@font-face {
+ font-family: test;
+ src: url(data:font/opentype;base64,AAEAAAANAIAAAwBQT1MvMkm5zgUAAADcAAAAYGNtYXAMOQzXAAABPAAAASpjdnQg7x+UzAAAAmgAAAc6ZnBnbQjouigAAAmkAAAF12dseWZb0FHdAAAPfAAAOyhoZWFkzwIhqAAASqQAAAA2aGhlYRJ+DK0AAErcAAAAJGhtdHjugxS+AABLAAAAAOBsb2NhAAX85gAAS+AAAADkbWF4cAcxEgMAAEzEAAAAIG5hbWVqLhwrAABM5AAAAihwb3N0AAMAAAAATwwAAAAgcHJlcEEhZAMAAE8sAAAQbwADAiQB9AAFAAACigK7AAAAjAKKArsAAAHfADEBAgAAAAAGAAAAAAAAAIAAAAEQAAACAAAAAAAAAAAqMjEqAAAAIP//Bz7+TgBkCBUDAwAAAAAAAAAAAAACywAAACAAAwAAAAEAAwABAAAADAAEAR4AAAAoACAABAAIACAAKgA6AEMARQBHAEkATgBQAFYAYgBmAGkAbwB1AHggrOAC//7//wAAACAAKAAtAEEARQBHAEkASwBQAFIAYQBkAGgAbAByAHggrOAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAKAAoACwARgBKAEoASgBKAFAAUABYAFoAXgBgAGYAbABsAGwAcAAAAAMAHwAgADEABAAiABQAGwAdABkAHAA0ADMANgAyABoAIwAhACQABQAuACcAJgARADUAKAAsAA4ALQApACsACgAXACoACwAWACUACAANABUABgAHABAAEgAPAAwAGAAJABMALwAwAAIAHgA3AAEAAAW6ABwFugAcBacAHAQmABwAAP/kAAD/5AAA/+T+af/kBboAHP5p/+QC6gAAAR0AAAEdAAAAAAAAAAAAsgCsANcBKAEgALMB+gAXAPgBGQExAEkABAD3AAMArwD9AJUAFABUAJYBEgAkABYAVQBJAQQBGQErAIwBm/92/+kAPQCSAKL/twGC/6oAFgCPAMYA+AAcAN4EAQA3AE4AVQBVAGUA6QPlAFn/mgAIAIcACwA7AFIBFgBhANYA1gD1AAAAkwCUAL4BfP/4AAQAFACCAJIAPABBAEH/wf/8ACoAjASQBdgJtQCRALsBBv9j/2kAHgAiAIoCK//W/98AJgBZAKMArAEEASsBwARIACEAawCFAJgBGQPGAGsAlQCkAP4BDAJdA0MFvwAAAEkAVgBuAHcAigCqAMoBEgFQBdgF8P97/+cABgATACgAYQBpAOkBNQFNAqUEDP8+/9oAWwC5AMgBGQEZARkBwARbBKcFW/4//53/wgAVALcBCgG8AcEFMgWO/YH/of+uAAwAJgAxAD0ATgBWAGIAgwDBAMkA8QDyAn//fwBIAFMAdwDFAR0BIAEmASgB1gIZAn4CfgPTAC4AQQBdAGsAdQCfALAAsgC6ALsAvQDWANsA4ADlARQBGwFKAWIBkQHyAgwCZALPA5sDtAPUBAEEqQAWACMAJQAqAHQApQC2AMwAzQDPAQUBIAEwAVABagFvAZcBnQHgArAC7AL3BAgEgwT7BP0FJv7g/vv/Tv/1ABgAGgBMAHoAfwCRAKMAswC0AM4A1QDyAPMA9gEQATgBaAGhAbAB4AHsAgkCIgJPAnAClgKlAq0DTgORA8EENQRCBGsEzQTaBYYFiwdhB/78pv6T/q3+0f+3/9EAAwAOABgAJgBGAGkAgQCPAKUAvwDTANUA2QDdAOIBGQErATgBOwFaAV4BaAFzAYgBlAGtAcUB0QHqAfICAAIAAgACIgI7AkQCTwJvAnICfgKCApMClAKlAs8CzwLQAtoC3QLrAvUDBQMiAzYDcQOhA7ADuAPQA+YEEAQmBC4EMQRPBFoE/wUyBTIFRwVTBagFqwXCBfAGPAZkBnAG6AeCB4QIzP0q/d7+AP5o/rD+s/+qAAgAWQB6AJEAngCiAK8AtAC7AMoAzADOANkA4AD0ARQBGgEhAScBKwE5AUYBSwFNAVcBXAFlAYIBhwGSAZgBmwGiAa4BxQHFAdECBwIiAisCQQJTAmECZQKEAocCjQK0ArQCugLJAtYC2ALtAvUDFwMjAysDMQNJA1oDWwNuA3EDdAN+A4QDkQORA6oDzwPTA+cD6APtBAgEFwQeBHUEegSZBKcEtATRBUwFbQVtBaIFvwXABdEF/AX8BgIGGgYcBi8GagaoBuIHBgc2B1AHiQfUB/MIcAEcASoBGgEgAAAAAAAAAAAAAAAAAhkACwAeAqoCFAR/Ae0AAAAdAQQADwCRACsBiAFTARIB8wA/A/4BaAEOBH8B7QNuAxUCGQQTAAAAAAZABLAAAAJ0AbsANQHFAH8GAgMBAAAE4ACyAdwC4ATDAj0A1QFgARkEpwNuBcoCIQCrBCYAkAK8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WLklAADYRVJYuQDYJQBEWVlLuAQBUyBcWLkBWAAmRUSxJiZFRFlYuSMgAVhFUli5AVgjIERZWUuwKVMgXFixHx9FRLEtH0VEWVi5AQ0AH0VSWLkAHwENRFlZS7AvUyBcWLEfH0VEsSUfRURZWLkBNQAfRVJYuQAfATVEWVlLuAMBUyBcWLEfH0VEsR8fRURZWLkUKAAfRVJYuQAfFChEWVkrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrZUIrAbMxdX7DRWUjRWAjRWVgI0VgsIt2aBiwgGIgILF+dUVlI0UgsAMmYGJjaCCwAyZhZbB1I2VEsH4jRCCxMcNFZSNFILADJmBiY2ggsAMmYWWwwyNlRLAxI0SxAMNFVFixw0BlRLIxQDFFI2FEWbM/PFhBRWUjRWAjRWVgI0VgsIl2aBiwgGIgILFYPEVlI0UgsAMmYGJjaCCwAyZhZbA8I2VEsFgjRCCxP0FFZSNFILADJmBiY2ggsAMmYWWwQSNlRLA/I0SxAEFFVFixQUBlRLI/QD9FI2FEWUVpU0IBS1BYsQgAQllDXFixCABCWbMCCwoSQ1hgGyFZQhYQcD6wEkNYuTshGH4bugQAAagACytZsAwjQrANI0KwEkNYuS1BLUEbugQABAAACytZsA4jQrAPI0KwEkNYuRh+OyEbugGoBAAACytZsBAjQrARI0IAKysrKysrKysAsBJDWEuwNVFLsCFTWlixJiZFsEBhRFlZKysrKysrKysrKysrKysrKysrK3Nzc3NzRbBAYUQYAEVpREVpRHNzc3Rzc3N0c3RzdCsrKysrKysrKysrKwBzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzdHR0dHR0dHR0dHR0dHR0dHR0dHR0dXV1c3R1dXV1K3MAAEuwKlNLsDZRWlixBwdFsEBgRFkAS7AuU0uwNlFaWLEDA0WwQGBEsQkJRbj/wGBEWStFaUQBdABzc3MrRWlEKwErQ1xYQAoABgAHAqAGoAcCuf/AAnSzGh0yb70CdwB/AncAAv/AAneyLzEyuf/AAnezIiUyQLgCdLMvNTJAuAJ0sygqMkC4AnSyGiEyuP/AszcaHTK4/8CzJRodMrj/wEARLRodMpAlkC2QN6AloC2gNwa4/8C2phodMh+mH7gCjrIvpgMAdCtzKysrKysrKyt0K3N0WQArK0NcWLn/wAKhshwdMrn/wAKgshwdMisrWStzASsrKysAKysrKysrKysrKysrKysrKysrASsrKysrKytzdCsrKysrKysrc3MrKysrKytzK3MrKyt0Kysrc3Nzc3Mrc3MrKytzACsrKytzdHMrcysrKyt1KysrKysrKyt1KysrKytzKysrK3N0dSsrc3NzKysrKwA=);
+}
+body { font-family: test; }
+</style>
+</head>
+<body>A</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/893572-1.html b/gfx/tests/crashtests/893572-1.html
new file mode 100644
index 000000000..58807459e
--- /dev/null
+++ b/gfx/tests/crashtests/893572-1.html
@@ -0,0 +1,11 @@
+<script>
+o0 = document.createElement('canvas');
+(document.body || document.documentElement).appendChild(o0);
+o1 = o0.getContext('2d');
+
+o1.strokeRect(1.7976931348623157e+308, 0.651, 8, 34.323262543409996);
+o1.strokeRect(34.323262543409996, 1.7976931348623157e+308, 0.651, 8);
+o1.strokeRect(8, 34.323262543409996, 1.7976931348623157e+308, 0.651);
+o1.strokeRect(0.651, 8, 34.323262543409996, 1.7976931348623157e+308);
+
+</script>
diff --git a/gfx/tests/crashtests/893572-2.html b/gfx/tests/crashtests/893572-2.html
new file mode 100644
index 000000000..354c15613
--- /dev/null
+++ b/gfx/tests/crashtests/893572-2.html
@@ -0,0 +1,30 @@
+<script>
+o0 = document.createElement('canvas');
+(document.body || document.documentElement).appendChild(o0);
+o1 = o0.getContext('2d');
+
+o1.rect(1.7976931348623157e+308, 0.651, 8, 34.323262543409996);
+o1.stroke()
+
+o1.rect(-1.7976931348623157e+308, 0.651, 8, 34.323262543409996);
+o1.stroke()
+
+o1.rect(34.323262543409996, 1.7976931348623157e+308, 0.651, 8);
+o1.stroke()
+
+o1.rect(34.323262543409996, -1.7976931348623157e+308, 0.651, 8);
+o1.stroke()
+
+o1.rect(8, 34.323262543409996, 1.7976931348623157e+308, 0.651);
+o1.stroke()
+
+o1.rect(8, 34.323262543409996, -1.7976931348623157e+308, 0.651);
+o1.stroke()
+
+o1.rect(0.651, 8, 34.323262543409996, 1.7976931348623157e+308);
+o1.stroke()
+
+o1.rect(0.651, 8, 34.323262543409996, -1.7976931348623157e+308);
+o1.stroke()
+
+</script>
diff --git a/gfx/tests/crashtests/893572-3.html b/gfx/tests/crashtests/893572-3.html
new file mode 100644
index 000000000..d40f3c997
--- /dev/null
+++ b/gfx/tests/crashtests/893572-3.html
@@ -0,0 +1,44 @@
+<script>
+o0 = document.createElement('canvas');
+(document.body || document.documentElement).appendChild(o0);
+o1 = o0.getContext('2d');
+
+o1.beginPath();
+o1.moveTo(8,34.323262543409996);
+o1.lineTo(1.7976931348623157e+308,34.323262543409996);
+o1.arcTo(1.7976931348623157e+308, 150, 20, 150, 70);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(8,34.323262543409996);
+o1.lineTo(-1.7976931348623157e+308,34.323262543409996);
+o1.arcTo(70, 1.7976931348623157e+308, 150, 20, 150);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(34.323262543409996, 8);
+o1.lineTo(34.323262543409996, 1.7976931348623157e+308);
+o1.arcTo(150, 70, 1.7976931348623157e+308, 150, 20);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(34.323262543409996, 8);
+o1.lineTo(34.323262543409996, -1.7976931348623157e+308);
+o1.arcTo(20, 150, 70,1.7976931348623157e+308, 150);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(20, 20);
+o1.lineTo(100, 20);
+o1.arcTo(150, 20, 150, 70, 1.7976931348623157e+308);
+o1.lineTo(150, 120);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(20, 20);
+o1.lineTo(100, 20);
+o1.arcTo(150, 20, 150, 70, -1.7976931348623157e+308);
+o1.lineTo(150, 120);
+o1.stroke();
+
+</script>
diff --git a/gfx/tests/crashtests/893572-4.html b/gfx/tests/crashtests/893572-4.html
new file mode 100644
index 000000000..b6d8212e7
--- /dev/null
+++ b/gfx/tests/crashtests/893572-4.html
@@ -0,0 +1,38 @@
+<script>
+o0 = document.createElement('canvas');
+(document.body || document.documentElement).appendChild(o0);
+o1 = o0.getContext('2d');
+
+o1.beginPath();
+o1.moveTo(8,34.323262543409996);
+o1.lineTo(1.7976931348623157e+308,34.323262543409996);
+o1.lineTo(1.7976931348623157e+308,44.323262543409996);
+o1.lineTo(10.0,44.323262543409996);
+o1.lineTo(8,34.323262543409996);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(34.323262543409996, 8);
+o1.lineTo(34.323262543409996, 1.7976931348623157e+308);
+o1.lineTo(44.323262543409996, 1.7976931348623157e+308);
+o1.lineTo(44.323262543409996, 10.0);
+o1.lineTo(34.323262543409996, 8);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(8,34.323262543409996);
+o1.lineTo(-1.7976931348623157e+308,34.323262543409996);
+o1.lineTo(-1.7976931348623157e+308,44.323262543409996);
+o1.lineTo(10.0,44.323262543409996);
+o1.lineTo(8,34.323262543409996);
+o1.stroke();
+
+o1.beginPath();
+o1.moveTo(34.323262543409996, 8);
+o1.lineTo(34.323262543409996, -1.7976931348623157e+308);
+o1.lineTo(44.323262543409996, -1.7976931348623157e+308);
+o1.lineTo(44.323262543409996, 10.0);
+o1.lineTo(34.323262543409996, 8);
+o1.stroke();
+
+</script>
diff --git a/gfx/tests/crashtests/914457-1.html b/gfx/tests/crashtests/914457-1.html
new file mode 100644
index 000000000..9b9193de3
--- /dev/null
+++ b/gfx/tests/crashtests/914457-1.html
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<html style="transform: skewY(0.08turn); overflow: -moz-hidden-unscrollable; position: absolute;">
+ <body style="border-bottom: thick solid; transform: skewX(30grad);">
+ <table style="visibility: collapse; display: list-item;"></table>
+ </body>
+</html>
+
diff --git a/gfx/tests/crashtests/944579.html b/gfx/tests/crashtests/944579.html
new file mode 100644
index 000000000..3667f6024
--- /dev/null
+++ b/gfx/tests/crashtests/944579.html
@@ -0,0 +1 @@
+><svg><filter width=60cm height=190.339893225in id=morphology><feMorphology operator=dilate width=140 radius=10><img src=944579.png style="-moz-filter: url(#morphology); filter: url(#morphology);">
diff --git a/gfx/tests/crashtests/944579.png b/gfx/tests/crashtests/944579.png
new file mode 100644
index 000000000..68641b767
--- /dev/null
+++ b/gfx/tests/crashtests/944579.png
Binary files differ
diff --git a/gfx/tests/crashtests/944579.svg b/gfx/tests/crashtests/944579.svg
new file mode 100644
index 000000000..cefe73c9f
--- /dev/null
+++ b/gfx/tests/crashtests/944579.svg
@@ -0,0 +1,26 @@
+<html><head></head><body><svg xmlns="http://www.w3.org/2000/svg" width="500">
+
+<filter>
+ <feMorphology></feMorphology>
+</filter>
+<g><rect></rect>
+</g>
+
+<filter>
+<feMorphology></feMorphology>
+</filter>
+<g>
+ <rect></rect>
+</g>
+
+<filter id="f3" primitiveUnits="objectBoundingBox">
+ <feMorphology operator="dilate" radius="32542"></feMorphology>
+</filter>
+<g filter="url(#f3)"><rect width="4294967217ex" height="100" x="29%"></rect>
+</g>
+
+<filter></filter>
+<g></g>
+
+</svg>
+</body><style>></style></html><!-- --> \ No newline at end of file
diff --git a/gfx/tests/crashtests/950000.html b/gfx/tests/crashtests/950000.html
new file mode 100644
index 000000000..dfd51c52b
--- /dev/null
+++ b/gfx/tests/crashtests/950000.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<style id="s">
+
+@font-face {
+ font-family: x;
+ src: url(bogus-font.ttf);
+}
+
+@font-face {
+ font-family: y;
+ src: url(bogus-font.ttf);
+}
+
+</style>
+
+<script>
+
+function boom()
+{
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.font = 'normal 20px x';
+
+ document.getElementById("s").remove();
+
+ setTimeout(function() {
+ ctx.measureText("A");
+ }, 50);
+}
+
+window.addEventListener("DOMContentLoaded", boom, false)
+
+</script>
+</head>
+
+<body><div style="font-family: y;">y</div></body>
+</html>
diff --git a/gfx/tests/crashtests/PigLatin_Plane15.ttf b/gfx/tests/crashtests/PigLatin_Plane15.ttf
new file mode 100644
index 000000000..ab8329603
--- /dev/null
+++ b/gfx/tests/crashtests/PigLatin_Plane15.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/Prototype.ttf b/gfx/tests/crashtests/Prototype.ttf
new file mode 100644
index 000000000..c70bf00f4
--- /dev/null
+++ b/gfx/tests/crashtests/Prototype.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/balinese-letter-spacing.html b/gfx/tests/crashtests/balinese-letter-spacing.html
new file mode 100644
index 000000000..90a2c06a0
--- /dev/null
+++ b/gfx/tests/crashtests/balinese-letter-spacing.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html><body style="letter-spacing: 300px"><div>&#x6978;</div></body></html>
diff --git a/gfx/tests/crashtests/crashtests.list b/gfx/tests/crashtests/crashtests.list
new file mode 100644
index 000000000..6800c7384
--- /dev/null
+++ b/gfx/tests/crashtests/crashtests.list
@@ -0,0 +1,135 @@
+load 122875-1.html
+load 156882-1.html
+load 157320-1.html
+load 199379-1.html
+load 206561-1.html
+load 248518-1.html
+load 306649-1.xml
+load 306902-1.xml
+load 333861-1.html
+load 334735-1.html
+load 345576-1.html
+load 345629-1.html
+load 348462-1.html
+load 348462-2.html
+load 366643.html
+load 369688-1.html
+load 369947-1.html
+load 372094-1.xhtml
+load 376627-1.html
+load 377231-1.html
+load 377232-1.xhtml
+load 377461-1.xhtml
+load 383473-1.html
+load 383872-1.svg
+skip-if(Android&&smallScreen) load 385228-1.svg # bug 523255 / bug 385228, nexus-s Android 2.3.6
+skip load 385228-2.svg # bug 523255 / bug 385228
+load 385289-1.xhtml
+load 385417-1.html
+load 385417-2.html
+load 385423-1.html
+load 385423-2.html
+load 385719-1.html
+load 389326-1.html
+load 390476.html
+load 393746-1.xhtml
+load 393749-1.html
+load 393822-1.html
+load 394384-1.html
+load 394246-1.html
+load 394246-2.html
+skip-if(Android) load 394751.xhtml # bug 922976
+load 395335-1.xhtml
+load 395458-1.html
+load 396321-1.svg
+load 398042-1.xhtml
+load 398042-2.xhtml
+load 402307-1.html
+load 403464-1.html
+load 404112-1.html
+load 404112-2.html
+load 405268-1.xhtml
+load 407761-1.html
+load 407842.html
+load 408754-1.html
+load 410728-1.xml
+load 416637-1.html
+load 419095-1.html
+load 419255-1.html
+load 420945-1.html
+load 420962-1.html
+load 421393-1.html
+load 421813-1.html
+load 423110-1.xhtml
+load 423270-1.html
+load 428633.html
+load 429899-1.html
+load 441360.html
+load 445711.html
+load 463307-1.html
+load 467703-1.xhtml
+load 467873-1.html
+load 470418-1.html
+load 474410-1.html
+load 483120-1.xhtml
+load 483120-2.xhtml
+load 487549-1.html
+load 487724-1.html
+load 490777-1.html
+load 516512-1.html
+load 532726-1.html
+load 538065-1.html
+load 546870-1.html
+load 557348-1.html
+load 563740-1.html
+load 580100-1.html
+load 580212-1.html
+load 580233-1.html
+load 580719-1.html
+load 593526.html
+load 593526.xul
+load 594654-1.xhtml
+load 595042-1.html
+load 595727-1.html
+load 624198.xhtml
+load 633322-1.html
+load 633453-1.html
+load 662467-1.html
+load 665218.html
+load 675550-1.html
+load 686190-1.html
+load 691581-1.html
+load 693143-1.html
+load 696936-1.html
+load 699563-1.html
+load 710149-1.html
+load 766452-1.html
+load 766452-2.html
+load 768079-1.html
+load 783041-1.html
+load 783041-2.html
+load 783041-3.html
+load 783041-4.html
+load 798853.html # bug 868792
+load 805760-1.html
+skip-if(Android) load 815489.html # bug 1216304
+load 836225-1.html
+load 839745-1.html
+load 856784-1.html
+load 893572-1.html
+load 893572-2.html
+load 893572-3.html
+load 893572-4.html
+pref(layers.force-active,true) load 914457-1.html
+load 944579.svg
+load 944579.html
+pref(security.fileuri.strict_origin_policy,false) load 950000.html
+load 1034403-1.html
+load 1205900.html
+load 1134549-1.svg
+load balinese-letter-spacing.html
+load 1216832-1.html
+load 1225125-1.html
+load 1308394.html
+load 1317403-1.html
+load 1325159-1.html