From ea4b6e7d109ae3abc7f8ecdf99e3eb33e3484b77 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 5 Feb 2023 12:42:52 -0500 Subject: Strengthen handling of corrupt UTF-8 input --- test/extra/lax/test-bad-uri-nq-out.nq | 2 +- test/extra/lax/test-bad-uri-out.nt | 2 +- test/extra/lax/test-bad-utf8-nq-out.nq | 32 ++++++++++++++-- test/extra/lax/test-bad-utf8-nt-out.nt | 32 ++++++++++++++-- test/extra/lax/test-bad-utf8-ttl-out.nt | 36 +++++++++++++++--- test/extra/lax/test-bad-utf8.nq | 32 ++++++++++++++-- test/extra/lax/test-bad-utf8.nt | 32 ++++++++++++++-- test/extra/lax/test-bad-utf8.ttl | 66 ++++++++++++++++++++++++++++++--- 8 files changed, 208 insertions(+), 26 deletions(-) (limited to 'test') diff --git a/test/extra/lax/test-bad-uri-nq-out.nq b/test/extra/lax/test-bad-uri-nq-out.nq index 8cb00ba7..66da9b0d 100644 --- a/test/extra/lax/test-bad-uri-nq-out.nq +++ b/test/extra/lax/test-bad-uri-nq-out.nq @@ -1,4 +1,4 @@ . . - . + . . diff --git a/test/extra/lax/test-bad-uri-out.nt b/test/extra/lax/test-bad-uri-out.nt index 8cb00ba7..66da9b0d 100644 --- a/test/extra/lax/test-bad-uri-out.nt +++ b/test/extra/lax/test-bad-uri-out.nt @@ -1,4 +1,4 @@ . . - . + . . diff --git a/test/extra/lax/test-bad-utf8-nq-out.nq b/test/extra/lax/test-bad-utf8-nq-out.nq index 8cefa258..9970c1dd 100644 --- a/test/extra/lax/test-bad-utf8-nq-out.nq +++ b/test/extra/lax/test-bad-utf8-nq-out.nq @@ -1,3 +1,29 @@ - "Impossible bytes: \uFFFD \uFFFD" . - "2 continuation bytes: \uFFFD" . - "Missing continuation: \uFFFD" . + "The other values of this property should align nicely" . + "Impossible byte 1: \uFFFD |" . + "Impossible byte 2: \uFFFD |" . + "Four impossible bytes: \uFFFD\uFFFD\uFFFD\uFFFD |" . + "First continuation byte: \uFFFD |" . + "Last continuation byte: \uFFFD |" . + "2 continuation bytes: \uFFFD\uFFFD |" . + "3 continuation bytes: \uFFFD\uFFFD\uFFFD |" . + "4 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD |" . + "5 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "6 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "7 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 1: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 2: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 3: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 4: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Lonely leading bytes of 2-byte sequences 1: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 2-byte sequences 2: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 3-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 4-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 5-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 6-byte sequences: \uFFFD \uFFFD |" . + "2-byte sequence with last byte missing (U+0000): \uFFFD |" . + "3-byte sequence with last byte missing (U+0000): \uFFFD |" . + "4-byte sequence with last byte missing (U+0000): \uFFFD |" . + "2-byte sequence with last byte missing (U-000007FF): \uFFFD |" . + "3-byte sequence with last byte missing (U-0000FFFF): \uFFFD |" . + "4-byte sequence with last byte missing (U-001FFFFF): \uFFFD |" . + "6 sequences with last byte missing: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . diff --git a/test/extra/lax/test-bad-utf8-nt-out.nt b/test/extra/lax/test-bad-utf8-nt-out.nt index 8cefa258..9970c1dd 100644 --- a/test/extra/lax/test-bad-utf8-nt-out.nt +++ b/test/extra/lax/test-bad-utf8-nt-out.nt @@ -1,3 +1,29 @@ - "Impossible bytes: \uFFFD \uFFFD" . - "2 continuation bytes: \uFFFD" . - "Missing continuation: \uFFFD" . + "The other values of this property should align nicely" . + "Impossible byte 1: \uFFFD |" . + "Impossible byte 2: \uFFFD |" . + "Four impossible bytes: \uFFFD\uFFFD\uFFFD\uFFFD |" . + "First continuation byte: \uFFFD |" . + "Last continuation byte: \uFFFD |" . + "2 continuation bytes: \uFFFD\uFFFD |" . + "3 continuation bytes: \uFFFD\uFFFD\uFFFD |" . + "4 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD |" . + "5 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "6 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "7 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 1: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 2: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 3: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 4: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Lonely leading bytes of 2-byte sequences 1: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 2-byte sequences 2: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 3-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 4-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 5-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 6-byte sequences: \uFFFD \uFFFD |" . + "2-byte sequence with last byte missing (U+0000): \uFFFD |" . + "3-byte sequence with last byte missing (U+0000): \uFFFD |" . + "4-byte sequence with last byte missing (U+0000): \uFFFD |" . + "2-byte sequence with last byte missing (U-000007FF): \uFFFD |" . + "3-byte sequence with last byte missing (U-0000FFFF): \uFFFD |" . + "4-byte sequence with last byte missing (U-001FFFFF): \uFFFD |" . + "6 sequences with last byte missing: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . diff --git a/test/extra/lax/test-bad-utf8-ttl-out.nt b/test/extra/lax/test-bad-utf8-ttl-out.nt index 58f2c52b..c8364786 100644 --- a/test/extra/lax/test-bad-utf8-ttl-out.nt +++ b/test/extra/lax/test-bad-utf8-ttl-out.nt @@ -1,6 +1,30 @@ - "Impossible bytes: \uFFFD \uFFFD" . - "2 continuation bytes: \uFFFD" . - "Missing continuation: \uFFFD" . - "Impossible bytes: \uFFFD \uFFFD" . - "2 continuation bytes: \uFFFD" . - "Missing continuation: \uFFFD" . + "The other values of this property should align nicely" . + "Impossible byte 1: \uFFFD |" . + "Impossible byte 2: \uFFFD |" . + "Four impossible bytes: \uFFFD\uFFFD\uFFFD\uFFFD |" . + "First continuation byte: \uFFFD |" . + "Last continuation byte: \uFFFD |" . + "2 continuation bytes: \uFFFD\uFFFD |" . + "3 continuation bytes: \uFFFD\uFFFD\uFFFD |" . + "4 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD |" . + "5 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "6 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "7 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 1: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 2: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 3: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Continuation bytes 4: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "Lonely leading bytes of 2-byte sequences 1: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 2-byte sequences 2: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 3-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 4-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 5-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD |" . + "Lonely leading bytes of 6-byte sequences: \uFFFD \uFFFD |" . + "2-byte sequence with last byte missing (U+0000): \uFFFD |" . + "3-byte sequence with last byte missing (U+0000): \uFFFD |" . + "4-byte sequence with last byte missing (U+0000): \uFFFD |" . + "2-byte sequence with last byte missing (U-000007FF): \uFFFD |" . + "3-byte sequence with last byte missing (U-0000FFFF): \uFFFD |" . + "4-byte sequence with last byte missing (U-001FFFFF): \uFFFD |" . + "6 sequences with last byte missing: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |" . + "\nImpossible byte 1: \uFFFD |\nImpossible byte 2: \uFFFD |\nFour impossible bytes: \uFFFD\uFFFD\uFFFD\uFFFD |\nFirst continuation byte: \uFFFD |\nLast continuation byte: \uFFFD |\n2 continuation bytes: \uFFFD\uFFFD |\n3 continuation bytes: \uFFFD\uFFFD\uFFFD |\n4 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD |\n5 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\n6 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\n7 continuation bytes: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\nContinuation bytes 1: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\nContinuation bytes 2: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\nContinuation bytes 3: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\nContinuation bytes 4: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\nLonely leading bytes of 2-byte sequences 1: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |\nLonely leading bytes of 2-byte sequences 2: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |\nLonely leading bytes of 3-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |\nLonely leading bytes of 4-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD \uFFFD |\nLonely leading bytes of 5-byte sequences: \uFFFD \uFFFD \uFFFD \uFFFD |\nLonely leading bytes of 6-byte sequences: \uFFFD \uFFFD |\n2-byte sequence with last byte missing (U+0000): \uFFFD |\n3-byte sequence with last byte missing (U+0000): \uFFFD |\n4-byte sequence with last byte missing (U+0000): \uFFFD |\n2-byte sequence with last byte missing (U-000007FF): \uFFFD |\n3-byte sequence with last byte missing (U-0000FFFF): \uFFFD |\n4-byte sequence with last byte missing (U-001FFFFF): \uFFFD |\n6 sequences with last byte missing: \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD |\n" . diff --git a/test/extra/lax/test-bad-utf8.nq b/test/extra/lax/test-bad-utf8.nq index b8c04637..de67830b 100644 --- a/test/extra/lax/test-bad-utf8.nq +++ b/test/extra/lax/test-bad-utf8.nq @@ -1,3 +1,29 @@ - "Impossible bytes: " . - "2 continuation bytes: " . - "Missing continuation: " . + "The other values of this property should align nicely" . + "Impossible byte 1: |" . + "Impossible byte 2: |" . + "Four impossible bytes: |" . + "First continuation byte: |" . + "Last continuation byte: |" . + "2 continuation bytes: |" . + "3 continuation bytes: |" . + "4 continuation bytes: |" . + "5 continuation bytes: |" . + "6 continuation bytes: |" . + "7 continuation bytes: |" . + "Continuation bytes 1: |" . + "Continuation bytes 2: |" . + "Continuation bytes 3: |" . + "Continuation bytes 4: |" . + "Lonely leading bytes of 2-byte sequences 1: |" . + "Lonely leading bytes of 2-byte sequences 2: |" . + "Lonely leading bytes of 3-byte sequences: |" . + "Lonely leading bytes of 4-byte sequences: |" . + "Lonely leading bytes of 5-byte sequences: |" . + "Lonely leading bytes of 6-byte sequences: |" . + "2-byte sequence with last byte missing (U+0000): |" . + "3-byte sequence with last byte missing (U+0000): |" . + "4-byte sequence with last byte missing (U+0000): |" . + "2-byte sequence with last byte missing (U-000007FF): |" . + "3-byte sequence with last byte missing (U-0000FFFF): |" . + "4-byte sequence with last byte missing (U-001FFFFF): |" . + "6 sequences with last byte missing: |" . diff --git a/test/extra/lax/test-bad-utf8.nt b/test/extra/lax/test-bad-utf8.nt index b8c04637..de67830b 100644 --- a/test/extra/lax/test-bad-utf8.nt +++ b/test/extra/lax/test-bad-utf8.nt @@ -1,3 +1,29 @@ - "Impossible bytes: " . - "2 continuation bytes: " . - "Missing continuation: " . + "The other values of this property should align nicely" . + "Impossible byte 1: |" . + "Impossible byte 2: |" . + "Four impossible bytes: |" . + "First continuation byte: |" . + "Last continuation byte: |" . + "2 continuation bytes: |" . + "3 continuation bytes: |" . + "4 continuation bytes: |" . + "5 continuation bytes: |" . + "6 continuation bytes: |" . + "7 continuation bytes: |" . + "Continuation bytes 1: |" . + "Continuation bytes 2: |" . + "Continuation bytes 3: |" . + "Continuation bytes 4: |" . + "Lonely leading bytes of 2-byte sequences 1: |" . + "Lonely leading bytes of 2-byte sequences 2: |" . + "Lonely leading bytes of 3-byte sequences: |" . + "Lonely leading bytes of 4-byte sequences: |" . + "Lonely leading bytes of 5-byte sequences: |" . + "Lonely leading bytes of 6-byte sequences: |" . + "2-byte sequence with last byte missing (U+0000): |" . + "3-byte sequence with last byte missing (U+0000): |" . + "4-byte sequence with last byte missing (U+0000): |" . + "2-byte sequence with last byte missing (U-000007FF): |" . + "3-byte sequence with last byte missing (U-0000FFFF): |" . + "4-byte sequence with last byte missing (U-001FFFFF): |" . + "6 sequences with last byte missing: |" . diff --git a/test/extra/lax/test-bad-utf8.ttl b/test/extra/lax/test-bad-utf8.ttl index 0e177366..e5640078 100644 --- a/test/extra/lax/test-bad-utf8.ttl +++ b/test/extra/lax/test-bad-utf8.ttl @@ -1,6 +1,60 @@ - "Impossible bytes: " . - "2 continuation bytes: " . - "Missing continuation: " . - """Impossible bytes: """ . - """2 continuation bytes: """ . - """Missing continuation: """ . + "The other values of this property should align nicely" . + "Impossible byte 1: |" . + "Impossible byte 2: |" . + "Four impossible bytes: |" . + "First continuation byte: |" . + "Last continuation byte: |" . + "2 continuation bytes: |" . + "3 continuation bytes: |" . + "4 continuation bytes: |" . + "5 continuation bytes: |" . + "6 continuation bytes: |" . + "7 continuation bytes: |" . + "Continuation bytes 1: |" . + "Continuation bytes 2: |" . + "Continuation bytes 3: |" . + "Continuation bytes 4: |" . + "Lonely leading bytes of 2-byte sequences 1: |" . + "Lonely leading bytes of 2-byte sequences 2: |" . + "Lonely leading bytes of 3-byte sequences: |" . + "Lonely leading bytes of 4-byte sequences: |" . + "Lonely leading bytes of 5-byte sequences: |" . + "Lonely leading bytes of 6-byte sequences: |" . + "2-byte sequence with last byte missing (U+0000): |" . + "3-byte sequence with last byte missing (U+0000): |" . + "4-byte sequence with last byte missing (U+0000): |" . + "2-byte sequence with last byte missing (U-000007FF): |" . + "3-byte sequence with last byte missing (U-0000FFFF): |" . + "4-byte sequence with last byte missing (U-001FFFFF): |" . + "6 sequences with last byte missing: |" . + + """ +Impossible byte 1: | +Impossible byte 2: | +Four impossible bytes: | +First continuation byte: | +Last continuation byte: | +2 continuation bytes: | +3 continuation bytes: | +4 continuation bytes: | +5 continuation bytes: | +6 continuation bytes: | +7 continuation bytes: | +Continuation bytes 1: | +Continuation bytes 2: | +Continuation bytes 3: | +Continuation bytes 4: | +Lonely leading bytes of 2-byte sequences 1: | +Lonely leading bytes of 2-byte sequences 2: | +Lonely leading bytes of 3-byte sequences: | +Lonely leading bytes of 4-byte sequences: | +Lonely leading bytes of 5-byte sequences: | +Lonely leading bytes of 6-byte sequences: | +2-byte sequence with last byte missing (U+0000): | +3-byte sequence with last byte missing (U+0000): | +4-byte sequence with last byte missing (U+0000): | +2-byte sequence with last byte missing (U-000007FF): | +3-byte sequence with last byte missing (U-0000FFFF): | +4-byte sequence with last byte missing (U-001FFFFF): | +6 sequences with last byte missing: | +""" . -- cgit v1.2.1