#include "util/Unicode.h"
using namespace js;
using namespace js::unicode;
const CharacterInfo unicode::js_charinfo[] = {
{ 0, 0, 0 },
{ 0, 0, 1 },
{ 0, 0, 4 },
{ 0, 32, 2 },
{ 65504, 0, 2 },
{ 0, 0, 2 },
{ 743, 0, 2 },
{ 121, 0, 2 },
{ 0, 1, 2 },
{ 65535, 0, 2 },
{ 0, 65337, 2 },
{ 65304, 0, 2 },
{ 0, 65415, 2 },
{ 65236, 0, 2 },
{ 195, 0, 2 },
{ 0, 210, 2 },
{ 0, 206, 2 },
{ 0, 205, 2 },
{ 0, 79, 2 },
{ 0, 202, 2 },
{ 0, 203, 2 },
{ 0, 207, 2 },
{ 97, 0, 2 },
{ 0, 211, 2 },
{ 0, 209, 2 },
{ 163, 0, 2 },
{ 0, 213, 2 },
{ 130, 0, 2 },
{ 0, 214, 2 },
{ 0, 218, 2 },
{ 0, 217, 2 },
{ 0, 219, 2 },
{ 56, 0, 2 },
{ 0, 2, 2 },
{ 65535, 1, 2 },
{ 65534, 0, 2 },
{ 65457, 0, 2 },
{ 0, 65439, 2 },
{ 0, 65480, 2 },
{ 0, 65406, 2 },
{ 0, 10795, 2 },
{ 0, 65373, 2 },
{ 0, 10792, 2 },
{ 10815, 0, 2 },
{ 0, 65341, 2 },
{ 0, 69, 2 },
{ 0, 71, 2 },
{ 10783, 0, 2 },
{ 10780, 0, 2 },
{ 10782, 0, 2 },
{ 65326, 0, 2 },
{ 65330, 0, 2 },
{ 65331, 0, 2 },
{ 65334, 0, 2 },
{ 65333, 0, 2 },
{ 42319, 0, 2 },
{ 42315, 0, 2 },
{ 65329, 0, 2 },
{ 42280, 0, 2 },
{ 42308, 0, 2 },
{ 65327, 0, 2 },
{ 65325, 0, 2 },
{ 10743, 0, 2 },
{ 42305, 0, 2 },
{ 10749, 0, 2 },
{ 65323, 0, 2 },
{ 65322, 0, 2 },
{ 10727, 0, 2 },
{ 65318, 0, 2 },
{ 42282, 0, 2 },
{ 65467, 0, 2 },
{ 65319, 0, 2 },
{ 65465, 0, 2 },
{ 65317, 0, 2 },
{ 42261, 0, 2 },
{ 42258, 0, 2 },
{ 84, 0, 4 },
{ 0, 116, 2 },
{ 0, 38, 2 },
{ 0, 37, 2 },
{ 0, 64, 2 },
{ 0, 63, 2 },
{ 65498, 0, 2 },
{ 65499, 0, 2 },
{ 65505, 0, 2 },
{ 65472, 0, 2 },
{ 65473, 0, 2 },
{ 0, 8, 2 },
{ 65474, 0, 2 },
{ 65479, 0, 2 },
{ 65489, 0, 2 },
{ 65482, 0, 2 },
{ 65528, 0, 2 },
{ 65450, 0, 2 },
{ 65456, 0, 2 },
{ 7, 0, 2 },
{ 65420, 0, 2 },
{ 0, 65476, 2 },
{ 65440, 0, 2 },
{ 0, 65529, 2 },
{ 0, 80, 2 },
{ 0, 15, 2 },
{ 65521, 0, 2 },
{ 0, 48, 2 },
{ 65488, 0, 2 },
{ 0, 7264, 2 },
{ 3008, 0, 2 },
{ 0, 38864, 2 },
{ 59282, 0, 2 },
{ 59283, 0, 2 },
{ 59292, 0, 2 },
{ 59294, 0, 2 },
{ 59293, 0, 2 },
{ 59300, 0, 2 },
{ 59355, 0, 2 },
{ 35266, 0, 2 },
{ 0, 62528, 2 },
{ 35332, 0, 2 },
{ 3814, 0, 2 },
{ 65477, 0, 2 },
{ 0, 57921, 2 },
{ 8, 0, 2 },
{ 0, 65528, 2 },
{ 74, 0, 2 },
{ 86, 0, 2 },
{ 100, 0, 2 },
{ 128, 0, 2 },
{ 112, 0, 2 },
{ 126, 0, 2 },
{ 9, 0, 2 },
{ 0, 65462, 2 },
{ 0, 65527, 2 },
{ 58331, 0, 2 },
{ 0, 65450, 2 },
{ 0, 65436, 2 },
{ 0, 65424, 2 },
{ 0, 65408, 2 },
{ 0, 65410, 2 },
{ 0, 58019, 2 },
{ 0, 57153, 2 },
{ 0, 57274, 2 },
{ 0, 28, 2 },
{ 65508, 0, 2 },
{ 0, 16, 2 },
{ 65520, 0, 2 },
{ 0, 26, 0 },
{ 65510, 0, 0 },
{ 0, 54793, 2 },
{ 0, 61722, 2 },
{ 0, 54809, 2 },
{ 54741, 0, 2 },
{ 54744, 0, 2 },
{ 0, 54756, 2 },
{ 0, 54787, 2 },
{ 0, 54753, 2 },
{ 0, 54754, 2 },
{ 0, 54721, 2 },
{ 58272, 0, 2 },
{ 0, 30204, 2 },
{ 0, 23256, 2 },
{ 0, 23228, 2 },
{ 0, 23217, 2 },
{ 0, 23221, 2 },
{ 0, 23231, 2 },
{ 0, 23278, 2 },
{ 0, 23254, 2 },
{ 0, 23275, 2 },
{ 0, 928, 2 },
{ 64608, 0, 2 },
{ 26672, 0, 2 },
};
const uint8_t unicode::index1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 26, 26, 26, 26,
26, 68, 69, 70, 71, 72, 73, 74, 75, 26, 26, 26, 26, 26, 26, 26, 26, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 26, 103, 26, 104, 105, 105, 106, 105, 107, 108,
109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 118, 119, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 120, 121, 105, 122,
123, 124, 125, 126, 94, 94, 94, 94, 94, 94, 94, 94, 127, 75, 128, 129, 130, 26,
131, 132, 94, 94, 94, 94, 94, 94, 94, 94, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 86, 94, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 133, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 134, 135, 26, 26, 26, 26, 136, 137,
138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
156, 157, 158, 159, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 160, 161,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 26, 26, 26, 26, 26, 162, 26, 163, 164, 165, 166, 167,
26, 26, 26, 26, 168, 169, 170, 171, 172, 173, 26, 174, 175, 176, 177, 178,
};
const uint8_t unicode::index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 0, 0, 0, 0, 2, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 0,
0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 6, 0, 2, 0, 0, 5, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3, 3, 3, 3, 3, 3, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4,
4, 4, 4, 7, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 10, 11,
8, 9, 8, 9, 8, 9, 5, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8,
9, 8, 9, 8, 9, 5, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 12, 8,
9, 8, 9, 8, 9, 13, 14, 15, 8, 9, 8, 9, 16, 8, 9, 17, 17, 8,
9, 5, 18, 19, 20, 8, 9, 17, 21, 22, 23, 24, 8, 9, 25, 5, 23, 26,
27, 28, 8, 9, 8, 9, 8, 9, 29, 8, 9, 29, 5, 5, 8, 9, 29, 8,
9, 30, 30, 8, 9, 8, 9, 31, 8, 9, 5, 5, 8, 9, 5, 32, 5, 5,
5, 5, 33, 34, 35, 33, 34, 35, 33, 34, 35, 8, 9, 8, 9, 8, 9, 8,
9, 8, 9, 8, 9, 8, 9, 8, 9, 36, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 5, 33, 34, 35, 8, 9, 37, 38,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 39, 5, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 5, 5, 5, 5, 5, 5, 40, 8, 9, 41, 42, 43,
43, 8, 9, 44, 45, 46, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 47, 48,
49, 50, 51, 5, 52, 52, 5, 53, 5, 54, 55, 5, 5, 5, 52, 56, 5, 57,
5, 58, 59, 5, 60, 61, 59, 62, 63, 5, 5, 61, 5, 64, 65, 5, 5, 66,
5, 5, 5, 5, 5, 5, 5, 67, 5, 5, 68, 5, 5, 68, 5, 5, 5, 69,
68, 70, 71, 71, 72, 5, 5, 5, 5, 5, 73, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 74, 75, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5,
5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 5, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 76, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 9,
8, 9, 5, 0, 8, 9, 0, 0, 5, 27, 27, 27, 0, 77, 0, 0, 0, 0,
0, 0, 78, 2, 79, 79, 79, 0, 80, 0, 81, 81, 5, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3,
3, 3, 3, 3, 82, 83, 83, 83, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 84, 4, 4, 4, 4, 4, 4, 4, 4, 4,
85, 86, 86, 87, 88, 89, 5, 5, 5, 90, 91, 92, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
93, 94, 95, 96, 97, 98, 0, 8, 9, 99, 8, 9, 5, 39, 39, 39, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 0, 2, 2, 2, 2, 2, 0, 0, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 101, 8, 9, 8, 9, 8, 9, 8,
9, 8, 9, 8, 9, 8, 9, 102, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 0, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 0,
0, 5, 0, 0, 0, 0, 0, 0, 5, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 5, 5, 0, 0, 0, 0, 0,
0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0,
2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 0, 5, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2,
2, 5, 5, 2, 2, 0, 2, 2, 2, 2, 5, 5, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 5, 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2,
2, 2, 5, 5, 0, 0, 0, 0, 5, 0, 0, 2, 0, 0, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2,
5, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 0, 0,
0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 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, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5,
5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 2, 2, 2, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5,
5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0,
0, 0, 5, 5, 5, 5, 0, 0, 2, 5, 2, 2, 2, 2, 2, 2, 2, 0,
0, 2, 2, 0, 0, 2, 2, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 2,
0, 0, 0, 0, 5, 5, 0, 5, 5, 5, 2, 2, 0, 0, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 0, 2, 0, 0, 2, 2, 2, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0,
0, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 0,
5, 5, 0, 5, 5, 0, 5, 5, 0, 0, 2, 0, 2, 2, 2, 2, 2, 0,
0, 0, 0, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0,
0, 0, 0, 5, 5, 5, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 5, 5, 5, 5, 5, 5, 5,
5, 5, 0, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5,
5, 0, 5, 5, 0, 5, 5, 5, 5, 5, 0, 0, 2, 5, 2, 2, 2, 2,
2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 5, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 2, 2, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
0, 5, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 5, 5, 5, 5, 5,
5, 5, 5, 0, 0, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5,
5, 5, 5, 0, 5, 5, 0, 5, 5, 5, 5, 5, 0, 0, 2, 5, 2, 2,
2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 5, 5, 0, 5, 5, 5, 2, 2,
0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, 5, 5, 5,
5, 5, 5, 0, 0, 0, 5, 5, 5, 0, 5, 5, 5, 5, 0, 0, 0, 5,
5, 0, 5, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 5, 0,
0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0,
5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 5,
5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
0, 5, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 2,
0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 5, 5, 5, 0, 0, 0, 0, 0,
5, 5, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 2, 2,
0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 0, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5,
0, 0, 2, 5, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2,
2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
5, 0, 5, 5, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2, 2, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0,
2, 2, 2, 2, 5, 0, 0, 0, 0, 0, 5, 5, 5, 2, 0, 0, 0, 0,
0, 0, 0, 5, 5, 5, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5,
0, 0, 2, 2, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5,
5, 5, 5, 5, 5, 5, 0, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0,
0, 0, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2,
2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 5,
2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5,
5, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 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, 5, 5, 0, 5, 0, 0, 5, 5, 0, 5, 0, 0, 5,
0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5,
0, 5, 5, 5, 0, 5, 0, 5, 0, 0, 5, 5, 0, 5, 5, 5, 5, 2,
5, 5, 2, 2, 2, 2, 2, 2, 0, 2, 2, 5, 0, 0, 5, 5, 5, 5,
5, 0, 5, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 5, 5, 5, 5, 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, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0,
0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 2, 2, 5, 5,
5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 5, 5,
5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 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, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 5, 5, 5, 5, 2, 2, 2, 5,
2, 2, 2, 5, 5, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 2, 2, 2,
2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 0, 105, 0, 0, 0, 0, 0, 105,
0, 0, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106, 106, 0, 5, 106, 106, 106, 5, 5, 5, 5,
5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5,
5, 0, 5, 0, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5,
5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 0, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0,
5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 87, 87, 87, 87,
87, 87, 0, 0, 92, 92, 92, 92, 92, 92, 0, 0, 0, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 2, 2,
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
5, 5, 5, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 5, 0, 0,
0, 0, 5, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, 0, 0, 0, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2,
2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 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, 0, 0, 0, 0, 2, 2, 2, 2,
2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5,
0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 0, 0, 0, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
0, 0, 108, 109, 110, 111, 111, 112, 113, 114, 115, 0, 0, 0, 0, 0, 0, 0,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 0, 0, 116, 116, 116, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
5, 5, 5, 2, 5, 5, 5, 5, 2, 2, 2, 5, 5, 2, 2, 2, 0, 0,
0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 117, 5, 5, 5, 118, 5, 5, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
0, 2, 2, 2, 2, 2, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 5, 5, 5, 5, 5, 119, 5, 5, 120, 5, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122,
122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 0, 0, 122, 122, 122, 122,
122, 122, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122,
122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122,
121, 121, 121, 121, 121, 121, 0, 0, 122, 122, 122, 122, 122, 122, 0, 0, 5, 121,
5, 121, 5, 121, 5, 121, 0, 122, 0, 122, 0, 122, 0, 122, 121, 121, 121, 121,
121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 124, 124, 124, 124,
125, 125, 126, 126, 127, 127, 128, 128, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121,
122, 122, 122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122,
122, 122, 122, 122, 122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122,
122, 122, 122, 122, 121, 121, 5, 129, 5, 0, 5, 5, 122, 122, 130, 130, 131, 0,
132, 0, 0, 0, 5, 129, 5, 0, 5, 5, 133, 133, 133, 133, 131, 0, 0, 0,
121, 121, 5, 5, 0, 0, 5, 5, 122, 122, 134, 134, 0, 0, 0, 0, 121, 121,
5, 5, 5, 95, 5, 5, 122, 122, 135, 135, 99, 0, 0, 0, 0, 0, 5, 129,
5, 0, 5, 5, 136, 136, 137, 137, 131, 0, 0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 0, 2, 2, 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,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
0, 0, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 0, 0, 0, 0, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
0, 5, 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 5, 0,
138, 0, 5, 0, 139, 140, 5, 5, 5, 5, 5, 5, 141, 5, 5, 5, 5, 5,
5, 5, 0, 0, 5, 5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5,
0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
5, 5, 5, 8, 9, 5, 5, 5, 5, 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, 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, 145, 145, 145, 145, 145, 145, 145, 145,
145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
103, 103, 103, 103, 103, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 0,
8, 9, 147, 148, 149, 150, 151, 8, 9, 8, 9, 8, 9, 152, 153, 154, 155, 5,
8, 9, 5, 8, 9, 5, 5, 5, 5, 5, 5, 5, 156, 156, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 5, 0, 0, 0,
0, 0, 0, 8, 9, 8, 9, 2, 2, 2, 8, 9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 0, 157, 0, 0, 0, 0, 0, 157, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0,
0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5,
5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 0,
5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5,
5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 5, 5, 5,
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, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2,
2, 2, 2, 2, 0, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 0,
0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 0, 0, 2, 2, 5, 5, 5, 5, 5, 0, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
5, 5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 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,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 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, 0, 0, 0, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 5, 2, 0, 0, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 5, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 5, 5, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2,
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, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 5, 5, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 9, 8, 9, 158, 8, 9, 8, 9,
8, 9, 8, 9, 8, 9, 5, 0, 0, 8, 9, 159, 5, 5, 8, 9, 8, 9,
5, 5, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9,
8, 9, 8, 9, 160, 161, 162, 163, 160, 5, 164, 165, 166, 167, 8, 9, 8, 9,
8, 9, 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, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 2, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2,
2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5,
0, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 0, 0, 0, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 2,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 0, 0, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 0, 0, 0, 5, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 2, 5, 2, 2, 2, 5, 5, 2, 2, 5, 5, 5, 5, 5,
2, 2, 5, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 0, 0, 5, 5,
5, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5,
5, 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 0,
0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5,
5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 168, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 169,
169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
169, 169, 169, 169, 169, 169, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
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, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 5, 2, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 0, 5, 5, 5, 5, 5, 0, 5, 0, 5, 5, 0, 5, 5, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
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, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 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, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,
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, 5, 5, 5, 5,
5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 2, 0, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5,
5, 5, 5, 5, 0, 0, 5, 5, 5, 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,
};
const CodepointsWithSameUpperCaseInfo unicode::js_codepoints_with_same_upper_info[] = {
{ 0, 0, 0 },
{ 32, 0, 0 },
{ 32, 232, 0 },
{ 32, 300, 0 },
{ 0, 200, 0 },
{ 0, 268, 0 },
{ 0, 775, 0 },
{ 1, 0, 0 },
{ 65336, 0, 0 },
{ 65415, 0, 0 },
{ 65268, 0, 0 },
{ 210, 0, 0 },
{ 206, 0, 0 },
{ 205, 0, 0 },
{ 79, 0, 0 },
{ 202, 0, 0 },
{ 203, 0, 0 },
{ 207, 0, 0 },
{ 211, 0, 0 },
{ 209, 0, 0 },
{ 213, 0, 0 },
{ 214, 0, 0 },
{ 218, 0, 0 },
{ 217, 0, 0 },
{ 219, 0, 0 },
{ 1, 2, 0 },
{ 0, 1, 0 },
{ 65535, 0, 0 },
{ 65439, 0, 0 },
{ 65480, 0, 0 },
{ 65406, 0, 0 },
{ 10795, 0, 0 },
{ 65373, 0, 0 },
{ 10792, 0, 0 },
{ 65341, 0, 0 },
{ 69, 0, 0 },
{ 71, 0, 0 },
{ 0, 116, 7289 },
{ 116, 0, 0 },
{ 38, 0, 0 },
{ 37, 0, 0 },
{ 64, 0, 0 },
{ 63, 0, 0 },
{ 32, 62, 0 },
{ 32, 96, 0 },
{ 32, 57, 0 },
{ 65452, 32, 7205 },
{ 32, 86, 0 },
{ 64793, 32, 0 },
{ 32, 54, 0 },
{ 32, 80, 0 },
{ 31, 32, 0 },
{ 32, 47, 0 },
{ 0, 30, 0 },
{ 0, 64, 0 },
{ 0, 25, 0 },
{ 65420, 0, 7173 },
{ 0, 54, 0 },
{ 64761, 0, 0 },
{ 0, 22, 0 },
{ 0, 48, 0 },
{ 0, 15, 0 },
{ 8, 0, 0 },
{ 65506, 0, 0 },
{ 65511, 0, 0 },
{ 65521, 0, 0 },
{ 65514, 0, 0 },
{ 65482, 0, 0 },
{ 65488, 0, 0 },
{ 65472, 0, 0 },
{ 65529, 0, 0 },
{ 80, 0, 0 },
{ 32, 6254, 0 },
{ 32, 6253, 0 },
{ 32, 6244, 0 },
{ 32, 6242, 0 },
{ 32, 6242, 6243 },
{ 32, 6236, 0 },
{ 0, 6222, 0 },
{ 0, 6221, 0 },
{ 0, 6212, 0 },
{ 0, 6210, 0 },
{ 0, 6210, 6211 },
{ 0, 6204, 0 },
{ 1, 6181, 0 },
{ 0, 6180, 0 },
{ 15, 0, 0 },
{ 48, 0, 0 },
{ 7264, 0, 0 },
{ 38864, 0, 0 },
{ 59314, 0, 0 },
{ 59315, 0, 0 },
{ 59324, 0, 0 },
{ 59326, 0, 0 },
{ 59326, 0, 1 },
{ 59325, 65535, 0 },
{ 59332, 0, 0 },
{ 59356, 0, 0 },
{ 0, 35267, 0 },
{ 62528, 0, 0 },
{ 1, 59, 0 },
{ 0, 58, 0 },
{ 65478, 0, 0 },
{ 65528, 0, 0 },
{ 65462, 0, 0 },
{ 65527, 0, 0 },
{ 58247, 58363, 0 },
{ 65450, 0, 0 },
{ 65436, 0, 0 },
{ 65424, 0, 0 },
{ 65408, 0, 0 },
{ 65410, 0, 0 },
{ 28, 0, 0 },
{ 16, 0, 0 },
{ 26, 0, 0 },
{ 54793, 0, 0 },
{ 61722, 0, 0 },
{ 54809, 0, 0 },
{ 54756, 0, 0 },
{ 54787, 0, 0 },
{ 54753, 0, 0 },
{ 54754, 0, 0 },
{ 54721, 0, 0 },
{ 30270, 1, 0 },
{ 30269, 0, 0 },
{ 30204, 0, 0 },
{ 23256, 0, 0 },
{ 23228, 0, 0 },
{ 23217, 0, 0 },
{ 23221, 0, 0 },
{ 23231, 0, 0 },
{ 23278, 0, 0 },
{ 23254, 0, 0 },
{ 23275, 0, 0 },
{ 928, 0, 0 },
};
const uint8_t unicode::codepoints_with_same_upper_index1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 10, 11, 12, 13, 14,
15, 16, 17, 18, 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, 19, 20, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 21, 22, 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, 23, 0, 0, 0, 0, 0, 24, 25, 26, 24, 27, 28,
29, 30, 0, 0, 0, 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 34, 35, 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, 36, 37, 24, 38,
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, 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, 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, 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, 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, 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, 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, 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, 39,
40, 0, 41, 42, 43, 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, 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, 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, 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, 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, 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, 44, 0, 0, 0,
};
const uint8_t unicode::codepoints_with_same_upper_index2[] = {
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, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 5, 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, 0, 0,
0, 6, 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, 0,
1, 1, 1, 1, 1, 1, 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, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 8,
7, 0, 7, 0, 7, 0, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7,
0, 7, 0, 7, 0, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 9, 7,
0, 7, 0, 7, 0, 10, 0, 11, 7, 0, 7, 0, 12, 7, 0, 13, 13, 7,
0, 0, 14, 15, 16, 7, 0, 13, 17, 0, 18, 19, 7, 0, 0, 0, 18, 20,
0, 21, 7, 0, 7, 0, 7, 0, 22, 7, 0, 22, 0, 0, 7, 0, 22, 7,
0, 23, 23, 7, 0, 7, 0, 24, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0, 25, 26, 27, 25, 26, 27, 25, 26, 27, 7, 0, 7, 0, 7, 0, 7,
0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 25, 26, 27, 7, 0, 28, 29,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 30, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 31, 7, 0, 32, 33, 0,
0, 7, 0, 34, 35, 36, 7, 0, 7, 0, 7, 0, 7, 0, 7, 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, 37, 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, 7, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
0, 38, 0, 0, 0, 0, 0, 0, 39, 0, 40, 40, 40, 0, 41, 0, 42, 42,
0, 1, 43, 1, 1, 44, 1, 1, 45, 46, 47, 1, 48, 1, 1, 1, 49, 50,
0, 51, 1, 1, 52, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 53, 0,
0, 54, 0, 0, 55, 56, 57, 0, 58, 0, 0, 0, 59, 60, 26, 27, 0, 0,
61, 0, 0, 0, 0, 0, 0, 0, 0, 62, 63, 64, 0, 0, 0, 65, 66, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 67, 68, 0, 0, 0, 69, 0, 7, 0, 70, 7, 0,
0, 30, 30, 30, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 1, 1, 72, 1, 73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 74, 1,
1, 75, 76, 1, 1, 1, 1, 1, 1, 1, 77, 1, 1, 1, 1, 1, 0, 0,
78, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 81, 82, 0,
0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 84, 85, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 86, 7,
0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 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, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
88, 88, 88, 88, 88, 88, 88, 88, 0, 88, 0, 0, 0, 0, 0, 88, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 62, 62,
62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 91, 92, 93,
94, 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, 0, 0, 99, 99, 99, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 100, 101, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 102,
0, 0, 0, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0,
0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0, 0, 0, 0, 0,
0, 0, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0,
103, 103, 103, 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
0, 103, 0, 103, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 103,
103, 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 103,
0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0,
0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0, 0, 0,
0, 0, 0, 0, 103, 103, 104, 104, 105, 0, 106, 0, 0, 0, 0, 0, 0, 0,
0, 0, 107, 107, 107, 107, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
103, 103, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103,
109, 109, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 110, 111, 111,
105, 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,
112, 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, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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,
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, 114, 114,
114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
114, 114, 114, 114, 114, 114, 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,
87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 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, 7, 0, 115, 116, 117, 0, 0, 7, 0, 7, 0, 7,
0, 118, 119, 120, 121, 0, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0,
122, 122, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 7, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 123, 124, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 0, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 125, 7, 0, 7, 0,
7, 0, 7, 0, 7, 0, 0, 0, 0, 7, 0, 126, 0, 0, 7, 0, 7, 0,
0, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0,
7, 0, 7, 0, 127, 128, 129, 130, 127, 0, 131, 132, 133, 134, 7, 0, 7, 0,
7, 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, 0, 0, 0, 0, 0,
};
const FoldingInfo unicode::js_foldinfo[] = {
{ 0, 0, 0, 0 },
{ 32, 0, 0, 0 },
{ 32, 8415, 0, 0 },
{ 32, 300, 0, 0 },
{ 0, 65504, 0, 0 },
{ 0, 65504, 8383, 0 },
{ 0, 65504, 268, 0 },
{ 775, 743, 0, 0 },
{ 32, 8294, 0, 0 },
{ 0, 7615, 0, 0 },
{ 0, 65504, 8262, 0 },
{ 0, 121, 0, 0 },
{ 1, 0, 0, 0 },
{ 0, 65535, 0, 0 },
{ 65415, 0, 0, 0 },
{ 65268, 65236, 0, 0 },
{ 0, 195, 0, 0 },
{ 210, 0, 0, 0 },
{ 206, 0, 0, 0 },
{ 205, 0, 0, 0 },
{ 79, 0, 0, 0 },
{ 202, 0, 0, 0 },
{ 203, 0, 0, 0 },
{ 207, 0, 0, 0 },
{ 0, 97, 0, 0 },
{ 211, 0, 0, 0 },
{ 209, 0, 0, 0 },
{ 0, 163, 0, 0 },
{ 213, 0, 0, 0 },
{ 0, 130, 0, 0 },
{ 214, 0, 0, 0 },
{ 218, 0, 0, 0 },
{ 217, 0, 0, 0 },
{ 219, 0, 0, 0 },
{ 0, 56, 0, 0 },
{ 2, 1, 0, 0 },
{ 1, 65535, 0, 0 },
{ 0, 65534, 65535, 0 },
{ 0, 65457, 0, 0 },
{ 65439, 0, 0, 0 },
{ 65480, 0, 0, 0 },
{ 65406, 0, 0, 0 },
{ 10795, 0, 0, 0 },
{ 65373, 0, 0, 0 },
{ 10792, 0, 0, 0 },
{ 0, 10815, 0, 0 },
{ 65341, 0, 0, 0 },
{ 69, 0, 0, 0 },
{ 71, 0, 0, 0 },
{ 0, 10783, 0, 0 },
{ 0, 10780, 0, 0 },
{ 0, 10782, 0, 0 },
{ 0, 65326, 0, 0 },
{ 0, 65330, 0, 0 },
{ 0, 65331, 0, 0 },
{ 0, 65334, 0, 0 },
{ 0, 65333, 0, 0 },
{ 0, 42319, 0, 0 },
{ 0, 42315, 0, 0 },
{ 0, 65329, 0, 0 },
{ 0, 42280, 0, 0 },
{ 0, 42308, 0, 0 },
{ 0, 65327, 0, 0 },
{ 0, 65325, 0, 0 },
{ 0, 10743, 0, 0 },
{ 0, 42305, 0, 0 },
{ 0, 10749, 0, 0 },
{ 0, 65323, 0, 0 },
{ 0, 65322, 0, 0 },
{ 0, 10727, 0, 0 },
{ 0, 65318, 0, 0 },
{ 0, 42282, 0, 0 },
{ 0, 65467, 0, 0 },
{ 0, 65319, 0, 0 },
{ 0, 65465, 0, 0 },
{ 0, 65317, 0, 0 },
{ 0, 42261, 0, 0 },
{ 0, 42258, 0, 0 },
{ 116, 84, 7289, 0 },
{ 116, 0, 0, 0 },
{ 38, 0, 0, 0 },
{ 37, 0, 0, 0 },
{ 64, 0, 0, 0 },
{ 63, 0, 0, 0 },
{ 32, 62, 0, 0 },
{ 32, 96, 0, 0 },
{ 32, 57, 92, 0 },
{ 32, 65452, 7205, 0 },
{ 32, 86, 0, 0 },
{ 32, 64793, 0, 0 },
{ 32, 54, 0, 0 },
{ 32, 80, 0, 0 },
{ 32, 31, 0, 0 },
{ 32, 47, 0, 0 },
{ 32, 7549, 0, 0 },
{ 0, 65498, 0, 0 },
{ 0, 65499, 0, 0 },
{ 0, 65504, 30, 0 },
{ 0, 65504, 64, 0 },
{ 0, 65504, 25, 60 },
{ 0, 65420, 65504, 7173 },
{ 0, 65504, 54, 0 },
{ 0, 64761, 65504, 0 },
{ 0, 65504, 22, 0 },
{ 0, 65504, 48, 0 },
{ 1, 65505, 0, 0 },
{ 0, 65504, 65535, 0 },
{ 0, 65504, 15, 0 },
{ 0, 65504, 7517, 0 },
{ 0, 65472, 0, 0 },
{ 0, 65473, 0, 0 },
{ 8, 0, 0, 0 },
{ 65506, 65474, 0, 0 },
{ 65511, 65479, 35, 0 },
{ 65521, 65489, 0, 0 },
{ 65514, 65482, 0, 0 },
{ 0, 65528, 0, 0 },
{ 65482, 65450, 0, 0 },
{ 65488, 65456, 0, 0 },
{ 0, 7, 0, 0 },
{ 0, 65420, 0, 0 },
{ 65476, 65444, 65501, 0 },
{ 65472, 65440, 0, 0 },
{ 65529, 0, 0, 0 },
{ 80, 0, 0, 0 },
{ 32, 6254, 0, 0 },
{ 32, 6253, 0, 0 },
{ 32, 6244, 0, 0 },
{ 32, 6242, 0, 0 },
{ 32, 6242, 6243, 0 },
{ 32, 6236, 0, 0 },
{ 0, 65504, 6222, 0 },
{ 0, 65504, 6221, 0 },
{ 0, 65504, 6212, 0 },
{ 0, 65504, 6210, 0 },
{ 0, 65504, 6210, 6211 },
{ 0, 65504, 6204, 0 },
{ 0, 65456, 0, 0 },
{ 1, 6181, 0, 0 },
{ 0, 65535, 6180, 0 },
{ 15, 0, 0, 0 },
{ 0, 65521, 0, 0 },
{ 48, 0, 0, 0 },
{ 0, 65488, 0, 0 },
{ 7264, 0, 0, 0 },
{ 0, 3008, 0, 0 },
{ 0, 38864, 0, 0 },
{ 0, 8, 0, 0 },
{ 65528, 0, 0, 0 },
{ 59314, 59282, 0, 0 },
{ 59315, 59283, 0, 0 },
{ 59324, 59292, 0, 0 },
{ 59326, 59294, 0, 0 },
{ 59326, 59294, 1, 0 },
{ 59325, 59293, 65535, 0 },
{ 59332, 59300, 0, 0 },
{ 59356, 59355, 0, 0 },
{ 35267, 35266, 0, 0 },
{ 62528, 0, 0, 0 },
{ 0, 35332, 0, 0 },
{ 0, 3814, 0, 0 },
{ 1, 59, 0, 0 },
{ 0, 65535, 58, 0 },
{ 65478, 65477, 0, 0 },
{ 57921, 0, 0, 0 },
{ 0, 74, 0, 0 },
{ 0, 86, 0, 0 },
{ 0, 100, 0, 0 },
{ 0, 128, 0, 0 },
{ 0, 112, 0, 0 },
{ 0, 126, 0, 0 },
{ 0, 9, 0, 0 },
{ 65462, 0, 0, 0 },
{ 65527, 0, 0, 0 },
{ 58363, 58247, 58331, 0 },
{ 65450, 0, 0, 0 },
{ 65436, 0, 0, 0 },
{ 65424, 0, 0, 0 },
{ 65408, 0, 0, 0 },
{ 65410, 0, 0, 0 },
{ 58019, 57987, 0, 0 },
{ 57153, 57121, 0, 0 },
{ 57274, 57242, 0, 0 },
{ 28, 0, 0, 0 },
{ 0, 65508, 0, 0 },
{ 16, 0, 0, 0 },
{ 0, 65520, 0, 0 },
{ 26, 0, 0, 0 },
{ 0, 65510, 0, 0 },
{ 54793, 0, 0, 0 },
{ 61722, 0, 0, 0 },
{ 54809, 0, 0, 0 },
{ 0, 54741, 0, 0 },
{ 0, 54744, 0, 0 },
{ 54756, 0, 0, 0 },
{ 54787, 0, 0, 0 },
{ 54753, 0, 0, 0 },
{ 54754, 0, 0, 0 },
{ 54721, 0, 0, 0 },
{ 0, 58272, 0, 0 },
{ 1, 30270, 0, 0 },
{ 0, 30269, 65535, 0 },
{ 30204, 0, 0, 0 },
{ 23256, 0, 0, 0 },
{ 23228, 0, 0, 0 },
{ 23217, 0, 0, 0 },
{ 23221, 0, 0, 0 },
{ 23231, 0, 0, 0 },
{ 23278, 0, 0, 0 },
{ 23254, 0, 0, 0 },
{ 23275, 0, 0, 0 },
{ 928, 0, 0, 0 },
{ 0, 64608, 0, 0 },
{ 26672, 0, 0, 0 },
};
const uint8_t unicode::folding_index1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 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, 21, 22, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 23, 24, 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, 25, 0, 0, 26, 0, 0, 27, 28, 29, 27, 30, 31,
32, 33, 0, 0, 0, 0, 34, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 37, 38, 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, 39, 40, 27, 41,
42, 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, 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, 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, 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, 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, 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, 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, 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, 43,
44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 48, 49, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
};
const uint8_t unicode::folding_index2[] = {
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, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,
4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 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, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 8,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 9, 4, 4, 4, 4, 4, 10, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4,
4, 4, 4, 11, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 0, 0,
12, 13, 12, 13, 12, 13, 0, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12,
13, 12, 13, 12, 13, 0, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 14, 12,
13, 12, 13, 12, 13, 15, 16, 17, 12, 13, 12, 13, 18, 12, 13, 19, 19, 12,
13, 0, 20, 21, 22, 12, 13, 19, 23, 24, 25, 26, 12, 13, 27, 0, 25, 28,
29, 30, 12, 13, 12, 13, 12, 13, 31, 12, 13, 31, 0, 0, 12, 13, 31, 12,
13, 32, 32, 12, 13, 12, 13, 33, 12, 13, 0, 0, 12, 13, 0, 34, 0, 0,
0, 0, 35, 36, 37, 35, 36, 37, 35, 36, 37, 12, 13, 12, 13, 12, 13, 12,
13, 12, 13, 12, 13, 12, 13, 12, 13, 38, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 0, 35, 36, 37, 12, 13, 39, 40,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 41, 0, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 0, 0, 0, 0, 0, 0, 42, 12, 13, 43, 44, 45,
45, 12, 13, 46, 47, 48, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 49, 50,
51, 52, 53, 0, 54, 54, 0, 55, 0, 56, 57, 0, 0, 0, 54, 58, 0, 59,
0, 60, 61, 0, 62, 63, 61, 64, 65, 0, 0, 63, 0, 66, 67, 0, 0, 68,
0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 70, 0, 0, 70, 0, 0, 0, 71,
70, 72, 73, 73, 74, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 76, 77, 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, 78, 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, 12, 13, 12, 13,
0, 0, 12, 13, 0, 0, 0, 29, 29, 29, 0, 79, 0, 0, 0, 0, 0, 0,
80, 0, 81, 81, 81, 0, 82, 0, 83, 83, 0, 1, 84, 1, 1, 85, 1, 1,
86, 87, 88, 1, 89, 1, 1, 1, 90, 91, 0, 92, 1, 1, 93, 1, 1, 94,
1, 1, 95, 96, 96, 96, 0, 4, 97, 4, 4, 98, 4, 4, 99, 100, 101, 4,
102, 4, 4, 4, 103, 104, 105, 106, 4, 4, 107, 4, 4, 108, 4, 4, 109, 110,
110, 111, 112, 113, 0, 0, 0, 114, 115, 116, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 117, 118,
119, 120, 121, 122, 0, 12, 13, 123, 12, 13, 0, 41, 41, 41, 124, 124, 124, 124,
124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 1, 1, 125, 1, 126, 1,
1, 1, 1, 1, 1, 1, 1, 1, 127, 1, 1, 128, 129, 1, 1, 1, 1, 1,
1, 1, 130, 1, 1, 1, 1, 1, 4, 4, 131, 4, 132, 4, 4, 4, 4, 4,
4, 4, 4, 4, 133, 4, 4, 134, 135, 4, 4, 4, 4, 4, 4, 4, 136, 4,
4, 4, 4, 4, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
137, 137, 12, 13, 138, 139, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 140, 12, 13, 12, 13, 12, 13, 12, 13, 12,
13, 12, 13, 12, 13, 141, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 0, 142, 142, 142, 142, 142,
142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 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, 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, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 144, 0, 0, 0, 0, 0, 144,
0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 145, 145, 145, 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, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
147, 147, 147, 147, 147, 147, 0, 0, 148, 148, 148, 148, 148, 148, 0, 0, 149, 150,
151, 152, 153, 154, 155, 156, 157, 0, 0, 0, 0, 0, 0, 0, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 0, 0, 158, 158, 158, 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, 159, 0, 0, 0, 160, 0, 0,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 161, 162, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 0, 0, 0, 0, 0, 163, 0, 0, 164, 0, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 147, 147, 147, 147, 147, 147,
147, 147, 148, 148, 148, 148, 148, 148, 148, 148, 147, 147, 147, 147, 147, 147, 0, 0,
148, 148, 148, 148, 148, 148, 0, 0, 147, 147, 147, 147, 147, 147, 147, 147, 148, 148,
148, 148, 148, 148, 148, 148, 147, 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, 148,
148, 148, 148, 148, 147, 147, 147, 147, 147, 147, 0, 0, 148, 148, 148, 148, 148, 148,
0, 0, 0, 147, 0, 147, 0, 147, 0, 147, 0, 148, 0, 148, 0, 148, 0, 148,
147, 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 148, 148, 165, 165,
166, 166, 166, 166, 167, 167, 168, 168, 169, 169, 170, 170, 0, 0, 147, 147, 147, 147,
147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 148, 148, 147, 147, 147, 147, 147, 147,
147, 147, 148, 148, 148, 148, 148, 148, 148, 148, 147, 147, 147, 147, 147, 147, 147, 147,
148, 148, 148, 148, 148, 148, 148, 148, 147, 147, 0, 171, 0, 0, 0, 0, 148, 148,
172, 172, 173, 0, 174, 0, 0, 0, 0, 171, 0, 0, 0, 0, 175, 175, 175, 175,
173, 0, 0, 0, 147, 147, 0, 0, 0, 0, 0, 0, 148, 148, 176, 176, 0, 0,
0, 0, 147, 147, 0, 0, 0, 119, 0, 0, 148, 148, 177, 177, 123, 0, 0, 0,
0, 0, 0, 171, 0, 0, 0, 0, 178, 178, 179, 179, 173, 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,
180, 0, 0, 0, 181, 182, 0, 0, 0, 0, 0, 0, 183, 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, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
0, 0, 0, 12, 13, 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, 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, 187, 187, 187, 187, 187, 187, 187, 187,
187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 142, 142, 142, 142, 142,
142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
142, 142, 142, 142, 142, 0, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 0,
12, 13, 189, 190, 191, 192, 193, 12, 13, 12, 13, 12, 13, 194, 195, 196, 197, 0,
12, 13, 0, 12, 13, 0, 0, 0, 0, 0, 0, 0, 198, 198, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 0, 0, 0, 0,
0, 0, 0, 12, 13, 12, 13, 0, 0, 0, 12, 13, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 0, 199, 0, 0, 0, 0, 0, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 200, 201, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
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, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 0, 0, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 12, 13, 202,
12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 0, 0, 0, 12, 13, 203, 0, 0,
12, 13, 12, 13, 0, 0, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13, 12, 13,
12, 13, 12, 13, 12, 13, 12, 13, 204, 205, 206, 207, 204, 0, 208, 209, 210, 211,
12, 13, 12, 13, 12, 13, 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, 212, 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, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 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, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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,
};
bool
js::unicode::IsIdentifierStartNonBMP(uint32_t codePoint)
{
if (codePoint >= 0x10000 && codePoint <= 0x1000B) { return true;
}
if (codePoint >= 0x1000D && codePoint <= 0x10026) { return true;
}
if (codePoint >= 0x10028 && codePoint <= 0x1003A) { return true;
}
if (codePoint >= 0x1003C && codePoint <= 0x1003D) { return true;
}
if (codePoint >= 0x1003F && codePoint <= 0x1004D) { return true;
}
if (codePoint >= 0x10050 && codePoint <= 0x1005D) { return true;
}
if (codePoint >= 0x10080 && codePoint <= 0x100FA) { return true;
}
if (codePoint >= 0x10140 && codePoint <= 0x10174) { return true;
}
if (codePoint >= 0x10280 && codePoint <= 0x1029C) { return true;
}
if (codePoint >= 0x102A0 && codePoint <= 0x102D0) { return true;
}
if (codePoint >= 0x10300 && codePoint <= 0x1031F) { return true;
}
if (codePoint >= 0x1032D && codePoint <= 0x1034A) { return true;
}
if (codePoint >= 0x10350 && codePoint <= 0x10375) { return true;
}
if (codePoint >= 0x10380 && codePoint <= 0x1039D) { return true;
}
if (codePoint >= 0x103A0 && codePoint <= 0x103C3) { return true;
}
if (codePoint >= 0x103C8 && codePoint <= 0x103CF) { return true;
}
if (codePoint >= 0x103D1 && codePoint <= 0x103D5) { return true;
}
if (codePoint >= 0x10400 && codePoint <= 0x1049D) { return true;
}
if (codePoint >= 0x104B0 && codePoint <= 0x104D3) { return true;
}
if (codePoint >= 0x104D8 && codePoint <= 0x104FB) { return true;
}
if (codePoint >= 0x10500 && codePoint <= 0x10527) { return true;
}
if (codePoint >= 0x10530 && codePoint <= 0x10563) { return true;
}
if (codePoint >= 0x10600 && codePoint <= 0x10736) { return true;
}
if (codePoint >= 0x10740 && codePoint <= 0x10755) { return true;
}
if (codePoint >= 0x10760 && codePoint <= 0x10767) { return true;
}
if (codePoint >= 0x10800 && codePoint <= 0x10805) { return true;
}
if (codePoint >= 0x10808 && codePoint <= 0x10808) { return true;
}
if (codePoint >= 0x1080A && codePoint <= 0x10835) { return true;
}
if (codePoint >= 0x10837 && codePoint <= 0x10838) { return true;
}
if (codePoint >= 0x1083C && codePoint <= 0x1083C) { return true;
}
if (codePoint >= 0x1083F && codePoint <= 0x10855) { return true;
}
if (codePoint >= 0x10860 && codePoint <= 0x10876) { return true;
}
if (codePoint >= 0x10880 && codePoint <= 0x1089E) { return true;
}
if (codePoint >= 0x108E0 && codePoint <= 0x108F2) { return true;
}
if (codePoint >= 0x108F4 && codePoint <= 0x108F5) { return true;
}
if (codePoint >= 0x10900 && codePoint <= 0x10915) { return true;
}
if (codePoint >= 0x10920 && codePoint <= 0x10939) { return true;
}
if (codePoint >= 0x10980 && codePoint <= 0x109B7) { return true;
}
if (codePoint >= 0x109BE && codePoint <= 0x109BF) { return true;
}
if (codePoint >= 0x10A00 && codePoint <= 0x10A00) { return true;
}
if (codePoint >= 0x10A10 && codePoint <= 0x10A13) { return true;
}
if (codePoint >= 0x10A15 && codePoint <= 0x10A17) { return true;
}
if (codePoint >= 0x10A19 && codePoint <= 0x10A35) { return true;
}
if (codePoint >= 0x10A60 && codePoint <= 0x10A7C) { return true;
}
if (codePoint >= 0x10A80 && codePoint <= 0x10A9C) { return true;
}
if (codePoint >= 0x10AC0 && codePoint <= 0x10AC7) { return true;
}
if (codePoint >= 0x10AC9 && codePoint <= 0x10AE4) { return true;
}
if (codePoint >= 0x10B00 && codePoint <= 0x10B35) { return true;
}
if (codePoint >= 0x10B40 && codePoint <= 0x10B55) { return true;
}
if (codePoint >= 0x10B60 && codePoint <= 0x10B72) { return true;
}
if (codePoint >= 0x10B80 && codePoint <= 0x10B91) { return true;
}
if (codePoint >= 0x10C00 && codePoint <= 0x10C48) { return true;
}
if (codePoint >= 0x10C80 && codePoint <= 0x10CB2) { return true;
}
if (codePoint >= 0x10CC0 && codePoint <= 0x10CF2) { return true;
}
if (codePoint >= 0x10D00 && codePoint <= 0x10D23) { return true;
}
if (codePoint >= 0x10F00 && codePoint <= 0x10F1C) { return true;
}
if (codePoint >= 0x10F27 && codePoint <= 0x10F27) { return true;
}
if (codePoint >= 0x10F30 && codePoint <= 0x10F45) { return true;
}
if (codePoint >= 0x11003 && codePoint <= 0x11037) { return true;
}
if (codePoint >= 0x11083 && codePoint <= 0x110AF) { return true;
}
if (codePoint >= 0x110D0 && codePoint <= 0x110E8) { return true;
}
if (codePoint >= 0x11103 && codePoint <= 0x11126) { return true;
}
if (codePoint >= 0x11144 && codePoint <= 0x11144) { return true;
}
if (codePoint >= 0x11150 && codePoint <= 0x11172) { return true;
}
if (codePoint >= 0x11176 && codePoint <= 0x11176) { return true;
}
if (codePoint >= 0x11183 && codePoint <= 0x111B2) { return true;
}
if (codePoint >= 0x111C1 && codePoint <= 0x111C4) { return true;
}
if (codePoint >= 0x111DA && codePoint <= 0x111DA) { return true;
}
if (codePoint >= 0x111DC && codePoint <= 0x111DC) { return true;
}
if (codePoint >= 0x11200 && codePoint <= 0x11211) { return true;
}
if (codePoint >= 0x11213 && codePoint <= 0x1122B) { return true;
}
if (codePoint >= 0x11280 && codePoint <= 0x11286) { return true;
}
if (codePoint >= 0x11288 && codePoint <= 0x11288) { return true;
}
if (codePoint >= 0x1128A && codePoint <= 0x1128D) { return true;
}
if (codePoint >= 0x1128F && codePoint <= 0x1129D) { return true;
}
if (codePoint >= 0x1129F && codePoint <= 0x112A8) { return true;
}
if (codePoint >= 0x112B0 && codePoint <= 0x112DE) { return true;
}
if (codePoint >= 0x11305 && codePoint <= 0x1130C) { return true;
}
if (codePoint >= 0x1130F && codePoint <= 0x11310) { return true;
}
if (codePoint >= 0x11313 && codePoint <= 0x11328) { return true;
}
if (codePoint >= 0x1132A && codePoint <= 0x11330) { return true;
}
if (codePoint >= 0x11332 && codePoint <= 0x11333) { return true;
}
if (codePoint >= 0x11335 && codePoint <= 0x11339) { return true;
}
if (codePoint >= 0x1133D && codePoint <= 0x1133D) { return true;
}
if (codePoint >= 0x11350 && codePoint <= 0x11350) { return true;
}
if (codePoint >= 0x1135D && codePoint <= 0x11361) { return true;
}
if (codePoint >= 0x11400 && codePoint <= 0x11434) { return true;
}
if (codePoint >= 0x11447 && codePoint <= 0x1144A) { return true;
}
if (codePoint >= 0x11480 && codePoint <= 0x114AF) { return true;
}
if (codePoint >= 0x114C4 && codePoint <= 0x114C5) { return true;
}
if (codePoint >= 0x114C7 && codePoint <= 0x114C7) { return true;
}
if (codePoint >= 0x11580 && codePoint <= 0x115AE) { return true;
}
if (codePoint >= 0x115D8 && codePoint <= 0x115DB) { return true;
}
if (codePoint >= 0x11600 && codePoint <= 0x1162F) { return true;
}
if (codePoint >= 0x11644 && codePoint <= 0x11644) { return true;
}
if (codePoint >= 0x11680 && codePoint <= 0x116AA) { return true;
}
if (codePoint >= 0x11700 && codePoint <= 0x1171A) { return true;
}
if (codePoint >= 0x11800 && codePoint <= 0x1182B) { return true;
}
if (codePoint >= 0x118A0 && codePoint <= 0x118DF) { return true;
}
if (codePoint >= 0x118FF && codePoint <= 0x118FF) { return true;
}
if (codePoint >= 0x11A00 && codePoint <= 0x11A00) { return true;
}
if (codePoint >= 0x11A0B && codePoint <= 0x11A32) { return true;
}
if (codePoint >= 0x11A3A && codePoint <= 0x11A3A) { return true;
}
if (codePoint >= 0x11A50 && codePoint <= 0x11A50) { return true;
}
if (codePoint >= 0x11A5C && codePoint <= 0x11A83) { return true;
}
if (codePoint >= 0x11A86 && codePoint <= 0x11A89) { return true;
}
if (codePoint >= 0x11A9D && codePoint <= 0x11A9D) { return true;
}
if (codePoint >= 0x11AC0 && codePoint <= 0x11AF8) { return true;
}
if (codePoint >= 0x11C00 && codePoint <= 0x11C08) { return true;
}
if (codePoint >= 0x11C0A && codePoint <= 0x11C2E) { return true;
}
if (codePoint >= 0x11C40 && codePoint <= 0x11C40) { return true;
}
if (codePoint >= 0x11C72 && codePoint <= 0x11C8F) { return true;
}
if (codePoint >= 0x11D00 && codePoint <= 0x11D06) { return true;
}
if (codePoint >= 0x11D08 && codePoint <= 0x11D09) { return true;
}
if (codePoint >= 0x11D0B && codePoint <= 0x11D30) { return true;
}
if (codePoint >= 0x11D46 && codePoint <= 0x11D46) { return true;
}
if (codePoint >= 0x11D60 && codePoint <= 0x11D65) { return true;
}
if (codePoint >= 0x11D67 && codePoint <= 0x11D68) { return true;
}
if (codePoint >= 0x11D6A && codePoint <= 0x11D89) { return true;
}
if (codePoint >= 0x11D98 && codePoint <= 0x11D98) { return true;
}
if (codePoint >= 0x11EE0 && codePoint <= 0x11EF2) { return true;
}
if (codePoint >= 0x12000 && codePoint <= 0x12399) { return true;
}
if (codePoint >= 0x12400 && codePoint <= 0x1246E) { return true;
}
if (codePoint >= 0x12480 && codePoint <= 0x12543) { return true;
}
if (codePoint >= 0x13000 && codePoint <= 0x1342E) { return true;
}
if (codePoint >= 0x14400 && codePoint <= 0x14646) { return true;
}
if (codePoint >= 0x16800 && codePoint <= 0x16A38) { return true;
}
if (codePoint >= 0x16A40 && codePoint <= 0x16A5E) { return true;
}
if (codePoint >= 0x16AD0 && codePoint <= 0x16AED) { return true;
}
if (codePoint >= 0x16B00 && codePoint <= 0x16B2F) { return true;
}
if (codePoint >= 0x16B40 && codePoint <= 0x16B43) { return true;
}
if (codePoint >= 0x16B63 && codePoint <= 0x16B77) { return true;
}
if (codePoint >= 0x16B7D && codePoint <= 0x16B8F) { return true;
}
if (codePoint >= 0x16E40 && codePoint <= 0x16E7F) { return true;
}
if (codePoint >= 0x16F00 && codePoint <= 0x16F44) { return true;
}
if (codePoint >= 0x16F50 && codePoint <= 0x16F50) { return true;
}
if (codePoint >= 0x16F93 && codePoint <= 0x16F9F) { return true;
}
if (codePoint >= 0x16FE0 && codePoint <= 0x16FE1) { return true;
}
if (codePoint >= 0x17000 && codePoint <= 0x187F1) { return true;
}
if (codePoint >= 0x18800 && codePoint <= 0x18AF2) { return true;
}
if (codePoint >= 0x1B000 && codePoint <= 0x1B11E) { return true;
}
if (codePoint >= 0x1B170 && codePoint <= 0x1B2FB) { return true;
}
if (codePoint >= 0x1BC00 && codePoint <= 0x1BC6A) { return true;
}
if (codePoint >= 0x1BC70 && codePoint <= 0x1BC7C) { return true;
}
if (codePoint >= 0x1BC80 && codePoint <= 0x1BC88) { return true;
}
if (codePoint >= 0x1BC90 && codePoint <= 0x1BC99) { return true;
}
if (codePoint >= 0x1D400 && codePoint <= 0x1D454) { return true;
}
if (codePoint >= 0x1D456 && codePoint <= 0x1D49C) { return true;
}
if (codePoint >= 0x1D49E && codePoint <= 0x1D49F) { return true;
}
if (codePoint >= 0x1D4A2 && codePoint <= 0x1D4A2) { return true;
}
if (codePoint >= 0x1D4A5 && codePoint <= 0x1D4A6) { return true;
}
if (codePoint >= 0x1D4A9 && codePoint <= 0x1D4AC) { return true;
}
if (codePoint >= 0x1D4AE && codePoint <= 0x1D4B9) { return true;
}
if (codePoint >= 0x1D4BB && codePoint <= 0x1D4BB) { return true;
}
if (codePoint >= 0x1D4BD && codePoint <= 0x1D4C3) { return true;
}
if (codePoint >= 0x1D4C5 && codePoint <= 0x1D505) { return true;
}
if (codePoint >= 0x1D507 && codePoint <= 0x1D50A) { return true;
}
if (codePoint >= 0x1D50D && codePoint <= 0x1D514) { return true;
}
if (codePoint >= 0x1D516 && codePoint <= 0x1D51C) { return true;
}
if (codePoint >= 0x1D51E && codePoint <= 0x1D539) { return true;
}
if (codePoint >= 0x1D53B && codePoint <= 0x1D53E) { return true;
}
if (codePoint >= 0x1D540 && codePoint <= 0x1D544) { return true;
}
if (codePoint >= 0x1D546 && codePoint <= 0x1D546) { return true;
}
if (codePoint >= 0x1D54A && codePoint <= 0x1D550) { return true;
}
if (codePoint >= 0x1D552 && codePoint <= 0x1D6A5) { return true;
}
if (codePoint >= 0x1D6A8 && codePoint <= 0x1D6C0) { return true;
}
if (codePoint >= 0x1D6C2 && codePoint <= 0x1D6DA) { return true;
}
if (codePoint >= 0x1D6DC && codePoint <= 0x1D6FA) { return true;
}
if (codePoint >= 0x1D6FC && codePoint <= 0x1D714) { return true;
}
if (codePoint >= 0x1D716 && codePoint <= 0x1D734) { return true;
}
if (codePoint >= 0x1D736 && codePoint <= 0x1D74E) { return true;
}
if (codePoint >= 0x1D750 && codePoint <= 0x1D76E) { return true;
}
if (codePoint >= 0x1D770 && codePoint <= 0x1D788) { return true;
}
if (codePoint >= 0x1D78A && codePoint <= 0x1D7A8) { return true;
}
if (codePoint >= 0x1D7AA && codePoint <= 0x1D7C2) { return true;
}
if (codePoint >= 0x1D7C4 && codePoint <= 0x1D7CB) { return true;
}
if (codePoint >= 0x1E800 && codePoint <= 0x1E8C4) { return true;
}
if (codePoint >= 0x1E900 && codePoint <= 0x1E943) { return true;
}
if (codePoint >= 0x1EE00 && codePoint <= 0x1EE03) { return true;
}
if (codePoint >= 0x1EE05 && codePoint <= 0x1EE1F) { return true;
}
if (codePoint >= 0x1EE21 && codePoint <= 0x1EE22) { return true;
}
if (codePoint >= 0x1EE24 && codePoint <= 0x1EE24) { return true;
}
if (codePoint >= 0x1EE27 && codePoint <= 0x1EE27) { return true;
}
if (codePoint >= 0x1EE29 && codePoint <= 0x1EE32) { return true;
}
if (codePoint >= 0x1EE34 && codePoint <= 0x1EE37) { return true;
}
if (codePoint >= 0x1EE39 && codePoint <= 0x1EE39) { return true;
}
if (codePoint >= 0x1EE3B && codePoint <= 0x1EE3B) { return true;
}
if (codePoint >= 0x1EE42 && codePoint <= 0x1EE42) { return true;
}
if (codePoint >= 0x1EE47 && codePoint <= 0x1EE47) { return true;
}
if (codePoint >= 0x1EE49 && codePoint <= 0x1EE49) { return true;
}
if (codePoint >= 0x1EE4B && codePoint <= 0x1EE4B) { return true;
}
if (codePoint >= 0x1EE4D && codePoint <= 0x1EE4F) { return true;
}
if (codePoint >= 0x1EE51 && codePoint <= 0x1EE52) { return true;
}
if (codePoint >= 0x1EE54 && codePoint <= 0x1EE54) { return true;
}
if (codePoint >= 0x1EE57 && codePoint <= 0x1EE57) { return true;
}
if (codePoint >= 0x1EE59 && codePoint <= 0x1EE59) { return true;
}
if (codePoint >= 0x1EE5B && codePoint <= 0x1EE5B) { return true;
}
if (codePoint >= 0x1EE5D && codePoint <= 0x1EE5D) { return true;
}
if (codePoint >= 0x1EE5F && codePoint <= 0x1EE5F) { return true;
}
if (codePoint >= 0x1EE61 && codePoint <= 0x1EE62) { return true;
}
if (codePoint >= 0x1EE64 && codePoint <= 0x1EE64) { return true;
}
if (codePoint >= 0x1EE67 && codePoint <= 0x1EE6A) { return true;
}
if (codePoint >= 0x1EE6C && codePoint <= 0x1EE72) { return true;
}
if (codePoint >= 0x1EE74 && codePoint <= 0x1EE77) { return true;
}
if (codePoint >= 0x1EE79 && codePoint <= 0x1EE7C) { return true;
}
if (codePoint >= 0x1EE7E && codePoint <= 0x1EE7E) { return true;
}
if (codePoint >= 0x1EE80 && codePoint <= 0x1EE89) { return true;
}
if (codePoint >= 0x1EE8B && codePoint <= 0x1EE9B) { return true;
}
if (codePoint >= 0x1EEA1 && codePoint <= 0x1EEA3) { return true;
}
if (codePoint >= 0x1EEA5 && codePoint <= 0x1EEA9) { return true;
}
if (codePoint >= 0x1EEAB && codePoint <= 0x1EEBB) { return true;
}
if (codePoint >= 0x20000 && codePoint <= 0x2A6D6) { return true;
}
if (codePoint >= 0x2A700 && codePoint <= 0x2B734) { return true;
}
if (codePoint >= 0x2B740 && codePoint <= 0x2B81D) { return true;
}
if (codePoint >= 0x2B820 && codePoint <= 0x2CEA1) { return true;
}
if (codePoint >= 0x2CEB0 && codePoint <= 0x2EBE0) { return true;
}
if (codePoint >= 0x2F800 && codePoint <= 0x2FA1D) { return true;
}
return false;
}
bool
js::unicode::IsIdentifierPartNonBMP(uint32_t codePoint)
{
if (codePoint >= 0x10000 && codePoint <= 0x1000B) { return true;
}
if (codePoint >= 0x1000D && codePoint <= 0x10026) { return true;
}
if (codePoint >= 0x10028 && codePoint <= 0x1003A) { return true;
}
if (codePoint >= 0x1003C && codePoint <= 0x1003D) { return true;
}
if (codePoint >= 0x1003F && codePoint <= 0x1004D) { return true;
}
if (codePoint >= 0x10050 && codePoint <= 0x1005D) { return true;
}
if (codePoint >= 0x10080 && codePoint <= 0x100FA) { return true;
}
if (codePoint >= 0x10140 && codePoint <= 0x10174) { return true;
}
if (codePoint >= 0x101FD && codePoint <= 0x101FD) { return true;
}
if (codePoint >= 0x10280 && codePoint <= 0x1029C) { return true;
}
if (codePoint >= 0x102A0 && codePoint <= 0x102D0) { return true;
}
if (codePoint >= 0x102E0 && codePoint <= 0x102E0) { return true;
}
if (codePoint >= 0x10300 && codePoint <= 0x1031F) { return true;
}
if (codePoint >= 0x1032D && codePoint <= 0x1034A) { return true;
}
if (codePoint >= 0x10350 && codePoint <= 0x1037A) { return true;
}
if (codePoint >= 0x10380 && codePoint <= 0x1039D) { return true;
}
if (codePoint >= 0x103A0 && codePoint <= 0x103C3) { return true;
}
if (codePoint >= 0x103C8 && codePoint <= 0x103CF) { return true;
}
if (codePoint >= 0x103D1 && codePoint <= 0x103D5) { return true;
}
if (codePoint >= 0x10400 && codePoint <= 0x1049D) { return true;
}
if (codePoint >= 0x104A0 && codePoint <= 0x104A9) { return true;
}
if (codePoint >= 0x104B0 && codePoint <= 0x104D3) { return true;
}
if (codePoint >= 0x104D8 && codePoint <= 0x104FB) { return true;
}
if (codePoint >= 0x10500 && codePoint <= 0x10527) { return true;
}
if (codePoint >= 0x10530 && codePoint <= 0x10563) { return true;
}
if (codePoint >= 0x10600 && codePoint <= 0x10736) { return true;
}
if (codePoint >= 0x10740 && codePoint <= 0x10755) { return true;
}
if (codePoint >= 0x10760 && codePoint <= 0x10767) { return true;
}
if (codePoint >= 0x10800 && codePoint <= 0x10805) { return true;
}
if (codePoint >= 0x10808 && codePoint <= 0x10808) { return true;
}
if (codePoint >= 0x1080A && codePoint <= 0x10835) { return true;
}
if (codePoint >= 0x10837 && codePoint <= 0x10838) { return true;
}
if (codePoint >= 0x1083C && codePoint <= 0x1083C) { return true;
}
if (codePoint >= 0x1083F && codePoint <= 0x10855) { return true;
}
if (codePoint >= 0x10860 && codePoint <= 0x10876) { return true;
}
if (codePoint >= 0x10880 && codePoint <= 0x1089E) { return true;
}
if (codePoint >= 0x108E0 && codePoint <= 0x108F2) { return true;
}
if (codePoint >= 0x108F4 && codePoint <= 0x108F5) { return true;
}
if (codePoint >= 0x10900 && codePoint <= 0x10915) { return true;
}
if (codePoint >= 0x10920 && codePoint <= 0x10939) { return true;
}
if (codePoint >= 0x10980 && codePoint <= 0x109B7) { return true;
}
if (codePoint >= 0x109BE && codePoint <= 0x109BF) { return true;
}
if (codePoint >= 0x10A00 && codePoint <= 0x10A03) { return true;
}
if (codePoint >= 0x10A05 && codePoint <= 0x10A06) { return true;
}
if (codePoint >= 0x10A0C && codePoint <= 0x10A13) { return true;
}
if (codePoint >= 0x10A15 && codePoint <= 0x10A17) { return true;
}
if (codePoint >= 0x10A19 && codePoint <= 0x10A35) { return true;
}
if (codePoint >= 0x10A38 && codePoint <= 0x10A3A) { return true;
}
if (codePoint >= 0x10A3F && codePoint <= 0x10A3F) { return true;
}
if (codePoint >= 0x10A60 && codePoint <= 0x10A7C) { return true;
}
if (codePoint >= 0x10A80 && codePoint <= 0x10A9C) { return true;
}
if (codePoint >= 0x10AC0 && codePoint <= 0x10AC7) { return true;
}
if (codePoint >= 0x10AC9 && codePoint <= 0x10AE6) { return true;
}
if (codePoint >= 0x10B00 && codePoint <= 0x10B35) { return true;
}
if (codePoint >= 0x10B40 && codePoint <= 0x10B55) { return true;
}
if (codePoint >= 0x10B60 && codePoint <= 0x10B72) { return true;
}
if (codePoint >= 0x10B80 && codePoint <= 0x10B91) { return true;
}
if (codePoint >= 0x10C00 && codePoint <= 0x10C48) { return true;
}
if (codePoint >= 0x10C80 && codePoint <= 0x10CB2) { return true;
}
if (codePoint >= 0x10CC0 && codePoint <= 0x10CF2) { return true;
}
if (codePoint >= 0x10D00 && codePoint <= 0x10D27) { return true;
}
if (codePoint >= 0x10D30 && codePoint <= 0x10D39) { return true;
}
if (codePoint >= 0x10F00 && codePoint <= 0x10F1C) { return true;
}
if (codePoint >= 0x10F27 && codePoint <= 0x10F27) { return true;
}
if (codePoint >= 0x10F30 && codePoint <= 0x10F50) { return true;
}
if (codePoint >= 0x11000 && codePoint <= 0x11046) { return true;
}
if (codePoint >= 0x11066 && codePoint <= 0x1106F) { return true;
}
if (codePoint >= 0x1107F && codePoint <= 0x110BA) { return true;
}
if (codePoint >= 0x110D0 && codePoint <= 0x110E8) { return true;
}
if (codePoint >= 0x110F0 && codePoint <= 0x110F9) { return true;
}
if (codePoint >= 0x11100 && codePoint <= 0x11134) { return true;
}
if (codePoint >= 0x11136 && codePoint <= 0x1113F) { return true;
}
if (codePoint >= 0x11144 && codePoint <= 0x11146) { return true;
}
if (codePoint >= 0x11150 && codePoint <= 0x11173) { return true;
}
if (codePoint >= 0x11176 && codePoint <= 0x11176) { return true;
}
if (codePoint >= 0x11180 && codePoint <= 0x111C4) { return true;
}
if (codePoint >= 0x111C9 && codePoint <= 0x111CC) { return true;
}
if (codePoint >= 0x111D0 && codePoint <= 0x111DA) { return true;
}
if (codePoint >= 0x111DC && codePoint <= 0x111DC) { return true;
}
if (codePoint >= 0x11200 && codePoint <= 0x11211) { return true;
}
if (codePoint >= 0x11213 && codePoint <= 0x11237) { return true;
}
if (codePoint >= 0x1123E && codePoint <= 0x1123E) { return true;
}
if (codePoint >= 0x11280 && codePoint <= 0x11286) { return true;
}
if (codePoint >= 0x11288 && codePoint <= 0x11288) { return true;
}
if (codePoint >= 0x1128A && codePoint <= 0x1128D) { return true;
}
if (codePoint >= 0x1128F && codePoint <= 0x1129D) { return true;
}
if (codePoint >= 0x1129F && codePoint <= 0x112A8) { return true;
}
if (codePoint >= 0x112B0 && codePoint <= 0x112EA) { return true;
}
if (codePoint >= 0x112F0 && codePoint <= 0x112F9) { return true;
}
if (codePoint >= 0x11300 && codePoint <= 0x11303) { return true;
}
if (codePoint >= 0x11305 && codePoint <= 0x1130C) { return true;
}
if (codePoint >= 0x1130F && codePoint <= 0x11310) { return true;
}
if (codePoint >= 0x11313 && codePoint <= 0x11328) { return true;
}
if (codePoint >= 0x1132A && codePoint <= 0x11330) { return true;
}
if (codePoint >= 0x11332 && codePoint <= 0x11333) { return true;
}
if (codePoint >= 0x11335 && codePoint <= 0x11339) { return true;
}
if (codePoint >= 0x1133B && codePoint <= 0x11344) { return true;
}
if (codePoint >= 0x11347 && codePoint <= 0x11348) { return true;
}
if (codePoint >= 0x1134B && codePoint <= 0x1134D) { return true;
}
if (codePoint >= 0x11350 && codePoint <= 0x11350) { return true;
}
if (codePoint >= 0x11357 && codePoint <= 0x11357) { return true;
}
if (codePoint >= 0x1135D && codePoint <= 0x11363) { return true;
}
if (codePoint >= 0x11366 && codePoint <= 0x1136C) { return true;
}
if (codePoint >= 0x11370 && codePoint <= 0x11374) { return true;
}
if (codePoint >= 0x11400 && codePoint <= 0x1144A) { return true;
}
if (codePoint >= 0x11450 && codePoint <= 0x11459) { return true;
}
if (codePoint >= 0x1145E && codePoint <= 0x1145E) { return true;
}
if (codePoint >= 0x11480 && codePoint <= 0x114C5) { return true;
}
if (codePoint >= 0x114C7 && codePoint <= 0x114C7) { return true;
}
if (codePoint >= 0x114D0 && codePoint <= 0x114D9) { return true;
}
if (codePoint >= 0x11580 && codePoint <= 0x115B5) { return true;
}
if (codePoint >= 0x115B8 && codePoint <= 0x115C0) { return true;
}
if (codePoint >= 0x115D8 && codePoint <= 0x115DD) { return true;
}
if (codePoint >= 0x11600 && codePoint <= 0x11640) { return true;
}
if (codePoint >= 0x11644 && codePoint <= 0x11644) { return true;
}
if (codePoint >= 0x11650 && codePoint <= 0x11659) { return true;
}
if (codePoint >= 0x11680 && codePoint <= 0x116B7) { return true;
}
if (codePoint >= 0x116C0 && codePoint <= 0x116C9) { return true;
}
if (codePoint >= 0x11700 && codePoint <= 0x1171A) { return true;
}
if (codePoint >= 0x1171D && codePoint <= 0x1172B) { return true;
}
if (codePoint >= 0x11730 && codePoint <= 0x11739) { return true;
}
if (codePoint >= 0x11800 && codePoint <= 0x1183A) { return true;
}
if (codePoint >= 0x118A0 && codePoint <= 0x118E9) { return true;
}
if (codePoint >= 0x118FF && codePoint <= 0x118FF) { return true;
}
if (codePoint >= 0x11A00 && codePoint <= 0x11A3E) { return true;
}
if (codePoint >= 0x11A47 && codePoint <= 0x11A47) { return true;
}
if (codePoint >= 0x11A50 && codePoint <= 0x11A83) { return true;
}
if (codePoint >= 0x11A86 && codePoint <= 0x11A99) { return true;
}
if (codePoint >= 0x11A9D && codePoint <= 0x11A9D) { return true;
}
if (codePoint >= 0x11AC0 && codePoint <= 0x11AF8) { return true;
}
if (codePoint >= 0x11C00 && codePoint <= 0x11C08) { return true;
}
if (codePoint >= 0x11C0A && codePoint <= 0x11C36) { return true;
}
if (codePoint >= 0x11C38 && codePoint <= 0x11C40) { return true;
}
if (codePoint >= 0x11C50 && codePoint <= 0x11C59) { return true;
}
if (codePoint >= 0x11C72 && codePoint <= 0x11C8F) { return true;
}
if (codePoint >= 0x11C92 && codePoint <= 0x11CA7) { return true;
}
if (codePoint >= 0x11CA9 && codePoint <= 0x11CB6) { return true;
}
if (codePoint >= 0x11D00 && codePoint <= 0x11D06) { return true;
}
if (codePoint >= 0x11D08 && codePoint <= 0x11D09) { return true;
}
if (codePoint >= 0x11D0B && codePoint <= 0x11D36) { return true;
}
if (codePoint >= 0x11D3A && codePoint <= 0x11D3A) { return true;
}
if (codePoint >= 0x11D3C && codePoint <= 0x11D3D) { return true;
}
if (codePoint >= 0x11D3F && codePoint <= 0x11D47) { return true;
}
if (codePoint >= 0x11D50 && codePoint <= 0x11D59) { return true;
}
if (codePoint >= 0x11D60 && codePoint <= 0x11D65) { return true;
}
if (codePoint >= 0x11D67 && codePoint <= 0x11D68) { return true;
}
if (codePoint >= 0x11D6A && codePoint <= 0x11D8E) { return true;
}
if (codePoint >= 0x11D90 && codePoint <= 0x11D91) { return true;
}
if (codePoint >= 0x11D93 && codePoint <= 0x11D98) { return true;
}
if (codePoint >= 0x11DA0 && codePoint <= 0x11DA9) { return true;
}
if (codePoint >= 0x11EE0 && codePoint <= 0x11EF6) { return true;
}
if (codePoint >= 0x12000 && codePoint <= 0x12399) { return true;
}
if (codePoint >= 0x12400 && codePoint <= 0x1246E) { return true;
}
if (codePoint >= 0x12480 && codePoint <= 0x12543) { return true;
}
if (codePoint >= 0x13000 && codePoint <= 0x1342E) { return true;
}
if (codePoint >= 0x14400 && codePoint <= 0x14646) { return true;
}
if (codePoint >= 0x16800 && codePoint <= 0x16A38) { return true;
}
if (codePoint >= 0x16A40 && codePoint <= 0x16A5E) { return true;
}
if (codePoint >= 0x16A60 && codePoint <= 0x16A69) { return true;
}
if (codePoint >= 0x16AD0 && codePoint <= 0x16AED) { return true;
}
if (codePoint >= 0x16AF0 && codePoint <= 0x16AF4) { return true;
}
if (codePoint >= 0x16B00 && codePoint <= 0x16B36) { return true;
}
if (codePoint >= 0x16B40 && codePoint <= 0x16B43) { return true;
}
if (codePoint >= 0x16B50 && codePoint <= 0x16B59) { return true;
}
if (codePoint >= 0x16B63 && codePoint <= 0x16B77) { return true;
}
if (codePoint >= 0x16B7D && codePoint <= 0x16B8F) { return true;
}
if (codePoint >= 0x16E40 && codePoint <= 0x16E7F) { return true;
}
if (codePoint >= 0x16F00 && codePoint <= 0x16F44) { return true;
}
if (codePoint >= 0x16F50 && codePoint <= 0x16F7E) { return true;
}
if (codePoint >= 0x16F8F && codePoint <= 0x16F9F) { return true;
}
if (codePoint >= 0x16FE0 && codePoint <= 0x16FE1) { return true;
}
if (codePoint >= 0x17000 && codePoint <= 0x187F1) { return true;
}
if (codePoint >= 0x18800 && codePoint <= 0x18AF2) { return true;
}
if (codePoint >= 0x1B000 && codePoint <= 0x1B11E) { return true;
}
if (codePoint >= 0x1B170 && codePoint <= 0x1B2FB) { return true;
}
if (codePoint >= 0x1BC00 && codePoint <= 0x1BC6A) { return true;
}
if (codePoint >= 0x1BC70 && codePoint <= 0x1BC7C) { return true;
}
if (codePoint >= 0x1BC80 && codePoint <= 0x1BC88) { return true;
}
if (codePoint >= 0x1BC90 && codePoint <= 0x1BC99) { return true;
}
if (codePoint >= 0x1BC9D && codePoint <= 0x1BC9E) { return true;
}
if (codePoint >= 0x1D165 && codePoint <= 0x1D169) { return true;
}
if (codePoint >= 0x1D16D && codePoint <= 0x1D172) { return true;
}
if (codePoint >= 0x1D17B && codePoint <= 0x1D182) { return true;
}
if (codePoint >= 0x1D185 && codePoint <= 0x1D18B) { return true;
}
if (codePoint >= 0x1D1AA && codePoint <= 0x1D1AD) { return true;
}
if (codePoint >= 0x1D242 && codePoint <= 0x1D244) { return true;
}
if (codePoint >= 0x1D400 && codePoint <= 0x1D454) { return true;
}
if (codePoint >= 0x1D456 && codePoint <= 0x1D49C) { return true;
}
if (codePoint >= 0x1D49E && codePoint <= 0x1D49F) { return true;
}
if (codePoint >= 0x1D4A2 && codePoint <= 0x1D4A2) { return true;
}
if (codePoint >= 0x1D4A5 && codePoint <= 0x1D4A6) { return true;
}
if (codePoint >= 0x1D4A9 && codePoint <= 0x1D4AC) { return true;
}
if (codePoint >= 0x1D4AE && codePoint <= 0x1D4B9) { return true;
}
if (codePoint >= 0x1D4BB && codePoint <= 0x1D4BB) { return true;
}
if (codePoint >= 0x1D4BD && codePoint <= 0x1D4C3) { return true;
}
if (codePoint >= 0x1D4C5 && codePoint <= 0x1D505) { return true;
}
if (codePoint >= 0x1D507 && codePoint <= 0x1D50A) { return true;
}
if (codePoint >= 0x1D50D && codePoint <= 0x1D514) { return true;
}
if (codePoint >= 0x1D516 && codePoint <= 0x1D51C) { return true;
}
if (codePoint >= 0x1D51E && codePoint <= 0x1D539) { return true;
}
if (codePoint >= 0x1D53B && codePoint <= 0x1D53E) { return true;
}
if (codePoint >= 0x1D540 && codePoint <= 0x1D544) { return true;
}
if (codePoint >= 0x1D546 && codePoint <= 0x1D546) { return true;
}
if (codePoint >= 0x1D54A && codePoint <= 0x1D550) { return true;
}
if (codePoint >= 0x1D552 && codePoint <= 0x1D6A5) { return true;
}
if (codePoint >= 0x1D6A8 && codePoint <= 0x1D6C0) { return true;
}
if (codePoint >= 0x1D6C2 && codePoint <= 0x1D6DA) { return true;
}
if (codePoint >= 0x1D6DC && codePoint <= 0x1D6FA) { return true;
}
if (codePoint >= 0x1D6FC && codePoint <= 0x1D714) { return true;
}
if (codePoint >= 0x1D716 && codePoint <= 0x1D734) { return true;
}
if (codePoint >= 0x1D736 && codePoint <= 0x1D74E) { return true;
}
if (codePoint >= 0x1D750 && codePoint <= 0x1D76E) { return true;
}
if (codePoint >= 0x1D770 && codePoint <= 0x1D788) { return true;
}
if (codePoint >= 0x1D78A && codePoint <= 0x1D7A8) { return true;
}
if (codePoint >= 0x1D7AA && codePoint <= 0x1D7C2) { return true;
}
if (codePoint >= 0x1D7C4 && codePoint <= 0x1D7CB) { return true;
}
if (codePoint >= 0x1D7CE && codePoint <= 0x1D7FF) { return true;
}
if (codePoint >= 0x1DA00 && codePoint <= 0x1DA36) { return true;
}
if (codePoint >= 0x1DA3B && codePoint <= 0x1DA6C) { return true;
}
if (codePoint >= 0x1DA75 && codePoint <= 0x1DA75) { return true;
}
if (codePoint >= 0x1DA84 && codePoint <= 0x1DA84) { return true;
}
if (codePoint >= 0x1DA9B && codePoint <= 0x1DA9F) { return true;
}
if (codePoint >= 0x1DAA1 && codePoint <= 0x1DAAF) { return true;
}
if (codePoint >= 0x1E000 && codePoint <= 0x1E006) { return true;
}
if (codePoint >= 0x1E008 && codePoint <= 0x1E018) { return true;
}
if (codePoint >= 0x1E01B && codePoint <= 0x1E021) { return true;
}
if (codePoint >= 0x1E023 && codePoint <= 0x1E024) { return true;
}
if (codePoint >= 0x1E026 && codePoint <= 0x1E02A) { return true;
}
if (codePoint >= 0x1E800 && codePoint <= 0x1E8C4) { return true;
}
if (codePoint >= 0x1E8D0 && codePoint <= 0x1E8D6) { return true;
}
if (codePoint >= 0x1E900 && codePoint <= 0x1E94A) { return true;
}
if (codePoint >= 0x1E950 && codePoint <= 0x1E959) { return true;
}
if (codePoint >= 0x1EE00 && codePoint <= 0x1EE03) { return true;
}
if (codePoint >= 0x1EE05 && codePoint <= 0x1EE1F) { return true;
}
if (codePoint >= 0x1EE21 && codePoint <= 0x1EE22) { return true;
}
if (codePoint >= 0x1EE24 && codePoint <= 0x1EE24) { return true;
}
if (codePoint >= 0x1EE27 && codePoint <= 0x1EE27) { return true;
}
if (codePoint >= 0x1EE29 && codePoint <= 0x1EE32) { return true;
}
if (codePoint >= 0x1EE34 && codePoint <= 0x1EE37) { return true;
}
if (codePoint >= 0x1EE39 && codePoint <= 0x1EE39) { return true;
}
if (codePoint >= 0x1EE3B && codePoint <= 0x1EE3B) { return true;
}
if (codePoint >= 0x1EE42 && codePoint <= 0x1EE42) { return true;
}
if (codePoint >= 0x1EE47 && codePoint <= 0x1EE47) { return true;
}
if (codePoint >= 0x1EE49 && codePoint <= 0x1EE49) { return true;
}
if (codePoint >= 0x1EE4B && codePoint <= 0x1EE4B) { return true;
}
if (codePoint >= 0x1EE4D && codePoint <= 0x1EE4F) { return true;
}
if (codePoint >= 0x1EE51 && codePoint <= 0x1EE52) { return true;
}
if (codePoint >= 0x1EE54 && codePoint <= 0x1EE54) { return true;
}
if (codePoint >= 0x1EE57 && codePoint <= 0x1EE57) { return true;
}
if (codePoint >= 0x1EE59 && codePoint <= 0x1EE59) { return true;
}
if (codePoint >= 0x1EE5B && codePoint <= 0x1EE5B) { return true;
}
if (codePoint >= 0x1EE5D && codePoint <= 0x1EE5D) { return true;
}
if (codePoint >= 0x1EE5F && codePoint <= 0x1EE5F) { return true;
}
if (codePoint >= 0x1EE61 && codePoint <= 0x1EE62) { return true;
}
if (codePoint >= 0x1EE64 && codePoint <= 0x1EE64) { return true;
}
if (codePoint >= 0x1EE67 && codePoint <= 0x1EE6A) { return true;
}
if (codePoint >= 0x1EE6C && codePoint <= 0x1EE72) { return true;
}
if (codePoint >= 0x1EE74 && codePoint <= 0x1EE77) { return true;
}
if (codePoint >= 0x1EE79 && codePoint <= 0x1EE7C) { return true;
}
if (codePoint >= 0x1EE7E && codePoint <= 0x1EE7E) { return true;
}
if (codePoint >= 0x1EE80 && codePoint <= 0x1EE89) { return true;
}
if (codePoint >= 0x1EE8B && codePoint <= 0x1EE9B) { return true;
}
if (codePoint >= 0x1EEA1 && codePoint <= 0x1EEA3) { return true;
}
if (codePoint >= 0x1EEA5 && codePoint <= 0x1EEA9) { return true;
}
if (codePoint >= 0x1EEAB && codePoint <= 0x1EEBB) { return true;
}
if (codePoint >= 0x20000 && codePoint <= 0x2A6D6) { return true;
}
if (codePoint >= 0x2A700 && codePoint <= 0x2B734) { return true;
}
if (codePoint >= 0x2B740 && codePoint <= 0x2B81D) { return true;
}
if (codePoint >= 0x2B820 && codePoint <= 0x2CEA1) { return true;
}
if (codePoint >= 0x2CEB0 && codePoint <= 0x2EBE0) { return true;
}
if (codePoint >= 0x2F800 && codePoint <= 0x2FA1D) { return true;
}
if (codePoint >= 0xE0100 && codePoint <= 0xE01EF) { return true;
}
return false;
}
bool
js::unicode::ChangesWhenUpperCasedSpecialCasing(char16_t ch)
{
if (ch < 0x00DF || ch > 0xFB17) {
return false;
}
if (ch <= 0x0587) {
return ch == 0x00DF || ch == 0x0149 || ch == 0x01F0 || ch == 0x0390 || ch == 0x03B0 ||
ch == 0x0587;
}
if (ch <= 0x1FFC) {
if (ch <= 0x1E9A) {
return ch >= 0x1E96;
}
if (ch < 0x1F50) {
return false;
}
return ch == 0x1F50 || ch == 0x1F52 || ch == 0x1F54 || ch == 0x1F56 ||
(ch >= 0x1F80 && ch <= 0x1FAF) || (ch >= 0x1FB2 && ch <= 0x1FB4) ||
(ch >= 0x1FB6 && ch <= 0x1FB7) || ch == 0x1FBC || (ch >= 0x1FC2 && ch <= 0x1FC4) ||
(ch >= 0x1FC6 && ch <= 0x1FC7) || ch == 0x1FCC || (ch >= 0x1FD2 && ch <= 0x1FD3) ||
(ch >= 0x1FD6 && ch <= 0x1FD7) || (ch >= 0x1FE2 && ch <= 0x1FE4) ||
(ch >= 0x1FE6 && ch <= 0x1FE7) || (ch >= 0x1FF2 && ch <= 0x1FF4) ||
(ch >= 0x1FF6 && ch <= 0x1FF7) || ch == 0x1FFC;
}
if (ch < 0xFB00) {
return false;
}
return (ch >= 0xFB00 && ch <= 0xFB06) || (ch >= 0xFB13 && ch <= 0xFB17);
}
size_t
js::unicode::LengthUpperCaseSpecialCasing(char16_t ch)
{
switch(ch) {
case 0x00DF: return 2; case 0x0149: return 2; case 0x01F0: return 2; case 0x0390: return 3; case 0x03B0: return 3; case 0x0587: return 2; case 0x1E96: return 2; case 0x1E97: return 2; case 0x1E98: return 2; case 0x1E99: return 2; case 0x1E9A: return 2; case 0x1F50: return 2; case 0x1F52: return 3; case 0x1F54: return 3; case 0x1F56: return 3; case 0x1F80: return 2; case 0x1F81: return 2; case 0x1F82: return 2; case 0x1F83: return 2; case 0x1F84: return 2; case 0x1F85: return 2; case 0x1F86: return 2; case 0x1F87: return 2; case 0x1F88: return 2; case 0x1F89: return 2; case 0x1F8A: return 2; case 0x1F8B: return 2; case 0x1F8C: return 2; case 0x1F8D: return 2; case 0x1F8E: return 2; case 0x1F8F: return 2; case 0x1F90: return 2; case 0x1F91: return 2; case 0x1F92: return 2; case 0x1F93: return 2; case 0x1F94: return 2; case 0x1F95: return 2; case 0x1F96: return 2; case 0x1F97: return 2; case 0x1F98: return 2; case 0x1F99: return 2; case 0x1F9A: return 2; case 0x1F9B: return 2; case 0x1F9C: return 2; case 0x1F9D: return 2; case 0x1F9E: return 2; case 0x1F9F: return 2; case 0x1FA0: return 2; case 0x1FA1: return 2; case 0x1FA2: return 2; case 0x1FA3: return 2; case 0x1FA4: return 2; case 0x1FA5: return 2; case 0x1FA6: return 2; case 0x1FA7: return 2; case 0x1FA8: return 2; case 0x1FA9: return 2; case 0x1FAA: return 2; case 0x1FAB: return 2; case 0x1FAC: return 2; case 0x1FAD: return 2; case 0x1FAE: return 2; case 0x1FAF: return 2; case 0x1FB2: return 2; case 0x1FB3: return 2; case 0x1FB4: return 2; case 0x1FB6: return 2; case 0x1FB7: return 3; case 0x1FBC: return 2; case 0x1FC2: return 2; case 0x1FC3: return 2; case 0x1FC4: return 2; case 0x1FC6: return 2; case 0x1FC7: return 3; case 0x1FCC: return 2; case 0x1FD2: return 3; case 0x1FD3: return 3; case 0x1FD6: return 2; case 0x1FD7: return 3; case 0x1FE2: return 3; case 0x1FE3: return 3; case 0x1FE4: return 2; case 0x1FE6: return 2; case 0x1FE7: return 3; case 0x1FF2: return 2; case 0x1FF3: return 2; case 0x1FF4: return 2; case 0x1FF6: return 2; case 0x1FF7: return 3; case 0x1FFC: return 2; case 0xFB00: return 2; case 0xFB01: return 2; case 0xFB02: return 2; case 0xFB03: return 3; case 0xFB04: return 3; case 0xFB05: return 2; case 0xFB06: return 2; case 0xFB13: return 2; case 0xFB14: return 2; case 0xFB15: return 2; case 0xFB16: return 2; case 0xFB17: return 2; }
MOZ_ASSERT_UNREACHABLE("Bad character input.");
return 0;
}
void
js::unicode::AppendUpperCaseSpecialCasing(char16_t ch, char16_t* elements, size_t* index)
{
switch(ch) {
case 0x00DF: elements[(*index)++] = 0x0053; elements[(*index)++] = 0x0053; return;
case 0x0149: elements[(*index)++] = 0x02BC; elements[(*index)++] = 0x004E; return;
case 0x01F0: elements[(*index)++] = 0x004A; elements[(*index)++] = 0x030C; return;
case 0x0390: elements[(*index)++] = 0x0399; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0301; return;
case 0x03B0: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0301; return;
case 0x0587: elements[(*index)++] = 0x0535; elements[(*index)++] = 0x0552; return;
case 0x1E96: elements[(*index)++] = 0x0048; elements[(*index)++] = 0x0331; return;
case 0x1E97: elements[(*index)++] = 0x0054; elements[(*index)++] = 0x0308; return;
case 0x1E98: elements[(*index)++] = 0x0057; elements[(*index)++] = 0x030A; return;
case 0x1E99: elements[(*index)++] = 0x0059; elements[(*index)++] = 0x030A; return;
case 0x1E9A: elements[(*index)++] = 0x0041; elements[(*index)++] = 0x02BE; return;
case 0x1F50: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0313; return;
case 0x1F52: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0313; elements[(*index)++] = 0x0300; return;
case 0x1F54: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0313; elements[(*index)++] = 0x0301; return;
case 0x1F56: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0313; elements[(*index)++] = 0x0342; return;
case 0x1F80: elements[(*index)++] = 0x1F08; elements[(*index)++] = 0x0399; return;
case 0x1F81: elements[(*index)++] = 0x1F09; elements[(*index)++] = 0x0399; return;
case 0x1F82: elements[(*index)++] = 0x1F0A; elements[(*index)++] = 0x0399; return;
case 0x1F83: elements[(*index)++] = 0x1F0B; elements[(*index)++] = 0x0399; return;
case 0x1F84: elements[(*index)++] = 0x1F0C; elements[(*index)++] = 0x0399; return;
case 0x1F85: elements[(*index)++] = 0x1F0D; elements[(*index)++] = 0x0399; return;
case 0x1F86: elements[(*index)++] = 0x1F0E; elements[(*index)++] = 0x0399; return;
case 0x1F87: elements[(*index)++] = 0x1F0F; elements[(*index)++] = 0x0399; return;
case 0x1F88: elements[(*index)++] = 0x1F08; elements[(*index)++] = 0x0399; return;
case 0x1F89: elements[(*index)++] = 0x1F09; elements[(*index)++] = 0x0399; return;
case 0x1F8A: elements[(*index)++] = 0x1F0A; elements[(*index)++] = 0x0399; return;
case 0x1F8B: elements[(*index)++] = 0x1F0B; elements[(*index)++] = 0x0399; return;
case 0x1F8C: elements[(*index)++] = 0x1F0C; elements[(*index)++] = 0x0399; return;
case 0x1F8D: elements[(*index)++] = 0x1F0D; elements[(*index)++] = 0x0399; return;
case 0x1F8E: elements[(*index)++] = 0x1F0E; elements[(*index)++] = 0x0399; return;
case 0x1F8F: elements[(*index)++] = 0x1F0F; elements[(*index)++] = 0x0399; return;
case 0x1F90: elements[(*index)++] = 0x1F28; elements[(*index)++] = 0x0399; return;
case 0x1F91: elements[(*index)++] = 0x1F29; elements[(*index)++] = 0x0399; return;
case 0x1F92: elements[(*index)++] = 0x1F2A; elements[(*index)++] = 0x0399; return;
case 0x1F93: elements[(*index)++] = 0x1F2B; elements[(*index)++] = 0x0399; return;
case 0x1F94: elements[(*index)++] = 0x1F2C; elements[(*index)++] = 0x0399; return;
case 0x1F95: elements[(*index)++] = 0x1F2D; elements[(*index)++] = 0x0399; return;
case 0x1F96: elements[(*index)++] = 0x1F2E; elements[(*index)++] = 0x0399; return;
case 0x1F97: elements[(*index)++] = 0x1F2F; elements[(*index)++] = 0x0399; return;
case 0x1F98: elements[(*index)++] = 0x1F28; elements[(*index)++] = 0x0399; return;
case 0x1F99: elements[(*index)++] = 0x1F29; elements[(*index)++] = 0x0399; return;
case 0x1F9A: elements[(*index)++] = 0x1F2A; elements[(*index)++] = 0x0399; return;
case 0x1F9B: elements[(*index)++] = 0x1F2B; elements[(*index)++] = 0x0399; return;
case 0x1F9C: elements[(*index)++] = 0x1F2C; elements[(*index)++] = 0x0399; return;
case 0x1F9D: elements[(*index)++] = 0x1F2D; elements[(*index)++] = 0x0399; return;
case 0x1F9E: elements[(*index)++] = 0x1F2E; elements[(*index)++] = 0x0399; return;
case 0x1F9F: elements[(*index)++] = 0x1F2F; elements[(*index)++] = 0x0399; return;
case 0x1FA0: elements[(*index)++] = 0x1F68; elements[(*index)++] = 0x0399; return;
case 0x1FA1: elements[(*index)++] = 0x1F69; elements[(*index)++] = 0x0399; return;
case 0x1FA2: elements[(*index)++] = 0x1F6A; elements[(*index)++] = 0x0399; return;
case 0x1FA3: elements[(*index)++] = 0x1F6B; elements[(*index)++] = 0x0399; return;
case 0x1FA4: elements[(*index)++] = 0x1F6C; elements[(*index)++] = 0x0399; return;
case 0x1FA5: elements[(*index)++] = 0x1F6D; elements[(*index)++] = 0x0399; return;
case 0x1FA6: elements[(*index)++] = 0x1F6E; elements[(*index)++] = 0x0399; return;
case 0x1FA7: elements[(*index)++] = 0x1F6F; elements[(*index)++] = 0x0399; return;
case 0x1FA8: elements[(*index)++] = 0x1F68; elements[(*index)++] = 0x0399; return;
case 0x1FA9: elements[(*index)++] = 0x1F69; elements[(*index)++] = 0x0399; return;
case 0x1FAA: elements[(*index)++] = 0x1F6A; elements[(*index)++] = 0x0399; return;
case 0x1FAB: elements[(*index)++] = 0x1F6B; elements[(*index)++] = 0x0399; return;
case 0x1FAC: elements[(*index)++] = 0x1F6C; elements[(*index)++] = 0x0399; return;
case 0x1FAD: elements[(*index)++] = 0x1F6D; elements[(*index)++] = 0x0399; return;
case 0x1FAE: elements[(*index)++] = 0x1F6E; elements[(*index)++] = 0x0399; return;
case 0x1FAF: elements[(*index)++] = 0x1F6F; elements[(*index)++] = 0x0399; return;
case 0x1FB2: elements[(*index)++] = 0x1FBA; elements[(*index)++] = 0x0399; return;
case 0x1FB3: elements[(*index)++] = 0x0391; elements[(*index)++] = 0x0399; return;
case 0x1FB4: elements[(*index)++] = 0x0386; elements[(*index)++] = 0x0399; return;
case 0x1FB6: elements[(*index)++] = 0x0391; elements[(*index)++] = 0x0342; return;
case 0x1FB7: elements[(*index)++] = 0x0391; elements[(*index)++] = 0x0342; elements[(*index)++] = 0x0399; return;
case 0x1FBC: elements[(*index)++] = 0x0391; elements[(*index)++] = 0x0399; return;
case 0x1FC2: elements[(*index)++] = 0x1FCA; elements[(*index)++] = 0x0399; return;
case 0x1FC3: elements[(*index)++] = 0x0397; elements[(*index)++] = 0x0399; return;
case 0x1FC4: elements[(*index)++] = 0x0389; elements[(*index)++] = 0x0399; return;
case 0x1FC6: elements[(*index)++] = 0x0397; elements[(*index)++] = 0x0342; return;
case 0x1FC7: elements[(*index)++] = 0x0397; elements[(*index)++] = 0x0342; elements[(*index)++] = 0x0399; return;
case 0x1FCC: elements[(*index)++] = 0x0397; elements[(*index)++] = 0x0399; return;
case 0x1FD2: elements[(*index)++] = 0x0399; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0300; return;
case 0x1FD3: elements[(*index)++] = 0x0399; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0301; return;
case 0x1FD6: elements[(*index)++] = 0x0399; elements[(*index)++] = 0x0342; return;
case 0x1FD7: elements[(*index)++] = 0x0399; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0342; return;
case 0x1FE2: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0300; return;
case 0x1FE3: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0301; return;
case 0x1FE4: elements[(*index)++] = 0x03A1; elements[(*index)++] = 0x0313; return;
case 0x1FE6: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0342; return;
case 0x1FE7: elements[(*index)++] = 0x03A5; elements[(*index)++] = 0x0308; elements[(*index)++] = 0x0342; return;
case 0x1FF2: elements[(*index)++] = 0x1FFA; elements[(*index)++] = 0x0399; return;
case 0x1FF3: elements[(*index)++] = 0x03A9; elements[(*index)++] = 0x0399; return;
case 0x1FF4: elements[(*index)++] = 0x038F; elements[(*index)++] = 0x0399; return;
case 0x1FF6: elements[(*index)++] = 0x03A9; elements[(*index)++] = 0x0342; return;
case 0x1FF7: elements[(*index)++] = 0x03A9; elements[(*index)++] = 0x0342; elements[(*index)++] = 0x0399; return;
case 0x1FFC: elements[(*index)++] = 0x03A9; elements[(*index)++] = 0x0399; return;
case 0xFB00: elements[(*index)++] = 0x0046; elements[(*index)++] = 0x0046; return;
case 0xFB01: elements[(*index)++] = 0x0046; elements[(*index)++] = 0x0049; return;
case 0xFB02: elements[(*index)++] = 0x0046; elements[(*index)++] = 0x004C; return;
case 0xFB03: elements[(*index)++] = 0x0046; elements[(*index)++] = 0x0046; elements[(*index)++] = 0x0049; return;
case 0xFB04: elements[(*index)++] = 0x0046; elements[(*index)++] = 0x0046; elements[(*index)++] = 0x004C; return;
case 0xFB05: elements[(*index)++] = 0x0053; elements[(*index)++] = 0x0054; return;
case 0xFB06: elements[(*index)++] = 0x0053; elements[(*index)++] = 0x0054; return;
case 0xFB13: elements[(*index)++] = 0x0544; elements[(*index)++] = 0x0546; return;
case 0xFB14: elements[(*index)++] = 0x0544; elements[(*index)++] = 0x0535; return;
case 0xFB15: elements[(*index)++] = 0x0544; elements[(*index)++] = 0x053B; return;
case 0xFB16: elements[(*index)++] = 0x054E; elements[(*index)++] = 0x0546; return;
case 0xFB17: elements[(*index)++] = 0x0544; elements[(*index)++] = 0x053D; return;
}
MOZ_ASSERT_UNREACHABLE("Bad character input.");
}
#define ____ false
const bool unicode::js_isidstart[] = {
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, true, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, ____, ____, ____, ____, true, ____, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, ____, ____, ____, ____, ____,
};
const bool unicode::js_isident[] = {
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, true, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, true, true,
true, true, true, true, true, true, true, true, ____, ____,
____, ____, ____, ____, ____, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, ____, ____, ____, ____, true, ____, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, ____, ____, ____, ____, ____,
};
const bool unicode::js_isspace[] = {
____, ____, ____, ____, ____, ____, ____, ____, ____, true,
true, true, true, true, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, true, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____,
};
#undef ____