{
    "tests": [
        {
            "fragmentContext": null,
            "description": "<foo bar=qux/>",
            "input": "<foo bar=qux/>",
            "output": [
                [
                    "StartTag",
                    "foo",
                    {
                        "bar": "qux/"
                    }
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
            "input": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
            "output": [
                [
                    "StartTag",
                    "p",
                    {
                        "id": "status"
                    }
                ],
                [
                    "StartTag",
                    "noscript",
                    {}
                ],
                [
                    "Character",
                    "<strong>A</strong>"
                ],
                [
                    "EndTag",
                    "noscript"
                ],
                [
                    "StartTag",
                    "span",
                    {}
                ],
                [
                    "Character",
                    "B"
                ],
                [
                    "EndTag",
                    "span"
                ],
                [
                    "EndTag",
                    "p"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
            "input": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
            "output": [
                [
                    "StartTag",
                    "p",
                    {
                        "id": "status"
                    }
                ],
                [
                    "StartTag",
                    "noscript",
                    {}
                ],
                [
                    "Character",
                    "<strong>A</strong>"
                ],
                [
                    "EndTag",
                    "noscript"
                ],
                [
                    "StartTag",
                    "span",
                    {}
                ],
                [
                    "Character",
                    "B"
                ],
                [
                    "EndTag",
                    "span"
                ],
                [
                    "EndTag",
                    "p"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<div><sarcasm><div></div></sarcasm></div>",
            "input": "<div><sarcasm><div></div></sarcasm></div>",
            "output": [
                [
                    "StartTag",
                    "div",
                    {}
                ],
                [
                    "StartTag",
                    "sarcasm",
                    {}
                ],
                [
                    "StartTag",
                    "div",
                    {}
                ],
                [
                    "EndTag",
                    "div"
                ],
                [
                    "EndTag",
                    "sarcasm"
                ],
                [
                    "EndTag",
                    "div"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>",
            "input": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>",
            "output": [
                [
                    "StartTag",
                    "html",
                    {}
                ],
                [
                    "StartTag",
                    "body",
                    {}
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<table><td></tbody>A",
            "input": "<table><td></tbody>A",
            "output": [
                [
                    "StartTag",
                    "table",
                    {}
                ],
                [
                    "StartTag",
                    "td",
                    {}
                ],
                [
                    "EndTag",
                    "tbody"
                ],
                [
                    "Character",
                    "A"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<table><td></thead>A",
            "input": "<table><td></thead>A",
            "output": [
                [
                    "StartTag",
                    "table",
                    {}
                ],
                [
                    "StartTag",
                    "td",
                    {}
                ],
                [
                    "EndTag",
                    "thead"
                ],
                [
                    "Character",
                    "A"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<table><td></tfoot>A",
            "input": "<table><td></tfoot>A",
            "output": [
                [
                    "StartTag",
                    "table",
                    {}
                ],
                [
                    "StartTag",
                    "td",
                    {}
                ],
                [
                    "EndTag",
                    "tfoot"
                ],
                [
                    "Character",
                    "A"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<table><thead><td></tbody>A",
            "input": "<table><thead><td></tbody>A",
            "output": [
                [
                    "StartTag",
                    "table",
                    {}
                ],
                [
                    "StartTag",
                    "thead",
                    {}
                ],
                [
                    "StartTag",
                    "td",
                    {}
                ],
                [
                    "EndTag",
                    "tbody"
                ],
                [
                    "Character",
                    "A"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<legend>test</legend>",
            "input": "<legend>test</legend>",
            "output": [
                [
                    "StartTag",
                    "legend",
                    {}
                ],
                [
                    "Character",
                    "test"
                ],
                [
                    "EndTag",
                    "legend"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<table><input>",
            "input": "<table><input>",
            "output": [
                [
                    "StartTag",
                    "table",
                    {}
                ],
                [
                    "StartTag",
                    "input",
                    {}
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<b><em><foo><foo><aside></b>",
            "input": "<b><em><foo><foo><aside></b>",
            "output": [
                [
                    "StartTag",
                    "b",
                    {}
                ],
                [
                    "StartTag",
                    "em",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "aside",
                    {}
                ],
                [
                    "EndTag",
                    "b"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<b><em><foo><foo><aside></b></em>",
            "input": "<b><em><foo><foo><aside></b></em>",
            "output": [
                [
                    "StartTag",
                    "b",
                    {}
                ],
                [
                    "StartTag",
                    "em",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "aside",
                    {}
                ],
                [
                    "EndTag",
                    "b"
                ],
                [
                    "EndTag",
                    "em"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<b><em><foo><foo><foo><aside></b>",
            "input": "<b><em><foo><foo><foo><aside></b>",
            "output": [
                [
                    "StartTag",
                    "b",
                    {}
                ],
                [
                    "StartTag",
                    "em",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "aside",
                    {}
                ],
                [
                    "EndTag",
                    "b"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<b><em><foo><foo><foo><aside></b></em>",
            "input": "<b><em><foo><foo><foo><aside></b></em>",
            "output": [
                [
                    "StartTag",
                    "b",
                    {}
                ],
                [
                    "StartTag",
                    "em",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "aside",
                    {}
                ],
                [
                    "EndTag",
                    "b"
                ],
                [
                    "EndTag",
                    "em"
                ]
            ]
        },
        {
            "fragmentContext": "div",
            "description": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>",
            "input": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>",
            "output": [
                [
                    "StartTag",
                    "b",
                    {}
                ],
                [
                    "StartTag",
                    "em",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "aside",
                    {}
                ],
                [
                    "EndTag",
                    "b"
                ],
                [
                    "EndTag",
                    "em"
                ]
            ]
        },
        {
            "fragmentContext": "div",
            "description": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>",
            "input": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>",
            "output": [
                [
                    "StartTag",
                    "b",
                    {}
                ],
                [
                    "StartTag",
                    "em",
                    {}
                ],
                [
                    "StartTag",
                    "foo",
                    {}
                ],
                [
                    "StartTag",
                    "foob",
                    {}
                ],
                [
                    "StartTag",
                    "foob",
                    {}
                ],
                [
                    "StartTag",
                    "foob",
                    {}
                ],
                [
                    "StartTag",
                    "foob",
                    {}
                ],
                [
                    "StartTag",
                    "fooc",
                    {}
                ],
                [
                    "StartTag",
                    "fooc",
                    {}
                ],
                [
                    "StartTag",
                    "fooc",
                    {}
                ],
                [
                    "StartTag",
                    "fooc",
                    {}
                ],
                [
                    "StartTag",
                    "food",
                    {}
                ],
                [
                    "StartTag",
                    "aside",
                    {}
                ],
                [
                    "EndTag",
                    "b"
                ],
                [
                    "EndTag",
                    "em"
                ]
            ]
        },
        {
            "fragmentContext": "select",
            "description": "<option><XH<optgroup></optgroup>",
            "input": "<option><XH<optgroup></optgroup>",
            "output": [
                [
                    "StartTag",
                    "option",
                    {}
                ],
                [
                    "StartTag",
                    "xh<optgroup",
                    {}
                ],
                [
                    "EndTag",
                    "optgroup"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>",
            "input": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>",
            "output": [
                [
                    "StartTag",
                    "svg",
                    {}
                ],
                [
                    "StartTag",
                    "foreignObject",
                    {}
                ],
                [
                    "StartTag",
                    "div",
                    {}
                ],
                [
                    "Character",
                    "foo"
                ],
                [
                    "EndTag",
                    "div"
                ],
                [
                    "StartTag",
                    "plaintext",
                    {}
                ],
                [
                    "Character",
                    "</foreignObject></svg><div>bar</div>"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "<svg><foreignObject></foreignObject><title></svg>foo",
            "input": "<svg><foreignObject></foreignObject><title></svg>foo",
            "output": [
                [
                    "StartTag",
                    "svg",
                    {}
                ],
                [
                    "StartTag",
                    "foreignObject",
                    {}
                ],
                [
                    "EndTag",
                    "foreignobject"
                ],
                [
                    "StartTag",
                    "title",
                    {}
                ],
                [
                    "EndTag",
                    "svg"
                ],
                [
                    "Character",
                    "foo"
                ]
            ]
        },
        {
            "fragmentContext": null,
            "description": "</foreignObject><plaintext><div>foo</div>",
            "input": "</foreignObject><plaintext><div>foo</div>",
            "output": [
                [
                    "EndTag",
                    "foreignobject"
                ],
                [
                    "StartTag",
                    "plaintext",
                    {}
                ],
                [
                    "Character",
                    "<div>foo</div>"
                ]
            ]
        }
    ]
}