From 1f6276bf472a7724e4aa66197ddf3c07b38d0e7d Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Thu, 31 Oct 2024 10:24:16 +0000 Subject: [PATCH] formatter --- src/_string_tools/slice_packed_field.nr | 595 +- src/_table_generation/make_tables.nr | 372 +- .../make_tables_subtables.nr | 5302 +++++++++-------- src/get_array.nr | 6 +- src/get_literal.nr | 6 +- src/get_number.nr | 8 +- src/get_object.nr | 62 +- src/get_string.nr | 12 +- src/getters.nr | 16 +- src/json.nr | 14 +- src/json_tables.nr | 3189 ++++++++-- src/keyhash.nr | 2 +- src/keymap.nr | 8 +- src/lib.nr | 6 +- 14 files changed, 6028 insertions(+), 3570 deletions(-) diff --git a/src/_string_tools/slice_packed_field.nr b/src/_string_tools/slice_packed_field.nr index dd4d651..5d4a1a2 100644 --- a/src/_string_tools/slice_packed_field.nr +++ b/src/_string_tools/slice_packed_field.nr @@ -42,7 +42,7 @@ global path_multipliers_chunk4: [Field; 32] = [ /* 28 (11100) */ 1, /* 29 (11101) */ 1, /* 30 (11110) */ 1, - /* 31 (11111) */ 1 + /* 31 (11111) */ 1, ]; // this represents an 8 byte chunk. what do we multiply by? @@ -78,7 +78,7 @@ global path_multipliers_chunk3: [Field; 32] = [ /* 28 (11100) */ two_pow_128, /* 29 (11101) */ two_pow_128, /* 30 (11110) */ two_pow_128, - /* 31 (11111) */ two_pow_128 + /* 31 (11111) */ two_pow_128, ]; // what do we multiply 4 byte chunk by @@ -114,7 +114,7 @@ global path_multipliers_chunk2: [Field; 32] = [ /* 28 (11100) */ two_pow_128 * two_pow_64, /* 29 (11101) */ two_pow_128 * two_pow_64, /* 30 (11110) */ two_pow_128 * two_pow_64, - /* 31 (11111) */ two_pow_128 * two_pow_64 + /* 31 (11111) */ two_pow_128 * two_pow_64, ]; // what do we multiply 2 byte chunk by @@ -150,7 +150,7 @@ global path_multipliers_chunk1: [Field; 32] = [ /* 28 (11100) */ 0, /* 29 (11101) */ 0, /* 30 (11110) */ two_pow_128 * two_pow_64 * two_pow_32, - /* 31 (11111) */ two_pow_128 * two_pow_64 * two_pow_32 + /* 31 (11111) */ two_pow_128 * two_pow_64 * two_pow_32, ]; // what do we multiply 1 byte chunk by @@ -186,51 +186,183 @@ global path_multipliers_chunk0: [Field; 32] = [ /* 28 (11100) */ 0, /* 29 (11101) */ two_pow_128 * two_pow_64 * two_pow_32, /* 30 (11110) */ 0, - /* 31 (11111) */ two_pow_128 * two_pow_64 * two_pow_32 * two_pow_16 + /* 31 (11111) */ two_pow_128 * two_pow_64 * two_pow_32 * two_pow_16, ]; // these are `head_path_multipliers` but in reverse order -global tail_path_multipliers_chunk3: [Field; 32] = [0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; -global tail_path_multipliers_chunk2: [Field; 32] = [0x01000000000000000000000000000000000000000000000000, 0x01000000000000000000000000000000000000000000000000, 0x01000000000000000000000000000000000000000000000000, 0x01000000000000000000000000000000000000000000000000, 0x00, 0x00, 0x00, 0x00, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x00, 0x00, 0x00, 0x00, 0x010000000000000000, 0x010000000000000000, 0x010000000000000000, 0x010000000000000000, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00]; -global tail_path_multipliers_chunk1: [Field; 32] = [0x0100000000000000000000000000000000000000000000000000000000, 0x0100000000000000000000000000000000000000000000000000000000, 0x00, 0x00, 0x01000000000000000000000000000000000000000000000000, 0x01000000000000000000000000000000000000000000000000, 0x00, 0x00, 0x010000000000000000000000000000000000000000, 0x010000000000000000000000000000000000000000, 0x00, 0x00, 0x0100000000000000000000000000000000, 0x0100000000000000000000000000000000, 0x00, 0x00, 0x01000000000000000000000000, 0x01000000000000000000000000, 0x00, 0x00, 0x010000000000000000, 0x010000000000000000, 0x00, 0x00, 0x0100000000, 0x0100000000, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00]; -global tail_path_multipliers_chunk0: [Field; 32] = [0x01000000000000000000000000000000000000000000000000000000000000, 0x00, 0x0100000000000000000000000000000000000000000000000000000000, 0x00, 0x010000000000000000000000000000000000000000000000000000, 0x00, 0x01000000000000000000000000000000000000000000000000, 0x00, 0x0100000000000000000000000000000000000000000000, 0x00, 0x010000000000000000000000000000000000000000, 0x00, 0x01000000000000000000000000000000000000, 0x00, 0x0100000000000000000000000000000000, 0x00, 0x010000000000000000000000000000, 0x00, 0x01000000000000000000000000, 0x00, 0x0100000000000000000000, 0x00, 0x010000000000000000, 0x00, 0x01000000000000, 0x00, 0x0100000000, 0x00, 0x010000, 0x00, 0x01, 0x00]; +global tail_path_multipliers_chunk3: [Field; 32] = [ + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, +]; +global tail_path_multipliers_chunk2: [Field; 32] = [ + 0x01000000000000000000000000000000000000000000000000, + 0x01000000000000000000000000000000000000000000000000, + 0x01000000000000000000000000000000000000000000000000, + 0x01000000000000000000000000000000000000000000000000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x010000000000000000, + 0x010000000000000000, + 0x010000000000000000, + 0x010000000000000000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x01, + 0x01, + 0x01, + 0x01, + 0x00, + 0x00, + 0x00, + 0x00, +]; +global tail_path_multipliers_chunk1: [Field; 32] = [ + 0x0100000000000000000000000000000000000000000000000000000000, + 0x0100000000000000000000000000000000000000000000000000000000, + 0x00, + 0x00, + 0x01000000000000000000000000000000000000000000000000, + 0x01000000000000000000000000000000000000000000000000, + 0x00, + 0x00, + 0x010000000000000000000000000000000000000000, + 0x010000000000000000000000000000000000000000, + 0x00, + 0x00, + 0x0100000000000000000000000000000000, + 0x0100000000000000000000000000000000, + 0x00, + 0x00, + 0x01000000000000000000000000, + 0x01000000000000000000000000, + 0x00, + 0x00, + 0x010000000000000000, + 0x010000000000000000, + 0x00, + 0x00, + 0x0100000000, + 0x0100000000, + 0x00, + 0x00, + 0x01, + 0x01, + 0x00, + 0x00, +]; +global tail_path_multipliers_chunk0: [Field; 32] = [ + 0x01000000000000000000000000000000000000000000000000000000000000, + 0x00, + 0x0100000000000000000000000000000000000000000000000000000000, + 0x00, + 0x010000000000000000000000000000000000000000000000000000, + 0x00, + 0x01000000000000000000000000000000000000000000000000, + 0x00, + 0x0100000000000000000000000000000000000000000000, + 0x00, + 0x010000000000000000000000000000000000000000, + 0x00, + 0x01000000000000000000000000000000000000, + 0x00, + 0x0100000000000000000000000000000000, + 0x00, + 0x010000000000000000000000000000, + 0x00, + 0x01000000000000000000000000, + 0x00, + 0x0100000000000000000000, + 0x00, + 0x010000000000000000, + 0x00, + 0x01000000000000, + 0x00, + 0x0100000000, + 0x00, + 0x010000, + 0x00, + 0x01, + 0x00, +]; global LIMB_VALID_PATH: [Field; 35] = [ -0x000000000, // 0 0 0 0 0 0 0 0 0 -0x000000001, // 0 0 0 0 0 0 0 0 1 -0x000000003, // 0 0 0 0 0 0 0 1 1 -0x000000007, // 0 0 0 0 0 0 1 1 1 -0x000000008, // 0 0 0 0 0 1 1 1 1 -0x000000010, // 0 0 0 0 1 0 0 0 0 -0x000000020, // 0 0 0 1 0 0 0 0 0 -0x000000040, // 0 0 1 0 0 0 0 0 0 -0x000000080, // 0 1 0 0 0 0 0 0 0 -0x000000100, // 1 0 0 0 0 0 0 0 0 -0x000000200, // 0 0 0 0 0 0 0 1 0 -0x000000400, // 0 0 0 0 0 0 1 0 0 -0x000000800, // 0 0 0 0 0 1 0 0 0 -0x000001000, // 0 0 0 0 1 0 0 0 0 -0x000002000, // 0 0 0 1 0 0 0 0 0 -0x000004000, // 0 0 1 0 0 0 0 0 0 -0x000008000, // 0 1 0 0 0 0 0 0 0 -0x000010000, // 0 0 0 0 0 0 0 0 1 -0x000020000, // 0 0 0 0 0 0 0 1 0 -0x000040000, // 0 0 0 0 0 0 1 0 0 -0x000080000, // 0 0 0 0 0 1 0 0 0 -0x000100000, // 0 0 0 0 1 0 0 0 0 -0x000200000, // 0 0 0 1 0 0 0 0 0 -0x000400000, // 0 0 1 0 0 0 0 0 0 -0x000800000, // 0 1 0 0 0 0 0 0 0 -0x001000000, // 0 0 0 0 0 0 0 0 1 -0x002000000, // 0 0 0 0 0 0 0 1 0 -0x004000000, // 0 0 0 0 0 0 1 0 0 -0x008000000, // 0 0 0 0 0 1 0 0 0 -0x010000000, // 0 0 0 0 1 0 0 0 0 -0x020000000, // 0 0 0 1 0 0 0 0 0 -0x040000000, // 0 0 1 0 0 0 0 0 0 -0x080000000, // 0 1 0 0 0 0 0 0 0 -0x100000000, -0x200000000 + 0x000000000, // 0 0 0 0 0 0 0 0 0 + 0x000000001, // 0 0 0 0 0 0 0 0 1 + 0x000000003, // 0 0 0 0 0 0 0 1 1 + 0x000000007, // 0 0 0 0 0 0 1 1 1 + 0x000000008, // 0 0 0 0 0 1 1 1 1 + 0x000000010, // 0 0 0 0 1 0 0 0 0 + 0x000000020, // 0 0 0 1 0 0 0 0 0 + 0x000000040, // 0 0 1 0 0 0 0 0 0 + 0x000000080, // 0 1 0 0 0 0 0 0 0 + 0x000000100, // 1 0 0 0 0 0 0 0 0 + 0x000000200, // 0 0 0 0 0 0 0 1 0 + 0x000000400, // 0 0 0 0 0 0 1 0 0 + 0x000000800, // 0 0 0 0 0 1 0 0 0 + 0x000001000, // 0 0 0 0 1 0 0 0 0 + 0x000002000, // 0 0 0 1 0 0 0 0 0 + 0x000004000, // 0 0 1 0 0 0 0 0 0 + 0x000008000, // 0 1 0 0 0 0 0 0 0 + 0x000010000, // 0 0 0 0 0 0 0 0 1 + 0x000020000, // 0 0 0 0 0 0 0 1 0 + 0x000040000, // 0 0 0 0 0 0 1 0 0 + 0x000080000, // 0 0 0 0 0 1 0 0 0 + 0x000100000, // 0 0 0 0 1 0 0 0 0 + 0x000200000, // 0 0 0 1 0 0 0 0 0 + 0x000400000, // 0 0 1 0 0 0 0 0 0 + 0x000800000, // 0 1 0 0 0 0 0 0 0 + 0x001000000, // 0 0 0 0 0 0 0 0 1 + 0x002000000, // 0 0 0 0 0 0 0 1 0 + 0x004000000, // 0 0 0 0 0 0 1 0 0 + 0x008000000, // 0 0 0 0 0 1 0 0 0 + 0x010000000, // 0 0 0 0 1 0 0 0 0 + 0x020000000, // 0 0 0 1 0 0 0 0 0 + 0x040000000, // 0 0 1 0 0 0 0 0 0 + 0x080000000, // 0 1 0 0 0 0 0 0 0 + 0x100000000, + 0x200000000, ]; // these path variables describe the location of a limb in an array @@ -240,119 +372,119 @@ global LIMB_VALID_PATH: [Field; 35] = [ // array extends to 0x200000000 which is 2^33 => 33 31 byte limbs = 1,023 bytes // this puts a hard limit on the max size of a key that this program supports. global LAST_LIMB_PATH: [Field; 36] = [ -0x000000000, // 0 0 0 0 0 0 0 0 0 <-- edge case because sometimes array index is -1, so we offset by 1 TODO explain better -0x000000000, // 0 0 0 0 0 0 0 0 1 -0x000000001, // 0 0 0 0 0 0 0 1 0 -0x000000003, // 0 0 0 0 0 0 1 0 0 -0x000000007, // 0 0 0 0 0 1 0 0 0 -0x00000000f, // 0 0 0 0 1 0 0 0 0 -0x00000001f, // 0 0 0 1 0 0 0 0 0 -0x00000003f, // 0 0 1 0 0 0 0 0 0 -0x00000007f, // 0 1 0 0 0 0 0 0 0 -0x0000000ff, // 1 0 0 0 0 0 0 0 0 -0x0000001ff, // 0 0 0 0 0 0 0 1 0 -0x0000003ff, // 0 0 0 0 0 0 1 0 0 -0x0000007ff, // 0 0 0 0 0 1 0 0 0 -0x000000fff, // 0 0 0 0 1 0 0 0 0 -0x000001fff, // 0 0 0 1 0 0 0 0 0 -0x000003fff, // 0 0 1 0 0 0 0 0 0 -0x000007fff, // 0 1 0 0 0 0 0 0 0 -0x00000ffff, // 0 0 0 0 0 0 0 0 1 -0x00001ffff, // 0 0 0 0 0 0 0 1 0 -0x00003ffff, // 0 0 0 0 0 0 1 0 0 -0x00007ffff, // 0 0 0 0 0 1 0 0 0 -0x0000fffff, // 0 0 0 0 1 0 0 0 0 -0x0001fffff, // 0 0 0 1 0 0 0 0 0 -0x0003fffff, // 0 0 1 0 0 0 0 0 0 -0x0007fffff, // 0 1 0 0 0 0 0 0 0 -0x000ffffff, // 0 0 0 0 0 0 0 0 1 -0x001ffffff, // 0 0 0 0 0 0 0 1 0 -0x003ffffff, // 0 0 0 0 0 0 1 0 0 -0x007ffffff, // 0 0 0 0 0 1 0 0 0 -0x00fffffff, // 0 0 0 0 1 0 0 0 0 -0x01fffffff, // 0 0 0 1 0 0 0 0 0 -0x03fffffff, // 0 0 1 0 0 0 0 0 0 -0x07fffffff, // 0 1 0 0 0 0 0 0 0 -0x0ffffffff, -0x1ffffffff, -0x3ffffffff + 0x000000000, // 0 0 0 0 0 0 0 0 0 <-- edge case because sometimes array index is -1, so we offset by 1 TODO explain better + 0x000000000, // 0 0 0 0 0 0 0 0 1 + 0x000000001, // 0 0 0 0 0 0 0 1 0 + 0x000000003, // 0 0 0 0 0 0 1 0 0 + 0x000000007, // 0 0 0 0 0 1 0 0 0 + 0x00000000f, // 0 0 0 0 1 0 0 0 0 + 0x00000001f, // 0 0 0 1 0 0 0 0 0 + 0x00000003f, // 0 0 1 0 0 0 0 0 0 + 0x00000007f, // 0 1 0 0 0 0 0 0 0 + 0x0000000ff, // 1 0 0 0 0 0 0 0 0 + 0x0000001ff, // 0 0 0 0 0 0 0 1 0 + 0x0000003ff, // 0 0 0 0 0 0 1 0 0 + 0x0000007ff, // 0 0 0 0 0 1 0 0 0 + 0x000000fff, // 0 0 0 0 1 0 0 0 0 + 0x000001fff, // 0 0 0 1 0 0 0 0 0 + 0x000003fff, // 0 0 1 0 0 0 0 0 0 + 0x000007fff, // 0 1 0 0 0 0 0 0 0 + 0x00000ffff, // 0 0 0 0 0 0 0 0 1 + 0x00001ffff, // 0 0 0 0 0 0 0 1 0 + 0x00003ffff, // 0 0 0 0 0 0 1 0 0 + 0x00007ffff, // 0 0 0 0 0 1 0 0 0 + 0x0000fffff, // 0 0 0 0 1 0 0 0 0 + 0x0001fffff, // 0 0 0 1 0 0 0 0 0 + 0x0003fffff, // 0 0 1 0 0 0 0 0 0 + 0x0007fffff, // 0 1 0 0 0 0 0 0 0 + 0x000ffffff, // 0 0 0 0 0 0 0 0 1 + 0x001ffffff, // 0 0 0 0 0 0 0 1 0 + 0x003ffffff, // 0 0 0 0 0 0 1 0 0 + 0x007ffffff, // 0 0 0 0 0 1 0 0 0 + 0x00fffffff, // 0 0 0 0 1 0 0 0 0 + 0x01fffffff, // 0 0 0 1 0 0 0 0 0 + 0x03fffffff, // 0 0 1 0 0 0 0 0 0 + 0x07fffffff, // 0 1 0 0 0 0 0 0 0 + 0x0ffffffff, + 0x1ffffffff, + 0x3ffffffff, ]; global INTEGER_UP_TO_62_IS_GREATER_THAN_31: [Field; 63] = [ -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -]; -global NUM_BYTES_MOD_31_IS_ZERO: [Field; 31] = [ - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ]; +global NUM_BYTES_MOD_31_IS_ZERO: [Field; 31] = + [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; global BYTE_SHIFT: [Field; 32] = [ - 1, - 0x1000000000000000000000000000000000000000000000000000000000000, - 0x10000000000000000000000000000000000000000000000000000000000, - 0x100000000000000000000000000000000000000000000000000000000, - 0x1000000000000000000000000000000000000000000000000000000, - 0x10000000000000000000000000000000000000000000000000000, - 0x100000000000000000000000000000000000000000000000000, - 0x1000000000000000000000000000000000000000000000000, - 0x10000000000000000000000000000000000000000000000, - 0x100000000000000000000000000000000000000000000, - 0x1000000000000000000000000000000000000000000, - 0x10000000000000000000000000000000000000000, - 0x100000000000000000000000000000000000000, - 0x1000000000000000000000000000000000000, - 0x10000000000000000000000000000000000, - 0x100000000000000000000000000000000, - 0x1000000000000000000000000000000, - 0x10000000000000000000000000000, - 0x100000000000000000000000000, - 0x1000000000000000000000000, - 0x10000000000000000000000, - 0x100000000000000000000, - 0x1000000000000000000, - 0x10000000000000000, - 0x100000000000000, - 0x1000000000000, - 0x10000000000, - 0x100000000, - 0x1000000, - 0x10000, - 0x100, - 1 - ]; + 1, + 0x1000000000000000000000000000000000000000000000000000000000000, + 0x10000000000000000000000000000000000000000000000000000000000, + 0x100000000000000000000000000000000000000000000000000000000, + 0x1000000000000000000000000000000000000000000000000000000, + 0x10000000000000000000000000000000000000000000000000000, + 0x100000000000000000000000000000000000000000000000000, + 0x1000000000000000000000000000000000000000000000000, + 0x10000000000000000000000000000000000000000000000, + 0x100000000000000000000000000000000000000000000, + 0x1000000000000000000000000000000000000000000, + 0x10000000000000000000000000000000000000000, + 0x100000000000000000000000000000000000000, + 0x1000000000000000000000000000000000000, + 0x10000000000000000000000000000000000, + 0x100000000000000000000000000000000, + 0x1000000000000000000000000000000, + 0x10000000000000000000000000000, + 0x100000000000000000000000000, + 0x1000000000000000000000000, + 0x10000000000000000000000, + 0x100000000000000000000, + 0x1000000000000000000, + 0x10000000000000000, + 0x100000000000000, + 0x1000000000000, + 0x10000000000, + 0x100000000, + 0x1000000, + 0x10000, + 0x100, + 1, +]; global PATH_LOOKUP: [[bool; 5]; 32] = [ - [false, false, false, false, false], - [true, false, false, false, false], - [false, true, false, false, false], - [true, true, false, false, false], - [false, false, true, false, false], - [true, false, true, false, false], - [false, true, true, false, false], - [true, true, true, false, false], - [false, false, false, true, false], - [true, false, false, true, false], - [false, true, false, true, false], - [true, true, false, true, false], - [false, false, true, true, false], - [true, false, true, true, false], - [false, true, true, true, false], - [true, true, true, true, false], - [false, false, false, false, true], - [true, false, false, false, true], - [false, true, false, false, true], - [true, true, false, false, true], - [false, false, true, false, true], - [true, false, true, false, true], - [false, true, true, false, true], - [true, true, true, false, true], - [false, false, false, true, true], - [true, false, false, true, true], - [false, true, false, true, true], - [true, true, false, true, true], - [false, false, true, true, true], - [true, false, true, true, true], - [false, true, true, true, true], - [true, true, true, true, true] - ]; + [false, false, false, false, false], + [true, false, false, false, false], + [false, true, false, false, false], + [true, true, false, false, false], + [false, false, true, false, false], + [true, false, true, false, false], + [false, true, true, false, false], + [true, true, true, false, false], + [false, false, false, true, false], + [true, false, false, true, false], + [false, true, false, true, false], + [true, true, false, true, false], + [false, false, true, true, false], + [true, false, true, true, false], + [false, true, true, true, false], + [true, true, true, true, false], + [false, false, false, false, true], + [true, false, false, false, true], + [false, true, false, false, true], + [true, true, false, false, true], + [false, false, true, false, true], + [true, false, true, false, true], + [false, true, true, false, true], + [true, true, true, false, true], + [false, false, false, true, true], + [true, false, false, true, true], + [false, true, false, true, true], + [true, true, false, true, true], + [false, false, true, true, true], + [true, false, true, true, true], + [false, true, true, true, true], + [true, true, true, true, true], +]; // ############################################################# // ### METHODS @@ -392,49 +524,73 @@ unconstrained fn __slice_field(f: Field, num_bytes: Field) -> [Field; 5] { tail_ptr += 2; } if head_path[2] { - chunks[2] = bytes[head_ptr] * 0x1000000 + bytes[head_ptr + 1] * 0x10000 - + bytes[head_ptr + 2] * 0x100 + bytes[head_ptr + 3]; + chunks[2] = bytes[head_ptr] * 0x1000000 + + bytes[head_ptr + 1] * 0x10000 + + bytes[head_ptr + 2] * 0x100 + + bytes[head_ptr + 3]; head_ptr += 4; } else { - chunks[2] = bytes[tail_ptr] * 0x1000000 + bytes[tail_ptr + 1] * 0x10000 - + bytes[tail_ptr + 2] * 0x100 + bytes[tail_ptr + 3]; + chunks[2] = bytes[tail_ptr] * 0x1000000 + + bytes[tail_ptr + 1] * 0x10000 + + bytes[tail_ptr + 2] * 0x100 + + bytes[tail_ptr + 3]; tail_ptr += 4; } if head_path[3] { - chunks[3] = - bytes[head_ptr] * 0x100000000000000 + bytes[head_ptr + 1] * 0x1000000000000 - + bytes[head_ptr + 2] * 0x10000000000 + bytes[head_ptr + 3] * 0x100000000 - + bytes[head_ptr + 4] * 0x1000000 + bytes[head_ptr + 5] * 0x10000 - + bytes[head_ptr + 6] * 0x100 + bytes[head_ptr + 7]; + chunks[3] = bytes[head_ptr] * 0x100000000000000 + + bytes[head_ptr + 1] * 0x1000000000000 + + bytes[head_ptr + 2] * 0x10000000000 + + bytes[head_ptr + 3] * 0x100000000 + + bytes[head_ptr + 4] * 0x1000000 + + bytes[head_ptr + 5] * 0x10000 + + bytes[head_ptr + 6] * 0x100 + + bytes[head_ptr + 7]; head_ptr += 8; } else { - chunks[3] = - bytes[tail_ptr] * 0x100000000000000 + bytes[tail_ptr + 1] * 0x1000000000000 - + bytes[tail_ptr + 2] * 0x10000000000 + bytes[tail_ptr + 3] * 0x100000000 - + bytes[tail_ptr + 4] * 0x1000000 + bytes[tail_ptr + 5] * 0x10000 - + bytes[tail_ptr + 6] * 0x100 + bytes[tail_ptr + 7]; + chunks[3] = bytes[tail_ptr] * 0x100000000000000 + + bytes[tail_ptr + 1] * 0x1000000000000 + + bytes[tail_ptr + 2] * 0x10000000000 + + bytes[tail_ptr + 3] * 0x100000000 + + bytes[tail_ptr + 4] * 0x1000000 + + bytes[tail_ptr + 5] * 0x10000 + + bytes[tail_ptr + 6] * 0x100 + + bytes[tail_ptr + 7]; tail_ptr += 8; } if head_path[4] { - chunks[4] = - bytes[head_ptr] * 0x1000000000000000000000000000000 + bytes[head_ptr + 1] * 0x10000000000000000000000000000 - + bytes[head_ptr + 2] * 0x100000000000000000000000000 + bytes[head_ptr + 3] * 0x1000000000000000000000000 - + bytes[head_ptr + 4] * 0x10000000000000000000000 + bytes[head_ptr + 5] * 0x100000000000000000000 - + bytes[head_ptr + 6] * 0x1000000000000000000 + bytes[head_ptr + 7] * 0x10000000000000000 - + bytes[head_ptr + 8] * 0x100000000000000 + bytes[head_ptr + 9] * 0x1000000000000 - + bytes[head_ptr + 10] * 0x10000000000 + bytes[head_ptr + 11] * 0x100000000 - + bytes[head_ptr + 12] * 0x1000000 + bytes[head_ptr + 13] * 0x10000 - + bytes[head_ptr + 14] * 0x100 + bytes[head_ptr + 15]; + chunks[4] = bytes[head_ptr] * 0x1000000000000000000000000000000 + + bytes[head_ptr + 1] * 0x10000000000000000000000000000 + + bytes[head_ptr + 2] * 0x100000000000000000000000000 + + bytes[head_ptr + 3] * 0x1000000000000000000000000 + + bytes[head_ptr + 4] * 0x10000000000000000000000 + + bytes[head_ptr + 5] * 0x100000000000000000000 + + bytes[head_ptr + 6] * 0x1000000000000000000 + + bytes[head_ptr + 7] * 0x10000000000000000 + + bytes[head_ptr + 8] * 0x100000000000000 + + bytes[head_ptr + 9] * 0x1000000000000 + + bytes[head_ptr + 10] * 0x10000000000 + + bytes[head_ptr + 11] * 0x100000000 + + bytes[head_ptr + 12] * 0x1000000 + + bytes[head_ptr + 13] * 0x10000 + + bytes[head_ptr + 14] * 0x100 + + bytes[head_ptr + 15]; } else { - chunks[4] = - bytes[tail_ptr] * 0x1000000000000000000000000000000 + bytes[tail_ptr + 1] * 0x10000000000000000000000000000 - + bytes[tail_ptr + 2] * 0x100000000000000000000000000 + bytes[tail_ptr + 3] * 0x1000000000000000000000000 - + bytes[tail_ptr + 4] * 0x10000000000000000000000 + bytes[tail_ptr + 5] * 0x100000000000000000000 - + bytes[tail_ptr + 6] * 0x1000000000000000000 + bytes[tail_ptr + 7] * 0x10000000000000000 - + bytes[tail_ptr + 8] * 0x100000000000000 + bytes[tail_ptr + 9] * 0x1000000000000 - + bytes[tail_ptr + 10] * 0x10000000000 + bytes[tail_ptr + 11] * 0x100000000 - + bytes[tail_ptr + 12] * 0x1000000 + bytes[tail_ptr + 13] * 0x10000 - + bytes[tail_ptr + 14] * 0x100 + bytes[tail_ptr + 15]; + chunks[4] = bytes[tail_ptr] * 0x1000000000000000000000000000000 + + bytes[tail_ptr + 1] * 0x10000000000000000000000000000 + + bytes[tail_ptr + 2] * 0x100000000000000000000000000 + + bytes[tail_ptr + 3] * 0x1000000000000000000000000 + + bytes[tail_ptr + 4] * 0x10000000000000000000000 + + bytes[tail_ptr + 5] * 0x100000000000000000000 + + bytes[tail_ptr + 6] * 0x1000000000000000000 + + bytes[tail_ptr + 7] * 0x10000000000000000 + + bytes[tail_ptr + 8] * 0x100000000000000 + + bytes[tail_ptr + 9] * 0x1000000000000 + + bytes[tail_ptr + 10] * 0x10000000000 + + bytes[tail_ptr + 11] * 0x100000000 + + bytes[tail_ptr + 12] * 0x1000000 + + bytes[tail_ptr + 13] * 0x10000 + + bytes[tail_ptr + 14] * 0x100 + + bytes[tail_ptr + 15]; } chunks @@ -485,7 +641,6 @@ unconstrained fn decompose(val: Field) -> [Field; 16] { pub fn get_last_limb_path(last_limb_index: Field) -> [Field; OutputFields] { // TODO we offset by 1 explain why (0 byte length produces 0 - 1 which = invalid array index. we just add 1 and increase array length by 1 to compensate) let path = LAST_LIMB_PATH[last_limb_index + 1]; // 2 - let path_valid_bits = decompose(path); let mut path_valid_sum: Field = 0; let mut path_valid_output: [Field; OutputFields] = [0; OutputFields]; @@ -510,7 +665,6 @@ pub fn slice_field(f: Field, num_bytes: Field) -> (Field, Field) { chunks[2].assert_max_bit_size::<32>(); // 1.75 gates chunks[3].assert_max_bit_size::<64>(); // 3.25 gates chunks[4].assert_max_bit_size::<128>(); // 7.5 gates - let mut head: Field = 0; let mut tail: Field = 0; @@ -553,7 +707,7 @@ pub fn slice_field(f: Field, num_bytes: Field) -> (Field, Field) { pub fn slice_fields( data: [Field; InputFields], start_byte: Field, - num_bytes: Field + num_bytes: Field, ) -> [Field; OutputFields] { // 3.5 let (start_index, start_mod_31) = divmod_31(start_byte); @@ -574,7 +728,8 @@ pub fn slice_fields( std::as_witness(bytes_fit_into_limb); // 2, 17 - let num_unused_bytes_in_start_limb = (num_bytes + start_mod_31 - 31) * bytes_fit_into_limb + (31 - start_mod_31); + let num_unused_bytes_in_start_limb = + (num_bytes + start_mod_31 - 31) * bytes_fit_into_limb + (31 - start_mod_31); std::as_witness(num_unused_bytes_in_start_limb); let num_remaining_bytes = num_bytes - num_unused_bytes_in_start_limb; @@ -588,7 +743,8 @@ pub fn slice_fields( let mut result = [0; OutputFields]; // 4, 69.5 - let extra_head_section = INTEGER_UP_TO_62_IS_GREATER_THAN_31[num_overflow_bytes - start_mod_31 + 31] + let extra_head_section = INTEGER_UP_TO_62_IS_GREATER_THAN_31[num_overflow_bytes - start_mod_31 + + 31] * (1 - bytes_fit_into_limb); // 1, 70.5 @@ -628,7 +784,8 @@ pub fn slice_fields( // 2, 134.5 let last_limb_from_data = data[index_of_overflow_limb]; // 2, 136.5 - let slice_source = (previous - last_limb_from_data) * use_previous_for_last_limb + last_limb_from_data; + let slice_source = + (previous - last_limb_from_data) * use_previous_for_last_limb + last_limb_from_data; // 44, 180.5 let (head, _) = slice_field(slice_source, slice_size); @@ -650,7 +807,7 @@ pub fn slice_fields( let mut path: [Field; OutputFields] = [0; OutputFields]; // 2, 190.5 for i in 1..OutputFields { - path[i] = path_valid_output[i] * -path_valid_output[i-1] + path_valid_output[i-1]; + path[i] = path_valid_output[i] * -path_valid_output[i - 1] + path_valid_output[i - 1]; } // 1, 191.5 path[0] = (1 - path_valid_output[0]); @@ -673,7 +830,7 @@ mod test { unconstrained fn build_slices_for_test( bytes: [u8; N], start: u32, - num_bytes: u32 + num_bytes: u32, ) -> [Field; 3] { let mut slices: [Field; 3] = [0; 3]; for i in 0..3 { @@ -690,7 +847,8 @@ mod test { #[test] fn test_slice_fields_nolength() { - let text: [u8; 1405] = "Charlie is genius, right. He's made from a million pieces of old bubble gum. Imagine that! In the summer of 1976, on his way home from an Alice Cooper concert, Charlie started to melt onto the pavement. It was too hot in L.A., and he melted like a pink bitch. Luckily though, there was Eric Phillips, a local crocodile who dabbled in black magic. He took pity on Charlie and scraped him off the floor with a pair of fish slicers. He poured him into an antique soup ladle, and boarded his magic carpet. Destination: Alaska! Eric Phillips decided to refreeze Charlie, but in his cold-blooded reptilian haste, he refroze him into to the shape of a Hoover. Charlie wasn't fazed though, he just zoomed about the place, sucking up Inuits. Ha ha! Oh. The Inuits didn't mind; they loved it in Charlie's pink, tight warm belly pouch, and they refused to come out. Charlie said, \"I'm cool with that,\" and set fire to a posh hammer to make it official. he downside was that the Inuits suffocated immediately. It was air-tight in there. Charlie panicked and fired the tiny Inuit bullets into Eric's crocodile peepers. The green shape was frozen. After a quick drink, Charlie stole Eric Phillips's magic carpet and left for Seattle. Charlie was racked with guilt: he'd killed 50 Inuits, noone needs that. He decided to spend the rest of his life putting small hairstyles onto boots, monkey nuts, trumpets and spanners.".as_bytes(); + let text: [u8; 1405] = "Charlie is genius, right. He's made from a million pieces of old bubble gum. Imagine that! In the summer of 1976, on his way home from an Alice Cooper concert, Charlie started to melt onto the pavement. It was too hot in L.A., and he melted like a pink bitch. Luckily though, there was Eric Phillips, a local crocodile who dabbled in black magic. He took pity on Charlie and scraped him off the floor with a pair of fish slicers. He poured him into an antique soup ladle, and boarded his magic carpet. Destination: Alaska! Eric Phillips decided to refreeze Charlie, but in his cold-blooded reptilian haste, he refroze him into to the shape of a Hoover. Charlie wasn't fazed though, he just zoomed about the place, sucking up Inuits. Ha ha! Oh. The Inuits didn't mind; they loved it in Charlie's pink, tight warm belly pouch, and they refused to come out. Charlie said, \"I'm cool with that,\" and set fire to a posh hammer to make it official. he downside was that the Inuits suffocated immediately. It was air-tight in there. Charlie panicked and fired the tiny Inuit bullets into Eric's crocodile peepers. The green shape was frozen. After a quick drink, Charlie stole Eric Phillips's magic carpet and left for Seattle. Charlie was racked with guilt: he'd killed 50 Inuits, noone needs that. He decided to spend the rest of his life putting small hairstyles onto boots, monkey nuts, trumpets and spanners." + .as_bytes(); println(f"text = {text}"); let mut slices: [Field; 46 + 3] = [0; 46 + 3]; for i in 0..46 { @@ -703,17 +861,18 @@ mod test { } } // let start_byte = 26; - let num_bytes = 0; let start_byte: u32 = 0; let mut expected_slices: [Field; 3] = build_slices_for_test(text, start_byte, num_bytes); - let result_slices: [Field; 3] = slice_fields(slices, start_byte as Field, num_bytes as Field); + let result_slices: [Field; 3] = + slice_fields(slices, start_byte as Field, num_bytes as Field); assert(result_slices == expected_slices); } #[test] fn test_slice_fields() { - let text: [u8; 1405] = "Charlie is genius, right. He's made from a million pieces of old bubble gum. Imagine that! In the summer of 1976, on his way home from an Alice Cooper concert, Charlie started to melt onto the pavement. It was too hot in L.A., and he melted like a pink bitch. Luckily though, there was Eric Phillips, a local crocodile who dabbled in black magic. He took pity on Charlie and scraped him off the floor with a pair of fish slicers. He poured him into an antique soup ladle, and boarded his magic carpet. Destination: Alaska! Eric Phillips decided to refreeze Charlie, but in his cold-blooded reptilian haste, he refroze him into to the shape of a Hoover. Charlie wasn't fazed though, he just zoomed about the place, sucking up Inuits. Ha ha! Oh. The Inuits didn't mind; they loved it in Charlie's pink, tight warm belly pouch, and they refused to come out. Charlie said, \"I'm cool with that,\" and set fire to a posh hammer to make it official. he downside was that the Inuits suffocated immediately. It was air-tight in there. Charlie panicked and fired the tiny Inuit bullets into Eric's crocodile peepers. The green shape was frozen. After a quick drink, Charlie stole Eric Phillips's magic carpet and left for Seattle. Charlie was racked with guilt: he'd killed 50 Inuits, noone needs that. He decided to spend the rest of his life putting small hairstyles onto boots, monkey nuts, trumpets and spanners.".as_bytes(); + let text: [u8; 1405] = "Charlie is genius, right. He's made from a million pieces of old bubble gum. Imagine that! In the summer of 1976, on his way home from an Alice Cooper concert, Charlie started to melt onto the pavement. It was too hot in L.A., and he melted like a pink bitch. Luckily though, there was Eric Phillips, a local crocodile who dabbled in black magic. He took pity on Charlie and scraped him off the floor with a pair of fish slicers. He poured him into an antique soup ladle, and boarded his magic carpet. Destination: Alaska! Eric Phillips decided to refreeze Charlie, but in his cold-blooded reptilian haste, he refroze him into to the shape of a Hoover. Charlie wasn't fazed though, he just zoomed about the place, sucking up Inuits. Ha ha! Oh. The Inuits didn't mind; they loved it in Charlie's pink, tight warm belly pouch, and they refused to come out. Charlie said, \"I'm cool with that,\" and set fire to a posh hammer to make it official. he downside was that the Inuits suffocated immediately. It was air-tight in there. Charlie panicked and fired the tiny Inuit bullets into Eric's crocodile peepers. The green shape was frozen. After a quick drink, Charlie stole Eric Phillips's magic carpet and left for Seattle. Charlie was racked with guilt: he'd killed 50 Inuits, noone needs that. He decided to spend the rest of his life putting small hairstyles onto boots, monkey nuts, trumpets and spanners." + .as_bytes(); println(f"text = {text}"); let mut slices: [Field; 46 + 3] = [0; 46 + 3]; for i in 0..46 { @@ -726,54 +885,28 @@ mod test { } } // let start_byte = 26; + let byte_sizes: [u32; 10] = [0, 1, 5, 30, 31, 32, 47, 61, 62, 90]; - let byte_sizes: [u32; 10] = [ - 0, - 1, - 5, - 30, - 31, - 32, - 47, - 61, - 62, - 90 - ]; - - let byte_positions: [u32; 18] = [ - 0, - 1, - 14, - 15, - 16, - 20, - 28, - 29, - 30, - 31, - 32, - 33, - 38, - 40, - 55, - 60, - 61, - 62 - ]; + let byte_positions: [u32; 18] = + [0, 1, 14, 15, 16, 20, 28, 29, 30, 31, 32, 33, 38, 40, 55, 60, 61, 62]; for i in 0..10 { let num_bytes = byte_sizes[i]; for j in 0..18 { let start_byte: u32 = byte_positions[j]; - let mut expected_slices: [Field; 3] = build_slices_for_test(text, start_byte, num_bytes); - let result_slices: [Field; 3] = slice_fields(slices, start_byte as Field, num_bytes as Field); + let mut expected_slices: [Field; 3] = + build_slices_for_test(text, start_byte, num_bytes); + let result_slices: [Field; 3] = + slice_fields(slices, start_byte as Field, num_bytes as Field); assert(result_slices == expected_slices); } for j in 0..18 { let start_byte: u32 = text.len() - num_bytes - byte_positions[j]; - let mut expected_slices: [Field; 3] = build_slices_for_test(text, start_byte, num_bytes); - let result_slices: [Field; 3] = slice_fields(slices, start_byte as Field, num_bytes as Field); + let mut expected_slices: [Field; 3] = + build_slices_for_test(text, start_byte, num_bytes); + let result_slices: [Field; 3] = + slice_fields(slices, start_byte as Field, num_bytes as Field); assert(result_slices == expected_slices); } } diff --git a/src/_table_generation/make_tables.nr b/src/_table_generation/make_tables.nr index 2302f90..9d19e4f 100644 --- a/src/_table_generation/make_tables.nr +++ b/src/_table_generation/make_tables.nr @@ -7,30 +7,47 @@ mod CaptureMode { global LITERAL_CAPTURE = 3; global ERROR_CAPTURE = 4; } -use crate::enums::Token::{ - BEGIN_ARRAY_TOKEN, NO_TOKEN, END_OBJECT_TOKEN, END_ARRAY_TOKEN, KEY_SEPARATOR_TOKEN, - VALUE_SEPARATOR_TOKEN, KEY_TOKEN, BEGIN_OBJECT_TOKEN, NUMERIC_TOKEN, STRING_TOKEN, LITERAL_TOKEN, - NUM_TOKENS -}; use crate::_table_generation::make_tables::CaptureMode::STRING_CAPTURE; use crate::_table_generation::make_tables_subtables::{ - GRAMMAR_CAPTURE_TABLE, STRING_CAPTURE_TABLE, NUMERIC_CAPTURE_TABLE, LITERAL_CAPTURE_TABLE, - GRAMMAR_CAPTURE_TOKEN, STRING_CAPTURE_TOKEN, NUMERIC_CAPTURE_TOKEN, LITERAL_CAPTURE_TOKEN, - GRAMMAR_CAPTURE_PUSH_TRANSCRIPT, STRING_CAPTURE_PUSH_TRANSCRIPT, NUMERIC_CAPTURE_PUSH_TRANSCRIPT, - LITERAL_CAPTURE_PUSH_TRANSCRIPT, GRAMMAR_CAPTURE_INCREASE_LENGTH, STRING_CAPTURE_INCREASE_LENGTH, - NUMERIC_CAPTURE_INCREASE_LENGTH, LITERAL_CAPTURE_INCREASE_LENGTH, GRAMMAR_CAPTURE_ERROR_FLAG, - STRING_CAPTURE_ERROR_FLAG, NUMERIC_CAPTURE_ERROR_FLAG, LITERAL_CAPTURE_ERROR_FLAG, - TOKEN_IS_NUMERIC_OR_LITERAL + GRAMMAR_CAPTURE_ERROR_FLAG, GRAMMAR_CAPTURE_INCREASE_LENGTH, GRAMMAR_CAPTURE_PUSH_TRANSCRIPT, + GRAMMAR_CAPTURE_TABLE, GRAMMAR_CAPTURE_TOKEN, LITERAL_CAPTURE_ERROR_FLAG, + LITERAL_CAPTURE_INCREASE_LENGTH, LITERAL_CAPTURE_PUSH_TRANSCRIPT, LITERAL_CAPTURE_TABLE, + LITERAL_CAPTURE_TOKEN, NUMERIC_CAPTURE_ERROR_FLAG, NUMERIC_CAPTURE_INCREASE_LENGTH, + NUMERIC_CAPTURE_PUSH_TRANSCRIPT, NUMERIC_CAPTURE_TABLE, NUMERIC_CAPTURE_TOKEN, + STRING_CAPTURE_ERROR_FLAG, STRING_CAPTURE_INCREASE_LENGTH, STRING_CAPTURE_PUSH_TRANSCRIPT, + STRING_CAPTURE_TABLE, STRING_CAPTURE_TOKEN, TOKEN_IS_NUMERIC_OR_LITERAL, +}; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER, SINGLE_VALUE_LAYER}; +use crate::enums::Token::{ + BEGIN_ARRAY_TOKEN, BEGIN_OBJECT_TOKEN, END_ARRAY_TOKEN, END_OBJECT_TOKEN, KEY_SEPARATOR_TOKEN, + KEY_TOKEN, LITERAL_TOKEN, NO_TOKEN, NUM_TOKENS, NUMERIC_TOKEN, STRING_TOKEN, + VALUE_SEPARATOR_TOKEN, }; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER, SINGLE_VALUE_LAYER}; use crate::token_flags::TokenFlags; use crate::transcript_entry::ValidationFlags; -global CAPTURE_TABLE: [[Field; 128]; 4] = [GRAMMAR_CAPTURE_TABLE, STRING_CAPTURE_TABLE, NUMERIC_CAPTURE_TABLE, LITERAL_CAPTURE_TABLE]; -global CAPTURE_TOKEN: [[Field; 128]; 4] = [GRAMMAR_CAPTURE_TOKEN, STRING_CAPTURE_TOKEN, NUMERIC_CAPTURE_TOKEN, LITERAL_CAPTURE_TOKEN]; -global CAPTURE_PUSH_TRANSCRIPT: [[bool; 128]; 4] = [GRAMMAR_CAPTURE_PUSH_TRANSCRIPT, STRING_CAPTURE_PUSH_TRANSCRIPT, NUMERIC_CAPTURE_PUSH_TRANSCRIPT, LITERAL_CAPTURE_PUSH_TRANSCRIPT]; -global CAPTURE_INCREASE_LENGTH: [[bool; 128]; 4] = [GRAMMAR_CAPTURE_INCREASE_LENGTH, STRING_CAPTURE_INCREASE_LENGTH, NUMERIC_CAPTURE_INCREASE_LENGTH, LITERAL_CAPTURE_INCREASE_LENGTH]; -global CAPTURE_ERROR_FLAG: [[bool; 128]; 4] = [GRAMMAR_CAPTURE_ERROR_FLAG, STRING_CAPTURE_ERROR_FLAG, NUMERIC_CAPTURE_ERROR_FLAG, LITERAL_CAPTURE_ERROR_FLAG]; +global CAPTURE_TABLE: [[Field; 128]; 4] = + [GRAMMAR_CAPTURE_TABLE, STRING_CAPTURE_TABLE, NUMERIC_CAPTURE_TABLE, LITERAL_CAPTURE_TABLE]; +global CAPTURE_TOKEN: [[Field; 128]; 4] = + [GRAMMAR_CAPTURE_TOKEN, STRING_CAPTURE_TOKEN, NUMERIC_CAPTURE_TOKEN, LITERAL_CAPTURE_TOKEN]; +global CAPTURE_PUSH_TRANSCRIPT: [[bool; 128]; 4] = [ + GRAMMAR_CAPTURE_PUSH_TRANSCRIPT, + STRING_CAPTURE_PUSH_TRANSCRIPT, + NUMERIC_CAPTURE_PUSH_TRANSCRIPT, + LITERAL_CAPTURE_PUSH_TRANSCRIPT, +]; +global CAPTURE_INCREASE_LENGTH: [[bool; 128]; 4] = [ + GRAMMAR_CAPTURE_INCREASE_LENGTH, + STRING_CAPTURE_INCREASE_LENGTH, + NUMERIC_CAPTURE_INCREASE_LENGTH, + LITERAL_CAPTURE_INCREASE_LENGTH, +]; +global CAPTURE_ERROR_FLAG: [[bool; 128]; 4] = [ + GRAMMAR_CAPTURE_ERROR_FLAG, + STRING_CAPTURE_ERROR_FLAG, + NUMERIC_CAPTURE_ERROR_FLAG, + LITERAL_CAPTURE_ERROR_FLAG, +]; unconstrained fn make_capture_table_full() -> [[Field; 128]; 4] { let mut result: [[Field; 128]; 4] = [[0; 128]; 4]; @@ -74,119 +91,97 @@ unconstrained fn make_token_validation_table() -> [Field; NUM_TOKENS * NUM_TOKEN // 11 tokens , 3 layers = 11 * 11 * 3 = 121 * 3 = 343 // object contexts let no_change = ValidationFlags { push_layer: 0, push_layer_type_of_root: 0, pop_layer: 0 }; - let error_flags = ValidationFlags { push_layer: 0x1000000, push_layer_type_of_root: 0, pop_layer: 0 }; - let begin_new_object_flags = ValidationFlags { push_layer: 1, push_layer_type_of_root: OBJECT_LAYER, pop_layer: 0 }; - let begin_new_array_flags = ValidationFlags { push_layer: 1, push_layer_type_of_root: ARRAY_LAYER, pop_layer: 0 }; - let end_object_or_array_flags: ValidationFlags = ValidationFlags { push_layer: 0, push_layer_type_of_root: 0, pop_layer: 1 }; + let error_flags = + ValidationFlags { push_layer: 0x1000000, push_layer_type_of_root: 0, pop_layer: 0 }; + let begin_new_object_flags = + ValidationFlags { push_layer: 1, push_layer_type_of_root: OBJECT_LAYER, pop_layer: 0 }; + let begin_new_array_flags = + ValidationFlags { push_layer: 1, push_layer_type_of_root: ARRAY_LAYER, pop_layer: 0 }; + let end_object_or_array_flags: ValidationFlags = + ValidationFlags { push_layer: 0, push_layer_type_of_root: 0, pop_layer: 1 }; let token_ids: [Field; NUM_TOKENS] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let error_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|_| error_flags.to_field()); - let object_layer_begin_object_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { + let object_layer_begin_object_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { let mut result = error_flags.to_field(); - if (token == KEY_TOKEN) - { + if (token == KEY_TOKEN) { result = no_change.to_field(); } - if (token == END_OBJECT_TOKEN) - { + if (token == END_OBJECT_TOKEN) { result = end_object_or_array_flags.to_field(); } result - } - ); - - let object_layer_key_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = no_change.to_field(); - if (token != KEY_SEPARATOR_TOKEN) - { - result = error_flags.to_field(); - } - result + }); + + let object_layer_key_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = no_change.to_field(); + if (token != KEY_SEPARATOR_TOKEN) { + result = error_flags.to_field(); } - ); + result + }); - let object_layer_key_separator_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = error_flags.to_field(); - if (token == STRING_TOKEN) | (token == LITERAL_TOKEN) | (token == NUMERIC_TOKEN) - { - result = no_change.to_field(); - } - if (token == BEGIN_ARRAY_TOKEN) - { - result = begin_new_array_flags.to_field(); - } - if (token == BEGIN_OBJECT_TOKEN) - { - result = begin_new_object_flags.to_field(); - } - result + let object_layer_key_separator_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = error_flags.to_field(); + if (token == STRING_TOKEN) | (token == LITERAL_TOKEN) | (token == NUMERIC_TOKEN) { + result = no_change.to_field(); } - ); + if (token == BEGIN_ARRAY_TOKEN) { + result = begin_new_array_flags.to_field(); + } + if (token == BEGIN_OBJECT_TOKEN) { + result = begin_new_object_flags.to_field(); + } + result + }); - let object_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = error_flags.to_field(); - if (token == VALUE_SEPARATOR_TOKEN) - { - result = no_change.to_field(); - } - if (token == END_OBJECT_TOKEN) - { - result = end_object_or_array_flags.to_field(); - } - result + let object_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = error_flags.to_field(); + if (token == VALUE_SEPARATOR_TOKEN) { + result = no_change.to_field(); } - ); + if (token == END_OBJECT_TOKEN) { + result = end_object_or_array_flags.to_field(); + } + result + }); - let object_layer_end_object_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = error_flags.to_field(); - if (token == VALUE_SEPARATOR_TOKEN) - { - result = no_change.to_field(); - } - if (token == END_OBJECT_TOKEN) - { - result = end_object_or_array_flags.to_field(); - } - // we can reach the end of the JSON via this path - if (token == NO_TOKEN) - { - result = no_change.to_field(); - } - result + let object_layer_end_object_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = error_flags.to_field(); + if (token == VALUE_SEPARATOR_TOKEN) { + result = no_change.to_field(); + } + if (token == END_OBJECT_TOKEN) { + result = end_object_or_array_flags.to_field(); } - ); + // we can reach the end of the JSON via this path + if (token == NO_TOKEN) { + result = no_change.to_field(); + } + result + }); - let object_layer_value_separator_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = error_flags.to_field(); - if (token == KEY_TOKEN) - { - result = no_change.to_field(); - } - result + let object_layer_value_separator_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = error_flags.to_field(); + if (token == KEY_TOKEN) { + result = no_change.to_field(); } - ); + result + }); let mut object_layer_flags: [[Field; NUM_TOKENS]; NUM_TOKENS] = [[0; NUM_TOKENS]; NUM_TOKENS]; let mut array_layer_flags: [[Field; NUM_TOKENS]; NUM_TOKENS] = [[0; NUM_TOKENS]; NUM_TOKENS]; - let mut single_value_layer_flags: [[Field; NUM_TOKENS]; NUM_TOKENS] = [[0; NUM_TOKENS]; NUM_TOKENS]; + let mut single_value_layer_flags: [[Field; NUM_TOKENS]; NUM_TOKENS] = + [[0; NUM_TOKENS]; NUM_TOKENS]; - let no_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { + let no_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { let mut result = error_flags.to_field(); - if (token == NO_TOKEN) - { + if (token == NO_TOKEN) { result = no_change.to_field(); } result - } - ); + }); object_layer_flags[NO_TOKEN] = no_token_outcomes; object_layer_flags[BEGIN_OBJECT_TOKEN] = object_layer_begin_object_token_outcomes; @@ -200,110 +195,82 @@ unconstrained fn make_token_validation_table() -> [Field; NUM_TOKENS * NUM_TOKEN object_layer_flags[LITERAL_TOKEN] = object_layer_value_token_outcomes; object_layer_flags[KEY_TOKEN] = object_layer_key_token_outcomes; - let array_layer_begin_array_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { + let array_layer_begin_array_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { let mut result = error_flags.to_field(); - if (token == STRING_TOKEN ) | (token == LITERAL_TOKEN) | (token == NUMERIC_TOKEN) - { + if (token == STRING_TOKEN) | (token == LITERAL_TOKEN) | (token == NUMERIC_TOKEN) { result = no_change.to_field(); } - if (token == BEGIN_OBJECT_TOKEN) - { + if (token == BEGIN_OBJECT_TOKEN) { result = begin_new_object_flags.to_field(); } - if (token == BEGIN_ARRAY_TOKEN) - { + if (token == BEGIN_ARRAY_TOKEN) { result = begin_new_array_flags.to_field(); } - if (token == END_ARRAY_TOKEN) - { + if (token == END_ARRAY_TOKEN) { result = end_object_or_array_flags.to_field(); } result - } - ); + }); - let array_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { + let array_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { let mut result = error_flags.to_field(); - if (token == VALUE_SEPARATOR_TOKEN ) - { + if (token == VALUE_SEPARATOR_TOKEN) { result = no_change.to_field(); } - if (token == END_ARRAY_TOKEN) - { + if (token == END_ARRAY_TOKEN) { result = end_object_or_array_flags.to_field(); } result - } - ); + }); - let array_layer_value_separator_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { + let array_layer_value_separator_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { let mut result = error_flags.to_field(); - if (token == STRING_TOKEN ) | (token == LITERAL_TOKEN) | (token == NUMERIC_TOKEN) - { + if (token == STRING_TOKEN) | (token == LITERAL_TOKEN) | (token == NUMERIC_TOKEN) { result = no_change.to_field(); } - if (token == BEGIN_OBJECT_TOKEN) - { + if (token == BEGIN_OBJECT_TOKEN) { result = begin_new_object_flags.to_field(); } - if (token == BEGIN_ARRAY_TOKEN) - { + if (token == BEGIN_ARRAY_TOKEN) { result = begin_new_array_flags.to_field(); } result - } - ); - - let array_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = error_flags.to_field(); - if (token == VALUE_SEPARATOR_TOKEN) - { - result = no_change.to_field(); - } - if (token == END_ARRAY_TOKEN) - { - result = end_object_or_array_flags.to_field(); - } - result - } - ); - let array_layer_end_array_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = error_flags.to_field(); - if (token == VALUE_SEPARATOR_TOKEN) - { - result = no_change.to_field(); - } - if (token == END_ARRAY_TOKEN) - { - result = end_object_or_array_flags.to_field(); - } - // we can reach the end of the JSON via this path - if (token == NO_TOKEN) - { - result = no_change.to_field(); - } - result - } - ); - let array_layer_end_object_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { - let mut result = error_flags.to_field(); - if (token == VALUE_SEPARATOR_TOKEN) - { - result = no_change.to_field(); - } - if (token == END_ARRAY_TOKEN) - { - result = end_object_or_array_flags.to_field(); - } - result + }); + + let array_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = error_flags.to_field(); + if (token == VALUE_SEPARATOR_TOKEN) { + result = no_change.to_field(); } - ); + if (token == END_ARRAY_TOKEN) { + result = end_object_or_array_flags.to_field(); + } + result + }); + let array_layer_end_array_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = error_flags.to_field(); + if (token == VALUE_SEPARATOR_TOKEN) { + result = no_change.to_field(); + } + if (token == END_ARRAY_TOKEN) { + result = end_object_or_array_flags.to_field(); + } + // we can reach the end of the JSON via this path + if (token == NO_TOKEN) { + result = no_change.to_field(); + } + result + }); + let array_layer_end_object_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { + let mut result = error_flags.to_field(); + if (token == VALUE_SEPARATOR_TOKEN) { + result = no_change.to_field(); + } + if (token == END_ARRAY_TOKEN) { + result = end_object_or_array_flags.to_field(); + } + result + }); array_layer_flags[NO_TOKEN] = no_token_outcomes; array_layer_flags[BEGIN_OBJECT_TOKEN] = error_token_outcomes; @@ -317,17 +284,14 @@ unconstrained fn make_token_validation_table() -> [Field; NUM_TOKENS * NUM_TOKEN array_layer_flags[LITERAL_TOKEN] = array_layer_value_token_outcomes; array_layer_flags[KEY_TOKEN] = error_token_outcomes; - let single_value_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map( - |token| { + let single_value_layer_value_token_outcomes: [Field; NUM_TOKENS] = token_ids.map(|token| { let mut result = error_flags.to_field(); // we have reached the end of json - if (token == NO_TOKEN) - { + if (token == NO_TOKEN) { result = no_change.to_field(); } result - } - ); + }); single_value_layer_flags[NO_TOKEN] = no_token_outcomes; single_value_layer_flags[BEGIN_OBJECT_TOKEN] = error_token_outcomes; single_value_layer_flags[END_OBJECT_TOKEN] = single_value_layer_value_token_outcomes; @@ -340,13 +304,17 @@ unconstrained fn make_token_validation_table() -> [Field; NUM_TOKENS * NUM_TOKEN single_value_layer_flags[LITERAL_TOKEN] = single_value_layer_value_token_outcomes; single_value_layer_flags[KEY_TOKEN] = no_token_outcomes; - let mut flattened_flags: [Field; NUM_TOKENS * NUM_TOKENS * 3] = [0; NUM_TOKENS * NUM_TOKENS * 3]; + let mut flattened_flags: [Field; NUM_TOKENS * NUM_TOKENS * 3] = + [0; NUM_TOKENS * NUM_TOKENS * 3]; let NN = (NUM_TOKENS * NUM_TOKENS) as Field; for j in 0..NUM_TOKENS as u32 { for k in 0..NUM_TOKENS as u32 { - flattened_flags[OBJECT_LAYER * NN + j as Field * (NUM_TOKENS as Field) + k as Field] = object_layer_flags[j][k]; - flattened_flags[ARRAY_LAYER * NN + j as Field * (NUM_TOKENS as Field) + k as Field] = array_layer_flags[j][k]; - flattened_flags[SINGLE_VALUE_LAYER * NN + j as Field * (NUM_TOKENS as Field) + k as Field] = single_value_layer_flags[j][k]; + flattened_flags[OBJECT_LAYER * NN + j as Field * (NUM_TOKENS as Field) + k as Field] = + object_layer_flags[j][k]; + flattened_flags[ARRAY_LAYER * NN + j as Field * (NUM_TOKENS as Field) + k as Field] = + array_layer_flags[j][k]; + flattened_flags[SINGLE_VALUE_LAYER * NN + j as Field * (NUM_TOKENS as Field) + k as Field] = + single_value_layer_flags[j][k]; } } flattened_flags @@ -416,9 +384,7 @@ unconstrained fn make_process_raw_transcript_table() -> [Field; 1024] { let new_grammar = GRAMMAR_CAPTURE_PUSH_TRANSCRIPT[j] as Field; let scan_token = GRAMMAR_CAPTURE_TOKEN[j]; let new_grammar = ((new_grammar == 1) & (token_is_numeric_or_literal == 1)) as Field; - result[i * 256 + j] = token - + new_grammar * 0x100 - + scan_token * 0x10000; + result[i * 256 + j] = token + new_grammar * 0x100 + scan_token * 0x10000; } for j in 128..256 { result[i * 256 + j] = 0; @@ -442,7 +408,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: OBJECT_LAYER, is_key_token: 0, is_value_token: 0, - preserve_num_entries: 1 + preserve_num_entries: 1, }; let mut key_token_flags: TokenFlags = TokenFlags { create_json_entry: 0, @@ -451,7 +417,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: OBJECT_LAYER, is_key_token: 1, is_value_token: 0, - preserve_num_entries: 1 + preserve_num_entries: 1, }; let begin_object_flags = TokenFlags { create_json_entry: 0, @@ -460,7 +426,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: OBJECT_LAYER, is_key_token: 0, is_value_token: 0, - preserve_num_entries: 0 + preserve_num_entries: 0, }; let begin_array_flags = TokenFlags { @@ -470,7 +436,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: ARRAY_LAYER, is_key_token: 0, is_value_token: 0, - preserve_num_entries: 0 + preserve_num_entries: 0, }; let mut end_object_flags = TokenFlags { @@ -480,7 +446,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: 0, is_key_token: 0, is_value_token: 0, - preserve_num_entries: 0 + preserve_num_entries: 0, }; let mut end_array_flags = TokenFlags { @@ -490,7 +456,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: 0, is_key_token: 0, is_value_token: 0, - preserve_num_entries: 0 + preserve_num_entries: 0, }; let mut string_flags = TokenFlags { @@ -500,7 +466,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: OBJECT_LAYER, is_key_token: 0, is_value_token: 1, - preserve_num_entries: 1 + preserve_num_entries: 1, }; let mut numeric_flags = TokenFlags { @@ -510,7 +476,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: OBJECT_LAYER, is_key_token: 0, is_value_token: 1, - preserve_num_entries: 1 + preserve_num_entries: 1, }; let mut literal_flags = TokenFlags { @@ -520,7 +486,7 @@ unconstrained fn generate_token_flags_table() -> [Field; NUM_TOKENS * 2] { new_context: OBJECT_LAYER, is_key_token: 0, is_value_token: 1, - preserve_num_entries: 1 + preserve_num_entries: 1, }; flags[NO_TOKEN] = no_token_flags; diff --git a/src/_table_generation/make_tables_subtables.nr b/src/_table_generation/make_tables_subtables.nr index 7a031cd..92b6885 100644 --- a/src/_table_generation/make_tables_subtables.nr +++ b/src/_table_generation/make_tables_subtables.nr @@ -1,2631 +1,2761 @@ -use crate::_table_generation::make_tables::CaptureMode::{GRAMMAR_CAPTURE, STRING_CAPTURE, NUMERIC_CAPTURE, LITERAL_CAPTURE, ERROR_CAPTURE}; +use crate::_table_generation::make_tables::CaptureMode::{ + ERROR_CAPTURE, GRAMMAR_CAPTURE, LITERAL_CAPTURE, NUMERIC_CAPTURE, STRING_CAPTURE, +}; use crate::enums::Token::{ - NO_TOKEN, BEGIN_OBJECT_TOKEN, END_OBJECT_TOKEN, BEGIN_ARRAY_TOKEN, END_ARRAY_TOKEN, - KEY_SEPARATOR_TOKEN, VALUE_SEPARATOR_TOKEN, STRING_TOKEN, NUMERIC_TOKEN, LITERAL_TOKEN, KEY_TOKEN + BEGIN_ARRAY_TOKEN, BEGIN_OBJECT_TOKEN, END_ARRAY_TOKEN, END_OBJECT_TOKEN, KEY_SEPARATOR_TOKEN, + KEY_TOKEN, LITERAL_TOKEN, NO_TOKEN, NUMERIC_TOKEN, STRING_TOKEN, VALUE_SEPARATOR_TOKEN, }; -global TOKEN_IS_NUMERIC_OR_LITERAL: [Field; 11] = [ -0,0,0,0,0,0,0,0,1,1,0 -]; +global TOKEN_IS_NUMERIC_OR_LITERAL: [Field; 11] = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]; global GRAMMAR_CAPTURE_TABLE: [Field; 128] = [ - /* NULL */ ERROR_CAPTURE, - /* SOH */ ERROR_CAPTURE, - /* TXT */ ERROR_CAPTURE, - /* ETX */ ERROR_CAPTURE, - /* EOT */ ERROR_CAPTURE, - /* ENQ */ ERROR_CAPTURE, - /* ACK */ ERROR_CAPTURE, - /* BEL */ ERROR_CAPTURE, - /* BS */ ERROR_CAPTURE, - /* TAB */ GRAMMAR_CAPTURE, - /* NL */ GRAMMAR_CAPTURE, - /* VT */ ERROR_CAPTURE, - /* FF */ ERROR_CAPTURE, - /* CR */ GRAMMAR_CAPTURE, - /* SI */ ERROR_CAPTURE, - /* SO */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* SPACE */ GRAMMAR_CAPTURE, - /*"!"*/ ERROR_CAPTURE, - /* " */ STRING_CAPTURE, - /*"#"*/ ERROR_CAPTURE, - /*"$"*/ ERROR_CAPTURE, - /*"%"*/ ERROR_CAPTURE, - /*"&"*/ ERROR_CAPTURE, - /*"'"*/ ERROR_CAPTURE, - /*"("*/ ERROR_CAPTURE, - /*")"*/ ERROR_CAPTURE, - /*"*"*/ ERROR_CAPTURE, - /*"+"*/ ERROR_CAPTURE, - /*","*/ GRAMMAR_CAPTURE, - /*"-"*/ ERROR_CAPTURE, - /*"."*/ ERROR_CAPTURE, - /*"/"*/ ERROR_CAPTURE, - /*"0"*/ NUMERIC_CAPTURE, - /*"1"*/ NUMERIC_CAPTURE, - /*"2"*/ NUMERIC_CAPTURE, - /*"3"*/ NUMERIC_CAPTURE, - /*"4"*/ NUMERIC_CAPTURE, - /*"5"*/ NUMERIC_CAPTURE, - /*"6"*/ NUMERIC_CAPTURE, - /*"7"*/ NUMERIC_CAPTURE, - /*"8"*/ NUMERIC_CAPTURE, - /*"9"*/ NUMERIC_CAPTURE, - /*":"*/ GRAMMAR_CAPTURE, - /*";"*/ ERROR_CAPTURE, - /*"<"*/ ERROR_CAPTURE, - /*"="*/ ERROR_CAPTURE, - /*">"*/ ERROR_CAPTURE, - /*"?"*/ ERROR_CAPTURE, - /*"@"*/ ERROR_CAPTURE, - /*"A"*/ ERROR_CAPTURE, - /*"B"*/ ERROR_CAPTURE, - /*"C"*/ ERROR_CAPTURE, - /*"D"*/ ERROR_CAPTURE, - /*"E"*/ ERROR_CAPTURE, - /*"F"*/ ERROR_CAPTURE, - /*"G"*/ ERROR_CAPTURE, - /*"H"*/ ERROR_CAPTURE, - /*"I"*/ ERROR_CAPTURE, - /*"J"*/ ERROR_CAPTURE, - /*"K"*/ ERROR_CAPTURE, - /*"L"*/ ERROR_CAPTURE, - /*"M"*/ ERROR_CAPTURE, - /*"N"*/ ERROR_CAPTURE, - /*"O"*/ ERROR_CAPTURE, - /*"P"*/ ERROR_CAPTURE, - /*"Q"*/ ERROR_CAPTURE, - /*"R"*/ ERROR_CAPTURE, - /*"S"*/ ERROR_CAPTURE, - /*"T"*/ ERROR_CAPTURE, - /*"U"*/ ERROR_CAPTURE, - /*"V"*/ ERROR_CAPTURE, - /*"W"*/ ERROR_CAPTURE, - /*"X"*/ ERROR_CAPTURE, - /*"Y"*/ ERROR_CAPTURE, - /*"Z"*/ ERROR_CAPTURE, - /*"["*/ GRAMMAR_CAPTURE, - /*"\"*/ ERROR_CAPTURE, - /*"]"*/ GRAMMAR_CAPTURE, - /*"^"*/ ERROR_CAPTURE, - /*"_"*/ ERROR_CAPTURE, - /*"`"*/ ERROR_CAPTURE, - /*"a"*/ ERROR_CAPTURE, - /*"b"*/ ERROR_CAPTURE, - /*"c"*/ ERROR_CAPTURE, - /*"d"*/ ERROR_CAPTURE, - /*"e"*/ ERROR_CAPTURE, - /*"f"*/ LITERAL_CAPTURE, // false = literal - /*"g"*/ ERROR_CAPTURE, - /*"h"*/ ERROR_CAPTURE, - /*"i"*/ ERROR_CAPTURE, - /*"j"*/ ERROR_CAPTURE, - /*"k"*/ ERROR_CAPTURE, - /*"l"*/ ERROR_CAPTURE, - /*"m"*/ ERROR_CAPTURE, - /*"n"*/ LITERAL_CAPTURE, // null = literal - /*"o"*/ ERROR_CAPTURE, - /*"p"*/ ERROR_CAPTURE, - /*"q"*/ ERROR_CAPTURE, - /*"r"*/ ERROR_CAPTURE, - /*"s"*/ ERROR_CAPTURE, - /*"t"*/ LITERAL_CAPTURE, // true = literal - /*"u"*/ ERROR_CAPTURE, - /*"v"*/ ERROR_CAPTURE, - /*"w"*/ ERROR_CAPTURE, - /*"x"*/ ERROR_CAPTURE, - /*"y"*/ ERROR_CAPTURE, - /*"z"*/ ERROR_CAPTURE, - /*"{"*/ GRAMMAR_CAPTURE, - /*"|"*/ ERROR_CAPTURE, - /*"}"*/ GRAMMAR_CAPTURE, - /*"~"*/ ERROR_CAPTURE, - /*DEL*/ ERROR_CAPTURE, - ]; + /* NULL */ ERROR_CAPTURE, + /* SOH */ ERROR_CAPTURE, + /* TXT */ ERROR_CAPTURE, + /* ETX */ ERROR_CAPTURE, + /* EOT */ ERROR_CAPTURE, + /* ENQ */ ERROR_CAPTURE, + /* ACK */ ERROR_CAPTURE, + /* BEL */ ERROR_CAPTURE, + /* BS */ ERROR_CAPTURE, + /* TAB */ GRAMMAR_CAPTURE, + /* NL */ GRAMMAR_CAPTURE, + /* VT */ ERROR_CAPTURE, + /* FF */ ERROR_CAPTURE, + /* CR */ GRAMMAR_CAPTURE, + /* SI */ ERROR_CAPTURE, + /* SO */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* SPACE */ GRAMMAR_CAPTURE, + /*"!"*/ ERROR_CAPTURE, + /* " */ STRING_CAPTURE, + /*"#"*/ ERROR_CAPTURE, + /*"$"*/ ERROR_CAPTURE, + /*"%"*/ ERROR_CAPTURE, + /*"&"*/ ERROR_CAPTURE, + /*"'"*/ ERROR_CAPTURE, + /*"("*/ ERROR_CAPTURE, + /*")"*/ ERROR_CAPTURE, + /*"*"*/ ERROR_CAPTURE, + /*"+"*/ ERROR_CAPTURE, + /*","*/ GRAMMAR_CAPTURE, + /*"-"*/ ERROR_CAPTURE, + /*"."*/ ERROR_CAPTURE, + /*"/"*/ ERROR_CAPTURE, + /*"0"*/ NUMERIC_CAPTURE, + /*"1"*/ NUMERIC_CAPTURE, + /*"2"*/ NUMERIC_CAPTURE, + /*"3"*/ NUMERIC_CAPTURE, + /*"4"*/ NUMERIC_CAPTURE, + /*"5"*/ NUMERIC_CAPTURE, + /*"6"*/ NUMERIC_CAPTURE, + /*"7"*/ NUMERIC_CAPTURE, + /*"8"*/ NUMERIC_CAPTURE, + /*"9"*/ NUMERIC_CAPTURE, + /*":"*/ GRAMMAR_CAPTURE, + /*";"*/ ERROR_CAPTURE, + /*"<"*/ ERROR_CAPTURE, + /*"="*/ ERROR_CAPTURE, + /*">"*/ ERROR_CAPTURE, + /*"?"*/ ERROR_CAPTURE, + /*"@"*/ ERROR_CAPTURE, + /*"A"*/ ERROR_CAPTURE, + /*"B"*/ ERROR_CAPTURE, + /*"C"*/ ERROR_CAPTURE, + /*"D"*/ ERROR_CAPTURE, + /*"E"*/ ERROR_CAPTURE, + /*"F"*/ ERROR_CAPTURE, + /*"G"*/ ERROR_CAPTURE, + /*"H"*/ ERROR_CAPTURE, + /*"I"*/ ERROR_CAPTURE, + /*"J"*/ ERROR_CAPTURE, + /*"K"*/ ERROR_CAPTURE, + /*"L"*/ ERROR_CAPTURE, + /*"M"*/ ERROR_CAPTURE, + /*"N"*/ ERROR_CAPTURE, + /*"O"*/ ERROR_CAPTURE, + /*"P"*/ ERROR_CAPTURE, + /*"Q"*/ ERROR_CAPTURE, + /*"R"*/ ERROR_CAPTURE, + /*"S"*/ ERROR_CAPTURE, + /*"T"*/ ERROR_CAPTURE, + /*"U"*/ ERROR_CAPTURE, + /*"V"*/ ERROR_CAPTURE, + /*"W"*/ ERROR_CAPTURE, + /*"X"*/ ERROR_CAPTURE, + /*"Y"*/ ERROR_CAPTURE, + /*"Z"*/ ERROR_CAPTURE, + /*"["*/ GRAMMAR_CAPTURE, + /*"\"*/ ERROR_CAPTURE, + /*"]"*/ GRAMMAR_CAPTURE, + /*"^"*/ ERROR_CAPTURE, + /*"_"*/ ERROR_CAPTURE, + /*"`"*/ ERROR_CAPTURE, + /*"a"*/ ERROR_CAPTURE, + /*"b"*/ ERROR_CAPTURE, + /*"c"*/ ERROR_CAPTURE, + /*"d"*/ ERROR_CAPTURE, + /*"e"*/ ERROR_CAPTURE, + /*"f"*/ LITERAL_CAPTURE, // false = literal + /*"g"*/ + ERROR_CAPTURE, + /*"h"*/ ERROR_CAPTURE, + /*"i"*/ ERROR_CAPTURE, + /*"j"*/ ERROR_CAPTURE, + /*"k"*/ ERROR_CAPTURE, + /*"l"*/ ERROR_CAPTURE, + /*"m"*/ ERROR_CAPTURE, + /*"n"*/ LITERAL_CAPTURE, // null = literal + /*"o"*/ + ERROR_CAPTURE, + /*"p"*/ ERROR_CAPTURE, + /*"q"*/ ERROR_CAPTURE, + /*"r"*/ ERROR_CAPTURE, + /*"s"*/ ERROR_CAPTURE, + /*"t"*/ LITERAL_CAPTURE, // true = literal + /*"u"*/ + ERROR_CAPTURE, + /*"v"*/ ERROR_CAPTURE, + /*"w"*/ ERROR_CAPTURE, + /*"x"*/ ERROR_CAPTURE, + /*"y"*/ ERROR_CAPTURE, + /*"z"*/ ERROR_CAPTURE, + /*"{"*/ GRAMMAR_CAPTURE, + /*"|"*/ ERROR_CAPTURE, + /*"}"*/ GRAMMAR_CAPTURE, + /*"~"*/ ERROR_CAPTURE, + /*DEL*/ ERROR_CAPTURE, +]; global STRING_CAPTURE_TABLE: [Field; 128] = [ - /* NULL */ ERROR_CAPTURE, - /* SOH */ ERROR_CAPTURE, - /* TXT */ ERROR_CAPTURE, - /* ETX */ ERROR_CAPTURE, - /* EOT */ ERROR_CAPTURE, - /* ENQ */ ERROR_CAPTURE, - /* ACK */ ERROR_CAPTURE, - /* BEL */ ERROR_CAPTURE, - /* BS */ ERROR_CAPTURE, - /* TAB */ STRING_CAPTURE, - /* NL */ STRING_CAPTURE, - /* VT */ ERROR_CAPTURE, - /* FF */ ERROR_CAPTURE, - /* CR */ STRING_CAPTURE, - /* SI */ ERROR_CAPTURE, - /* SO */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* SPACE */ STRING_CAPTURE, - /*"!"*/ STRING_CAPTURE, - /* " */ GRAMMAR_CAPTURE, - /*"#"*/ STRING_CAPTURE, - /*"$"*/ STRING_CAPTURE, - /*"%"*/ STRING_CAPTURE, - /*"&"*/ STRING_CAPTURE, - /*"'"*/ STRING_CAPTURE, - /*"("*/ STRING_CAPTURE, - /*")"*/ STRING_CAPTURE, - /*"*"*/ STRING_CAPTURE, - /*"+"*/ STRING_CAPTURE, - /*","*/ STRING_CAPTURE, - /*"-"*/ STRING_CAPTURE, - /*"."*/ STRING_CAPTURE, - /*"/"*/ STRING_CAPTURE, - /*"0"*/ STRING_CAPTURE, - /*"1"*/ STRING_CAPTURE, - /*"2"*/ STRING_CAPTURE, - /*"3"*/ STRING_CAPTURE, - /*"4"*/ STRING_CAPTURE, - /*"5"*/ STRING_CAPTURE, - /*"6"*/ STRING_CAPTURE, - /*"7"*/ STRING_CAPTURE, - /*"8"*/ STRING_CAPTURE, - /*"9"*/ STRING_CAPTURE, - /*":"*/ STRING_CAPTURE, - /*";"*/ STRING_CAPTURE, - /*"<"*/ STRING_CAPTURE, - /*"="*/ STRING_CAPTURE, - /*">"*/ STRING_CAPTURE, - /*"?"*/ STRING_CAPTURE, - /*"@"*/ STRING_CAPTURE, - /*"A"*/ STRING_CAPTURE, - /*"B"*/ STRING_CAPTURE, - /*"C"*/ STRING_CAPTURE, - /*"D"*/ STRING_CAPTURE, - /*"E"*/ STRING_CAPTURE, - /*"F"*/ STRING_CAPTURE, - /*"G"*/ STRING_CAPTURE, - /*"H"*/ STRING_CAPTURE, - /*"I"*/ STRING_CAPTURE, - /*"J"*/ STRING_CAPTURE, - /*"K"*/ STRING_CAPTURE, - /*"L"*/ STRING_CAPTURE, - /*"M"*/ STRING_CAPTURE, - /*"N"*/ STRING_CAPTURE, - /*"O"*/ STRING_CAPTURE, - /*"P"*/ STRING_CAPTURE, - /*"Q"*/ STRING_CAPTURE, - /*"R"*/ STRING_CAPTURE, - /*"S"*/ STRING_CAPTURE, - /*"T"*/ STRING_CAPTURE, - /*"U"*/ STRING_CAPTURE, - /*"V"*/ STRING_CAPTURE, - /*"W"*/ STRING_CAPTURE, - /*"X"*/ STRING_CAPTURE, - /*"Y"*/ STRING_CAPTURE, - /*"Z"*/ STRING_CAPTURE, - /*"["*/ STRING_CAPTURE, - /*"\"*/ STRING_CAPTURE, - /*"]"*/ STRING_CAPTURE, - /*"^"*/ STRING_CAPTURE, - /*"_"*/ STRING_CAPTURE, - /*"`"*/ STRING_CAPTURE, - /*"a"*/ STRING_CAPTURE, - /*"b"*/ STRING_CAPTURE, - /*"c"*/ STRING_CAPTURE, - /*"d"*/ STRING_CAPTURE, - /*"e"*/ STRING_CAPTURE, - /*"f"*/ STRING_CAPTURE, - /*"g"*/ STRING_CAPTURE, - /*"h"*/ STRING_CAPTURE, - /*"i"*/ STRING_CAPTURE, - /*"j"*/ STRING_CAPTURE, - /*"k"*/ STRING_CAPTURE, - /*"l"*/ STRING_CAPTURE, - /*"m"*/ STRING_CAPTURE, - /*"n"*/ STRING_CAPTURE, - /*"o"*/ STRING_CAPTURE, - /*"p"*/ STRING_CAPTURE, - /*"q"*/ STRING_CAPTURE, - /*"r"*/ STRING_CAPTURE, - /*"s"*/ STRING_CAPTURE, - /*"t"*/ STRING_CAPTURE, - /*"u"*/ STRING_CAPTURE, - /*"v"*/ STRING_CAPTURE, - /*"w"*/ STRING_CAPTURE, - /*"x"*/ STRING_CAPTURE, - /*"y"*/ STRING_CAPTURE, - /*"z"*/ STRING_CAPTURE, - /*"{"*/ STRING_CAPTURE, - /*"|"*/ STRING_CAPTURE, - /*"}"*/ STRING_CAPTURE, - /*"~"*/ STRING_CAPTURE, - /*DEL*/ ERROR_CAPTURE, - ]; + /* NULL */ ERROR_CAPTURE, + /* SOH */ ERROR_CAPTURE, + /* TXT */ ERROR_CAPTURE, + /* ETX */ ERROR_CAPTURE, + /* EOT */ ERROR_CAPTURE, + /* ENQ */ ERROR_CAPTURE, + /* ACK */ ERROR_CAPTURE, + /* BEL */ ERROR_CAPTURE, + /* BS */ ERROR_CAPTURE, + /* TAB */ STRING_CAPTURE, + /* NL */ STRING_CAPTURE, + /* VT */ ERROR_CAPTURE, + /* FF */ ERROR_CAPTURE, + /* CR */ STRING_CAPTURE, + /* SI */ ERROR_CAPTURE, + /* SO */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* SPACE */ STRING_CAPTURE, + /*"!"*/ STRING_CAPTURE, + /* " */ GRAMMAR_CAPTURE, + /*"#"*/ STRING_CAPTURE, + /*"$"*/ STRING_CAPTURE, + /*"%"*/ STRING_CAPTURE, + /*"&"*/ STRING_CAPTURE, + /*"'"*/ STRING_CAPTURE, + /*"("*/ STRING_CAPTURE, + /*")"*/ STRING_CAPTURE, + /*"*"*/ STRING_CAPTURE, + /*"+"*/ STRING_CAPTURE, + /*","*/ STRING_CAPTURE, + /*"-"*/ STRING_CAPTURE, + /*"."*/ STRING_CAPTURE, + /*"/"*/ STRING_CAPTURE, + /*"0"*/ STRING_CAPTURE, + /*"1"*/ STRING_CAPTURE, + /*"2"*/ STRING_CAPTURE, + /*"3"*/ STRING_CAPTURE, + /*"4"*/ STRING_CAPTURE, + /*"5"*/ STRING_CAPTURE, + /*"6"*/ STRING_CAPTURE, + /*"7"*/ STRING_CAPTURE, + /*"8"*/ STRING_CAPTURE, + /*"9"*/ STRING_CAPTURE, + /*":"*/ STRING_CAPTURE, + /*";"*/ STRING_CAPTURE, + /*"<"*/ STRING_CAPTURE, + /*"="*/ STRING_CAPTURE, + /*">"*/ STRING_CAPTURE, + /*"?"*/ STRING_CAPTURE, + /*"@"*/ STRING_CAPTURE, + /*"A"*/ STRING_CAPTURE, + /*"B"*/ STRING_CAPTURE, + /*"C"*/ STRING_CAPTURE, + /*"D"*/ STRING_CAPTURE, + /*"E"*/ STRING_CAPTURE, + /*"F"*/ STRING_CAPTURE, + /*"G"*/ STRING_CAPTURE, + /*"H"*/ STRING_CAPTURE, + /*"I"*/ STRING_CAPTURE, + /*"J"*/ STRING_CAPTURE, + /*"K"*/ STRING_CAPTURE, + /*"L"*/ STRING_CAPTURE, + /*"M"*/ STRING_CAPTURE, + /*"N"*/ STRING_CAPTURE, + /*"O"*/ STRING_CAPTURE, + /*"P"*/ STRING_CAPTURE, + /*"Q"*/ STRING_CAPTURE, + /*"R"*/ STRING_CAPTURE, + /*"S"*/ STRING_CAPTURE, + /*"T"*/ STRING_CAPTURE, + /*"U"*/ STRING_CAPTURE, + /*"V"*/ STRING_CAPTURE, + /*"W"*/ STRING_CAPTURE, + /*"X"*/ STRING_CAPTURE, + /*"Y"*/ STRING_CAPTURE, + /*"Z"*/ STRING_CAPTURE, + /*"["*/ STRING_CAPTURE, + /*"\"*/ STRING_CAPTURE, + /*"]"*/ STRING_CAPTURE, + /*"^"*/ STRING_CAPTURE, + /*"_"*/ STRING_CAPTURE, + /*"`"*/ STRING_CAPTURE, + /*"a"*/ STRING_CAPTURE, + /*"b"*/ STRING_CAPTURE, + /*"c"*/ STRING_CAPTURE, + /*"d"*/ STRING_CAPTURE, + /*"e"*/ STRING_CAPTURE, + /*"f"*/ STRING_CAPTURE, + /*"g"*/ STRING_CAPTURE, + /*"h"*/ STRING_CAPTURE, + /*"i"*/ STRING_CAPTURE, + /*"j"*/ STRING_CAPTURE, + /*"k"*/ STRING_CAPTURE, + /*"l"*/ STRING_CAPTURE, + /*"m"*/ STRING_CAPTURE, + /*"n"*/ STRING_CAPTURE, + /*"o"*/ STRING_CAPTURE, + /*"p"*/ STRING_CAPTURE, + /*"q"*/ STRING_CAPTURE, + /*"r"*/ STRING_CAPTURE, + /*"s"*/ STRING_CAPTURE, + /*"t"*/ STRING_CAPTURE, + /*"u"*/ STRING_CAPTURE, + /*"v"*/ STRING_CAPTURE, + /*"w"*/ STRING_CAPTURE, + /*"x"*/ STRING_CAPTURE, + /*"y"*/ STRING_CAPTURE, + /*"z"*/ STRING_CAPTURE, + /*"{"*/ STRING_CAPTURE, + /*"|"*/ STRING_CAPTURE, + /*"}"*/ STRING_CAPTURE, + /*"~"*/ STRING_CAPTURE, + /*DEL*/ ERROR_CAPTURE, +]; global NUMERIC_CAPTURE_TABLE: [Field; 128] = [ - /* NULL */ ERROR_CAPTURE, - /* SOH */ ERROR_CAPTURE, - /* TXT */ ERROR_CAPTURE, - /* ETX */ ERROR_CAPTURE, - /* EOT */ ERROR_CAPTURE, - /* ENQ */ ERROR_CAPTURE, - /* ACK */ ERROR_CAPTURE, - /* BEL */ ERROR_CAPTURE, - /* BS */ ERROR_CAPTURE, - /* TAB */ GRAMMAR_CAPTURE, - /* NL */ GRAMMAR_CAPTURE, - /* VT */ ERROR_CAPTURE, - /* FF */ ERROR_CAPTURE, - /* CR */ GRAMMAR_CAPTURE, - /* SI */ ERROR_CAPTURE, - /* SO */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* SPACE */ GRAMMAR_CAPTURE, - /*"!"*/ ERROR_CAPTURE, - /* " */ ERROR_CAPTURE, - /*"#"*/ ERROR_CAPTURE, - /*"$"*/ ERROR_CAPTURE, - /*"%"*/ ERROR_CAPTURE, - /*"&"*/ ERROR_CAPTURE, - /*"'"*/ ERROR_CAPTURE, - /*"("*/ ERROR_CAPTURE, - /*")"*/ ERROR_CAPTURE, - /*"*"*/ ERROR_CAPTURE, - /*"+"*/ ERROR_CAPTURE, - /*","*/ GRAMMAR_CAPTURE, - /*"-"*/ ERROR_CAPTURE, - /*"."*/ ERROR_CAPTURE, - /*"/"*/ ERROR_CAPTURE, - /*"0"*/ NUMERIC_CAPTURE, - /*"1"*/ NUMERIC_CAPTURE, - /*"2"*/ NUMERIC_CAPTURE, - /*"3"*/ NUMERIC_CAPTURE, - /*"4"*/ NUMERIC_CAPTURE, - /*"5"*/ NUMERIC_CAPTURE, - /*"6"*/ NUMERIC_CAPTURE, - /*"7"*/ NUMERIC_CAPTURE, - /*"8"*/ NUMERIC_CAPTURE, - /*"9"*/ NUMERIC_CAPTURE, - /*":"*/ ERROR_CAPTURE, - /*";"*/ ERROR_CAPTURE, - /*"<"*/ ERROR_CAPTURE, - /*"="*/ ERROR_CAPTURE, - /*">"*/ ERROR_CAPTURE, - /*"?"*/ ERROR_CAPTURE, - /*"@"*/ ERROR_CAPTURE, - /*"A"*/ ERROR_CAPTURE, - /*"B"*/ ERROR_CAPTURE, - /*"C"*/ ERROR_CAPTURE, - /*"D"*/ ERROR_CAPTURE, - /*"E"*/ ERROR_CAPTURE, - /*"F"*/ ERROR_CAPTURE, - /*"G"*/ ERROR_CAPTURE, - /*"H"*/ ERROR_CAPTURE, - /*"I"*/ ERROR_CAPTURE, - /*"J"*/ ERROR_CAPTURE, - /*"K"*/ ERROR_CAPTURE, - /*"L"*/ ERROR_CAPTURE, - /*"M"*/ ERROR_CAPTURE, - /*"N"*/ ERROR_CAPTURE, - /*"O"*/ ERROR_CAPTURE, - /*"P"*/ ERROR_CAPTURE, - /*"Q"*/ ERROR_CAPTURE, - /*"R"*/ ERROR_CAPTURE, - /*"S"*/ ERROR_CAPTURE, - /*"T"*/ ERROR_CAPTURE, - /*"U"*/ ERROR_CAPTURE, - /*"V"*/ ERROR_CAPTURE, - /*"W"*/ ERROR_CAPTURE, - /*"X"*/ ERROR_CAPTURE, - /*"Y"*/ ERROR_CAPTURE, - /*"Z"*/ ERROR_CAPTURE, - /*"["*/ ERROR_CAPTURE, - /*"\"*/ ERROR_CAPTURE, - /*"]"*/ GRAMMAR_CAPTURE, - /*"^"*/ ERROR_CAPTURE, - /*"_"*/ ERROR_CAPTURE, - /*"`"*/ ERROR_CAPTURE, - /*"a"*/ ERROR_CAPTURE, - /*"b"*/ ERROR_CAPTURE, - /*"c"*/ ERROR_CAPTURE, - /*"d"*/ ERROR_CAPTURE, - /*"e"*/ ERROR_CAPTURE, - /*"f"*/ ERROR_CAPTURE, - /*"g"*/ ERROR_CAPTURE, - /*"h"*/ ERROR_CAPTURE, - /*"i"*/ ERROR_CAPTURE, - /*"j"*/ ERROR_CAPTURE, - /*"k"*/ ERROR_CAPTURE, - /*"l"*/ ERROR_CAPTURE, - /*"m"*/ ERROR_CAPTURE, - /*"n"*/ ERROR_CAPTURE, - /*"o"*/ ERROR_CAPTURE, - /*"p"*/ ERROR_CAPTURE, - /*"q"*/ ERROR_CAPTURE, - /*"r"*/ ERROR_CAPTURE, - /*"s"*/ ERROR_CAPTURE, - /*"t"*/ ERROR_CAPTURE, - /*"u"*/ ERROR_CAPTURE, - /*"v"*/ ERROR_CAPTURE, - /*"w"*/ ERROR_CAPTURE, - /*"x"*/ ERROR_CAPTURE, - /*"y"*/ ERROR_CAPTURE, - /*"z"*/ ERROR_CAPTURE, - /*"{"*/ ERROR_CAPTURE, - /*"|"*/ ERROR_CAPTURE, - /*"}"*/ GRAMMAR_CAPTURE, - /*"~"*/ ERROR_CAPTURE, - /*DEL*/ ERROR_CAPTURE, - ]; + /* NULL */ ERROR_CAPTURE, + /* SOH */ ERROR_CAPTURE, + /* TXT */ ERROR_CAPTURE, + /* ETX */ ERROR_CAPTURE, + /* EOT */ ERROR_CAPTURE, + /* ENQ */ ERROR_CAPTURE, + /* ACK */ ERROR_CAPTURE, + /* BEL */ ERROR_CAPTURE, + /* BS */ ERROR_CAPTURE, + /* TAB */ GRAMMAR_CAPTURE, + /* NL */ GRAMMAR_CAPTURE, + /* VT */ ERROR_CAPTURE, + /* FF */ ERROR_CAPTURE, + /* CR */ GRAMMAR_CAPTURE, + /* SI */ ERROR_CAPTURE, + /* SO */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* SPACE */ GRAMMAR_CAPTURE, + /*"!"*/ ERROR_CAPTURE, + /* " */ ERROR_CAPTURE, + /*"#"*/ ERROR_CAPTURE, + /*"$"*/ ERROR_CAPTURE, + /*"%"*/ ERROR_CAPTURE, + /*"&"*/ ERROR_CAPTURE, + /*"'"*/ ERROR_CAPTURE, + /*"("*/ ERROR_CAPTURE, + /*")"*/ ERROR_CAPTURE, + /*"*"*/ ERROR_CAPTURE, + /*"+"*/ ERROR_CAPTURE, + /*","*/ GRAMMAR_CAPTURE, + /*"-"*/ ERROR_CAPTURE, + /*"."*/ ERROR_CAPTURE, + /*"/"*/ ERROR_CAPTURE, + /*"0"*/ NUMERIC_CAPTURE, + /*"1"*/ NUMERIC_CAPTURE, + /*"2"*/ NUMERIC_CAPTURE, + /*"3"*/ NUMERIC_CAPTURE, + /*"4"*/ NUMERIC_CAPTURE, + /*"5"*/ NUMERIC_CAPTURE, + /*"6"*/ NUMERIC_CAPTURE, + /*"7"*/ NUMERIC_CAPTURE, + /*"8"*/ NUMERIC_CAPTURE, + /*"9"*/ NUMERIC_CAPTURE, + /*":"*/ ERROR_CAPTURE, + /*";"*/ ERROR_CAPTURE, + /*"<"*/ ERROR_CAPTURE, + /*"="*/ ERROR_CAPTURE, + /*">"*/ ERROR_CAPTURE, + /*"?"*/ ERROR_CAPTURE, + /*"@"*/ ERROR_CAPTURE, + /*"A"*/ ERROR_CAPTURE, + /*"B"*/ ERROR_CAPTURE, + /*"C"*/ ERROR_CAPTURE, + /*"D"*/ ERROR_CAPTURE, + /*"E"*/ ERROR_CAPTURE, + /*"F"*/ ERROR_CAPTURE, + /*"G"*/ ERROR_CAPTURE, + /*"H"*/ ERROR_CAPTURE, + /*"I"*/ ERROR_CAPTURE, + /*"J"*/ ERROR_CAPTURE, + /*"K"*/ ERROR_CAPTURE, + /*"L"*/ ERROR_CAPTURE, + /*"M"*/ ERROR_CAPTURE, + /*"N"*/ ERROR_CAPTURE, + /*"O"*/ ERROR_CAPTURE, + /*"P"*/ ERROR_CAPTURE, + /*"Q"*/ ERROR_CAPTURE, + /*"R"*/ ERROR_CAPTURE, + /*"S"*/ ERROR_CAPTURE, + /*"T"*/ ERROR_CAPTURE, + /*"U"*/ ERROR_CAPTURE, + /*"V"*/ ERROR_CAPTURE, + /*"W"*/ ERROR_CAPTURE, + /*"X"*/ ERROR_CAPTURE, + /*"Y"*/ ERROR_CAPTURE, + /*"Z"*/ ERROR_CAPTURE, + /*"["*/ ERROR_CAPTURE, + /*"\"*/ ERROR_CAPTURE, + /*"]"*/ GRAMMAR_CAPTURE, + /*"^"*/ ERROR_CAPTURE, + /*"_"*/ ERROR_CAPTURE, + /*"`"*/ ERROR_CAPTURE, + /*"a"*/ ERROR_CAPTURE, + /*"b"*/ ERROR_CAPTURE, + /*"c"*/ ERROR_CAPTURE, + /*"d"*/ ERROR_CAPTURE, + /*"e"*/ ERROR_CAPTURE, + /*"f"*/ ERROR_CAPTURE, + /*"g"*/ ERROR_CAPTURE, + /*"h"*/ ERROR_CAPTURE, + /*"i"*/ ERROR_CAPTURE, + /*"j"*/ ERROR_CAPTURE, + /*"k"*/ ERROR_CAPTURE, + /*"l"*/ ERROR_CAPTURE, + /*"m"*/ ERROR_CAPTURE, + /*"n"*/ ERROR_CAPTURE, + /*"o"*/ ERROR_CAPTURE, + /*"p"*/ ERROR_CAPTURE, + /*"q"*/ ERROR_CAPTURE, + /*"r"*/ ERROR_CAPTURE, + /*"s"*/ ERROR_CAPTURE, + /*"t"*/ ERROR_CAPTURE, + /*"u"*/ ERROR_CAPTURE, + /*"v"*/ ERROR_CAPTURE, + /*"w"*/ ERROR_CAPTURE, + /*"x"*/ ERROR_CAPTURE, + /*"y"*/ ERROR_CAPTURE, + /*"z"*/ ERROR_CAPTURE, + /*"{"*/ ERROR_CAPTURE, + /*"|"*/ ERROR_CAPTURE, + /*"}"*/ GRAMMAR_CAPTURE, + /*"~"*/ ERROR_CAPTURE, + /*DEL*/ ERROR_CAPTURE, +]; global LITERAL_CAPTURE_TABLE: [Field; 128] = [ - /* NULL */ ERROR_CAPTURE, - /* SOH */ ERROR_CAPTURE, - /* TXT */ ERROR_CAPTURE, - /* ETX */ ERROR_CAPTURE, - /* EOT */ ERROR_CAPTURE, - /* ENQ */ ERROR_CAPTURE, - /* ACK */ ERROR_CAPTURE, - /* BEL */ ERROR_CAPTURE, - /* BS */ ERROR_CAPTURE, - /* TAB */ GRAMMAR_CAPTURE, - /* NL */ GRAMMAR_CAPTURE, - /* VT */ ERROR_CAPTURE, - /* FF */ ERROR_CAPTURE, - /* CR */ GRAMMAR_CAPTURE, - /* SI */ ERROR_CAPTURE, - /* SO */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* */ ERROR_CAPTURE, - /* SPACE */ GRAMMAR_CAPTURE, - /*"!"*/ ERROR_CAPTURE, - /* " */ ERROR_CAPTURE, - /*"#"*/ ERROR_CAPTURE, - /*"$"*/ ERROR_CAPTURE, - /*"%"*/ ERROR_CAPTURE, - /*"&"*/ ERROR_CAPTURE, - /*"'"*/ ERROR_CAPTURE, - /*"("*/ ERROR_CAPTURE, - /*")"*/ ERROR_CAPTURE, - /*"*"*/ ERROR_CAPTURE, - /*"+"*/ ERROR_CAPTURE, - /*","*/ GRAMMAR_CAPTURE, - /*"-"*/ ERROR_CAPTURE, - /*"."*/ ERROR_CAPTURE, - /*"/"*/ ERROR_CAPTURE, - /*"0"*/ ERROR_CAPTURE, - /*"1"*/ ERROR_CAPTURE, - /*"2"*/ ERROR_CAPTURE, - /*"3"*/ ERROR_CAPTURE, - /*"4"*/ ERROR_CAPTURE, - /*"5"*/ ERROR_CAPTURE, - /*"6"*/ ERROR_CAPTURE, - /*"7"*/ ERROR_CAPTURE, - /*"8"*/ ERROR_CAPTURE, - /*"9"*/ ERROR_CAPTURE, - /*":"*/ ERROR_CAPTURE, - /*";"*/ ERROR_CAPTURE, - /*"<"*/ ERROR_CAPTURE, - /*"="*/ ERROR_CAPTURE, - /*">"*/ ERROR_CAPTURE, - /*"?"*/ ERROR_CAPTURE, - /*"@"*/ ERROR_CAPTURE, - /*"A"*/ ERROR_CAPTURE, - /*"B"*/ ERROR_CAPTURE, - /*"C"*/ ERROR_CAPTURE, - /*"D"*/ ERROR_CAPTURE, - /*"E"*/ ERROR_CAPTURE, - /*"F"*/ ERROR_CAPTURE, - /*"G"*/ ERROR_CAPTURE, - /*"H"*/ ERROR_CAPTURE, - /*"I"*/ ERROR_CAPTURE, - /*"J"*/ ERROR_CAPTURE, - /*"K"*/ ERROR_CAPTURE, - /*"L"*/ ERROR_CAPTURE, - /*"M"*/ ERROR_CAPTURE, - /*"N"*/ ERROR_CAPTURE, - /*"O"*/ ERROR_CAPTURE, - /*"P"*/ ERROR_CAPTURE, - /*"Q"*/ ERROR_CAPTURE, - /*"R"*/ ERROR_CAPTURE, - /*"S"*/ ERROR_CAPTURE, - /*"T"*/ ERROR_CAPTURE, - /*"U"*/ ERROR_CAPTURE, - /*"V"*/ ERROR_CAPTURE, - /*"W"*/ ERROR_CAPTURE, - /*"X"*/ ERROR_CAPTURE, - /*"Y"*/ ERROR_CAPTURE, - /*"Z"*/ ERROR_CAPTURE, - /*"["*/ ERROR_CAPTURE, - /*"\"*/ ERROR_CAPTURE, - /*"]"*/ GRAMMAR_CAPTURE, - /*"^"*/ ERROR_CAPTURE, - /*"_"*/ ERROR_CAPTURE, - /*"`"*/ ERROR_CAPTURE, - /*"a"*/ LITERAL_CAPTURE, - /*"b"*/ ERROR_CAPTURE, - /*"c"*/ ERROR_CAPTURE, - /*"d"*/ ERROR_CAPTURE, - /*"e"*/ LITERAL_CAPTURE, - /*"f"*/ LITERAL_CAPTURE, - /*"g"*/ ERROR_CAPTURE, - /*"h"*/ ERROR_CAPTURE, - /*"i"*/ ERROR_CAPTURE, - /*"j"*/ ERROR_CAPTURE, - /*"k"*/ ERROR_CAPTURE, - /*"l"*/ LITERAL_CAPTURE, - /*"m"*/ ERROR_CAPTURE, - /*"n"*/ LITERAL_CAPTURE, - /*"o"*/ ERROR_CAPTURE, - /*"p"*/ ERROR_CAPTURE, - /*"q"*/ ERROR_CAPTURE, - /*"r"*/ LITERAL_CAPTURE, - /*"s"*/ LITERAL_CAPTURE, - /*"t"*/ ERROR_CAPTURE, - /*"u"*/ LITERAL_CAPTURE, - /*"v"*/ ERROR_CAPTURE, - /*"w"*/ ERROR_CAPTURE, - /*"x"*/ ERROR_CAPTURE, - /*"y"*/ ERROR_CAPTURE, - /*"z"*/ ERROR_CAPTURE, - /*"{"*/ ERROR_CAPTURE, - /*"|"*/ ERROR_CAPTURE, - /*"}"*/ GRAMMAR_CAPTURE, - /*"~"*/ ERROR_CAPTURE, - /*DEL*/ ERROR_CAPTURE, - ]; + /* NULL */ ERROR_CAPTURE, + /* SOH */ ERROR_CAPTURE, + /* TXT */ ERROR_CAPTURE, + /* ETX */ ERROR_CAPTURE, + /* EOT */ ERROR_CAPTURE, + /* ENQ */ ERROR_CAPTURE, + /* ACK */ ERROR_CAPTURE, + /* BEL */ ERROR_CAPTURE, + /* BS */ ERROR_CAPTURE, + /* TAB */ GRAMMAR_CAPTURE, + /* NL */ GRAMMAR_CAPTURE, + /* VT */ ERROR_CAPTURE, + /* FF */ ERROR_CAPTURE, + /* CR */ GRAMMAR_CAPTURE, + /* SI */ ERROR_CAPTURE, + /* SO */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* */ ERROR_CAPTURE, + /* SPACE */ GRAMMAR_CAPTURE, + /*"!"*/ ERROR_CAPTURE, + /* " */ ERROR_CAPTURE, + /*"#"*/ ERROR_CAPTURE, + /*"$"*/ ERROR_CAPTURE, + /*"%"*/ ERROR_CAPTURE, + /*"&"*/ ERROR_CAPTURE, + /*"'"*/ ERROR_CAPTURE, + /*"("*/ ERROR_CAPTURE, + /*")"*/ ERROR_CAPTURE, + /*"*"*/ ERROR_CAPTURE, + /*"+"*/ ERROR_CAPTURE, + /*","*/ GRAMMAR_CAPTURE, + /*"-"*/ ERROR_CAPTURE, + /*"."*/ ERROR_CAPTURE, + /*"/"*/ ERROR_CAPTURE, + /*"0"*/ ERROR_CAPTURE, + /*"1"*/ ERROR_CAPTURE, + /*"2"*/ ERROR_CAPTURE, + /*"3"*/ ERROR_CAPTURE, + /*"4"*/ ERROR_CAPTURE, + /*"5"*/ ERROR_CAPTURE, + /*"6"*/ ERROR_CAPTURE, + /*"7"*/ ERROR_CAPTURE, + /*"8"*/ ERROR_CAPTURE, + /*"9"*/ ERROR_CAPTURE, + /*":"*/ ERROR_CAPTURE, + /*";"*/ ERROR_CAPTURE, + /*"<"*/ ERROR_CAPTURE, + /*"="*/ ERROR_CAPTURE, + /*">"*/ ERROR_CAPTURE, + /*"?"*/ ERROR_CAPTURE, + /*"@"*/ ERROR_CAPTURE, + /*"A"*/ ERROR_CAPTURE, + /*"B"*/ ERROR_CAPTURE, + /*"C"*/ ERROR_CAPTURE, + /*"D"*/ ERROR_CAPTURE, + /*"E"*/ ERROR_CAPTURE, + /*"F"*/ ERROR_CAPTURE, + /*"G"*/ ERROR_CAPTURE, + /*"H"*/ ERROR_CAPTURE, + /*"I"*/ ERROR_CAPTURE, + /*"J"*/ ERROR_CAPTURE, + /*"K"*/ ERROR_CAPTURE, + /*"L"*/ ERROR_CAPTURE, + /*"M"*/ ERROR_CAPTURE, + /*"N"*/ ERROR_CAPTURE, + /*"O"*/ ERROR_CAPTURE, + /*"P"*/ ERROR_CAPTURE, + /*"Q"*/ ERROR_CAPTURE, + /*"R"*/ ERROR_CAPTURE, + /*"S"*/ ERROR_CAPTURE, + /*"T"*/ ERROR_CAPTURE, + /*"U"*/ ERROR_CAPTURE, + /*"V"*/ ERROR_CAPTURE, + /*"W"*/ ERROR_CAPTURE, + /*"X"*/ ERROR_CAPTURE, + /*"Y"*/ ERROR_CAPTURE, + /*"Z"*/ ERROR_CAPTURE, + /*"["*/ ERROR_CAPTURE, + /*"\"*/ ERROR_CAPTURE, + /*"]"*/ GRAMMAR_CAPTURE, + /*"^"*/ ERROR_CAPTURE, + /*"_"*/ ERROR_CAPTURE, + /*"`"*/ ERROR_CAPTURE, + /*"a"*/ LITERAL_CAPTURE, + /*"b"*/ ERROR_CAPTURE, + /*"c"*/ ERROR_CAPTURE, + /*"d"*/ ERROR_CAPTURE, + /*"e"*/ LITERAL_CAPTURE, + /*"f"*/ LITERAL_CAPTURE, + /*"g"*/ ERROR_CAPTURE, + /*"h"*/ ERROR_CAPTURE, + /*"i"*/ ERROR_CAPTURE, + /*"j"*/ ERROR_CAPTURE, + /*"k"*/ ERROR_CAPTURE, + /*"l"*/ LITERAL_CAPTURE, + /*"m"*/ ERROR_CAPTURE, + /*"n"*/ LITERAL_CAPTURE, + /*"o"*/ ERROR_CAPTURE, + /*"p"*/ ERROR_CAPTURE, + /*"q"*/ ERROR_CAPTURE, + /*"r"*/ LITERAL_CAPTURE, + /*"s"*/ LITERAL_CAPTURE, + /*"t"*/ ERROR_CAPTURE, + /*"u"*/ LITERAL_CAPTURE, + /*"v"*/ ERROR_CAPTURE, + /*"w"*/ ERROR_CAPTURE, + /*"x"*/ ERROR_CAPTURE, + /*"y"*/ ERROR_CAPTURE, + /*"z"*/ ERROR_CAPTURE, + /*"{"*/ ERROR_CAPTURE, + /*"|"*/ ERROR_CAPTURE, + /*"}"*/ GRAMMAR_CAPTURE, + /*"~"*/ ERROR_CAPTURE, + /*DEL*/ ERROR_CAPTURE, +]; global GRAMMAR_CAPTURE_TOKEN: [Field; 128] = [ - /* NULL */ NO_TOKEN, - /* SOH */ NO_TOKEN, - /* TXT */ NO_TOKEN, - /* ETX */ NO_TOKEN, - /* EOT */ NO_TOKEN, - /* ENQ */ NO_TOKEN, - /* ACK */ NO_TOKEN, - /* BEL */ NO_TOKEN, - /* BS */ NO_TOKEN, - /* TAB */ NO_TOKEN, - /* NL */ NO_TOKEN, - /* VT */ NO_TOKEN, - /* FF */ NO_TOKEN, - /* CR */ NO_TOKEN, - /* SI */ NO_TOKEN, - /* SO */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* SPACE */ NO_TOKEN, - /*"!"*/ NO_TOKEN, - /* " */ NO_TOKEN, /* I THINK? */ - /*"#"*/ NO_TOKEN, - /*"$"*/ NO_TOKEN, - /*"%"*/ NO_TOKEN, - /*"&"*/ NO_TOKEN, - /*"'"*/ NO_TOKEN, - /*"("*/ NO_TOKEN, - /*")"*/ NO_TOKEN, - /*"*"*/ NO_TOKEN, - /*"+"*/ NO_TOKEN, - /*","*/ VALUE_SEPARATOR_TOKEN, - /*"-"*/ NO_TOKEN, - /*"."*/ NO_TOKEN, - /*"/"*/ NO_TOKEN, - /*"0"*/ NO_TOKEN, /* I THINK? */ - /*"1"*/ NO_TOKEN, /* I THINK? */ - /*"2"*/ NO_TOKEN, /* I THINK? */ - /*"3"*/ NO_TOKEN, /* I THINK? */ - /*"4"*/ NO_TOKEN, /* I THINK? */ - /*"5"*/ NO_TOKEN, /* I THINK? */ - /*"6"*/ NO_TOKEN, /* I THINK? */ - /*"7"*/ NO_TOKEN, /* I THINK? */ - /*"8"*/ NO_TOKEN, /* I THINK? */ - /*"9"*/ NO_TOKEN, /* I THINK? */ - /*":"*/ KEY_SEPARATOR_TOKEN, - /*";"*/ NO_TOKEN, - /*"<"*/ NO_TOKEN, - /*"="*/ NO_TOKEN, - /*">"*/ NO_TOKEN, - /*"?"*/ NO_TOKEN, - /*"@"*/ NO_TOKEN, - /*"A"*/ NO_TOKEN, - /*"B"*/ NO_TOKEN, - /*"C"*/ NO_TOKEN, - /*"D"*/ NO_TOKEN, - /*"E"*/ NO_TOKEN, - /*"F"*/ NO_TOKEN, - /*"G"*/ NO_TOKEN, - /*"H"*/ NO_TOKEN, - /*"I"*/ NO_TOKEN, - /*"J"*/ NO_TOKEN, - /*"K"*/ NO_TOKEN, - /*"L"*/ NO_TOKEN, - /*"M"*/ NO_TOKEN, - /*"N"*/ NO_TOKEN, - /*"O"*/ NO_TOKEN, - /*"P"*/ NO_TOKEN, - /*"Q"*/ NO_TOKEN, - /*"R"*/ NO_TOKEN, - /*"S"*/ NO_TOKEN, - /*"T"*/ NO_TOKEN, - /*"U"*/ NO_TOKEN, - /*"V"*/ NO_TOKEN, - /*"W"*/ NO_TOKEN, - /*"X"*/ NO_TOKEN, - /*"Y"*/ NO_TOKEN, - /*"Z"*/ NO_TOKEN, - /*"["*/ BEGIN_ARRAY_TOKEN, - /*"\"*/ NO_TOKEN, - /*"]"*/ END_ARRAY_TOKEN, - /*"^"*/ NO_TOKEN, - /*"_"*/ NO_TOKEN, - /*"`"*/ NO_TOKEN, - /*"a"*/ LITERAL_TOKEN, - /*"b"*/ NO_TOKEN, - /*"c"*/ NO_TOKEN, - /*"d"*/ NO_TOKEN, - /*"e"*/ LITERAL_TOKEN, - /*"f"*/ NO_TOKEN, - /*"g"*/ NO_TOKEN, - /*"h"*/ NO_TOKEN, - /*"i"*/ NO_TOKEN, - /*"j"*/ NO_TOKEN, - /*"k"*/ NO_TOKEN, - /*"l"*/ LITERAL_TOKEN, - /*"m"*/ NO_TOKEN, - /*"n"*/ LITERAL_TOKEN, - /*"o"*/ NO_TOKEN, - /*"p"*/ NO_TOKEN, - /*"q"*/ NO_TOKEN, - /*"r"*/ LITERAL_TOKEN, - /*"s"*/ LITERAL_TOKEN, - /*"t"*/ LITERAL_TOKEN, - /*"u"*/ LITERAL_TOKEN, - /*"v"*/ NO_TOKEN, - /*"w"*/ NO_TOKEN, - /*"x"*/ NO_TOKEN, - /*"y"*/ NO_TOKEN, - /*"z"*/ NO_TOKEN, - /*"{"*/ BEGIN_OBJECT_TOKEN, - /*"|"*/ NO_TOKEN, - /*"}"*/ END_OBJECT_TOKEN, - /*"~"*/ NO_TOKEN, - /*DEL*/ NO_TOKEN, - ]; + /* NULL */ NO_TOKEN, + /* SOH */ NO_TOKEN, + /* TXT */ NO_TOKEN, + /* ETX */ NO_TOKEN, + /* EOT */ NO_TOKEN, + /* ENQ */ NO_TOKEN, + /* ACK */ NO_TOKEN, + /* BEL */ NO_TOKEN, + /* BS */ NO_TOKEN, + /* TAB */ NO_TOKEN, + /* NL */ NO_TOKEN, + /* VT */ NO_TOKEN, + /* FF */ NO_TOKEN, + /* CR */ NO_TOKEN, + /* SI */ NO_TOKEN, + /* SO */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* SPACE */ NO_TOKEN, + /*"!"*/ NO_TOKEN, + /* " */ NO_TOKEN, + /* I THINK? */ + /*"#"*/ NO_TOKEN, + /*"$"*/ NO_TOKEN, + /*"%"*/ NO_TOKEN, + /*"&"*/ NO_TOKEN, + /*"'"*/ NO_TOKEN, + /*"("*/ NO_TOKEN, + /*")"*/ NO_TOKEN, + /*"*"*/ NO_TOKEN, + /*"+"*/ NO_TOKEN, + /*","*/ VALUE_SEPARATOR_TOKEN, + /*"-"*/ NO_TOKEN, + /*"."*/ NO_TOKEN, + /*"/"*/ NO_TOKEN, + /*"0"*/ NO_TOKEN, + /* I THINK? */ + /*"1"*/ NO_TOKEN, + /* I THINK? */ + /*"2"*/ NO_TOKEN, + /* I THINK? */ + /*"3"*/ NO_TOKEN, + /* I THINK? */ + /*"4"*/ NO_TOKEN, + /* I THINK? */ + /*"5"*/ NO_TOKEN, + /* I THINK? */ + /*"6"*/ NO_TOKEN, + /* I THINK? */ + /*"7"*/ NO_TOKEN, + /* I THINK? */ + /*"8"*/ NO_TOKEN, + /* I THINK? */ + /*"9"*/ NO_TOKEN, + /* I THINK? */ + /*":"*/ KEY_SEPARATOR_TOKEN, + /*";"*/ NO_TOKEN, + /*"<"*/ NO_TOKEN, + /*"="*/ NO_TOKEN, + /*">"*/ NO_TOKEN, + /*"?"*/ NO_TOKEN, + /*"@"*/ NO_TOKEN, + /*"A"*/ NO_TOKEN, + /*"B"*/ NO_TOKEN, + /*"C"*/ NO_TOKEN, + /*"D"*/ NO_TOKEN, + /*"E"*/ NO_TOKEN, + /*"F"*/ NO_TOKEN, + /*"G"*/ NO_TOKEN, + /*"H"*/ NO_TOKEN, + /*"I"*/ NO_TOKEN, + /*"J"*/ NO_TOKEN, + /*"K"*/ NO_TOKEN, + /*"L"*/ NO_TOKEN, + /*"M"*/ NO_TOKEN, + /*"N"*/ NO_TOKEN, + /*"O"*/ NO_TOKEN, + /*"P"*/ NO_TOKEN, + /*"Q"*/ NO_TOKEN, + /*"R"*/ NO_TOKEN, + /*"S"*/ NO_TOKEN, + /*"T"*/ NO_TOKEN, + /*"U"*/ NO_TOKEN, + /*"V"*/ NO_TOKEN, + /*"W"*/ NO_TOKEN, + /*"X"*/ NO_TOKEN, + /*"Y"*/ NO_TOKEN, + /*"Z"*/ NO_TOKEN, + /*"["*/ BEGIN_ARRAY_TOKEN, + /*"\"*/ NO_TOKEN, + /*"]"*/ END_ARRAY_TOKEN, + /*"^"*/ NO_TOKEN, + /*"_"*/ NO_TOKEN, + /*"`"*/ NO_TOKEN, + /*"a"*/ LITERAL_TOKEN, + /*"b"*/ NO_TOKEN, + /*"c"*/ NO_TOKEN, + /*"d"*/ NO_TOKEN, + /*"e"*/ LITERAL_TOKEN, + /*"f"*/ NO_TOKEN, + /*"g"*/ NO_TOKEN, + /*"h"*/ NO_TOKEN, + /*"i"*/ NO_TOKEN, + /*"j"*/ NO_TOKEN, + /*"k"*/ NO_TOKEN, + /*"l"*/ LITERAL_TOKEN, + /*"m"*/ NO_TOKEN, + /*"n"*/ LITERAL_TOKEN, + /*"o"*/ NO_TOKEN, + /*"p"*/ NO_TOKEN, + /*"q"*/ NO_TOKEN, + /*"r"*/ LITERAL_TOKEN, + /*"s"*/ LITERAL_TOKEN, + /*"t"*/ LITERAL_TOKEN, + /*"u"*/ LITERAL_TOKEN, + /*"v"*/ NO_TOKEN, + /*"w"*/ NO_TOKEN, + /*"x"*/ NO_TOKEN, + /*"y"*/ NO_TOKEN, + /*"z"*/ NO_TOKEN, + /*"{"*/ BEGIN_OBJECT_TOKEN, + /*"|"*/ NO_TOKEN, + /*"}"*/ END_OBJECT_TOKEN, + /*"~"*/ NO_TOKEN, + /*DEL*/ NO_TOKEN, +]; global GRAMMAR_CAPTURE_PUSH_TRANSCRIPT: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ false, - /*"!"*/ false, - /* " */ false, /* I THINK? */ - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ true, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, /* I THINK? */ - /*"1"*/ false, /* I THINK? */ - /*"2"*/ false, /* I THINK? */ - /*"3"*/ false, /* I THINK? */ - /*"4"*/ false, /* I THINK? */ - /*"5"*/ false, /* I THINK? */ - /*"6"*/ false, /* I THINK? */ - /*"7"*/ false, /* I THINK? */ - /*"8"*/ false, /* I THINK? */ - /*"9"*/ false, /* I THINK? */ - /*":"*/ true, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ true, - /*"\"*/ false, - /*"]"*/ true, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ false, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ false, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ false, - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ true, - /*"|"*/ false, - /*"}"*/ true, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ false, + /*"!"*/ false, + /* " */ false, + /* I THINK? */ + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ true, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /* I THINK? */ + /*"1"*/ false, + /* I THINK? */ + /*"2"*/ false, + /* I THINK? */ + /*"3"*/ false, + /* I THINK? */ + /*"4"*/ false, + /* I THINK? */ + /*"5"*/ false, + /* I THINK? */ + /*"6"*/ false, + /* I THINK? */ + /*"7"*/ false, + /* I THINK? */ + /*"8"*/ false, + /* I THINK? */ + /*"9"*/ false, + /* I THINK? */ + /*":"*/ true, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ true, + /*"\"*/ false, + /*"]"*/ true, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ false, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ false, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ false, + /*"u"*/ false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ true, + /*"|"*/ false, + /*"}"*/ true, + /*"~"*/ false, + /*DEL*/ false, +]; global GRAMMAR_CAPTURE_INCREASE_LENGTH: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ false, - /*"!"*/ false, - /* " */ false, /* I THINK? */ - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ false, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ true, /* I THINK? */ - /*"1"*/ true, /* I THINK? */ - /*"2"*/ true, /* I THINK? */ - /*"3"*/ true, /* I THINK? */ - /*"4"*/ true, /* I THINK? */ - /*"5"*/ true, /* I THINK? */ - /*"6"*/ true, /* I THINK? */ - /*"7"*/ true, /* I THINK? */ - /*"8"*/ true, /* I THINK? */ - /*"9"*/ true, /* I THINK? */ - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ false, - /*"]"*/ false, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ true, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ true, - /*"f"*/ true, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ true, - /*"m"*/ false, - /*"n"*/ true, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ true, - /*"t"*/ true, - /*"u"*/ true, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ false, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ false, + /*"!"*/ false, + /* " */ false, + /* I THINK? */ + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ false, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ true, + /* I THINK? */ + /*"1"*/ true, + /* I THINK? */ + /*"2"*/ true, + /* I THINK? */ + /*"3"*/ true, + /* I THINK? */ + /*"4"*/ true, + /* I THINK? */ + /*"5"*/ true, + /* I THINK? */ + /*"6"*/ true, + /* I THINK? */ + /*"7"*/ true, + /* I THINK? */ + /*"8"*/ true, + /* I THINK? */ + /*"9"*/ true, + /* I THINK? */ + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ false, + /*"]"*/ false, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ true, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ true, + /*"f"*/ true, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ true, + /*"m"*/ false, + /*"n"*/ true, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ true, + /*"t"*/ true, + /*"u"*/ true, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ false, + /*"~"*/ false, + /*DEL*/ false, +]; global STRING_CAPTURE_TOKEN: [Field; 128] = [ - /* NULL */ NO_TOKEN, - /* SOH */ NO_TOKEN, - /* TXT */ NO_TOKEN, - /* ETX */ NO_TOKEN, - /* EOT */ NO_TOKEN, - /* ENQ */ NO_TOKEN, - /* ACK */ NO_TOKEN, - /* BEL */ NO_TOKEN, - /* BS */ NO_TOKEN, - /* TAB */ NO_TOKEN, - /* NL */ NO_TOKEN, - /* VT */ NO_TOKEN, - /* FF */ NO_TOKEN, - /* CR */ NO_TOKEN, - /* SI */ NO_TOKEN, - /* SO */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* SPACE */ NO_TOKEN, - /*"!"*/ NO_TOKEN, - /* " */ STRING_TOKEN, /* I THINK? */ - /*"#"*/ NO_TOKEN, - /*"$"*/ NO_TOKEN, - /*"%"*/ NO_TOKEN, - /*"&"*/ NO_TOKEN, - /*"'"*/ NO_TOKEN, - /*"("*/ NO_TOKEN, - /*")"*/ NO_TOKEN, - /*"*"*/ NO_TOKEN, - /*"+"*/ NO_TOKEN, - /*","*/ NO_TOKEN, - /*"-"*/ NO_TOKEN, - /*"."*/ NO_TOKEN, - /*"/"*/ NO_TOKEN, - /*"0"*/ NO_TOKEN, /* I THINK? */ - /*"1"*/ NO_TOKEN, /* I THINK? */ - /*"2"*/ NO_TOKEN, /* I THINK? */ - /*"3"*/ NO_TOKEN, /* I THINK? */ - /*"4"*/ NO_TOKEN, /* I THINK? */ - /*"5"*/ NO_TOKEN, /* I THINK? */ - /*"6"*/ NO_TOKEN, /* I THINK? */ - /*"7"*/ NO_TOKEN, /* I THINK? */ - /*"8"*/ NO_TOKEN, /* I THINK? */ - /*"9"*/ NO_TOKEN, /* I THINK? */ - /*":"*/ NO_TOKEN, - /*";"*/ NO_TOKEN, - /*"<"*/ NO_TOKEN, - /*"="*/ NO_TOKEN, - /*">"*/ NO_TOKEN, - /*"?"*/ NO_TOKEN, - /*"@"*/ NO_TOKEN, - /*"A"*/ NO_TOKEN, - /*"B"*/ NO_TOKEN, - /*"C"*/ NO_TOKEN, - /*"D"*/ NO_TOKEN, - /*"E"*/ NO_TOKEN, - /*"F"*/ NO_TOKEN, - /*"G"*/ NO_TOKEN, - /*"H"*/ NO_TOKEN, - /*"I"*/ NO_TOKEN, - /*"J"*/ NO_TOKEN, - /*"K"*/ NO_TOKEN, - /*"L"*/ NO_TOKEN, - /*"M"*/ NO_TOKEN, - /*"N"*/ NO_TOKEN, - /*"O"*/ NO_TOKEN, - /*"P"*/ NO_TOKEN, - /*"Q"*/ NO_TOKEN, - /*"R"*/ NO_TOKEN, - /*"S"*/ NO_TOKEN, - /*"T"*/ NO_TOKEN, - /*"U"*/ NO_TOKEN, - /*"V"*/ NO_TOKEN, - /*"W"*/ NO_TOKEN, - /*"X"*/ NO_TOKEN, - /*"Y"*/ NO_TOKEN, - /*"Z"*/ NO_TOKEN, - /*"["*/ NO_TOKEN, - /*"\"*/ NO_TOKEN, - /*"]"*/ NO_TOKEN, - /*"^"*/ NO_TOKEN, - /*"_"*/ NO_TOKEN, - /*"`"*/ NO_TOKEN, - /*"a"*/ NO_TOKEN, - /*"b"*/ NO_TOKEN, - /*"c"*/ NO_TOKEN, - /*"d"*/ NO_TOKEN, - /*"e"*/ NO_TOKEN, - /*"f"*/ NO_TOKEN, - /*"g"*/ NO_TOKEN, - /*"h"*/ NO_TOKEN, - /*"i"*/ NO_TOKEN, - /*"j"*/ NO_TOKEN, - /*"k"*/ NO_TOKEN, - /*"l"*/ NO_TOKEN, - /*"m"*/ NO_TOKEN, - /*"n"*/ NO_TOKEN, - /*"o"*/ NO_TOKEN, - /*"p"*/ NO_TOKEN, - /*"q"*/ NO_TOKEN, - /*"r"*/ NO_TOKEN, - /*"s"*/ NO_TOKEN, - /*"t"*/ NO_TOKEN, - /*"u"*/ NO_TOKEN, - /*"v"*/ NO_TOKEN, - /*"w"*/ NO_TOKEN, - /*"x"*/ NO_TOKEN, - /*"y"*/ NO_TOKEN, - /*"z"*/ NO_TOKEN, - /*"{"*/ NO_TOKEN, - /*"|"*/ NO_TOKEN, - /*"}"*/ NO_TOKEN, - /*"~"*/ NO_TOKEN, - /*DEL*/ NO_TOKEN, - ]; + /* NULL */ NO_TOKEN, + /* SOH */ NO_TOKEN, + /* TXT */ NO_TOKEN, + /* ETX */ NO_TOKEN, + /* EOT */ NO_TOKEN, + /* ENQ */ NO_TOKEN, + /* ACK */ NO_TOKEN, + /* BEL */ NO_TOKEN, + /* BS */ NO_TOKEN, + /* TAB */ NO_TOKEN, + /* NL */ NO_TOKEN, + /* VT */ NO_TOKEN, + /* FF */ NO_TOKEN, + /* CR */ NO_TOKEN, + /* SI */ NO_TOKEN, + /* SO */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* SPACE */ NO_TOKEN, + /*"!"*/ NO_TOKEN, + /* " */ STRING_TOKEN, + /* I THINK? */ + /*"#"*/ NO_TOKEN, + /*"$"*/ NO_TOKEN, + /*"%"*/ NO_TOKEN, + /*"&"*/ NO_TOKEN, + /*"'"*/ NO_TOKEN, + /*"("*/ NO_TOKEN, + /*")"*/ NO_TOKEN, + /*"*"*/ NO_TOKEN, + /*"+"*/ NO_TOKEN, + /*","*/ NO_TOKEN, + /*"-"*/ NO_TOKEN, + /*"."*/ NO_TOKEN, + /*"/"*/ NO_TOKEN, + /*"0"*/ NO_TOKEN, + /* I THINK? */ + /*"1"*/ NO_TOKEN, + /* I THINK? */ + /*"2"*/ NO_TOKEN, + /* I THINK? */ + /*"3"*/ NO_TOKEN, + /* I THINK? */ + /*"4"*/ NO_TOKEN, + /* I THINK? */ + /*"5"*/ NO_TOKEN, + /* I THINK? */ + /*"6"*/ NO_TOKEN, + /* I THINK? */ + /*"7"*/ NO_TOKEN, + /* I THINK? */ + /*"8"*/ NO_TOKEN, + /* I THINK? */ + /*"9"*/ NO_TOKEN, + /* I THINK? */ + /*":"*/ NO_TOKEN, + /*";"*/ NO_TOKEN, + /*"<"*/ NO_TOKEN, + /*"="*/ NO_TOKEN, + /*">"*/ NO_TOKEN, + /*"?"*/ NO_TOKEN, + /*"@"*/ NO_TOKEN, + /*"A"*/ NO_TOKEN, + /*"B"*/ NO_TOKEN, + /*"C"*/ NO_TOKEN, + /*"D"*/ NO_TOKEN, + /*"E"*/ NO_TOKEN, + /*"F"*/ NO_TOKEN, + /*"G"*/ NO_TOKEN, + /*"H"*/ NO_TOKEN, + /*"I"*/ NO_TOKEN, + /*"J"*/ NO_TOKEN, + /*"K"*/ NO_TOKEN, + /*"L"*/ NO_TOKEN, + /*"M"*/ NO_TOKEN, + /*"N"*/ NO_TOKEN, + /*"O"*/ NO_TOKEN, + /*"P"*/ NO_TOKEN, + /*"Q"*/ NO_TOKEN, + /*"R"*/ NO_TOKEN, + /*"S"*/ NO_TOKEN, + /*"T"*/ NO_TOKEN, + /*"U"*/ NO_TOKEN, + /*"V"*/ NO_TOKEN, + /*"W"*/ NO_TOKEN, + /*"X"*/ NO_TOKEN, + /*"Y"*/ NO_TOKEN, + /*"Z"*/ NO_TOKEN, + /*"["*/ NO_TOKEN, + /*"\"*/ NO_TOKEN, + /*"]"*/ NO_TOKEN, + /*"^"*/ NO_TOKEN, + /*"_"*/ NO_TOKEN, + /*"`"*/ NO_TOKEN, + /*"a"*/ NO_TOKEN, + /*"b"*/ NO_TOKEN, + /*"c"*/ NO_TOKEN, + /*"d"*/ NO_TOKEN, + /*"e"*/ NO_TOKEN, + /*"f"*/ NO_TOKEN, + /*"g"*/ NO_TOKEN, + /*"h"*/ NO_TOKEN, + /*"i"*/ NO_TOKEN, + /*"j"*/ NO_TOKEN, + /*"k"*/ NO_TOKEN, + /*"l"*/ NO_TOKEN, + /*"m"*/ NO_TOKEN, + /*"n"*/ NO_TOKEN, + /*"o"*/ NO_TOKEN, + /*"p"*/ NO_TOKEN, + /*"q"*/ NO_TOKEN, + /*"r"*/ NO_TOKEN, + /*"s"*/ NO_TOKEN, + /*"t"*/ NO_TOKEN, + /*"u"*/ NO_TOKEN, + /*"v"*/ NO_TOKEN, + /*"w"*/ NO_TOKEN, + /*"x"*/ NO_TOKEN, + /*"y"*/ NO_TOKEN, + /*"z"*/ NO_TOKEN, + /*"{"*/ NO_TOKEN, + /*"|"*/ NO_TOKEN, + /*"}"*/ NO_TOKEN, + /*"~"*/ NO_TOKEN, + /*DEL*/ NO_TOKEN, +]; global STRING_CAPTURE_PUSH_TRANSCRIPT: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ false, - /*"!"*/ false, - /* " */ true, /* I THINK? */ - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ false, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, /* I THINK? */ - /*"1"*/ false, /* I THINK? */ - /*"2"*/ false, /* I THINK? */ - /*"3"*/ false, /* I THINK? */ - /*"4"*/ false, /* I THINK? */ - /*"5"*/ false, /* I THINK? */ - /*"6"*/ false, /* I THINK? */ - /*"7"*/ false, /* I THINK? */ - /*"8"*/ false, /* I THINK? */ - /*"9"*/ false, /* I THINK? */ - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ false, - /*"]"*/ false, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ false, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ false, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ false, - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ false, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ false, + /*"!"*/ false, + /* " */ true, + /* I THINK? */ + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ false, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /* I THINK? */ + /*"1"*/ false, + /* I THINK? */ + /*"2"*/ false, + /* I THINK? */ + /*"3"*/ false, + /* I THINK? */ + /*"4"*/ false, + /* I THINK? */ + /*"5"*/ false, + /* I THINK? */ + /*"6"*/ false, + /* I THINK? */ + /*"7"*/ false, + /* I THINK? */ + /*"8"*/ false, + /* I THINK? */ + /*"9"*/ false, + /* I THINK? */ + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ false, + /*"]"*/ false, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ false, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ false, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ false, + /*"u"*/ false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ false, + /*"~"*/ false, + /*DEL*/ false, +]; global STRING_CAPTURE_INCREASE_LENGTH: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ true, - /*"!"*/ true, - /* " */ false, /* I THINK? */ - /*"#"*/ true, - /*"$"*/ true, - /*"%"*/ true, - /*"&"*/ true, - /*"'"*/ true, - /*"("*/ true, - /*")"*/ true, - /*"*"*/ true, - /*"+"*/ true, - /*","*/ true, - /*"-"*/ true, - /*"."*/ true, - /*"/"*/ true, - /*"0"*/ true, /* I THINK? */ - /*"1"*/ true, /* I THINK? */ - /*"2"*/ true, /* I THINK? */ - /*"3"*/ true, /* I THINK? */ - /*"4"*/ true, /* I THINK? */ - /*"5"*/ true, /* I THINK? */ - /*"6"*/ true, /* I THINK? */ - /*"7"*/ true, /* I THINK? */ - /*"8"*/ true, /* I THINK? */ - /*"9"*/ true, /* I THINK? */ - /*":"*/ true, - /*";"*/ true, - /*"<"*/ true, - /*"="*/ true, - /*">"*/ true, - /*"?"*/ true, - /*"@"*/ true, - /*"A"*/ true, - /*"B"*/ true, - /*"C"*/ true, - /*"D"*/ true, - /*"E"*/ true, - /*"F"*/ true, - /*"G"*/ true, - /*"H"*/ true, - /*"I"*/ true, - /*"J"*/ true, - /*"K"*/ true, - /*"L"*/ true, - /*"M"*/ true, - /*"N"*/ true, - /*"O"*/ true, - /*"P"*/ true, - /*"Q"*/ true, - /*"R"*/ true, - /*"S"*/ true, - /*"T"*/ true, - /*"U"*/ true, - /*"V"*/ true, - /*"W"*/ true, - /*"X"*/ true, - /*"Y"*/ true, - /*"Z"*/ true, - /*"["*/ true, - /*"\"*/ true, - /*"]"*/ true, - /*"^"*/ true, - /*"_"*/ true, - /*"`"*/ true, - /*"a"*/ true, - /*"b"*/ true, - /*"c"*/ true, - /*"d"*/ true, - /*"e"*/ true, - /*"f"*/ true, - /*"g"*/ true, - /*"h"*/ true, - /*"i"*/ true, - /*"j"*/ true, - /*"k"*/ true, - /*"l"*/ true, - /*"m"*/ true, - /*"n"*/ true, - /*"o"*/ true, - /*"p"*/ true, - /*"q"*/ true, - /*"r"*/ true, - /*"s"*/ true, - /*"t"*/ true, - /*"u"*/ true, - /*"v"*/ true, - /*"w"*/ true, - /*"x"*/ true, - /*"y"*/ true, - /*"z"*/ true, - /*"{"*/ true, - /*"|"*/ true, - /*"}"*/ true, - /*"~"*/ true, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ true, + /*"!"*/ true, + /* " */ false, + /* I THINK? */ + /*"#"*/ true, + /*"$"*/ true, + /*"%"*/ true, + /*"&"*/ true, + /*"'"*/ true, + /*"("*/ true, + /*")"*/ true, + /*"*"*/ true, + /*"+"*/ true, + /*","*/ true, + /*"-"*/ true, + /*"."*/ true, + /*"/"*/ true, + /*"0"*/ true, + /* I THINK? */ + /*"1"*/ true, + /* I THINK? */ + /*"2"*/ true, + /* I THINK? */ + /*"3"*/ true, + /* I THINK? */ + /*"4"*/ true, + /* I THINK? */ + /*"5"*/ true, + /* I THINK? */ + /*"6"*/ true, + /* I THINK? */ + /*"7"*/ true, + /* I THINK? */ + /*"8"*/ true, + /* I THINK? */ + /*"9"*/ true, + /* I THINK? */ + /*":"*/ true, + /*";"*/ true, + /*"<"*/ true, + /*"="*/ true, + /*">"*/ true, + /*"?"*/ true, + /*"@"*/ true, + /*"A"*/ true, + /*"B"*/ true, + /*"C"*/ true, + /*"D"*/ true, + /*"E"*/ true, + /*"F"*/ true, + /*"G"*/ true, + /*"H"*/ true, + /*"I"*/ true, + /*"J"*/ true, + /*"K"*/ true, + /*"L"*/ true, + /*"M"*/ true, + /*"N"*/ true, + /*"O"*/ true, + /*"P"*/ true, + /*"Q"*/ true, + /*"R"*/ true, + /*"S"*/ true, + /*"T"*/ true, + /*"U"*/ true, + /*"V"*/ true, + /*"W"*/ true, + /*"X"*/ true, + /*"Y"*/ true, + /*"Z"*/ true, + /*"["*/ true, + /*"\"*/ true, + /*"]"*/ true, + /*"^"*/ true, + /*"_"*/ true, + /*"`"*/ true, + /*"a"*/ true, + /*"b"*/ true, + /*"c"*/ true, + /*"d"*/ true, + /*"e"*/ true, + /*"f"*/ true, + /*"g"*/ true, + /*"h"*/ true, + /*"i"*/ true, + /*"j"*/ true, + /*"k"*/ true, + /*"l"*/ true, + /*"m"*/ true, + /*"n"*/ true, + /*"o"*/ true, + /*"p"*/ true, + /*"q"*/ true, + /*"r"*/ true, + /*"s"*/ true, + /*"t"*/ true, + /*"u"*/ true, + /*"v"*/ true, + /*"w"*/ true, + /*"x"*/ true, + /*"y"*/ true, + /*"z"*/ true, + /*"{"*/ true, + /*"|"*/ true, + /*"}"*/ true, + /*"~"*/ true, + /*DEL*/ false, +]; global NUMERIC_CAPTURE_TOKEN: [Field; 128] = [ - /* NULL */ NO_TOKEN, - /* SOH */ NO_TOKEN, - /* TXT */ NO_TOKEN, - /* ETX */ NO_TOKEN, - /* EOT */ NO_TOKEN, - /* ENQ */ NO_TOKEN, - /* ACK */ NO_TOKEN, - /* BEL */ NO_TOKEN, - /* BS */ NO_TOKEN, - /* TAB */ NUMERIC_TOKEN, - /* NL */ NUMERIC_TOKEN, - /* VT */ NO_TOKEN, - /* FF */ NO_TOKEN, - /* CR */ NUMERIC_TOKEN, - /* SI */ NO_TOKEN, - /* SO */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* SPACE */ NUMERIC_TOKEN, - /*"!"*/ NO_TOKEN, - /* " */ NUMERIC_TOKEN, /* I THINK? */ - /*"#"*/ NO_TOKEN, - /*"$"*/ NO_TOKEN, - /*"%"*/ NO_TOKEN, - /*"&"*/ NO_TOKEN, - /*"'"*/ NO_TOKEN, - /*"("*/ NO_TOKEN, - /*")"*/ NO_TOKEN, - /*"*"*/ NO_TOKEN, - /*"+"*/ NO_TOKEN, - /*","*/ NUMERIC_TOKEN, - /*"-"*/ NO_TOKEN, - /*"."*/ NO_TOKEN, - /*"/"*/ NO_TOKEN, - /*"0"*/ NO_TOKEN, /* I THINK? */ - /*"1"*/ NO_TOKEN, /* I THINK? */ - /*"2"*/ NO_TOKEN, /* I THINK? */ - /*"3"*/ NO_TOKEN, /* I THINK? */ - /*"4"*/ NO_TOKEN, /* I THINK? */ - /*"5"*/ NO_TOKEN, /* I THINK? */ - /*"6"*/ NO_TOKEN, /* I THINK? */ - /*"7"*/ NO_TOKEN, /* I THINK? */ - /*"8"*/ NO_TOKEN, /* I THINK? */ - /*"9"*/ NO_TOKEN, /* I THINK? */ - /*":"*/ NO_TOKEN, - /*";"*/ NO_TOKEN, - /*"<"*/ NO_TOKEN, - /*"="*/ NO_TOKEN, - /*">"*/ NO_TOKEN, - /*"?"*/ NO_TOKEN, - /*"@"*/ NO_TOKEN, - /*"A"*/ NO_TOKEN, - /*"B"*/ NO_TOKEN, - /*"C"*/ NO_TOKEN, - /*"D"*/ NO_TOKEN, - /*"E"*/ NO_TOKEN, - /*"F"*/ NO_TOKEN, - /*"G"*/ NO_TOKEN, - /*"H"*/ NO_TOKEN, - /*"I"*/ NO_TOKEN, - /*"J"*/ NO_TOKEN, - /*"K"*/ NO_TOKEN, - /*"L"*/ NO_TOKEN, - /*"M"*/ NO_TOKEN, - /*"N"*/ NO_TOKEN, - /*"O"*/ NO_TOKEN, - /*"P"*/ NO_TOKEN, - /*"Q"*/ NO_TOKEN, - /*"R"*/ NO_TOKEN, - /*"S"*/ NO_TOKEN, - /*"T"*/ NO_TOKEN, - /*"U"*/ NO_TOKEN, - /*"V"*/ NO_TOKEN, - /*"W"*/ NO_TOKEN, - /*"X"*/ NO_TOKEN, - /*"Y"*/ NO_TOKEN, - /*"Z"*/ NO_TOKEN, - /*"["*/ NO_TOKEN, - /*"\"*/ NO_TOKEN, - /*"]"*/ NUMERIC_TOKEN, - /*"^"*/ NO_TOKEN, - /*"_"*/ NO_TOKEN, - /*"`"*/ NO_TOKEN, - /*"a"*/ NO_TOKEN, - /*"b"*/ NO_TOKEN, - /*"c"*/ NO_TOKEN, - /*"d"*/ NO_TOKEN, - /*"e"*/ NO_TOKEN, - /*"f"*/ NO_TOKEN, - /*"g"*/ NO_TOKEN, - /*"h"*/ NO_TOKEN, - /*"i"*/ NO_TOKEN, - /*"j"*/ NO_TOKEN, - /*"k"*/ NO_TOKEN, - /*"l"*/ NO_TOKEN, - /*"m"*/ NO_TOKEN, - /*"n"*/ NO_TOKEN, - /*"o"*/ NO_TOKEN, - /*"p"*/ NO_TOKEN, - /*"q"*/ NO_TOKEN, - /*"r"*/ NO_TOKEN, - /*"s"*/ NO_TOKEN, - /*"t"*/ NO_TOKEN, - /*"u"*/ NO_TOKEN, - /*"v"*/ NO_TOKEN, - /*"w"*/ NO_TOKEN, - /*"x"*/ NO_TOKEN, - /*"y"*/ NO_TOKEN, - /*"z"*/ NO_TOKEN, - /*"{"*/ NO_TOKEN, - /*"|"*/ NO_TOKEN, - /*"}"*/ NUMERIC_TOKEN, - /*"~"*/ NO_TOKEN, - /*DEL*/ NO_TOKEN, - ]; + /* NULL */ NO_TOKEN, + /* SOH */ NO_TOKEN, + /* TXT */ NO_TOKEN, + /* ETX */ NO_TOKEN, + /* EOT */ NO_TOKEN, + /* ENQ */ NO_TOKEN, + /* ACK */ NO_TOKEN, + /* BEL */ NO_TOKEN, + /* BS */ NO_TOKEN, + /* TAB */ NUMERIC_TOKEN, + /* NL */ NUMERIC_TOKEN, + /* VT */ NO_TOKEN, + /* FF */ NO_TOKEN, + /* CR */ NUMERIC_TOKEN, + /* SI */ NO_TOKEN, + /* SO */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* SPACE */ NUMERIC_TOKEN, + /*"!"*/ NO_TOKEN, + /* " */ NUMERIC_TOKEN, + /* I THINK? */ + /*"#"*/ NO_TOKEN, + /*"$"*/ NO_TOKEN, + /*"%"*/ NO_TOKEN, + /*"&"*/ NO_TOKEN, + /*"'"*/ NO_TOKEN, + /*"("*/ NO_TOKEN, + /*")"*/ NO_TOKEN, + /*"*"*/ NO_TOKEN, + /*"+"*/ NO_TOKEN, + /*","*/ NUMERIC_TOKEN, + /*"-"*/ NO_TOKEN, + /*"."*/ NO_TOKEN, + /*"/"*/ NO_TOKEN, + /*"0"*/ NO_TOKEN, + /* I THINK? */ + /*"1"*/ NO_TOKEN, + /* I THINK? */ + /*"2"*/ NO_TOKEN, + /* I THINK? */ + /*"3"*/ NO_TOKEN, + /* I THINK? */ + /*"4"*/ NO_TOKEN, + /* I THINK? */ + /*"5"*/ NO_TOKEN, + /* I THINK? */ + /*"6"*/ NO_TOKEN, + /* I THINK? */ + /*"7"*/ NO_TOKEN, + /* I THINK? */ + /*"8"*/ NO_TOKEN, + /* I THINK? */ + /*"9"*/ NO_TOKEN, + /* I THINK? */ + /*":"*/ NO_TOKEN, + /*";"*/ NO_TOKEN, + /*"<"*/ NO_TOKEN, + /*"="*/ NO_TOKEN, + /*">"*/ NO_TOKEN, + /*"?"*/ NO_TOKEN, + /*"@"*/ NO_TOKEN, + /*"A"*/ NO_TOKEN, + /*"B"*/ NO_TOKEN, + /*"C"*/ NO_TOKEN, + /*"D"*/ NO_TOKEN, + /*"E"*/ NO_TOKEN, + /*"F"*/ NO_TOKEN, + /*"G"*/ NO_TOKEN, + /*"H"*/ NO_TOKEN, + /*"I"*/ NO_TOKEN, + /*"J"*/ NO_TOKEN, + /*"K"*/ NO_TOKEN, + /*"L"*/ NO_TOKEN, + /*"M"*/ NO_TOKEN, + /*"N"*/ NO_TOKEN, + /*"O"*/ NO_TOKEN, + /*"P"*/ NO_TOKEN, + /*"Q"*/ NO_TOKEN, + /*"R"*/ NO_TOKEN, + /*"S"*/ NO_TOKEN, + /*"T"*/ NO_TOKEN, + /*"U"*/ NO_TOKEN, + /*"V"*/ NO_TOKEN, + /*"W"*/ NO_TOKEN, + /*"X"*/ NO_TOKEN, + /*"Y"*/ NO_TOKEN, + /*"Z"*/ NO_TOKEN, + /*"["*/ NO_TOKEN, + /*"\"*/ NO_TOKEN, + /*"]"*/ NUMERIC_TOKEN, + /*"^"*/ NO_TOKEN, + /*"_"*/ NO_TOKEN, + /*"`"*/ NO_TOKEN, + /*"a"*/ NO_TOKEN, + /*"b"*/ NO_TOKEN, + /*"c"*/ NO_TOKEN, + /*"d"*/ NO_TOKEN, + /*"e"*/ NO_TOKEN, + /*"f"*/ NO_TOKEN, + /*"g"*/ NO_TOKEN, + /*"h"*/ NO_TOKEN, + /*"i"*/ NO_TOKEN, + /*"j"*/ NO_TOKEN, + /*"k"*/ NO_TOKEN, + /*"l"*/ NO_TOKEN, + /*"m"*/ NO_TOKEN, + /*"n"*/ NO_TOKEN, + /*"o"*/ NO_TOKEN, + /*"p"*/ NO_TOKEN, + /*"q"*/ NO_TOKEN, + /*"r"*/ NO_TOKEN, + /*"s"*/ NO_TOKEN, + /*"t"*/ NO_TOKEN, + /*"u"*/ NO_TOKEN, + /*"v"*/ NO_TOKEN, + /*"w"*/ NO_TOKEN, + /*"x"*/ NO_TOKEN, + /*"y"*/ NO_TOKEN, + /*"z"*/ NO_TOKEN, + /*"{"*/ NO_TOKEN, + /*"|"*/ NO_TOKEN, + /*"}"*/ NUMERIC_TOKEN, + /*"~"*/ NO_TOKEN, + /*DEL*/ NO_TOKEN, +]; global NUMERIC_CAPTURE_PUSH_TRANSCRIPT: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ true, - /* NL */ true, - /* VT */ false, - /* FF */ false, - /* CR */ true, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ true, - /*"!"*/ false, - /* " */ true, /* I THINK? */ - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ true, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, /* I THINK? */ - /*"1"*/ false, /* I THINK? */ - /*"2"*/ false, /* I THINK? */ - /*"3"*/ false, /* I THINK? */ - /*"4"*/ false, /* I THINK? */ - /*"5"*/ false, /* I THINK? */ - /*"6"*/ false, /* I THINK? */ - /*"7"*/ false, /* I THINK? */ - /*"8"*/ false, /* I THINK? */ - /*"9"*/ false, /* I THINK? */ - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ false, - /*"]"*/ true, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ false, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ false, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ false, - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ true, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ true, + /* NL */ true, + /* VT */ false, + /* FF */ false, + /* CR */ true, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ true, + /*"!"*/ false, + /* " */ true, + /* I THINK? */ + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ true, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /* I THINK? */ + /*"1"*/ false, + /* I THINK? */ + /*"2"*/ false, + /* I THINK? */ + /*"3"*/ false, + /* I THINK? */ + /*"4"*/ false, + /* I THINK? */ + /*"5"*/ false, + /* I THINK? */ + /*"6"*/ false, + /* I THINK? */ + /*"7"*/ false, + /* I THINK? */ + /*"8"*/ false, + /* I THINK? */ + /*"9"*/ false, + /* I THINK? */ + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ false, + /*"]"*/ true, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ false, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ false, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ false, + /*"u"*/ false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ true, + /*"~"*/ false, + /*DEL*/ false, +]; global NUMERIC_CAPTURE_INCREASE_LENGTH: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ false, - /*"!"*/ false, - /* " */ false, /* I THINK? */ - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ false, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ true, /* I THINK? */ - /*"1"*/ true, /* I THINK? */ - /*"2"*/ true, /* I THINK? */ - /*"3"*/ true, /* I THINK? */ - /*"4"*/ true, /* I THINK? */ - /*"5"*/ true, /* I THINK? */ - /*"6"*/ true, /* I THINK? */ - /*"7"*/ true, /* I THINK? */ - /*"8"*/ true, /* I THINK? */ - /*"9"*/ true, /* I THINK? */ - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ false, - /*"]"*/ false, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ false, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ false, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ false, - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ false, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ false, + /*"!"*/ false, + /* " */ false, + /* I THINK? */ + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ false, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ true, + /* I THINK? */ + /*"1"*/ true, + /* I THINK? */ + /*"2"*/ true, + /* I THINK? */ + /*"3"*/ true, + /* I THINK? */ + /*"4"*/ true, + /* I THINK? */ + /*"5"*/ true, + /* I THINK? */ + /*"6"*/ true, + /* I THINK? */ + /*"7"*/ true, + /* I THINK? */ + /*"8"*/ true, + /* I THINK? */ + /*"9"*/ true, + /* I THINK? */ + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ false, + /*"]"*/ false, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ false, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ false, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ false, + /*"u"*/ false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ false, + /*"~"*/ false, + /*DEL*/ false, +]; global LITERAL_CAPTURE_TOKEN: [Field; 128] = [ - /* NULL */ NO_TOKEN, - /* SOH */ NO_TOKEN, - /* TXT */ NO_TOKEN, - /* ETX */ NO_TOKEN, - /* EOT */ NO_TOKEN, - /* ENQ */ NO_TOKEN, - /* ACK */ NO_TOKEN, - /* BEL */ NO_TOKEN, - /* BS */ NO_TOKEN, - /* TAB */ LITERAL_TOKEN, - /* NL */ LITERAL_TOKEN, - /* VT */ NO_TOKEN, - /* FF */ NO_TOKEN, - /* CR */ LITERAL_TOKEN, - /* SI */ NO_TOKEN, - /* SO */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* */ NO_TOKEN, - /* SPACE */ LITERAL_TOKEN, - /*"!"*/ NO_TOKEN, - /* " */ NO_TOKEN, - /*"#"*/ NO_TOKEN, - /*"$"*/ NO_TOKEN, - /*"%"*/ NO_TOKEN, - /*"&"*/ NO_TOKEN, - /*"'"*/ NO_TOKEN, - /*"("*/ NO_TOKEN, - /*")"*/ NO_TOKEN, - /*"*"*/ NO_TOKEN, - /*"+"*/ NO_TOKEN, - /*","*/ LITERAL_TOKEN, - /*"-"*/ NO_TOKEN, - /*"."*/ NO_TOKEN, - /*"/"*/ NO_TOKEN, - /*"0"*/ NO_TOKEN, - /*"1"*/ NO_TOKEN, - /*"2"*/ NO_TOKEN, - /*"3"*/ NO_TOKEN, - /*"4"*/ NO_TOKEN, - /*"5"*/ NO_TOKEN, - /*"6"*/ NO_TOKEN, - /*"7"*/ NO_TOKEN, - /*"8"*/ NO_TOKEN, - /*"9"*/ NO_TOKEN, - /*":"*/ NO_TOKEN, - /*";"*/ NO_TOKEN, - /*"<"*/ NO_TOKEN, - /*"="*/ NO_TOKEN, - /*">"*/ NO_TOKEN, - /*"?"*/ NO_TOKEN, - /*"@"*/ NO_TOKEN, - /*"A"*/ NO_TOKEN, - /*"B"*/ NO_TOKEN, - /*"C"*/ NO_TOKEN, - /*"D"*/ NO_TOKEN, - /*"E"*/ NO_TOKEN, - /*"F"*/ NO_TOKEN, - /*"G"*/ NO_TOKEN, - /*"H"*/ NO_TOKEN, - /*"I"*/ NO_TOKEN, - /*"J"*/ NO_TOKEN, - /*"K"*/ NO_TOKEN, - /*"L"*/ NO_TOKEN, - /*"M"*/ NO_TOKEN, - /*"N"*/ NO_TOKEN, - /*"O"*/ NO_TOKEN, - /*"P"*/ NO_TOKEN, - /*"Q"*/ NO_TOKEN, - /*"R"*/ NO_TOKEN, - /*"S"*/ NO_TOKEN, - /*"T"*/ NO_TOKEN, - /*"U"*/ NO_TOKEN, - /*"V"*/ NO_TOKEN, - /*"W"*/ NO_TOKEN, - /*"X"*/ NO_TOKEN, - /*"Y"*/ NO_TOKEN, - /*"Z"*/ NO_TOKEN, - /*"["*/ NO_TOKEN, - /*"\"*/ NO_TOKEN, - /*"]"*/ LITERAL_TOKEN, - /*"^"*/ NO_TOKEN, - /*"_"*/ NO_TOKEN, - /*"`"*/ NO_TOKEN, - /*"a"*/ NO_TOKEN, - /*"b"*/ NO_TOKEN, - /*"c"*/ NO_TOKEN, - /*"d"*/ NO_TOKEN, - /*"e"*/ NO_TOKEN, - /*"f"*/ NO_TOKEN, - /*"g"*/ NO_TOKEN, - /*"h"*/ NO_TOKEN, - /*"i"*/ NO_TOKEN, - /*"j"*/ NO_TOKEN, - /*"k"*/ NO_TOKEN, - /*"l"*/ NO_TOKEN, - /*"m"*/ NO_TOKEN, - /*"n"*/ NO_TOKEN, - /*"o"*/ NO_TOKEN, - /*"p"*/ NO_TOKEN, - /*"q"*/ NO_TOKEN, - /*"r"*/ NO_TOKEN, - /*"s"*/ NO_TOKEN, - /*"t"*/ NO_TOKEN, - /*"u"*/ NO_TOKEN, - /*"v"*/ NO_TOKEN, - /*"w"*/ NO_TOKEN, - /*"x"*/ NO_TOKEN, - /*"y"*/ NO_TOKEN, - /*"z"*/ NO_TOKEN, - /*"{"*/ NO_TOKEN, - /*"|"*/ NO_TOKEN, - /*"}"*/ LITERAL_TOKEN, - /*"~"*/ NO_TOKEN, - /*DEL*/ NO_TOKEN, - ]; + /* NULL */ NO_TOKEN, + /* SOH */ NO_TOKEN, + /* TXT */ NO_TOKEN, + /* ETX */ NO_TOKEN, + /* EOT */ NO_TOKEN, + /* ENQ */ NO_TOKEN, + /* ACK */ NO_TOKEN, + /* BEL */ NO_TOKEN, + /* BS */ NO_TOKEN, + /* TAB */ LITERAL_TOKEN, + /* NL */ LITERAL_TOKEN, + /* VT */ NO_TOKEN, + /* FF */ NO_TOKEN, + /* CR */ LITERAL_TOKEN, + /* SI */ NO_TOKEN, + /* SO */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* */ NO_TOKEN, + /* SPACE */ LITERAL_TOKEN, + /*"!"*/ NO_TOKEN, + /* " */ NO_TOKEN, + /*"#"*/ NO_TOKEN, + /*"$"*/ NO_TOKEN, + /*"%"*/ NO_TOKEN, + /*"&"*/ NO_TOKEN, + /*"'"*/ NO_TOKEN, + /*"("*/ NO_TOKEN, + /*")"*/ NO_TOKEN, + /*"*"*/ NO_TOKEN, + /*"+"*/ NO_TOKEN, + /*","*/ LITERAL_TOKEN, + /*"-"*/ NO_TOKEN, + /*"."*/ NO_TOKEN, + /*"/"*/ NO_TOKEN, + /*"0"*/ NO_TOKEN, + /*"1"*/ NO_TOKEN, + /*"2"*/ NO_TOKEN, + /*"3"*/ NO_TOKEN, + /*"4"*/ NO_TOKEN, + /*"5"*/ NO_TOKEN, + /*"6"*/ NO_TOKEN, + /*"7"*/ NO_TOKEN, + /*"8"*/ NO_TOKEN, + /*"9"*/ NO_TOKEN, + /*":"*/ NO_TOKEN, + /*";"*/ NO_TOKEN, + /*"<"*/ NO_TOKEN, + /*"="*/ NO_TOKEN, + /*">"*/ NO_TOKEN, + /*"?"*/ NO_TOKEN, + /*"@"*/ NO_TOKEN, + /*"A"*/ NO_TOKEN, + /*"B"*/ NO_TOKEN, + /*"C"*/ NO_TOKEN, + /*"D"*/ NO_TOKEN, + /*"E"*/ NO_TOKEN, + /*"F"*/ NO_TOKEN, + /*"G"*/ NO_TOKEN, + /*"H"*/ NO_TOKEN, + /*"I"*/ NO_TOKEN, + /*"J"*/ NO_TOKEN, + /*"K"*/ NO_TOKEN, + /*"L"*/ NO_TOKEN, + /*"M"*/ NO_TOKEN, + /*"N"*/ NO_TOKEN, + /*"O"*/ NO_TOKEN, + /*"P"*/ NO_TOKEN, + /*"Q"*/ NO_TOKEN, + /*"R"*/ NO_TOKEN, + /*"S"*/ NO_TOKEN, + /*"T"*/ NO_TOKEN, + /*"U"*/ NO_TOKEN, + /*"V"*/ NO_TOKEN, + /*"W"*/ NO_TOKEN, + /*"X"*/ NO_TOKEN, + /*"Y"*/ NO_TOKEN, + /*"Z"*/ NO_TOKEN, + /*"["*/ NO_TOKEN, + /*"\"*/ NO_TOKEN, + /*"]"*/ LITERAL_TOKEN, + /*"^"*/ NO_TOKEN, + /*"_"*/ NO_TOKEN, + /*"`"*/ NO_TOKEN, + /*"a"*/ NO_TOKEN, + /*"b"*/ NO_TOKEN, + /*"c"*/ NO_TOKEN, + /*"d"*/ NO_TOKEN, + /*"e"*/ NO_TOKEN, + /*"f"*/ NO_TOKEN, + /*"g"*/ NO_TOKEN, + /*"h"*/ NO_TOKEN, + /*"i"*/ NO_TOKEN, + /*"j"*/ NO_TOKEN, + /*"k"*/ NO_TOKEN, + /*"l"*/ NO_TOKEN, + /*"m"*/ NO_TOKEN, + /*"n"*/ NO_TOKEN, + /*"o"*/ NO_TOKEN, + /*"p"*/ NO_TOKEN, + /*"q"*/ NO_TOKEN, + /*"r"*/ NO_TOKEN, + /*"s"*/ NO_TOKEN, + /*"t"*/ NO_TOKEN, + /*"u"*/ NO_TOKEN, + /*"v"*/ NO_TOKEN, + /*"w"*/ NO_TOKEN, + /*"x"*/ NO_TOKEN, + /*"y"*/ NO_TOKEN, + /*"z"*/ NO_TOKEN, + /*"{"*/ NO_TOKEN, + /*"|"*/ NO_TOKEN, + /*"}"*/ LITERAL_TOKEN, + /*"~"*/ NO_TOKEN, + /*DEL*/ NO_TOKEN, +]; global LITERAL_CAPTURE_PUSH_TRANSCRIPT: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ true, - /* NL */ true, - /* VT */ false, - /* FF */ false, - /* CR */ true, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ true, - /*"!"*/ false, - /* " */ true, /* I THINK? */ - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ true, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, /* I THINK? */ - /*"1"*/ false, /* I THINK? */ - /*"2"*/ false, /* I THINK? */ - /*"3"*/ false, /* I THINK? */ - /*"4"*/ false, /* I THINK? */ - /*"5"*/ false, /* I THINK? */ - /*"6"*/ false, /* I THINK? */ - /*"7"*/ false, /* I THINK? */ - /*"8"*/ false, /* I THINK? */ - /*"9"*/ false, /* I THINK? */ - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ false, - /*"]"*/ true, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ false, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ false, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ false, - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ true, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ true, + /* NL */ true, + /* VT */ false, + /* FF */ false, + /* CR */ true, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ true, + /*"!"*/ false, + /* " */ true, + /* I THINK? */ + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ true, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /* I THINK? */ + /*"1"*/ false, + /* I THINK? */ + /*"2"*/ false, + /* I THINK? */ + /*"3"*/ false, + /* I THINK? */ + /*"4"*/ false, + /* I THINK? */ + /*"5"*/ false, + /* I THINK? */ + /*"6"*/ false, + /* I THINK? */ + /*"7"*/ false, + /* I THINK? */ + /*"8"*/ false, + /* I THINK? */ + /*"9"*/ false, + /* I THINK? */ + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ false, + /*"]"*/ true, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ false, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ false, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ false, + /*"u"*/ false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ true, + /*"~"*/ false, + /*DEL*/ false, +]; global LITERAL_CAPTURE_INCREASE_LENGTH: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ false, - /*"!"*/ false, - /* " */ false, /* I THINK? */ - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ false, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, /* I THINK? */ - /*"1"*/ false, /* I THINK? */ - /*"2"*/ false, /* I THINK? */ - /*"3"*/ false, /* I THINK? */ - /*"4"*/ false, /* I THINK? */ - /*"5"*/ false, /* I THINK? */ - /*"6"*/ false, /* I THINK? */ - /*"7"*/ false, /* I THINK? */ - /*"8"*/ false, /* I THINK? */ - /*"9"*/ false, /* I THINK? */ - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ false, - /*"]"*/ false, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ true, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ true, - /*"f"*/ true, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ true, - /*"m"*/ false, - /*"n"*/ true, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ true, - /*"s"*/ true, - /*"t"*/ true, - /*"u"*/ true, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ false, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ false, + /*"!"*/ false, + /* " */ false, + /* I THINK? */ + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ false, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /* I THINK? */ + /*"1"*/ false, + /* I THINK? */ + /*"2"*/ false, + /* I THINK? */ + /*"3"*/ false, + /* I THINK? */ + /*"4"*/ false, + /* I THINK? */ + /*"5"*/ false, + /* I THINK? */ + /*"6"*/ false, + /* I THINK? */ + /*"7"*/ false, + /* I THINK? */ + /*"8"*/ false, + /* I THINK? */ + /*"9"*/ false, + /* I THINK? */ + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ false, + /*"]"*/ false, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ true, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ true, + /*"f"*/ true, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ true, + /*"m"*/ false, + /*"n"*/ true, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ true, + /*"s"*/ true, + /*"t"*/ true, + /*"u"*/ true, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ false, + /*"~"*/ false, + /*DEL*/ false, +]; // #### global GRAMMAR_CAPTURE_ERROR_FLAG: [bool; 128] = [ - /* NULL */ true, - /* SOH */ true, - /* TXT */ true, - /* ETX */ true, - /* EOT */ true, - /* ENQ */ true, - /* ACK */ true, - /* BEL */ true, - /* BS */ true, - /* TAB */ false, - /* NL */ false, - /* VT */ true, - /* FF */ true, - /* CR */ false, - /* SI */ true, - /* SO */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* SPACE */ false, - /*"!"*/ true, - /* " */ false, - /*"#"*/ true, - /*"$"*/ true, - /*"%"*/ true, - /*"&"*/ true, - /*"'"*/ true, - /*"("*/ true, - /*")"*/ true, - /*"*"*/ true, - /*"+"*/ true, - /*","*/ false, - /*"-"*/ true, - /*"."*/ true, - /*"/"*/ true, - /*"0"*/ false, - /*"1"*/ false, - /*"2"*/ false, - /*"3"*/ false, - /*"4"*/ false, - /*"5"*/ false, - /*"6"*/ false, - /*"7"*/ false, - /*"8"*/ false, - /*"9"*/ false, - /*":"*/ false, - /*";"*/ true, - /*"<"*/ true, - /*"="*/ true, - /*">"*/ true, - /*"?"*/ true, - /*"@"*/ true, - /*"A"*/ true, - /*"B"*/ true, - /*"C"*/ true, - /*"D"*/ true, - /*"E"*/ true, - /*"F"*/ true, - /*"G"*/ true, - /*"H"*/ true, - /*"I"*/ true, - /*"J"*/ true, - /*"K"*/ true, - /*"L"*/ true, - /*"M"*/ true, - /*"N"*/ true, - /*"O"*/ true, - /*"P"*/ true, - /*"Q"*/ true, - /*"R"*/ true, - /*"S"*/ true, - /*"T"*/ true, - /*"U"*/ true, - /*"V"*/ true, - /*"W"*/ true, - /*"X"*/ true, - /*"Y"*/ true, - /*"Z"*/ true, - /*"["*/ false, - /*"\"*/ true, - /*"]"*/ false, - /*"^"*/ true, - /*"_"*/ true, - /*"`"*/ true, - /*"a"*/ true, - /*"b"*/ true, - /*"c"*/ true, - /*"d"*/ true, - /*"e"*/ true, - /*"f"*/ false, // false = literal - /*"g"*/ true, - /*"h"*/ true, - /*"i"*/ true, - /*"j"*/ true, - /*"k"*/ true, - /*"l"*/ true, - /*"m"*/ true, - /*"n"*/ false, // null = literal - /*"o"*/ true, - /*"p"*/ true, - /*"q"*/ true, - /*"r"*/ true, - /*"s"*/ true, - /*"t"*/ false, // true = literal - /*"u"*/ true, - /*"v"*/ true, - /*"w"*/ true, - /*"x"*/ true, - /*"y"*/ true, - /*"z"*/ true, - /*"{"*/ false, - /*"|"*/ true, - /*"}"*/ false, - /*"~"*/ true, - /*DEL*/ true, - ]; + /* NULL */ true, + /* SOH */ true, + /* TXT */ true, + /* ETX */ true, + /* EOT */ true, + /* ENQ */ true, + /* ACK */ true, + /* BEL */ true, + /* BS */ true, + /* TAB */ false, + /* NL */ false, + /* VT */ true, + /* FF */ true, + /* CR */ false, + /* SI */ true, + /* SO */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* SPACE */ false, + /*"!"*/ true, + /* " */ false, + /*"#"*/ true, + /*"$"*/ true, + /*"%"*/ true, + /*"&"*/ true, + /*"'"*/ true, + /*"("*/ true, + /*")"*/ true, + /*"*"*/ true, + /*"+"*/ true, + /*","*/ false, + /*"-"*/ true, + /*"."*/ true, + /*"/"*/ true, + /*"0"*/ false, + /*"1"*/ false, + /*"2"*/ false, + /*"3"*/ false, + /*"4"*/ false, + /*"5"*/ false, + /*"6"*/ false, + /*"7"*/ false, + /*"8"*/ false, + /*"9"*/ false, + /*":"*/ false, + /*";"*/ true, + /*"<"*/ true, + /*"="*/ true, + /*">"*/ true, + /*"?"*/ true, + /*"@"*/ true, + /*"A"*/ true, + /*"B"*/ true, + /*"C"*/ true, + /*"D"*/ true, + /*"E"*/ true, + /*"F"*/ true, + /*"G"*/ true, + /*"H"*/ true, + /*"I"*/ true, + /*"J"*/ true, + /*"K"*/ true, + /*"L"*/ true, + /*"M"*/ true, + /*"N"*/ true, + /*"O"*/ true, + /*"P"*/ true, + /*"Q"*/ true, + /*"R"*/ true, + /*"S"*/ true, + /*"T"*/ true, + /*"U"*/ true, + /*"V"*/ true, + /*"W"*/ true, + /*"X"*/ true, + /*"Y"*/ true, + /*"Z"*/ true, + /*"["*/ false, + /*"\"*/ true, + /*"]"*/ false, + /*"^"*/ true, + /*"_"*/ true, + /*"`"*/ true, + /*"a"*/ true, + /*"b"*/ true, + /*"c"*/ true, + /*"d"*/ true, + /*"e"*/ true, + /*"f"*/ false, // false = literal + /*"g"*/ + true, + /*"h"*/ true, + /*"i"*/ true, + /*"j"*/ true, + /*"k"*/ true, + /*"l"*/ true, + /*"m"*/ true, + /*"n"*/ false, // null = literal + /*"o"*/ + true, + /*"p"*/ true, + /*"q"*/ true, + /*"r"*/ true, + /*"s"*/ true, + /*"t"*/ false, // true = literal + /*"u"*/ + true, + /*"v"*/ true, + /*"w"*/ true, + /*"x"*/ true, + /*"y"*/ true, + /*"z"*/ true, + /*"{"*/ false, + /*"|"*/ true, + /*"}"*/ false, + /*"~"*/ true, + /*DEL*/ true, +]; global STRING_CAPTURE_ERROR_FLAG: [bool; 128] = [ - /* NULL */ true, - /* SOH */ true, - /* TXT */ true, - /* ETX */ true, - /* EOT */ true, - /* ENQ */ true, - /* ACK */ true, - /* BEL */ true, - /* BS */ true, - /* TAB */ false, - /* NL */ false, - /* VT */ true, - /* FF */ true, - /* CR */ false, - /* SI */ true, - /* SO */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* SPACE */ false, - /*"!"*/ false, - /* " */ false, - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ false, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, - /*"1"*/ false, - /*"2"*/ false, - /*"3"*/ false, - /*"4"*/ false, - /*"5"*/ false, - /*"6"*/ false, - /*"7"*/ false, - /*"8"*/ false, - /*"9"*/ false, - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ false, - /*"]"*/ false, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ false, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ false, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ false, - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ false, - /*"~"*/ false, - /*DEL*/ true, - ]; + /* NULL */ true, + /* SOH */ true, + /* TXT */ true, + /* ETX */ true, + /* EOT */ true, + /* ENQ */ true, + /* ACK */ true, + /* BEL */ true, + /* BS */ true, + /* TAB */ false, + /* NL */ false, + /* VT */ true, + /* FF */ true, + /* CR */ false, + /* SI */ true, + /* SO */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* SPACE */ false, + /*"!"*/ false, + /* " */ false, + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ false, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /*"1"*/ false, + /*"2"*/ false, + /*"3"*/ false, + /*"4"*/ false, + /*"5"*/ false, + /*"6"*/ false, + /*"7"*/ false, + /*"8"*/ false, + /*"9"*/ false, + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ false, + /*"]"*/ false, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ false, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ false, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ false, + /*"u"*/ false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ false, + /*"~"*/ false, + /*DEL*/ true, +]; global NUMERIC_CAPTURE_ERROR_FLAG: [bool; 128] = [ - /* NULL */ true, - /* SOH */ true, - /* TXT */ true, - /* ETX */ true, - /* EOT */ true, - /* ENQ */ true, - /* ACK */ true, - /* BEL */ true, - /* BS */ true, - /* TAB */ false, - /* NL */ false, - /* VT */ true, - /* FF */ true, - /* CR */ false, - /* SI */ true, - /* SO */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* SPACE */ false, - /*"!"*/ true, - /* " */ true, - /*"#"*/ true, - /*"$"*/ true, - /*"%"*/ true, - /*"&"*/ true, - /*"'"*/ true, - /*"("*/ true, - /*")"*/ true, - /*"*"*/ true, - /*"+"*/ true, - /*","*/ false, - /*"-"*/ true, - /*"."*/ true, - /*"/"*/ true, - /*"0"*/ false, - /*"1"*/ false, - /*"2"*/ false, - /*"3"*/ false, - /*"4"*/ false, - /*"5"*/ false, - /*"6"*/ false, - /*"7"*/ false, - /*"8"*/ false, - /*"9"*/ false, - /*":"*/ true, - /*";"*/ true, - /*"<"*/ true, - /*"="*/ true, - /*">"*/ true, - /*"?"*/ true, - /*"@"*/ true, - /*"A"*/ true, - /*"B"*/ true, - /*"C"*/ true, - /*"D"*/ true, - /*"E"*/ true, - /*"F"*/ true, - /*"G"*/ true, - /*"H"*/ true, - /*"I"*/ true, - /*"J"*/ true, - /*"K"*/ true, - /*"L"*/ true, - /*"M"*/ true, - /*"N"*/ true, - /*"O"*/ true, - /*"P"*/ true, - /*"Q"*/ true, - /*"R"*/ true, - /*"S"*/ true, - /*"T"*/ true, - /*"U"*/ true, - /*"V"*/ true, - /*"W"*/ true, - /*"X"*/ true, - /*"Y"*/ true, - /*"Z"*/ true, - /*"["*/ true, - /*"\"*/ true, - /*"]"*/ false, - /*"^"*/ true, - /*"_"*/ true, - /*"`"*/ true, - /*"a"*/ true, - /*"b"*/ true, - /*"c"*/ true, - /*"d"*/ true, - /*"e"*/ true, - /*"f"*/ true, - /*"g"*/ true, - /*"h"*/ true, - /*"i"*/ true, - /*"j"*/ true, - /*"k"*/ true, - /*"l"*/ true, - /*"m"*/ true, - /*"n"*/ true, - /*"o"*/ true, - /*"p"*/ true, - /*"q"*/ true, - /*"r"*/ true, - /*"s"*/ true, - /*"t"*/ true, - /*"u"*/ true, - /*"v"*/ true, - /*"w"*/ true, - /*"x"*/ true, - /*"y"*/ true, - /*"z"*/ true, - /*"{"*/ true, - /*"|"*/ true, - /*"}"*/ false, - /*"~"*/ true, - /*DEL*/ true, - ]; + /* NULL */ true, + /* SOH */ true, + /* TXT */ true, + /* ETX */ true, + /* EOT */ true, + /* ENQ */ true, + /* ACK */ true, + /* BEL */ true, + /* BS */ true, + /* TAB */ false, + /* NL */ false, + /* VT */ true, + /* FF */ true, + /* CR */ false, + /* SI */ true, + /* SO */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* SPACE */ false, + /*"!"*/ true, + /* " */ true, + /*"#"*/ true, + /*"$"*/ true, + /*"%"*/ true, + /*"&"*/ true, + /*"'"*/ true, + /*"("*/ true, + /*")"*/ true, + /*"*"*/ true, + /*"+"*/ true, + /*","*/ false, + /*"-"*/ true, + /*"."*/ true, + /*"/"*/ true, + /*"0"*/ false, + /*"1"*/ false, + /*"2"*/ false, + /*"3"*/ false, + /*"4"*/ false, + /*"5"*/ false, + /*"6"*/ false, + /*"7"*/ false, + /*"8"*/ false, + /*"9"*/ false, + /*":"*/ true, + /*";"*/ true, + /*"<"*/ true, + /*"="*/ true, + /*">"*/ true, + /*"?"*/ true, + /*"@"*/ true, + /*"A"*/ true, + /*"B"*/ true, + /*"C"*/ true, + /*"D"*/ true, + /*"E"*/ true, + /*"F"*/ true, + /*"G"*/ true, + /*"H"*/ true, + /*"I"*/ true, + /*"J"*/ true, + /*"K"*/ true, + /*"L"*/ true, + /*"M"*/ true, + /*"N"*/ true, + /*"O"*/ true, + /*"P"*/ true, + /*"Q"*/ true, + /*"R"*/ true, + /*"S"*/ true, + /*"T"*/ true, + /*"U"*/ true, + /*"V"*/ true, + /*"W"*/ true, + /*"X"*/ true, + /*"Y"*/ true, + /*"Z"*/ true, + /*"["*/ true, + /*"\"*/ true, + /*"]"*/ false, + /*"^"*/ true, + /*"_"*/ true, + /*"`"*/ true, + /*"a"*/ true, + /*"b"*/ true, + /*"c"*/ true, + /*"d"*/ true, + /*"e"*/ true, + /*"f"*/ true, + /*"g"*/ true, + /*"h"*/ true, + /*"i"*/ true, + /*"j"*/ true, + /*"k"*/ true, + /*"l"*/ true, + /*"m"*/ true, + /*"n"*/ true, + /*"o"*/ true, + /*"p"*/ true, + /*"q"*/ true, + /*"r"*/ true, + /*"s"*/ true, + /*"t"*/ true, + /*"u"*/ true, + /*"v"*/ true, + /*"w"*/ true, + /*"x"*/ true, + /*"y"*/ true, + /*"z"*/ true, + /*"{"*/ true, + /*"|"*/ true, + /*"}"*/ false, + /*"~"*/ true, + /*DEL*/ true, +]; global LITERAL_CAPTURE_ERROR_FLAG: [bool; 128] = [ - /* NULL */ true, - /* SOH */ true, - /* TXT */ true, - /* ETX */ true, - /* EOT */ true, - /* ENQ */ true, - /* ACK */ true, - /* BEL */ true, - /* BS */ true, - /* TAB */ false, - /* NL */ false, - /* VT */ true, - /* FF */ true, - /* CR */ false, - /* SI */ true, - /* SO */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* */ true, - /* SPACE */ false, - /*"!"*/ true, - /* " */ true, - /*"#"*/ true, - /*"$"*/ true, - /*"%"*/ true, - /*"&"*/ true, - /*"'"*/ true, - /*"("*/ true, - /*")"*/ true, - /*"*"*/ true, - /*"+"*/ true, - /*","*/ false, - /*"-"*/ true, - /*"."*/ true, - /*"/"*/ true, - /*"0"*/ true, - /*"1"*/ true, - /*"2"*/ true, - /*"3"*/ true, - /*"4"*/ true, - /*"5"*/ true, - /*"6"*/ true, - /*"7"*/ true, - /*"8"*/ true, - /*"9"*/ true, - /*":"*/ true, - /*";"*/ true, - /*"<"*/ true, - /*"="*/ true, - /*">"*/ true, - /*"?"*/ true, - /*"@"*/ true, - /*"A"*/ true, - /*"B"*/ true, - /*"C"*/ true, - /*"D"*/ true, - /*"E"*/ true, - /*"F"*/ true, - /*"G"*/ true, - /*"H"*/ true, - /*"I"*/ true, - /*"J"*/ true, - /*"K"*/ true, - /*"L"*/ true, - /*"M"*/ true, - /*"N"*/ true, - /*"O"*/ true, - /*"P"*/ true, - /*"Q"*/ true, - /*"R"*/ true, - /*"S"*/ true, - /*"T"*/ true, - /*"U"*/ true, - /*"V"*/ true, - /*"W"*/ true, - /*"X"*/ true, - /*"Y"*/ true, - /*"Z"*/ true, - /*"["*/ true, - /*"\"*/ true, - /*"]"*/ false, - /*"^"*/ true, - /*"_"*/ true, - /*"`"*/ true, - /*"a"*/ false, - /*"b"*/ true, - /*"c"*/ true, - /*"d"*/ true, - /*"e"*/ false, - /*"f"*/ true, // "false" literal begins with "f", which will be scanned in grammar capture mode - /*"g"*/ true, - /*"h"*/ true, - /*"i"*/ true, - /*"j"*/ true, - /*"k"*/ true, - /*"l"*/ false, - /*"m"*/ true, - /*"n"*/ true, // "null" literal begins with "n", which will be scanned in grammar capture mode - /*"o"*/ true, - /*"p"*/ true, - /*"q"*/ true, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ true, // "true" literal begins with "t", which will be scanned in grammar capture mode - /*"u"*/ false, - /*"v"*/ true, - /*"w"*/ true, - /*"x"*/ true, - /*"y"*/ true, - /*"z"*/ true, - /*"{"*/ true, - /*"|"*/ true, - /*"}"*/ false, - /*"~"*/ true, - /*DEL*/ true, - ]; + /* NULL */ true, + /* SOH */ true, + /* TXT */ true, + /* ETX */ true, + /* EOT */ true, + /* ENQ */ true, + /* ACK */ true, + /* BEL */ true, + /* BS */ true, + /* TAB */ false, + /* NL */ false, + /* VT */ true, + /* FF */ true, + /* CR */ false, + /* SI */ true, + /* SO */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* */ true, + /* SPACE */ false, + /*"!"*/ true, + /* " */ true, + /*"#"*/ true, + /*"$"*/ true, + /*"%"*/ true, + /*"&"*/ true, + /*"'"*/ true, + /*"("*/ true, + /*")"*/ true, + /*"*"*/ true, + /*"+"*/ true, + /*","*/ false, + /*"-"*/ true, + /*"."*/ true, + /*"/"*/ true, + /*"0"*/ true, + /*"1"*/ true, + /*"2"*/ true, + /*"3"*/ true, + /*"4"*/ true, + /*"5"*/ true, + /*"6"*/ true, + /*"7"*/ true, + /*"8"*/ true, + /*"9"*/ true, + /*":"*/ true, + /*";"*/ true, + /*"<"*/ true, + /*"="*/ true, + /*">"*/ true, + /*"?"*/ true, + /*"@"*/ true, + /*"A"*/ true, + /*"B"*/ true, + /*"C"*/ true, + /*"D"*/ true, + /*"E"*/ true, + /*"F"*/ true, + /*"G"*/ true, + /*"H"*/ true, + /*"I"*/ true, + /*"J"*/ true, + /*"K"*/ true, + /*"L"*/ true, + /*"M"*/ true, + /*"N"*/ true, + /*"O"*/ true, + /*"P"*/ true, + /*"Q"*/ true, + /*"R"*/ true, + /*"S"*/ true, + /*"T"*/ true, + /*"U"*/ true, + /*"V"*/ true, + /*"W"*/ true, + /*"X"*/ true, + /*"Y"*/ true, + /*"Z"*/ true, + /*"["*/ true, + /*"\"*/ true, + /*"]"*/ false, + /*"^"*/ true, + /*"_"*/ true, + /*"`"*/ true, + /*"a"*/ false, + /*"b"*/ true, + /*"c"*/ true, + /*"d"*/ true, + /*"e"*/ false, + /*"f"*/ true, // "false" literal begins with "f", which will be scanned in grammar capture mode + /*"g"*/ + true, + /*"h"*/ true, + /*"i"*/ true, + /*"j"*/ true, + /*"k"*/ true, + /*"l"*/ false, + /*"m"*/ true, + /*"n"*/ true, // "null" literal begins with "n", which will be scanned in grammar capture mode + /*"o"*/ + true, + /*"p"*/ true, + /*"q"*/ true, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ true, // "true" literal begins with "t", which will be scanned in grammar capture mode + /*"u"*/ + false, + /*"v"*/ true, + /*"w"*/ true, + /*"x"*/ true, + /*"y"*/ true, + /*"z"*/ true, + /*"{"*/ true, + /*"|"*/ true, + /*"}"*/ false, + /*"~"*/ true, + /*DEL*/ true, +]; diff --git a/src/get_array.nr b/src/get_array.nr index 3b483c0..f16e4c3 100644 --- a/src/get_array.nr +++ b/src/get_array.nr @@ -1,9 +1,9 @@ -use crate::json_entry::JSONEntry; -use crate::json::JSON; use crate::_comparison_tools::lt::lt_field_16_bit; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER}; use crate::enums::Token::END_ARRAY_TOKEN; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER}; use crate::getters::JSONValue; +use crate::json::JSON; +use crate::json_entry::JSONEntry; /** * @brief getter methods for extracting array types out of a JSON struct diff --git a/src/get_literal.nr b/src/get_literal.nr index dd981bf..eec7cda 100644 --- a/src/get_literal.nr +++ b/src/get_literal.nr @@ -1,9 +1,9 @@ -use crate::json_entry::JSONEntry; -use crate::json::JSON; use crate::_comparison_tools::lt::lt_field_16_bit; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER}; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER}; use crate::enums::Token::LITERAL_TOKEN; use crate::getters::JSONValue; +use crate::json::JSON; +use crate::json_entry::JSONEntry; global MAX_LITERAL_LENGTH_AS_STRING = 5; global LITERAL_OFFSET_SHIFT: [Field; 6] = diff --git a/src/get_number.nr b/src/get_number.nr index acf91d4..ea10bd2 100644 --- a/src/get_number.nr +++ b/src/get_number.nr @@ -1,10 +1,10 @@ -use crate::json_entry::JSONEntry; -use crate::json::JSON; use crate::_comparison_tools::lt::lt_field_16_bit; -use crate::json_tables::ASCII_TO_NUMBER; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER}; use crate::enums::Token::NUMERIC_TOKEN; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER}; use crate::getters::JSONValue; +use crate::json::JSON; +use crate::json_entry::JSONEntry; +use crate::json_tables::ASCII_TO_NUMBER; global U64_LENGTH_AS_BASE10_STRING = 20; global NUMBER_OFFSET_SHIFT: [Field; 21] = [ diff --git a/src/get_object.nr b/src/get_object.nr index 1ed5356..d1ed134 100644 --- a/src/get_object.nr +++ b/src/get_object.nr @@ -1,14 +1,14 @@ -use crate::json_entry::JSONEntry; -use crate::json::JSON; use crate::_comparison_tools::lt::lt_field_16_bit; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER}; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER}; use crate::enums::Token::END_OBJECT_TOKEN; use crate::getters::JSONValue; +use crate::json::JSON; +use crate::json_entry::JSONEntry; /** * @brief getter methods for extracting object types out of a JSON struct **/ -impl JSON { +impl JSON { /** * @brief if the root JSON is an object, extract a child object given by `key` @@ -20,7 +20,8 @@ impl where, if the object exists, the JSON object will have the requested object as its root value **/ fn get_object_from_array(self, array_index: Field) -> Option { - assert(self.layer_type_of_root == ARRAY_LAYER, "can only acceess array elements from array"); + assert( + self.layer_type_of_root == ARRAY_LAYER, + "can only acceess array elements from array", + ); - let parent_entry : JSONEntry = self.json_entries_packed[self.root_index_in_transcript].into(); + let parent_entry: JSONEntry = + self.json_entries_packed[self.root_index_in_transcript].into(); let valid = lt_field_16_bit(array_index, parent_entry.num_children); let entry_index = (parent_entry.child_pointer + array_index) * valid as Field; - let entry : JSONEntry = self.json_entries_packed[entry_index].into(); + let entry: JSONEntry = self.json_entries_packed[entry_index].into(); assert( - (entry.entry_type - END_OBJECT_TOKEN) * valid as Field == 0, "get_object_from_array: entry exists but is not an object!" + (entry.entry_type - END_OBJECT_TOKEN) * valid as Field == 0, + "get_object_from_array: entry exists but is not an object!", ); let mut r = self; @@ -118,17 +131,22 @@ impl Self { - assert(self.layer_type_of_root == ARRAY_LAYER, "can only acceess array elements from array"); + assert( + self.layer_type_of_root == ARRAY_LAYER, + "can only acceess array elements from array", + ); - let parent_entry : JSONEntry = self.json_entries_packed[self.root_index_in_transcript].into(); + let parent_entry: JSONEntry = + self.json_entries_packed[self.root_index_in_transcript].into(); let valid = lt_field_16_bit(array_index, parent_entry.num_children); assert(valid, "array overflow"); let entry_index = (parent_entry.child_pointer + array_index); - let entry : JSONEntry = self.json_entries_packed[entry_index].into(); + let entry: JSONEntry = self.json_entries_packed[entry_index].into(); assert( - entry.entry_type == END_OBJECT_TOKEN, "get_object_from_array_unchecked: entry exists but is not an object!" + entry.entry_type == END_OBJECT_TOKEN, + "get_object_from_array_unchecked: entry exists but is not an object!", ); let mut r = self; @@ -162,13 +180,19 @@ fn test_object() { let not_real = B.get_object("bartholomew tony Harrison IV".as_bytes()); assert(not_real.is_some() == false); - let C = B.get_object_unchecked_var(BoundedVec { storage: "bartholomew tony Harrison III".as_bytes(), len: 29 }); + let C = B.get_object_unchecked_var( + BoundedVec { storage: "bartholomew tony Harrison III".as_bytes(), len: 29 }, + ); assert(JSONEntry::from(C.json_entries_packed[C.root_index_in_transcript]).num_children == 1); - let C = B.get_object_var(BoundedVec { storage: "bartholomew tony Harrison III".as_bytes(), len: 28 }); + let C = B.get_object_var( + BoundedVec { storage: "bartholomew tony Harrison III".as_bytes(), len: 28 }, + ); assert(C.is_some() == false); - let C = B.get_object_var(BoundedVec { storage: "bartholomew tony Harrison IIIekurfgaeoiurh".as_bytes(), len: 29 }); + let C = B.get_object_var( + BoundedVec { storage: "bartholomew tony Harrison IIIekurfgaeoiurh".as_bytes(), len: 29 }, + ); assert(C.is_some() == true); let second = first.get_object_from_array_unchecked(4); diff --git a/src/get_string.nr b/src/get_string.nr index c3a64f9..81cca28 100644 --- a/src/get_string.nr +++ b/src/get_string.nr @@ -1,12 +1,12 @@ -use crate::json_entry::JSONEntry; -use crate::json::JSON; -use crate::getters::JSONValue; use crate::_comparison_tools::lt::lt_field_16_bit; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER}; +use crate::enums::Token::STRING_TOKEN; +use crate::getters::JSONValue; +use crate::json::JSON; +use crate::json_entry::JSONEntry; use crate::json_tables::{ - ESCAPE_SEQUENCE_START_CHARS, ESCAPE_SEQUENCE_END_CHARS, ESCAPE_SEQUENCE_REPLACEMENT, + ESCAPE_SEQUENCE_END_CHARS, ESCAPE_SEQUENCE_REPLACEMENT, ESCAPE_SEQUENCE_START_CHARS, }; -use crate::enums::Token::STRING_TOKEN; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER}; unconstrained fn to_u8(f: Field) -> u8 { f as u8 diff --git a/src/getters.nr b/src/getters.nr index 93e1b48..a7144bd 100644 --- a/src/getters.nr +++ b/src/getters.nr @@ -1,14 +1,14 @@ -use crate::transcript_entry::TranscriptEntry; -use crate::json_entry::JSONEntry; +use crate::_comparison_tools::lt::{assert_gt_240_bit, assert_lt_240_bit, lt_field_16_bit}; +use crate::_string_tools::slice_packed_field::slice_fields; +use crate::_string_tools::string_chopper::StringChopper; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER}; +use crate::enums::Token::{LITERAL_TOKEN, NUMERIC_TOKEN, STRING_TOKEN}; use crate::json::JSON; -use crate::_comparison_tools::lt::{lt_field_16_bit, assert_lt_240_bit, assert_gt_240_bit}; -use crate::enums::Token::{NUMERIC_TOKEN, LITERAL_TOKEN, STRING_TOKEN}; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER}; +use crate::json::JSONValue; +use crate::json_entry::JSONEntry; use crate::keyhash::ByteHasher; use crate::keymap::KeyIndexData; -use crate::_string_tools::string_chopper::StringChopper; -use crate::_string_tools::slice_packed_field::slice_fields; -use crate::json::JSONValue; +use crate::transcript_entry::TranscriptEntry; /** * @brief records data used to reason about whether a key exists in a json blob **/ diff --git a/src/json.nr b/src/json.nr index b2f7b3a..b07c96b 100644 --- a/src/json.nr +++ b/src/json.nr @@ -1,20 +1,20 @@ use crate::_comparison_tools::bounds_checker; use crate::_comparison_tools::bounds_checker::get_validity_flags; -use crate::enums::Layer::{OBJECT_LAYER, ARRAY_LAYER, SINGLE_VALUE_LAYER}; +use crate::enums::Layer::{ARRAY_LAYER, OBJECT_LAYER, SINGLE_VALUE_LAYER}; +use crate::enums::ScanMode::{GRAMMAR_SCAN, LITERAL_SCAN, NUMERIC_SCAN, STRING_SCAN}; use crate::enums::Token::{ - BEGIN_OBJECT_TOKEN, END_OBJECT_TOKEN, BEGIN_ARRAY_TOKEN, END_ARRAY_TOKEN, KEY_SEPARATOR_TOKEN, - VALUE_SEPARATOR_TOKEN, STRING_TOKEN, NUMERIC_TOKEN, LITERAL_TOKEN, KEY_TOKEN, NUM_TOKENS, + BEGIN_ARRAY_TOKEN, BEGIN_OBJECT_TOKEN, END_ARRAY_TOKEN, END_OBJECT_TOKEN, KEY_SEPARATOR_TOKEN, + KEY_TOKEN, LITERAL_TOKEN, NUM_TOKENS, NUMERIC_TOKEN, STRING_TOKEN, VALUE_SEPARATOR_TOKEN, }; -use crate::enums::ScanMode::{GRAMMAR_SCAN, STRING_SCAN, NUMERIC_SCAN, LITERAL_SCAN}; use crate::get_literal::JSONLiteral; use crate::json_entry::{JSONContextStackEntry, JSONEntry, JSONEntryPacked}; use crate::json_tables::{ - TOKEN_VALIDATION_TABLE, PROCESS_RAW_TRANSCRIPT_TABLE, JSON_CAPTURE_TABLE, TOKEN_FLAGS_TABLE, - TOKEN_IS_ARRAY_OBJECT_OR_VALUE, + JSON_CAPTURE_TABLE, PROCESS_RAW_TRANSCRIPT_TABLE, TOKEN_FLAGS_TABLE, + TOKEN_IS_ARRAY_OBJECT_OR_VALUE, TOKEN_VALIDATION_TABLE, }; use crate::token_flags::TokenFlags; use crate::transcript_entry::{ - ValidationFlags, TranscriptEntry, RawTranscriptEntry, ScanData, PostProcessScanData, + PostProcessScanData, RawTranscriptEntry, ScanData, TranscriptEntry, ValidationFlags, }; /** diff --git a/src/json_tables.nr b/src/json_tables.nr index 09de61a..83c053c 100644 --- a/src/json_tables.nr +++ b/src/json_tables.nr @@ -1,501 +1,2706 @@ use crate::enums::Token::NUM_TOKENS_MUL_2; -global TOKEN_ENDS_OBJECT_OR_ARRAY : [Field; 11] = [0,0,1,0,1,0,0,0,0,0,0]; -global TOKEN_IS_ARRAY_OBJECT_OR_VALUE: [Field; 11] = [0,1,0,1,0,0,0,1,1,1,0]; -global TOKEN_FLAGS_TABLE: [Field; NUM_TOKENS_MUL_2] = [0x01, 0x0100000000, 0x01010000000000, 0x0101000000, 0x01010000000000, 0x01, 0x01, 0x01000000000101, 0x01000000000101, 0x01000000000101, 0x010001, 0x01000001, 0x0100000000, 0x01010000000000, 0x0101000000, 0x01010000000000, 0x01000001, 0x01000001, 0x01000001000101, 0x01000001000101, 0x01000001000101, 0x01010001]; -global PROCESS_RAW_TRANSCRIPT_TABLE: [Field; 1024] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x060006, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x050005, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x030003, 0x00, 0x040004, 0x00, 0x00, 0x00, 0x090009, 0x00, 0x00, 0x00, 0x090009, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x090009, 0x00, 0x090009, 0x00, 0x00, 0x00, 0x090009, 0x090009, 0x090009, 0x090009, 0x00, 0x00, 0x00, 0x00, 0x00, 0x010001, 0x00, 0x020002, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x060000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x050000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x030000, 0x00, 0x040000, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x090000, 0x090000, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x010000, 0x00, 0x020000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x060108, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x050000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x030000, 0x00, 0x040108, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x090000, 0x090000, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x010000, 0x00, 0x020108, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x060109, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x050000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x030000, 0x00, 0x040109, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x090000, 0x090000, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x010000, 0x00, 0x020109, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; -global ASCII_TO_TOKEN_TABLE: [Field; 1024] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; -global JSON_CAPTURE_TABLE: [Field; 2048] = [0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x00, 0x00, 0x0100000004, 0x0100000004, 0x00, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x00, 0x0100000004, 0x01, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x0100000004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x010003, 0x0100010004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x01, 0x01, 0x0100000004, 0x0100000004, 0x01, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x010001, 0x010001, 0x0100, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x01010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000104, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000104, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x0100010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x0100000004, 0x0100010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x010003, 0x0100010004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x00, 0x00, 0x0100000004, 0x0100000004, 0x00, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x00, 0x0100000004, 0x010001, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x0100000004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100010004, 0x010003, 0x0100010004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x01, 0x01, 0x0100000004, 0x0100000004, 0x01, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x01010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x010001, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x010001, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x010002, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x010001, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x0100010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x0100000004, 0x0100010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x010003, 0x010003, 0x0100010004, 0x010003, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100000004, 0x0100, 0x0100000004, 0x0100000004, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000, 0x0100000000]; -global TOKEN_VALIDATION_TABLE: [Field; 363] = [0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x00, 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01, 0x01000000, 0x0101, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x00, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01, 0x01000000, 0x0101, 0x010000, 0x01000000, 0x01000000, 0x00, 0x00, 0x00, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01, 0x01000000, 0x0101, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x00, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01, 0x01000000, 0x0101, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x00, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000]; +global TOKEN_ENDS_OBJECT_OR_ARRAY: [Field; 11] = [0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0]; +global TOKEN_IS_ARRAY_OBJECT_OR_VALUE: [Field; 11] = [0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0]; +global TOKEN_FLAGS_TABLE: [Field; NUM_TOKENS_MUL_2] = [ + 0x01, + 0x0100000000, + 0x01010000000000, + 0x0101000000, + 0x01010000000000, + 0x01, + 0x01, + 0x01000000000101, + 0x01000000000101, + 0x01000000000101, + 0x010001, + 0x01000001, + 0x0100000000, + 0x01010000000000, + 0x0101000000, + 0x01010000000000, + 0x01000001, + 0x01000001, + 0x01000001000101, + 0x01000001000101, + 0x01000001000101, + 0x01010001, +]; +global PROCESS_RAW_TRANSCRIPT_TABLE: [Field; 1024] = [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x060006, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x050005, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x030003, 0x00, + 0x040004, 0x00, 0x00, 0x00, 0x090009, 0x00, 0x00, 0x00, 0x090009, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x090009, 0x00, 0x090009, 0x00, 0x00, 0x00, 0x090009, 0x090009, 0x090009, 0x090009, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x010001, 0x00, 0x020002, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x060000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x050000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x030000, 0x00, 0x040000, 0x00, 0x00, 0x00, + 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x090000, 0x00, + 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x090000, 0x090000, 0x090000, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x010000, 0x00, 0x020000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x060108, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x050000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x030000, 0x00, 0x040108, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, + 0x00, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x090000, 0x00, 0x00, 0x00, + 0x090000, 0x090000, 0x090000, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x010000, 0x00, 0x020108, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x060109, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x050000, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x030000, 0x00, 0x040109, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x090000, 0x00, 0x090000, 0x00, 0x00, 0x00, 0x090000, 0x090000, + 0x090000, 0x090000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x010000, 0x00, 0x020109, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +]; +global ASCII_TO_TOKEN_TABLE: [Field; 1024] = [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, + 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +]; +global JSON_CAPTURE_TABLE: [Field; 2048] = [ + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x00, + 0x00, + 0x0100000004, + 0x0100000004, + 0x00, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x00, + 0x0100000004, + 0x01, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x0100000004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x010003, + 0x0100010004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x01, + 0x01, + 0x0100000004, + 0x0100000004, + 0x01, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010001, + 0x010001, + 0x0100, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x01010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000104, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000104, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x0100010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x0100000004, + 0x0100010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x010003, + 0x0100010004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x00, + 0x00, + 0x0100000004, + 0x0100000004, + 0x00, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x00, + 0x0100000004, + 0x010001, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x0100000004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100010004, + 0x010003, + 0x0100010004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x01, + 0x01, + 0x0100000004, + 0x0100000004, + 0x01, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x01010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x010001, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x010001, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x010002, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x010001, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x0100010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x0100000004, + 0x0100010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x010003, + 0x010003, + 0x0100010004, + 0x010003, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100000004, + 0x0100, + 0x0100000004, + 0x0100000004, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, + 0x0100000000, +]; +global TOKEN_VALIDATION_TABLE: [Field; 363] = [ + 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x00, 0x01000000, 0x010000, + 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, + 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01, 0x01000000, + 0x0101, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x00, 0x00, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x00, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x00, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, + 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x010000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, + 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01, 0x01000000, + 0x0101, 0x010000, 0x01000000, 0x01000000, 0x00, 0x00, 0x00, 0x01000000, 0x00, 0x01000000, + 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01, 0x01000000, 0x0101, + 0x01000000, 0x01000000, 0x01000000, 0x00, 0x00, 0x00, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x010000, 0x01000000, 0x00, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x010000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01, 0x01000000, 0x0101, 0x01000000, 0x01000000, 0x01000000, 0x00, + 0x00, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, 0x01000000, 0x01000000, 0x00, 0x01000000, 0x01000000, 0x01000000, 0x01000000, + 0x01000000, +]; global ASCII_TO_NUMBER: [u8; 128] = [ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - /* */ 0, - /*"!"*/ 0, - /* " */ 0, - /*"#"*/ 0, - /*"$"*/ 0, - /*"%"*/ 0, - /*"&"*/ 0, - /*"'"*/ 0, - /*"("*/ 0, - /*")"*/ 0, - /*"*"*/ 0, - /*"+"*/ 0, - /*","*/ 0, - /*"-"*/ 0, - /*"."*/ 0, - /*"/"*/ 0, - /*"0"*/ 0, // numeric value - /*"1"*/ 1, // numeric value - /*"2"*/ 2, // numeric value - /*"3"*/ 3, // numeric value - /*"4"*/ 4, // numeric value - /*"5"*/ 5, // numeric value - /*"6"*/ 6, // numeric value - /*"7"*/ 7, // numeric value - /*"8"*/ 8, // numeric value - /*"9"*/ 9, // numeric value - /*":"*/ 0, - /*";"*/ 0, - /*"<"*/ 0, - /*"="*/ 0, - /*">"*/ 0, - /*"?"*/ 0, - /*"@"*/ 0, - /*"A"*/ 0, - /*"B"*/ 0, - /*"C"*/ 0, - /*"D"*/ 0, - /*"E"*/ 0, - /*"F"*/ 0, - /*"G"*/ 0, - /*"H"*/ 0, - /*"I"*/ 0, - /*"J"*/ 0, - /*"K"*/ 0, - /*"L"*/ 0, - /*"M"*/ 0, - /*"N"*/ 0, - /*"O"*/ 0, - /*"P"*/ 0, - /*"Q"*/ 0, - /*"R"*/ 0, - /*"S"*/ 0, - /*"T"*/ 0, - /*"U"*/ 0, - /*"V"*/ 0, - /*"W"*/ 0, - /*"X"*/ 0, - /*"Y"*/ 0, - /*"Z"*/ 0, - /*"["*/ 0, // an array - /*"\"*/ 0, - /*"]"*/ 0, - /*"^"*/ 0, - /*"_"*/ 0, - /*"`"*/ 0, - /*"a"*/ 0, - /*"b"*/ 0, - /*"c"*/ 0, - /*"d"*/ 0, - /*"e"*/ 0, - /*"f"*/ 0, // "0" - /*"g"*/ 0, - /*"h"*/ 0, - /*"i"*/ 0, - /*"j"*/ 0, - /*"k"*/ 0, - /*"l"*/ 0, - /*"m"*/ 0, - /*"n"*/ 0, - /*"o"*/ 0, - /*"p"*/ 0, - /*"q"*/ 0, - /*"r"*/ 0, - /*"s"*/ 0, - /*"t"*/ 0, // "0" - /*"u"*/ 0, - /*"v"*/ 0, - /*"w"*/ 0, - /*"x"*/ 0, - /*"y"*/ 0, - /*"z"*/ 0, - /*"{"*/ 0, // an object - /*"|"*/ 0, - /*"}"*/ 0, - /*"~"*/ 0, - /*DEL*/ 0, - ]; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* */ 0, /*"!"*/ 0, /* " */ 0, /*"#"*/ 0, /*"$"*/ 0, /*"%"*/ 0, /*"&"*/ 0, /*"'"*/ 0, /*"("*/ 0, + /*")"*/ 0, /*"*"*/ 0, /*"+"*/ 0, /*","*/ 0, /*"-"*/ 0, /*"."*/ 0, /*"/"*/ 0, /*"0"*/ 0, // numeric value + /*"1"*/ + 1, // numeric value + /*"2"*/ + 2, // numeric value + /*"3"*/ + 3, // numeric value + /*"4"*/ + 4, // numeric value + /*"5"*/ + 5, // numeric value + /*"6"*/ + 6, // numeric value + /*"7"*/ + 7, // numeric value + /*"8"*/ + 8, // numeric value + /*"9"*/ + 9, // numeric value + /*":"*/ + 0, /*";"*/ 0, /*"<"*/ 0, /*"="*/ 0, /*">"*/ 0, /*"?"*/ 0, /*"@"*/ 0, /*"A"*/ 0, /*"B"*/ 0, + /*"C"*/ 0, /*"D"*/ 0, /*"E"*/ 0, /*"F"*/ 0, /*"G"*/ 0, /*"H"*/ 0, /*"I"*/ 0, /*"J"*/ 0, /*"K"*/ 0, + /*"L"*/ 0, /*"M"*/ 0, /*"N"*/ 0, /*"O"*/ 0, /*"P"*/ 0, /*"Q"*/ 0, /*"R"*/ 0, /*"S"*/ 0, /*"T"*/ 0, + /*"U"*/ 0, /*"V"*/ 0, /*"W"*/ 0, /*"X"*/ 0, /*"Y"*/ 0, /*"Z"*/ 0, /*"["*/ 0, // an array + /*"\"*/ + 0, /*"]"*/ 0, /*"^"*/ 0, /*"_"*/ 0, /*"`"*/ 0, /*"a"*/ 0, /*"b"*/ 0, /*"c"*/ 0, /*"d"*/ 0, + /*"e"*/ 0, /*"f"*/ 0, // "0" + /*"g"*/ + 0, /*"h"*/ 0, /*"i"*/ 0, /*"j"*/ 0, /*"k"*/ 0, /*"l"*/ 0, /*"m"*/ 0, /*"n"*/ 0, /*"o"*/ 0, + /*"p"*/ 0, /*"q"*/ 0, /*"r"*/ 0, /*"s"*/ 0, /*"t"*/ 0, // "0" + /*"u"*/ + 0, /*"v"*/ 0, /*"w"*/ 0, /*"x"*/ 0, /*"y"*/ 0, /*"z"*/ 0, /*"{"*/ 0, // an object + /*"|"*/ + 0, /*"}"*/ 0, /*"~"*/ 0, /*DEL*/ 0, +]; global ESCAPE_SEQUENCE_END_CHARS: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ false, - /*"!"*/ false, - /* " */ true, // replace \" with double quote - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ false, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, - /*"1"*/ false, - /*"2"*/ false, - /*"3"*/ false, - /*"4"*/ false, - /*"5"*/ false, - /*"6"*/ false, - /*"7"*/ false, - /*"8"*/ false, - /*"9"*/ false, - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ true, // replace \\ with \ - /*"]"*/ false, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ true, // replace \b with backspace - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ true, // replace \f with form feed - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ true, // replace \n with line feed - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ true, // replace \r with carriage return - /*"s"*/ false, - /*"t"*/ true, // replace \t with tab - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ false, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ false, + /*"!"*/ false, + /* " */ true, // replace \" with double quote + /*"#"*/ + false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ false, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /*"1"*/ false, + /*"2"*/ false, + /*"3"*/ false, + /*"4"*/ false, + /*"5"*/ false, + /*"6"*/ false, + /*"7"*/ false, + /*"8"*/ false, + /*"9"*/ false, + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ true, // replace \\ with \ + /*"]"*/ + false, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ true, // replace \b with backspace + /*"c"*/ + false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ true, // replace \f with form feed + /*"g"*/ + false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ true, // replace \n with line feed + /*"o"*/ + false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ true, // replace \r with carriage return + /*"s"*/ + false, + /*"t"*/ true, // replace \t with tab + /*"u"*/ + false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ false, + /*"~"*/ false, + /*DEL*/ false, +]; global ESCAPE_SEQUENCE_START_CHARS: [bool; 128] = [ - /* NULL */ false, - /* SOH */ false, - /* TXT */ false, - /* ETX */ false, - /* EOT */ false, - /* ENQ */ false, - /* ACK */ false, - /* BEL */ false, - /* BS */ false, - /* TAB */ false, - /* NL */ false, - /* VT */ false, - /* FF */ false, - /* CR */ false, - /* SI */ false, - /* SO */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* */ false, - /* SPACE */ false, - /*"!"*/ false, - /* " */ false, - /*"#"*/ false, - /*"$"*/ false, - /*"%"*/ false, - /*"&"*/ false, - /*"'"*/ false, - /*"("*/ false, - /*")"*/ false, - /*"*"*/ false, - /*"+"*/ false, - /*","*/ false, - /*"-"*/ false, - /*"."*/ false, - /*"/"*/ false, - /*"0"*/ false, - /*"1"*/ false, - /*"2"*/ false, - /*"3"*/ false, - /*"4"*/ false, - /*"5"*/ false, - /*"6"*/ false, - /*"7"*/ false, - /*"8"*/ false, - /*"9"*/ false, - /*":"*/ false, - /*";"*/ false, - /*"<"*/ false, - /*"="*/ false, - /*">"*/ false, - /*"?"*/ false, - /*"@"*/ false, - /*"A"*/ false, - /*"B"*/ false, - /*"C"*/ false, - /*"D"*/ false, - /*"E"*/ false, - /*"F"*/ false, - /*"G"*/ false, - /*"H"*/ false, - /*"I"*/ false, - /*"J"*/ false, - /*"K"*/ false, - /*"L"*/ false, - /*"M"*/ false, - /*"N"*/ false, - /*"O"*/ false, - /*"P"*/ false, - /*"Q"*/ false, - /*"R"*/ false, - /*"S"*/ false, - /*"T"*/ false, - /*"U"*/ false, - /*"V"*/ false, - /*"W"*/ false, - /*"X"*/ false, - /*"Y"*/ false, - /*"Z"*/ false, - /*"["*/ false, - /*"\"*/ true, // replace \\ with \ - /*"]"*/ false, - /*"^"*/ false, - /*"_"*/ false, - /*"`"*/ false, - /*"a"*/ false, - /*"b"*/ false, - /*"c"*/ false, - /*"d"*/ false, - /*"e"*/ false, - /*"f"*/ false, - /*"g"*/ false, - /*"h"*/ false, - /*"i"*/ false, - /*"j"*/ false, - /*"k"*/ false, - /*"l"*/ false, - /*"m"*/ false, - /*"n"*/ false, - /*"o"*/ false, - /*"p"*/ false, - /*"q"*/ false, - /*"r"*/ false, - /*"s"*/ false, - /*"t"*/ false, - /*"u"*/ false, - /*"v"*/ false, - /*"w"*/ false, - /*"x"*/ false, - /*"y"*/ false, - /*"z"*/ false, - /*"{"*/ false, - /*"|"*/ false, - /*"}"*/ false, - /*"~"*/ false, - /*DEL*/ false, - ]; + /* NULL */ false, + /* SOH */ false, + /* TXT */ false, + /* ETX */ false, + /* EOT */ false, + /* ENQ */ false, + /* ACK */ false, + /* BEL */ false, + /* BS */ false, + /* TAB */ false, + /* NL */ false, + /* VT */ false, + /* FF */ false, + /* CR */ false, + /* SI */ false, + /* SO */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* */ false, + /* SPACE */ false, + /*"!"*/ false, + /* " */ false, + /*"#"*/ false, + /*"$"*/ false, + /*"%"*/ false, + /*"&"*/ false, + /*"'"*/ false, + /*"("*/ false, + /*")"*/ false, + /*"*"*/ false, + /*"+"*/ false, + /*","*/ false, + /*"-"*/ false, + /*"."*/ false, + /*"/"*/ false, + /*"0"*/ false, + /*"1"*/ false, + /*"2"*/ false, + /*"3"*/ false, + /*"4"*/ false, + /*"5"*/ false, + /*"6"*/ false, + /*"7"*/ false, + /*"8"*/ false, + /*"9"*/ false, + /*":"*/ false, + /*";"*/ false, + /*"<"*/ false, + /*"="*/ false, + /*">"*/ false, + /*"?"*/ false, + /*"@"*/ false, + /*"A"*/ false, + /*"B"*/ false, + /*"C"*/ false, + /*"D"*/ false, + /*"E"*/ false, + /*"F"*/ false, + /*"G"*/ false, + /*"H"*/ false, + /*"I"*/ false, + /*"J"*/ false, + /*"K"*/ false, + /*"L"*/ false, + /*"M"*/ false, + /*"N"*/ false, + /*"O"*/ false, + /*"P"*/ false, + /*"Q"*/ false, + /*"R"*/ false, + /*"S"*/ false, + /*"T"*/ false, + /*"U"*/ false, + /*"V"*/ false, + /*"W"*/ false, + /*"X"*/ false, + /*"Y"*/ false, + /*"Z"*/ false, + /*"["*/ false, + /*"\"*/ true, // replace \\ with \ + /*"]"*/ + false, + /*"^"*/ false, + /*"_"*/ false, + /*"`"*/ false, + /*"a"*/ false, + /*"b"*/ false, + /*"c"*/ false, + /*"d"*/ false, + /*"e"*/ false, + /*"f"*/ false, + /*"g"*/ false, + /*"h"*/ false, + /*"i"*/ false, + /*"j"*/ false, + /*"k"*/ false, + /*"l"*/ false, + /*"m"*/ false, + /*"n"*/ false, + /*"o"*/ false, + /*"p"*/ false, + /*"q"*/ false, + /*"r"*/ false, + /*"s"*/ false, + /*"t"*/ false, + /*"u"*/ false, + /*"v"*/ false, + /*"w"*/ false, + /*"x"*/ false, + /*"y"*/ false, + /*"z"*/ false, + /*"{"*/ false, + /*"|"*/ false, + /*"}"*/ false, + /*"~"*/ false, + /*DEL*/ false, +]; global ESCAPE_SEQUENCE_REPLACEMENT: [u8; 128] = [ - /* NULL */ 0, - /* SOH */ 0, - /* TXT */ 0, - /* ETX */ 0, - /* EOT */ 0, - /* ENQ */ 0, - /* ACK */ 0, - /* BEL */ 0, - /* BS */ 0, - /* TAB */ 0, - /* NL */ 0, - /* VT */ 0, - /* FF */ 0, - /* CR */ 0, - /* SI */ 0, - /* SO */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* */ 0, - /* SPACE */ 0, - /*"!"*/ 0, - /* " */ 34, // replace \" with double quote - /*"#"*/ 0, - /*"$"*/ 0, - /*"%"*/ 0, - /*"&"*/ 0, - /*"'"*/ 0, - /*"("*/ 0, - /*")"*/ 0, - /*"*"*/ 0, - /*"+"*/ 0, - /*","*/ 0, - /*"-"*/ 0, - /*"."*/ 0, - /*"/"*/ 0, - /*"0"*/ 0, - /*"1"*/ 0, - /*"2"*/ 0, - /*"3"*/ 0, - /*"4"*/ 0, - /*"5"*/ 0, - /*"6"*/ 0, - /*"7"*/ 0, - /*"8"*/ 0, - /*"9"*/ 0, - /*":"*/ 0, - /*";"*/ 0, - /*"<"*/ 0, - /*"="*/ 0, - /*">"*/ 0, - /*"?"*/ 0, - /*"@"*/ 0, - /*"A"*/ 0, - /*"B"*/ 0, - /*"C"*/ 0, - /*"D"*/ 0, - /*"E"*/ 0, - /*"F"*/ 0, - /*"G"*/ 0, - /*"H"*/ 0, - /*"I"*/ 0, - /*"J"*/ 0, - /*"K"*/ 0, - /*"L"*/ 0, - /*"M"*/ 0, - /*"N"*/ 0, - /*"O"*/ 0, - /*"P"*/ 0, - /*"Q"*/ 0, - /*"R"*/ 0, - /*"S"*/ 0, - /*"T"*/ 0, - /*"U"*/ 0, - /*"V"*/ 0, - /*"W"*/ 0, - /*"X"*/ 0, - /*"Y"*/ 0, - /*"Z"*/ 0, - /*"["*/ 0, - /*"\"*/ 92, // replace \\ with \ - /*"]"*/ 0, - /*"^"*/ 0, - /*"_"*/ 0, - /*"`"*/ 0, - /*"a"*/ 0, - /*"b"*/ 8, // replace \b with backspace - /*"c"*/ 0, - /*"d"*/ 0, - /*"e"*/ 0, - /*"f"*/ 12, // replace \f with form feed - /*"g"*/ 0, - /*"h"*/ 0, - /*"i"*/ 0, - /*"j"*/ 0, - /*"k"*/ 0, - /*"l"*/ 0, - /*"m"*/ 0, - /*"n"*/ 10, // replace \n with line feed - /*"o"*/ 0, - /*"p"*/ 0, - /*"q"*/ 0, - /*"r"*/ 13, // replace \r with carriage return - /*"s"*/ 0, - /*"t"*/ 9, // replace \t with tab - /*"u"*/ 0, - /*"v"*/ 0, - /*"w"*/ 0, - /*"x"*/ 0, - /*"y"*/ 0, - /*"z"*/ 0, - /*"{"*/ 0, - /*"|"*/ 0, - /*"}"*/ 0, - /*"~"*/ 0, - /*DEL*/ 0, - ]; + /* NULL */ 0, + /* SOH */ 0, + /* TXT */ 0, + /* ETX */ 0, + /* EOT */ 0, + /* ENQ */ 0, + /* ACK */ 0, + /* BEL */ 0, + /* BS */ 0, + /* TAB */ 0, + /* NL */ 0, + /* VT */ 0, + /* FF */ 0, + /* CR */ 0, + /* SI */ 0, + /* SO */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* */ 0, + /* SPACE */ 0, + /*"!"*/ 0, + /* " */ 34, // replace \" with double quote + /*"#"*/ + 0, + /*"$"*/ 0, + /*"%"*/ 0, + /*"&"*/ 0, + /*"'"*/ 0, + /*"("*/ 0, + /*")"*/ 0, + /*"*"*/ 0, + /*"+"*/ 0, + /*","*/ 0, + /*"-"*/ 0, + /*"."*/ 0, + /*"/"*/ 0, + /*"0"*/ 0, + /*"1"*/ 0, + /*"2"*/ 0, + /*"3"*/ 0, + /*"4"*/ 0, + /*"5"*/ 0, + /*"6"*/ 0, + /*"7"*/ 0, + /*"8"*/ 0, + /*"9"*/ 0, + /*":"*/ 0, + /*";"*/ 0, + /*"<"*/ 0, + /*"="*/ 0, + /*">"*/ 0, + /*"?"*/ 0, + /*"@"*/ 0, + /*"A"*/ 0, + /*"B"*/ 0, + /*"C"*/ 0, + /*"D"*/ 0, + /*"E"*/ 0, + /*"F"*/ 0, + /*"G"*/ 0, + /*"H"*/ 0, + /*"I"*/ 0, + /*"J"*/ 0, + /*"K"*/ 0, + /*"L"*/ 0, + /*"M"*/ 0, + /*"N"*/ 0, + /*"O"*/ 0, + /*"P"*/ 0, + /*"Q"*/ 0, + /*"R"*/ 0, + /*"S"*/ 0, + /*"T"*/ 0, + /*"U"*/ 0, + /*"V"*/ 0, + /*"W"*/ 0, + /*"X"*/ 0, + /*"Y"*/ 0, + /*"Z"*/ 0, + /*"["*/ 0, + /*"\"*/ 92, // replace \\ with \ + /*"]"*/ + 0, + /*"^"*/ 0, + /*"_"*/ 0, + /*"`"*/ 0, + /*"a"*/ 0, + /*"b"*/ 8, // replace \b with backspace + /*"c"*/ + 0, + /*"d"*/ 0, + /*"e"*/ 0, + /*"f"*/ 12, // replace \f with form feed + /*"g"*/ + 0, + /*"h"*/ 0, + /*"i"*/ 0, + /*"j"*/ 0, + /*"k"*/ 0, + /*"l"*/ 0, + /*"m"*/ 0, + /*"n"*/ 10, // replace \n with line feed + /*"o"*/ + 0, + /*"p"*/ 0, + /*"q"*/ 0, + /*"r"*/ 13, // replace \r with carriage return + /*"s"*/ + 0, + /*"t"*/ 9, // replace \t with tab + /*"u"*/ + 0, + /*"v"*/ 0, + /*"w"*/ 0, + /*"x"*/ 0, + /*"y"*/ 0, + /*"z"*/ 0, + /*"{"*/ 0, + /*"|"*/ 0, + /*"}"*/ 0, + /*"~"*/ 0, + /*DEL*/ 0, +]; diff --git a/src/keyhash.nr b/src/keyhash.nr index b4fa6c9..542ea40 100644 --- a/src/keyhash.nr +++ b/src/keyhash.nr @@ -1,5 +1,5 @@ -use crate::_string_tools::slice_packed_field::slice_fields; use crate::_string_tools::slice_field::slice_200_bits_from_field; +use crate::_string_tools::slice_packed_field::slice_fields; /** * @brief utility struct that computes a 200-bit Poseidon hash of some bytes, diff --git a/src/keymap.nr b/src/keymap.nr index d445ccf..b6aac8e 100644 --- a/src/keymap.nr +++ b/src/keymap.nr @@ -1,10 +1,10 @@ -use crate::json::JSON; -use crate::json_entry::{JSONEntryPacked, JSONEntry}; +use crate::_comparison_tools::lt::assert_lte_240_bit; use crate::_comparison_tools::lt::lt_field_16_bit; use crate::_comparison_tools::lt::lte_field_240_bit; -use crate::_comparison_tools::lt::assert_lte_240_bit; -use crate::json_tables::TOKEN_ENDS_OBJECT_OR_ARRAY; use crate::_string_tools::slice_packed_field::slice_fields; +use crate::json::JSON; +use crate::json_entry::{JSONEntry, JSONEntryPacked}; +use crate::json_tables::TOKEN_ENDS_OBJECT_OR_ARRAY; use crate::keyhash::FieldHasher; use dep::noir_sort; diff --git a/src/lib.nr b/src/lib.nr index 7c17181..41c629a 100644 --- a/src/lib.nr +++ b/src/lib.nr @@ -16,12 +16,12 @@ mod get_literal; mod get_object; mod get_array; +use crate::_string_tools::slice_packed_field::slice_fields; +use crate::get_literal::JSONLiteral; use crate::json::JSON; use crate::json::JSONValue; -use crate::json_entry::JSONEntryPacked; use crate::json_entry::JSONEntry; -use crate::_string_tools::slice_packed_field::slice_fields; -use crate::get_literal::JSONLiteral; +use crate::json_entry::JSONEntryPacked; trait JSONParserTrait { fn parse_json_from_string(s: str) -> Self;