<html>
<p style='white: fuchsia; padding: 198px 108 2147483647px; '></p>
<myelement>
<body>
    <sup style="kerning: 7; display: table-row; "></sup>
    <iframe align=right style="font-variant: small-caps;> mask: url(#tCF84); border-right-width: 20543.4114163cm; "></iframe>
    <p id=tCF100></p>
    <span id=tCF104>
</body>
<script>
window.onload = function() {
    keygenElem = document.createElementNS("http://www.w3.org/1999/xhtml", "keygen");
    keygenElem.setAttribute("autofocus", "Tm");
    document.body.appendChild(keygenElem);
    document.body.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "td"));
    document.body.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "video"));
    setTimeout("CFcrash()", 1);

    if (window.testRunner)
        testRunner.waitUntilDone();
}
function CFcrash() {
    tCF104.appendChild(tCF100);
    document.body.innerHTML = "PASS if no crash or assert under ASAN";

    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.notifyDone();
    }
}
</script>
</html>
