From 16c217d744fa79b2cb91e56557f4c5bb3d56e41b Mon Sep 17 00:00:00 2001 From: dev Date: Mon, 5 Oct 2026 19:09:08 +0200 Subject: [PATCH] Stage 4a: both sides of every limit in the vectors, and the password P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Faults injected one at a time found four that the vectors let through: R2 at 32 segments, R3 counting code points instead of UTF-16 code units in an astral NFD, U+036F kept by normalizeWords, and DEL let through by checkWords. The generators now write both sides of each limit: 32 and 33 segments, 255 and 256 bytes in letters of two and four bytes, 255 and 256 UTF-16 code units of NFD and 252 and 258 from astral decompositions, bases of 8 and 9 runes, extensions of 3 and 4 also astral, the first and the last mark of U+0300 to U+036F and their neighbours, and U+001F, U+007E, U+007F, U+0080 and U+00A0 in a word. All four faults are caught now. wordKeyPassword is the password P of spec §38.1, as wordKeySalt is S, and wordKey uses both: the tests compiled to JavaScript check P against the one of Go, so that a wrong separator of the words is caught there too, not only by the keys of 600 000 iterations on the VM. Co-Authored-By: Claude Opus 5.5 --- lib/src/wordkey.dart | 13 +- test/vectors/pathrule_vectors.g.dart | 2185 +++++++++++++------------- test/vectors/pathrule_vectors.json | 2185 +++++++++++++------------- test/vectors/wordkey_vectors.g.dart | 52 +- test/vectors/wordkey_vectors.json | 52 +- test/wordkey_test.dart | 7 +- tool/pathrule_go_vectors.go | 14 + tool/wordkey_go_vectors.go | 17 +- 8 files changed, 2293 insertions(+), 2232 deletions(-) diff --git a/lib/src/wordkey.dart b/lib/src/wordkey.dart index 5943ade..dbe8755 100644 --- a/lib/src/wordkey.dart +++ b/lib/src/wordkey.dart @@ -165,12 +165,15 @@ void _checkRound(int round) { } } +/// The password P of spec §38.1: the words joined by one U+0020, in UTF-8, +/// as Go's wordkey.Key passes them to PBKDF2. The caller clears it. +Uint8List wordKeyPassword(List words) => utf8Bytes(words.join(' ')); + /// The raw X25519 identity, 32 bytes, of [words] for the capsule /// [capsuleId], of the round [round] of the chain whose hash is [chainHash]: -/// PBKDF2-HMAC-SHA256 of the words joined by one U+0020, in UTF-8, salted -/// with [wordKeySalt], [wordKeyRounds] iterations. Go's wordkey.Key. The -/// words are those that [normalizeWords] returns; the caller clears the -/// result. +/// PBKDF2-HMAC-SHA256 of [wordKeyPassword], salted with [wordKeySalt], +/// [wordKeyRounds] iterations. Go's wordkey.Key. The words are those that +/// [normalizeWords] returns; the caller clears the result. Uint8List wordKey( List words, List chainHash, @@ -178,7 +181,7 @@ Uint8List wordKey( List capsuleId, ) { final salt = wordKeySalt(chainHash, round, capsuleId); - final password = utf8Bytes(words.join(' ')); + final password = wordKeyPassword(words); try { return pbkdf2HmacSha256(password, salt, wordKeyRounds, x25519Size); } finally { diff --git a/test/vectors/pathrule_vectors.g.dart b/test/vectors/pathrule_vectors.g.dart index 13235e0..dd97ee0 100644 --- a/test/vectors/pathrule_vectors.g.dart +++ b/test/vectors/pathrule_vectors.g.dart @@ -162,6 +162,19 @@ const pathruleVectorsJson = r''' {"name":"ZWNJ alone in a line","in":"610ae2808c","path":"R4: segment 1: control U+000A","comment":"text: line 2: U+200C at the start","author":"text: control U+000A in the declared author","nfd":"610ae2808c","key":"610a"}, {"name":"an empty line","in":"610a0a62","path":"R4: segment 1: control U+000A","comment":"ok","author":"text: control U+000A in the declared author","nfd":"610a0a62","key":"610a0a62"}, {"name":"a text of bidirectional controls only","in":"e281a6e281a9","path":"R4: segment 1: invisible U+2066","comment":"text: bidirectional control U+2066","nfd":"e281a6e281a9","key":"e281a6e281a9"}, + {"name":"32 segments","in":"612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f61","path":"ok","comment":"ok","nfd":"612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f61","key":"612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f61"}, + {"name":"85 times U+0390 and a letter: 256 UTF-16 units after NFD","in":"ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce9061","path":"R3: segment 1: its NFD is 256 UTF-16 code units, more than 255","comment":"ok","nfd":"ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc8161","key":"ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc8161"}, + {"name":"42 times U+1D160: 168 bytes, 252 UTF-16 units after NFD","in":"f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0","path":"ok","comment":"ok","nfd":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae","key":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae"}, + {"name":"43 times U+1D160: 172 bytes, 258 UTF-16 units after NFD","in":"f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0","path":"R3: segment 1: its NFD is 258 UTF-16 code units, more than 255","comment":"ok","nfd":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae","key":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae"}, + {"name":"127 times U+00E9 and a letter: 255 bytes","in":"c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a961","path":"ok","comment":"ok","nfd":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8161","key":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8161"}, + {"name":"128 times U+00E9: 256 bytes","in":"c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9","path":"R3: segment 1: 256 bytes, more than 255","comment":"ok","nfd":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc81","key":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc81"}, + {"name":"63 emoji: 252 bytes, 126 UTF-16 units","in":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","path":"ok","comment":"ok","nfd":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","key":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880"}, + {"name":"64 emoji: 256 bytes","in":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","path":"R3: segment 1: 256 bytes, more than 255","comment":"ok","nfd":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","key":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880"}, + {"name":"a base of nine runes before the tilde","in":"414243444546477e31","path":"ok","comment":"ok","nfd":"414243444546477e31","key":"616263646566677e31"}, + {"name":"an 8.3 alias with an extension of four","in":"4142434445467e312e54455854","path":"ok","comment":"ok","nfd":"4142434445467e312e54455854","key":"6162636465667e312e74657874"}, + {"name":"an 8.3 alias with an astral letter","in":"f090908042434445467e31","path":"R6b: segment 1: the segment has the form of an 8.3 alias","comment":"ok","nfd":"f090908042434445467e31","key":"f09090a862636465667e31"}, + {"name":"an 8.3 alias with an astral extension","in":"4142434445467e312ef0909080f0909081f0909082","path":"R6b: segment 1: the segment has the form of an 8.3 alias","comment":"ok","nfd":"4142434445467e312ef0909080f0909081f0909082","key":"6162636465667e312ef09090a8f09090a9f09090aa"}, + {"name":"an astral extension of four","in":"4142434445467e312ef0909080f0909081f0909082f0909083","path":"ok","comment":"ok","nfd":"4142434445467e312ef0909080f0909081f0909082f0909083","key":"6162636465667e312ef09090a8f09090a9f09090aaf09090ab"}, {"in":"434f4dc2b320202e61","path":"R6: segment 1: COM\u00b3 is a reserved device name","comment":"ok","nfd":"434f4dc2b320202e61","key":"636f6dc2b320202e61"}, {"in":"c4b1f09ea4892fc1bf42e281b9e18fa17fe0a991d594f3a0b6a2","path":"R4: segment 2: control U+007F","comment":"text: control U+007F","nfd":"c4b1f09ea4892fefbfbdefbfbd42e281b9e18fa17fe0a991d594f3a0b6a2","key":"69f09ea4ab2fefbfbdefbfbd62e281b9e18fa17fe0a991d684f3a0b6a2"}, {"in":"f09f91a7f09f9880efb88ee2808c","path":"R4b: segment 1: U+FE0E is not part of an emoji variation sequence","comment":"text: line 1: U+FE0E is not part of an emoji variation sequence","nfd":"f09f91a7f09f9880efb88ee2808c","key":"f09f91a7f09f9880"}, @@ -1416,7 +1429,6 @@ const pathruleVectorsJson = r''' {"in":"f0afa889f09e8aaee2b7a7f096acb0","path":"ok","comment":"ok","nfd":"f0a9acb0f09e8aaee2b7a7f096acb0","key":"f0a9acb0f09e8aaee2b7a7f096acb0"}, {"in":"56","path":"ok","comment":"ok","nfd":"56","key":"76"}, {"in":"200ae29c8cefb88ef3a081bdefbfb70b40e2808df09f93ba0a0a0b3845206e612020","path":"R4: segment 1: control U+000A","comment":"text: invisible U+E007D","author":"text: control U+000A in the declared author","nfd":"200ae29c8cefb88ef3a081bdefbfb70b40e2808df09f93ba0a0a0b3845206e612020","key":"200ae29c8cf3a081bdefbfb70b40f09f93ba0a0a0b3865206e612020"}, - {"in":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","path":"R3: segment 1: 256 bytes, more than 255","comment":"ok","nfd":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","key":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880"}, {"in":"df47ffeda08063","path":"ok","comment":"ok","nfd":"efbfbd47efbfbdefbfbdefbfbdefbfbd63","key":"efbfbd67efbfbdefbfbdefbfbdefbfbd63"}, {"in":"20200d0ae29da4e2808de2808d23efb88fefb88ee29780efb88ff3a080b9f09f91a7efb88ff09f959aefb88ee2808de2ac86efb88ef3a080bff09f93a6efb88fefb88ee2808d","path":"R4: segment 1: control U+000D","comment":"text: control U+000D","nfd":"20200d0ae29da4e2808de2808d23efb88fefb88ee29780efb88ff3a080b9f09f91a7efb88ff09f959aefb88ee2808de2ac86efb88ef3a080bff09f93a6efb88fefb88ee2808d","key":"20200d0ae29da423e29780f3a080b9f09f91a7f09f959ae2ac86f3a080bff09f93a6"}, {"in":"c2c5864c","path":"ok","comment":"ok","nfd":"efbfbd6ecca74c","key":"efbfbd6ecca76c"}, @@ -1461,7 +1473,8 @@ const pathruleVectorsJson = r''' {"in":"e28082e28081ebb2b22f3077c8a9e185b0e2808cc380e29784","path":"R6c: segment 1: code page 1250 maps the segment to one that breaks R5: the segment starts with U+0020","comment":"ok","nfd":"e28082e28083e18487e185a6e186b92f307765cca7e185b0e2808c41cc80e29784","key":"e28082e28083e18487e185a6e186b92f307765cca7e185b061cc80e29784"}, {"in":"fee284abe1b2b8712f4949401f7e2ff09f9182c785e2808d36636550e1b9af2ff096b98cc784efb88fe2b09ae2b7a4c7847e","path":"R4: segment 2: control U+001F","comment":"text: control U+001F","nfd":"efbfbd41cc8ae1b2b8712f4949401f7e2ff09f9182c785e2808d3663655074ccb12ff096b98cc784efb88fe2b09ae2b7a4c7847e","key":"efbfbd61cc8ae183b8712f6969401f7e2ff09f9182c7863663657074ccb12ff096b9acc786e2b18ae2b7a4c7867e"}, {"in":"e2b0a86c2fe284a2d697f3a1ae99f09f91a8512fefb88ec6b6362d3ef090be83e19a802fe0baba00efaaa9e1bba954e1b785","path":"R4: segment 2: unassigned U+E1B99","comment":"text: control U+0000","nfd":"e2b0a86c2fe284a2d697f3a1ae99f09f91a8512fefb88ec6b6362d3ef090be83e19a802fe0baba00e79d8a75cc9bcc8154e1b785","key":"e2b1986c2fe284a2d697f3a1ae99f09f91a8712fc6b6362d3ef090be83e19a802fe0baba00e79d8a75cc9bcc8174e1b785"}, - {"in":"6ae2808d","path":"R4b: segment 1: U+200D at the end","comment":"text: line 1: U+200D at the end","nfd":"6ae2808d","key":"6a"} + {"in":"6ae2808d","path":"R4b: segment 1: U+200D at the end","comment":"text: line 1: U+200D at the end","nfd":"6ae2808d","key":"6a"}, + {"in":"20e1848be29da4e2808defb88fe2848bf09f8c8874e2808d33ef81a30ae29aa7f09ea392e284aa370b0d0a20306b","path":"R4: segment 1: private use U+F063","comment":"text: control U+000B","author":"text: control U+000A in the declared author","nfd":"20e1848be29da4e2808defb88fe2848bf09f8c8874e2808d33ef81a30ae29aa7f09ea3924b370b0d0a20306b","key":"20e1848be29da4e2848bf09f8c887433ef81a30ae29aa7f09ea3926b370b0d0a20306b"} ], "trees": [ {"name":"three files in two folders","in":["612f62","612f63","64"],"result":"ok","paths":[0,0]}, @@ -1494,23 +1507,19 @@ const pathruleVectorsJson = r''' {"name":"the capital sharp s and ss","in":["e1ba9e","7373"],"result":"R7: path 2 collides with path 1 in segment 1","paths":[2,1]}, {"name":"full-width CON in two cases","in":["efbca3efbcafefbcae","efbd83efbd8fefbd8e"],"result":"R7: path 2 collides with path 1 in segment 1","paths":[2,1]}, {"name":"a file, then a deeper file of the same name","in":["612f62","612f622f632f64"],"result":"R7: path 2 makes a file of path 1 a folder, or the reverse, in segment 2","paths":[2,1]}, - {"in":["622f6136","622f6339","652f6530"],"result":"ok","paths":[0,0]}, - {"in":["c4b02f53747261c39f65"],"result":"ok","paths":[0,0]}, - {"in":["c4b02f61cc81e2808dcca32fefbca3efbcafefbcae"],"result":"ok","paths":[0,0]}, - {"in":["c3a9","53532fff2f6666"],"result":"ok","paths":[0,0]}, - {"in":["622f6132","622f6134","642f6239","642f6532","652f6332","662f6535"],"result":"ok","paths":[0,0]}, - {"in":["612f6131","612f6232","6134","6231","6332","6334","652f6636","662f6635"],"result":"ok","paths":[0,0]}, - {"in":["f09f98802f7a","2ff09f98802f4b","61cca3cc812f61cca3cc81","4b2f65cc81"],"result":"ok","paths":[0,0]}, - {"in":["c784","65cc81","535452415353452fcea32f62","c7852f65cc81","492fc785"],"result":"R7: path 4 collides with path 1 in segment 1","paths":[4,1]}, - {"in":["622f6136","6234","632f6638"],"result":"ok","paths":[0,0]}, - {"in":["782f46462fe2808d","61"],"result":"ok","paths":[0,0]}, - {"in":["7a2fefac802f","ed959c2fc784"],"result":"ok","paths":[0,0]}, - {"in":["4b","fffe2f412fc4b0","efbd83efbd8fefbd8e"],"result":"ok","paths":[0,0]}, - {"in":["612f6432","622f6539","632f6338","6339","652f6133","6532","662f6239"],"result":"ok","paths":[0,0]}, - {"in":["eaadb02fc7842f73747261737365"],"result":"ok","paths":[0,0]}, - {"in":["53532fc3a92fe1ba9e","c7842fc3a9"],"result":"ok","paths":[0,0]}, - {"in":["7a2fe284aa2f53747261c39f65","692fefbca3efbcafefbcae"],"result":"ok","paths":[0,0]}, - {"in":["c3a92fc4b02fcf83","49","4b","42","e18ea02f61cc81e2808dcca3"],"result":"ok","paths":[0,0]}, + {"in":["737472617373652f61cca3cc812fefbca3efbcafefbcae","61622fc785"],"result":"ok","paths":[0,0]}, + {"in":["53532f6666","412e747874"],"result":"ok","paths":[0,0]}, + {"in":["6131","622f6232","6339","642f6136","652f6134","662f6435"],"result":"ok","paths":[0,0]}, + {"in":["642f6632","662f6633"],"result":"ok","paths":[0,0]}, + {"in":["eaadb0","c784"],"result":"ok","paths":[0,0]}, + {"in":["535452415353452fcea32f62","c7852f65cc81"],"result":"ok","paths":[0,0]}, + {"in":["73732f53747261c39f65","69cc872fc4b0","792f49"],"result":"ok","paths":[0,0]}, + {"in":["65cc812f69cc872fcf83","7a2f69cc872fc4b1","c786","61622ff09f98802f78","e2808d2fc4b1"],"result":"ok","paths":[0,0]}, + {"in":["612f6233","622f6530","6432","6433","652f6430","6537","662f6239"],"result":"ok","paths":[0,0]}, + {"in":["622f6638","6234","652f6336","662f6239"],"result":"ok","paths":[0,0]}, + {"in":["5353","e284aa2f53747261c39f652f","efbca3efbcafefbcae2f412e747874","efbca3efbcafefbcae2fc3a92fc4b0"],"result":"ok","paths":[0,0]}, + {"in":["622f4b"],"result":"ok","paths":[0,0]}, + {"in":["e18ea02f61cc81e2808dcca3"],"result":"ok","paths":[0,0]}, {"in":["e284aa2f61e2808c622fc4b1","692f6b","6b2fc4b12ff09f9880","69cc872ff09f9880"],"result":"R7: path 3 collides with path 1 in segment 1","paths":[3,1]}, {"in":["46462f7a","efbca3efbcafefbcae2fc4b1"],"result":"ok","paths":[0,0]}, {"in":["632f6530","642f6137","6437","652f6433","662f6630","662f6631"],"result":"ok","paths":[0,0]}, @@ -1843,7 +1852,11 @@ const pathruleVectorsJson = r''' {"in":["6133","632f6334","642f6131","642f6237","6437","6438","662f6332"],"result":"ok","paths":[0,0]}, {"in":["61e2808c622f612f53747261c39f65","61cc81e2808dcca32f6b2fc4b1","efbd9e"],"result":"ok","paths":[0,0]}, {"in":["6134","6234","6330","6435","652f6231","662f6434"],"result":"ok","paths":[0,0]}, - {"in":["c7852f41","73732fc3a92f61cc81cca3","efac802f61cc81e2808dcca32f78","69cc872fefbd9e2f61e2808c62"],"result":"ok","paths":[0,0]} + {"in":["c7852f41","73732fc3a92f61cc81cca3","efac802f61cc81e2808dcca32f78","69cc872fefbd9e2f61e2808c62"],"result":"ok","paths":[0,0]}, + {"in":["612f6339"],"result":"ok","paths":[0,0]}, + {"in":["612f6237","622f6331","632f6432","632f6534"],"result":"ok","paths":[0,0]}, + {"in":["73732f53747261c39f65"],"result":"ok","paths":[0,0]}, + {"in":["492f61cc81e2808dcca32fefbd83efbd8fefbd8e","c786","ed959c2f61cc81e2808dcca32f42","412f61cca3cc81"],"result":"ok","paths":[0,0]} ], "folders": [ {"name":"65 536 folders","prefix":"d","digits":5,"suffix":"/f","count":65536,"result":"R9: 65536 folders, more than 65535"}, @@ -1854,1204 +1867,1204 @@ const pathruleVectorsJson = r''' ], "code_points": [ [0,1,0,0], - [18,1,0,18], [65,1,0,97], [66,1,0,98], - [69,1,0,101], - [72,1,0,104], - [77,1,0,109], - [83,1,0,115], - [95,1,0,95], + [67,1,0,99], + [80,1,0,112], + [81,1,0,113], [97,1,0,97], + [114,1,0,114], [127,1,0,127], [128,1,0,128], + [144,1,0,144], [159,1,0,159], [160,1,0,160], - [166,1,0,166], + [167,1,0,167], + [172,1,0,172], [173,1,1,173], - [196,1,0,228], - [197,1,0,229], - [202,1,0,234], - [205,1,0,237], - [218,1,0,250], - [222,1,0,254], - [233,1,0,233], - [268,1,0,269], - [278,1,0,279], - [282,1,0,283], - [288,1,0,289], + [198,1,0,230], + [220,1,0,252], + [257,1,0,257], + [272,1,0,273], + [284,1,0,285], + [302,1,0,303], [304,1,0,105], [305,1,0,305], - [310,1,0,311], - [315,1,0,316], - [356,1,0,357], - [362,1,0,363], - [406,1,0,617], - [418,1,0,419], - [420,1,0,421], - [428,1,0,429], + [327,1,0,328], + [346,1,0,347], + [357,1,0,357], + [381,1,0,382], + [386,1,0,387], + [388,1,0,389], + [426,1,0,426], + [427,1,0,427], + [444,1,0,445], [453,1,0,454], - [488,1,0,489], - [498,1,0,499], - [546,1,0,547], - [548,1,0,549], - [556,1,0,557], - [573,1,0,410], - [577,1,0,578], - [586,1,0,587], - [663,1,0,663], - [809,1,0,809], - [841,1,0,841], + [459,1,0,460], + [471,1,0,472], + [483,1,0,483], + [484,1,0,485], + [490,1,0,491], + [497,1,0,499], + [506,1,0,507], + [524,1,0,525], + [526,1,0,527], + [540,1,0,541], + [541,1,0,541], + [542,1,0,543], + [571,1,0,572], + [591,1,0,591], + [601,1,0,601], + [605,1,0,605], + [632,1,0,632], + [655,1,0,655], + [749,1,0,749], + [791,1,0,791], + [880,1,0,881], + [886,1,0,887], + [887,1,0,887], [888,0,0,888], [906,1,0,943], - [907,0,0,907], - [909,0,0,909], - [919,1,0,951], + [924,1,0,956], + [926,1,0,958], + [928,1,0,960], [931,1,0,963], - [988,1,0,989], + [974,1,0,974], + [1004,1,0,1005], [1006,1,0,1007], - [1012,1,0,952], - [1015,1,0,1016], - [1024,1,0,1104], - [1027,1,0,1107], + [1016,1,0,1016], + [1022,1,0,892], + [1025,1,0,1105], + [1030,1,0,1110], [1031,1,0,1111], - [1040,1,0,1072], - [1046,1,0,1078], - [1063,1,0,1095], - [1067,1,0,1099], - [1074,1,0,1074], - [1104,1,0,1104], + [1048,1,0,1080], + [1052,1,0,1084], + [1062,1,0,1094], + [1070,1,0,1102], [1122,1,0,1123], - [1148,1,0,1149], - [1152,1,0,1153], - [1161,1,0,1161], - [1187,1,0,1187], + [1128,1,0,1129], + [1166,1,0,1167], [1192,1,0,1193], - [1194,1,0,1195], - [1198,1,0,1199], - [1221,1,0,1222], - [1286,1,0,1287], - [1300,1,0,1301], - [1304,1,0,1305], - [1327,1,0,1327], - [1338,1,0,1386], - [1342,1,0,1390], - [1350,1,0,1398], - [1358,1,0,1406], - [1359,1,0,1407], - [1366,1,0,1414], - [1423,1,0,1423], - [1518,0,0,1518], - [1521,1,0,1521], + [1205,1,0,1205], + [1216,1,0,1231], + [1223,1,0,1224], + [1238,1,0,1239], + [1250,1,0,1251], + [1252,1,0,1253], + [1265,1,0,1265], + [1283,1,0,1283], + [1284,1,0,1285], + [1294,1,0,1295], + [1330,1,0,1378], + [1334,1,0,1382], + [1354,1,0,1402], + [1357,1,0,1405], + [1361,1,0,1409], + [1425,1,0,1425], + [1488,1,0,1488], + [1511,1,0,1511], [1524,1,0,1524], - [1541,1,0,1541], - [1603,1,0,1603], - [1663,1,0,1663], - [1670,1,0,1670], - [1681,1,0,1681], + [1525,0,0,1525], + [1535,0,0,1535], + [1564,1,1,1564], + [1565,1,0,1565], + [1620,1,0,1620], + [1653,1,0,1653], [1707,1,0,1707], - [1710,1,0,1710], - [1860,1,0,1860], - [1868,0,0,1868], - [1869,1,0,1869], - [1880,1,0,1880], - [1933,1,0,1933], - [1951,1,0,1951], - [2023,1,0,2023], + [1709,1,0,1709], + [1721,1,0,1721], + [1785,1,0,1785], + [1807,1,0,1807], + [1969,1,0,1969], + [1993,1,0,1993], [2042,1,0,2042], - [2045,1,0,2045], - [2140,0,0,2140], - [2421,1,0,2421], - [2480,1,0,2480], - [2482,1,0,2482], - [2490,0,0,2490], - [2491,0,0,2491], - [2492,1,0,2492], - [2504,1,0,2504], - [2511,0,0,2511], - [2520,0,0,2520], - [2527,1,0,2527], - [2552,1,0,2552], - [2559,0,0,2559], - [2565,1,0,2565], - [2575,1,0,2575], - [2577,0,0,2577], - [2600,1,0,2600], - [2612,0,0,2612], - [2615,0,0,2615], - [2635,1,0,2635], - [2650,1,0,2650], - [2654,1,0,2654], - [2655,0,0,2655], - [2679,0,0,2679], - [2692,0,0,2692], - [2706,0,0,2706], - [2736,1,0,2736], - [2739,1,0,2739], - [2753,1,0,2753], - [2757,1,0,2757], - [2767,0,0,2767], - [2769,0,0,2769], + [2095,0,0,2095], + [2123,1,0,2123], + [2139,1,0,2139], + [2143,0,0,2143], + [2156,0,0,2156], + [2159,0,0,2159], + [2193,1,0,2193], + [2199,1,0,2199], + [2201,1,0,2201], + [2223,1,0,2223], + [2251,1,0,2251], + [2389,1,0,2389], + [2418,1,0,2418], + [2449,0,0,2449], + [2473,0,0,2473], + [2502,0,0,2502], + [2523,0,0,2523], + [2525,1,0,2525], + [2538,1,0,2538], + [2539,1,0,2539], + [2558,1,0,2558], + [2571,0,0,2571], + [2572,0,0,2572], + [2579,1,0,2579], + [2602,1,0,2602], + [2613,1,0,2613], + [2621,0,0,2621], + [2626,1,0,2626], + [2627,0,0,2627], + [2636,1,0,2636], + [2702,0,0,2702], + [2719,1,0,2719], + [2738,1,0,2738], + [2759,1,0,2759], + [2762,0,0,2762], + [2765,1,0,2765], [2783,0,0,2783], [2802,0,0,2802], + [2804,0,0,2804], + [2830,0,0,2830], + [2832,1,0,2832], + [2856,1,0,2856], [2866,1,0,2866], - [2888,1,0,2888], - [2909,1,0,2909], + [2876,1,0,2876], + [2891,1,0,2891], + [2901,1,0,2901], [2910,0,0,2910], - [2915,1,0,2915], - [2916,0,0,2916], - [2928,1,0,2928], - [2946,1,0,2946], - [2957,0,0,2957], - [2972,1,0,2972], - [2973,0,0,2973], - [2976,0,0,2976], - [2986,1,0,2986], - [3010,1,0,3010], - [3021,1,0,3021], - [3075,1,0,3075], - [3124,1,0,3124], - [3144,1,0,3144], - [3145,0,0,3145], - [3146,1,0,3146], - [3191,1,0,3191], - [3213,0,0,3213], - [3214,1,0,3214], - [3225,1,0,3225], - [3252,0,0,3252], - [3259,0,0,3259], + [2914,1,0,2914], + [2969,1,0,2969], + [2971,0,0,2971], + [2991,1,0,2991], + [3013,0,0,3013], + [3016,1,0,3016], + [3017,0,0,3017], + [3031,1,0,3031], + [3032,0,0,3032], + [3067,0,0,3067], + [3071,0,0,3071], + [3084,1,0,3084], + [3088,1,0,3088], + [3113,0,0,3113], + [3114,1,0,3114], + [3129,1,0,3129], + [3140,1,0,3140], + [3158,1,0,3158], + [3160,1,0,3160], + [3167,0,0,3167], + [3171,1,0,3171], + [3212,1,0,3212], + [3235,1,0,3235], + [3241,0,0,3241], + [3242,1,0,3242], + [3244,1,0,3244], + [3251,1,0,3251], + [3253,1,0,3253], [3260,1,0,3260], - [3269,0,0,3269], - [3273,0,0,3273], - [3285,1,0,3285], - [3286,1,0,3286], - [3287,0,0,3287], + [3268,1,0,3268], + [3274,1,0,3274], + [3280,0,0,3280], + [3294,1,0,3294], [3295,0,0,3295], - [3316,0,0,3316], - [3326,0,0,3326], - [3340,1,0,3340], - [3346,1,0,3346], - [3397,0,0,3397], - [3408,0,0,3408], - [3431,1,0,3431], - [3437,1,0,3437], - [3439,1,0,3439], - [3456,0,0,3456], - [3459,1,0,3459], - [3460,0,0,3460], + [3339,1,0,3339], + [3401,0,0,3401], + [3407,1,0,3407], + [3411,0,0,3411], + [3427,1,0,3427], + [3429,0,0,3429], + [3461,1,0,3461], + [3475,1,0,3475], [3478,1,0,3478], - [3505,1,0,3505], [3506,0,0,3506], - [3517,1,0,3517], + [3520,1,0,3520], + [3530,1,0,3530], [3531,0,0,3531], - [3535,1,0,3535], - [3603,1,0,3603], + [3540,1,0,3540], + [3585,1,0,3585], [3635,1,0,3635], - [3645,0,0,3645], - [3712,0,0,3712], + [3662,1,0,3662], + [3675,1,0,3675], + [3677,0,0,3677], [3715,0,0,3715], [3716,1,0,3716], [3717,0,0,3717], - [3749,1,0,3749], - [3750,0,0,3750], - [3775,0,0,3775], - [3790,1,0,3790], - [3792,1,0,3792], + [3722,1,0,3722], + [3723,0,0,3723], + [3751,1,0,3751], + [3774,0,0,3774], [3801,1,0,3801], - [3802,0,0,3802], - [3803,0,0,3803], - [3808,0,0,3808], - [3905,1,0,3905], - [4044,1,0,4044], - [4059,0,0,4059], - [4165,1,0,4165], - [4188,1,0,4188], - [4262,1,0,11526], + [3862,1,0,3862], + [3882,1,0,3882], + [3912,0,0,3912], + [3949,0,0,3949], + [3954,1,0,3954], + [4006,1,0,4006], + [4124,1,0,4124], + [4129,1,0,4129], + [4247,1,0,4247], + [4257,1,0,11521], + [4259,1,0,11523], + [4267,1,0,11531], [4279,1,0,11543], - [4284,1,0,11548], - [4293,1,0,11557], - [4294,0,0,4294], - [4295,1,0,11559], + [4282,1,0,11546], + [4300,0,0,4300], [4301,1,0,11565], - [4302,0,0,4302], - [4447,1,1,4447], - [4483,1,0,4483], - [4557,1,0,4557], - [4568,1,0,4568], - [4694,1,0,4694], - [4706,1,0,4706], - [4719,1,0,4719], - [4791,0,0,4791], - [4792,1,0,4792], - [4799,0,0,4799], - [4862,1,0,4862], - [4870,1,0,4870], - [4882,1,0,4882], - [4928,1,0,4928], - [4940,1,0,4940], - [4951,1,0,4951], - [4984,1,0,4984], - [4989,0,0,4989], - [5023,0,0,5023], + [4375,1,0,4375], + [4429,1,0,4429], + [4480,1,0,4480], + [4658,1,0,4658], + [4681,0,0,4681], + [4695,0,0,4695], + [4696,1,0,4696], + [4702,0,0,4702], + [4744,1,0,4744], + [4746,1,0,4746], + [4750,0,0,4750], + [4755,1,0,4755], + [4786,1,0,4786], + [4801,0,0,4801], + [4881,0,0,4881], + [4941,1,0,4941], + [4950,1,0,4950], + [4957,1,0,4957], [5024,1,0,43888], - [5031,1,0,43895], - [5032,1,0,43896], - [5050,1,0,43914], - [5065,1,0,43929], - [5084,1,0,43948], + [5029,1,0,43893], + [5042,1,0,43906], + [5053,1,0,43917], + [5057,1,0,43921], + [5060,1,0,43924], + [5061,1,0,43925], + [5062,1,0,43926], + [5074,1,0,43938], + [5083,1,0,43947], [5087,1,0,43951], - [5095,1,0,43959], - [5107,1,0,5115], - [5120,1,0,5120], - [5188,1,0,5188], - [5242,1,0,5242], - [5276,1,0,5276], - [5328,1,0,5328], - [5345,1,0,5345], - [5362,1,0,5362], - [5386,1,0,5386], - [5464,1,0,5464], - [5518,1,0,5518], - [5628,1,0,5628], - [5652,1,0,5652], - [5665,1,0,5665], - [5775,1,0,5775], - [5788,1,0,5788], - [5887,0,0,5887], - [5910,0,0,5910], - [5923,1,0,5923], - [5942,1,0,5942], - [5951,0,0,5951], - [5973,0,0,5973], - [5996,1,0,5996], + [5091,1,0,43955], + [5101,1,0,43965], + [5117,1,0,5117], + [5119,0,0,5119], + [5297,1,0,5297], + [5303,1,0,5303], + [5376,1,0,5376], + [5377,1,0,5377], + [5468,1,0,5468], + [5485,1,0,5485], + [5603,1,0,5603], + [5702,1,0,5702], + [5738,1,0,5738], + [5840,1,0,5840], + [5881,0,0,5881], + [5888,1,0,5888], + [5943,0,0,5943], + [5962,1,0,5962], + [5971,1,0,5971], + [5983,0,0,5983], [6015,0,0,6015], + [6038,1,0,6038], [6067,1,0,6067], + [6068,1,1,6068], [6070,1,0,6070], - [6117,1,0,6117], - [6144,1,0,6144], - [6166,1,0,6166], - [6208,1,0,6208], - [6219,1,0,6219], - [6304,1,0,6304], - [6399,0,0,6399], - [6444,0,0,6444], - [6448,1,0,6448], - [6467,0,0,6467], - [6476,1,0,6476], - [6509,1,0,6509], - [6527,0,0,6527], - [6572,0,0,6572], - [6576,1,0,6576], - [6617,1,0,6617], - [6623,1,0,6623], - [6686,1,0,6686], - [6781,0,0,6781], - [6799,0,0,6799], - [6850,1,0,6850], + [6080,1,0,6080], + [6094,1,0,6094], + [6121,1,0,6121], + [6138,0,0,6138], + [6146,1,0,6146], + [6209,1,0,6209], + [6293,1,0,6293], + [6402,1,0,6402], + [6430,1,0,6430], + [6446,0,0,6446], + [6447,0,0,6447], + [6510,0,0,6510], + [6512,1,0,6512], + [6521,0,0,6521], + [6581,1,0,6581], + [6610,1,0,6610], + [6654,1,0,6654], + [6782,0,0,6782], + [6828,1,0,6828], + [6842,1,0,6842], + [6868,1,0,6868], + [6872,1,0,6872], + [6892,1,0,6892], + [6912,1,0,6912], + [6925,1,0,6925], + [6926,1,0,6926], + [6951,1,0,6951], [6962,1,0,6962], - [7127,1,0,7127], - [7156,0,0,7156], - [7172,1,0,7172], - [7227,1,0,7227], + [7012,1,0,7012], + [7078,1,0,7078], + [7097,1,0,7097], + [7164,1,0,7164], + [7174,1,0,7174], + [7205,1,0,7205], + [7218,1,0,7218], + [7226,0,0,7226], [7244,0,0,7244], - [7314,1,0,4306], - [7325,1,0,4317], - [7326,1,0,4318], + [7302,1,0,7302], + [7305,1,0,7306], + [7316,1,0,4308], + [7321,1,0,4313], + [7329,1,0,4321], + [7331,1,0,4323], [7334,1,0,4326], - [7348,1,0,4340], + [7341,1,0,4333], + [7349,1,0,4341], [7352,1,0,4344], - [7353,1,0,4345], - [7355,0,0,7355], - [7356,0,0,7356], [7357,1,0,4349], [7367,1,0,7367], - [7510,1,0,7510], - [7575,1,0,7575], - [7605,1,0,7605], - [7621,1,0,7621], - [7680,1,0,7681], - [7682,1,0,7683], - [7692,1,0,7693], - [7700,1,0,7701], - [7704,1,0,7705], - [7714,1,0,7715], + [7376,1,0,7376], + [7377,1,0,7377], + [7382,1,0,7382], + [7400,1,0,7400], + [7465,1,0,7465], + [7486,1,0,7486], + [7696,1,0,7697], + [7698,1,0,7699], + [7701,1,0,7701], + [7705,1,0,7705], + [7710,1,0,7711], [7720,1,0,7721], - [7738,1,0,7739], - [7760,1,0,7761], + [7724,1,0,7725], + [7752,1,0,7753], + [7759,1,0,7759], + [7762,1,0,7763], [7770,1,0,7771], - [7772,1,0,7773], - [7777,1,0,7777], - [7778,1,0,7779], - [7808,1,0,7809], - [7818,1,0,7819], - [7824,1,0,7825], + [7782,1,0,7783], + [7790,1,0,7791], + [7798,1,0,7799], + [7810,1,0,7811], [7838,1,0,223], [7842,1,0,7843], - [7853,1,0,7853], - [7858,1,0,7859], - [7886,1,0,7887], - [7892,1,0,7893], - [7897,1,0,7897], - [7900,1,0,7901], - [7904,1,0,7905], + [7863,1,0,7863], + [7864,1,0,7865], + [7872,1,0,7873], + [7905,1,0,7905], + [7906,1,0,7907], [7908,1,0,7909], - [7926,1,0,7927], - [7934,1,0,7935], - [7945,1,0,7937], - [7947,1,0,7939], - [7976,1,0,7968], - [7979,1,0,7971], - [7982,1,0,7974], - [8002,1,0,8002], - [8018,1,0,8018], + [7916,1,0,7917], + [7924,1,0,7925], + [7943,1,0,7943], + [7958,0,0,7958], + [7960,1,0,7952], + [7966,0,0,7966], + [7978,1,0,7970], + [7980,1,0,7972], + [8005,1,0,8005], + [8012,1,0,8004], + [8014,0,0,8014], + [8015,0,0,8015], + [8016,1,0,8016], [8025,1,0,8017], - [8031,1,0,8023], - [8032,1,0,8032], - [8043,1,0,8035], - [8057,1,0,8057], - [8068,1,0,8068], - [8073,1,0,8065], - [8076,1,0,8068], - [8090,1,0,8082], - [8116,1,0,8116], - [8118,1,0,8118], - [8121,1,0,8113], - [8122,1,0,8048], - [8124,1,0,8115], - [8136,1,0,8050], - [8147,1,0,8147], - [8150,1,0,8150], + [8027,1,0,8019], + [8093,1,0,8085], + [8095,1,0,8087], + [8117,0,0,8117], + [8138,1,0,8052], [8156,0,0,8156], - [8157,1,0,8157], - [8190,1,0,8190], - [8191,0,0,8191], - [8196,1,0,8196], + [8178,1,0,8178], [8202,1,0,8202], + [8204,1,1,8204], [8205,1,1,8205], - [8225,1,0,8225], + [8208,1,0,8208], + [8219,1,0,8219], + [8226,1,0,8226], [8232,1,0,8232], - [8234,1,1,8234], - [8274,1,0,8274], + [8277,1,0,8277], [8288,1,1,8288], - [8292,1,1,8292], [8298,1,1,8298], - [8307,0,0,8307], - [8353,1,0,8353], - [8356,1,0,8356], + [8300,1,1,8300], + [8308,1,0,8308], + [8373,1,0,8373], + [8389,0,0,8389], [8399,0,0,8399], - [8433,0,0,8433], + [8402,1,0,8402], + [8427,1,0,8427], + [8463,1,0,8463], + [8478,1,0,8478], [8486,1,0,969], [8490,1,0,107], - [8519,1,0,8519], - [8533,1,0,8533], - [8549,1,0,8565], - [8551,1,0,8567], - [8558,1,0,8574], + [8498,1,0,8526], + [8512,1,0,8512], + [8554,1,0,8570], + [8556,1,0,8572], [8559,1,0,8575], - [8591,0,0,8591], - [8592,1,0,8592], - [8823,1,0,8823], - [8905,1,0,8905], - [8912,1,0,8912], - [8958,1,0,8958], - [8998,1,0,8998], - [9044,1,0,9044], - [9045,1,0,9045], - [9210,1,0,9210], - [9257,1,0,9257], - [9291,0,0,9291], + [8578,1,0,8578], + [8593,1,0,8593], + [8633,1,0,8633], + [8730,1,0,8730], + [8753,1,0,8753], + [8818,1,0,8818], + [8995,1,0,8995], + [9073,1,0,9073], + [9088,1,0,9088], + [9104,1,0,9104], + [9196,1,0,9196], + [9226,1,0,9226], + [9288,1,0,9288], + [9290,1,0,9290], + [9371,1,0,9371], + [9382,1,0,9382], + [9401,1,0,9427], + [9407,1,0,9433], [9409,1,0,9435], - [9411,1,0,9437], - [9417,1,0,9443], - [9420,1,0,9446], + [9414,1,0,9440], [9422,1,0,9448], - [9428,1,0,9428], - [9438,1,0,9438], - [9442,1,0,9442], - [9484,1,0,9484], - [9556,1,0,9556], - [9603,1,0,9603], - [9773,1,0,9773], - [9842,1,0,9842], - [9962,1,0,9962], - [9993,1,0,9993], - [10022,1,0,10022], - [10067,1,0,10067], - [10209,1,0,10209], - [10247,1,0,10247], - [10278,1,0,10278], - [10283,1,0,10283], - [10317,1,0,10317], - [10354,1,0,10354], - [10381,1,0,10381], - [10393,1,0,10393], - [10421,1,0,10421], - [10422,1,0,10422], - [10575,1,0,10575], - [10768,1,0,10768], - [10782,1,0,10782], - [10789,1,0,10789], - [10843,1,0,10843], - [10873,1,0,10873], - [10917,1,0,10917], - [10952,1,0,10952], - [11035,1,0,11035], - [11160,1,0,11160], - [11201,1,0,11201], - [11206,1,0,11206], - [11273,1,0,11321], + [9462,1,0,9462], + [9501,1,0,9501], + [9660,1,0,9660], + [9697,1,0,9697], + [9749,1,0,9749], + [9867,1,0,9867], + [10081,1,0,10081], + [10098,1,0,10098], + [10148,1,0,10148], + [10173,1,0,10173], + [10221,1,0,10221], + [10344,1,0,10344], + [10357,1,0,10357], + [10367,1,0,10367], + [10461,1,0,10461], + [10512,1,0,10512], + [10612,1,0,10612], + [10646,1,0,10646], + [10738,1,0,10738], + [10852,1,0,10852], + [11024,1,0,11024], + [11061,1,0,11061], + [11104,1,0,11104], + [11108,1,0,11108], + [11120,1,0,11120], + [11141,1,0,11141], + [11158,1,0,11158], + [11266,1,0,11314], [11274,1,0,11322], - [11282,1,0,11330], - [11292,1,0,11340], - [11300,1,0,11348], - [11303,1,0,11351], - [11305,1,0,11353], - [11367,1,0,11368], - [11390,1,0,575], - [11396,1,0,11397], - [11400,1,0,11401], + [11276,1,0,11324], + [11286,1,0,11334], + [11290,1,0,11338], + [11294,1,0,11342], + [11296,1,0,11344], + [11308,1,0,11356], + [11358,1,0,11358], + [11371,1,0,11372], + [11381,1,0,11382], [11402,1,0,11403], - [11408,1,0,11409], - [11418,1,0,11419], - [11470,1,0,11471], - [11471,1,0,11471], - [11482,1,0,11483], - [11519,1,0,11519], - [11565,1,0,11565], - [11583,1,0,11583], - [11647,1,0,11647], - [11686,1,0,11686], - [11694,1,0,11694], - [11718,1,0,11718], - [11719,0,0,11719], - [11720,1,0,11720], - [11749,1,0,11749], - [11750,1,0,11750], - [11805,1,0,11805], - [11870,0,0,11870], - [11893,0,0,11893], - [11919,1,0,11919], - [11928,1,0,11928], - [11939,1,0,11939], - [12081,1,0,12081], - [12082,1,0,12082], - [12159,1,0,12159], - [12214,1,0,12214], - [12223,1,0,12223], - [12644,1,1,12644], - [12687,0,0,12687], - [12773,1,0,12773], - [15032,1,0,15032], - [21528,1,0,21528], - [25904,1,0,25904], - [28088,1,0,28088], - [29516,1,0,29516], - [38469,1,0,38469], - [38895,1,0,38895], - [41303,1,0,41303], - [42580,1,0,42581], - [42586,1,0,42587], - [42602,1,0,42603], - [42808,1,0,42809], - [42814,1,0,42815], - [42816,1,0,42817], - [42818,1,0,42819], - [42822,1,0,42823], - [42832,1,0,42833], - [42840,1,0,42841], - [42852,1,0,42853], - [42891,1,0,42892], - [42898,1,0,42899], - [42916,1,0,42917], - [42924,1,0,609], - [42934,1,0,42935], - [42948,1,0,42900], + [11410,1,0,11411], + [11414,1,0,11415], + [11416,1,0,11417], + [11422,1,0,11423], + [11435,1,0,11435], + [11438,1,0,11439], + [11440,1,0,11441], + [11444,1,0,11445], + [11450,1,0,11451], + [11454,1,0,11455], + [11480,1,0,11481], + [11497,1,0,11497], + [11532,1,0,11532], + [11588,1,0,11588], + [11625,0,0,11625], + [11687,0,0,11687], + [11688,1,0,11688], + [11730,1,0,11730], + [11768,1,0,11768], + [11875,1,0,11875], + [11902,0,0,11902], + [11930,0,0,11930], + [12019,1,0,12019], + [12031,0,0,12031], + [12036,1,0,12036], + [12084,1,0,12084], + [12107,1,0,12107], + [12132,1,0,12132], + [12440,0,0,12440], + [12549,1,0,12549], + [12688,1,0,12688], + [13703,1,0,13703], + [14365,1,0,14365], + [14781,1,0,14781], + [16893,1,0,16893], + [18687,1,0,18687], + [19708,1,0,19708], + [23925,1,0,23925], + [29443,1,0,29443], + [33131,1,0,33131], + [33330,1,0,33330], + [33724,1,0,33724], + [35926,1,0,35926], + [36768,1,0,36768], + [42183,0,0,42183], + [42570,1,0,42571], + [42574,1,0,42575], + [42590,1,0,42591], + [42596,1,0,42597], + [42628,1,0,42629], + [42648,1,0,42649], + [42650,1,0,42651], + [42751,0,0,42751], + [42788,1,0,42789], + [42802,1,0,42803], + [42828,1,0,42829], + [42834,1,0,42835], + [42884,1,0,42885], + [42906,1,0,42907], + [42922,1,0,614], + [42928,1,0,670], + [42944,1,0,42945], [42955,1,0,612], + [42956,1,0,42957], + [42972,1,0,411], [42978,1,0,636], - [43053,0,0,43053], - [43071,0,0,43071], - [43128,0,0,43128], - [43136,1,0,43136], - [43359,1,0,43359], - [43464,1,0,43464], - [43469,1,0,43469], - [43518,1,0,43518], - [43611,0,0,43611], - [43777,1,0,43777], - [43790,1,0,43790], + [43226,0,0,43226], + [43231,0,0,43231], + [43232,1,0,43232], + [43348,0,0,43348], + [43389,0,0,43389], + [43470,0,0,43470], + [43597,1,0,43597], + [43767,0,0,43767], + [43782,1,0,43782], [43791,0,0,43791], + [43793,1,0,43793], [43888,1,0,43888], - [44015,0,0,44015], [44016,1,0,44016], - [44025,1,0,44025], [44031,0,0,44031], - [52103,1,0,52103], - [52623,1,0,52623], - [53005,1,0,53005], - [55215,0,0,55215], - [55242,0,0,55242], - [55243,1,0,55243], + [44577,1,0,44577], + [45642,1,0,45642], + [46424,1,0,46424], + [46988,1,0,46988], + [47365,1,0,47365], + [55204,0,0,55204], + [55239,0,0,55239], + [55292,0,0,55292], [55296,1,0,55296], - [55964,1,0,55964], - [56386,1,0,56386], - [56873,1,0,56873], [57343,1,0,57343], + [60843,1,0,60843], [61498,1,0,61498], - [61742,1,0,61742], - [64263,0,0,64263], - [64317,0,0,64317], + [63673,1,0,63673], + [64110,0,0,64110], + [64111,0,0,64111], + [64112,1,0,64112], [64319,0,0,64319], [64322,0,0,64322], - [64324,1,0,64324], + [64325,0,0,64325], + [64976,0,0,64976], + [65024,1,1,65024], [65039,1,1,65039], - [65131,1,0,65131], - [65136,1,0,65136], - [65141,0,0,65141], - [65278,0,0,65278], [65280,0,0,65280], - [65319,1,0,65351], - [65337,1,0,65369], - [65473,0,0,65473], - [65474,1,0,65474], + [65318,1,0,65350], + [65326,1,0,65358], + [65327,1,0,65359], + [65332,1,0,65364], + [65338,1,0,65370], + [65440,1,1,65440], + [65471,0,0,65471], [65479,1,0,65479], - [65528,0,1,65528], + [65480,0,0,65480], + [65481,0,0,65481], + [65495,1,0,65495], + [65500,1,0,65500], + [65510,1,0,65510], [65533,1,0,65533], [65534,0,0,65534], - [65536,1,0,65536], - [65548,0,0,65548], [65575,0,0,65575], - [65847,1,0,65847], - [65935,0,0,65935], - [65949,0,0,65949], - [65951,0,0,65951], - [65952,1,0,65952], - [66046,0,0,66046], - [66159,0,0,66159], - [66205,0,0,66205], - [66257,0,0,66257], - [66432,1,0,66432], - [66571,1,0,66611], - [66574,1,0,66614], - [66587,1,0,66627], - [66729,1,0,66729], - [66754,1,0,66794], - [66767,1,0,66807], - [66775,0,0,66775], - [66812,0,0,66812], - [66932,1,0,66971], - [66934,1,0,66973], - [66948,1,0,66987], - [66952,1,0,66991], - [66956,1,0,66995], - [66994,0,0,66994], + [65664,1,0,65664], + [65795,0,0,65795], + [65843,1,0,65843], + [66175,0,0,66175], + [66340,0,0,66340], + [66463,1,0,66463], + [66517,1,0,66517], + [66567,1,0,66607], + [66578,1,0,66618], + [66579,1,0,66619], + [66593,1,0,66633], + [66594,1,0,66634], + [66719,0,0,66719], + [66720,1,0,66720], + [66735,0,0,66735], + [66736,1,0,66776], + [66738,1,0,66778], + [66751,1,0,66791], + [66753,1,0,66793], + [66758,1,0,66798], + [66759,1,0,66799], + [66762,1,0,66802], + [66776,1,0,66776], + [66816,1,0,66816], + [66864,1,0,66864], + [66946,1,0,66985], + [66953,1,0,66992], + [66954,1,0,66993], + [67002,0,0,67002], [67382,1,0,67382], + [67383,0,0,67383], [67414,0,0,67414], - [67456,1,0,67456], [67461,1,0,67461], - [67463,1,0,67463], - [67504,1,0,67504], - [67519,1,0,67519], - [67589,1,0,67589], - [67592,1,0,67592], + [67506,1,0,67506], + [67593,0,0,67593], + [67640,1,0,67640], [67641,0,0,67641], + [67671,1,0,67671], + [67749,0,0,67749], + [67808,1,0,67808], [67827,0,0,67827], - [67828,1,0,67828], - [67898,0,0,67898], - [67902,0,0,67902], - [67967,0,0,67967], - [68048,0,0,68048], - [68102,1,0,68102], + [67834,0,0,67834], + [67867,1,0,67867], + [67903,1,0,67903], + [68047,1,0,68047], + [68108,1,0,68108], + [68116,0,0,68116], + [68117,1,0,68117], [68121,1,0,68121], - [68155,0,0,68155], - [68158,0,0,68158], - [68255,1,0,68255], - [68342,1,0,68342], + [68152,1,0,68152], + [68185,0,0,68185], + [68326,1,0,68326], + [68327,0,0,68327], [68351,0,0,68351], - [68409,1,0,68409], - [68438,0,0,68438], - [68497,1,0,68497], + [68509,0,0,68509], [68528,0,0,68528], - [68743,1,0,68807], - [68757,1,0,68821], + [68742,1,0,68806], + [68746,1,0,68810], + [68755,1,0,68819], + [68758,1,0,68822], + [68761,1,0,68825], + [68765,1,0,68829], + [68767,1,0,68831], [68769,1,0,68833], - [68773,1,0,68837], - [68776,1,0,68840], - [68778,1,0,68842], - [68786,1,0,68850], - [68850,1,0,68850], - [68858,1,0,68858], - [68903,1,0,68903], - [68921,1,0,68921], - [68946,1,0,68978], - [68948,1,0,68980], - [68953,1,0,68985], - [68965,1,0,68997], - [69215,0,0,69215], - [69290,0,0,69290], - [69296,1,0,69296], - [69487,0,0,69487], - [69551,0,0,69551], - [69714,1,0,69714], - [69864,1,0,69864], - [69887,0,0,69887], - [70112,0,0,70112], - [70163,1,0,70163], - [70272,1,0,70272], + [68772,1,0,68836], + [68857,0,0,68857], + [68944,1,0,68976], + [68957,1,0,68989], + [68964,1,0,68996], + [68969,1,0,68969], + [69008,0,0,69008], + [69297,1,0,69297], + [69298,0,0,69298], + [69359,0,0,69359], + [69423,0,0,69423], + [69579,1,0,69579], + [69622,1,0,69622], + [69631,0,0,69631], + [69632,1,0,69632], + [69759,1,0,69759], + [69837,1,0,69837], + [69882,0,0,69882], + [70007,0,0,70007], + [70279,0,0,70279], + [70280,1,0,70280], [70286,0,0,70286], [70302,0,0,70302], - [70303,1,0,70303], [70313,1,0,70313], [70393,1,0,70393], - [70404,0,0,70404], [70414,0,0,70414], [70418,0,0,70418], - [70452,0,0,70452], - [70487,1,0,70487], - [70488,0,0,70488], - [70502,1,0,70502], - [70511,0,0,70511], - [70517,0,0,70517], + [70458,0,0,70458], + [70501,0,0,70501], [70540,0,0,70540], [70583,1,0,70583], [70594,1,0,70594], + [70598,0,0,70598], + [70614,0,0,70614], [70615,1,0,70615], + [70864,1,0,70864], + [70873,1,0,70873], [71040,1,0,71040], - [71263,0,0,71263], - [71369,1,0,71369], - [71396,0,0,71396], - [71453,1,0,71453], - [71679,0,0,71679], - [71739,1,0,71739], - [71849,1,0,71881], - [71854,1,0,71886], - [71861,1,0,71893], - [71862,1,0,71894], - [71958,1,0,71958], + [71093,1,0,71093], + [71248,1,0,71248], + [71277,0,0,71277], + [71296,1,0,71296], + [71354,0,0,71354], + [71359,0,0,71359], + [71839,0,0,71839], + [71847,1,0,71879], + [71848,1,0,71880], + [71858,1,0,71890], + [71948,1,0,71948], [71959,0,0,71959], - [71989,1,0,71989], - [71990,0,0,71990], - [72025,1,0,72025], - [72105,0,0,72105], - [72151,1,0,72151], - [72153,0,0,72153], - [72154,1,0,72154], - [72640,1,0,72640], - [72758,1,0,72758], + [72026,0,0,72026], + [72152,0,0,72152], + [72164,1,0,72164], + [72166,0,0,72166], + [72191,0,0,72191], + [72441,0,0,72441], + [72759,0,0,72759], + [72774,0,0,72774], [72783,0,0,72783], - [72959,0,0,72959], + [72784,1,0,72784], + [72847,1,0,72847], + [72960,1,0,72960], + [72966,1,0,72966], [72970,0,0,72970], - [73015,0,0,73015], - [73018,1,0,73018], - [73039,0,0,73039], - [73119,0,0,73119], - [73135,0,0,73135], - [73136,1,0,73136], - [73179,1,0,73179], - [73194,0,0,73194], - [73306,0,0,73306], - [73488,1,0,73488], - [73489,0,0,73489], - [73534,1,0,73534], - [73563,0,0,73563], - [73664,1,0,73664], - [77823,0,0,77823], - [78333,1,0,78333], - [81105,1,0,81105], - [82943,0,0,82943], - [84089,0,0,84089], + [73014,1,0,73014], + [73019,0,0,73019], + [73065,0,0,73065], + [73106,0,0,73106], + [73129,1,0,73129], + [73209,0,0,73209], + [73490,1,0,73490], + [73649,0,0,73649], + [75675,0,0,75675], + [77712,1,0,77712], + [78909,1,0,78909], + [80886,1,0,80886], + [81637,1,0,81637], + [82205,1,0,82205], + [89381,0,0,89381], + [90425,1,0,90425], [90426,0,0,90426], - [91657,0,0,91657], - [92909,1,0,92909], - [93007,0,0,93007], - [93382,0,0,93382], - [93561,1,0,93561], - [93774,1,0,93806], - [93775,1,0,93807], - [93784,1,0,93816], - [93790,1,0,93822], - [93871,1,0,93898], - [93873,1,0,93900], - [93874,1,0,93901], - [94027,0,0,94027], - [94030,0,0,94030], + [92735,0,0,92735], + [92862,1,0,92862], + [92912,1,0,92912], + [92917,1,0,92917], + [92997,1,0,92997], + [93018,0,0,93018], + [93019,1,0,93019], + [93026,0,0,93026], + [93760,1,0,93792], + [93765,1,0,93797], + [93780,1,0,93812], + [93789,1,0,93821], + [93865,1,0,93892], + [93867,1,0,93894], + [93881,0,0,93881], [94095,1,0,94095], - [94199,0,0,94199], - [99019,1,0,99019], - [100655,1,0,100655], - [101185,1,0,101185], - [101874,1,0,101874], - [101875,0,0,101875], - [102802,0,0,102802], - [107205,0,0,107205], - [107691,0,0,107691], - [110576,1,0,110576], + [94111,1,0,94111], + [94198,1,0,94198], + [100657,1,0,100657], + [101630,0,0,101630], + [101631,1,0,101631], + [102816,1,0,102816], + [102866,1,0,102866], + [104372,0,0,104372], + [105555,0,0,105555], + [106580,0,0,106580], + [108152,0,0,108152], + [109006,0,0,109006], [110579,1,0,110579], - [110580,0,0,110580], - [110932,0,0,110932], - [112126,0,0,112126], - [112308,0,0,112308], - [112337,0,0,112337], - [113770,1,0,113770], - [113771,0,0,113771], - [113801,0,0,113801], + [110587,1,0,110587], + [110927,0,0,110927], + [110945,0,0,110945], + [110947,0,0,110947], + [110959,0,0,110959], + [111373,0,0,111373], + [113807,0,0,113807], [113820,1,0,113820], - [113827,1,1,113827], - [116139,0,0,116139], - [117473,0,0,117473], - [118480,1,0,118480], - [118481,0,0,118481], + [118457,0,0,118457], + [118458,1,0,118458], [118485,0,0,118485], - [118526,0,0,118526], - [118784,1,0,118784], - [119376,1,0,119376], - [119488,1,0,119488], - [119808,1,0,119808], + [118493,1,0,118493], + [118527,0,0,118527], + [118528,1,0,118528], + [118608,1,0,118608], + [119162,1,1,119162], + [119365,1,0,119365], + [119366,0,0,119366], + [119487,0,0,119487], + [119551,0,0,119551], + [119647,0,0,119647], + [119648,1,0,119648], + [119672,1,0,119672], + [119807,0,0,119807], + [119892,1,0,119892], [119964,1,0,119964], - [119973,1,0,119973], - [119974,1,0,119974], - [119981,0,0,119981], - [119993,1,0,119993], - [119995,1,0,119995], - [120069,1,0,120069], + [119972,0,0,119972], + [119994,0,0,119994], + [119996,0,0,119996], + [120004,0,0,120004], + [120084,1,0,120084], [120085,0,0,120085], - [120094,1,0,120094], + [120086,1,0,120086], + [120123,1,0,120123], [120128,1,0,120128], - [120134,1,0,120134], - [120135,0,0,120135], [120138,1,0,120138], [120145,0,0,120145], - [120487,0,0,120487], - [121499,1,0,121499], - [122624,1,0,122624], - [122767,0,0,122767], - [122768,1,0,122768], - [122828,0,0,122828], - [122914,0,0,122914], - [122915,1,0,122915], + [120782,1,0,120782], + [121599,0,0,121599], + [122728,1,0,122729], + [122904,1,0,122904], + [122906,0,0,122906], + [122907,1,0,122907], [122916,1,0,122916], + [122918,1,0,122918], + [122923,0,0,122923], [122989,1,0,122989], [123023,1,0,123023], - [123197,1,0,123197], - [123200,1,0,123200], - [123566,1,0,123566], - [124112,1,0,124112], - [124648,1,0,124648], - [124662,0,0,124662], + [123024,0,0,123024], + [123199,0,0,123199], + [123210,0,0,123210], + [123215,1,0,123215], + [124414,0,0,124414], + [124639,0,0,124639], [124670,1,0,124670], - [124671,1,0,124671], - [124903,0,0,124903], - [124907,1,0,124907], - [124908,0,0,124908], - [124911,0,0,124911], + [124902,1,0,124902], + [124904,1,0,124904], [124927,0,0,124927], + [125183,0,0,125183], [125184,1,0,125218], - [125192,1,0,125226], - [125197,1,0,125231], - [125201,1,0,125235], - [125214,1,0,125248], - [125263,0,0,125263], - [125274,0,0,125274], - [126002,0,0,126002], + [125193,1,0,125227], + [125199,1,0,125233], + [125202,1,0,125236], + [125278,1,0,125278], + [126496,0,0,126496], [126497,1,0,126497], - [126502,0,0,126502], - [126503,1,0,126503], [126514,1,0,126514], - [126520,0,0,126520], - [126521,1,0,126521], - [126535,1,0,126535], - [126539,1,0,126539], - [126546,1,0,126546], + [126522,0,0,126522], + [126523,1,0,126523], + [126537,1,0,126537], + [126548,1,0,126548], + [126553,1,0,126553], [126556,0,0,126556], - [126557,1,0,126557], - [126565,0,0,126565], [126579,0,0,126579], - [126583,1,0,126583], - [126601,1,0,126601], - [126651,1,0,126651], - [127019,1,0,127019], - [127135,0,0,127135], - [127503,0,0,127503], - [127547,1,0,127547], - [127552,1,0,127552], - [127584,1,0,127584], + [126580,1,0,126580], + [126584,0,0,126584], + [126591,0,0,126591], + [126592,1,0,126592], + [126603,1,0,126603], + [126635,1,0,126635], + [126704,1,0,126704], + [127020,0,0,127020], + [127152,0,0,127152], + [127167,1,0,127167], + [127294,1,0,127294], + [127461,0,0,127461], + [127568,1,0,127568], [127589,1,0,127589], - [128729,1,0,128729], - [128987,1,0,128987], - [129003,1,0,129003], - [129039,0,0,129039], - [129120,1,0,129120], - [129160,0,0,129160], - [129232,1,0,129232], - [129660,1,0,129660], - [129735,0,0,129735], - [129775,1,0,129775], - [129786,1,0,129786], - [136087,1,0,136087], - [143010,1,0,143010], - [143522,1,0,143522], - [151181,1,0,151181], - [151542,1,0,151542], - [151966,1,0,151966], - [154633,1,0,154633], - [156801,1,0,156801], - [156825,1,0,156825], - [157810,1,0,157810], - [159870,1,0,159870], - [163545,1,0,163545], - [166626,1,0,166626], - [170016,1,0,170016], - [170074,1,0,170074], - [170893,1,0,170893], - [171242,1,0,171242], - [171373,1,0,171373], - [173824,1,0,173824], - [174511,1,0,174511], - [175949,1,0,175949], - [181861,1,0,181861], - [183118,1,0,183118], - [190732,1,0,190732], - [190894,1,0,190894], - [192303,0,0,192303], - [192720,0,0,192720], + [128767,0,0,128767], + [128768,1,0,128768], + [129103,0,0,129103], + [129218,0,0,129218], + [129280,1,0,129280], + [129631,0,0,129631], + [129647,0,0,129647], + [129737,0,0,129737], + [129740,1,0,129740], + [129757,1,0,129757], + [129759,1,0,129759], + [130946,0,0,130946], + [131071,0,0,131071], + [136825,1,0,136825], + [146722,1,0,146722], + [151390,1,0,151390], + [153909,1,0,153909], + [159583,1,0,159583], + [160545,1,0,160545], + [160862,1,0,160862], + [160933,1,0,160933], + [162893,1,0,162893], + [164274,1,0,164274], + [167437,1,0,167437], + [168141,1,0,168141], + [172894,1,0,172894], + [173792,0,0,173792], + [174153,1,0,174153], + [175620,1,0,175620], + [176766,1,0,176766], + [178206,1,0,178206], + [180064,1,0,180064], + [183581,1,0,183581], + [183982,0,0,183982], + [184921,1,0,184921], + [186470,1,0,186470], + [191471,0,0,191471], + [191582,1,0,191582], + [193772,0,0,193772], + [194559,0,0,194559], [196607,0,0,196607], - [197339,1,0,197339], - [200396,1,0,200396], - [210041,1,0,210041], - [212018,0,0,212018], - [215700,0,0,215700], - [219710,0,0,219710], - [220837,0,0,220837], - [222908,0,0,222908], - [224415,0,0,224415], - [226092,0,0,226092], - [226562,0,0,226562], - [229466,0,0,229466], - [234453,0,0,234453], - [237568,0,0,237568], - [249856,1,0,249856], - [256317,1,0,256317], - [256352,1,0,256352], - [256714,1,0,256714], - [261171,1,0,261171], - [262373,0,0,262373], - [264773,0,0,264773], - [265311,0,0,265311], - [267617,0,0,267617], - [270918,0,0,270918], - [272822,0,0,272822], - [272849,0,0,272849], - [273761,0,0,273761], - [278116,0,0,278116], - [283462,0,0,283462], - [286533,0,0,286533], - [289560,0,0,289560], - [290366,0,0,290366], - [290454,0,0,290454], - [295966,0,0,295966], - [303675,0,0,303675], - [303974,0,0,303974], - [305888,0,0,305888], - [308076,0,0,308076], - [308997,0,0,308997], - [311652,0,0,311652], - [313057,0,0,313057], - [316578,0,0,316578], - [317112,0,0,317112], - [322603,0,0,322603], - [331947,0,0,331947], - [332673,0,0,332673], - [333378,0,0,333378], - [339686,0,0,339686], - [344268,0,0,344268], - [346129,0,0,346129], - [347941,0,0,347941], - [351218,0,0,351218], - [352563,0,0,352563], - [354220,0,0,354220], - [354236,0,0,354236], - [357706,0,0,357706], - [357775,0,0,357775], - [364327,0,0,364327], - [366326,0,0,366326], - [367209,0,0,367209], - [367522,0,0,367522], - [368459,0,0,368459], - [370898,0,0,370898], - [371961,0,0,371961], - [372003,0,0,372003], - [372497,0,0,372497], - [376036,0,0,376036], - [376414,0,0,376414], - [384340,0,0,384340], - [384686,0,0,384686], - [390598,0,0,390598], - [390707,0,0,390707], - [395765,0,0,395765], - [397967,0,0,397967], - [398512,0,0,398512], - [398703,0,0,398703], - [400071,0,0,400071], - [403346,0,0,403346], - [408582,0,0,408582], - [408709,0,0,408709], - [411552,0,0,411552], - [412954,0,0,412954], - [413300,0,0,413300], - [413544,0,0,413544], - [413813,0,0,413813], - [419208,0,0,419208], - [419843,0,0,419843], - [424312,0,0,424312], - [427785,0,0,427785], - [428165,0,0,428165], - [431161,0,0,431161], - [435521,0,0,435521], - [440690,0,0,440690], - [453208,0,0,453208], - [454556,0,0,454556], - [455214,0,0,455214], - [457518,0,0,457518], - [464158,0,0,464158], - [467824,0,0,467824], - [469439,0,0,469439], - [472611,0,0,472611], - [474947,0,0,474947], - [475823,0,0,475823], - [477040,0,0,477040], - [480255,0,0,480255], - [484483,0,0,484483], - [486199,0,0,486199], - [487245,0,0,487245], - [492507,0,0,492507], - [494413,0,0,494413], - [495616,0,0,495616], - [499095,0,0,499095], - [499536,0,0,499536], - [499893,0,0,499893], - [504154,0,0,504154], - [506498,0,0,506498], - [510900,0,0,510900], - [517741,0,0,517741], - [525111,0,0,525111], - [525435,0,0,525435], - [526666,0,0,526666], - [528003,0,0,528003], - [531993,0,0,531993], - [533067,0,0,533067], - [538206,0,0,538206], - [549249,0,0,549249], - [550715,0,0,550715], - [553868,0,0,553868], - [557788,0,0,557788], - [558192,0,0,558192], - [559769,0,0,559769], - [560436,0,0,560436], - [567499,0,0,567499], - [567500,0,0,567500], - [571676,0,0,571676], - [575152,0,0,575152], - [582068,0,0,582068], - [582199,0,0,582199], - [585476,0,0,585476], - [588553,0,0,588553], - [588921,0,0,588921], - [591071,0,0,591071], - [594737,0,0,594737], - [596295,0,0,596295], - [596500,0,0,596500], - [596739,0,0,596739], - [599055,0,0,599055], - [600146,0,0,600146], - [601957,0,0,601957], - [602812,0,0,602812], - [604784,0,0,604784], - [611014,0,0,611014], - [615531,0,0,615531], - [617405,0,0,617405], - [623056,0,0,623056], - [624113,0,0,624113], - [631738,0,0,631738], - [633917,0,0,633917], - [633977,0,0,633977], - [634150,0,0,634150], - [639838,0,0,639838], - [640617,0,0,640617], - [640743,0,0,640743], - [640983,0,0,640983], - [641688,0,0,641688], - [641761,0,0,641761], - [643446,0,0,643446], - [646436,0,0,646436], - [648053,0,0,648053], - [650239,0,0,650239], - [652471,0,0,652471], - [653114,0,0,653114], - [656905,0,0,656905], - [662710,0,0,662710], - [663115,0,0,663115], - [667059,0,0,667059], - [667607,0,0,667607], - [670655,0,0,670655], - [673315,0,0,673315], - [674335,0,0,674335], - [680155,0,0,680155], - [681737,0,0,681737], - [685625,0,0,685625], - [686385,0,0,686385], - [691849,0,0,691849], - [692884,0,0,692884], - [695363,0,0,695363], - [698120,0,0,698120], - [699958,0,0,699958], - [700970,0,0,700970], - [703058,0,0,703058], - [708655,0,0,708655], - [713895,0,0,713895], - [715297,0,0,715297], - [718610,0,0,718610], - [720110,0,0,720110], - [721699,0,0,721699], - [721888,0,0,721888], - [722741,0,0,722741], - [724096,0,0,724096], - [730603,0,0,730603], - [737336,0,0,737336], - [737682,0,0,737682], - [738115,0,0,738115], - [743753,0,0,743753], - [743839,0,0,743839], - [751998,0,0,751998], - [757060,0,0,757060], - [763345,0,0,763345], - [767878,0,0,767878], - [769753,0,0,769753], - [776985,0,0,776985], - [779147,0,0,779147], - [793316,0,0,793316], - [806923,0,0,806923], - [810512,0,0,810512], - [811509,0,0,811509], - [812517,0,0,812517], - [812700,0,0,812700], - [813005,0,0,813005], - [816805,0,0,816805], - [823307,0,0,823307], - [825831,0,0,825831], - [826502,0,0,826502], - [826704,0,0,826704], - [834657,0,0,834657], - [835134,0,0,835134], - [837310,0,0,837310], - [838361,0,0,838361], - [841169,0,0,841169], - [841444,0,0,841444], - [843549,0,0,843549], - [844369,0,0,844369], - [845123,0,0,845123], - [845476,0,0,845476], - [856227,0,0,856227], - [856579,0,0,856579], - [857939,0,0,857939], - [858294,0,0,858294], - [861772,0,0,861772], - [861904,0,0,861904], - [862730,0,0,862730], - [863228,0,0,863228], - [863251,0,0,863251], - [873568,0,0,873568], - [876060,0,0,876060], - [879045,0,0,879045], - [880254,0,0,880254], - [881919,0,0,881919], - [887344,0,0,887344], - [890473,0,0,890473], - [890802,0,0,890802], - [895843,0,0,895843], - [895878,0,0,895878], - [896674,0,0,896674], - [902404,0,0,902404], - [906562,0,0,906562], - [908705,0,0,908705], - [913699,0,0,913699], - [915052,0,0,915052], - [916495,0,0,916495], - [916852,0,0,916852], + [198250,1,0,198250], + [203564,1,0,203564], + [206730,1,0,206730], + [211017,0,0,211017], + [216422,0,0,216422], + [217496,0,0,217496], + [221905,0,0,221905], + [223175,0,0,223175], + [224040,0,0,224040], + [224111,0,0,224111], + [224714,0,0,224714], + [225244,0,0,225244], + [227695,0,0,227695], + [229807,0,0,229807], + [234524,0,0,234524], + [234616,0,0,234616], + [234968,0,0,234968], + [239550,0,0,239550], + [243651,0,0,243651], + [247101,0,0,247101], + [247708,0,0,247708], + [250312,1,0,250312], + [255017,1,0,255017], + [256726,1,0,256726], + [257569,1,0,257569], + [258449,1,0,258449], + [261183,1,0,261183], + [262523,0,0,262523], + [266751,0,0,266751], + [272929,0,0,272929], + [272948,0,0,272948], + [273328,0,0,273328], + [275738,0,0,275738], + [275742,0,0,275742], + [275981,0,0,275981], + [276043,0,0,276043], + [278486,0,0,278486], + [279057,0,0,279057], + [279346,0,0,279346], + [280606,0,0,280606], + [281780,0,0,281780], + [288158,0,0,288158], + [290380,0,0,290380], + [293407,0,0,293407], + [299254,0,0,299254], + [311288,0,0,311288], + [317161,0,0,317161], + [321935,0,0,321935], + [323455,0,0,323455], + [331074,0,0,331074], + [331667,0,0,331667], + [333113,0,0,333113], + [333254,0,0,333254], + [333332,0,0,333332], + [333785,0,0,333785], + [341565,0,0,341565], + [347999,0,0,347999], + [351202,0,0,351202], + [351547,0,0,351547], + [356214,0,0,356214], + [357510,0,0,357510], + [361016,0,0,361016], + [361521,0,0,361521], + [364692,0,0,364692], + [365925,0,0,365925], + [369727,0,0,369727], + [371436,0,0,371436], + [377307,0,0,377307], + [377412,0,0,377412], + [381374,0,0,381374], + [381783,0,0,381783], + [386859,0,0,386859], + [392886,0,0,392886], + [394549,0,0,394549], + [398176,0,0,398176], + [399536,0,0,399536], + [403375,0,0,403375], + [404146,0,0,404146], + [405903,0,0,405903], + [417670,0,0,417670], + [418458,0,0,418458], + [420853,0,0,420853], + [421781,0,0,421781], + [425752,0,0,425752], + [427383,0,0,427383], + [429444,0,0,429444], + [430772,0,0,430772], + [434019,0,0,434019], + [441553,0,0,441553], + [448102,0,0,448102], + [450030,0,0,450030], + [450625,0,0,450625], + [452341,0,0,452341], + [458131,0,0,458131], + [464259,0,0,464259], + [465746,0,0,465746], + [467412,0,0,467412], + [473534,0,0,473534], + [475207,0,0,475207], + [478275,0,0,478275], + [479576,0,0,479576], + [482817,0,0,482817], + [487928,0,0,487928], + [489542,0,0,489542], + [494468,0,0,494468], + [498181,0,0,498181], + [505156,0,0,505156], + [507147,0,0,507147], + [510979,0,0,510979], + [513734,0,0,513734], + [514382,0,0,514382], + [516840,0,0,516840], + [520667,0,0,520667], + [522654,0,0,522654], + [524582,0,0,524582], + [527669,0,0,527669], + [528261,0,0,528261], + [532174,0,0,532174], + [532573,0,0,532573], + [534566,0,0,534566], + [540222,0,0,540222], + [543496,0,0,543496], + [545669,0,0,545669], + [551154,0,0,551154], + [553830,0,0,553830], + [554111,0,0,554111], + [558234,0,0,558234], + [558841,0,0,558841], + [559223,0,0,559223], + [573100,0,0,573100], + [573306,0,0,573306], + [574413,0,0,574413], + [575941,0,0,575941], + [582222,0,0,582222], + [583658,0,0,583658], + [584997,0,0,584997], + [594409,0,0,594409], + [596873,0,0,596873], + [599728,0,0,599728], + [601258,0,0,601258], + [603024,0,0,603024], + [606761,0,0,606761], + [609121,0,0,609121], + [609353,0,0,609353], + [612185,0,0,612185], + [618153,0,0,618153], + [622805,0,0,622805], + [624903,0,0,624903], + [627352,0,0,627352], + [634259,0,0,634259], + [637373,0,0,637373], + [639682,0,0,639682], + [644113,0,0,644113], + [647107,0,0,647107], + [648205,0,0,648205], + [648227,0,0,648227], + [652834,0,0,652834], + [653340,0,0,653340], + [655976,0,0,655976], + [656946,0,0,656946], + [659214,0,0,659214], + [659656,0,0,659656], + [660436,0,0,660436], + [663515,0,0,663515], + [666454,0,0,666454], + [667970,0,0,667970], + [668831,0,0,668831], + [675690,0,0,675690], + [680011,0,0,680011], + [682983,0,0,682983], + [685900,0,0,685900], + [688817,0,0,688817], + [691862,0,0,691862], + [694848,0,0,694848], + [695550,0,0,695550], + [696465,0,0,696465], + [697645,0,0,697645], + [700084,0,0,700084], + [700370,0,0,700370], + [703221,0,0,703221], + [705577,0,0,705577], + [718470,0,0,718470], + [718642,0,0,718642], + [729078,0,0,729078], + [737991,0,0,737991], + [738818,0,0,738818], + [739722,0,0,739722], + [741555,0,0,741555], + [745013,0,0,745013], + [746009,0,0,746009], + [747184,0,0,747184], + [747717,0,0,747717], + [754432,0,0,754432], + [756510,0,0,756510], + [757435,0,0,757435], + [759761,0,0,759761], + [763651,0,0,763651], + [767534,0,0,767534], + [770569,0,0,770569], + [777288,0,0,777288], + [782867,0,0,782867], + [786522,0,0,786522], + [797542,0,0,797542], + [800710,0,0,800710], + [802426,0,0,802426], + [804881,0,0,804881], + [804900,0,0,804900], + [806611,0,0,806611], + [807975,0,0,807975], + [811934,0,0,811934], + [823446,0,0,823446], + [833045,0,0,833045], + [833859,0,0,833859], + [835024,0,0,835024], + [835591,0,0,835591], + [842761,0,0,842761], + [843304,0,0,843304], + [847484,0,0,847484], + [847830,0,0,847830], + [860474,0,0,860474], + [865370,0,0,865370], + [875067,0,0,875067], + [883542,0,0,883542], + [893365,0,0,893365], + [893461,0,0,893461], + [894360,0,0,894360], + [895147,0,0,895147], + [899507,0,0,899507], + [903718,0,0,903718], + [906350,0,0,906350], + [908587,0,0,908587], + [911522,0,0,911522], + [912536,0,0,912536], [917504,0,1,917504], - [917505,1,1,917505], [917569,1,1,917569], - [919817,0,1,919817], - [921509,0,1,921509], - [922208,0,0,922208], - [924326,0,0,924326], - [926943,0,0,926943], - [927519,0,0,927519], - [939728,0,0,939728], - [947766,0,0,947766], - [954799,0,0,954799], - [960211,0,0,960211], - [962662,0,0,962662], - [967333,0,0,967333], - [967546,0,0,967546], - [969976,0,0,969976], - [970665,0,0,970665], - [977460,0,0,977460], - [980751,0,0,980751], - [981983,0,0,981983], - [982574,0,0,982574], - [983039,0,0,983039], - [983570,1,0,983570], - [984755,1,0,984755], - [985109,1,0,985109], - [988446,1,0,988446], - [989637,1,0,989637], - [990306,1,0,990306], - [995942,1,0,995942], - [997492,1,0,997492], - [998276,1,0,998276], - [998696,1,0,998696], - [1001473,1,0,1001473], - [1001940,1,0,1001940], - [1005949,1,0,1005949], - [1006367,1,0,1006367], - [1007442,1,0,1007442], - [1007862,1,0,1007862], - [1010699,1,0,1010699], - [1012454,1,0,1012454], - [1014887,1,0,1014887], - [1016764,1,0,1016764], - [1017774,1,0,1017774], - [1019791,1,0,1019791], - [1019815,1,0,1019815], - [1020127,1,0,1020127], - [1021154,1,0,1021154], - [1022844,1,0,1022844], - [1023322,1,0,1023322], - [1024293,1,0,1024293], - [1026683,1,0,1026683], - [1036276,1,0,1036276], - [1039679,1,0,1039679], - [1042495,1,0,1042495], - [1048573,1,0,1048573], - [1048574,0,0,1048574], - [1049639,1,0,1049639], - [1049713,1,0,1049713], - [1055048,1,0,1055048], - [1056259,1,0,1056259], - [1062533,1,0,1062533], - [1062715,1,0,1062715], - [1063391,1,0,1063391], - [1069503,1,0,1069503], - [1074967,1,0,1074967], - [1075853,1,0,1075853], - [1077288,1,0,1077288], - [1088410,1,0,1088410], - [1089330,1,0,1089330], - [1094410,1,0,1094410], - [1095100,1,0,1095100], - [1098306,1,0,1098306], - [1105589,1,0,1105589], - [1113809,1,0,1113809], - [1114109,1,0,1114109], + [918712,0,1,918712], + [920401,0,1,920401], + [921720,0,0,921720], + [921822,0,0,921822], + [922045,0,0,922045], + [925722,0,0,925722], + [926354,0,0,926354], + [930023,0,0,930023], + [934671,0,0,934671], + [935157,0,0,935157], + [936774,0,0,936774], + [941372,0,0,941372], + [941938,0,0,941938], + [943035,0,0,943035], + [944877,0,0,944877], + [946095,0,0,946095], + [959683,0,0,959683], + [962042,0,0,962042], + [963594,0,0,963594], + [969918,0,0,969918], + [970813,0,0,970813], + [975863,0,0,975863], + [977178,0,0,977178], + [978850,0,0,978850], + [987362,1,0,987362], + [991734,1,0,991734], + [992700,1,0,992700], + [993211,1,0,993211], + [993686,1,0,993686], + [995403,1,0,995403], + [996431,1,0,996431], + [999619,1,0,999619], + [1000143,1,0,1000143], + [1000309,1,0,1000309], + [1001600,1,0,1001600], + [1005397,1,0,1005397], + [1006314,1,0,1006314], + [1008212,1,0,1008212], + [1009657,1,0,1009657], + [1010242,1,0,1010242], + [1014233,1,0,1014233], + [1017604,1,0,1017604], + [1020370,1,0,1020370], + [1022303,1,0,1022303], + [1023493,1,0,1023493], + [1027100,1,0,1027100], + [1039779,1,0,1039779], + [1039880,1,0,1039880], + [1047814,1,0,1047814], + [1058295,1,0,1058295], + [1065139,1,0,1065139], + [1065717,1,0,1065717], + [1066193,1,0,1066193], + [1069781,1,0,1069781], + [1075880,1,0,1075880], + [1077229,1,0,1077229], + [1077406,1,0,1077406], + [1085104,1,0,1085104], + [1085393,1,0,1085393], + [1087388,1,0,1087388], + [1095555,1,0,1095555], + [1106442,1,0,1106442], + [1107151,1,0,1107151], + [1108562,1,0,1108562], + [1112214,1,0,1112214], + [1113171,1,0,1113171], + [1114110,0,0,1114110], [1114111,0,0,1114111] ], "planes": [ diff --git a/test/vectors/pathrule_vectors.json b/test/vectors/pathrule_vectors.json index 6bd9d13..76554fd 100644 --- a/test/vectors/pathrule_vectors.json +++ b/test/vectors/pathrule_vectors.json @@ -156,6 +156,19 @@ {"name":"ZWNJ alone in a line","in":"610ae2808c","path":"R4: segment 1: control U+000A","comment":"text: line 2: U+200C at the start","author":"text: control U+000A in the declared author","nfd":"610ae2808c","key":"610a"}, {"name":"an empty line","in":"610a0a62","path":"R4: segment 1: control U+000A","comment":"ok","author":"text: control U+000A in the declared author","nfd":"610a0a62","key":"610a0a62"}, {"name":"a text of bidirectional controls only","in":"e281a6e281a9","path":"R4: segment 1: invisible U+2066","comment":"text: bidirectional control U+2066","nfd":"e281a6e281a9","key":"e281a6e281a9"}, + {"name":"32 segments","in":"612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f61","path":"ok","comment":"ok","nfd":"612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f61","key":"612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f612f61"}, + {"name":"85 times U+0390 and a letter: 256 UTF-16 units after NFD","in":"ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce90ce9061","path":"R3: segment 1: its NFD is 256 UTF-16 code units, more than 255","comment":"ok","nfd":"ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc8161","key":"ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc81ceb9cc88cc8161"}, + {"name":"42 times U+1D160: 168 bytes, 252 UTF-16 units after NFD","in":"f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0","path":"ok","comment":"ok","nfd":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae","key":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae"}, + {"name":"43 times U+1D160: 172 bytes, 258 UTF-16 units after NFD","in":"f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0f09d85a0","path":"R3: segment 1: its NFD is 258 UTF-16 code units, more than 255","comment":"ok","nfd":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae","key":"f09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85aef09d8598f09d85a5f09d85ae"}, + {"name":"127 times U+00E9 and a letter: 255 bytes","in":"c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a961","path":"ok","comment":"ok","nfd":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8161","key":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8161"}, + {"name":"128 times U+00E9: 256 bytes","in":"c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9c3a9","path":"R3: segment 1: 256 bytes, more than 255","comment":"ok","nfd":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc81","key":"65cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc8165cc81"}, + {"name":"63 emoji: 252 bytes, 126 UTF-16 units","in":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","path":"ok","comment":"ok","nfd":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","key":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880"}, + {"name":"64 emoji: 256 bytes","in":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","path":"R3: segment 1: 256 bytes, more than 255","comment":"ok","nfd":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","key":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880"}, + {"name":"a base of nine runes before the tilde","in":"414243444546477e31","path":"ok","comment":"ok","nfd":"414243444546477e31","key":"616263646566677e31"}, + {"name":"an 8.3 alias with an extension of four","in":"4142434445467e312e54455854","path":"ok","comment":"ok","nfd":"4142434445467e312e54455854","key":"6162636465667e312e74657874"}, + {"name":"an 8.3 alias with an astral letter","in":"f090908042434445467e31","path":"R6b: segment 1: the segment has the form of an 8.3 alias","comment":"ok","nfd":"f090908042434445467e31","key":"f09090a862636465667e31"}, + {"name":"an 8.3 alias with an astral extension","in":"4142434445467e312ef0909080f0909081f0909082","path":"R6b: segment 1: the segment has the form of an 8.3 alias","comment":"ok","nfd":"4142434445467e312ef0909080f0909081f0909082","key":"6162636465667e312ef09090a8f09090a9f09090aa"}, + {"name":"an astral extension of four","in":"4142434445467e312ef0909080f0909081f0909082f0909083","path":"ok","comment":"ok","nfd":"4142434445467e312ef0909080f0909081f0909082f0909083","key":"6162636465667e312ef09090a8f09090a9f09090aaf09090ab"}, {"in":"434f4dc2b320202e61","path":"R6: segment 1: COM\u00b3 is a reserved device name","comment":"ok","nfd":"434f4dc2b320202e61","key":"636f6dc2b320202e61"}, {"in":"c4b1f09ea4892fc1bf42e281b9e18fa17fe0a991d594f3a0b6a2","path":"R4: segment 2: control U+007F","comment":"text: control U+007F","nfd":"c4b1f09ea4892fefbfbdefbfbd42e281b9e18fa17fe0a991d594f3a0b6a2","key":"69f09ea4ab2fefbfbdefbfbd62e281b9e18fa17fe0a991d684f3a0b6a2"}, {"in":"f09f91a7f09f9880efb88ee2808c","path":"R4b: segment 1: U+FE0E is not part of an emoji variation sequence","comment":"text: line 1: U+FE0E is not part of an emoji variation sequence","nfd":"f09f91a7f09f9880efb88ee2808c","key":"f09f91a7f09f9880"}, @@ -1410,7 +1423,6 @@ {"in":"f0afa889f09e8aaee2b7a7f096acb0","path":"ok","comment":"ok","nfd":"f0a9acb0f09e8aaee2b7a7f096acb0","key":"f0a9acb0f09e8aaee2b7a7f096acb0"}, {"in":"56","path":"ok","comment":"ok","nfd":"56","key":"76"}, {"in":"200ae29c8cefb88ef3a081bdefbfb70b40e2808df09f93ba0a0a0b3845206e612020","path":"R4: segment 1: control U+000A","comment":"text: invisible U+E007D","author":"text: control U+000A in the declared author","nfd":"200ae29c8cefb88ef3a081bdefbfb70b40e2808df09f93ba0a0a0b3845206e612020","key":"200ae29c8cf3a081bdefbfb70b40f09f93ba0a0a0b3865206e612020"}, - {"in":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","path":"R3: segment 1: 256 bytes, more than 255","comment":"ok","nfd":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880","key":"f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880f09f9880"}, {"in":"df47ffeda08063","path":"ok","comment":"ok","nfd":"efbfbd47efbfbdefbfbdefbfbdefbfbd63","key":"efbfbd67efbfbdefbfbdefbfbdefbfbd63"}, {"in":"20200d0ae29da4e2808de2808d23efb88fefb88ee29780efb88ff3a080b9f09f91a7efb88ff09f959aefb88ee2808de2ac86efb88ef3a080bff09f93a6efb88fefb88ee2808d","path":"R4: segment 1: control U+000D","comment":"text: control U+000D","nfd":"20200d0ae29da4e2808de2808d23efb88fefb88ee29780efb88ff3a080b9f09f91a7efb88ff09f959aefb88ee2808de2ac86efb88ef3a080bff09f93a6efb88fefb88ee2808d","key":"20200d0ae29da423e29780f3a080b9f09f91a7f09f959ae2ac86f3a080bff09f93a6"}, {"in":"c2c5864c","path":"ok","comment":"ok","nfd":"efbfbd6ecca74c","key":"efbfbd6ecca76c"}, @@ -1455,7 +1467,8 @@ {"in":"e28082e28081ebb2b22f3077c8a9e185b0e2808cc380e29784","path":"R6c: segment 1: code page 1250 maps the segment to one that breaks R5: the segment starts with U+0020","comment":"ok","nfd":"e28082e28083e18487e185a6e186b92f307765cca7e185b0e2808c41cc80e29784","key":"e28082e28083e18487e185a6e186b92f307765cca7e185b061cc80e29784"}, {"in":"fee284abe1b2b8712f4949401f7e2ff09f9182c785e2808d36636550e1b9af2ff096b98cc784efb88fe2b09ae2b7a4c7847e","path":"R4: segment 2: control U+001F","comment":"text: control U+001F","nfd":"efbfbd41cc8ae1b2b8712f4949401f7e2ff09f9182c785e2808d3663655074ccb12ff096b98cc784efb88fe2b09ae2b7a4c7847e","key":"efbfbd61cc8ae183b8712f6969401f7e2ff09f9182c7863663657074ccb12ff096b9acc786e2b18ae2b7a4c7867e"}, {"in":"e2b0a86c2fe284a2d697f3a1ae99f09f91a8512fefb88ec6b6362d3ef090be83e19a802fe0baba00efaaa9e1bba954e1b785","path":"R4: segment 2: unassigned U+E1B99","comment":"text: control U+0000","nfd":"e2b0a86c2fe284a2d697f3a1ae99f09f91a8512fefb88ec6b6362d3ef090be83e19a802fe0baba00e79d8a75cc9bcc8154e1b785","key":"e2b1986c2fe284a2d697f3a1ae99f09f91a8712fc6b6362d3ef090be83e19a802fe0baba00e79d8a75cc9bcc8174e1b785"}, - {"in":"6ae2808d","path":"R4b: segment 1: U+200D at the end","comment":"text: line 1: U+200D at the end","nfd":"6ae2808d","key":"6a"} + {"in":"6ae2808d","path":"R4b: segment 1: U+200D at the end","comment":"text: line 1: U+200D at the end","nfd":"6ae2808d","key":"6a"}, + {"in":"20e1848be29da4e2808defb88fe2848bf09f8c8874e2808d33ef81a30ae29aa7f09ea392e284aa370b0d0a20306b","path":"R4: segment 1: private use U+F063","comment":"text: control U+000B","author":"text: control U+000A in the declared author","nfd":"20e1848be29da4e2808defb88fe2848bf09f8c8874e2808d33ef81a30ae29aa7f09ea3924b370b0d0a20306b","key":"20e1848be29da4e2848bf09f8c887433ef81a30ae29aa7f09ea3926b370b0d0a20306b"} ], "trees": [ {"name":"three files in two folders","in":["612f62","612f63","64"],"result":"ok","paths":[0,0]}, @@ -1488,23 +1501,19 @@ {"name":"the capital sharp s and ss","in":["e1ba9e","7373"],"result":"R7: path 2 collides with path 1 in segment 1","paths":[2,1]}, {"name":"full-width CON in two cases","in":["efbca3efbcafefbcae","efbd83efbd8fefbd8e"],"result":"R7: path 2 collides with path 1 in segment 1","paths":[2,1]}, {"name":"a file, then a deeper file of the same name","in":["612f62","612f622f632f64"],"result":"R7: path 2 makes a file of path 1 a folder, or the reverse, in segment 2","paths":[2,1]}, - {"in":["622f6136","622f6339","652f6530"],"result":"ok","paths":[0,0]}, - {"in":["c4b02f53747261c39f65"],"result":"ok","paths":[0,0]}, - {"in":["c4b02f61cc81e2808dcca32fefbca3efbcafefbcae"],"result":"ok","paths":[0,0]}, - {"in":["c3a9","53532fff2f6666"],"result":"ok","paths":[0,0]}, - {"in":["622f6132","622f6134","642f6239","642f6532","652f6332","662f6535"],"result":"ok","paths":[0,0]}, - {"in":["612f6131","612f6232","6134","6231","6332","6334","652f6636","662f6635"],"result":"ok","paths":[0,0]}, - {"in":["f09f98802f7a","2ff09f98802f4b","61cca3cc812f61cca3cc81","4b2f65cc81"],"result":"ok","paths":[0,0]}, - {"in":["c784","65cc81","535452415353452fcea32f62","c7852f65cc81","492fc785"],"result":"R7: path 4 collides with path 1 in segment 1","paths":[4,1]}, - {"in":["622f6136","6234","632f6638"],"result":"ok","paths":[0,0]}, - {"in":["782f46462fe2808d","61"],"result":"ok","paths":[0,0]}, - {"in":["7a2fefac802f","ed959c2fc784"],"result":"ok","paths":[0,0]}, - {"in":["4b","fffe2f412fc4b0","efbd83efbd8fefbd8e"],"result":"ok","paths":[0,0]}, - {"in":["612f6432","622f6539","632f6338","6339","652f6133","6532","662f6239"],"result":"ok","paths":[0,0]}, - {"in":["eaadb02fc7842f73747261737365"],"result":"ok","paths":[0,0]}, - {"in":["53532fc3a92fe1ba9e","c7842fc3a9"],"result":"ok","paths":[0,0]}, - {"in":["7a2fe284aa2f53747261c39f65","692fefbca3efbcafefbcae"],"result":"ok","paths":[0,0]}, - {"in":["c3a92fc4b02fcf83","49","4b","42","e18ea02f61cc81e2808dcca3"],"result":"ok","paths":[0,0]}, + {"in":["737472617373652f61cca3cc812fefbca3efbcafefbcae","61622fc785"],"result":"ok","paths":[0,0]}, + {"in":["53532f6666","412e747874"],"result":"ok","paths":[0,0]}, + {"in":["6131","622f6232","6339","642f6136","652f6134","662f6435"],"result":"ok","paths":[0,0]}, + {"in":["642f6632","662f6633"],"result":"ok","paths":[0,0]}, + {"in":["eaadb0","c784"],"result":"ok","paths":[0,0]}, + {"in":["535452415353452fcea32f62","c7852f65cc81"],"result":"ok","paths":[0,0]}, + {"in":["73732f53747261c39f65","69cc872fc4b0","792f49"],"result":"ok","paths":[0,0]}, + {"in":["65cc812f69cc872fcf83","7a2f69cc872fc4b1","c786","61622ff09f98802f78","e2808d2fc4b1"],"result":"ok","paths":[0,0]}, + {"in":["612f6233","622f6530","6432","6433","652f6430","6537","662f6239"],"result":"ok","paths":[0,0]}, + {"in":["622f6638","6234","652f6336","662f6239"],"result":"ok","paths":[0,0]}, + {"in":["5353","e284aa2f53747261c39f652f","efbca3efbcafefbcae2f412e747874","efbca3efbcafefbcae2fc3a92fc4b0"],"result":"ok","paths":[0,0]}, + {"in":["622f4b"],"result":"ok","paths":[0,0]}, + {"in":["e18ea02f61cc81e2808dcca3"],"result":"ok","paths":[0,0]}, {"in":["e284aa2f61e2808c622fc4b1","692f6b","6b2fc4b12ff09f9880","69cc872ff09f9880"],"result":"R7: path 3 collides with path 1 in segment 1","paths":[3,1]}, {"in":["46462f7a","efbca3efbcafefbcae2fc4b1"],"result":"ok","paths":[0,0]}, {"in":["632f6530","642f6137","6437","652f6433","662f6630","662f6631"],"result":"ok","paths":[0,0]}, @@ -1837,7 +1846,11 @@ {"in":["6133","632f6334","642f6131","642f6237","6437","6438","662f6332"],"result":"ok","paths":[0,0]}, {"in":["61e2808c622f612f53747261c39f65","61cc81e2808dcca32f6b2fc4b1","efbd9e"],"result":"ok","paths":[0,0]}, {"in":["6134","6234","6330","6435","652f6231","662f6434"],"result":"ok","paths":[0,0]}, - {"in":["c7852f41","73732fc3a92f61cc81cca3","efac802f61cc81e2808dcca32f78","69cc872fefbd9e2f61e2808c62"],"result":"ok","paths":[0,0]} + {"in":["c7852f41","73732fc3a92f61cc81cca3","efac802f61cc81e2808dcca32f78","69cc872fefbd9e2f61e2808c62"],"result":"ok","paths":[0,0]}, + {"in":["612f6339"],"result":"ok","paths":[0,0]}, + {"in":["612f6237","622f6331","632f6432","632f6534"],"result":"ok","paths":[0,0]}, + {"in":["73732f53747261c39f65"],"result":"ok","paths":[0,0]}, + {"in":["492f61cc81e2808dcca32fefbd83efbd8fefbd8e","c786","ed959c2f61cc81e2808dcca32f42","412f61cca3cc81"],"result":"ok","paths":[0,0]} ], "folders": [ {"name":"65 536 folders","prefix":"d","digits":5,"suffix":"/f","count":65536,"result":"R9: 65536 folders, more than 65535"}, @@ -1848,1204 +1861,1204 @@ ], "code_points": [ [0,1,0,0], - [18,1,0,18], [65,1,0,97], [66,1,0,98], - [69,1,0,101], - [72,1,0,104], - [77,1,0,109], - [83,1,0,115], - [95,1,0,95], + [67,1,0,99], + [80,1,0,112], + [81,1,0,113], [97,1,0,97], + [114,1,0,114], [127,1,0,127], [128,1,0,128], + [144,1,0,144], [159,1,0,159], [160,1,0,160], - [166,1,0,166], + [167,1,0,167], + [172,1,0,172], [173,1,1,173], - [196,1,0,228], - [197,1,0,229], - [202,1,0,234], - [205,1,0,237], - [218,1,0,250], - [222,1,0,254], - [233,1,0,233], - [268,1,0,269], - [278,1,0,279], - [282,1,0,283], - [288,1,0,289], + [198,1,0,230], + [220,1,0,252], + [257,1,0,257], + [272,1,0,273], + [284,1,0,285], + [302,1,0,303], [304,1,0,105], [305,1,0,305], - [310,1,0,311], - [315,1,0,316], - [356,1,0,357], - [362,1,0,363], - [406,1,0,617], - [418,1,0,419], - [420,1,0,421], - [428,1,0,429], + [327,1,0,328], + [346,1,0,347], + [357,1,0,357], + [381,1,0,382], + [386,1,0,387], + [388,1,0,389], + [426,1,0,426], + [427,1,0,427], + [444,1,0,445], [453,1,0,454], - [488,1,0,489], - [498,1,0,499], - [546,1,0,547], - [548,1,0,549], - [556,1,0,557], - [573,1,0,410], - [577,1,0,578], - [586,1,0,587], - [663,1,0,663], - [809,1,0,809], - [841,1,0,841], + [459,1,0,460], + [471,1,0,472], + [483,1,0,483], + [484,1,0,485], + [490,1,0,491], + [497,1,0,499], + [506,1,0,507], + [524,1,0,525], + [526,1,0,527], + [540,1,0,541], + [541,1,0,541], + [542,1,0,543], + [571,1,0,572], + [591,1,0,591], + [601,1,0,601], + [605,1,0,605], + [632,1,0,632], + [655,1,0,655], + [749,1,0,749], + [791,1,0,791], + [880,1,0,881], + [886,1,0,887], + [887,1,0,887], [888,0,0,888], [906,1,0,943], - [907,0,0,907], - [909,0,0,909], - [919,1,0,951], + [924,1,0,956], + [926,1,0,958], + [928,1,0,960], [931,1,0,963], - [988,1,0,989], + [974,1,0,974], + [1004,1,0,1005], [1006,1,0,1007], - [1012,1,0,952], - [1015,1,0,1016], - [1024,1,0,1104], - [1027,1,0,1107], + [1016,1,0,1016], + [1022,1,0,892], + [1025,1,0,1105], + [1030,1,0,1110], [1031,1,0,1111], - [1040,1,0,1072], - [1046,1,0,1078], - [1063,1,0,1095], - [1067,1,0,1099], - [1074,1,0,1074], - [1104,1,0,1104], + [1048,1,0,1080], + [1052,1,0,1084], + [1062,1,0,1094], + [1070,1,0,1102], [1122,1,0,1123], - [1148,1,0,1149], - [1152,1,0,1153], - [1161,1,0,1161], - [1187,1,0,1187], + [1128,1,0,1129], + [1166,1,0,1167], [1192,1,0,1193], - [1194,1,0,1195], - [1198,1,0,1199], - [1221,1,0,1222], - [1286,1,0,1287], - [1300,1,0,1301], - [1304,1,0,1305], - [1327,1,0,1327], - [1338,1,0,1386], - [1342,1,0,1390], - [1350,1,0,1398], - [1358,1,0,1406], - [1359,1,0,1407], - [1366,1,0,1414], - [1423,1,0,1423], - [1518,0,0,1518], - [1521,1,0,1521], + [1205,1,0,1205], + [1216,1,0,1231], + [1223,1,0,1224], + [1238,1,0,1239], + [1250,1,0,1251], + [1252,1,0,1253], + [1265,1,0,1265], + [1283,1,0,1283], + [1284,1,0,1285], + [1294,1,0,1295], + [1330,1,0,1378], + [1334,1,0,1382], + [1354,1,0,1402], + [1357,1,0,1405], + [1361,1,0,1409], + [1425,1,0,1425], + [1488,1,0,1488], + [1511,1,0,1511], [1524,1,0,1524], - [1541,1,0,1541], - [1603,1,0,1603], - [1663,1,0,1663], - [1670,1,0,1670], - [1681,1,0,1681], + [1525,0,0,1525], + [1535,0,0,1535], + [1564,1,1,1564], + [1565,1,0,1565], + [1620,1,0,1620], + [1653,1,0,1653], [1707,1,0,1707], - [1710,1,0,1710], - [1860,1,0,1860], - [1868,0,0,1868], - [1869,1,0,1869], - [1880,1,0,1880], - [1933,1,0,1933], - [1951,1,0,1951], - [2023,1,0,2023], + [1709,1,0,1709], + [1721,1,0,1721], + [1785,1,0,1785], + [1807,1,0,1807], + [1969,1,0,1969], + [1993,1,0,1993], [2042,1,0,2042], - [2045,1,0,2045], - [2140,0,0,2140], - [2421,1,0,2421], - [2480,1,0,2480], - [2482,1,0,2482], - [2490,0,0,2490], - [2491,0,0,2491], - [2492,1,0,2492], - [2504,1,0,2504], - [2511,0,0,2511], - [2520,0,0,2520], - [2527,1,0,2527], - [2552,1,0,2552], - [2559,0,0,2559], - [2565,1,0,2565], - [2575,1,0,2575], - [2577,0,0,2577], - [2600,1,0,2600], - [2612,0,0,2612], - [2615,0,0,2615], - [2635,1,0,2635], - [2650,1,0,2650], - [2654,1,0,2654], - [2655,0,0,2655], - [2679,0,0,2679], - [2692,0,0,2692], - [2706,0,0,2706], - [2736,1,0,2736], - [2739,1,0,2739], - [2753,1,0,2753], - [2757,1,0,2757], - [2767,0,0,2767], - [2769,0,0,2769], + [2095,0,0,2095], + [2123,1,0,2123], + [2139,1,0,2139], + [2143,0,0,2143], + [2156,0,0,2156], + [2159,0,0,2159], + [2193,1,0,2193], + [2199,1,0,2199], + [2201,1,0,2201], + [2223,1,0,2223], + [2251,1,0,2251], + [2389,1,0,2389], + [2418,1,0,2418], + [2449,0,0,2449], + [2473,0,0,2473], + [2502,0,0,2502], + [2523,0,0,2523], + [2525,1,0,2525], + [2538,1,0,2538], + [2539,1,0,2539], + [2558,1,0,2558], + [2571,0,0,2571], + [2572,0,0,2572], + [2579,1,0,2579], + [2602,1,0,2602], + [2613,1,0,2613], + [2621,0,0,2621], + [2626,1,0,2626], + [2627,0,0,2627], + [2636,1,0,2636], + [2702,0,0,2702], + [2719,1,0,2719], + [2738,1,0,2738], + [2759,1,0,2759], + [2762,0,0,2762], + [2765,1,0,2765], [2783,0,0,2783], [2802,0,0,2802], + [2804,0,0,2804], + [2830,0,0,2830], + [2832,1,0,2832], + [2856,1,0,2856], [2866,1,0,2866], - [2888,1,0,2888], - [2909,1,0,2909], + [2876,1,0,2876], + [2891,1,0,2891], + [2901,1,0,2901], [2910,0,0,2910], - [2915,1,0,2915], - [2916,0,0,2916], - [2928,1,0,2928], - [2946,1,0,2946], - [2957,0,0,2957], - [2972,1,0,2972], - [2973,0,0,2973], - [2976,0,0,2976], - [2986,1,0,2986], - [3010,1,0,3010], - [3021,1,0,3021], - [3075,1,0,3075], - [3124,1,0,3124], - [3144,1,0,3144], - [3145,0,0,3145], - [3146,1,0,3146], - [3191,1,0,3191], - [3213,0,0,3213], - [3214,1,0,3214], - [3225,1,0,3225], - [3252,0,0,3252], - [3259,0,0,3259], + [2914,1,0,2914], + [2969,1,0,2969], + [2971,0,0,2971], + [2991,1,0,2991], + [3013,0,0,3013], + [3016,1,0,3016], + [3017,0,0,3017], + [3031,1,0,3031], + [3032,0,0,3032], + [3067,0,0,3067], + [3071,0,0,3071], + [3084,1,0,3084], + [3088,1,0,3088], + [3113,0,0,3113], + [3114,1,0,3114], + [3129,1,0,3129], + [3140,1,0,3140], + [3158,1,0,3158], + [3160,1,0,3160], + [3167,0,0,3167], + [3171,1,0,3171], + [3212,1,0,3212], + [3235,1,0,3235], + [3241,0,0,3241], + [3242,1,0,3242], + [3244,1,0,3244], + [3251,1,0,3251], + [3253,1,0,3253], [3260,1,0,3260], - [3269,0,0,3269], - [3273,0,0,3273], - [3285,1,0,3285], - [3286,1,0,3286], - [3287,0,0,3287], + [3268,1,0,3268], + [3274,1,0,3274], + [3280,0,0,3280], + [3294,1,0,3294], [3295,0,0,3295], - [3316,0,0,3316], - [3326,0,0,3326], - [3340,1,0,3340], - [3346,1,0,3346], - [3397,0,0,3397], - [3408,0,0,3408], - [3431,1,0,3431], - [3437,1,0,3437], - [3439,1,0,3439], - [3456,0,0,3456], - [3459,1,0,3459], - [3460,0,0,3460], + [3339,1,0,3339], + [3401,0,0,3401], + [3407,1,0,3407], + [3411,0,0,3411], + [3427,1,0,3427], + [3429,0,0,3429], + [3461,1,0,3461], + [3475,1,0,3475], [3478,1,0,3478], - [3505,1,0,3505], [3506,0,0,3506], - [3517,1,0,3517], + [3520,1,0,3520], + [3530,1,0,3530], [3531,0,0,3531], - [3535,1,0,3535], - [3603,1,0,3603], + [3540,1,0,3540], + [3585,1,0,3585], [3635,1,0,3635], - [3645,0,0,3645], - [3712,0,0,3712], + [3662,1,0,3662], + [3675,1,0,3675], + [3677,0,0,3677], [3715,0,0,3715], [3716,1,0,3716], [3717,0,0,3717], - [3749,1,0,3749], - [3750,0,0,3750], - [3775,0,0,3775], - [3790,1,0,3790], - [3792,1,0,3792], + [3722,1,0,3722], + [3723,0,0,3723], + [3751,1,0,3751], + [3774,0,0,3774], [3801,1,0,3801], - [3802,0,0,3802], - [3803,0,0,3803], - [3808,0,0,3808], - [3905,1,0,3905], - [4044,1,0,4044], - [4059,0,0,4059], - [4165,1,0,4165], - [4188,1,0,4188], - [4262,1,0,11526], + [3862,1,0,3862], + [3882,1,0,3882], + [3912,0,0,3912], + [3949,0,0,3949], + [3954,1,0,3954], + [4006,1,0,4006], + [4124,1,0,4124], + [4129,1,0,4129], + [4247,1,0,4247], + [4257,1,0,11521], + [4259,1,0,11523], + [4267,1,0,11531], [4279,1,0,11543], - [4284,1,0,11548], - [4293,1,0,11557], - [4294,0,0,4294], - [4295,1,0,11559], + [4282,1,0,11546], + [4300,0,0,4300], [4301,1,0,11565], - [4302,0,0,4302], - [4447,1,1,4447], - [4483,1,0,4483], - [4557,1,0,4557], - [4568,1,0,4568], - [4694,1,0,4694], - [4706,1,0,4706], - [4719,1,0,4719], - [4791,0,0,4791], - [4792,1,0,4792], - [4799,0,0,4799], - [4862,1,0,4862], - [4870,1,0,4870], - [4882,1,0,4882], - [4928,1,0,4928], - [4940,1,0,4940], - [4951,1,0,4951], - [4984,1,0,4984], - [4989,0,0,4989], - [5023,0,0,5023], + [4375,1,0,4375], + [4429,1,0,4429], + [4480,1,0,4480], + [4658,1,0,4658], + [4681,0,0,4681], + [4695,0,0,4695], + [4696,1,0,4696], + [4702,0,0,4702], + [4744,1,0,4744], + [4746,1,0,4746], + [4750,0,0,4750], + [4755,1,0,4755], + [4786,1,0,4786], + [4801,0,0,4801], + [4881,0,0,4881], + [4941,1,0,4941], + [4950,1,0,4950], + [4957,1,0,4957], [5024,1,0,43888], - [5031,1,0,43895], - [5032,1,0,43896], - [5050,1,0,43914], - [5065,1,0,43929], - [5084,1,0,43948], + [5029,1,0,43893], + [5042,1,0,43906], + [5053,1,0,43917], + [5057,1,0,43921], + [5060,1,0,43924], + [5061,1,0,43925], + [5062,1,0,43926], + [5074,1,0,43938], + [5083,1,0,43947], [5087,1,0,43951], - [5095,1,0,43959], - [5107,1,0,5115], - [5120,1,0,5120], - [5188,1,0,5188], - [5242,1,0,5242], - [5276,1,0,5276], - [5328,1,0,5328], - [5345,1,0,5345], - [5362,1,0,5362], - [5386,1,0,5386], - [5464,1,0,5464], - [5518,1,0,5518], - [5628,1,0,5628], - [5652,1,0,5652], - [5665,1,0,5665], - [5775,1,0,5775], - [5788,1,0,5788], - [5887,0,0,5887], - [5910,0,0,5910], - [5923,1,0,5923], - [5942,1,0,5942], - [5951,0,0,5951], - [5973,0,0,5973], - [5996,1,0,5996], + [5091,1,0,43955], + [5101,1,0,43965], + [5117,1,0,5117], + [5119,0,0,5119], + [5297,1,0,5297], + [5303,1,0,5303], + [5376,1,0,5376], + [5377,1,0,5377], + [5468,1,0,5468], + [5485,1,0,5485], + [5603,1,0,5603], + [5702,1,0,5702], + [5738,1,0,5738], + [5840,1,0,5840], + [5881,0,0,5881], + [5888,1,0,5888], + [5943,0,0,5943], + [5962,1,0,5962], + [5971,1,0,5971], + [5983,0,0,5983], [6015,0,0,6015], + [6038,1,0,6038], [6067,1,0,6067], + [6068,1,1,6068], [6070,1,0,6070], - [6117,1,0,6117], - [6144,1,0,6144], - [6166,1,0,6166], - [6208,1,0,6208], - [6219,1,0,6219], - [6304,1,0,6304], - [6399,0,0,6399], - [6444,0,0,6444], - [6448,1,0,6448], - [6467,0,0,6467], - [6476,1,0,6476], - [6509,1,0,6509], - [6527,0,0,6527], - [6572,0,0,6572], - [6576,1,0,6576], - [6617,1,0,6617], - [6623,1,0,6623], - [6686,1,0,6686], - [6781,0,0,6781], - [6799,0,0,6799], - [6850,1,0,6850], + [6080,1,0,6080], + [6094,1,0,6094], + [6121,1,0,6121], + [6138,0,0,6138], + [6146,1,0,6146], + [6209,1,0,6209], + [6293,1,0,6293], + [6402,1,0,6402], + [6430,1,0,6430], + [6446,0,0,6446], + [6447,0,0,6447], + [6510,0,0,6510], + [6512,1,0,6512], + [6521,0,0,6521], + [6581,1,0,6581], + [6610,1,0,6610], + [6654,1,0,6654], + [6782,0,0,6782], + [6828,1,0,6828], + [6842,1,0,6842], + [6868,1,0,6868], + [6872,1,0,6872], + [6892,1,0,6892], + [6912,1,0,6912], + [6925,1,0,6925], + [6926,1,0,6926], + [6951,1,0,6951], [6962,1,0,6962], - [7127,1,0,7127], - [7156,0,0,7156], - [7172,1,0,7172], - [7227,1,0,7227], + [7012,1,0,7012], + [7078,1,0,7078], + [7097,1,0,7097], + [7164,1,0,7164], + [7174,1,0,7174], + [7205,1,0,7205], + [7218,1,0,7218], + [7226,0,0,7226], [7244,0,0,7244], - [7314,1,0,4306], - [7325,1,0,4317], - [7326,1,0,4318], + [7302,1,0,7302], + [7305,1,0,7306], + [7316,1,0,4308], + [7321,1,0,4313], + [7329,1,0,4321], + [7331,1,0,4323], [7334,1,0,4326], - [7348,1,0,4340], + [7341,1,0,4333], + [7349,1,0,4341], [7352,1,0,4344], - [7353,1,0,4345], - [7355,0,0,7355], - [7356,0,0,7356], [7357,1,0,4349], [7367,1,0,7367], - [7510,1,0,7510], - [7575,1,0,7575], - [7605,1,0,7605], - [7621,1,0,7621], - [7680,1,0,7681], - [7682,1,0,7683], - [7692,1,0,7693], - [7700,1,0,7701], - [7704,1,0,7705], - [7714,1,0,7715], + [7376,1,0,7376], + [7377,1,0,7377], + [7382,1,0,7382], + [7400,1,0,7400], + [7465,1,0,7465], + [7486,1,0,7486], + [7696,1,0,7697], + [7698,1,0,7699], + [7701,1,0,7701], + [7705,1,0,7705], + [7710,1,0,7711], [7720,1,0,7721], - [7738,1,0,7739], - [7760,1,0,7761], + [7724,1,0,7725], + [7752,1,0,7753], + [7759,1,0,7759], + [7762,1,0,7763], [7770,1,0,7771], - [7772,1,0,7773], - [7777,1,0,7777], - [7778,1,0,7779], - [7808,1,0,7809], - [7818,1,0,7819], - [7824,1,0,7825], + [7782,1,0,7783], + [7790,1,0,7791], + [7798,1,0,7799], + [7810,1,0,7811], [7838,1,0,223], [7842,1,0,7843], - [7853,1,0,7853], - [7858,1,0,7859], - [7886,1,0,7887], - [7892,1,0,7893], - [7897,1,0,7897], - [7900,1,0,7901], - [7904,1,0,7905], + [7863,1,0,7863], + [7864,1,0,7865], + [7872,1,0,7873], + [7905,1,0,7905], + [7906,1,0,7907], [7908,1,0,7909], - [7926,1,0,7927], - [7934,1,0,7935], - [7945,1,0,7937], - [7947,1,0,7939], - [7976,1,0,7968], - [7979,1,0,7971], - [7982,1,0,7974], - [8002,1,0,8002], - [8018,1,0,8018], + [7916,1,0,7917], + [7924,1,0,7925], + [7943,1,0,7943], + [7958,0,0,7958], + [7960,1,0,7952], + [7966,0,0,7966], + [7978,1,0,7970], + [7980,1,0,7972], + [8005,1,0,8005], + [8012,1,0,8004], + [8014,0,0,8014], + [8015,0,0,8015], + [8016,1,0,8016], [8025,1,0,8017], - [8031,1,0,8023], - [8032,1,0,8032], - [8043,1,0,8035], - [8057,1,0,8057], - [8068,1,0,8068], - [8073,1,0,8065], - [8076,1,0,8068], - [8090,1,0,8082], - [8116,1,0,8116], - [8118,1,0,8118], - [8121,1,0,8113], - [8122,1,0,8048], - [8124,1,0,8115], - [8136,1,0,8050], - [8147,1,0,8147], - [8150,1,0,8150], + [8027,1,0,8019], + [8093,1,0,8085], + [8095,1,0,8087], + [8117,0,0,8117], + [8138,1,0,8052], [8156,0,0,8156], - [8157,1,0,8157], - [8190,1,0,8190], - [8191,0,0,8191], - [8196,1,0,8196], + [8178,1,0,8178], [8202,1,0,8202], + [8204,1,1,8204], [8205,1,1,8205], - [8225,1,0,8225], + [8208,1,0,8208], + [8219,1,0,8219], + [8226,1,0,8226], [8232,1,0,8232], - [8234,1,1,8234], - [8274,1,0,8274], + [8277,1,0,8277], [8288,1,1,8288], - [8292,1,1,8292], [8298,1,1,8298], - [8307,0,0,8307], - [8353,1,0,8353], - [8356,1,0,8356], + [8300,1,1,8300], + [8308,1,0,8308], + [8373,1,0,8373], + [8389,0,0,8389], [8399,0,0,8399], - [8433,0,0,8433], + [8402,1,0,8402], + [8427,1,0,8427], + [8463,1,0,8463], + [8478,1,0,8478], [8486,1,0,969], [8490,1,0,107], - [8519,1,0,8519], - [8533,1,0,8533], - [8549,1,0,8565], - [8551,1,0,8567], - [8558,1,0,8574], + [8498,1,0,8526], + [8512,1,0,8512], + [8554,1,0,8570], + [8556,1,0,8572], [8559,1,0,8575], - [8591,0,0,8591], - [8592,1,0,8592], - [8823,1,0,8823], - [8905,1,0,8905], - [8912,1,0,8912], - [8958,1,0,8958], - [8998,1,0,8998], - [9044,1,0,9044], - [9045,1,0,9045], - [9210,1,0,9210], - [9257,1,0,9257], - [9291,0,0,9291], + [8578,1,0,8578], + [8593,1,0,8593], + [8633,1,0,8633], + [8730,1,0,8730], + [8753,1,0,8753], + [8818,1,0,8818], + [8995,1,0,8995], + [9073,1,0,9073], + [9088,1,0,9088], + [9104,1,0,9104], + [9196,1,0,9196], + [9226,1,0,9226], + [9288,1,0,9288], + [9290,1,0,9290], + [9371,1,0,9371], + [9382,1,0,9382], + [9401,1,0,9427], + [9407,1,0,9433], [9409,1,0,9435], - [9411,1,0,9437], - [9417,1,0,9443], - [9420,1,0,9446], + [9414,1,0,9440], [9422,1,0,9448], - [9428,1,0,9428], - [9438,1,0,9438], - [9442,1,0,9442], - [9484,1,0,9484], - [9556,1,0,9556], - [9603,1,0,9603], - [9773,1,0,9773], - [9842,1,0,9842], - [9962,1,0,9962], - [9993,1,0,9993], - [10022,1,0,10022], - [10067,1,0,10067], - [10209,1,0,10209], - [10247,1,0,10247], - [10278,1,0,10278], - [10283,1,0,10283], - [10317,1,0,10317], - [10354,1,0,10354], - [10381,1,0,10381], - [10393,1,0,10393], - [10421,1,0,10421], - [10422,1,0,10422], - [10575,1,0,10575], - [10768,1,0,10768], - [10782,1,0,10782], - [10789,1,0,10789], - [10843,1,0,10843], - [10873,1,0,10873], - [10917,1,0,10917], - [10952,1,0,10952], - [11035,1,0,11035], - [11160,1,0,11160], - [11201,1,0,11201], - [11206,1,0,11206], - [11273,1,0,11321], + [9462,1,0,9462], + [9501,1,0,9501], + [9660,1,0,9660], + [9697,1,0,9697], + [9749,1,0,9749], + [9867,1,0,9867], + [10081,1,0,10081], + [10098,1,0,10098], + [10148,1,0,10148], + [10173,1,0,10173], + [10221,1,0,10221], + [10344,1,0,10344], + [10357,1,0,10357], + [10367,1,0,10367], + [10461,1,0,10461], + [10512,1,0,10512], + [10612,1,0,10612], + [10646,1,0,10646], + [10738,1,0,10738], + [10852,1,0,10852], + [11024,1,0,11024], + [11061,1,0,11061], + [11104,1,0,11104], + [11108,1,0,11108], + [11120,1,0,11120], + [11141,1,0,11141], + [11158,1,0,11158], + [11266,1,0,11314], [11274,1,0,11322], - [11282,1,0,11330], - [11292,1,0,11340], - [11300,1,0,11348], - [11303,1,0,11351], - [11305,1,0,11353], - [11367,1,0,11368], - [11390,1,0,575], - [11396,1,0,11397], - [11400,1,0,11401], + [11276,1,0,11324], + [11286,1,0,11334], + [11290,1,0,11338], + [11294,1,0,11342], + [11296,1,0,11344], + [11308,1,0,11356], + [11358,1,0,11358], + [11371,1,0,11372], + [11381,1,0,11382], [11402,1,0,11403], - [11408,1,0,11409], - [11418,1,0,11419], - [11470,1,0,11471], - [11471,1,0,11471], - [11482,1,0,11483], - [11519,1,0,11519], - [11565,1,0,11565], - [11583,1,0,11583], - [11647,1,0,11647], - [11686,1,0,11686], - [11694,1,0,11694], - [11718,1,0,11718], - [11719,0,0,11719], - [11720,1,0,11720], - [11749,1,0,11749], - [11750,1,0,11750], - [11805,1,0,11805], - [11870,0,0,11870], - [11893,0,0,11893], - [11919,1,0,11919], - [11928,1,0,11928], - [11939,1,0,11939], - [12081,1,0,12081], - [12082,1,0,12082], - [12159,1,0,12159], - [12214,1,0,12214], - [12223,1,0,12223], - [12644,1,1,12644], - [12687,0,0,12687], - [12773,1,0,12773], - [15032,1,0,15032], - [21528,1,0,21528], - [25904,1,0,25904], - [28088,1,0,28088], - [29516,1,0,29516], - [38469,1,0,38469], - [38895,1,0,38895], - [41303,1,0,41303], - [42580,1,0,42581], - [42586,1,0,42587], - [42602,1,0,42603], - [42808,1,0,42809], - [42814,1,0,42815], - [42816,1,0,42817], - [42818,1,0,42819], - [42822,1,0,42823], - [42832,1,0,42833], - [42840,1,0,42841], - [42852,1,0,42853], - [42891,1,0,42892], - [42898,1,0,42899], - [42916,1,0,42917], - [42924,1,0,609], - [42934,1,0,42935], - [42948,1,0,42900], + [11410,1,0,11411], + [11414,1,0,11415], + [11416,1,0,11417], + [11422,1,0,11423], + [11435,1,0,11435], + [11438,1,0,11439], + [11440,1,0,11441], + [11444,1,0,11445], + [11450,1,0,11451], + [11454,1,0,11455], + [11480,1,0,11481], + [11497,1,0,11497], + [11532,1,0,11532], + [11588,1,0,11588], + [11625,0,0,11625], + [11687,0,0,11687], + [11688,1,0,11688], + [11730,1,0,11730], + [11768,1,0,11768], + [11875,1,0,11875], + [11902,0,0,11902], + [11930,0,0,11930], + [12019,1,0,12019], + [12031,0,0,12031], + [12036,1,0,12036], + [12084,1,0,12084], + [12107,1,0,12107], + [12132,1,0,12132], + [12440,0,0,12440], + [12549,1,0,12549], + [12688,1,0,12688], + [13703,1,0,13703], + [14365,1,0,14365], + [14781,1,0,14781], + [16893,1,0,16893], + [18687,1,0,18687], + [19708,1,0,19708], + [23925,1,0,23925], + [29443,1,0,29443], + [33131,1,0,33131], + [33330,1,0,33330], + [33724,1,0,33724], + [35926,1,0,35926], + [36768,1,0,36768], + [42183,0,0,42183], + [42570,1,0,42571], + [42574,1,0,42575], + [42590,1,0,42591], + [42596,1,0,42597], + [42628,1,0,42629], + [42648,1,0,42649], + [42650,1,0,42651], + [42751,0,0,42751], + [42788,1,0,42789], + [42802,1,0,42803], + [42828,1,0,42829], + [42834,1,0,42835], + [42884,1,0,42885], + [42906,1,0,42907], + [42922,1,0,614], + [42928,1,0,670], + [42944,1,0,42945], [42955,1,0,612], + [42956,1,0,42957], + [42972,1,0,411], [42978,1,0,636], - [43053,0,0,43053], - [43071,0,0,43071], - [43128,0,0,43128], - [43136,1,0,43136], - [43359,1,0,43359], - [43464,1,0,43464], - [43469,1,0,43469], - [43518,1,0,43518], - [43611,0,0,43611], - [43777,1,0,43777], - [43790,1,0,43790], + [43226,0,0,43226], + [43231,0,0,43231], + [43232,1,0,43232], + [43348,0,0,43348], + [43389,0,0,43389], + [43470,0,0,43470], + [43597,1,0,43597], + [43767,0,0,43767], + [43782,1,0,43782], [43791,0,0,43791], + [43793,1,0,43793], [43888,1,0,43888], - [44015,0,0,44015], [44016,1,0,44016], - [44025,1,0,44025], [44031,0,0,44031], - [52103,1,0,52103], - [52623,1,0,52623], - [53005,1,0,53005], - [55215,0,0,55215], - [55242,0,0,55242], - [55243,1,0,55243], + [44577,1,0,44577], + [45642,1,0,45642], + [46424,1,0,46424], + [46988,1,0,46988], + [47365,1,0,47365], + [55204,0,0,55204], + [55239,0,0,55239], + [55292,0,0,55292], [55296,1,0,55296], - [55964,1,0,55964], - [56386,1,0,56386], - [56873,1,0,56873], [57343,1,0,57343], + [60843,1,0,60843], [61498,1,0,61498], - [61742,1,0,61742], - [64263,0,0,64263], - [64317,0,0,64317], + [63673,1,0,63673], + [64110,0,0,64110], + [64111,0,0,64111], + [64112,1,0,64112], [64319,0,0,64319], [64322,0,0,64322], - [64324,1,0,64324], + [64325,0,0,64325], + [64976,0,0,64976], + [65024,1,1,65024], [65039,1,1,65039], - [65131,1,0,65131], - [65136,1,0,65136], - [65141,0,0,65141], - [65278,0,0,65278], [65280,0,0,65280], - [65319,1,0,65351], - [65337,1,0,65369], - [65473,0,0,65473], - [65474,1,0,65474], + [65318,1,0,65350], + [65326,1,0,65358], + [65327,1,0,65359], + [65332,1,0,65364], + [65338,1,0,65370], + [65440,1,1,65440], + [65471,0,0,65471], [65479,1,0,65479], - [65528,0,1,65528], + [65480,0,0,65480], + [65481,0,0,65481], + [65495,1,0,65495], + [65500,1,0,65500], + [65510,1,0,65510], [65533,1,0,65533], [65534,0,0,65534], - [65536,1,0,65536], - [65548,0,0,65548], [65575,0,0,65575], - [65847,1,0,65847], - [65935,0,0,65935], - [65949,0,0,65949], - [65951,0,0,65951], - [65952,1,0,65952], - [66046,0,0,66046], - [66159,0,0,66159], - [66205,0,0,66205], - [66257,0,0,66257], - [66432,1,0,66432], - [66571,1,0,66611], - [66574,1,0,66614], - [66587,1,0,66627], - [66729,1,0,66729], - [66754,1,0,66794], - [66767,1,0,66807], - [66775,0,0,66775], - [66812,0,0,66812], - [66932,1,0,66971], - [66934,1,0,66973], - [66948,1,0,66987], - [66952,1,0,66991], - [66956,1,0,66995], - [66994,0,0,66994], + [65664,1,0,65664], + [65795,0,0,65795], + [65843,1,0,65843], + [66175,0,0,66175], + [66340,0,0,66340], + [66463,1,0,66463], + [66517,1,0,66517], + [66567,1,0,66607], + [66578,1,0,66618], + [66579,1,0,66619], + [66593,1,0,66633], + [66594,1,0,66634], + [66719,0,0,66719], + [66720,1,0,66720], + [66735,0,0,66735], + [66736,1,0,66776], + [66738,1,0,66778], + [66751,1,0,66791], + [66753,1,0,66793], + [66758,1,0,66798], + [66759,1,0,66799], + [66762,1,0,66802], + [66776,1,0,66776], + [66816,1,0,66816], + [66864,1,0,66864], + [66946,1,0,66985], + [66953,1,0,66992], + [66954,1,0,66993], + [67002,0,0,67002], [67382,1,0,67382], + [67383,0,0,67383], [67414,0,0,67414], - [67456,1,0,67456], [67461,1,0,67461], - [67463,1,0,67463], - [67504,1,0,67504], - [67519,1,0,67519], - [67589,1,0,67589], - [67592,1,0,67592], + [67506,1,0,67506], + [67593,0,0,67593], + [67640,1,0,67640], [67641,0,0,67641], + [67671,1,0,67671], + [67749,0,0,67749], + [67808,1,0,67808], [67827,0,0,67827], - [67828,1,0,67828], - [67898,0,0,67898], - [67902,0,0,67902], - [67967,0,0,67967], - [68048,0,0,68048], - [68102,1,0,68102], + [67834,0,0,67834], + [67867,1,0,67867], + [67903,1,0,67903], + [68047,1,0,68047], + [68108,1,0,68108], + [68116,0,0,68116], + [68117,1,0,68117], [68121,1,0,68121], - [68155,0,0,68155], - [68158,0,0,68158], - [68255,1,0,68255], - [68342,1,0,68342], + [68152,1,0,68152], + [68185,0,0,68185], + [68326,1,0,68326], + [68327,0,0,68327], [68351,0,0,68351], - [68409,1,0,68409], - [68438,0,0,68438], - [68497,1,0,68497], + [68509,0,0,68509], [68528,0,0,68528], - [68743,1,0,68807], - [68757,1,0,68821], + [68742,1,0,68806], + [68746,1,0,68810], + [68755,1,0,68819], + [68758,1,0,68822], + [68761,1,0,68825], + [68765,1,0,68829], + [68767,1,0,68831], [68769,1,0,68833], - [68773,1,0,68837], - [68776,1,0,68840], - [68778,1,0,68842], - [68786,1,0,68850], - [68850,1,0,68850], - [68858,1,0,68858], - [68903,1,0,68903], - [68921,1,0,68921], - [68946,1,0,68978], - [68948,1,0,68980], - [68953,1,0,68985], - [68965,1,0,68997], - [69215,0,0,69215], - [69290,0,0,69290], - [69296,1,0,69296], - [69487,0,0,69487], - [69551,0,0,69551], - [69714,1,0,69714], - [69864,1,0,69864], - [69887,0,0,69887], - [70112,0,0,70112], - [70163,1,0,70163], - [70272,1,0,70272], + [68772,1,0,68836], + [68857,0,0,68857], + [68944,1,0,68976], + [68957,1,0,68989], + [68964,1,0,68996], + [68969,1,0,68969], + [69008,0,0,69008], + [69297,1,0,69297], + [69298,0,0,69298], + [69359,0,0,69359], + [69423,0,0,69423], + [69579,1,0,69579], + [69622,1,0,69622], + [69631,0,0,69631], + [69632,1,0,69632], + [69759,1,0,69759], + [69837,1,0,69837], + [69882,0,0,69882], + [70007,0,0,70007], + [70279,0,0,70279], + [70280,1,0,70280], [70286,0,0,70286], [70302,0,0,70302], - [70303,1,0,70303], [70313,1,0,70313], [70393,1,0,70393], - [70404,0,0,70404], [70414,0,0,70414], [70418,0,0,70418], - [70452,0,0,70452], - [70487,1,0,70487], - [70488,0,0,70488], - [70502,1,0,70502], - [70511,0,0,70511], - [70517,0,0,70517], + [70458,0,0,70458], + [70501,0,0,70501], [70540,0,0,70540], [70583,1,0,70583], [70594,1,0,70594], + [70598,0,0,70598], + [70614,0,0,70614], [70615,1,0,70615], + [70864,1,0,70864], + [70873,1,0,70873], [71040,1,0,71040], - [71263,0,0,71263], - [71369,1,0,71369], - [71396,0,0,71396], - [71453,1,0,71453], - [71679,0,0,71679], - [71739,1,0,71739], - [71849,1,0,71881], - [71854,1,0,71886], - [71861,1,0,71893], - [71862,1,0,71894], - [71958,1,0,71958], + [71093,1,0,71093], + [71248,1,0,71248], + [71277,0,0,71277], + [71296,1,0,71296], + [71354,0,0,71354], + [71359,0,0,71359], + [71839,0,0,71839], + [71847,1,0,71879], + [71848,1,0,71880], + [71858,1,0,71890], + [71948,1,0,71948], [71959,0,0,71959], - [71989,1,0,71989], - [71990,0,0,71990], - [72025,1,0,72025], - [72105,0,0,72105], - [72151,1,0,72151], - [72153,0,0,72153], - [72154,1,0,72154], - [72640,1,0,72640], - [72758,1,0,72758], + [72026,0,0,72026], + [72152,0,0,72152], + [72164,1,0,72164], + [72166,0,0,72166], + [72191,0,0,72191], + [72441,0,0,72441], + [72759,0,0,72759], + [72774,0,0,72774], [72783,0,0,72783], - [72959,0,0,72959], + [72784,1,0,72784], + [72847,1,0,72847], + [72960,1,0,72960], + [72966,1,0,72966], [72970,0,0,72970], - [73015,0,0,73015], - [73018,1,0,73018], - [73039,0,0,73039], - [73119,0,0,73119], - [73135,0,0,73135], - [73136,1,0,73136], - [73179,1,0,73179], - [73194,0,0,73194], - [73306,0,0,73306], - [73488,1,0,73488], - [73489,0,0,73489], - [73534,1,0,73534], - [73563,0,0,73563], - [73664,1,0,73664], - [77823,0,0,77823], - [78333,1,0,78333], - [81105,1,0,81105], - [82943,0,0,82943], - [84089,0,0,84089], + [73014,1,0,73014], + [73019,0,0,73019], + [73065,0,0,73065], + [73106,0,0,73106], + [73129,1,0,73129], + [73209,0,0,73209], + [73490,1,0,73490], + [73649,0,0,73649], + [75675,0,0,75675], + [77712,1,0,77712], + [78909,1,0,78909], + [80886,1,0,80886], + [81637,1,0,81637], + [82205,1,0,82205], + [89381,0,0,89381], + [90425,1,0,90425], [90426,0,0,90426], - [91657,0,0,91657], - [92909,1,0,92909], - [93007,0,0,93007], - [93382,0,0,93382], - [93561,1,0,93561], - [93774,1,0,93806], - [93775,1,0,93807], - [93784,1,0,93816], - [93790,1,0,93822], - [93871,1,0,93898], - [93873,1,0,93900], - [93874,1,0,93901], - [94027,0,0,94027], - [94030,0,0,94030], + [92735,0,0,92735], + [92862,1,0,92862], + [92912,1,0,92912], + [92917,1,0,92917], + [92997,1,0,92997], + [93018,0,0,93018], + [93019,1,0,93019], + [93026,0,0,93026], + [93760,1,0,93792], + [93765,1,0,93797], + [93780,1,0,93812], + [93789,1,0,93821], + [93865,1,0,93892], + [93867,1,0,93894], + [93881,0,0,93881], [94095,1,0,94095], - [94199,0,0,94199], - [99019,1,0,99019], - [100655,1,0,100655], - [101185,1,0,101185], - [101874,1,0,101874], - [101875,0,0,101875], - [102802,0,0,102802], - [107205,0,0,107205], - [107691,0,0,107691], - [110576,1,0,110576], + [94111,1,0,94111], + [94198,1,0,94198], + [100657,1,0,100657], + [101630,0,0,101630], + [101631,1,0,101631], + [102816,1,0,102816], + [102866,1,0,102866], + [104372,0,0,104372], + [105555,0,0,105555], + [106580,0,0,106580], + [108152,0,0,108152], + [109006,0,0,109006], [110579,1,0,110579], - [110580,0,0,110580], - [110932,0,0,110932], - [112126,0,0,112126], - [112308,0,0,112308], - [112337,0,0,112337], - [113770,1,0,113770], - [113771,0,0,113771], - [113801,0,0,113801], + [110587,1,0,110587], + [110927,0,0,110927], + [110945,0,0,110945], + [110947,0,0,110947], + [110959,0,0,110959], + [111373,0,0,111373], + [113807,0,0,113807], [113820,1,0,113820], - [113827,1,1,113827], - [116139,0,0,116139], - [117473,0,0,117473], - [118480,1,0,118480], - [118481,0,0,118481], + [118457,0,0,118457], + [118458,1,0,118458], [118485,0,0,118485], - [118526,0,0,118526], - [118784,1,0,118784], - [119376,1,0,119376], - [119488,1,0,119488], - [119808,1,0,119808], + [118493,1,0,118493], + [118527,0,0,118527], + [118528,1,0,118528], + [118608,1,0,118608], + [119162,1,1,119162], + [119365,1,0,119365], + [119366,0,0,119366], + [119487,0,0,119487], + [119551,0,0,119551], + [119647,0,0,119647], + [119648,1,0,119648], + [119672,1,0,119672], + [119807,0,0,119807], + [119892,1,0,119892], [119964,1,0,119964], - [119973,1,0,119973], - [119974,1,0,119974], - [119981,0,0,119981], - [119993,1,0,119993], - [119995,1,0,119995], - [120069,1,0,120069], + [119972,0,0,119972], + [119994,0,0,119994], + [119996,0,0,119996], + [120004,0,0,120004], + [120084,1,0,120084], [120085,0,0,120085], - [120094,1,0,120094], + [120086,1,0,120086], + [120123,1,0,120123], [120128,1,0,120128], - [120134,1,0,120134], - [120135,0,0,120135], [120138,1,0,120138], [120145,0,0,120145], - [120487,0,0,120487], - [121499,1,0,121499], - [122624,1,0,122624], - [122767,0,0,122767], - [122768,1,0,122768], - [122828,0,0,122828], - [122914,0,0,122914], - [122915,1,0,122915], + [120782,1,0,120782], + [121599,0,0,121599], + [122728,1,0,122729], + [122904,1,0,122904], + [122906,0,0,122906], + [122907,1,0,122907], [122916,1,0,122916], + [122918,1,0,122918], + [122923,0,0,122923], [122989,1,0,122989], [123023,1,0,123023], - [123197,1,0,123197], - [123200,1,0,123200], - [123566,1,0,123566], - [124112,1,0,124112], - [124648,1,0,124648], - [124662,0,0,124662], + [123024,0,0,123024], + [123199,0,0,123199], + [123210,0,0,123210], + [123215,1,0,123215], + [124414,0,0,124414], + [124639,0,0,124639], [124670,1,0,124670], - [124671,1,0,124671], - [124903,0,0,124903], - [124907,1,0,124907], - [124908,0,0,124908], - [124911,0,0,124911], + [124902,1,0,124902], + [124904,1,0,124904], [124927,0,0,124927], + [125183,0,0,125183], [125184,1,0,125218], - [125192,1,0,125226], - [125197,1,0,125231], - [125201,1,0,125235], - [125214,1,0,125248], - [125263,0,0,125263], - [125274,0,0,125274], - [126002,0,0,126002], + [125193,1,0,125227], + [125199,1,0,125233], + [125202,1,0,125236], + [125278,1,0,125278], + [126496,0,0,126496], [126497,1,0,126497], - [126502,0,0,126502], - [126503,1,0,126503], [126514,1,0,126514], - [126520,0,0,126520], - [126521,1,0,126521], - [126535,1,0,126535], - [126539,1,0,126539], - [126546,1,0,126546], + [126522,0,0,126522], + [126523,1,0,126523], + [126537,1,0,126537], + [126548,1,0,126548], + [126553,1,0,126553], [126556,0,0,126556], - [126557,1,0,126557], - [126565,0,0,126565], [126579,0,0,126579], - [126583,1,0,126583], - [126601,1,0,126601], - [126651,1,0,126651], - [127019,1,0,127019], - [127135,0,0,127135], - [127503,0,0,127503], - [127547,1,0,127547], - [127552,1,0,127552], - [127584,1,0,127584], + [126580,1,0,126580], + [126584,0,0,126584], + [126591,0,0,126591], + [126592,1,0,126592], + [126603,1,0,126603], + [126635,1,0,126635], + [126704,1,0,126704], + [127020,0,0,127020], + [127152,0,0,127152], + [127167,1,0,127167], + [127294,1,0,127294], + [127461,0,0,127461], + [127568,1,0,127568], [127589,1,0,127589], - [128729,1,0,128729], - [128987,1,0,128987], - [129003,1,0,129003], - [129039,0,0,129039], - [129120,1,0,129120], - [129160,0,0,129160], - [129232,1,0,129232], - [129660,1,0,129660], - [129735,0,0,129735], - [129775,1,0,129775], - [129786,1,0,129786], - [136087,1,0,136087], - [143010,1,0,143010], - [143522,1,0,143522], - [151181,1,0,151181], - [151542,1,0,151542], - [151966,1,0,151966], - [154633,1,0,154633], - [156801,1,0,156801], - [156825,1,0,156825], - [157810,1,0,157810], - [159870,1,0,159870], - [163545,1,0,163545], - [166626,1,0,166626], - [170016,1,0,170016], - [170074,1,0,170074], - [170893,1,0,170893], - [171242,1,0,171242], - [171373,1,0,171373], - [173824,1,0,173824], - [174511,1,0,174511], - [175949,1,0,175949], - [181861,1,0,181861], - [183118,1,0,183118], - [190732,1,0,190732], - [190894,1,0,190894], - [192303,0,0,192303], - [192720,0,0,192720], + [128767,0,0,128767], + [128768,1,0,128768], + [129103,0,0,129103], + [129218,0,0,129218], + [129280,1,0,129280], + [129631,0,0,129631], + [129647,0,0,129647], + [129737,0,0,129737], + [129740,1,0,129740], + [129757,1,0,129757], + [129759,1,0,129759], + [130946,0,0,130946], + [131071,0,0,131071], + [136825,1,0,136825], + [146722,1,0,146722], + [151390,1,0,151390], + [153909,1,0,153909], + [159583,1,0,159583], + [160545,1,0,160545], + [160862,1,0,160862], + [160933,1,0,160933], + [162893,1,0,162893], + [164274,1,0,164274], + [167437,1,0,167437], + [168141,1,0,168141], + [172894,1,0,172894], + [173792,0,0,173792], + [174153,1,0,174153], + [175620,1,0,175620], + [176766,1,0,176766], + [178206,1,0,178206], + [180064,1,0,180064], + [183581,1,0,183581], + [183982,0,0,183982], + [184921,1,0,184921], + [186470,1,0,186470], + [191471,0,0,191471], + [191582,1,0,191582], + [193772,0,0,193772], + [194559,0,0,194559], [196607,0,0,196607], - [197339,1,0,197339], - [200396,1,0,200396], - [210041,1,0,210041], - [212018,0,0,212018], - [215700,0,0,215700], - [219710,0,0,219710], - [220837,0,0,220837], - [222908,0,0,222908], - [224415,0,0,224415], - [226092,0,0,226092], - [226562,0,0,226562], - [229466,0,0,229466], - [234453,0,0,234453], - [237568,0,0,237568], - [249856,1,0,249856], - [256317,1,0,256317], - [256352,1,0,256352], - [256714,1,0,256714], - [261171,1,0,261171], - [262373,0,0,262373], - [264773,0,0,264773], - [265311,0,0,265311], - [267617,0,0,267617], - [270918,0,0,270918], - [272822,0,0,272822], - [272849,0,0,272849], - [273761,0,0,273761], - [278116,0,0,278116], - [283462,0,0,283462], - [286533,0,0,286533], - [289560,0,0,289560], - [290366,0,0,290366], - [290454,0,0,290454], - [295966,0,0,295966], - [303675,0,0,303675], - [303974,0,0,303974], - [305888,0,0,305888], - [308076,0,0,308076], - [308997,0,0,308997], - [311652,0,0,311652], - [313057,0,0,313057], - [316578,0,0,316578], - [317112,0,0,317112], - [322603,0,0,322603], - [331947,0,0,331947], - [332673,0,0,332673], - [333378,0,0,333378], - [339686,0,0,339686], - [344268,0,0,344268], - [346129,0,0,346129], - [347941,0,0,347941], - [351218,0,0,351218], - [352563,0,0,352563], - [354220,0,0,354220], - [354236,0,0,354236], - [357706,0,0,357706], - [357775,0,0,357775], - [364327,0,0,364327], - [366326,0,0,366326], - [367209,0,0,367209], - [367522,0,0,367522], - [368459,0,0,368459], - [370898,0,0,370898], - [371961,0,0,371961], - [372003,0,0,372003], - [372497,0,0,372497], - [376036,0,0,376036], - [376414,0,0,376414], - [384340,0,0,384340], - [384686,0,0,384686], - [390598,0,0,390598], - [390707,0,0,390707], - [395765,0,0,395765], - [397967,0,0,397967], - [398512,0,0,398512], - [398703,0,0,398703], - [400071,0,0,400071], - [403346,0,0,403346], - [408582,0,0,408582], - [408709,0,0,408709], - [411552,0,0,411552], - [412954,0,0,412954], - [413300,0,0,413300], - [413544,0,0,413544], - [413813,0,0,413813], - [419208,0,0,419208], - [419843,0,0,419843], - [424312,0,0,424312], - [427785,0,0,427785], - [428165,0,0,428165], - [431161,0,0,431161], - [435521,0,0,435521], - [440690,0,0,440690], - [453208,0,0,453208], - [454556,0,0,454556], - [455214,0,0,455214], - [457518,0,0,457518], - [464158,0,0,464158], - [467824,0,0,467824], - [469439,0,0,469439], - [472611,0,0,472611], - [474947,0,0,474947], - [475823,0,0,475823], - [477040,0,0,477040], - [480255,0,0,480255], - [484483,0,0,484483], - [486199,0,0,486199], - [487245,0,0,487245], - [492507,0,0,492507], - [494413,0,0,494413], - [495616,0,0,495616], - [499095,0,0,499095], - [499536,0,0,499536], - [499893,0,0,499893], - [504154,0,0,504154], - [506498,0,0,506498], - [510900,0,0,510900], - [517741,0,0,517741], - [525111,0,0,525111], - [525435,0,0,525435], - [526666,0,0,526666], - [528003,0,0,528003], - [531993,0,0,531993], - [533067,0,0,533067], - [538206,0,0,538206], - [549249,0,0,549249], - [550715,0,0,550715], - [553868,0,0,553868], - [557788,0,0,557788], - [558192,0,0,558192], - [559769,0,0,559769], - [560436,0,0,560436], - [567499,0,0,567499], - [567500,0,0,567500], - [571676,0,0,571676], - [575152,0,0,575152], - [582068,0,0,582068], - [582199,0,0,582199], - [585476,0,0,585476], - [588553,0,0,588553], - [588921,0,0,588921], - [591071,0,0,591071], - [594737,0,0,594737], - [596295,0,0,596295], - [596500,0,0,596500], - [596739,0,0,596739], - [599055,0,0,599055], - [600146,0,0,600146], - [601957,0,0,601957], - [602812,0,0,602812], - [604784,0,0,604784], - [611014,0,0,611014], - [615531,0,0,615531], - [617405,0,0,617405], - [623056,0,0,623056], - [624113,0,0,624113], - [631738,0,0,631738], - [633917,0,0,633917], - [633977,0,0,633977], - [634150,0,0,634150], - [639838,0,0,639838], - [640617,0,0,640617], - [640743,0,0,640743], - [640983,0,0,640983], - [641688,0,0,641688], - [641761,0,0,641761], - [643446,0,0,643446], - [646436,0,0,646436], - [648053,0,0,648053], - [650239,0,0,650239], - [652471,0,0,652471], - [653114,0,0,653114], - [656905,0,0,656905], - [662710,0,0,662710], - [663115,0,0,663115], - [667059,0,0,667059], - [667607,0,0,667607], - [670655,0,0,670655], - [673315,0,0,673315], - [674335,0,0,674335], - [680155,0,0,680155], - [681737,0,0,681737], - [685625,0,0,685625], - [686385,0,0,686385], - [691849,0,0,691849], - [692884,0,0,692884], - [695363,0,0,695363], - [698120,0,0,698120], - [699958,0,0,699958], - [700970,0,0,700970], - [703058,0,0,703058], - [708655,0,0,708655], - [713895,0,0,713895], - [715297,0,0,715297], - [718610,0,0,718610], - [720110,0,0,720110], - [721699,0,0,721699], - [721888,0,0,721888], - [722741,0,0,722741], - [724096,0,0,724096], - [730603,0,0,730603], - [737336,0,0,737336], - [737682,0,0,737682], - [738115,0,0,738115], - [743753,0,0,743753], - [743839,0,0,743839], - [751998,0,0,751998], - [757060,0,0,757060], - [763345,0,0,763345], - [767878,0,0,767878], - [769753,0,0,769753], - [776985,0,0,776985], - [779147,0,0,779147], - [793316,0,0,793316], - [806923,0,0,806923], - [810512,0,0,810512], - [811509,0,0,811509], - [812517,0,0,812517], - [812700,0,0,812700], - [813005,0,0,813005], - [816805,0,0,816805], - [823307,0,0,823307], - [825831,0,0,825831], - [826502,0,0,826502], - [826704,0,0,826704], - [834657,0,0,834657], - [835134,0,0,835134], - [837310,0,0,837310], - [838361,0,0,838361], - [841169,0,0,841169], - [841444,0,0,841444], - [843549,0,0,843549], - [844369,0,0,844369], - [845123,0,0,845123], - [845476,0,0,845476], - [856227,0,0,856227], - [856579,0,0,856579], - [857939,0,0,857939], - [858294,0,0,858294], - [861772,0,0,861772], - [861904,0,0,861904], - [862730,0,0,862730], - [863228,0,0,863228], - [863251,0,0,863251], - [873568,0,0,873568], - [876060,0,0,876060], - [879045,0,0,879045], - [880254,0,0,880254], - [881919,0,0,881919], - [887344,0,0,887344], - [890473,0,0,890473], - [890802,0,0,890802], - [895843,0,0,895843], - [895878,0,0,895878], - [896674,0,0,896674], - [902404,0,0,902404], - [906562,0,0,906562], - [908705,0,0,908705], - [913699,0,0,913699], - [915052,0,0,915052], - [916495,0,0,916495], - [916852,0,0,916852], + [198250,1,0,198250], + [203564,1,0,203564], + [206730,1,0,206730], + [211017,0,0,211017], + [216422,0,0,216422], + [217496,0,0,217496], + [221905,0,0,221905], + [223175,0,0,223175], + [224040,0,0,224040], + [224111,0,0,224111], + [224714,0,0,224714], + [225244,0,0,225244], + [227695,0,0,227695], + [229807,0,0,229807], + [234524,0,0,234524], + [234616,0,0,234616], + [234968,0,0,234968], + [239550,0,0,239550], + [243651,0,0,243651], + [247101,0,0,247101], + [247708,0,0,247708], + [250312,1,0,250312], + [255017,1,0,255017], + [256726,1,0,256726], + [257569,1,0,257569], + [258449,1,0,258449], + [261183,1,0,261183], + [262523,0,0,262523], + [266751,0,0,266751], + [272929,0,0,272929], + [272948,0,0,272948], + [273328,0,0,273328], + [275738,0,0,275738], + [275742,0,0,275742], + [275981,0,0,275981], + [276043,0,0,276043], + [278486,0,0,278486], + [279057,0,0,279057], + [279346,0,0,279346], + [280606,0,0,280606], + [281780,0,0,281780], + [288158,0,0,288158], + [290380,0,0,290380], + [293407,0,0,293407], + [299254,0,0,299254], + [311288,0,0,311288], + [317161,0,0,317161], + [321935,0,0,321935], + [323455,0,0,323455], + [331074,0,0,331074], + [331667,0,0,331667], + [333113,0,0,333113], + [333254,0,0,333254], + [333332,0,0,333332], + [333785,0,0,333785], + [341565,0,0,341565], + [347999,0,0,347999], + [351202,0,0,351202], + [351547,0,0,351547], + [356214,0,0,356214], + [357510,0,0,357510], + [361016,0,0,361016], + [361521,0,0,361521], + [364692,0,0,364692], + [365925,0,0,365925], + [369727,0,0,369727], + [371436,0,0,371436], + [377307,0,0,377307], + [377412,0,0,377412], + [381374,0,0,381374], + [381783,0,0,381783], + [386859,0,0,386859], + [392886,0,0,392886], + [394549,0,0,394549], + [398176,0,0,398176], + [399536,0,0,399536], + [403375,0,0,403375], + [404146,0,0,404146], + [405903,0,0,405903], + [417670,0,0,417670], + [418458,0,0,418458], + [420853,0,0,420853], + [421781,0,0,421781], + [425752,0,0,425752], + [427383,0,0,427383], + [429444,0,0,429444], + [430772,0,0,430772], + [434019,0,0,434019], + [441553,0,0,441553], + [448102,0,0,448102], + [450030,0,0,450030], + [450625,0,0,450625], + [452341,0,0,452341], + [458131,0,0,458131], + [464259,0,0,464259], + [465746,0,0,465746], + [467412,0,0,467412], + [473534,0,0,473534], + [475207,0,0,475207], + [478275,0,0,478275], + [479576,0,0,479576], + [482817,0,0,482817], + [487928,0,0,487928], + [489542,0,0,489542], + [494468,0,0,494468], + [498181,0,0,498181], + [505156,0,0,505156], + [507147,0,0,507147], + [510979,0,0,510979], + [513734,0,0,513734], + [514382,0,0,514382], + [516840,0,0,516840], + [520667,0,0,520667], + [522654,0,0,522654], + [524582,0,0,524582], + [527669,0,0,527669], + [528261,0,0,528261], + [532174,0,0,532174], + [532573,0,0,532573], + [534566,0,0,534566], + [540222,0,0,540222], + [543496,0,0,543496], + [545669,0,0,545669], + [551154,0,0,551154], + [553830,0,0,553830], + [554111,0,0,554111], + [558234,0,0,558234], + [558841,0,0,558841], + [559223,0,0,559223], + [573100,0,0,573100], + [573306,0,0,573306], + [574413,0,0,574413], + [575941,0,0,575941], + [582222,0,0,582222], + [583658,0,0,583658], + [584997,0,0,584997], + [594409,0,0,594409], + [596873,0,0,596873], + [599728,0,0,599728], + [601258,0,0,601258], + [603024,0,0,603024], + [606761,0,0,606761], + [609121,0,0,609121], + [609353,0,0,609353], + [612185,0,0,612185], + [618153,0,0,618153], + [622805,0,0,622805], + [624903,0,0,624903], + [627352,0,0,627352], + [634259,0,0,634259], + [637373,0,0,637373], + [639682,0,0,639682], + [644113,0,0,644113], + [647107,0,0,647107], + [648205,0,0,648205], + [648227,0,0,648227], + [652834,0,0,652834], + [653340,0,0,653340], + [655976,0,0,655976], + [656946,0,0,656946], + [659214,0,0,659214], + [659656,0,0,659656], + [660436,0,0,660436], + [663515,0,0,663515], + [666454,0,0,666454], + [667970,0,0,667970], + [668831,0,0,668831], + [675690,0,0,675690], + [680011,0,0,680011], + [682983,0,0,682983], + [685900,0,0,685900], + [688817,0,0,688817], + [691862,0,0,691862], + [694848,0,0,694848], + [695550,0,0,695550], + [696465,0,0,696465], + [697645,0,0,697645], + [700084,0,0,700084], + [700370,0,0,700370], + [703221,0,0,703221], + [705577,0,0,705577], + [718470,0,0,718470], + [718642,0,0,718642], + [729078,0,0,729078], + [737991,0,0,737991], + [738818,0,0,738818], + [739722,0,0,739722], + [741555,0,0,741555], + [745013,0,0,745013], + [746009,0,0,746009], + [747184,0,0,747184], + [747717,0,0,747717], + [754432,0,0,754432], + [756510,0,0,756510], + [757435,0,0,757435], + [759761,0,0,759761], + [763651,0,0,763651], + [767534,0,0,767534], + [770569,0,0,770569], + [777288,0,0,777288], + [782867,0,0,782867], + [786522,0,0,786522], + [797542,0,0,797542], + [800710,0,0,800710], + [802426,0,0,802426], + [804881,0,0,804881], + [804900,0,0,804900], + [806611,0,0,806611], + [807975,0,0,807975], + [811934,0,0,811934], + [823446,0,0,823446], + [833045,0,0,833045], + [833859,0,0,833859], + [835024,0,0,835024], + [835591,0,0,835591], + [842761,0,0,842761], + [843304,0,0,843304], + [847484,0,0,847484], + [847830,0,0,847830], + [860474,0,0,860474], + [865370,0,0,865370], + [875067,0,0,875067], + [883542,0,0,883542], + [893365,0,0,893365], + [893461,0,0,893461], + [894360,0,0,894360], + [895147,0,0,895147], + [899507,0,0,899507], + [903718,0,0,903718], + [906350,0,0,906350], + [908587,0,0,908587], + [911522,0,0,911522], + [912536,0,0,912536], [917504,0,1,917504], - [917505,1,1,917505], [917569,1,1,917569], - [919817,0,1,919817], - [921509,0,1,921509], - [922208,0,0,922208], - [924326,0,0,924326], - [926943,0,0,926943], - [927519,0,0,927519], - [939728,0,0,939728], - [947766,0,0,947766], - [954799,0,0,954799], - [960211,0,0,960211], - [962662,0,0,962662], - [967333,0,0,967333], - [967546,0,0,967546], - [969976,0,0,969976], - [970665,0,0,970665], - [977460,0,0,977460], - [980751,0,0,980751], - [981983,0,0,981983], - [982574,0,0,982574], - [983039,0,0,983039], - [983570,1,0,983570], - [984755,1,0,984755], - [985109,1,0,985109], - [988446,1,0,988446], - [989637,1,0,989637], - [990306,1,0,990306], - [995942,1,0,995942], - [997492,1,0,997492], - [998276,1,0,998276], - [998696,1,0,998696], - [1001473,1,0,1001473], - [1001940,1,0,1001940], - [1005949,1,0,1005949], - [1006367,1,0,1006367], - [1007442,1,0,1007442], - [1007862,1,0,1007862], - [1010699,1,0,1010699], - [1012454,1,0,1012454], - [1014887,1,0,1014887], - [1016764,1,0,1016764], - [1017774,1,0,1017774], - [1019791,1,0,1019791], - [1019815,1,0,1019815], - [1020127,1,0,1020127], - [1021154,1,0,1021154], - [1022844,1,0,1022844], - [1023322,1,0,1023322], - [1024293,1,0,1024293], - [1026683,1,0,1026683], - [1036276,1,0,1036276], - [1039679,1,0,1039679], - [1042495,1,0,1042495], - [1048573,1,0,1048573], - [1048574,0,0,1048574], - [1049639,1,0,1049639], - [1049713,1,0,1049713], - [1055048,1,0,1055048], - [1056259,1,0,1056259], - [1062533,1,0,1062533], - [1062715,1,0,1062715], - [1063391,1,0,1063391], - [1069503,1,0,1069503], - [1074967,1,0,1074967], - [1075853,1,0,1075853], - [1077288,1,0,1077288], - [1088410,1,0,1088410], - [1089330,1,0,1089330], - [1094410,1,0,1094410], - [1095100,1,0,1095100], - [1098306,1,0,1098306], - [1105589,1,0,1105589], - [1113809,1,0,1113809], - [1114109,1,0,1114109], + [918712,0,1,918712], + [920401,0,1,920401], + [921720,0,0,921720], + [921822,0,0,921822], + [922045,0,0,922045], + [925722,0,0,925722], + [926354,0,0,926354], + [930023,0,0,930023], + [934671,0,0,934671], + [935157,0,0,935157], + [936774,0,0,936774], + [941372,0,0,941372], + [941938,0,0,941938], + [943035,0,0,943035], + [944877,0,0,944877], + [946095,0,0,946095], + [959683,0,0,959683], + [962042,0,0,962042], + [963594,0,0,963594], + [969918,0,0,969918], + [970813,0,0,970813], + [975863,0,0,975863], + [977178,0,0,977178], + [978850,0,0,978850], + [987362,1,0,987362], + [991734,1,0,991734], + [992700,1,0,992700], + [993211,1,0,993211], + [993686,1,0,993686], + [995403,1,0,995403], + [996431,1,0,996431], + [999619,1,0,999619], + [1000143,1,0,1000143], + [1000309,1,0,1000309], + [1001600,1,0,1001600], + [1005397,1,0,1005397], + [1006314,1,0,1006314], + [1008212,1,0,1008212], + [1009657,1,0,1009657], + [1010242,1,0,1010242], + [1014233,1,0,1014233], + [1017604,1,0,1017604], + [1020370,1,0,1020370], + [1022303,1,0,1022303], + [1023493,1,0,1023493], + [1027100,1,0,1027100], + [1039779,1,0,1039779], + [1039880,1,0,1039880], + [1047814,1,0,1047814], + [1058295,1,0,1058295], + [1065139,1,0,1065139], + [1065717,1,0,1065717], + [1066193,1,0,1066193], + [1069781,1,0,1069781], + [1075880,1,0,1075880], + [1077229,1,0,1077229], + [1077406,1,0,1077406], + [1085104,1,0,1085104], + [1085393,1,0,1085393], + [1087388,1,0,1087388], + [1095555,1,0,1095555], + [1106442,1,0,1106442], + [1107151,1,0,1107151], + [1108562,1,0,1108562], + [1112214,1,0,1112214], + [1113171,1,0,1113171], + [1114110,0,0,1114110], [1114111,0,0,1114111] ], "planes": [ diff --git a/test/vectors/wordkey_vectors.g.dart b/test/vectors/wordkey_vectors.g.dart index a25b87f..e5e8fc8 100644 --- a/test/vectors/wordkey_vectors.g.dart +++ b/test/vectors/wordkey_vectors.g.dart @@ -5,7 +5,7 @@ /// The text of test/vectors/wordkey_vectors.json. const wordkeyVectorsJson = r''' { - "description": "The results of package wordkey of the Go reference (spec \u00a738.1) for lib/src/wordkey.dart; see tool/wordkey_go_vectors.go. Binary values are lower-case hex. normalize: a text and the words of wordkey.Normalize. check: words and the result of wordkey.Check, ok or the text of the error. keys: words, chain_hash, round and capsule_id; salt, the salt S of \u00a738.1; key, wordkey.Key; key_1000, the same PBKDF2-HMAC-SHA256 with 1000 iterations; recipient, that of wordkey.Identity. The first key is the vector of \u00a738.1.", + "description": "The results of package wordkey of the Go reference (spec \u00a738.1) for lib/src/wordkey.dart; see tool/wordkey_go_vectors.go. Binary values are lower-case hex. normalize: a text and the words of wordkey.Normalize. check: words and the result of wordkey.Check, ok or the text of the error. keys: words, chain_hash, round and capsule_id; password and salt, P and S of \u00a738.1; key, wordkey.Key; key_1000, the same PBKDF2-HMAC-SHA256 with 1000 iterations; recipient, that of wordkey.Identity. The first key is the vector of \u00a738.1.", "generator": "tool/wordkey_go_vectors.go, go1.26.8", "rounds": 600000, "min_words": 6, @@ -46,6 +46,9 @@ const wordkeyVectorsJson = r''' {"name":"the ideographic space","in":"756e6fe38080646f73","words":["756e6f","646f73"]}, {"name":"line and paragraph separators","in":"756e6fe280a8646f73e280a974726573","words":["756e6f","646f73","74726573"]}, {"name":"control characters that are not white space","in":"756e6f01646f737f726573","words":["756e6f01646f737f726573"]}, + {"name":"the first and the last mark of U+0300 to U+036F","in":"61cc8062cdaf63","words":["616263"]}, + {"name":"U+02FF and U+0370, around U+0300 to U+036F","in":"61cbbf62cdb063","words":["61cbbf62cdb163"]}, + {"name":"every mark of U+0300 to U+036F","in":"78cc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdaf79","words":["7879"]}, {"name":"white space 1 of \u00a738.1","in":"610962","words":["61","62"]}, {"name":"white space 2 of \u00a738.1","in":"610a62","words":["61","62"]}, {"name":"white space 3 of \u00a738.1","in":"610b62","words":["61","62"]}, @@ -407,10 +410,7 @@ const wordkeyVectorsJson = r''' {"in":"e280896d6172e28082e28085e1bd88ce94cea5cea3cea3ce95ce8ecea3c285efbd86efbd95efbd8cefbd8ce28081d790d6b0e28086e2808a7472656ee28089636166c3a9e28080efbd86efbd95efbd8cefbd8ce28084e28081c785656d616ce280a8","words":["6d6172","cebfceb4cf85cf83cf83ceb5cf85cf83","efbd86efbd95efbd8cefbd8c","d790d6b0","7472656e","63616665","efbd86efbd95efbd8cefbd8c","c786656d616c"]}, {"in":"d790d6b00ced959ceab5adec96b4e28085e2819fc285e697a5e69cace8aa9ee28081","words":["d790d6b0","e18492e185a1e186abe18480e185aee186a8e1848be185a5","e697a5e69cace8aa9e"]}, {"in":"e19a8053545241c39f45e28088","words":["73747261c39f65"]}, - {"in":"d5a1e38080e697a5e69cace8aa9e0c0ccea3ce91cea3e19a80c39fe2808109ea9f9ae28083e280886e69c3b16f094e49c3914fe2819fe19a80","words":["d5a1","e697a5e69cace8aa9e","cf83ceb1cf83","c39f","ea9f9b","6e696e6f","6e696e6f"]}, - {"in":"d28378e19a80e28083e2808670657272cdb86f2c0ae28085c28561cc81cca3e19a80e280a8e280836e69c3b16fe28088","words":["d28378","70657272cdb86f2c","61","6e696e6f"]}, - {"in":"0d6b656c76696e0be0b881e0b8b4e280af52c38953554dc389e280afc38152424f4c0b61cc81cca3e280846d6172e19a80e2b1a5e280a8f09f98800ce28081e280a9f09f9880e2808a","words":["6b656c76696e","e0b881e0b8b4","726573756d65","6172626f6c","61","6d6172","e2b1a5","f09f9880","f09f9880"]}, - {"in":"0c7665726465e280afe1bd88ce94cea5cea3cea3ce95ce8ecea30d706572726f2ce2808178cdefb88f850a","words":["7665726465","cebfceb4cf85cf83cf83ceb5cf85cf83","706572726f2c","78efbfbdefb88fefbfbd"]} + {"in":"d5a1e38080e697a5e69cace8aa9e0c0ccea3ce91cea3e19a80c39fe2808109ea9f9ae28083e280886e69c3b16f094e49c3914fe2819fe19a80","words":["d5a1","e697a5e69cace8aa9e","cf83ceb1cf83","c39f","ea9f9b","6e696e6f","6e696e6f"]} ], "check": [ {"name":"the six words of TestCheck","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"result":"ok"}, @@ -445,6 +445,11 @@ const wordkeyVectorsJson = r''' {"name":"refusals before the count","words":["616161","626262","63c2ad"],"result":"wordkey: the words hold the invisible character U+00AD"}, {"name":"empty words","words":["","","616161","626262","636363","646464","656565","666666"],"result":"ok"}, {"name":"a word of three spaces given as it is","words":["202020","626262","636363","646464","656565","666666"],"result":"ok"}, + {"name":"U+001F is a control","words":["611f62","626262","636363","646464","656565","666666"],"result":"wordkey: the words hold the control character U+001F"}, + {"name":"U+007E is not","words":["617e62","626262","636363","646464","656565","666666"],"result":"ok"}, + {"name":"U+007F is a control","words":["617f62","626262","636363","646464","656565","666666"],"result":"wordkey: the words hold the control character U+007F"}, + {"name":"U+0080 is a control","words":["61c28062","626262","636363","646464","656565","666666"],"result":"wordkey: the words hold the control character U+0080"}, + {"name":"U+00A0 inside a word given as it is is not","words":["61c2a062","626262","636363","646464","656565","666666"],"result":"ok"}, {"words":["d790d6b0","6172626f6c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, {"words":["6e61697665","61","cebfceb4cf85cf83cf83ceb5cf85cf82","706572726f2c","efbd86efbd95efbd8cefbd8c","6172efbfbdefbfbd626f6c","d28378","616c","eaadb0eaadb1eaadb2"],"result":"ok"}, {"words":["6d6172efb88f","6c61","d790d6b0","6b656c76696e","e2b1a5","cf83ceb1cf83","616c","eaadb0eaadb1eaadb2","f09090a8"],"result":"wordkey: the words hold the invisible character U+FE0F"}, @@ -773,17 +778,18 @@ const wordkeyVectorsJson = r''' {"words":["d790d6b0","e18492e185a1e186abe18480e185aee186a8e1848be185a5","e697a5e69cace8aa9e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 2"}, {"words":["73747261c39f65"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, {"words":["d5a1","e697a5e69cace8aa9e","cf83ceb1cf83","c39f","ea9f9b","6e696e6f","6e696e6f"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, - {"words":["d28378","70657272cdb86f2c","61","6e696e6f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"}, - {"words":["6b656c76696e","e0b881e0b8b4","726573756d65","6172626f6c","61","6d6172","e2b1a5","f09f9880","f09f9880"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, - {"words":["7665726465","cebfceb4cf85cf83cf83ceb5cf85cf83","706572726f2c","78efbfbdefb88fefbfbd"],"result":"wordkey: the words hold the invisible character U+FE0F"}, - {"words":["c990","efbca6efbcb5efbcacefbcac","e182a0","e0b881e0b8b4"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, - {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, - {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, - {"words":["6c756e61","63617361","c2a1686f6c6121","e284aa656c76696e","c4b07374616e62756c","63617361","6c756e61","63617361","6c756e61"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, - {"words":["63617361","c990"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, - {"words":["72c3a973756dc3a9","78","736f6c","6c756e61","efac80","6c756e61"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, - {"words":["e182a0"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, - {"words":["cea3ce91cea3","e284aa656c76696e","cea3ce91cea3","6465","63617361","434146c389"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, + {"words":["70616e","e0b881e0b8b4","70616e","7472656e","706572726f","706572726f","7665726465","4e49c3914f"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, + {"words":["6c756e61","e0b881e0b8b4","e284aa656c76696e","706572726f2c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, + {"words":["ea9e8c","65cc81","78efb8a0","d4b1","72c3a973756dc3a9","efbca6efbcb5efbcacefbcac","7472656e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, + {"words":["6d6172","d790d6b0","c8ba","736f6c","c8ba"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 2"}, + {"words":["72c3a973756dc3a9","6c756e61","78","706572726f2c","706572726f","e697a5e69cace8aa9e","736f6c"],"result":"ok"}, + {"words":["e284aa656c76696e","78efb8a0","736f6c","7665726465","c990"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, + {"words":["d4b1"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, + {"words":["70616e","d790d6b0","6c756e61","63617361","c2a1686f6c6121","e284aa656c76696e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, + {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, + {"words":["f0909080","c8ba"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, + {"words":["706572726f2cf48fbfbd","70616e","e18ea0e18ea1e18ea2","6465","c990","636166c3a9","d09cd09ed0a1d09ad092d090","d09cd0bed181d0bad0b2d0b0efbfbe","61cca3cc81"],"result":"wordkey: the words hold U+FFFE, unassigned in Unicode 18.0.0"}, + {"words":["706572726f","6c756e61","706572726f","ed959ceab5adec96b4","6d6172","cea3ce91cea3","6465","63617361","434146c389"],"result":"ok"}, {"words":["6465","c3bc626572","d5a1","7665726465","e1bd80ceb4cf85cf83cf83ceb5cf8dcf82cdb8","c3816261636f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"}, {"words":["c2a1686f6c6121","736f6c","cea3cebfcf86ceafceb1","70616e","c4b07374616e62756c","636166c3a9","78cd85","61cc81cca3","63617361"],"result":"ok"}, {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, @@ -921,17 +927,13 @@ const wordkeyVectorsJson = r''' {"words":["e1ba9e","6d6172","6465","6c61","63616e6369c3b36e","78efb8a0","6c756e61","706572726f"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, {"words":["6c756e61","706572726f2c","63617361","ed959ceab5adec96b4","616c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, {"words":["736f6c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, - {"words":["d28378","6c756e61cdb8","70616e","cea3ce91cea3","61c3b16fc080","4e49c3914f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"}, - {"words":["70616e","7665726465","78cd85","6c61","7665726465","61cc81cca3","78","6d6172","53545241c39f45"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, - {"words":["736f6c","53545241c39f45","63617361","ed959ceab5adec96b4"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, - {"words":["ea9e8c","7472656e","7665726465","e0b881e0b8b4","d09cd0bed181d0bad0b2d0b0","70616e","706572726f","c4b07374616e62756c"],"result":"ok"}, - {"words":["70616e","78e1aab0","7665726465","61c3b16f","7472656e","f09ea480","70616e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"} + {"words":["d28378","6c756e61cdb8","70616e","cea3ce91cea3","61c3b16fc080","4e49c3914f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"} ], "keys": [ - {"name":"the vector of spec \u00a738.1","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1000,"capsule_id":"000102030405060708090a0b0c0d0e0f","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1000|000102030405060708090a0b0c0d0e0f","key":"fceec4d8ca8de86c85a1f26ed49f82a2b38431bd0ce36db995ae7dfd49b96e41","key_1000":"1028e1b9b04902cc9d70b4a0bad785939b45f1b6d4c293378483c7be1c6f95c8","recipient":"age1fqk6hflp8q5um2qrl5ckd8lu4x75rhtuncfus7f7up3v3v0zss0stdpqkr"}, - {"name":"normalized words of other scripts, the next round","words":["616261636f","6172626f6c","6e696e6f","cf83ceb1cf83","697374616e62756c","e18492e185a1e186abe18480e185aee186a8e1848be185a5","f09f9880"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1001,"capsule_id":"000102030405060708090a0b0c0d0e0f","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1001|000102030405060708090a0b0c0d0e0f","key":"d8f9ec679333a961472c33b35143958f7a867d6d701047310bd3869cde06eb72","key_1000":"82018540b63893f0839b4e18a84bcee538f60f5d54b38b6bbda1b607de73817e","recipient":"age1xedq0ct3kasmwtkxjk2s5z8z7y6pv52k6lrw82vj3e0yp02c6u2qld2s27"}, - {"name":"the largest round of 53 bits, another chain hash and capsule_id","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"abababababababababababababababababababababababababababababababab","round":9007199254740991,"capsule_id":"ffffffffffffffffffffffffffffffff","salt":"DateKeys llave de palabras v2|abababababababababababababababababababababababababababababababab|9007199254740991|ffffffffffffffffffffffffffffffff","key":"32b1a83dee069045054c2d044fb83802ac5bdd4122883e22ccc4bf42efdf54c3","key_1000":"a1264e85f593acdd9d4ab3fb3621f787c77ae3b29dc2cf33f67c868d471225f8","recipient":"age19ys0af5dp7gm6wydupg7ej29wf08xuaypwn507k3kvg8lzxxyd7qweuwec"}, - {"name":"a word of a surrogate in UTF-8 bytes, round 0, no capsule_id","words":["eda080","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":0,"capsule_id":"","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|0|","key":"47261f98a8ac68e4f100c75e929bb3b9b719a43ca47a5e173bfeefa409a728a5","key_1000":"5c367b7a1282a777efd622bf070cc31048da05f9d9d79affd41df5da43bbcb7a","recipient":"age122r0ul49gphvqdtdq9sngwd70p3t26lslz2xsf7qgvjcywp6gacs7ymd0l"} + {"name":"the vector of spec \u00a738.1","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1000,"capsule_id":"000102030405060708090a0b0c0d0e0f","password":"706572726f206c756e612063617361207665726465207472656e206d6172","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1000|000102030405060708090a0b0c0d0e0f","key":"fceec4d8ca8de86c85a1f26ed49f82a2b38431bd0ce36db995ae7dfd49b96e41","key_1000":"1028e1b9b04902cc9d70b4a0bad785939b45f1b6d4c293378483c7be1c6f95c8","recipient":"age1fqk6hflp8q5um2qrl5ckd8lu4x75rhtuncfus7f7up3v3v0zss0stdpqkr"}, + {"name":"normalized words of other scripts, the next round","words":["616261636f","6172626f6c","6e696e6f","cf83ceb1cf83","697374616e62756c","e18492e185a1e186abe18480e185aee186a8e1848be185a5","f09f9880"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1001,"capsule_id":"000102030405060708090a0b0c0d0e0f","password":"616261636f206172626f6c206e696e6f20cf83ceb1cf8320697374616e62756c20e18492e185a1e186abe18480e185aee186a8e1848be185a520f09f9880","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1001|000102030405060708090a0b0c0d0e0f","key":"d8f9ec679333a961472c33b35143958f7a867d6d701047310bd3869cde06eb72","key_1000":"82018540b63893f0839b4e18a84bcee538f60f5d54b38b6bbda1b607de73817e","recipient":"age1xedq0ct3kasmwtkxjk2s5z8z7y6pv52k6lrw82vj3e0yp02c6u2qld2s27"}, + {"name":"the largest round of 53 bits, another chain hash and capsule_id","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"abababababababababababababababababababababababababababababababab","round":9007199254740991,"capsule_id":"ffffffffffffffffffffffffffffffff","password":"706572726f206c756e612063617361207665726465207472656e206d6172","salt":"DateKeys llave de palabras v2|abababababababababababababababababababababababababababababababab|9007199254740991|ffffffffffffffffffffffffffffffff","key":"32b1a83dee069045054c2d044fb83802ac5bdd4122883e22ccc4bf42efdf54c3","key_1000":"a1264e85f593acdd9d4ab3fb3621f787c77ae3b29dc2cf33f67c868d471225f8","recipient":"age19ys0af5dp7gm6wydupg7ej29wf08xuaypwn507k3kvg8lzxxyd7qweuwec"}, + {"name":"a word of a surrogate in UTF-8 bytes, round 0, no capsule_id","words":["eda080","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":0,"capsule_id":"","password":"eda080206c756e612063617361207665726465207472656e206d6172","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|0|","key":"47261f98a8ac68e4f100c75e929bb3b9b719a43ca47a5e173bfeefa409a728a5","key_1000":"5c367b7a1282a777efd622bf070cc31048da05f9d9d79affd41df5da43bbcb7a","recipient":"age122r0ul49gphvqdtdq9sngwd70p3t26lslz2xsf7qgvjcywp6gacs7ymd0l"} ] } '''; diff --git a/test/vectors/wordkey_vectors.json b/test/vectors/wordkey_vectors.json index 95d273f..9aafadd 100644 --- a/test/vectors/wordkey_vectors.json +++ b/test/vectors/wordkey_vectors.json @@ -1,5 +1,5 @@ { - "description": "The results of package wordkey of the Go reference (spec \u00a738.1) for lib/src/wordkey.dart; see tool/wordkey_go_vectors.go. Binary values are lower-case hex. normalize: a text and the words of wordkey.Normalize. check: words and the result of wordkey.Check, ok or the text of the error. keys: words, chain_hash, round and capsule_id; salt, the salt S of \u00a738.1; key, wordkey.Key; key_1000, the same PBKDF2-HMAC-SHA256 with 1000 iterations; recipient, that of wordkey.Identity. The first key is the vector of \u00a738.1.", + "description": "The results of package wordkey of the Go reference (spec \u00a738.1) for lib/src/wordkey.dart; see tool/wordkey_go_vectors.go. Binary values are lower-case hex. normalize: a text and the words of wordkey.Normalize. check: words and the result of wordkey.Check, ok or the text of the error. keys: words, chain_hash, round and capsule_id; password and salt, P and S of \u00a738.1; key, wordkey.Key; key_1000, the same PBKDF2-HMAC-SHA256 with 1000 iterations; recipient, that of wordkey.Identity. The first key is the vector of \u00a738.1.", "generator": "tool/wordkey_go_vectors.go, go1.26.8", "rounds": 600000, "min_words": 6, @@ -40,6 +40,9 @@ {"name":"the ideographic space","in":"756e6fe38080646f73","words":["756e6f","646f73"]}, {"name":"line and paragraph separators","in":"756e6fe280a8646f73e280a974726573","words":["756e6f","646f73","74726573"]}, {"name":"control characters that are not white space","in":"756e6f01646f737f726573","words":["756e6f01646f737f726573"]}, + {"name":"the first and the last mark of U+0300 to U+036F","in":"61cc8062cdaf63","words":["616263"]}, + {"name":"U+02FF and U+0370, around U+0300 to U+036F","in":"61cbbf62cdb063","words":["61cbbf62cdb163"]}, + {"name":"every mark of U+0300 to U+036F","in":"78cc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdaf79","words":["7879"]}, {"name":"white space 1 of \u00a738.1","in":"610962","words":["61","62"]}, {"name":"white space 2 of \u00a738.1","in":"610a62","words":["61","62"]}, {"name":"white space 3 of \u00a738.1","in":"610b62","words":["61","62"]}, @@ -401,10 +404,7 @@ {"in":"e280896d6172e28082e28085e1bd88ce94cea5cea3cea3ce95ce8ecea3c285efbd86efbd95efbd8cefbd8ce28081d790d6b0e28086e2808a7472656ee28089636166c3a9e28080efbd86efbd95efbd8cefbd8ce28084e28081c785656d616ce280a8","words":["6d6172","cebfceb4cf85cf83cf83ceb5cf85cf83","efbd86efbd95efbd8cefbd8c","d790d6b0","7472656e","63616665","efbd86efbd95efbd8cefbd8c","c786656d616c"]}, {"in":"d790d6b00ced959ceab5adec96b4e28085e2819fc285e697a5e69cace8aa9ee28081","words":["d790d6b0","e18492e185a1e186abe18480e185aee186a8e1848be185a5","e697a5e69cace8aa9e"]}, {"in":"e19a8053545241c39f45e28088","words":["73747261c39f65"]}, - {"in":"d5a1e38080e697a5e69cace8aa9e0c0ccea3ce91cea3e19a80c39fe2808109ea9f9ae28083e280886e69c3b16f094e49c3914fe2819fe19a80","words":["d5a1","e697a5e69cace8aa9e","cf83ceb1cf83","c39f","ea9f9b","6e696e6f","6e696e6f"]}, - {"in":"d28378e19a80e28083e2808670657272cdb86f2c0ae28085c28561cc81cca3e19a80e280a8e280836e69c3b16fe28088","words":["d28378","70657272cdb86f2c","61","6e696e6f"]}, - {"in":"0d6b656c76696e0be0b881e0b8b4e280af52c38953554dc389e280afc38152424f4c0b61cc81cca3e280846d6172e19a80e2b1a5e280a8f09f98800ce28081e280a9f09f9880e2808a","words":["6b656c76696e","e0b881e0b8b4","726573756d65","6172626f6c","61","6d6172","e2b1a5","f09f9880","f09f9880"]}, - {"in":"0c7665726465e280afe1bd88ce94cea5cea3cea3ce95ce8ecea30d706572726f2ce2808178cdefb88f850a","words":["7665726465","cebfceb4cf85cf83cf83ceb5cf85cf83","706572726f2c","78efbfbdefb88fefbfbd"]} + {"in":"d5a1e38080e697a5e69cace8aa9e0c0ccea3ce91cea3e19a80c39fe2808109ea9f9ae28083e280886e69c3b16f094e49c3914fe2819fe19a80","words":["d5a1","e697a5e69cace8aa9e","cf83ceb1cf83","c39f","ea9f9b","6e696e6f","6e696e6f"]} ], "check": [ {"name":"the six words of TestCheck","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"result":"ok"}, @@ -439,6 +439,11 @@ {"name":"refusals before the count","words":["616161","626262","63c2ad"],"result":"wordkey: the words hold the invisible character U+00AD"}, {"name":"empty words","words":["","","616161","626262","636363","646464","656565","666666"],"result":"ok"}, {"name":"a word of three spaces given as it is","words":["202020","626262","636363","646464","656565","666666"],"result":"ok"}, + {"name":"U+001F is a control","words":["611f62","626262","636363","646464","656565","666666"],"result":"wordkey: the words hold the control character U+001F"}, + {"name":"U+007E is not","words":["617e62","626262","636363","646464","656565","666666"],"result":"ok"}, + {"name":"U+007F is a control","words":["617f62","626262","636363","646464","656565","666666"],"result":"wordkey: the words hold the control character U+007F"}, + {"name":"U+0080 is a control","words":["61c28062","626262","636363","646464","656565","666666"],"result":"wordkey: the words hold the control character U+0080"}, + {"name":"U+00A0 inside a word given as it is is not","words":["61c2a062","626262","636363","646464","656565","666666"],"result":"ok"}, {"words":["d790d6b0","6172626f6c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, {"words":["6e61697665","61","cebfceb4cf85cf83cf83ceb5cf85cf82","706572726f2c","efbd86efbd95efbd8cefbd8c","6172efbfbdefbfbd626f6c","d28378","616c","eaadb0eaadb1eaadb2"],"result":"ok"}, {"words":["6d6172efb88f","6c61","d790d6b0","6b656c76696e","e2b1a5","cf83ceb1cf83","616c","eaadb0eaadb1eaadb2","f09090a8"],"result":"wordkey: the words hold the invisible character U+FE0F"}, @@ -767,17 +772,18 @@ {"words":["d790d6b0","e18492e185a1e186abe18480e185aee186a8e1848be185a5","e697a5e69cace8aa9e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 2"}, {"words":["73747261c39f65"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, {"words":["d5a1","e697a5e69cace8aa9e","cf83ceb1cf83","c39f","ea9f9b","6e696e6f","6e696e6f"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, - {"words":["d28378","70657272cdb86f2c","61","6e696e6f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"}, - {"words":["6b656c76696e","e0b881e0b8b4","726573756d65","6172626f6c","61","6d6172","e2b1a5","f09f9880","f09f9880"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, - {"words":["7665726465","cebfceb4cf85cf83cf83ceb5cf85cf83","706572726f2c","78efbfbdefb88fefbfbd"],"result":"wordkey: the words hold the invisible character U+FE0F"}, - {"words":["c990","efbca6efbcb5efbcacefbcac","e182a0","e0b881e0b8b4"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, - {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, - {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, - {"words":["6c756e61","63617361","c2a1686f6c6121","e284aa656c76696e","c4b07374616e62756c","63617361","6c756e61","63617361","6c756e61"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, - {"words":["63617361","c990"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, - {"words":["72c3a973756dc3a9","78","736f6c","6c756e61","efac80","6c756e61"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, - {"words":["e182a0"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, - {"words":["cea3ce91cea3","e284aa656c76696e","cea3ce91cea3","6465","63617361","434146c389"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, + {"words":["70616e","e0b881e0b8b4","70616e","7472656e","706572726f","706572726f","7665726465","4e49c3914f"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, + {"words":["6c756e61","e0b881e0b8b4","e284aa656c76696e","706572726f2c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, + {"words":["ea9e8c","65cc81","78efb8a0","d4b1","72c3a973756dc3a9","efbca6efbcb5efbcacefbcac","7472656e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, + {"words":["6d6172","d790d6b0","c8ba","736f6c","c8ba"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 2"}, + {"words":["72c3a973756dc3a9","6c756e61","78","706572726f2c","706572726f","e697a5e69cace8aa9e","736f6c"],"result":"ok"}, + {"words":["e284aa656c76696e","78efb8a0","736f6c","7665726465","c990"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 3"}, + {"words":["d4b1"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, + {"words":["70616e","d790d6b0","6c756e61","63617361","c2a1686f6c6121","e284aa656c76696e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, + {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, + {"words":["f0909080","c8ba"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, + {"words":["706572726f2cf48fbfbd","70616e","e18ea0e18ea1e18ea2","6465","c990","636166c3a9","d09cd09ed0a1d09ad092d090","d09cd0bed181d0bad0b2d0b0efbfbe","61cca3cc81"],"result":"wordkey: the words hold U+FFFE, unassigned in Unicode 18.0.0"}, + {"words":["706572726f","6c756e61","706572726f","ed959ceab5adec96b4","6d6172","cea3ce91cea3","6465","63617361","434146c389"],"result":"ok"}, {"words":["6465","c3bc626572","d5a1","7665726465","e1bd80ceb4cf85cf83cf83ceb5cf8dcf82cdb8","c3816261636f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"}, {"words":["c2a1686f6c6121","736f6c","cea3cebfcf86ceafceb1","70616e","c4b07374616e62756c","636166c3a9","78cd85","61cc81cca3","63617361"],"result":"ok"}, {"words":[],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 0"}, @@ -915,16 +921,12 @@ {"words":["e1ba9e","6d6172","6465","6c61","63616e6369c3b36e","78efb8a0","6c756e61","706572726f"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, {"words":["6c756e61","706572726f2c","63617361","ed959ceab5adec96b4","616c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, {"words":["736f6c"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 1"}, - {"words":["d28378","6c756e61cdb8","70616e","cea3ce91cea3","61c3b16fc080","4e49c3914f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"}, - {"words":["70616e","7665726465","78cd85","6c61","7665726465","61cc81cca3","78","6d6172","53545241c39f45"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 5"}, - {"words":["736f6c","53545241c39f45","63617361","ed959ceab5adec96b4"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"}, - {"words":["ea9e8c","7472656e","7665726465","e0b881e0b8b4","d09cd0bed181d0bad0b2d0b0","70616e","706572726f","c4b07374616e62756c"],"result":"ok"}, - {"words":["70616e","78e1aab0","7665726465","61c3b16f","7472656e","f09ea480","70616e"],"result":"wordkey: a key of words needs at least 6 different words of 3 or more letters, not 4"} + {"words":["d28378","6c756e61cdb8","70616e","cea3ce91cea3","61c3b16fc080","4e49c3914f"],"result":"wordkey: the words hold U+0378, unassigned in Unicode 18.0.0"} ], "keys": [ - {"name":"the vector of spec \u00a738.1","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1000,"capsule_id":"000102030405060708090a0b0c0d0e0f","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1000|000102030405060708090a0b0c0d0e0f","key":"fceec4d8ca8de86c85a1f26ed49f82a2b38431bd0ce36db995ae7dfd49b96e41","key_1000":"1028e1b9b04902cc9d70b4a0bad785939b45f1b6d4c293378483c7be1c6f95c8","recipient":"age1fqk6hflp8q5um2qrl5ckd8lu4x75rhtuncfus7f7up3v3v0zss0stdpqkr"}, - {"name":"normalized words of other scripts, the next round","words":["616261636f","6172626f6c","6e696e6f","cf83ceb1cf83","697374616e62756c","e18492e185a1e186abe18480e185aee186a8e1848be185a5","f09f9880"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1001,"capsule_id":"000102030405060708090a0b0c0d0e0f","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1001|000102030405060708090a0b0c0d0e0f","key":"d8f9ec679333a961472c33b35143958f7a867d6d701047310bd3869cde06eb72","key_1000":"82018540b63893f0839b4e18a84bcee538f60f5d54b38b6bbda1b607de73817e","recipient":"age1xedq0ct3kasmwtkxjk2s5z8z7y6pv52k6lrw82vj3e0yp02c6u2qld2s27"}, - {"name":"the largest round of 53 bits, another chain hash and capsule_id","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"abababababababababababababababababababababababababababababababab","round":9007199254740991,"capsule_id":"ffffffffffffffffffffffffffffffff","salt":"DateKeys llave de palabras v2|abababababababababababababababababababababababababababababababab|9007199254740991|ffffffffffffffffffffffffffffffff","key":"32b1a83dee069045054c2d044fb83802ac5bdd4122883e22ccc4bf42efdf54c3","key_1000":"a1264e85f593acdd9d4ab3fb3621f787c77ae3b29dc2cf33f67c868d471225f8","recipient":"age19ys0af5dp7gm6wydupg7ej29wf08xuaypwn507k3kvg8lzxxyd7qweuwec"}, - {"name":"a word of a surrogate in UTF-8 bytes, round 0, no capsule_id","words":["eda080","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":0,"capsule_id":"","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|0|","key":"47261f98a8ac68e4f100c75e929bb3b9b719a43ca47a5e173bfeefa409a728a5","key_1000":"5c367b7a1282a777efd622bf070cc31048da05f9d9d79affd41df5da43bbcb7a","recipient":"age122r0ul49gphvqdtdq9sngwd70p3t26lslz2xsf7qgvjcywp6gacs7ymd0l"} + {"name":"the vector of spec \u00a738.1","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1000,"capsule_id":"000102030405060708090a0b0c0d0e0f","password":"706572726f206c756e612063617361207665726465207472656e206d6172","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1000|000102030405060708090a0b0c0d0e0f","key":"fceec4d8ca8de86c85a1f26ed49f82a2b38431bd0ce36db995ae7dfd49b96e41","key_1000":"1028e1b9b04902cc9d70b4a0bad785939b45f1b6d4c293378483c7be1c6f95c8","recipient":"age1fqk6hflp8q5um2qrl5ckd8lu4x75rhtuncfus7f7up3v3v0zss0stdpqkr"}, + {"name":"normalized words of other scripts, the next round","words":["616261636f","6172626f6c","6e696e6f","cf83ceb1cf83","697374616e62756c","e18492e185a1e186abe18480e185aee186a8e1848be185a5","f09f9880"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":1001,"capsule_id":"000102030405060708090a0b0c0d0e0f","password":"616261636f206172626f6c206e696e6f20cf83ceb1cf8320697374616e62756c20e18492e185a1e186abe18480e185aee186a8e1848be185a520f09f9880","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|1001|000102030405060708090a0b0c0d0e0f","key":"d8f9ec679333a961472c33b35143958f7a867d6d701047310bd3869cde06eb72","key_1000":"82018540b63893f0839b4e18a84bcee538f60f5d54b38b6bbda1b607de73817e","recipient":"age1xedq0ct3kasmwtkxjk2s5z8z7y6pv52k6lrw82vj3e0yp02c6u2qld2s27"}, + {"name":"the largest round of 53 bits, another chain hash and capsule_id","words":["706572726f","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"abababababababababababababababababababababababababababababababab","round":9007199254740991,"capsule_id":"ffffffffffffffffffffffffffffffff","password":"706572726f206c756e612063617361207665726465207472656e206d6172","salt":"DateKeys llave de palabras v2|abababababababababababababababababababababababababababababababab|9007199254740991|ffffffffffffffffffffffffffffffff","key":"32b1a83dee069045054c2d044fb83802ac5bdd4122883e22ccc4bf42efdf54c3","key_1000":"a1264e85f593acdd9d4ab3fb3621f787c77ae3b29dc2cf33f67c868d471225f8","recipient":"age19ys0af5dp7gm6wydupg7ej29wf08xuaypwn507k3kvg8lzxxyd7qweuwec"}, + {"name":"a word of a surrogate in UTF-8 bytes, round 0, no capsule_id","words":["eda080","6c756e61","63617361","7665726465","7472656e","6d6172"],"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","round":0,"capsule_id":"","password":"eda080206c756e612063617361207665726465207472656e206d6172","salt":"DateKeys llave de palabras v2|52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971|0|","key":"47261f98a8ac68e4f100c75e929bb3b9b719a43ca47a5e173bfeefa409a728a5","key_1000":"5c367b7a1282a777efd622bf070cc31048da05f9d9d79affd41df5da43bbcb7a","recipient":"age122r0ul49gphvqdtdq9sngwd70p3t26lslz2xsf7qgvjcywp6gacs7ymd0l"} ] } diff --git a/test/wordkey_test.dart b/test/wordkey_test.dart index 67aacfb..b72fc6d 100644 --- a/test/wordkey_test.dart +++ b/test/wordkey_test.dart @@ -93,8 +93,11 @@ void main() { final salt = wordKeySalt(chain, round, capsuleId); expect(salt, utf8Bytes(c['salt']! as String), reason: label(c)); // The password is the words joined by one U+0020, in UTF-8: with the - // salt and 1000 iterations, the PBKDF2 of Go. - final password = utf8Bytes(words.join(' ')); + // salt and 1000 iterations, the PBKDF2 of Go. wordKey derives with + // the same two and 600 000 iterations, on the VM in + // wordkey_vm_test.dart. + final password = wordKeyPassword(words); + expect(toHex(password), c['password'], reason: label(c)); expect( toHex(pbkdf2HmacSha256(password, salt, 1000, 32)), c['key_1000'], diff --git a/tool/pathrule_go_vectors.go b/tool/pathrule_go_vectors.go index c8c3ff9..bf1c347 100644 --- a/tool/pathrule_go_vectors.go +++ b/tool/pathrule_go_vectors.go @@ -720,6 +720,20 @@ func namedStrings() []stringCase { {"ZWNJ alone in a line", "a\n\u200c"}, {"an empty line", "a\n\nb"}, {"a text of bidirectional controls only", "\u2066\u2069"}, + // The limits of R2, R3 and R6b, on both sides. + {"32 segments", strings.Repeat("a/", 31) + "a"}, + {"85 times U+0390 and a letter: 256 UTF-16 units after NFD", strings.Repeat("\u0390", 85) + "a"}, + {"42 times U+1D160: 168 bytes, 252 UTF-16 units after NFD", strings.Repeat("\U0001d160", 42)}, + {"43 times U+1D160: 172 bytes, 258 UTF-16 units after NFD", strings.Repeat("\U0001d160", 43)}, + {"127 times U+00E9 and a letter: 255 bytes", strings.Repeat("\u00e9", 127) + "a"}, + {"128 times U+00E9: 256 bytes", strings.Repeat("\u00e9", 128)}, + {"63 emoji: 252 bytes, 126 UTF-16 units", strings.Repeat("\U0001f600", 63)}, + {"64 emoji: 256 bytes", strings.Repeat("\U0001f600", 64)}, + {"a base of nine runes before the tilde", "ABCDEFG~1"}, + {"an 8.3 alias with an extension of four", "ABCDEF~1.TEXT"}, + {"an 8.3 alias with an astral letter", "\U00010400BCDEF~1"}, + {"an 8.3 alias with an astral extension", "ABCDEF~1.\U00010400\U00010401\U00010402"}, + {"an astral extension of four", "ABCDEF~1.\U00010400\U00010401\U00010402\U00010403"}, } var out []stringCase for _, n := range named { diff --git a/tool/wordkey_go_vectors.go b/tool/wordkey_go_vectors.go index 420613e..f931760 100644 --- a/tool/wordkey_go_vectors.go +++ b/tool/wordkey_go_vectors.go @@ -15,7 +15,8 @@ // tests, edges of the count, every kind of refused code point, and the // words of the texts of normalize. // - keys: words, a chain hash, a round and a capsule_id; the salt S of -// §38.1, checked against wordkey.Key; wordkey.Key, 600 000 iterations of +// §38.1, and the password P, the words joined by one U+0020, both +// checked against wordkey.Key; wordkey.Key, 600 000 iterations of // PBKDF2-HMAC-SHA256; the same PBKDF2 with 1000 iterations, for the tests // compiled to JavaScript; and the recipient of wordkey.Identity. The // first is the vector of spec §38.1. @@ -147,6 +148,7 @@ type keyCase struct { ChainHash string `json:"chain_hash"` Round uint64 `json:"round"` CapsuleID string `json:"capsule_id"` + Password string `json:"password"` Salt string `json:"salt"` Key string `json:"key"` Key1000 string `json:"key_1000"` @@ -173,7 +175,7 @@ func keyOf(name string, words []string, chain []byte, round uint64, capsuleID [] if err != nil { log.Fatal(err) } - return keyCase{name, hexAll(words), hex.EncodeToString(chain), round, hex.EncodeToString(capsuleID), salt, + return keyCase{name, hexAll(words), hex.EncodeToString(chain), round, hex.EncodeToString(capsuleID), h(strings.Join(words, " ")), salt, hex.EncodeToString(key), hex.EncodeToString(short), id.Recipient().String()} } @@ -214,6 +216,9 @@ func normalizeCases() []normalizeCase { {"the ideographic space", "uno\u3000dos"}, {"line and paragraph separators", "uno\u2028dos\u2029tres"}, {"control characters that are not white space", "uno\x01dos\x7fres"}, + {"the first and the last mark of U+0300 to U+036F", "a\u0300b\u036fc"}, + {"U+02FF and U+0370, around U+0300 to U+036F", "a\u02ffb\u0370c"}, + {"every mark of U+0300 to U+036F", "x\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030a\u030b\u030c\u030d\u030e\u030f\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031a\u031b\u031c\u031d\u031e\u031f\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032a\u032b\u032c\u032d\u032e\u032f\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033a\u033b\u033c\u033d\u033e\u033f\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034a\u034b\u034c\u034d\u034e\u034f\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035a\u035b\u035c\u035d\u035e\u035f\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036a\u036b\u036c\u036d\u036e\u036fy"}, } var out []normalizeCase for _, n := range named { @@ -274,6 +279,12 @@ func checkCases(texts []normalizeCase) []checkCase { {"refusals before the count", []string{"aaa", "bbb", "c\u00ad"}}, {"empty words", []string{"", "", "aaa", "bbb", "ccc", "ddd", "eee", "fff"}}, {"a word of three spaces given as it is", []string{" ", "bbb", "ccc", "ddd", "eee", "fff"}}, + // The edges of the controls of unicode.IsControl, C0 and C1. + {"U+001F is a control", []string{"a\x1fb", "bbb", "ccc", "ddd", "eee", "fff"}}, + {"U+007E is not", []string{"a~b", "bbb", "ccc", "ddd", "eee", "fff"}}, + {"U+007F is a control", []string{"a\x7fb", "bbb", "ccc", "ddd", "eee", "fff"}}, + {"U+0080 is a control", []string{"a\u0080b", "bbb", "ccc", "ddd", "eee", "fff"}}, + {"U+00A0 inside a word given as it is is not", []string{"a\u00a0b", "bbb", "ccc", "ddd", "eee", "fff"}}, } var out []checkCase for _, n := range named { @@ -391,7 +402,7 @@ func main() { }{ {"description", "The results of package wordkey of the Go reference (spec \u00a738.1) for lib/src/wordkey.dart; see tool/wordkey_go_vectors.go. " + "Binary values are lower-case hex. normalize: a text and the words of wordkey.Normalize. check: words and the result of wordkey.Check, ok or the text of the error. " + - "keys: words, chain_hash, round and capsule_id; salt, the salt S of \u00a738.1; key, wordkey.Key; key_1000, the same PBKDF2-HMAC-SHA256 with 1000 iterations; recipient, that of wordkey.Identity. The first key is the vector of \u00a738.1."}, + "keys: words, chain_hash, round and capsule_id; password and salt, P and S of \u00a738.1; key, wordkey.Key; key_1000, the same PBKDF2-HMAC-SHA256 with 1000 iterations; recipient, that of wordkey.Identity. The first key is the vector of \u00a738.1."}, {"generator", "tool/wordkey_go_vectors.go, " + runtime.Version()}, {"rounds", wordkey.Rounds}, {"min_words", wordkey.MinWords},