summaryrefslogtreecommitdiffstats
path: root/gfx/tests/crashtests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /gfx/tests/crashtests
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--gfx/tests/crashtests/1008983.html4
-rw-r--r--gfx/tests/crashtests/1011218.html17
-rw-r--r--gfx/tests/crashtests/1034403-1.html8
-rw-r--r--gfx/tests/crashtests/1056516.html15
-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/1221304.html21
-rw-r--r--gfx/tests/crashtests/1225125-1.html11
-rw-r--r--gfx/tests/crashtests/1228127.html20
-rw-r--r--gfx/tests/crashtests/122875-1.html1
-rw-r--r--gfx/tests/crashtests/1229972.html17
-rw-r--r--gfx/tests/crashtests/1242811.html50
-rw-r--r--gfx/tests/crashtests/1242822.html19
-rw-r--r--gfx/tests/crashtests/1248222.html18
-rw-r--r--gfx/tests/crashtests/1278305.html20
-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.html34
-rw-r--r--gfx/tests/crashtests/1331683.html2
-rw-r--r--gfx/tests/crashtests/1343666.html23
-rw-r--r--gfx/tests/crashtests/1346601-1.html5
-rw-r--r--gfx/tests/crashtests/1408078-1.html1
-rw-r--r--gfx/tests/crashtests/1464243.html13
-rw-r--r--gfx/tests/crashtests/1467847-1.html15
-rw-r--r--gfx/tests/crashtests/1468020.html63
-rw-r--r--gfx/tests/crashtests/1470437.html10
-rw-r--r--gfx/tests/crashtests/1470440.html7
-rw-r--r--gfx/tests/crashtests/1478035.html40
-rw-r--r--gfx/tests/crashtests/1490704-1.html27
-rw-r--r--gfx/tests/crashtests/1494062-blob-image-wraplist-clip.html27
-rw-r--r--gfx/tests/crashtests/1496194.html14
-rw-r--r--gfx/tests/crashtests/1501518.html16
-rw-r--r--gfx/tests/crashtests/1503986-1.html8
-rw-r--r--gfx/tests/crashtests/1505426-1.html23
-rw-r--r--gfx/tests/crashtests/1505934-1.html22
-rw-r--r--gfx/tests/crashtests/1508811.html10
-rw-r--r--gfx/tests/crashtests/1508822.html5
-rw-r--r--gfx/tests/crashtests/1509099.html7
-rw-r--r--gfx/tests/crashtests/1509123.html12
-rw-r--r--gfx/tests/crashtests/1513133.html11
-rw-r--r--gfx/tests/crashtests/1524418.html11
-rw-r--r--gfx/tests/crashtests/1529149.html23
-rw-r--r--gfx/tests/crashtests/1535657.html14
-rw-r--r--gfx/tests/crashtests/1541113.html7
-rw-r--r--gfx/tests/crashtests/1547169.html11
-rw-r--r--gfx/tests/crashtests/1566206.html28
-rw-r--r--gfx/tests/crashtests/156882-1.html205
-rw-r--r--gfx/tests/crashtests/157320-1.html11
-rw-r--r--gfx/tests/crashtests/1615091.html11
-rw-r--r--gfx/tests/crashtests/1615141.html13
-rw-r--r--gfx/tests/crashtests/1620125.html12
-rw-r--r--gfx/tests/crashtests/1640401-1.html31
-rw-r--r--gfx/tests/crashtests/1647862.html14
-rw-r--r--gfx/tests/crashtests/1647940.html7
-rw-r--r--gfx/tests/crashtests/1650989-very-large-mask.html10
-rw-r--r--gfx/tests/crashtests/1650990.html18
-rw-r--r--gfx/tests/crashtests/1651882.html24
-rw-r--r--gfx/tests/crashtests/1652750-deep-scene-stack.html24
-rw-r--r--gfx/tests/crashtests/1678938-1.html9
-rw-r--r--gfx/tests/crashtests/1679477-1.html8
-rw-r--r--gfx/tests/crashtests/1681955.html17
-rw-r--r--gfx/tests/crashtests/1685009-1.html12
-rw-r--r--gfx/tests/crashtests/1690374.html14
-rw-r--r--gfx/tests/crashtests/1690374.jpgbin0 -> 548 bytes
-rw-r--r--gfx/tests/crashtests/1694783-1.html18
-rw-r--r--gfx/tests/crashtests/1695782-1.html11
-rw-r--r--gfx/tests/crashtests/1699013.html23
-rw-r--r--gfx/tests/crashtests/1700232.html14
-rw-r--r--gfx/tests/crashtests/1701975-1.html20
-rw-r--r--gfx/tests/crashtests/1702638.html6
-rw-r--r--gfx/tests/crashtests/1704321-1.html13
-rw-r--r--gfx/tests/crashtests/1730695.html17
-rw-r--r--gfx/tests/crashtests/1745775.html24
-rw-r--r--gfx/tests/crashtests/1757002.html21
-rw-r--r--gfx/tests/crashtests/1758127-1.html13
-rw-r--r--gfx/tests/crashtests/1762973-1.html29
-rw-r--r--gfx/tests/crashtests/1765667.html4
-rw-r--r--gfx/tests/crashtests/1768096-1.html30
-rw-r--r--gfx/tests/crashtests/1771293.html10
-rw-r--r--gfx/tests/crashtests/1771294.html16
-rw-r--r--gfx/tests/crashtests/1771556.html14
-rw-r--r--gfx/tests/crashtests/1771561.html18
-rw-r--r--gfx/tests/crashtests/1780567.html24
-rw-r--r--gfx/tests/crashtests/1797099-1.html18
-rw-r--r--gfx/tests/crashtests/1799495-1.html20
-rw-r--r--gfx/tests/crashtests/1802382-1-worker.js6
-rw-r--r--gfx/tests/crashtests/1802382-1.html7
-rw-r--r--gfx/tests/crashtests/1808830.html13
-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/403352.html14
-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/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.xhtml5
-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/691330.svg1
-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/746491.html17
-rw-r--r--gfx/tests/crashtests/746495.html23
-rw-r--r--gfx/tests/crashtests/746497.html20
-rw-r--r--gfx/tests/crashtests/746844.html23
-rw-r--r--gfx/tests/crashtests/746847.html19
-rw-r--r--gfx/tests/crashtests/746849.html20
-rw-r--r--gfx/tests/crashtests/746866.html25
-rw-r--r--gfx/tests/crashtests/747132.html15
-rw-r--r--gfx/tests/crashtests/747302.html16
-rw-r--r--gfx/tests/crashtests/766422-1.html6
-rw-r--r--gfx/tests/crashtests/766422-2.html17
-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.html73
-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/812826.html4
-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/895233.html29
-rw-r--r--gfx/tests/crashtests/914457-1.html9
-rw-r--r--gfx/tests/crashtests/934729.html7
-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/951893.xhtml7
-rw-r--r--gfx/tests/crashtests/987013.html2
-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.list228
-rw-r--r--gfx/tests/crashtests/empty.html1
-rw-r--r--gfx/tests/crashtests/large-scaled-mask.html8
-rw-r--r--gfx/tests/crashtests/texture-allocator-zero-region.html9
244 files changed, 4021 insertions, 0 deletions
diff --git a/gfx/tests/crashtests/1008983.html b/gfx/tests/crashtests/1008983.html
new file mode 100644
index 0000000000..724264c68c
--- /dev/null
+++ b/gfx/tests/crashtests/1008983.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<body>
+<div style="mix-blend-mode: darken;">Text</div>
+</body>
diff --git a/gfx/tests/crashtests/1011218.html b/gfx/tests/crashtests/1011218.html
new file mode 100644
index 0000000000..c58892ee51
--- /dev/null
+++ b/gfx/tests/crashtests/1011218.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+function boom()
+{
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.setLineDash([-1]);
+ ctx.isPointInStroke(0, 0);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/1034403-1.html b/gfx/tests/crashtests/1034403-1.html
new file mode 100644
index 0000000000..714994d3e3
--- /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/1056516.html b/gfx/tests/crashtests/1056516.html
new file mode 100644
index 0000000000..77891ae26f
--- /dev/null
+++ b/gfx/tests/crashtests/1056516.html
@@ -0,0 +1,15 @@
+<!-- crashtest for bug 1056516 -->
+<!-- This test is imported from the fuzzy-test in Bug 1346248-->
+<html>
+ <head>
+ <script>
+ o1 = document.createElement('acronym');
+ o2 = document.createElement('style');
+ o1.innerText = "溥¡‰à§†ïµ‚䢤–粂⦼눬ï¿ÂáÂŽâŽ®ï¿½ë¨¸å¾°î¿ è«㱹ⳓ䳟൪꥛倾緮�ëÂÂ… 嶨ﺉ鵕☋⬹"; {};
+ document.documentElement.appendChild(o1);
+ document.head.appendChild(o2);
+ document.styleSheets[0].insertRule("* { word-spacing: calc(1em); width: calc(1% + 100%); hyphens: auto; }", 0);
+ </script>
+ </head>
+ <body></body>
+</html>
diff --git a/gfx/tests/crashtests/1134549-1.svg b/gfx/tests/crashtests/1134549-1.svg
new file mode 100644
index 0000000000..1d0d5484a8
--- /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 0000000000..5e1f47cae5
--- /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 0000000000..0f02a9280b
--- /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/1221304.html b/gfx/tests/crashtests/1221304.html
new file mode 100644
index 0000000000..9fd95923b7
--- /dev/null
+++ b/gfx/tests/crashtests/1221304.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+
+function boom() {
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.arc(32, 2, 64, 512, 1024, false);
+ ctx.scale(256, 16);
+ ctx.transform(32, 64, 16, 256, 0.5000140400370615, -0.6268189185361422);
+ ctx.scale(2, 0.33614443599622335);
+ ctx.transform(16, -64, 512, 0.5546715728833042, 4, -0.09260164319830985);
+ ctx.isPointInStroke(1024, 2048);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/1225125-1.html b/gfx/tests/crashtests/1225125-1.html
new file mode 100644
index 0000000000..6632dff283
--- /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/1228127.html b/gfx/tests/crashtests/1228127.html
new file mode 100644
index 0000000000..5bd4d1f480
--- /dev/null
+++ b/gfx/tests/crashtests/1228127.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+
+function boom() {
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.scale(49572022, 5988146080);
+ ctx.rotate(243.375);
+ ctx.transform(55.3, 963, 130.57142857142858, 26, 48.4, 13.666666666666666);
+ ctx.lineWidth = 212.5;
+ ctx.strokeText("abcdefghijklmnopqrstuvw", 0, 0, 329.3333333333333);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/122875-1.html b/gfx/tests/crashtests/122875-1.html
new file mode 100644
index 0000000000..6241666b03
--- /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/1229972.html b/gfx/tests/crashtests/1229972.html
new file mode 100644
index 0000000000..5d0818b4db
--- /dev/null
+++ b/gfx/tests/crashtests/1229972.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+
+function boom() {
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.scale(2, 0);
+ ctx.fillText("AB", 0, 0, 1);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/1242811.html b/gfx/tests/crashtests/1242811.html
new file mode 100644
index 0000000000..feb72a8ec7
--- /dev/null
+++ b/gfx/tests/crashtests/1242811.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+
+function boom() {
+ var canvasA = document.createElement('canvas');
+ var ctxA = (canvasA.getContext('2d'));
+
+ var canvasB = document.createElement('canvas');
+ var ctxB = (canvasB.getContext('2d'));
+
+ var canvasC = document.createElement('canvas');
+ var ctxC = (canvasC.getContext('2d'));
+
+ var canvasD = document.createElement('canvas');
+ document.body.appendChild(canvasD);
+ var ctxD = (canvasD.getContext('2d'));
+
+ ctxB.setTransform(0.11269837969744075, 0.5254615427752635, 0.2, 4, 0.8446743569440848, 0.144);
+ ctxB.strokeText("DDDD",2,16);
+
+ ctxC.setTransform(8,0.10555935723370857,-2,0.35743616669379086,8,0.6599638731358489);
+ ctxC.strokeText("CCCC",0.309,0.7226920560287992);
+
+ ctxD.setTransform(-6, -0.40335219665508537, -32, -16, 8, 0.06330341125449711);
+ ctxD.fillText("AAAAAAAA",0.749783522856837,3);
+
+ setTimeout(function() {
+
+ canvasC.height = 400;
+
+ setTimeout(function() {
+
+ ctxA.setTransform(-0.2578973174095154, 0, 8, -41.83665466308594, 4.02983283996582, 1041.4510498046875);
+ ctxA.fillText("AA",16,0.417);
+
+ ctxC.setTransform(0.22722245734818802, 0.04656468332897981, 8, 8, 2, 256);
+ ctxC.strokeText("QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ",2048,-0.903);
+
+ }, 0);
+
+ }, 0);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/1242822.html b/gfx/tests/crashtests/1242822.html
new file mode 100644
index 0000000000..b993339445
--- /dev/null
+++ b/gfx/tests/crashtests/1242822.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+
+function boom() {
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.shadowBlur = 1024;
+ ctx.shadowColor = "red"
+ ctx.transform(16384,-0.6842606067657471,32768,-1.0760749578475952,2048,-1.9289406538009644);
+ ctx.strokeText("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",0.691153419364978,0.7370920539221475);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/1248222.html b/gfx/tests/crashtests/1248222.html
new file mode 100644
index 0000000000..13cd7f4d56
--- /dev/null
+++ b/gfx/tests/crashtests/1248222.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+
+function boom() {
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.setTransform(0.1393438068077303, 0.25634277175561127, 512, 32, 0.5548660053300825, 8);
+ ctx.transform(16, 1024, -0.958697722982312, 6, 32, 256);
+ ctx.fillRect(0.20365260220217812, -0.8620547922006936, 1, 0.6929549739446852);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/1278305.html b/gfx/tests/crashtests/1278305.html
new file mode 100644
index 0000000000..a068cf35f3
--- /dev/null
+++ b/gfx/tests/crashtests/1278305.html
@@ -0,0 +1,20 @@
+<html>
+<head>
+<style>
+body {
+ mask: url(#mymask);
+}
+div::after {
+ content: counter(n);
+}
+</style>
+<script>
+window.onload = function(){
+ document.getElementsByTagName('body')[0].animate(
+ [{"transform": "skewy(11rad)"},
+ {"transform": "rotatex(0.125turn)"}],
+ {"fill":"forwards", "iterations": 0.75, "duration": 1});
+};
+</script></head>
+<body><div></div></body>
+</html>
diff --git a/gfx/tests/crashtests/1308394.html b/gfx/tests/crashtests/1308394.html
new file mode 100644
index 0000000000..3680878ea9
--- /dev/null
+++ b/gfx/tests/crashtests/1308394.html
@@ -0,0 +1,23 @@
+<html class="reftest-paged"><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 0000000000..1a972c0e19
--- /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 0000000000..8d25c3fb8e
--- /dev/null
+++ b/gfx/tests/crashtests/1325159-1.html
@@ -0,0 +1,34 @@
+<!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 = "scroll hidden";
+ doc.style.textOverflow = "''";
+ o_0.style.offsetInlineStart = "calc(3*25px)";
+ doc.style.paddingTop = "calc(67108864%)";
+ doc.style.width = "3e-0%";
+ 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/1331683.html b/gfx/tests/crashtests/1331683.html
new file mode 100644
index 0000000000..f8718d45d3
--- /dev/null
+++ b/gfx/tests/crashtests/1331683.html
@@ -0,0 +1,2 @@
+<!-- crashtest for bug 1331683 on Mac OS X 10.9/10.10 -->
+<div style="font-family:Skia">hello world</div>
diff --git a/gfx/tests/crashtests/1343666.html b/gfx/tests/crashtests/1343666.html
new file mode 100644
index 0000000000..a448dad09c
--- /dev/null
+++ b/gfx/tests/crashtests/1343666.html
@@ -0,0 +1,23 @@
+<html class="reftest-wait">
+<head>
+<meta charset="UTF-8">
+<script>
+
+function f()
+{
+ finish();
+}
+
+window.onload = function() {
+ let a = window.open("empty.html", null, "width=300,height=300");
+ setTimeout(function(){
+ a.close();
+ a.addEventListener("vrdisplayconnect", function(){});
+ window.close();
+ document.documentElement.removeAttribute("class");
+ }, 0);
+};
+
+</script>
+</head>
+</html>
diff --git a/gfx/tests/crashtests/1346601-1.html b/gfx/tests/crashtests/1346601-1.html
new file mode 100644
index 0000000000..a10780ded4
--- /dev/null
+++ b/gfx/tests/crashtests/1346601-1.html
@@ -0,0 +1,5 @@
+<svg>
+<filter id='a' width='181.412449629' primitiveUnits='objectBoundingBox'>
+<feConvolveMatrix kernelMatrix='0 1 1 1 0 0 0 0 0' kernelUnitLength='178'/>
+</filter>
+<polyline filter='url(#a)' points='47.2081,146 175.4644,1 260,191 4,0 85,176 88,248 16385,255.891 130,183 71,16'/>
diff --git a/gfx/tests/crashtests/1408078-1.html b/gfx/tests/crashtests/1408078-1.html
new file mode 100644
index 0000000000..1d2594bb2e
--- /dev/null
+++ b/gfx/tests/crashtests/1408078-1.html
@@ -0,0 +1 @@
+<div style="font-variant:small-caps">Don't crash&#x1f600;!
diff --git a/gfx/tests/crashtests/1464243.html b/gfx/tests/crashtests/1464243.html
new file mode 100644
index 0000000000..7072478960
--- /dev/null
+++ b/gfx/tests/crashtests/1464243.html
@@ -0,0 +1,13 @@
+<style>
+:not(basefont) {
+ box-shadow: 0 0 8px -moz-win-mediatext;
+ transform: scaley(56);
+}
+.cl {
+ padding-top: 16vw;
+}
+</style>
+<menu>
+<menu class="cl"></menu>
+<menu style="-webkit-perspective: 1px">
+<menu>
diff --git a/gfx/tests/crashtests/1467847-1.html b/gfx/tests/crashtests/1467847-1.html
new file mode 100644
index 0000000000..ed7d1dcf43
--- /dev/null
+++ b/gfx/tests/crashtests/1467847-1.html
@@ -0,0 +1,15 @@
+<html>
+<style>
+:root{
+transform-style:preserve-3d;
+}
+</style>
+<script>
+addEventListener("DOMContentLoaded", () => {
+ let s = document.createElement("fieldset")
+ document.getElementsByTagName("body")[0].appendChild(s)
+ s.animate([{ "transform": "matrix3d(258,8,296,626,168,58,272,151,47,-0,90,-101,116,-119,65,182) translate3d(199ch,238in,47q)" }], 1000)
+})
+</script>
+<body></body>
+</html>
diff --git a/gfx/tests/crashtests/1468020.html b/gfx/tests/crashtests/1468020.html
new file mode 100644
index 0000000000..6150d20013
--- /dev/null
+++ b/gfx/tests/crashtests/1468020.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<meta charset="utf-8">
+<title>Testcase</title>
+<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+<style>
+.homePage .entry svg .letters {
+ position: relative;
+ perspective: 1200px;
+}
+.entryletter {
+ display: block;
+ transform-origin: center;
+ backface-visibility: hidden;
+ transform-origin: center;
+}
+</style>
+</head>
+<body class="homePage">
+ <section class="entry">
+ <div class="svgWrap">
+ <svg id="entryLogo" data-name="entryLogo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 436 250">
+ <g class="vodafone-g">
+ <path d="M152.61,21.4q0.38-5.27,1-6.1a1.8,1.8,0,0,1,1.51-.5l1.82,0,1.57,0h0.38a5.58,5.58,0,0,1,1.25.1,0.57,0.57,0,0,1,.42.65,52.09,52.09,0,0,1-.9,6q-0.9,5-2.45,13.94-0.42,2.47-.65,4.22t-0.46,2.93a5.06,5.06,0,0,1-.59,1.71,1.19,1.19,0,0,1-1.07.54,2.92,2.92,0,0,1-.56-0.06,3.3,3.3,0,0,0-.65-0.06l-1.46,0-0.88,0-0.73,0-0.73,0-0.75,0-0.54,0a1,1,0,0,1-.84-0.33,2.63,2.63,0,0,1-.48-1.07,15.51,15.51,0,0,1-.33-1.88q-0.15-1.15-.4-2.78-0.54-3.39-1.38-7.17t-1.55-8.21q-0.59-3.55-1-5.43a21.32,21.32,0,0,1-.38-2.17,0.85,0.85,0,0,1,.4-0.86,3.6,3.6,0,0,1,1.4-.19h4.18a2.71,2.71,0,0,1,.92.13,0.76,0.76,0,0,1,.46.5,47.65,47.65,0,0,1,.75,6.17q0.46,5.25,1,14.95h0.54Q152.24,26.67,152.61,21.4Z" style="fill: #ed1d24"></path>
+ <path d="M162.86,32.81q0-3.39.21-5.66a7.24,7.24,0,0,1,1.17-3.62,6.2,6.2,0,0,1,2.61-2.32,9,9,0,0,1,3.62-.65,8.34,8.34,0,0,1,3.55.67,5.18,5.18,0,0,1,2.26,2,9.86,9.86,0,0,1,1.19,3.47,29.9,29.9,0,0,1,.36,4.93q0,3.6-.12,6a9.69,9.69,0,0,1-.79,3.74,6.59,6.59,0,0,1-2.63,3,8.25,8.25,0,0,1-4.1.92,7.61,7.61,0,0,1-3.62-.75,5.49,5.49,0,0,1-2.24-2.3,11.38,11.38,0,0,1-1.15-3.91A42.7,42.7,0,0,1,162.86,32.81Zm6,4.1q0,1.92,1.38,1.92a1.41,1.41,0,0,0,1.23-.5,2.89,2.89,0,0,0,.36-1.63V29.76a5.79,5.79,0,0,0-.27-2.07,1.31,1.31,0,0,0-1.36-.65q-1.34,0-1.34,2v7.86Z" style="fill: #ed1d24"></path>
+ <path d="M191,16.72c0-.42,0-0.77,0-1a1.32,1.32,0,0,1,.21-0.65,1,1,0,0,1,.54-0.33,3.91,3.91,0,0,1,1-.1h2.63a9.19,9.19,0,0,1,1,0,0.71,0.71,0,0,1,.5.23,1.17,1.17,0,0,1,.19.59q0,0.4,0,1.11V40.72q0,0.71,0,1.36c0,0.43,0,.84,0,1.23a1.61,1.61,0,0,1-.42,1.3,2.49,2.49,0,0,1-1.51.34h-2.47a1.78,1.78,0,0,1-1.19-.27,2.31,2.31,0,0,1-.4-1.23,5.46,5.46,0,0,1-1.69,1.32,4.58,4.58,0,0,1-1.94.4,4.19,4.19,0,0,1-4.14-3.07q-1.17-3.07-1.17-9.34t1.32-9.16A4.69,4.69,0,0,1,191,21.65V16.72Zm-2.68,18.94a8.39,8.39,0,0,0,.25,2.4,1.13,1.13,0,0,0,1.21.77q1.5,0,1.5-2.51V30.1a9,9,0,0,0-.23-2.36,1.16,1.16,0,0,0-1.28-.77,1.14,1.14,0,0,0-1.21.67,6.37,6.37,0,0,0-.25,2.09v5.94Z" style="fill: #ed1d24"></path>
+ <path d="M210.51,43.39a3,3,0,0,1-3.18,1.92,4.32,4.32,0,0,1-2.21-.59A5.09,5.09,0,0,1,203.41,43a9.39,9.39,0,0,1-1.13-2.7,13.94,13.94,0,0,1-.42-3.55,14.33,14.33,0,0,1,.44-3.72,8.64,8.64,0,0,1,1.23-2.76,5.82,5.82,0,0,1,1.84-1.73,4.5,4.5,0,0,1,2.3-.61,4,4,0,0,1,1.53.27,3,3,0,0,0,1.11.27q0.59,0,.59-0.79a1.79,1.79,0,0,0-.67-1.46,2.91,2.91,0,0,0-1.88-.54,6,6,0,0,0-2.26.38,4.15,4.15,0,0,1-1.46.38,0.86,0.86,0,0,1-.8-0.33,2,2,0,0,1-.21-1V23a4.25,4.25,0,0,1,.08-0.92,0.87,0.87,0,0,1,.59-0.59,10.79,10.79,0,0,1,2.09-.61,16,16,0,0,1,3.34-.31,14.34,14.34,0,0,1,3.37.33A4.7,4.7,0,0,1,215.24,22a4.18,4.18,0,0,1,1.13,1.92,10.48,10.48,0,0,1,.33,2.84v16a4.15,4.15,0,0,0,0,.44,2.87,2.87,0,0,1,0,.36,1.33,1.33,0,0,1-.36,1.19,3.89,3.89,0,0,1-1.53.19H212l-0.65,0a0.41,0.41,0,0,1-.33-0.19,1.17,1.17,0,0,1-.15-0.46,6.87,6.87,0,0,1,0-.88h-0.29Zm-2.8-5.64q0,2.09,1.5,2.09a1.25,1.25,0,0,0,1.21-.54,4.16,4.16,0,0,0,.29-1.84V34.95a3.41,3.41,0,0,0-.29-1.61,1.14,1.14,0,0,0-1.09-.52q-1.63,0-1.63,2.26v2.68Z" style="fill: #ed1d24"></path>
+ <path d="M230,20.27a1.8,1.8,0,0,1-.4,0,1.67,1.67,0,0,0-.36,0q-0.83,0-.84,1.13c0,0.14,0,.29,0,0.44s0,0.33.06,0.52h1.59q1,0,1,1.34v3.05a1.42,1.42,0,0,1-.36,1.13,2.15,2.15,0,0,1-1.32.29h-0.59V43.18a2.93,2.93,0,0,1-.25,1.44,1.63,1.63,0,0,1-1.38.4,7.64,7.64,0,0,1-.84,0,5.61,5.61,0,0,0-.58,0,4.8,4.8,0,0,0-.8.06,4.82,4.82,0,0,1-.79.06,1.05,1.05,0,0,1-1.13-.48,5.45,5.45,0,0,1-.17-1.61V28.17a2.9,2.9,0,0,1-.54,0,0.81,0.81,0,0,1-.86-0.38,4.16,4.16,0,0,1-.15-1.34V23.62a1.87,1.87,0,0,1,.23-1.07,1,1,0,0,1,.86-0.31l0.21,0,0.25,0v-3.8q0-4.05,4.22-4.06h1.71a5.08,5.08,0,0,1,1.8.21,1.44,1.44,0,0,1,.46,1.38v3A1,1,0,0,1,230,20.27Z" style="fill: #ed1d24"></path>
+ <path d="M235.22,32.81q0-3.39.21-5.66a7.26,7.26,0,0,1,1.17-3.62,6.2,6.2,0,0,1,2.61-2.32,9,9,0,0,1,3.62-.65,8.35,8.35,0,0,1,3.55.67,5.18,5.18,0,0,1,2.26,2,9.9,9.9,0,0,1,1.19,3.47,29.9,29.9,0,0,1,.36,4.93q0,3.6-.12,6a9.69,9.69,0,0,1-.79,3.74,6.6,6.6,0,0,1-2.63,3,8.24,8.24,0,0,1-4.1.92,7.61,7.61,0,0,1-3.62-.75,5.48,5.48,0,0,1-2.24-2.3,11.43,11.43,0,0,1-1.15-3.91A42.7,42.7,0,0,1,235.22,32.81Zm6,4.1q0,1.92,1.38,1.92a1.41,1.41,0,0,0,1.23-.5,2.89,2.89,0,0,0,.36-1.63V29.76a5.79,5.79,0,0,0-.27-2.07,1.31,1.31,0,0,0-1.36-.65q-1.34,0-1.34,2v7.86Z" style="fill: #ed1d24"></path>
+ <path d="M265.72,44.83a1.48,1.48,0,0,1-.77-0.36,1.31,1.31,0,0,1-.33-0.71,6.64,6.64,0,0,1-.08-1.17v-11a19.57,19.57,0,0,0-.21-3.3A1.21,1.21,0,0,0,263,27.21q-1.8,0-1.8,3.09v9a17.45,17.45,0,0,0,.11,1.94,16.78,16.78,0,0,1,.1,1.82,3.22,3.22,0,0,1-.12,1,1.12,1.12,0,0,1-.38.54,1.27,1.27,0,0,1-.65.23,9.61,9.61,0,0,1-1,0h-2.8a1.39,1.39,0,0,1-1.26-.46,3.72,3.72,0,0,1-.29-1.8V25.83q0-.38,0-1t0-1.46a7.91,7.91,0,0,1,.08-1.28,1.37,1.37,0,0,1,.36-0.75A1.52,1.52,0,0,1,256.1,21a7.48,7.48,0,0,1,1.4-.1h2.38a1.88,1.88,0,0,1,1.21.27,1.69,1.69,0,0,1,.29,1.19v0.29l0.21,0a4.92,4.92,0,0,1,4.1-2.09,4.13,4.13,0,0,1,3.91,2,12.78,12.78,0,0,1,1.15,6.12V41.59a7.51,7.51,0,0,1-.31,2.55,1.65,1.65,0,0,1-1.73.79h-1.59A7.44,7.44,0,0,1,265.72,44.83Z" style="fill: #ed1d24"></path>
+ <path d="M290.07,42.64a1.59,1.59,0,0,1-.42,1.34,7.53,7.53,0,0,1-2,.86,11.18,11.18,0,0,1-3.22.44q-4.93,0-7.06-3.05t-2.13-9.53q0-6.19,1.82-9.13t6-2.95a6.86,6.86,0,0,1,6.35,3.64,7.9,7.9,0,0,1,.86,3.22q0.15,1.92.15,4.56a9.4,9.4,0,0,1-.25,2.51,1.19,1.19,0,0,1-1.3.84h-6.73a0.75,0.75,0,0,0-.44.17,0.47,0.47,0,0,0-.23.38,2.89,2.89,0,0,0,.86,2.32,4.34,4.34,0,0,0,2.82.73,3.9,3.9,0,0,0,1.19-.17,6.58,6.58,0,0,0,.94-0.38L288,38a1.35,1.35,0,0,1,.59-0.17,1.33,1.33,0,0,1,1.46,1.55v3.22Zm-6.48-12.17a1,1,0,0,0,.88-0.29,2.32,2.32,0,0,0,.17-1,5.5,5.5,0,0,0-.36-2.28,1.44,1.44,0,0,0-1.44-.73q-1.42,0-1.42,2.34a5.69,5.69,0,0,0,.15,1.55,0.67,0.67,0,0,0,.73.46h1.29Z" style="fill: #ed1d24"></path>
+ </g>
+ <g>
+ <rect x="9.7" y="74.68" width="415.88" height="0.33" style="fill: #fff"></rect>
+ <rect x="9.7" y="111" width="415.88" height="0.33" style="fill: #fff"></rect>
+ <rect x="9.7" y="150.75" width="415.88" height="0.33" style="fill: #fff"></rect>
+ <rect x="9.7" y="191.44" width="415.88" height="0.33" style="fill: #fff"></rect>
+ <rect x="9.7" y="227.55" width="415.88" height="0.33" style="fill: #fff"></rect>
+ </g>
+ <g class="letters">
+ <path class="entryletter" d="M55.86,84.95q0-1.07-.05-2.31t-0.05-2.73q0-2.9,1-4t3.7-1.13q0.75,0,1.45.05c0.46,0,.95.05,1.45,0.05s1,0,1.45-.05,1-.05,1.55-0.05H81.49c0.79,0,1.46,0,2-.05s1-.05,1.39-0.05q2.79,0,3.86,1.13t1.07,4.45q0,1.18-.11,2.41t-0.11,2.63A16.47,16.47,0,0,1,89.32,89a2.81,2.81,0,0,1-1.39,1.88,7,7,0,0,1-2.95.7q-1.88.11-5,.11H77a11,11,0,0,0-2.09.16,1.67,1.67,0,0,0-1.18.8,5,5,0,0,0-.54,1.82A25.06,25.06,0,0,0,73,97.71q0,2,.11,3.11a2.55,2.55,0,0,0,.64,1.61,2.78,2.78,0,0,0,1.77.64q1.23,0.11,3.48.11h0.75a24.62,24.62,0,0,0,3.38-.21,21,21,0,0,1,2.84-.21,2.59,2.59,0,0,1,2.47,1.13,7.57,7.57,0,0,1,.64,3.59q0,1.07-.05,2.09c0,0.68-.05,1.38-0.05,2.09v2.68A8.6,8.6,0,0,1,88,119q-1,1.39-4.18,1.39-1.29,0-2.89-.11t-3.43-.11q-2.68,0-3.48,1t-0.8,4.45v15.55q0,2.57.16,4.34t0.16,2.63a4.26,4.26,0,0,1-1,3.11,4.44,4.44,0,0,1-3.22,1,23.59,23.59,0,0,1-3.11-.21,26.06,26.06,0,0,0-3.43-.21,15.12,15.12,0,0,0-2.25.16,15.15,15.15,0,0,1-2.25.16q-1.83,0-2.2-.91a8.76,8.76,0,0,1-.38-3.06v-2.14c0-.57,0-1.14.05-1.72s0.05-1.14.05-1.72V84.95Z" style="fill: #fff" data-svg-origin="273.68751525878906 199.67999267578125" transform="matrix(1,0,0,1,0,0)"></path>
+
+ <path class="entryletter" d="M94.77,134.54Q94,133.41,94,130V86.66q0-1-.11-2.52t-0.11-3.7A19.83,19.83,0,0,1,94,77.17a3.5,3.5,0,0,1,.91-1.93,3.84,3.84,0,0,1,2-1,18.3,18.3,0,0,1,3.54-.27h5.25a5.78,5.78,0,0,1,2,.27,1.81,1.81,0,0,1,1,1,5.27,5.27,0,0,1,.38,1.93q0.05,1.23.05,3.16l0.75,0.11a17.49,17.49,0,0,1,2.73-5.68q1.55-1.93,2.95-1.93a2.61,2.61,0,0,1,2.68,1.5,12.38,12.38,0,0,1,.64,4.61V90.42a20.33,20.33,0,0,1-.11,2.36,2.35,2.35,0,0,1-.43,1.23,1.76,1.76,0,0,1-.86.54,8.85,8.85,0,0,1-1.5.27,7,7,0,0,0-4.34,2q-1.23,1.5-1.23,4.93V121.4q0,2.68.21,4.93t0.21,4.07q0,3.54-.8,4.4t-3.49.86H98Q95.52,135.67,94.77,134.54Z" style="fill: #fff" data-svg-origin="311.77760314941406 197.81153106689453" transform="matrix(1,0,0,1,0,0)"></path>
+
+ <path class="entryletter" d="M158.57,129.77q0,2.68-1.07,3.43a19.2,19.2,0,0,1-5.25,2.2,28.64,28.64,0,0,1-8.26,1.13q-12.65,0-18.12-7.83t-5.47-24.45q0-15.87,4.66-23.43t15.49-7.56q10.94,0,16.3,9.33a20.29,20.29,0,0,1,2.2,8.26q0.38,4.93.38,11.69a23.93,23.93,0,0,1-.64,6.43q-0.64,2.15-3.32,2.14H138.19a1.94,1.94,0,0,0-1.13.43,1.21,1.21,0,0,0-.59,1q0,4.08,2.2,6t7.24,1.88a10,10,0,0,0,3.06-.43,16.78,16.78,0,0,0,2.41-1l1.93-1a3.48,3.48,0,0,1,1.5-.43q3.75,0,3.75,4v8.26Zm-16.62-31.2q1.82,0,2.25-.75a5.89,5.89,0,0,0,.43-2.68,14.11,14.11,0,0,0-.91-5.84q-0.91-1.87-3.7-1.88-3.65,0-3.65,6a14.57,14.57,0,0,0,.38,4,1.73,1.73,0,0,0,1.88,1.18h3.32Z" style="fill: #fff" data-svg-origin="338.39998626708984 198.2599868774414" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M201.67,129.77q0,2.68-1.07,3.43a19.19,19.19,0,0,1-5.25,2.2,28.64,28.64,0,0,1-8.26,1.13q-12.66,0-18.12-7.83t-5.47-24.45q0-15.87,4.67-23.43t15.49-7.56q10.94,0,16.3,9.33a20.28,20.28,0,0,1,2.2,8.26q0.38,4.93.38,11.69a23.94,23.94,0,0,1-.64,6.43q-0.64,2.15-3.32,2.14H181.3a1.94,1.94,0,0,0-1.13.43,1.21,1.21,0,0,0-.59,1q0,4.08,2.2,6t7.24,1.88a10,10,0,0,0,3.06-.43,16.78,16.78,0,0,0,2.41-1l1.93-1a3.48,3.48,0,0,1,1.5-.43q3.75,0,3.75,4v8.26ZM185,98.56q1.82,0,2.25-.75a5.89,5.89,0,0,0,.43-2.68,14.09,14.09,0,0,0-.91-5.84q-0.91-1.87-3.7-1.88-3.64,0-3.64,6a14.53,14.53,0,0,0,.38,4,1.73,1.73,0,0,0,1.88,1.18H185Z" style="fill: #fff" data-svg-origin="381.5 198.26000213623047" transform="matrix(1,0,0,1,0,0)"></path>
+
+
+ <path class="entryletter" d="M206.05,139.1a15.65,15.65,0,0,1,1.45-6.22q1.45-3.32,3.27-7.93,2.79-7.08,5.2-12.49t4.24-9.33Q222,99.21,223,96.8a10.51,10.51,0,0,0,1-3.49q0-.86-1.29-1.07a29.74,29.74,0,0,0-4.29-.21q-3.11,0-4.88.11t-2.3.11q-2.68,0-3.54-1.39a8.93,8.93,0,0,1-.86-4.5q0-.86.05-1.39c0-.36.05-0.61,0.05-0.75,0-.36,0-1-0.05-1.82s-0.05-2-.05-3.32a3.53,3.53,0,0,1,1.34-3.22A8.62,8.62,0,0,1,212.7,75h28.52a3.93,3.93,0,0,1,2.68.64,3.16,3.16,0,0,1,.91,2.14,39.47,39.47,0,0,1,.16,4v3.65a11,11,0,0,1-.27,1.39,23.11,23.11,0,0,1-.91,2.89L227,130.84c-0.21.57-.41,1.06-0.59,1.45a2.71,2.71,0,0,0-.27,1.13q0,0.86,5.68.86h2.89a43,43,0,0,0,4.77-.21,27.13,27.13,0,0,1,2.74-.21,2.64,2.64,0,0,1,2.14,1.07,4.34,4.34,0,0,1,.86,2.79q0,1.82-.11,3.38T245,143.92c0,0.36,0,.79.05,1.29s0.05,1.11.05,1.82q0,3-.91,4a3.93,3.93,0,0,1-3.05,1q-4.4,0-8.1-.16t-6.81-.16q-2.47,0-5.15.16t-5.68.16H213q-1.72,0-2.73.05l-1.23.05a2.78,2.78,0,0,1-2.41-1,5.87,5.87,0,0,1-.7-3.32Z" style="fill: #fff" data-svg-origin="423.9086151123047 199.96994018554688" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M287.51,76.37a2.11,2.11,0,0,0-1.91-1.71,9.51,9.51,0,0,0-1.32-.1h-9.54a1.42,1.42,0,0,0-.81.1,1.79,1.79,0,0,1-1.48.26,28.56,28.56,0,0,0-8.25.4,14.58,14.58,0,0,0-8.11,4.38s-4.92,4.44-5.47,13c0,0.54-.06,1.09-0.05,1.64h0v0c0,0.17,0,.33,0,0.5q0,0.87,0,1.74c0,6.36,0,12.72,0,19.08,0,3.73-.09,7.47-0.09,11.2q0,18.34.09,36.67a6.69,6.69,0,0,1-.07.67l-0.76-.3a29.09,29.09,0,0,0-24.62.83,30.5,30.5,0,0,0-13.6,14.39A37.18,37.18,0,0,0,208.34,200a33.17,33.17,0,0,0,5.37,14.83c6.69,9.85,16,14.44,27.89,13.24a27.22,27.22,0,0,0,17.29-8.65,34.17,34.17,0,0,0,9.4-22.2c0.11-1.65,0-3.31,0-5q0-27,0-54c0-.27,0-0.54,0-0.85l0.78,0c1.46-.11,2.93-0.14,4.37-0.35a15.33,15.33,0,0,0,8.71-4.09,18.07,18.07,0,0,0,3.84-5.44,21.16,21.16,0,0,0,1.61-7.83V77.27C287.63,77,287.58,76.67,287.51,76.37Zm-14.28,39.34a12.15,12.15,0,0,1-.33,2.71,3.05,3.05,0,0,1-3.07,2.53,7.46,7.46,0,0,1-.91,0,2.88,2.88,0,0,1-2.64-1.82,6.64,6.64,0,0,1-.5-2.75q0-3.36,0-6.72v-3.57c0-3.32,0-6.63,0-10a10.24,10.24,0,0,1,.35-2.61,2.88,2.88,0,0,1,3.18-2.32,6.59,6.59,0,0,1,.91.06,2.71,2.71,0,0,1,2.55,2.33,27.48,27.48,0,0,1,.44,4C273.28,103.65,273.26,109.68,273.24,115.71Z" style="fill: #ed1d24;fill-rule: evenodd" data-svg-origin="425.99229431152344 199.53984832763672" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M323.18,135.4a3.8,3.8,0,0,1-2-.91,3.34,3.34,0,0,1-.86-1.82,17.11,17.11,0,0,1-.21-3V101.57a50,50,0,0,0-.54-8.47,3.11,3.11,0,0,0-3.32-2.89q-4.61,0-4.61,7.93V121.3a44.44,44.44,0,0,0,.27,5,42.48,42.48,0,0,1,.27,4.66,8.33,8.33,0,0,1-.32,2.63,2.89,2.89,0,0,1-1,1.39,3.29,3.29,0,0,1-1.66.59,24.5,24.5,0,0,1-2.52.11h-7.18q-2.47,0-3.22-1.18t-0.75-4.61V86.66q0-1-.11-2.57t-0.11-3.75a19.73,19.73,0,0,1,.21-3.27,3.49,3.49,0,0,1,.91-1.93,3.88,3.88,0,0,1,2-1,19.17,19.17,0,0,1,3.59-.27h6.11a4.82,4.82,0,0,1,3.11.7q0.75,0.7.75,3.06v0.75l0.54,0.11a12.63,12.63,0,0,1,10.51-5.36q7.08,0,10,5.2t2.95,15.71v33a19.31,19.31,0,0,1-.8,6.54q-0.81,2-4.45,2h-4.07A19,19,0,0,1,323.18,135.4Z" style="fill: #fff" data-svg-origin="513.3064270019531 198.1286849975586" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M378.67,129.77q0,2.68-1.07,3.43a19.19,19.19,0,0,1-5.25,2.2,28.63,28.63,0,0,1-8.26,1.13q-12.65,0-18.12-7.83t-5.47-24.45q0-15.87,4.66-23.43t15.49-7.56q10.94,0,16.3,9.33a20.31,20.31,0,0,1,2.2,8.26q0.37,4.93.38,11.69a23.92,23.92,0,0,1-.64,6.43q-0.64,2.15-3.32,2.14H358.29a1.94,1.94,0,0,0-1.12.43,1.2,1.2,0,0,0-.59,1q0,4.08,2.2,6t7.24,1.88a10,10,0,0,0,3.06-.43,16.78,16.78,0,0,0,2.41-1l1.93-1a3.48,3.48,0,0,1,1.5-.43q3.75,0,3.75,4v8.26ZM362,98.56q1.82,0,2.25-.75a5.92,5.92,0,0,0,.43-2.68,14.13,14.13,0,0,0-.91-5.84q-0.91-1.87-3.7-1.88-3.65,0-3.65,6a14.61,14.61,0,0,0,.38,4,1.73,1.73,0,0,0,1.88,1.18H362Z" style="fill: #fff" data-svg-origin="558.5 198.26000213623047" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M77.43,211.93v-0.45a6.83,6.83,0,0,1,1.12-4.38q1.12-1.35,3.93-1.35a3.5,3.5,0,0,1,1.63.45q0.84,0.45,2,1a21.12,21.12,0,0,0,2.64,1,13.48,13.48,0,0,0,3.77.45q5.73,0,5.73-4.95a6.91,6.91,0,0,0-.9-3.48A14,14,0,0,0,94.85,197q-1.57-1.52-3.6-3.2T87,190a31.14,31.14,0,0,1-7.25-9.83,28.44,28.44,0,0,1-2.19-11.52q0-22.81,25.29-22.81,4.16,0,6.52.22a8,8,0,0,1,3.48,1,3,3,0,0,1,1.35,2.19,26.17,26.17,0,0,1,.23,3.82v8.2q0,3.37-.67,4.44t-3.26,1.07a11.65,11.65,0,0,1-4.1-.73,11.71,11.71,0,0,0-4.1-.73q-5.17,0-5.17,4.5a5.73,5.73,0,0,0,1,3.09,18.1,18.1,0,0,0,2.75,3.26q1.8,1.74,4.21,3.93t5.34,5.11a26,26,0,0,1,6.07,8.71,27.59,27.59,0,0,1,1.69,10.06q0,12.48-5.73,18.43t-18.21,6A48.83,48.83,0,0,1,85,227.6a22.64,22.64,0,0,1-5.28-1.52,3.14,3.14,0,0,1-1.85-1.91,12.39,12.39,0,0,1-.28-2.92v-0.79Z" style="fill: #fff" data-svg-origin="295.4041748046875 270.8400115966797" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M126.77,181.92a11.56,11.56,0,0,1-2.87-.28,2.89,2.89,0,0,1-1.63-1,4.15,4.15,0,0,1-.73-2,25.21,25.21,0,0,1-.17-3.2q0-2.7.11-4.55a7.27,7.27,0,0,1,.67-2.92,3.41,3.41,0,0,1,1.74-1.57,8.28,8.28,0,0,1,3.2-.51h0.34v-9.44q0-2.13.11-3.48a3.88,3.88,0,0,1,.67-2.08,2.67,2.67,0,0,1,1.63-1,15.35,15.35,0,0,1,3-.22h1.8q0.9,0,2.47-.06t3.82-.06q2.58,0,3.15,1.35a11.92,11.92,0,0,1,.56,4.27v10.56h0.79q3.15,0,4.16,1t1,3.77v6.63a16,16,0,0,1-.17,2.64,2.47,2.47,0,0,1-.73,1.46,3.35,3.35,0,0,1-1.8.67,25,25,0,0,1-3.26.17v24.39q0,2.58,2,2.58,2.25,0,2.87.62t0.62,3.77v8.77q0,2.92-1.07,3.93a5.26,5.26,0,0,1-3.65,1h-4.5a53.33,53.33,0,0,1-6.58-.34,7.37,7.37,0,0,1-4.21-1.8,8.61,8.61,0,0,1-2.3-5.28,77.25,77.25,0,0,1-.39-8.65V181.92h-0.67Z" style="fill: #fff" data-svg-origin="339.3685989379883 274.55003356933594" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M166.78,162.47a24,24,0,0,1,3.71.22,4,4,0,0,1,2.08.9,3.33,3.33,0,0,1,1,1.91,18,18,0,0,1,.23,3.15v29.56a52.39,52.39,0,0,0,.56,8.88,3.26,3.26,0,0,0,3.48,3q4.83,0,4.83-8.32V177.54a46.22,46.22,0,0,0-.28-5.11,45.22,45.22,0,0,1-.28-5q0-3.48,1.29-4.21a9.69,9.69,0,0,1,4.44-.73h7.53q2.58,0,3.37,1.18t0.79,4.78v45.4c0,0.75,0,1.67.11,2.75s0.11,2.38.11,3.88a21,21,0,0,1-.22,3.43,3.68,3.68,0,0,1-1,2,4.06,4.06,0,0,1-2.14,1,20,20,0,0,1-3.76.28h-6.41q-2.47,0-3.26-.73t-0.79-3.2v-0.79l-0.56-.11a13.13,13.13,0,0,1-11,5.51q-7.42,0-10.51-5.45T157,206.08V171.47q0-2.36.11-4a7.32,7.32,0,0,1,.67-2.81,3.4,3.4,0,0,1,1.69-1.63,7.53,7.53,0,0,1,3-.51h4.27Zm9-6.63a1.59,1.59,0,0,1-.67,1.57,5.41,5.41,0,0,1-2.25.34H166a4.09,4.09,0,0,1-2-.39,1.86,1.86,0,0,1-.67-1.74v-7A1.73,1.73,0,0,1,164,147a4.72,4.72,0,0,1,2.25-.39h6.85a3.66,3.66,0,0,1,2.08.45,2.13,2.13,0,0,1,.62,1.8v7Zm18.54,0a1.59,1.59,0,0,1-.67,1.57,5.42,5.42,0,0,1-2.25.34h-7a3.76,3.76,0,0,1-2-.39,1.94,1.94,0,0,1-.62-1.74v-7a1.73,1.73,0,0,1,.67-1.63,4.72,4.72,0,0,1,2.25-.39h6.86a3.65,3.65,0,0,1,2.08.45,2.12,2.12,0,0,1,.62,1.8v7Z" style="fill: #fff" data-svg-origin="375 271.5874786376953" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M279.84,219.31a3.17,3.17,0,0,1,1.93.51,2.15,2.15,0,0,0,1.25.51q2.27,0,2.27-1.71a15.28,15.28,0,0,0-.34-3l-9.43-47.39q-0.23-.91-0.34-1.59a6.88,6.88,0,0,1-.11-0.91,2.93,2.93,0,0,1,1.08-2.44,4.54,4.54,0,0,1,2.9-.85h9.77q2.16,0,2.61,1a12.81,12.81,0,0,1,.68,3.64l3.75,40.57h2l3.18-42a3.75,3.75,0,0,1,1-2.56,5,5,0,0,1,3-.62h8.29q4.54,0,4.55,3.52a12.88,12.88,0,0,1-.46,3l-11.36,53.52q-1.82,8.29-5.63,11.93t-11.31,3.64a28.37,28.37,0,0,1-9.09-1.08q-3-1.08-3-3.69v-9.77Q277.11,219.31,279.84,219.31Z" style="fill: #fff" data-svg-origin="493.0654296875 287.43333435058594" transform="matrix(1,0,0,1,0,0)"></path>
+ <path class="entryletter" d="M322,194.76q0-9.21.57-15.4a19.72,19.72,0,0,1,3.18-9.83,16.85,16.85,0,0,1,7.1-6.31,24.52,24.52,0,0,1,9.83-1.76,22.65,22.65,0,0,1,9.66,1.82,14,14,0,0,1,6.13,5.57,26.76,26.76,0,0,1,3.24,9.43,81,81,0,0,1,1,13.41q0,9.78-.34,16.31t-2.16,10.17a17.93,17.93,0,0,1-7.16,8.07,22.44,22.44,0,0,1-11.14,2.5,20.7,20.7,0,0,1-9.83-2,14.91,14.91,0,0,1-6.08-6.25,30.9,30.9,0,0,1-3.12-10.62A116.33,116.33,0,0,1,322,194.76Zm16.36,11.14q0,5.23,3.75,5.23a3.82,3.82,0,0,0,3.35-1.36,7.84,7.84,0,0,0,1-4.43V186.46a15.66,15.66,0,0,0-.74-5.62q-0.74-1.76-3.69-1.76-3.64,0-3.64,5.45V205.9Z" style="fill: #fff" data-svg-origin="539.9972229003906 286.44805908203125" transform="matrix(1,0,0,1,0,0)"></path>
+ </g>
+ </svg>
+ </div>
+ </section>
+</body></html>
diff --git a/gfx/tests/crashtests/1470437.html b/gfx/tests/crashtests/1470437.html
new file mode 100644
index 0000000000..c88008fe00
--- /dev/null
+++ b/gfx/tests/crashtests/1470437.html
@@ -0,0 +1,10 @@
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252"><style>
+:last-child{
+ background-image: -moz-element(#id3);
+ border-width: 9596.6vmin;
+ border-style: dotted;
+}
+</style>
+</head><body><rect id="id3">
+</rect></body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1470440.html b/gfx/tests/crashtests/1470440.html
new file mode 100644
index 0000000000..646070436c
--- /dev/null
+++ b/gfx/tests/crashtests/1470440.html
@@ -0,0 +1,7 @@
+<style>
+:last-child{
+ border-width: 9596.6vmin thin;
+ border-style: dotted;
+}
+</style>
+<rect id='id3'/>
diff --git a/gfx/tests/crashtests/1478035.html b/gfx/tests/crashtests/1478035.html
new file mode 100644
index 0000000000..39255e5d28
--- /dev/null
+++ b/gfx/tests/crashtests/1478035.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html class="reftest-wait"><body>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 966 520">
+ <defs>
+ <filter id="goo">
+ <feGaussianBlur in="SourceGraphic" stdDeviation="11" result="blur"></feGaussianBlur>
+ <feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 21 -9"></feColorMatrix>
+ <feBlend></feBlend>
+ </filter>
+ <path id="bean" d="M468,146.24c8,4.81,3.39,13.19,10.53,14.61s21.48-.6,21.77,9.12c.23,8-18.6,18.21-38,9.64-12-5.29-16.84-17.93-15.69-25.65C448.27,142.45,460.86,142,468,146.24Z"></path>
+ </defs>
+ <g filter="url(#goo)" clip-path="url(#worldMapMask)" opacity="0.1" fill="#3ac0f0" style="opacity: 0.054;">
+ <use id="animated" xlink:href="#bean" style="transform-origin: 0px 0px 0px;" transform="matrix(0.40499,0,0,0.40499,281.6573805236819,97.17512744903576)"></use>
+ </g>
+</svg>
+
+<script>
+var animated = document.getElementById('animated');
+var transforms = [
+ 'matrix(0.40499,0,0,0.40499,281.65738000000005,97.17513000000001)',
+ 'matrix(0,0,0,0,473.36901451812747,163.31791128669738)',
+ 'matrix(0.40499,0,0,0.40499,281.65738000000005,97.17513000000001)',
+ 'matrix(0,0,0,0,473.36901451812747,163.31791128669738)',
+ 'matrix(9,0,0,9,-3786.9947244955442,-1306.5579660936737)',
+ 'matrix(0,0,0,0,473.36901451812747,163.31791128669738)',
+ 'matrix(3,0,0,3,-946.7522318197632,-326.64071450675965)'
+];
+var index = 0;
+function nextFrame() {
+ animated.setAttribute('transform', transforms[index]);
+ index++;
+ if (index < transforms.length) {
+ requestAnimationFrame(nextFrame);
+ } else {
+ document.documentElement.classList.remove('reftest-wait');
+ }
+}
+window.addEventListener('load', nextFrame);
+</script>
+</body></html>
diff --git a/gfx/tests/crashtests/1490704-1.html b/gfx/tests/crashtests/1490704-1.html
new file mode 100644
index 0000000000..9352d80e5f
--- /dev/null
+++ b/gfx/tests/crashtests/1490704-1.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <style class="">
+ * {
+ transform: scalex(10) !important;
+ block-size: calc(-25958*-8px + -23%);
+ }
+
+ @page :left {
+ @page :left {
+ *:link {}
+ }
+ }
+
+ * {
+ box-shadow: green calc(42em - 43357px) 45px, blue -3841px 125px, currentColor 21px 50268px, 168px 2px 50817px 253px orange;
+ columns: 2 auto ! important;
+ }
+ </style>
+</head>
+
+<body class="" style="inline-size:-moz-min-content!important">
+ <p class=""><canvas class="" width="1024">
+</body>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1494062-blob-image-wraplist-clip.html b/gfx/tests/crashtests/1494062-blob-image-wraplist-clip.html
new file mode 100644
index 0000000000..670cb2551e
--- /dev/null
+++ b/gfx/tests/crashtests/1494062-blob-image-wraplist-clip.html
@@ -0,0 +1,27 @@
+<html class="reftest-wait">
+<head>
+<script type="text/javascript">
+window.addEventListener("MozReftestInvalidate", function() {
+ window.requestAnimationFrame(function() {
+ var xmlns = "http://www.w3.org/2000/svg";
+ var circleElm = document.getElementById("green_circle");
+ circleElm.setAttribute("clip-path", "url(#quarter)");
+ window.requestAnimationFrame(function() {
+ document.documentElement.removeAttribute('class');
+ });
+ });
+});
+</script>
+</head>
+<body>
+<svg width="200" height="200" id="root">
+<defs>
+<clipPath id="quarter">
+<rect x="0" y="0" width="50" height="50"/>
+</clipPath>
+</defs>
+<circle cx="50" cy="50" r="40" fill="green" id="green_circle"/>
+<rect x="150" y="150" width="10" height="10" fill="red"/>
+</svg>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/1496194.html b/gfx/tests/crashtests/1496194.html
new file mode 100644
index 0000000000..b0bf1b8472
--- /dev/null
+++ b/gfx/tests/crashtests/1496194.html
@@ -0,0 +1,14 @@
+<style>
+/*
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ */
+* {
+ position: sticky;
+ padding-right: 1px;
+ left: 2px;
+ right: 163px;
+ display: ruby-base;
+}
+</style>
diff --git a/gfx/tests/crashtests/1501518.html b/gfx/tests/crashtests/1501518.html
new file mode 100644
index 0000000000..a03e92697a
--- /dev/null
+++ b/gfx/tests/crashtests/1501518.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<!-- Add a few levels of blur to put as at an earlier render pass than the rest of the browser UI.
+ We then trigger a render pass with a larger border and a small rectangle. The border gets drawn
+ in this pass because it goes into the texture cache, and the rectangle gets drawn in this pass
+ because it gets an additional blur. A large item drawn to the texture cache in a pass where
+ the other objects are small will trigger the allocation of a render target that's smaller than
+ the large item, which is fine but triggered a panic before this bug was fixed.
+-->
+<div style="filter: blur(1px);">
+ <div style="filter: blur(1px);">
+ <div style="filter: blur(1px);">
+ <div style="background: green; height: 50px; width: 1000px; border: 10px dotted black;"></div>
+ <div style="background: blue; height: 50px; width: 50px; filter: blur(1px);"</div>
+ </div>
+ </div>
+</div>
diff --git a/gfx/tests/crashtests/1503986-1.html b/gfx/tests/crashtests/1503986-1.html
new file mode 100644
index 0000000000..016ac4084a
--- /dev/null
+++ b/gfx/tests/crashtests/1503986-1.html
@@ -0,0 +1,8 @@
+<canvas id='c'></canvas>
+<script>
+document.addEventListener("DOMContentLoaded", function(){
+var a=document.getElementById('c').getContext('2d');
+ a.setLineDash([17]);
+ a.strokeText('L', 53, 1);
+});
+</script>
diff --git a/gfx/tests/crashtests/1505426-1.html b/gfx/tests/crashtests/1505426-1.html
new file mode 100644
index 0000000000..d6eef7c99d
--- /dev/null
+++ b/gfx/tests/crashtests/1505426-1.html
@@ -0,0 +1,23 @@
+<html>
+
+<head>
+ <script>
+ function start() {
+ canvas = document.getElementById('canvas')
+ context = canvas.getContext('2d')
+ canvas.setAttribute('x', 800)
+ setTimeout(function() {
+ context.fillText('i', 158, 156, 206)
+ }, 0)
+ context.setTransform(0, 1, 19, 1, 0.0989504886744, 0)
+ }
+ document.addEventListener('DOMContentLoaded', start)
+ </script>
+
+</head>
+
+<body>
+ <canvas id='canvas'></canvas>
+</body>
+
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1505934-1.html b/gfx/tests/crashtests/1505934-1.html
new file mode 100644
index 0000000000..67475fecf9
--- /dev/null
+++ b/gfx/tests/crashtests/1505934-1.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<style>
+ body {
+ background-color: limegreen;
+ }
+ .A {
+ transform: scale(0.01) perspective(1000px);
+ transform-origin: 0% 0%;
+ filter: grayscale(40%);
+ }
+ .B {
+ background-color: black;
+ width: 10000px;
+ height: 5000px;
+ border-radius: 2000px;
+ }
+</style>
+<body>
+ <div class="A">
+ <div class = "B"/>
+ </div>
+</body>
diff --git a/gfx/tests/crashtests/1508811.html b/gfx/tests/crashtests/1508811.html
new file mode 100644
index 0000000000..2e762a98a0
--- /dev/null
+++ b/gfx/tests/crashtests/1508811.html
@@ -0,0 +1,10 @@
+<style>
+* {
+ -webkit-background-clip: text;
+ column-count: 7;
+}
+</style>
+<dialog open="true">
+<dl>
+<dd>
+<menu>
diff --git a/gfx/tests/crashtests/1508822.html b/gfx/tests/crashtests/1508822.html
new file mode 100644
index 0000000000..a3b6ce8e1e
--- /dev/null
+++ b/gfx/tests/crashtests/1508822.html
@@ -0,0 +1,5 @@
+<style>
+* { scale: 0.55749 10 1 }
+</style>
+<svg>
+<circle r="49%" mask="url()">
diff --git a/gfx/tests/crashtests/1509099.html b/gfx/tests/crashtests/1509099.html
new file mode 100644
index 0000000000..861299e595
--- /dev/null
+++ b/gfx/tests/crashtests/1509099.html
@@ -0,0 +1,7 @@
+<style>
+* { transform: scale(-1, 5) }
+</style>
+<marquee height="1">A</marquee>
+<br/><br/>
+<svg>
+<ellipse rx="5" ry="93%" stroke-width="0.6" stroke="red">
diff --git a/gfx/tests/crashtests/1509123.html b/gfx/tests/crashtests/1509123.html
new file mode 100644
index 0000000000..375ce0c553
--- /dev/null
+++ b/gfx/tests/crashtests/1509123.html
@@ -0,0 +1,12 @@
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252"><style>
+* {
+ -webkit-text-stroke-width: 90px;
+ -webkit-transform: scale(9);
+}
+</style>
+</head><body><ol>
+<li>
+<dialog open="true">
+<audio controls="controls">
+</audio></dialog></li></ol></body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1513133.html b/gfx/tests/crashtests/1513133.html
new file mode 100644
index 0000000000..2f4e668691
--- /dev/null
+++ b/gfx/tests/crashtests/1513133.html
@@ -0,0 +1,11 @@
+<style>
+#a { scale: 47 9 }
+#b {
+ font: 31em Ahem, serif;
+ border-top-left-radius: 2vmin;
+ mix-blend-mode: color-burn;
+ -webkit-background-clip: text;
+}
+</style>
+<pre id="a">
+<textarea id="b">
diff --git a/gfx/tests/crashtests/1524418.html b/gfx/tests/crashtests/1524418.html
new file mode 100644
index 0000000000..a6191a9054
--- /dev/null
+++ b/gfx/tests/crashtests/1524418.html
@@ -0,0 +1,11 @@
+<script>
+window.onload=function() {
+ a.setAttribute('style', 'font-size:3154')
+}
+</script>
+<style>
+* {
+ background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLz4=);
+}
+</style>
+<select size='63' id='a'>
diff --git a/gfx/tests/crashtests/1529149.html b/gfx/tests/crashtests/1529149.html
new file mode 100644
index 0000000000..6f6b82dab8
--- /dev/null
+++ b/gfx/tests/crashtests/1529149.html
@@ -0,0 +1,23 @@
+<html class="reftest-wait">
+<style>
+:not(option) {
+ position: absolute;
+}
+#a {
+ background: url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=) fixed;
+}
+fieldset:first-child {
+ column-width: 0;
+ filter: invert(3);
+}
+</style>
+<script>
+function go() {
+ a.multiple = true
+ document.documentElement.classList.remove("reftest-wait");
+}
+</script>
+<body onload=go()>
+<fieldset style="scale: 1 9 0.3472">
+<select id="a">
+</html>
diff --git a/gfx/tests/crashtests/1535657.html b/gfx/tests/crashtests/1535657.html
new file mode 100644
index 0000000000..b35072c3d3
--- /dev/null
+++ b/gfx/tests/crashtests/1535657.html
@@ -0,0 +1,14 @@
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+ <style class="">
+ * {
+ transform: matrix(5062, 162, 20, 51, 144, 177) scale(45079, -40) scaleZ(19756) scaleX(120) matrix(117, 63, 50, 247, 8, 31);
+ min-height: 199rem ! important;
+ }
+ </style>
+</head><body>
+<ul></ul>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1541113.html b/gfx/tests/crashtests/1541113.html
new file mode 100644
index 0000000000..90e5ad9f31
--- /dev/null
+++ b/gfx/tests/crashtests/1541113.html
@@ -0,0 +1,7 @@
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252"></head><body><svg>
+<filter id="a">
+<feTile></feTile>
+</filter>
+<polyline filter="url(#a)" points="2,0 4,2 1,32767"></polyline>
+</svg></body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1547169.html b/gfx/tests/crashtests/1547169.html
new file mode 100644
index 0000000000..5fa6e7a00b
--- /dev/null
+++ b/gfx/tests/crashtests/1547169.html
@@ -0,0 +1,11 @@
+<style>
+.cl {
+ overflow-x: scroll;
+ contain: paint;
+ position: absolute;
+}
+</style>
+<q style="visibility: collapse">
+<table style="transform-style: preserve-3d">
+<tbody class="cl">
+<th style="rotate: -1deg 48 0 0">a</th>
diff --git a/gfx/tests/crashtests/1566206.html b/gfx/tests/crashtests/1566206.html
new file mode 100644
index 0000000000..e130072ab5
--- /dev/null
+++ b/gfx/tests/crashtests/1566206.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<head>
+ <style>
+ #init-rose {
+ animation: 20s infinite spin;
+ }
+
+ @keyframes spin {
+ 0% {transform: rotate(0deg);}
+ 100% {transform: rotate(359deg);}
+ }
+ </style>
+</head>
+<body>
+ <svg id="map" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%">
+ <defs>
+ <g id="rose">
+ <g id="sL" stroke="#3f3f3f">
+ <line x1="0" y1="-10000000" x2="0" y2="10000000"/>
+ <line x1="-10000000" y1="0" x2="10000000" y2="0"/>
+ </g>
+ </g>
+ </defs>
+ <g id="initial" opacity=1>
+ <use xlink:href="#rose" id="init-rose" x="50%" y="50%"></use>
+ </g>
+ </svg>
+</body>
diff --git a/gfx/tests/crashtests/156882-1.html b/gfx/tests/crashtests/156882-1.html
new file mode 100644
index 0000000000..c861e0a839
--- /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 0000000000..77119b6aa1
--- /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/1615091.html b/gfx/tests/crashtests/1615091.html
new file mode 100644
index 0000000000..9d92521546
--- /dev/null
+++ b/gfx/tests/crashtests/1615091.html
@@ -0,0 +1,11 @@
+<style>
+:not(track) {
+ transform-style: preserve-3d;
+ rotate: 43deg 0 52 1;
+ border-bottom: -moz-mac-menuselect solid;
+}
+:root { -webkit-perspective: 1px }
+</style>
+<textarea>aaaaaa</textarea>
+<summary style="rotate: 32deg -1 1 -1">aa</summary>
+
diff --git a/gfx/tests/crashtests/1615141.html b/gfx/tests/crashtests/1615141.html
new file mode 100644
index 0000000000..3613ef207c
--- /dev/null
+++ b/gfx/tests/crashtests/1615141.html
@@ -0,0 +1,13 @@
+<style>
+#a {
+ outline: solid;
+ mix-blend-mode: difference;
+}
+:not(animateTransform),
+feDiffuseLighting:nth-last-of-type(2) {
+ -webkit-transform-style: preserve-3d;
+ transform: translate3d(7px, 6px, 6px);
+ -webkit-perspective: 1px;
+</style>
+<ol id="a">
+
diff --git a/gfx/tests/crashtests/1620125.html b/gfx/tests/crashtests/1620125.html
new file mode 100644
index 0000000000..b1557bca36
--- /dev/null
+++ b/gfx/tests/crashtests/1620125.html
@@ -0,0 +1,12 @@
+<style>
+:root {
+ writing-mode: sideways-lr;
+ padding-right: -1;
+}
+.a {
+ font-style: oblique;
+ list-style-type: simp-chinese-formal;
+}
+<style>X</style>
+<ol class="a">
+<li>
diff --git a/gfx/tests/crashtests/1640401-1.html b/gfx/tests/crashtests/1640401-1.html
new file mode 100644
index 0000000000..3bf9c6efab
--- /dev/null
+++ b/gfx/tests/crashtests/1640401-1.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<!-- Test that SimSun, a default TTC font on Win10, is correctly handled by WR.
+ It may fail to generate a font descriptor and transmit as raw font data.
+ In some cases, WR did not properly expect to deal with said TTC font and
+ crashed as a result.
+-->
+<html><head>
+<style>
+@font-face {
+ font-family: "CrashMe";
+ src: local("SimSun");
+}
+
+body {
+ font-family: 'CrashMe';
+}
+
+h1 {
+ font-weight: 500;
+}
+
+input {
+ font-family: 'CrashMe';
+}
+
+</style>
+</head>
+<body>
+<h1>1</h1>
+<input placeholder="2">
+</body></html>
diff --git a/gfx/tests/crashtests/1647862.html b/gfx/tests/crashtests/1647862.html
new file mode 100644
index 0000000000..605827016b
--- /dev/null
+++ b/gfx/tests/crashtests/1647862.html
@@ -0,0 +1,14 @@
+<style>
+* {
+ scale: 70;
+}
+:not(colgroup) {
+ contain: content;
+ -webkit-perspective: 53px;
+ -webkit-border-radius: 2px 1px;
+}
+</style>
+<ul>
+<li>
+<textarea>
+
diff --git a/gfx/tests/crashtests/1647940.html b/gfx/tests/crashtests/1647940.html
new file mode 100644
index 0000000000..30d1a0d741
--- /dev/null
+++ b/gfx/tests/crashtests/1647940.html
@@ -0,0 +1,7 @@
+<script>
+window.onload = () => {
+ a.src = "data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4ECQoWBAhhTgGcBAAAAAAAB6BFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsggHL7AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU3LjI5LjEwMVdBjUxhdmY1Ny4yOS4xMDFzpJBAb17Yv2oNAF1ZEESuco33RImIQFCAAAAAAAAWVK5rAQAAAAAAADyuAQAAAAAAADPXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDmDgQEj44OEAfygVeABAAAAAAAAB7CCAUC6gfAfQ7Z1AQAAAAAAAEfngQCjqYEAAICCSYNCABPwDvYAOCQcGFQAAFBh9jAAABML7AAATEnjdRwIJ+gAo5eBACEAhgBAkpwATEAABCasAABekcXgABxTu2sBAAAAAAAAEbuPs4EAt4r3gQHxggF48IED"
+}
+</script>
+<marquee style="column-count:3" width="1">
+<video id="a">
diff --git a/gfx/tests/crashtests/1650989-very-large-mask.html b/gfx/tests/crashtests/1650989-very-large-mask.html
new file mode 100644
index 0000000000..6673ce52f6
--- /dev/null
+++ b/gfx/tests/crashtests/1650989-very-large-mask.html
@@ -0,0 +1,10 @@
+<style>
+:root {
+ clip-path: url(#a);
+ transform: scale(65);
+ -webkit-box-shadow: -moz-activehyperlinktext 0px 0px 36px;
+ -webkit-mask-image: url()
+}
+</style>
+<svg>
+<clipPath id="a" transform="" />
diff --git a/gfx/tests/crashtests/1650990.html b/gfx/tests/crashtests/1650990.html
new file mode 100644
index 0000000000..c3ec3bdef1
--- /dev/null
+++ b/gfx/tests/crashtests/1650990.html
@@ -0,0 +1,18 @@
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252"><style>
+#a {
+ -webkit-mask: url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);
+ clip: rect(8px, 68px, 1px, 1px);
+}
+* {
+ position: fixed;
+}
+</style>
+<script>
+window.onload = () => {
+ a.show()
+}
+</script>
+</head><body><dialog id="a" open="">
+<font>x</font>
+</dialog></body></html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1651882.html b/gfx/tests/crashtests/1651882.html
new file mode 100644
index 0000000000..ccf432f7e5
--- /dev/null
+++ b/gfx/tests/crashtests/1651882.html
@@ -0,0 +1,24 @@
+<html class="reftest-wait">
+<style>
+:not(th) {
+ -webkit-perspective: 5px;
+ -webkit-box-shadow: -moz-default-color 1px 0px;
+ -webkit-transform: translate(0px, 84px) scale(48);
+ mix-blend-mode: lighten;
+}
+</style>
+<script>
+window.onload = () => {
+ a.show()
+}
+setTimeout('document.documentElement.className = ""', 300);
+</script>
+<dialog id="a" style="border-left-style: hidden">
+<button>
+<dir>a</label>
+<details open>
+</details>
+</dir>
+</button>
+</dialog>
+</html>
diff --git a/gfx/tests/crashtests/1652750-deep-scene-stack.html b/gfx/tests/crashtests/1652750-deep-scene-stack.html
new file mode 100644
index 0000000000..11dd03f704
--- /dev/null
+++ b/gfx/tests/crashtests/1652750-deep-scene-stack.html
@@ -0,0 +1,24 @@
+<style>
+body {
+ transform-style: preserve-3d;
+}
+
+div {
+ height: 100px;
+ background-color: rgba(0, 255, 0, 0.1);;
+ transform: translateX(1px);
+}
+</style>
+<body>
+<script>
+ var div = document.createElement('div');
+ div.style.width = "1px";
+ for (var i = 2; i < 1000; i++) {
+ var container = document.createElement('div');
+ container.style.width = i + "px";
+ container.appendChild(div);
+ div = container;
+ }
+ document.body.appendChild(div);
+</script>
+</body>
diff --git a/gfx/tests/crashtests/1678938-1.html b/gfx/tests/crashtests/1678938-1.html
new file mode 100644
index 0000000000..c2d535c6dc
--- /dev/null
+++ b/gfx/tests/crashtests/1678938-1.html
@@ -0,0 +1,9 @@
+<style>
+:first-of-type {
+ filter: saturate(70%);
+ transform: skew(-224.96198773774648grad) matrix3d(79.00629819492802, -0.0, 43.223526565331326, -294.8479790240964, 269.7, 243.87676190037186, 238.83225166324632, 42.507227157006135, 634943.1, 208.66200905121616, 46.19831959954935, -285.43139932334543, -229.39776691490985, -126.46021751791264, 116.46, 137.77);
+ border-block-end-style: double;
+</style>
+<dl>
+<header>
+</html>
diff --git a/gfx/tests/crashtests/1679477-1.html b/gfx/tests/crashtests/1679477-1.html
new file mode 100644
index 0000000000..0d1a563b60
--- /dev/null
+++ b/gfx/tests/crashtests/1679477-1.html
@@ -0,0 +1,8 @@
+<style>
+* {
+ opacity: 0.4756117524753537;
+ -webkit-perspective: 2px;
+ rotate: 5deg 52 6 4;
+</style>
+<li>
+<iframe>
diff --git a/gfx/tests/crashtests/1681955.html b/gfx/tests/crashtests/1681955.html
new file mode 100644
index 0000000000..071c42452d
--- /dev/null
+++ b/gfx/tests/crashtests/1681955.html
@@ -0,0 +1,17 @@
+<html style="overflow-inline: scroll;">
+<head>
+ <script>
+ document.addEventListener('DOMContentLoaded', async () => {
+ const link = document.createElement('link')
+ const slot = document.createElement('slot')
+ document.documentElement.appendChild(link)
+ const blob = new Blob()
+ const range = new Range()
+ await blob.arrayBuffer()
+ range.selectNode(document.documentElement)
+ range.surroundContents(slot)
+ setTimeout('location.reload()', 200)
+ })
+ </script>
+</head>
+</html>
diff --git a/gfx/tests/crashtests/1685009-1.html b/gfx/tests/crashtests/1685009-1.html
new file mode 100644
index 0000000000..be00110767
--- /dev/null
+++ b/gfx/tests/crashtests/1685009-1.html
@@ -0,0 +1,12 @@
+<script>
+window.requestIdleCallback(() => {
+ window.close();
+})
+window.onload = () => {
+ a.value = "J."
+ b.submit()
+ window.requestAnimationFrame(() => { a.setRangeText("foo") })
+}
+</script>
+<textarea id="a" style="max-width: 0"></textarea>
+<form id="b" target="a">
diff --git a/gfx/tests/crashtests/1690374.html b/gfx/tests/crashtests/1690374.html
new file mode 100644
index 0000000000..3710c14f0a
--- /dev/null
+++ b/gfx/tests/crashtests/1690374.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+ <style>
+ * {
+ background-blend-mode: multiply;
+ background: url(1690374.jpg) center local transparent repeat-x;
+ clip-path: fill-box ellipse();
+ min-width: 9659vh;
+ height: 22%;
+ -webkit-background-clip: text !important;
+ }
+ </style>
+</head>
+</html>
diff --git a/gfx/tests/crashtests/1690374.jpg b/gfx/tests/crashtests/1690374.jpg
new file mode 100644
index 0000000000..411678d847
--- /dev/null
+++ b/gfx/tests/crashtests/1690374.jpg
Binary files differ
diff --git a/gfx/tests/crashtests/1694783-1.html b/gfx/tests/crashtests/1694783-1.html
new file mode 100644
index 0000000000..e2d2d4d73f
--- /dev/null
+++ b/gfx/tests/crashtests/1694783-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script>
+ window.addEventListener('load', () => {
+ const canvas = document.createElement('canvas')
+ canvas.getContext('2d', {})
+
+ const stream = canvas.captureStream(5.908449372916826)
+ const track = stream.getTracks()[0]
+ const video = document.createElement('video')
+ document.documentElement.appendChild(video)
+ video.srcObject = stream
+ track.enabled = false
+ })
+ </script>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1695782-1.html b/gfx/tests/crashtests/1695782-1.html
new file mode 100644
index 0000000000..f24dfe4bef
--- /dev/null
+++ b/gfx/tests/crashtests/1695782-1.html
@@ -0,0 +1,11 @@
+<style>
+.a {
+ -webkit-transform: translate(7px, 96px) scale(68);
+ margin-left: 42vw;
+}
+:root {
+ -webkit-transform: scale(45, 1);
+ scale: 80 1 0.42;
+}
+</style>
+<iframe class="a" src="data:video/mp4;base64,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">Z</iframe>
diff --git a/gfx/tests/crashtests/1699013.html b/gfx/tests/crashtests/1699013.html
new file mode 100644
index 0000000000..70d39f44fe
--- /dev/null
+++ b/gfx/tests/crashtests/1699013.html
@@ -0,0 +1,23 @@
+<!--
+ This test case was generated by a fuzzer. It gets webrender in a code path that tries to handle a zero-sized repeated primitive.
+-->
+<html>
+<style>
+html {
+ scale: 0.4 1 1;
+}
+#a {
+ clip-path: polygon(0px 1px, 0px 10px, 1px 96px);
+ backdrop-filter: grayscale(84%);
+ scale: 0.5 -1 1;
+ -webkit-transition: all 1s linear;
+}
+</style>
+<script>
+window.onload = () => {
+ b.appendChild(document.createTextNode("#a { cy: 0px; offset: path('M 0 10 h 78 v 0') 45% 64rad; }"))
+}
+</script>
+<pre id="a">
+<style id="b"></style>
+<input>
diff --git a/gfx/tests/crashtests/1700232.html b/gfx/tests/crashtests/1700232.html
new file mode 100644
index 0000000000..cece0f29e9
--- /dev/null
+++ b/gfx/tests/crashtests/1700232.html
@@ -0,0 +1,14 @@
+<!--
+ This test case was found by fuzzing. It creates a radial gradient which ends up empty when its rendered size is rounded to integer values.
+-->
+<script>
+window.onload = () => {
+ document.getElementById('a').style.cssText += "background-size:1%"
+}
+</script>
+<style>
+#a {
+ background-image: radial-gradient(ellipse 10% 4%, transparent 285.23vmin, #cc9, rgba(9, 237, 237, 0.07), white);
+</style>
+<i id='a'>
+&#x08F;&#x29;&#xAE;&#xFF;&#xE9;&#xB43;
diff --git a/gfx/tests/crashtests/1701975-1.html b/gfx/tests/crashtests/1701975-1.html
new file mode 100644
index 0000000000..c7d54ca996
--- /dev/null
+++ b/gfx/tests/crashtests/1701975-1.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #id_0 {
+ font-size: 10000% ! important
+ }
+
+ * {
+ border-top-style: groove;
+ }
+ </style>
+
+</head>
+<math>
+ <semantics style='border-inline: 1000000em outset !important'>
+ <mmultiscripts id='id_0'></mmultiscripts>
+ </semantics>
+</math>
+</html>
diff --git a/gfx/tests/crashtests/1702638.html b/gfx/tests/crashtests/1702638.html
new file mode 100644
index 0000000000..da27edc41c
--- /dev/null
+++ b/gfx/tests/crashtests/1702638.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<style>
+* {
+ background-image: repeating-conic-gradient(from 0.48turn at right, hsl(3.57rad, 15%, 54%, 66%) 26.78deg 5.33rad, 335.48grad, rgba(57413.24, -63.27, -31, 40%) 64%);
+ padding-right: 356550072.76vh;
+</style>
diff --git a/gfx/tests/crashtests/1704321-1.html b/gfx/tests/crashtests/1704321-1.html
new file mode 100644
index 0000000000..4ea099156e
--- /dev/null
+++ b/gfx/tests/crashtests/1704321-1.html
@@ -0,0 +1,13 @@
+<style>
+:root {
+ perspective: 1px;
+}
+#a {
+ -webkit-mask-image: url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);
+}
+:not(defs) {
+ transform: rotatex(1deg);
+}
+</style>
+<a style="-webkit-mask-image: url(#x)">
+<ul id="a">x</ul>
diff --git a/gfx/tests/crashtests/1730695.html b/gfx/tests/crashtests/1730695.html
new file mode 100644
index 0000000000..75b5435edf
--- /dev/null
+++ b/gfx/tests/crashtests/1730695.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+ <script>
+ document.addEventListener("DOMContentLoaded", () => {
+ const canvas = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas")
+ document.documentElement.appendChild(canvas)
+ const context = canvas.getContext("2d")
+ context.arcTo(4.883000064524857e+307, 1.546661088875107e+308, 2.559553941389527e+307, 1.0153516333341025e+308, 9.633835430115978e+307)
+ canvas.animate([{
+ "scale": "1090282421 55%"
+ }], 1000)
+ })
+ setTimeout('document.documentElement.className = ""', 300);
+ </script>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1745775.html b/gfx/tests/crashtests/1745775.html
new file mode 100644
index 0000000000..d21e78e695
--- /dev/null
+++ b/gfx/tests/crashtests/1745775.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+ <style>
+ * {
+ backface-visibility: hidden ! important;
+ filter: blur(63pc) ! important;
+ padding-block-end: 87%;
+ transform: matrix3d(-55, 29, 49313, 4, 80, 16, -127, 112, 8, 45, 127, -27757, 116, 134, 123, 79.00237606484764);
+ scroll-padding-block-end: 22142ch;
+ }
+ </style>
+ <script>
+ window.addEventListener("load", async () => {
+ await new Promise(r => setTimeout(r, 20))
+ const label = document.createElement("label")
+ document.documentElement.appendChild(label)
+ label.scrollIntoView({ "behavior": "smooth", "block": "end", "inline": "end" })
+
+ setTimeout('document.documentElement.className = ""', 300);
+ })
+ </script>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1757002.html b/gfx/tests/crashtests/1757002.html
new file mode 100644
index 0000000000..c1023475da
--- /dev/null
+++ b/gfx/tests/crashtests/1757002.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ * {
+ direction: rtl;
+ writing-mode: vertical-rl;
+ rotate: 225.4833291380626deg 16 -117 119
+ }
+ * {
+ padding-inline: 81%;
+ border: 255pt hsl(0 35% 54% / 1%) solid;
+ min-inline-size: max-content;
+ margin-top: 206vmax ! important;
+ margin-block-start: 94%;
+ opacity: 0.4211200180067617;
+ }
+ </style>
+</head>
+</html>
+
diff --git a/gfx/tests/crashtests/1758127-1.html b/gfx/tests/crashtests/1758127-1.html
new file mode 100644
index 0000000000..fd316e16fe
--- /dev/null
+++ b/gfx/tests/crashtests/1758127-1.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ * {
+ display: table-footer-group;
+ transform: rotateY(18.03772675170004deg);
+ perspective: 116in;
+ letter-spacing: -80ex;
+ }
+ </style>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1762973-1.html b/gfx/tests/crashtests/1762973-1.html
new file mode 100644
index 0000000000..6f8935211d
--- /dev/null
+++ b/gfx/tests/crashtests/1762973-1.html
@@ -0,0 +1,29 @@
+<style>
+* { clip-path: polygon(0px 0px, 1px 61px, 1px 0px); }
+</style>
+<script>
+window.requestIdleCallback(() => {
+ document.documentElement.style.display='none'
+ document.documentElement.getBoundingClientRect()
+ document.documentElement.style.display=''
+ setTimeout(() => { window.location.reload(true) }, 500) // helps reproduction
+})
+function go() {
+ var x = document.defaultView.getSelection()
+ window.stop()
+ x.collapse(d)
+ document.execCommand("removeFormat", false)
+ x.collapse(a)
+}
+function eh() {
+ d.setAttributeNode(document.createAttribute("contenteditable"))
+ c.src = "data:audio/mpeg;base64,/+M4wAAAAAAAAAAAAEluZm8AAAAPAAAAAwAAAbAAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV////////////////////////////////////////////AAAAAExhdmM1Ny4zOAAAAAAAAAAAAAAAACQAAAAAAAAAAAGwU/hwzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAAMkI7huAhMDGQAndv+H5jfIAPmPzGBGeTAZNN7yjsnqd6Fny79M+o4UifnMu/TlDiIP5Q5l9Z/Kdv6VY0gE3JIAAwE/+MYxAgMYJr6WBhGIivjMy/CEK+zM39VVXjMArKgq6DQdrBV0THlqBp0ShrBp8qGsTPw7lXZFVZZY6GytZZYGChgYIGZaiJI/+MYxBEMUJnAABmMYUigMQLIE1yVpphA1UQMRVVVV000iVu000VVVX///6aaVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
+ b.appendChild(a)
+}
+</script>
+<body onload=go()>
+<dialog id="a" open="true"></dialog>
+<details id="b" style="writing-mode: vertical-rl" open="true" ontoggle="eh()">
+<summary style="position: fixed"></summary>
+<embed id="c"></embed>
+<ol id="d"></ol>
diff --git a/gfx/tests/crashtests/1765667.html b/gfx/tests/crashtests/1765667.html
new file mode 100644
index 0000000000..06654644dc
--- /dev/null
+++ b/gfx/tests/crashtests/1765667.html
@@ -0,0 +1,4 @@
+<style>
+* { backdrop-filter: drop-shadow(15em 17454.938982935513ex mediumpurple); }
+</style>
+
diff --git a/gfx/tests/crashtests/1768096-1.html b/gfx/tests/crashtests/1768096-1.html
new file mode 100644
index 0000000000..994bad5a34
--- /dev/null
+++ b/gfx/tests/crashtests/1768096-1.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<style id='a'>
+* {
+ margin: 63% auto;
+ border-start-start-radius: 96% 51%;
+ transition-duration: 3s;
+}
+</style>
+<script>
+window.addEventListener('load', () => {
+ document.documentElement.insertAdjacentHTML(
+ 'afterbegin',
+ '<style>' +
+ 'A { user-select: contain }\n' +
+ '* { ' +
+ 'margin-inline-end: 0.24012348925467253px !important; ' +
+ 'border-radius: 3338200034.36pc 2247759657.74px / 3661748185.77ch 2835570269% 169103236.41vmax; ' +
+ 'font-size: xx-small; ' +
+ '}' +
+ '</style>'
+ );
+ document.documentElement.getClientRects();
+ document.getElementById('a').type = 'video/webm';
+ // Allow time for the transition to run before we end the test.
+ setTimeout("document.documentElement.className = ''", 5000);
+})
+</script>
+<meter lang='ar'>
+<var lang='xyzzy'>
diff --git a/gfx/tests/crashtests/1771293.html b/gfx/tests/crashtests/1771293.html
new file mode 100644
index 0000000000..3abc5f6338
--- /dev/null
+++ b/gfx/tests/crashtests/1771293.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ * {
+ backdrop-filter: opacity(0%) ! important;
+ }
+ </style>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1771294.html b/gfx/tests/crashtests/1771294.html
new file mode 100644
index 0000000000..78ec441bff
--- /dev/null
+++ b/gfx/tests/crashtests/1771294.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ * {
+ backdrop-filter: invert(86%);
+ display: table-cell;
+ zoom: 721146529;
+ padding-top: 7rem;
+ transform: matrix3d(0, 16, 2147483648, -49, -128, 140, 207.9298442167209, 512.763543618518, 172.4361353002723, 179, -81, 58.01970174841815, 1.7384436475415694, 243, 214, 3) ! important;
+ inline-size: 7420vw;
+ margin: 20%;
+ }
+ </style>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1771556.html b/gfx/tests/crashtests/1771556.html
new file mode 100644
index 0000000000..4524938787
--- /dev/null
+++ b/gfx/tests/crashtests/1771556.html
@@ -0,0 +1,14 @@
+<html reftest-zoom="3" class="reftest-wait">
+<head>
+ <style>
+ * {
+ scale: 0.906 52 2;
+ backdrop-filter: hue-rotate(1deg);
+ backface-visibility: hidden;
+ }
+ </style>
+</head>
+<body onload="document.documentElement.classList.remove('reftest-wait')">
+ <table>
+ <th>
+</body>
diff --git a/gfx/tests/crashtests/1771561.html b/gfx/tests/crashtests/1771561.html
new file mode 100644
index 0000000000..126f1ce188
--- /dev/null
+++ b/gfx/tests/crashtests/1771561.html
@@ -0,0 +1,18 @@
+<html reftest-zoom="3" class="reftest-wait">
+<head>
+ <style>
+ #a {
+ scale: 0.785 6 1;
+ clip-path: polygon(0px 0px, 0px 1px, -1px 10px);
+ }
+ #b {
+ text-indent: -1em;
+ backdrop-filter: grayscale(1%);
+ }
+ </style>
+</head>
+<body onload="document.documentElement.classList.remove('reftest-wait')">
+ <table id="a" rules="groups">
+ <th id="b">a</th>
+ <th>1(ewye</th>
+</body>
diff --git a/gfx/tests/crashtests/1780567.html b/gfx/tests/crashtests/1780567.html
new file mode 100644
index 0000000000..8e78ca17d8
--- /dev/null
+++ b/gfx/tests/crashtests/1780567.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ * {
+ overflow-inline: hidden;
+ border-end-end-radius: 14mm ! important;
+ border-left-color: WindowFrame;
+ backdrop-filter: saturate(70%);
+ }
+
+ INPUT {
+ outline: medium invert auto;
+ }
+
+ H2 {
+ padding: 69% !important;
+ }
+ </style>
+</head>
+<body>
+<h2 dir='ltr'><dfn> <i> <input></i> </dfn></h2></body>
+</html>
+
diff --git a/gfx/tests/crashtests/1797099-1.html b/gfx/tests/crashtests/1797099-1.html
new file mode 100644
index 0000000000..5998f9dbfb
--- /dev/null
+++ b/gfx/tests/crashtests/1797099-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script>
+ document.addEventListener('DOMContentLoaded', () => {
+ const canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas')
+ const context = canvas.getContext('2d')
+ const pattern = context.createPattern(canvas, 'no-repeat')
+ context.fillStyle = pattern
+ pattern.setTransform({
+ 'c': 1.510601806598101,
+ 'd': 0,
+ })
+ context.fillRect(1024, 512, 32, 32767)
+ })
+ </script>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1799495-1.html b/gfx/tests/crashtests/1799495-1.html
new file mode 100644
index 0000000000..4087f653d3
--- /dev/null
+++ b/gfx/tests/crashtests/1799495-1.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script>
+ window.addEventListener('load', async () => {
+ const canvas1 = document.createElement('canvas')
+ document.documentElement.appendChild(canvas1)
+ const context1 = canvas1.getContext('2d')
+ context1.globalCompositeOperation = 'destination-atop'
+ const path = new Path2D()
+ context1.fill(path, 'nonzero')
+ const canvas2 = document.createElement('canvas')
+ const context2 = canvas2.getContext('2d', {})
+ await window.createImageBitmap(canvas1, 124, 233, 2147483647, 1, {})
+ context2.filter = 'invert( 90% )'
+ context2.fillRect(-1, -128, 4096, 1024)
+ })
+ </script>
+</head>
+</html> \ No newline at end of file
diff --git a/gfx/tests/crashtests/1802382-1-worker.js b/gfx/tests/crashtests/1802382-1-worker.js
new file mode 100644
index 0000000000..1e8afae2ee
--- /dev/null
+++ b/gfx/tests/crashtests/1802382-1-worker.js
@@ -0,0 +1,6 @@
+self.onmessage = async function(e) {
+ let a = new FontFace('a', 'url(x)')
+ let b = new FontFace('b', 'url(x)')
+ self.fonts.add(a)
+ self.fonts.add(b)
+}
diff --git a/gfx/tests/crashtests/1802382-1.html b/gfx/tests/crashtests/1802382-1.html
new file mode 100644
index 0000000000..e854a891cb
--- /dev/null
+++ b/gfx/tests/crashtests/1802382-1.html
@@ -0,0 +1,7 @@
+<script>
+document.addEventListener('DOMContentLoaded', async () => {
+ let worker = new Worker('1802382-1-worker.js')
+ worker.postMessage([], [])
+ worker.postMessage(undefined)
+})
+</script>
diff --git a/gfx/tests/crashtests/1808830.html b/gfx/tests/crashtests/1808830.html
new file mode 100644
index 0000000000..0bf2fdd0ee
--- /dev/null
+++ b/gfx/tests/crashtests/1808830.html
@@ -0,0 +1,13 @@
+<style>
+* {
+ perspective: 280px;
+ text-decoration: overline line-through dashed;
+ transform: translateY(9em) scaleY(32768);
+}
+</style>
+<script>
+document.addEventListener("DOMContentLoaded", () => {
+ a.insertAdjacentText("afterbegin", "A")
+})
+</script>
+<fieldset id="a">
diff --git a/gfx/tests/crashtests/199379-1.html b/gfx/tests/crashtests/199379-1.html
new file mode 100644
index 0000000000..ba4afe0b5e
--- /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 0000000000..f17cf11219
--- /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 0000000000..b15c78612f
--- /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 0000000000..c9861807c9
--- /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 0000000000..24e8c068a0
--- /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 0000000000..694b06b3be
--- /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 0000000000..f1a2c04a5a
--- /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 0000000000..547d4606cd
--- /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 0000000000..0706b9d0d0
--- /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 0000000000..e49b891587
--- /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 0000000000..5efbaa5b0f
--- /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 0000000000..b8ce73a1f5
--- /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 0000000000..f71c8b091d
--- /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 0000000000..efb0aed9ca
--- /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 0000000000..91b81ac58b
--- /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 srcdoc="<html></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>
diff --git a/gfx/tests/crashtests/376627-1.html b/gfx/tests/crashtests/376627-1.html
new file mode 100644
index 0000000000..44319efedd
--- /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 0000000000..c3e52284c4
--- /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 0000000000..4ab81eca0d
--- /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 0000000000..adeaaaccfc
--- /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 0000000000..12d6d0f5bc
--- /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 0000000000..2d32753f76
--- /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 0000000000..ec448b5b30
--- /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 0000000000..82586fcfaf
--- /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 0000000000..666756c016
--- /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 0000000000..0bf70ec340
--- /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 0000000000..f94f21e691
--- /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 0000000000..748776c309
--- /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 0000000000..7de8bdaaf6
--- /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 0000000000..3081dcc04e
--- /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 0000000000..30236cf8b3
--- /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 0000000000..2d9451596a
--- /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 0000000000..f86635c9cf
--- /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.font = "-14pt sans serif";
+ ctx.mozDrawText('text');
+</script>
+</head>
+<body>
+<canvas id="canvas"></canvas>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/393746-1.xhtml b/gfx/tests/crashtests/393746-1.xhtml
new file mode 100644
index 0000000000..feba6a3c08
--- /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 0000000000..edaba0eb28
--- /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 0000000000..e763632dfb
--- /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 0000000000..e09facb8b2
--- /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 0000000000..e5fe8c1754
--- /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 0000000000..279c473a06
--- /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 0000000000..35a65af09c
--- /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 0000000000..d9b73edc16
--- /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 0000000000..80fc55178b
--- /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 0000000000..6032921346
--- /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 0000000000..33c18a6052
--- /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 0000000000..49b40673a1
--- /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 0000000000..0f9c2941d0
--- /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/403352.html b/gfx/tests/crashtests/403352.html
new file mode 100644
index 0000000000..1425665635
--- /dev/null
+++ b/gfx/tests/crashtests/403352.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<script>
+function bounce()
+{
+ var b = document.body;
+ var de = document.documentElement;
+ de.removeChild(b);
+ de.appendChild(b);
+}
+</script>
+</head>
+<body onload="bounce();" style="font-size: 10000%;">&#8239;&rlm;x&#861;</body>
+</html>
diff --git a/gfx/tests/crashtests/403464-1.html b/gfx/tests/crashtests/403464-1.html
new file mode 100644
index 0000000000..459486539c
--- /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">
+
+uÌ€Ì̂̃̄̅̆̇̈̉̊̋̌ÌÌŽÌÌ̛̖̗̘̙̜̑̒̓̔̕̚Ì̴̵̶̷̸̡̢̧̨̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̽̾̿̀Í͇͈͉͂̓̈́͆͊͋͌ͅÍÍŽÍÍ͓͔͕͖͙͚͑͒͗͛͘͜Íͣ͟͢͞͠͡
+</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 0000000000..aa5d3fea64
--- /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 0000000000..a3cb47fa43
--- /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 0000000000..ecb6ecf218
--- /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 0000000000..96e9597f79
--- /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 0000000000..a90c13b3d5
--- /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 0000000000..4e716d682c
--- /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 0000000000..deaeb8fc55
--- /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 0000000000..48323a7448
--- /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 0000000000..9f47af2626
--- /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 0000000000..acde950dd8
--- /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 0000000000..a6eb2d57c7
--- /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 0000000000..f8cf8b453d
--- /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 0000000000..82b6974675
--- /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 0000000000..885408b1b4
--- /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 0000000000..105638b0e8
--- /dev/null
+++ b/gfx/tests/crashtests/423110-1.xhtml
@@ -0,0 +1 @@
+<html xmlns="http://www.w3.org/1999/xhtml" style="min-width: 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 0000000000..e7c1d606b7
--- /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 0000000000..cbf601a4a9
--- /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 0000000000..11cccd6862
--- /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 0000000000..0f06414e78
--- /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 0000000000..96532dc214
--- /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 0000000000..6ebd37eef2
--- /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 0000000000..2d8eca3173
--- /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 0000000000..e315baa327
--- /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 0000000000..ac4a6cdd09
--- /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 0000000000..7f13b87357
--- /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 0000000000..c7ea8e7b24
--- /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/487549-1.html b/gfx/tests/crashtests/487549-1.html
new file mode 100644
index 0000000000..c20cb483f7
--- /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 0000000000..d8da04a3af
--- /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 0000000000..abc158b43e
--- /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 0000000000..f7e42b54b7
--- /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 0000000000..028e4507a1
--- /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 0000000000..d89a52475e
--- /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 0000000000..ff6669beef
--- /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 0000000000..bc83d90e05
--- /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 0000000000..828939cfd6
--- /dev/null
+++ b/gfx/tests/crashtests/557348-1.html
@@ -0,0 +1 @@
+<html style="background: repeating-radial-gradient(circle closest-side at left center, 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 0000000000..8873cfa3ad
--- /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 0000000000..41e4a474f3
--- /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 0000000000..229767423c
--- /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 0000000000..b5af08ddc4
--- /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 0000000000..ec303a922c
--- /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 0000000000..07d4abdcb2
--- /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 0000000000..c753040ca3
--- /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 0000000000..29fe9f73d3
--- /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 0000000000..9ad4896b02
--- /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 0000000000..f0de065dcc
--- /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.xhtml b/gfx/tests/crashtests/593526.xhtml
new file mode 100644
index 0000000000..d1da4c3d81
--- /dev/null
+++ b/gfx/tests/crashtests/593526.xhtml
@@ -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 0000000000..4ab2ce6e7d
--- /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 0000000000..0cc2b22477
--- /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 0000000000..d2012c7153
--- /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.firstChild.remove(); }
+ 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);
+</script>
+</head>
+
+<body></body>
+</html>
diff --git a/gfx/tests/crashtests/624198.xhtml b/gfx/tests/crashtests/624198.xhtml
new file mode 100644
index 0000000000..67d207b7a1
--- /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 0000000000..89b0aaa612
--- /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 0000000000..2b08776c09
--- /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 0000000000..ccf3c7d8ec
--- /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 0000000000..909ca941df
--- /dev/null
+++ b/gfx/tests/crashtests/665218.html
@@ -0,0 +1,8 @@
+<html class="reftest-paged"><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 0000000000..d6c25b59e0
--- /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 0000000000..26cda094fa
--- /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/691330.svg b/gfx/tests/crashtests/691330.svg
new file mode 100644
index 0000000000..121fe22702
--- /dev/null
+++ b/gfx/tests/crashtests/691330.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"><text rotate="0" stroke="black">a&#x00AD;</text></svg>
diff --git a/gfx/tests/crashtests/691581-1.html b/gfx/tests/crashtests/691581-1.html
new file mode 100644
index 0000000000..ce2f35eaf7
--- /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 0000000000..80b1e891ac
--- /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 0000000000..0ce95ddd6f
--- /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 0000000000..e73968d714
--- /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 0000000000..930ef95512
--- /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/746491.html b/gfx/tests/crashtests/746491.html
new file mode 100644
index 0000000000..6605fbd1ed
--- /dev/null
+++ b/gfx/tests/crashtests/746491.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.lineTo(0, 3);
+ ctx.moveTo(0, 1);
+ ctx.isPointInPath(0, 2);
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/746495.html b/gfx/tests/crashtests/746495.html
new file mode 100644
index 0000000000..d3a6f943b2
--- /dev/null
+++ b/gfx/tests/crashtests/746495.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.scale(69.25, 61);
+ ctx.transform(87.875, 89.5, 317.6666666666667, 86.5, 93, 196);
+ ctx.bezierCurveTo(30.142857142857142, 13926147670, 66.66666666666667, 243.66666666666666, 42.6, 85.5);
+ ctx.arc(1.6, 364955956612165500, 110.375, 15.1, 80.55555555555556, 0);
+ ctx.shadowColor = "green";
+ ctx.shadowOffsetY = 754;
+ ctx.lineJoin = 'round';
+ ctx.setTransform(95.125, 11, 834, 34.5, 265.3333333333333, 26.4);
+ ctx.stroke();
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/746497.html b/gfx/tests/crashtests/746497.html
new file mode 100644
index 0000000000..5e84445b4a
--- /dev/null
+++ b/gfx/tests/crashtests/746497.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.arc(112.75, 22.8, 10.142857142857142, 20.5, 196, 1);
+ ctx.translate(48.22222222222222, 18.25);
+ ctx.lineTo(7, 50);
+ ctx.scale(445, 24.22222222222222);
+ ctx.stroke();
+ ctx.stroke();
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/746844.html b/gfx/tests/crashtests/746844.html
new file mode 100644
index 0000000000..24e7b59acb
--- /dev/null
+++ b/gfx/tests/crashtests/746844.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.rotate(108);
+ ctx.shadowBlur = 220.75;
+ ctx.shadowColor = "#777777";
+ ctx.bezierCurveTo(450, 24.857142857142858, 191, 75.71428571428571, -1125899906842623, 0);
+ ctx.transform(843, 152.66666666666666, 42.7, 65.33333333333333, 86.66666666666667, 30.714285714285715);
+ ctx.transform(204, 112.5, 159, 96.75, 239.33333333333334, 0);
+ ctx.bezierCurveTo(42.4, 96.44444444444444, 480.5, 185.5, 44.666666666666664, 90.14285714285714);
+ ctx.isPointInPath(71.5, 81);
+ ctx.fill();
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/746847.html b/gfx/tests/crashtests/746847.html
new file mode 100644
index 0000000000..01853a4030
--- /dev/null
+++ b/gfx/tests/crashtests/746847.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.setTransform(75.875, 113.8, 144, 55, 185.4, 310);
+ ctx.translate(26.5, 72.6);
+ ctx.arcTo(183.6, 29.6, 94.33333333333333, 1, 72057594037927940);
+ ctx.arcTo(75.83333333333333, 73.71428571428571, 40.4, 88.8, 23.285714285714285);
+ ctx.fill();
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/746849.html b/gfx/tests/crashtests/746849.html
new file mode 100644
index 0000000000..0544564706
--- /dev/null
+++ b/gfx/tests/crashtests/746849.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.rect(1, 2, 3, 4);
+ ctx.fill();
+ for (var i = 0; i < 48; ++i) {
+ ctx.scale(100, 100);
+ }
+ ctx.isPointInPath(5, 6);
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/746866.html b/gfx/tests/crashtests/746866.html
new file mode 100644
index 0000000000..c61d21b174
--- /dev/null
+++ b/gfx/tests/crashtests/746866.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.rotate(17);
+ ctx.closePath();
+ ctx.setTransform(107, 16, 113, 76, 0, 165);
+ ctx.lineTo(4, 0);
+ ctx.arc(104, -8191, 35, 50, 359, 0);
+ ctx.scale(74.75, 729);
+ ctx.stroke();
+ ctx.stroke();
+ ctx.lineTo(-1, 40);
+ ctx.isPointInPath(92, 463);
+ ctx.clip();
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/747132.html b/gfx/tests/crashtests/747132.html
new file mode 100644
index 0000000000..e4405ada07
--- /dev/null
+++ b/gfx/tests/crashtests/747132.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.strokeRect(0.5, 1, 2, 3);
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="100" height="100"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/747302.html b/gfx/tests/crashtests/747302.html
new file mode 100644
index 0000000000..7b202a7d5b
--- /dev/null
+++ b/gfx/tests/crashtests/747302.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.querySelector("canvas").getContext('2d');
+ ctx.rotate(470);
+ ctx.clearRect(71.5, -0.5, 666, 380);
+}
+
+</script>
+</head>
+<body onload="boom();"><canvas width="41700" height="500"></canvas></body>
+</html>
diff --git a/gfx/tests/crashtests/766422-1.html b/gfx/tests/crashtests/766422-1.html
new file mode 100644
index 0000000000..887df3b1d8
--- /dev/null
+++ b/gfx/tests/crashtests/766422-1.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html style="-moz-perspective: 1000px; -moz-transform: skewY(277deg); overflow: clip;">
+ <body style="-moz-transform: skewY(127deg);">
+ <div style="height: 20px; background: lightgreen;"></div>
+ </body>
+</html>
diff --git a/gfx/tests/crashtests/766422-2.html b/gfx/tests/crashtests/766422-2.html
new file mode 100644
index 0000000000..fe4819354a
--- /dev/null
+++ b/gfx/tests/crashtests/766422-2.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+
+function boom()
+{
+ var ctx = document.getElementById("c").getContext('2d');
+ ctx.stroke();
+}
+
+</script>
+</head>
+<body onload="boom();">
+<canvas id="c" width="800" style="overflow: clip; transform: skewY(30rad);"></canvas>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/766452-1.html b/gfx/tests/crashtests/766452-1.html
new file mode 100644
index 0000000000..abb6969796
--- /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 0000000000..b70d6f8137
--- /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 0000000000..8a89d1ed13
--- /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; 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 0000000000..0e57a73156
--- /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 0000000000..8753bd9724
--- /dev/null
+++ b/gfx/tests/crashtests/783041-2.html
@@ -0,0 +1,73 @@
+<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-box;
+ 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>
+ function MaybeReload() {
+ var countdown = 10;
+ if (location.search) {
+ countdown = parseInt(location.search.slice(1)) - 1;
+ }
+ if (countdown > 0) {
+ location.search = countdown;
+ }
+ }
+
+ 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("MaybeReload()", 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 0000000000..efdbced5ec
--- /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 0000000000..1538bfdf08
--- /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 0000000000..a0b16f77cd
--- /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 0000000000..9f89d96e73
--- /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 0000000000..e02a769559
--- /dev/null
+++ b/gfx/tests/crashtests/805760.ttf
Binary files differ
diff --git a/gfx/tests/crashtests/812826.html b/gfx/tests/crashtests/812826.html
new file mode 100644
index 0000000000..432536a4f3
--- /dev/null
+++ b/gfx/tests/crashtests/812826.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<body>
+<input value="&#x202E;Z&#x0301;&#x0301;">
+</body>
diff --git a/gfx/tests/crashtests/815489.html b/gfx/tests/crashtests/815489.html
new file mode 100644
index 0000000000..55053959aa
--- /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);
+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 0000000000..18f023f7c8
--- /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 0000000000..f45b2f41d1
--- /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 0000000000..b048f8d0e9
--- /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 0000000000..58807459ef
--- /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 0000000000..354c15613c
--- /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 0000000000..d40f3c997a
--- /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 0000000000..b6d8212e7a
--- /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/895233.html b/gfx/tests/crashtests/895233.html
new file mode 100644
index 0000000000..806a933256
--- /dev/null
+++ b/gfx/tests/crashtests/895233.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script>
+
+function boom()
+{
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.isPointInPath(7.5, 900);
+ ctx.setTransform(44.333333333333336, 61, 256.3333333333333, 135.8, 810, 200);
+ ctx.save();
+ ctx.bezierCurveTo(63, 91, 520, 83, 213.66666666666666, 384);
+ ctx.closePath();
+ ctx.bezierCurveTo(0.5, 83.16666666666667, 209, 276, 3.6, 453.5);
+ ctx.stroke();
+ ctx.restore();
+ ctx.isPointInStroke(0, 0);
+ ctx.setTransform(445, 33, 0, 403.5, 175.2, 49.4);
+ ctx.rotate(83.125);
+ ctx.transform(2097153, 477.5, 34.888888888888886, 63, 9.5, 914);
+ ctx.isPointInStroke(0, 0);
+}
+
+</script>
+</head>
+<body onload="boom();"></body>
+</html>
diff --git a/gfx/tests/crashtests/914457-1.html b/gfx/tests/crashtests/914457-1.html
new file mode 100644
index 0000000000..b74d4831bc
--- /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: clip; 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/934729.html b/gfx/tests/crashtests/934729.html
new file mode 100644
index 0000000000..a9e39affe0
--- /dev/null
+++ b/gfx/tests/crashtests/934729.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<meta charset="UTF-8">
+<body>
+<span style="position: sticky; display: -moz-inline-box; transform-style: preserve-3d;">A</span>
+</body>
+</html>
diff --git a/gfx/tests/crashtests/944579.html b/gfx/tests/crashtests/944579.html
new file mode 100644
index 0000000000..3667f6024e
--- /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 0000000000..68641b7677
--- /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 0000000000..cefe73c9fe
--- /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 0000000000..f2c35f43ff
--- /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)
+
+</script>
+</head>
+
+<body><div style="font-family: y;">y</div></body>
+</html>
diff --git a/gfx/tests/crashtests/951893.xhtml b/gfx/tests/crashtests/951893.xhtml
new file mode 100644
index 0000000000..961917c39d
--- /dev/null
+++ b/gfx/tests/crashtests/951893.xhtml
@@ -0,0 +1,7 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body style="display: flex; position: absolute; transform: matrix3d(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); overflow-y: hidden;">
+
+<video></video><video></video><video></video><track style="transform: rotate(45deg) scale(2, 1); position: absolute;"><video></video></track>
+
+</body>
+</html>
diff --git a/gfx/tests/crashtests/987013.html b/gfx/tests/crashtests/987013.html
new file mode 100644
index 0000000000..b99a7a1dc1
--- /dev/null
+++ b/gfx/tests/crashtests/987013.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html style="transform: scale3d(4, 2454, 4);"><body style="display: inline; outline: 722429773px dashed green;"></body></html>
diff --git a/gfx/tests/crashtests/PigLatin_Plane15.ttf b/gfx/tests/crashtests/PigLatin_Plane15.ttf
new file mode 100644
index 0000000000..ab83296031
--- /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 0000000000..c70bf00f47
--- /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 0000000000..90a2c06a02
--- /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 0000000000..b47dfb4667
--- /dev/null
+++ b/gfx/tests/crashtests/crashtests.list
@@ -0,0 +1,228 @@
+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
+skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) 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(/^Windows\x20NT\x206\.1/.test(http.oscpu)) load 385228-1.svg
+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
+skip-if(xulRuntime.OS=="WINNT"&&!xulRuntime.is64Bit) load 393746-1.xhtml # Bug 1727925
+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 403352.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
+skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) 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 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 chrome://reftest/content/crashtests/gfx/tests/crashtests/593526.xhtml
+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
+skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) load 686190-1.html
+load 691330.svg
+load 691581-1.html
+load 693143-1.html
+load 696936-1.html
+load 699563-1.html
+load 710149-1.html
+load 746491.html
+load 746495.html
+load 746497.html
+load 746844.html
+load 746847.html
+load 746849.html
+load 746866.html
+load 747132.html
+load 747302.html
+load 766422-1.html
+load 766422-2.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(ThreadSanitizer) load 815489.html
+load 812826.html
+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
+load 895233.html
+pref(layers.force-active,true) load 914457-1.html
+load 934729.html
+load 944579.svg
+load 944579.html
+pref(security.fileuri.strict_origin_policy,false) load 950000.html
+load 951893.xhtml
+load 987013.html
+pref(layers.force-active,true) load 1008983.html
+load 1011218.html
+load 1034403-1.html
+load 1056516.html
+load 1205900.html
+load 1134549-1.svg
+load balinese-letter-spacing.html
+load 1216832-1.html
+load 1221304.html
+load 1225125-1.html
+load 1228127.html
+load 1229972.html
+load 1242811.html
+load 1242822.html
+load 1248222.html
+load 1278305.html
+load 1308394.html
+skip-if(geckoview|/^Windows\x20NT\x206\.1/.test(http.oscpu)) load 1317403-1.html # bug 1331533, 1630774
+skip-if(geckoview|/^Windows\x20NT\x206\.1/.test(http.oscpu)) load 1325159-1.html # bug 1630774
+skip-if(geckoview) load 1331683.html # bug 1630774
+skip-if(Android) pref(dom.disable_open_during_load,false) load 1343666.html
+load 1346601-1.html
+skip-if(geckoview) load 1408078-1.html # bug 1630774
+load 1464243.html
+load 1467847-1.html
+load 1468020.html
+load 1470437.html
+load 1470440.html
+pref(widget.windows.window_occlusion_tracking.enabled,false) load 1478035.html # Bug 1819154
+load 1490704-1.html
+load 1501518.html
+load 1503986-1.html
+load 1505426-1.html
+load 1508811.html
+load 1508822.html
+load 1509099.html
+load 1513133.html
+load 1496194.html
+load 1505934-1.html
+load 1509123.html
+pref(widget.windows.window_occlusion_tracking.enabled,false) load 1494062-blob-image-wraplist-clip.html # Bug 1819154
+load texture-allocator-zero-region.html
+load 1524418.html
+pref(layout.css.individual-transform.enabled,true) load 1529149.html
+load 1541113.html
+pref(layout.css.individual-transform.enabled,true) load 1547169.html
+load 1535657.html
+load 1566206.html
+load 1615141.html
+load 1615091.html
+load 1620125.html
+load 1640401-1.html
+load 1647862.html
+load 1647940.html
+load 1650989-very-large-mask.html
+load 1650990.html
+skip-if(AddressSanitizer) load 1652750-deep-scene-stack.html
+load 1651882.html
+skip-if(Android&&swgl) load 1678938-1.html
+load 1679477-1.html
+skip-if(Android|/^Windows\x20NT\x206\.1/.test(http.oscpu)) pref(dom.disable_open_during_load,false) load 1685009-1.html
+load 1694783-1.html
+load 1695782-1.html
+load 1699013.html
+load 1700232.html
+load 1701975-1.html
+load 1704321-1.html
+load 1702638.html
+load 1730695.html
+load 1745775.html
+load 1757002.html
+load 1758127-1.html
+load 1762973-1.html
+pref(layout.css.backdrop-filter.enabled,true) load 1765667.html
+load 1768096-1.html
+pref(layout.css.backdrop-filter.enabled,true) load 1771294.html
+pref(layout.css.backdrop-filter.enabled,true) load 1771293.html
+pref(layout.css.backdrop-filter.enabled,true) load 1771556.html
+pref(layout.css.backdrop-filter.enabled,true) load 1771561.html
+load 1780567.html
+load 1681955.html
+load 1797099-1.html
+load 1799495-1.html
+load 1802382-1.html
+load 1808830.html
+
diff --git a/gfx/tests/crashtests/empty.html b/gfx/tests/crashtests/empty.html
new file mode 100644
index 0000000000..9daeafb986
--- /dev/null
+++ b/gfx/tests/crashtests/empty.html
@@ -0,0 +1 @@
+test
diff --git a/gfx/tests/crashtests/large-scaled-mask.html b/gfx/tests/crashtests/large-scaled-mask.html
new file mode 100644
index 0000000000..d86ee1f649
--- /dev/null
+++ b/gfx/tests/crashtests/large-scaled-mask.html
@@ -0,0 +1,8 @@
+<style>
+* {
+ scale: 48% 41467;
+ border: solid !important;
+ filter: url(#x);
+ -webkit-mask-image: url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)
+}
+</style>
diff --git a/gfx/tests/crashtests/texture-allocator-zero-region.html b/gfx/tests/crashtests/texture-allocator-zero-region.html
new file mode 100644
index 0000000000..1671053a4b
--- /dev/null
+++ b/gfx/tests/crashtests/texture-allocator-zero-region.html
@@ -0,0 +1,9 @@
+<style>
+* {
+ column-width: 1px;
+ -webkit-filter: hue-rotate(1deg);
+ outline: 3px solid;
+}
+</style>
+<form style="overflow:hidden">
+<h3>