{"abstract":"A run of two prohibited characters still starts the next line.","category":"Typography line breaking","checks":8,"contract":"Input [text of full-width characters, line length L]. Lines take L characters. If the next character is a hanging comma/period (、。，．) and is not itself followed by a line-start-prohibited character, it hangs on the line (burasage). Otherwise move characters to the next line while the next line would start with a prohibited character (、。，．）」』！？ー and small kana), then while the line would end with an opening bracket; a line keeps at least one character. Return the lines.","evaluation_group":"w2-typography-line-breaking-kinsoku","failed_approach":"Checking the previous character instead of the next one pushes out the wrong run.","family":"w2-typography-line-breaking-kinsoku-push-out-chain","id":"FA-80016","implementations":{"attempt":{"sha256":"310e181a42ed22e686ec71523b6adfccdfd589292d6a7fb75a9aede1b271361c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    text, L = x\n    NO_START = '、。，．）」』！？ーぁぃぅぇぉっゃゅょ'\n    NO_END = '（「『'\n    HANG = '、。，．'\n    lines = []\n    pos = 0\n    n = len(text)\n    while pos < n:\n        end = pos + L\n        if end >= n:\n            lines.append(text[pos:])\n            break\n        if text[end] in HANG and (end + 1 >= n or text[end + 1] not in NO_START):\n            end += 1\n        else:\n            while end > pos + 1 and text[end - 1] in NO_START:\n                end -= 1\n            while end > pos + 1 and text[end - 1] in NO_END:\n                end -= 1\n        lines.append(text[pos:end])\n        pos = end\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: push-out chain', ['、本おう）こきかえ文日おいーゃ。（け', 7], ['、本おう）こき', 'かえ文日お', 'いーゃ。（け']), ('regression: push-out chain', ['文ーう文おっ日いあうあ）いゃ）』日『字', 5], ['文ーう文', 'おっ日いあ', 'うあ）', 'いゃ）』日', '『字']), ('partial-repair probe', ['字う『、え組こ、文、ーえ」、』語う。', 8], ['字う『、え組こ、', '文、ーえ」、』語', 'う。']), ('partial-repair probe', ['本』。。くゃ（か『「', 6], ['本』。。くゃ', '（か『「']), ('closing bracket pushes out', ['日本語文」字組版', 4], ['日本語', '文」字組', '版']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('control layout', ['あっけあ『（き版', 4], ['あっけあ', '『（き版']), ('control layout', ['語あ』文か（おく本」', 6], ['語あ』文か', '（おく本」'])], [('regression: push-out chain', ['ゃ『くかこけう」字（く、っ『語ゃ組', 6], ['ゃ『くかこけ', 'う」字', '（く、っ', '『語ゃ組']), ('regression: push-out chain', ['けけーうけゃ）（っ』』）ゃっ組）お', 4], ['けけーう', 'けゃ）', '（', 'っ', '』', '』）ゃっ', '組）お']), ('partial-repair probe', ['か語組ゃっうこうくきくゃ日', 5], ['か語組ゃっ', 'うこうくき', 'くゃ日']), ('partial-repair probe', ['お。）語うきき文』く「日本本組『ゃ文日', 4], ['お。）語', 'うきき', '文』く', '「日本本', '組『ゃ文', '日']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('period hangs past the measure', ['日本語文。字組版', 4], ['日本語文。', '字組版']), ('control layout', ['文字くい「「いおい字こく字っーー、かお本', 6], ['文字くい', '「「いおい字', 'こく字っーー、', 'かお本']), ('control layout', ['お語）日版』「か文え日日こ（ー（お', 7], ['お語）日版』', '「か文え日日こ', '（ー（お'])], [('regression: push-out chain', ['い。（）。けう組。き文文日文文えっ、』あ』字組本', 6], ['い。（）。け', 'う組。き文文', '日文文', 'えっ、』あ』', '字組本']), ('regression: push-out chain', ['う版あう。、っ』、）「字。あかか、『。いおきゃ', 4], ['う版あ', 'う', '。', '、', 'っ』、）', '「字。あ', 'かか、『。', 'いおきゃ']), ('partial-repair probe', ['こあ）ー、あ）っこ、「（あ「けけっ。えかきー文', 8], ['こあ）ー、あ）っ', 'こ、「（あ「け', 'けっ。えかきー文']), ('partial-repair probe', ['。け』かあ『組け』、字', 8], ['。け』かあ『組', 'け』、字']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('control layout', ['お語）日版』「か文え日日こ（ー（お', 7], ['お語）日版』', '「か文え日日こ', '（ー（お']), ('control layout', ['日うああ版字お日。日お日', 4], ['日うああ', '版字お日。', '日お日'])], [('regression: push-out chain', ['」』こ）「。きゃ」語文うう『', 4], ['」』こ）', '「。', 'きゃ」語', '文うう『']), ('regression: push-out chain', ['語け本日ゃ」）「字、字字', 5], ['語け本', '日ゃ」）', '「字、字字']), ('regression: push-out chain', ['（ゃえい。く、ああ（おあ）「文）（か語ゃ。ーけき', 3], ['（ゃえ', 'い。く、', 'ああ', '（お', 'あ）', '「文）', '（か', '語', 'ゃ。ー', 'けき']), ('partial-repair probe', ['（）本）『組こ日本）版、（かけ本', 3], ['（）', '本）', '『組こ', '日本）', '版、', '（かけ', '本']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('closing bracket pushes out', ['日本語文」字組版', 4], ['日本語', '文」字組', '版']), ('control layout', ['ー』版）本うかえお日', 8], ['ー』版）本うかえ', 'お日']), ('control layout', ['こう）あ、く。日語', 8], ['こう）あ、く。日', '語'])], [('regression: push-out chain', ['（『あ（日字（字「い語。字『うく版文ーゃーあ', 7], ['（『あ（日字', '（字「い語。字', '『うく版', '文ーゃーあ']), ('regression: push-out chain', ['こっ（『おあゃお字」。。組うう組、こえけ）語', 5], ['こっ（『お', 'あゃお', '字」。。組', 'うう組、こ', 'えけ）語']), ('regression: push-out chain', ['、けゃ語え語字「か語く文（、字）っ。おか、ー', 7], ['、けゃ語え語字', '「か語く文（、', '字）っ。お', 'か、ー']), ('partial-repair probe', ['かあ語、本ゃっけ」', 8], ['かあ語、本ゃっ', 'け」']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('opening bracket at line end', ['日本語「文字」組版', 4], ['日本語', '「文字」', '組版']), ('control layout', ['け本こ日ゃき、こう」版（', 8], ['け本こ日ゃき、こ', 'う」版（']), ('control layout', ['日」』版、。字文うえこ日', 5], ['日」』版、。', '字文うえこ', '日'])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"965c68a6cf2820abb116838466ad9fc6cbe6478289ee44f611313cd4983f858e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    text, L = x\n    NO_START = '、。，．）」』！？ーぁぃぅぇぉっゃゅょ'\n    NO_END = '（「『'\n    HANG = '、。，．'\n    lines = []\n    pos = 0\n    n = len(text)\n    while pos < n:\n        end = pos + L\n        if end >= n:\n            lines.append(text[pos:])\n            break\n        if text[end] in HANG and (end + 1 >= n or text[end + 1] not in NO_START):\n            end += 1\n        else:\n            if end > pos + 1 and text[end] in NO_START:\n                end -= 1\n            while end > pos + 1 and text[end - 1] in NO_END:\n                end -= 1\n        lines.append(text[pos:end])\n        pos = end\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: push-out chain', ['、本おう）こきかえ文日おいーゃ。（け', 7], ['、本おう）こき', 'かえ文日お', 'いーゃ。（け']), ('regression: push-out chain', ['文ーう文おっ日いあうあ）いゃ）』日『字', 5], ['文ーう文', 'おっ日いあ', 'うあ）', 'いゃ）』日', '『字']), ('partial-repair probe', ['字う『、え組こ、文、ーえ」、』語う。', 8], ['字う『、え組こ、', '文、ーえ」、』語', 'う。']), ('partial-repair probe', ['本』。。くゃ（か『「', 6], ['本』。。くゃ', '（か『「']), ('closing bracket pushes out', ['日本語文」字組版', 4], ['日本語', '文」字組', '版']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('control layout', ['あっけあ『（き版', 4], ['あっけあ', '『（き版']), ('control layout', ['語あ』文か（おく本」', 6], ['語あ』文か', '（おく本」'])], [('regression: push-out chain', ['ゃ『くかこけう」字（く、っ『語ゃ組', 6], ['ゃ『くかこけ', 'う」字', '（く、っ', '『語ゃ組']), ('regression: push-out chain', ['けけーうけゃ）（っ』』）ゃっ組）お', 4], ['けけーう', 'けゃ）', '（', 'っ', '』', '』）ゃっ', '組）お']), ('partial-repair probe', ['か語組ゃっうこうくきくゃ日', 5], ['か語組ゃっ', 'うこうくき', 'くゃ日']), ('partial-repair probe', ['お。）語うきき文』く「日本本組『ゃ文日', 4], ['お。）語', 'うきき', '文』く', '「日本本', '組『ゃ文', '日']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('period hangs past the measure', ['日本語文。字組版', 4], ['日本語文。', '字組版']), ('control layout', ['文字くい「「いおい字こく字っーー、かお本', 6], ['文字くい', '「「いおい字', 'こく字っーー、', 'かお本']), ('control layout', ['お語）日版』「か文え日日こ（ー（お', 7], ['お語）日版』', '「か文え日日こ', '（ー（お'])], [('regression: push-out chain', ['い。（）。けう組。き文文日文文えっ、』あ』字組本', 6], ['い。（）。け', 'う組。き文文', '日文文', 'えっ、』あ』', '字組本']), ('regression: push-out chain', ['う版あう。、っ』、）「字。あかか、『。いおきゃ', 4], ['う版あ', 'う', '。', '、', 'っ』、）', '「字。あ', 'かか、『。', 'いおきゃ']), ('partial-repair probe', ['こあ）ー、あ）っこ、「（あ「けけっ。えかきー文', 8], ['こあ）ー、あ）っ', 'こ、「（あ「け', 'けっ。えかきー文']), ('partial-repair probe', ['。け』かあ『組け』、字', 8], ['。け』かあ『組', 'け』、字']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('control layout', ['お語）日版』「か文え日日こ（ー（お', 7], ['お語）日版』', '「か文え日日こ', '（ー（お']), ('control layout', ['日うああ版字お日。日お日', 4], ['日うああ', '版字お日。', '日お日'])], [('regression: push-out chain', ['」』こ）「。きゃ」語文うう『', 4], ['」』こ）', '「。', 'きゃ」語', '文うう『']), ('regression: push-out chain', ['語け本日ゃ」）「字、字字', 5], ['語け本', '日ゃ」）', '「字、字字']), ('regression: push-out chain', ['（ゃえい。く、ああ（おあ）「文）（か語ゃ。ーけき', 3], ['（ゃえ', 'い。く、', 'ああ', '（お', 'あ）', '「文）', '（か', '語', 'ゃ。ー', 'けき']), ('partial-repair probe', ['（）本）『組こ日本）版、（かけ本', 3], ['（）', '本）', '『組こ', '日本）', '版、', '（かけ', '本']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('closing bracket pushes out', ['日本語文」字組版', 4], ['日本語', '文」字組', '版']), ('control layout', ['ー』版）本うかえお日', 8], ['ー』版）本うかえ', 'お日']), ('control layout', ['こう）あ、く。日語', 8], ['こう）あ、く。日', '語'])], [('regression: push-out chain', ['（『あ（日字（字「い語。字『うく版文ーゃーあ', 7], ['（『あ（日字', '（字「い語。字', '『うく版', '文ーゃーあ']), ('regression: push-out chain', ['こっ（『おあゃお字」。。組うう組、こえけ）語', 5], ['こっ（『お', 'あゃお', '字」。。組', 'うう組、こ', 'えけ）語']), ('regression: push-out chain', ['、けゃ語え語字「か語く文（、字）っ。おか、ー', 7], ['、けゃ語え語字', '「か語く文（、', '字）っ。お', 'か、ー']), ('partial-repair probe', ['かあ語、本ゃっけ」', 8], ['かあ語、本ゃっ', 'け」']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('opening bracket at line end', ['日本語「文字」組版', 4], ['日本語', '「文字」', '組版']), ('control layout', ['け本こ日ゃき、こう」版（', 8], ['け本こ日ゃき、こ', 'う」版（']), ('control layout', ['日」』版、。字文うえこ日', 5], ['日」』版、。', '字文うえこ', '日'])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"f3bf45f9ac7273e966603d40fb41a530770df9f391615b89847442bca6ba2ac8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    text, L = x\n    NO_START = '、。，．）」』！？ーぁぃぅぇぉっゃゅょ'\n    NO_END = '（「『'\n    HANG = '、。，．'\n    lines = []\n    pos = 0\n    n = len(text)\n    while pos < n:\n        end = pos + L\n        if end >= n:\n            lines.append(text[pos:])\n            break\n        if text[end] in HANG and (end + 1 >= n or text[end + 1] not in NO_START):\n            end += 1\n        else:\n            while end > pos + 1 and text[end] in NO_START:\n                end -= 1\n            while end > pos + 1 and text[end - 1] in NO_END:\n                end -= 1\n        lines.append(text[pos:end])\n        pos = end\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: push-out chain', ['、本おう）こきかえ文日おいーゃ。（け', 7], ['、本おう）こき', 'かえ文日お', 'いーゃ。（け']), ('regression: push-out chain', ['文ーう文おっ日いあうあ）いゃ）』日『字', 5], ['文ーう文', 'おっ日いあ', 'うあ）', 'いゃ）』日', '『字']), ('partial-repair probe', ['字う『、え組こ、文、ーえ」、』語う。', 8], ['字う『、え組こ、', '文、ーえ」、』語', 'う。']), ('partial-repair probe', ['本』。。くゃ（か『「', 6], ['本』。。くゃ', '（か『「']), ('closing bracket pushes out', ['日本語文」字組版', 4], ['日本語', '文」字組', '版']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('control layout', ['あっけあ『（き版', 4], ['あっけあ', '『（き版']), ('control layout', ['語あ』文か（おく本」', 6], ['語あ』文か', '（おく本」'])], [('regression: push-out chain', ['ゃ『くかこけう」字（く、っ『語ゃ組', 6], ['ゃ『くかこけ', 'う」字', '（く、っ', '『語ゃ組']), ('regression: push-out chain', ['けけーうけゃ）（っ』』）ゃっ組）お', 4], ['けけーう', 'けゃ）', '（', 'っ', '』', '』）ゃっ', '組）お']), ('partial-repair probe', ['か語組ゃっうこうくきくゃ日', 5], ['か語組ゃっ', 'うこうくき', 'くゃ日']), ('partial-repair probe', ['お。）語うきき文』く「日本本組『ゃ文日', 4], ['お。）語', 'うきき', '文』く', '「日本本', '組『ゃ文', '日']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('period hangs past the measure', ['日本語文。字組版', 4], ['日本語文。', '字組版']), ('control layout', ['文字くい「「いおい字こく字っーー、かお本', 6], ['文字くい', '「「いおい字', 'こく字っーー、', 'かお本']), ('control layout', ['お語）日版』「か文え日日こ（ー（お', 7], ['お語）日版』', '「か文え日日こ', '（ー（お'])], [('regression: push-out chain', ['い。（）。けう組。き文文日文文えっ、』あ』字組本', 6], ['い。（）。け', 'う組。き文文', '日文文', 'えっ、』あ』', '字組本']), ('regression: push-out chain', ['う版あう。、っ』、）「字。あかか、『。いおきゃ', 4], ['う版あ', 'う', '。', '、', 'っ』、）', '「字。あ', 'かか、『。', 'いおきゃ']), ('partial-repair probe', ['こあ）ー、あ）っこ、「（あ「けけっ。えかきー文', 8], ['こあ）ー、あ）っ', 'こ、「（あ「け', 'けっ。えかきー文']), ('partial-repair probe', ['。け』かあ『組け』、字', 8], ['。け』かあ『組', 'け』、字']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('control layout', ['お語）日版』「か文え日日こ（ー（お', 7], ['お語）日版』', '「か文え日日こ', '（ー（お']), ('control layout', ['日うああ版字お日。日お日', 4], ['日うああ', '版字お日。', '日お日'])], [('regression: push-out chain', ['」』こ）「。きゃ」語文うう『', 4], ['」』こ）', '「。', 'きゃ」語', '文うう『']), ('regression: push-out chain', ['語け本日ゃ」）「字、字字', 5], ['語け本', '日ゃ」）', '「字、字字']), ('regression: push-out chain', ['（ゃえい。く、ああ（おあ）「文）（か語ゃ。ーけき', 3], ['（ゃえ', 'い。く、', 'ああ', '（お', 'あ）', '「文）', '（か', '語', 'ゃ。ー', 'けき']), ('partial-repair probe', ['（）本）『組こ日本）版、（かけ本', 3], ['（）', '本）', '『組こ', '日本）', '版、', '（かけ', '本']), ('small kana prohibited at line start', ['日本語かっこいい', 4], ['日本語', 'かっこい', 'い']), ('closing bracket pushes out', ['日本語文」字組版', 4], ['日本語', '文」字組', '版']), ('control layout', ['ー』版）本うかえお日', 8], ['ー』版）本うかえ', 'お日']), ('control layout', ['こう）あ、く。日語', 8], ['こう）あ、く。日', '語'])], [('regression: push-out chain', ['（『あ（日字（字「い語。字『うく版文ーゃーあ', 7], ['（『あ（日字', '（字「い語。字', '『うく版', '文ーゃーあ']), ('regression: push-out chain', ['こっ（『おあゃお字」。。組うう組、こえけ）語', 5], ['こっ（『お', 'あゃお', '字」。。組', 'うう組、こ', 'えけ）語']), ('regression: push-out chain', ['、けゃ語え語字「か語く文（、字）っ。おか、ー', 7], ['、けゃ語え語字', '「か語く文（、', '字）っ。お', 'か、ー']), ('partial-repair probe', ['かあ語、本ゃっけ」', 8], ['かあ語、本ゃっ', 'け」']), ('period followed by bracket cannot hang', ['日本語文。」字組', 4], ['日本語', '文。」字', '組']), ('opening bracket at line end', ['日本語「文字」組版', 4], ['日本語', '「文字」', '組版']), ('control layout', ['け本こ日ゃき、こう」版（', 8], ['け本こ日ゃき、こ', 'う」版（']), ('control layout', ['日」』版、。字文うえこ日', 5], ['日」』版、。', '字文うえこ', '日'])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic toy typesetting model with integer widths and a stipulated rule set; it does not claim conformance to any engine. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-typography-line-breaking-kinsoku-push-out-chain","generated_at":"2026-09-29T14:49:49.904607+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Line breaking decides where paragraphs wrap on screen and in print; a wrong decision point shifts every following line.","repair":"Keep moving characters while the next line would start with a prohibited character.","root_cause":"The push-out step moves back only one character instead of looping.","sha256":"f5c6d54b70ed7c9b0e03ef56a19452b36a24c3c8421fdd940ae6e9a63da03e57","title":"CJK kinsoku line breaking: push-out chain · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.158,"exit_code":1,"observations":[{"actual":["、本おう）こき","かえ文日おい","ーゃ。（け"],"check":"regression: push-out chain","expected":["、本おう）こき","かえ文日お","いーゃ。（け"],"passed":false},{"actual":["文ーう文お","っ日いあう","あ）い","ゃ）』日","『字"],"check":"regression: push-out chain","expected":["文ーう文","おっ日いあ","うあ）","いゃ）』日","『字"],"passed":false},{"actual":["字う『、え組こ","、文、ーえ","」、』語う。"],"check":"partial-repair probe","expected":["字う『、え組こ、","文、ーえ」、』語","う。"],"passed":false},{"actual":["本』。。く","ゃ（か『「"],"check":"partial-repair probe","expected":["本』。。くゃ","（か『「"],"passed":false},{"actual":["日本語文","」字組版"],"check":"closing bracket pushes out","expected":["日本語","文」字組","版"],"passed":false},{"actual":["日本語文","。」字組"],"check":"period followed by bracket cannot hang","expected":["日本語","文。」字","組"],"passed":false},{"actual":["あっけあ","『（き版"],"check":"control layout","expected":["あっけあ","『（き版"],"passed":true},{"actual":["語あ』文か","（おく本」"],"check":"control layout","expected":["語あ』文か","（おく本」"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: push-out chain\", \"actual\": [\"、本おう）こき\", \"かえ文日おい\", \"ーゃ。（け\"], \"expected\": [\"、本おう）こき\", \"かえ文日お\", \"いーゃ。（け\"], \"passed\": false}, {\"check\": \"regression: push-out chain\", \"actual\": [\"文ーう文お\", \"っ日いあう\", \"あ）い\", \"ゃ）』日\", \"『字\"], \"expected\": [\"文ーう文\", \"おっ日いあ\", \"うあ）\", \"いゃ）』日\", \"『字\"], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [\"字う『、え組こ\", \"、文、ーえ\", \"」、』語う。\"], \"expected\": [\"字う『、え組こ、\", \"文、ーえ」、』語\", \"う。\"], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [\"本』。。く\", \"ゃ（か『「\"], \"expected\": [\"本』。。くゃ\", \"（か『「\"], \"passed\": false}, {\"check\": \"closing bracket pushes out\", \"actual\": [\"日本語文\", \"」字組版\"], \"expected\": [\"日本語\", \"文」字組\", \"版\"], \"passed\": false}, {\"check\": \"period followed by bracket cannot hang\", \"actual\": [\"日本語文\", \"。」字組\"], \"expected\": [\"日本語\", \"文。」字\", \"組\"], \"passed\": false}, {\"check\": \"control layout\", \"actual\": [\"あっけあ\", \"『（き版\"], \"expected\": [\"あっけあ\", \"『（き版\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"語あ』文か\", \"（おく本」\"], \"expected\": [\"語あ』文か\", \"（おく本」\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.475,"exit_code":1,"observations":[{"actual":["、本おう）こき","かえ文日おい","ーゃ。（け"],"check":"regression: push-out chain","expected":["、本おう）こき","かえ文日お","いーゃ。（け"],"passed":false},{"actual":["文ーう文","おっ日いあ","うあ）い","ゃ）』日","『字"],"check":"regression: push-out chain","expected":["文ーう文","おっ日いあ","うあ）","いゃ）』日","『字"],"passed":false},{"actual":["字う『、え組こ、","文、ーえ」、』語","う。"],"check":"partial-repair probe","expected":["字う『、え組こ、","文、ーえ」、』語","う。"],"passed":true},{"actual":["本』。。くゃ","（か『「"],"check":"partial-repair probe","expected":["本』。。くゃ","（か『「"],"passed":true},{"actual":["日本語","文」字組","版"],"check":"closing bracket pushes out","expected":["日本語","文」字組","版"],"passed":true},{"actual":["日本語","文。」字","組"],"check":"period followed by bracket cannot hang","expected":["日本語","文。」字","組"],"passed":true},{"actual":["あっけあ","『（き版"],"check":"control layout","expected":["あっけあ","『（き版"],"passed":true},{"actual":["語あ』文か","（おく本」"],"check":"control layout","expected":["語あ』文か","（おく本」"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: push-out chain\", \"actual\": [\"、本おう）こき\", \"かえ文日おい\", \"ーゃ。（け\"], \"expected\": [\"、本おう）こき\", \"かえ文日お\", \"いーゃ。（け\"], \"passed\": false}, {\"check\": \"regression: push-out chain\", \"actual\": [\"文ーう文\", \"おっ日いあ\", \"うあ）い\", \"ゃ）』日\", \"『字\"], \"expected\": [\"文ーう文\", \"おっ日いあ\", \"うあ）\", \"いゃ）』日\", \"『字\"], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [\"字う『、え組こ、\", \"文、ーえ」、』語\", \"う。\"], \"expected\": [\"字う『、え組こ、\", \"文、ーえ」、』語\", \"う。\"], \"passed\": true}, {\"check\": \"partial-repair probe\", \"actual\": [\"本』。。くゃ\", \"（か『「\"], \"expected\": [\"本』。。くゃ\", \"（か『「\"], \"passed\": true}, {\"check\": \"closing bracket pushes out\", \"actual\": [\"日本語\", \"文」字組\", \"版\"], \"expected\": [\"日本語\", \"文」字組\", \"版\"], \"passed\": true}, {\"check\": \"period followed by bracket cannot hang\", \"actual\": [\"日本語\", \"文。」字\", \"組\"], \"expected\": [\"日本語\", \"文。」字\", \"組\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"あっけあ\", \"『（き版\"], \"expected\": [\"あっけあ\", \"『（き版\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"語あ』文か\", \"（おく本」\"], \"expected\": [\"語あ』文か\", \"（おく本」\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.491,"exit_code":0,"observations":[{"actual":["、本おう）こき","かえ文日お","いーゃ。（け"],"check":"regression: push-out chain","expected":["、本おう）こき","かえ文日お","いーゃ。（け"],"passed":true},{"actual":["文ーう文","おっ日いあ","うあ）","いゃ）』日","『字"],"check":"regression: push-out chain","expected":["文ーう文","おっ日いあ","うあ）","いゃ）』日","『字"],"passed":true},{"actual":["字う『、え組こ、","文、ーえ」、』語","う。"],"check":"partial-repair probe","expected":["字う『、え組こ、","文、ーえ」、』語","う。"],"passed":true},{"actual":["本』。。くゃ","（か『「"],"check":"partial-repair probe","expected":["本』。。くゃ","（か『「"],"passed":true},{"actual":["日本語","文」字組","版"],"check":"closing bracket pushes out","expected":["日本語","文」字組","版"],"passed":true},{"actual":["日本語","文。」字","組"],"check":"period followed by bracket cannot hang","expected":["日本語","文。」字","組"],"passed":true},{"actual":["あっけあ","『（き版"],"check":"control layout","expected":["あっけあ","『（き版"],"passed":true},{"actual":["語あ』文か","（おく本」"],"check":"control layout","expected":["語あ』文か","（おく本」"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: push-out chain\", \"actual\": [\"、本おう）こき\", \"かえ文日お\", \"いーゃ。（け\"], \"expected\": [\"、本おう）こき\", \"かえ文日お\", \"いーゃ。（け\"], \"passed\": true}, {\"check\": \"regression: push-out chain\", \"actual\": [\"文ーう文\", \"おっ日いあ\", \"うあ）\", \"いゃ）』日\", \"『字\"], \"expected\": [\"文ーう文\", \"おっ日いあ\", \"うあ）\", \"いゃ）』日\", \"『字\"], \"passed\": true}, {\"check\": \"partial-repair probe\", \"actual\": [\"字う『、え組こ、\", \"文、ーえ」、』語\", \"う。\"], \"expected\": [\"字う『、え組こ、\", \"文、ーえ」、』語\", \"う。\"], \"passed\": true}, {\"check\": \"partial-repair probe\", \"actual\": [\"本』。。くゃ\", \"（か『「\"], \"expected\": [\"本』。。くゃ\", \"（か『「\"], \"passed\": true}, {\"check\": \"closing bracket pushes out\", \"actual\": [\"日本語\", \"文」字組\", \"版\"], \"expected\": [\"日本語\", \"文」字組\", \"版\"], \"passed\": true}, {\"check\": \"period followed by bracket cannot hang\", \"actual\": [\"日本語\", \"文。」字\", \"組\"], \"expected\": [\"日本語\", \"文。」字\", \"組\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"あっけあ\", \"『（き版\"], \"expected\": [\"あっけあ\", \"『（き版\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"語あ』文か\", \"（おく本」\"], \"expected\": [\"語あ』文か\", \"（おく本」\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}