aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_is_ci.c
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-04-28 06:15:55 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-04-28 06:15:55 +0200
commit4ea2dd117e656f950c41f9954bd593c313e34ee2 (patch)
treed239c3426240bb886f129bccf901b0fc970c6073 /lib/unicode/prop/uprop_is_ci.c
parent50787ecf06854f99eaf4b966abd11d23554bd221 (diff)
Implement boolean props using 2-stage lookup
Diffstat (limited to 'lib/unicode/prop/uprop_is_ci.c')
-rw-r--r--lib/unicode/prop/uprop_is_ci.c1255
1 files changed, 813 insertions, 442 deletions
diff --git a/lib/unicode/prop/uprop_is_ci.c b/lib/unicode/prop/uprop_is_ci.c
index 33eff8d..ebe10c9 100644
--- a/lib/unicode/prop/uprop_is_ci.c
+++ b/lib/unicode/prop/uprop_is_ci.c
@@ -1,455 +1,826 @@
/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
-#include "_bsearch.h"
#include "bitset.h"
-#include "rune.h"
#include "unicode/prop.h"
-/* clang-format off */
-
-static constexpr bitset(bs, LATIN1_MAX) = {
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x90, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+static constexpr uint8_t stage1[] = {
+ 0, 1, 2, 2, 2, 3, 4, 5, 2, 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, 2, 2, 2, 2, 31, 2, 2, 2, 2, 2, 2, 2, 32, 33,
+ 34, 35, 36, 2, 37, 38, 39, 40, 41, 42, 43, 44, 2, 2, 2, 45,
+ 46, 47, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 48, 49, 50, 51, 52, 2, 2, 2,
+ 53, 54, 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, 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, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 55, 2, 2, 2, 2, 2, 2, 2, 2, 56, 2, 2, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 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, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 69, 70, 2, 2, 2, 2, 71, 72, 73, 74,
+ 2, 2, 2, 75, 2, 76, 77, 2, 2, 2, 2, 2, 2, 2, 2, 78,
+ 2, 2, 2, 2, 79, 80, 2, 2, 2, 2, 81, 2, 2, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 2, 92, 93, 2, 94, 95, 96, 97, 2,
+ 98, 2, 99, 100, 101, 102, 2, 2, 103, 104, 105, 106, 2, 107, 108, 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, 109, 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, 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, 110, 111, 2, 2, 2, 2, 2, 2, 2, 112, 113,
+ 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, 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, 114,
+ 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, 115, 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, 116, 2,
+ 2, 2, 117, 118, 119, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 120, 121, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 122, 123, 124, 2, 2, 125, 2, 2, 2, 126, 2, 2, 2, 2, 2, 2,
+ 2, 127, 128, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 129, 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, 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, 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, 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, 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, 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, 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, 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,
+ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
+ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
+ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
+ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
+ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
+ 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, 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,
+ 130, 2, 131, 132, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
+ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
};
-static const struct {
- rune lo, hi;
-} lookup[] = {
- {RUNE_C(0x0002B0), RUNE_C(0x00036F)},
- {RUNE_C(0x000374), RUNE_C(0x000375)},
- {RUNE_C(0x00037A), RUNE_C(0x00037A)},
- {RUNE_C(0x000384), RUNE_C(0x000385)},
- {RUNE_C(0x000387), RUNE_C(0x000387)},
- {RUNE_C(0x000483), RUNE_C(0x000489)},
- {RUNE_C(0x000559), RUNE_C(0x000559)},
- {RUNE_C(0x00055F), RUNE_C(0x00055F)},
- {RUNE_C(0x000591), RUNE_C(0x0005BD)},
- {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
- {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
- {RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
- {RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
- {RUNE_C(0x0005F4), RUNE_C(0x0005F4)},
- {RUNE_C(0x000600), RUNE_C(0x000605)},
- {RUNE_C(0x000610), RUNE_C(0x00061A)},
- {RUNE_C(0x00061C), RUNE_C(0x00061C)},
- {RUNE_C(0x000640), RUNE_C(0x000640)},
- {RUNE_C(0x00064B), RUNE_C(0x00065F)},
- {RUNE_C(0x000670), RUNE_C(0x000670)},
- {RUNE_C(0x0006D6), RUNE_C(0x0006DD)},
- {RUNE_C(0x0006DF), RUNE_C(0x0006E8)},
- {RUNE_C(0x0006EA), RUNE_C(0x0006ED)},
- {RUNE_C(0x00070F), RUNE_C(0x00070F)},
- {RUNE_C(0x000711), RUNE_C(0x000711)},
- {RUNE_C(0x000730), RUNE_C(0x00074A)},
- {RUNE_C(0x0007A6), RUNE_C(0x0007B0)},
- {RUNE_C(0x0007EB), RUNE_C(0x0007F5)},
- {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
- {RUNE_C(0x0007FD), RUNE_C(0x0007FD)},
- {RUNE_C(0x000816), RUNE_C(0x00082D)},
- {RUNE_C(0x000859), RUNE_C(0x00085B)},
- {RUNE_C(0x000888), RUNE_C(0x000888)},
- {RUNE_C(0x000890), RUNE_C(0x000891)},
- {RUNE_C(0x000898), RUNE_C(0x00089F)},
- {RUNE_C(0x0008C9), RUNE_C(0x000902)},
- {RUNE_C(0x00093A), RUNE_C(0x00093A)},
- {RUNE_C(0x00093C), RUNE_C(0x00093C)},
- {RUNE_C(0x000941), RUNE_C(0x000948)},
- {RUNE_C(0x00094D), RUNE_C(0x00094D)},
- {RUNE_C(0x000951), RUNE_C(0x000957)},
- {RUNE_C(0x000962), RUNE_C(0x000963)},
- {RUNE_C(0x000971), RUNE_C(0x000971)},
- {RUNE_C(0x000981), RUNE_C(0x000981)},
- {RUNE_C(0x0009BC), RUNE_C(0x0009BC)},
- {RUNE_C(0x0009C1), RUNE_C(0x0009C4)},
- {RUNE_C(0x0009CD), RUNE_C(0x0009CD)},
- {RUNE_C(0x0009E2), RUNE_C(0x0009E3)},
- {RUNE_C(0x0009FE), RUNE_C(0x0009FE)},
- {RUNE_C(0x000A01), RUNE_C(0x000A02)},
- {RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
- {RUNE_C(0x000A41), RUNE_C(0x000A42)},
- {RUNE_C(0x000A47), RUNE_C(0x000A48)},
- {RUNE_C(0x000A4B), RUNE_C(0x000A4D)},
- {RUNE_C(0x000A51), RUNE_C(0x000A51)},
- {RUNE_C(0x000A70), RUNE_C(0x000A71)},
- {RUNE_C(0x000A75), RUNE_C(0x000A75)},
- {RUNE_C(0x000A81), RUNE_C(0x000A82)},
- {RUNE_C(0x000ABC), RUNE_C(0x000ABC)},
- {RUNE_C(0x000AC1), RUNE_C(0x000AC5)},
- {RUNE_C(0x000AC7), RUNE_C(0x000AC8)},
- {RUNE_C(0x000ACD), RUNE_C(0x000ACD)},
- {RUNE_C(0x000AE2), RUNE_C(0x000AE3)},
- {RUNE_C(0x000AFA), RUNE_C(0x000AFF)},
- {RUNE_C(0x000B01), RUNE_C(0x000B01)},
- {RUNE_C(0x000B3C), RUNE_C(0x000B3C)},
- {RUNE_C(0x000B3F), RUNE_C(0x000B3F)},
- {RUNE_C(0x000B41), RUNE_C(0x000B44)},
- {RUNE_C(0x000B4D), RUNE_C(0x000B4D)},
- {RUNE_C(0x000B55), RUNE_C(0x000B56)},
- {RUNE_C(0x000B62), RUNE_C(0x000B63)},
- {RUNE_C(0x000B82), RUNE_C(0x000B82)},
- {RUNE_C(0x000BC0), RUNE_C(0x000BC0)},
- {RUNE_C(0x000BCD), RUNE_C(0x000BCD)},
- {RUNE_C(0x000C00), RUNE_C(0x000C00)},
- {RUNE_C(0x000C04), RUNE_C(0x000C04)},
- {RUNE_C(0x000C3C), RUNE_C(0x000C3C)},
- {RUNE_C(0x000C3E), RUNE_C(0x000C40)},
- {RUNE_C(0x000C46), RUNE_C(0x000C48)},
- {RUNE_C(0x000C4A), RUNE_C(0x000C4D)},
- {RUNE_C(0x000C55), RUNE_C(0x000C56)},
- {RUNE_C(0x000C62), RUNE_C(0x000C63)},
- {RUNE_C(0x000C81), RUNE_C(0x000C81)},
- {RUNE_C(0x000CBC), RUNE_C(0x000CBC)},
- {RUNE_C(0x000CBF), RUNE_C(0x000CBF)},
- {RUNE_C(0x000CC6), RUNE_C(0x000CC6)},
- {RUNE_C(0x000CCC), RUNE_C(0x000CCD)},
- {RUNE_C(0x000CE2), RUNE_C(0x000CE3)},
- {RUNE_C(0x000D00), RUNE_C(0x000D01)},
- {RUNE_C(0x000D3B), RUNE_C(0x000D3C)},
- {RUNE_C(0x000D41), RUNE_C(0x000D44)},
- {RUNE_C(0x000D4D), RUNE_C(0x000D4D)},
- {RUNE_C(0x000D62), RUNE_C(0x000D63)},
- {RUNE_C(0x000D81), RUNE_C(0x000D81)},
- {RUNE_C(0x000DCA), RUNE_C(0x000DCA)},
- {RUNE_C(0x000DD2), RUNE_C(0x000DD4)},
- {RUNE_C(0x000DD6), RUNE_C(0x000DD6)},
- {RUNE_C(0x000E31), RUNE_C(0x000E31)},
- {RUNE_C(0x000E34), RUNE_C(0x000E3A)},
- {RUNE_C(0x000E46), RUNE_C(0x000E4E)},
- {RUNE_C(0x000EB1), RUNE_C(0x000EB1)},
- {RUNE_C(0x000EB4), RUNE_C(0x000EBC)},
- {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
- {RUNE_C(0x000EC8), RUNE_C(0x000ECE)},
- {RUNE_C(0x000F18), RUNE_C(0x000F19)},
- {RUNE_C(0x000F35), RUNE_C(0x000F35)},
- {RUNE_C(0x000F37), RUNE_C(0x000F37)},
- {RUNE_C(0x000F39), RUNE_C(0x000F39)},
- {RUNE_C(0x000F71), RUNE_C(0x000F7E)},
- {RUNE_C(0x000F80), RUNE_C(0x000F84)},
- {RUNE_C(0x000F86), RUNE_C(0x000F87)},
- {RUNE_C(0x000F8D), RUNE_C(0x000F97)},
- {RUNE_C(0x000F99), RUNE_C(0x000FBC)},
- {RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
- {RUNE_C(0x00102D), RUNE_C(0x001030)},
- {RUNE_C(0x001032), RUNE_C(0x001037)},
- {RUNE_C(0x001039), RUNE_C(0x00103A)},
- {RUNE_C(0x00103D), RUNE_C(0x00103E)},
- {RUNE_C(0x001058), RUNE_C(0x001059)},
- {RUNE_C(0x00105E), RUNE_C(0x001060)},
- {RUNE_C(0x001071), RUNE_C(0x001074)},
- {RUNE_C(0x001082), RUNE_C(0x001082)},
- {RUNE_C(0x001085), RUNE_C(0x001086)},
- {RUNE_C(0x00108D), RUNE_C(0x00108D)},
- {RUNE_C(0x00109D), RUNE_C(0x00109D)},
- {RUNE_C(0x0010FC), RUNE_C(0x0010FC)},
- {RUNE_C(0x00135D), RUNE_C(0x00135F)},
- {RUNE_C(0x001712), RUNE_C(0x001714)},
- {RUNE_C(0x001732), RUNE_C(0x001733)},
- {RUNE_C(0x001752), RUNE_C(0x001753)},
- {RUNE_C(0x001772), RUNE_C(0x001773)},
- {RUNE_C(0x0017B4), RUNE_C(0x0017B5)},
- {RUNE_C(0x0017B7), RUNE_C(0x0017BD)},
- {RUNE_C(0x0017C6), RUNE_C(0x0017C6)},
- {RUNE_C(0x0017C9), RUNE_C(0x0017D3)},
- {RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
- {RUNE_C(0x0017DD), RUNE_C(0x0017DD)},
- {RUNE_C(0x00180B), RUNE_C(0x00180F)},
- {RUNE_C(0x001843), RUNE_C(0x001843)},
- {RUNE_C(0x001885), RUNE_C(0x001886)},
- {RUNE_C(0x0018A9), RUNE_C(0x0018A9)},
- {RUNE_C(0x001920), RUNE_C(0x001922)},
- {RUNE_C(0x001927), RUNE_C(0x001928)},
- {RUNE_C(0x001932), RUNE_C(0x001932)},
- {RUNE_C(0x001939), RUNE_C(0x00193B)},
- {RUNE_C(0x001A17), RUNE_C(0x001A18)},
- {RUNE_C(0x001A1B), RUNE_C(0x001A1B)},
- {RUNE_C(0x001A56), RUNE_C(0x001A56)},
- {RUNE_C(0x001A58), RUNE_C(0x001A5E)},
- {RUNE_C(0x001A60), RUNE_C(0x001A60)},
- {RUNE_C(0x001A62), RUNE_C(0x001A62)},
- {RUNE_C(0x001A65), RUNE_C(0x001A6C)},
- {RUNE_C(0x001A73), RUNE_C(0x001A7C)},
- {RUNE_C(0x001A7F), RUNE_C(0x001A7F)},
- {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
- {RUNE_C(0x001AB0), RUNE_C(0x001ACE)},
- {RUNE_C(0x001B00), RUNE_C(0x001B03)},
- {RUNE_C(0x001B34), RUNE_C(0x001B34)},
- {RUNE_C(0x001B36), RUNE_C(0x001B3A)},
- {RUNE_C(0x001B3C), RUNE_C(0x001B3C)},
- {RUNE_C(0x001B42), RUNE_C(0x001B42)},
- {RUNE_C(0x001B6B), RUNE_C(0x001B73)},
- {RUNE_C(0x001B80), RUNE_C(0x001B81)},
- {RUNE_C(0x001BA2), RUNE_C(0x001BA5)},
- {RUNE_C(0x001BA8), RUNE_C(0x001BA9)},
- {RUNE_C(0x001BAB), RUNE_C(0x001BAD)},
- {RUNE_C(0x001BE6), RUNE_C(0x001BE6)},
- {RUNE_C(0x001BE8), RUNE_C(0x001BE9)},
- {RUNE_C(0x001BED), RUNE_C(0x001BED)},
- {RUNE_C(0x001BEF), RUNE_C(0x001BF1)},
- {RUNE_C(0x001C2C), RUNE_C(0x001C33)},
- {RUNE_C(0x001C36), RUNE_C(0x001C37)},
- {RUNE_C(0x001C78), RUNE_C(0x001C7D)},
- {RUNE_C(0x001CD0), RUNE_C(0x001CD2)},
- {RUNE_C(0x001CD4), RUNE_C(0x001CE0)},
- {RUNE_C(0x001CE2), RUNE_C(0x001CE8)},
- {RUNE_C(0x001CED), RUNE_C(0x001CED)},
- {RUNE_C(0x001CF4), RUNE_C(0x001CF4)},
- {RUNE_C(0x001CF8), RUNE_C(0x001CF9)},
- {RUNE_C(0x001D2C), RUNE_C(0x001D6A)},
- {RUNE_C(0x001D78), RUNE_C(0x001D78)},
- {RUNE_C(0x001D9B), RUNE_C(0x001DFF)},
- {RUNE_C(0x001FBD), RUNE_C(0x001FBD)},
- {RUNE_C(0x001FBF), RUNE_C(0x001FC1)},
- {RUNE_C(0x001FCD), RUNE_C(0x001FCF)},
- {RUNE_C(0x001FDD), RUNE_C(0x001FDF)},
- {RUNE_C(0x001FED), RUNE_C(0x001FEF)},
- {RUNE_C(0x001FFD), RUNE_C(0x001FFE)},
- {RUNE_C(0x00200B), RUNE_C(0x00200F)},
- {RUNE_C(0x002018), RUNE_C(0x002019)},
- {RUNE_C(0x002024), RUNE_C(0x002024)},
- {RUNE_C(0x002027), RUNE_C(0x002027)},
- {RUNE_C(0x00202A), RUNE_C(0x00202E)},
- {RUNE_C(0x002060), RUNE_C(0x002064)},
- {RUNE_C(0x002066), RUNE_C(0x00206F)},
- {RUNE_C(0x002071), RUNE_C(0x002071)},
- {RUNE_C(0x00207F), RUNE_C(0x00207F)},
- {RUNE_C(0x002090), RUNE_C(0x00209C)},
- {RUNE_C(0x0020D0), RUNE_C(0x0020F0)},
- {RUNE_C(0x002C7C), RUNE_C(0x002C7D)},
- {RUNE_C(0x002CEF), RUNE_C(0x002CF1)},
- {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
- {RUNE_C(0x002D7F), RUNE_C(0x002D7F)},
- {RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
- {RUNE_C(0x002E2F), RUNE_C(0x002E2F)},
- {RUNE_C(0x003005), RUNE_C(0x003005)},
- {RUNE_C(0x00302A), RUNE_C(0x00302D)},
- {RUNE_C(0x003031), RUNE_C(0x003035)},
- {RUNE_C(0x00303B), RUNE_C(0x00303B)},
- {RUNE_C(0x003099), RUNE_C(0x00309E)},
- {RUNE_C(0x0030FC), RUNE_C(0x0030FE)},
- {RUNE_C(0x00A015), RUNE_C(0x00A015)},
- {RUNE_C(0x00A4F8), RUNE_C(0x00A4FD)},
- {RUNE_C(0x00A60C), RUNE_C(0x00A60C)},
- {RUNE_C(0x00A66F), RUNE_C(0x00A672)},
- {RUNE_C(0x00A674), RUNE_C(0x00A67D)},
- {RUNE_C(0x00A67F), RUNE_C(0x00A67F)},
- {RUNE_C(0x00A69C), RUNE_C(0x00A69F)},
- {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)},
- {RUNE_C(0x00A700), RUNE_C(0x00A721)},
- {RUNE_C(0x00A770), RUNE_C(0x00A770)},
- {RUNE_C(0x00A788), RUNE_C(0x00A78A)},
- {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)},
- {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)},
- {RUNE_C(0x00A802), RUNE_C(0x00A802)},
- {RUNE_C(0x00A806), RUNE_C(0x00A806)},
- {RUNE_C(0x00A80B), RUNE_C(0x00A80B)},
- {RUNE_C(0x00A825), RUNE_C(0x00A826)},
- {RUNE_C(0x00A82C), RUNE_C(0x00A82C)},
- {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)},
- {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)},
- {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)},
- {RUNE_C(0x00A926), RUNE_C(0x00A92D)},
- {RUNE_C(0x00A947), RUNE_C(0x00A951)},
- {RUNE_C(0x00A980), RUNE_C(0x00A982)},
- {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)},
- {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)},
- {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)},
- {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)},
- {RUNE_C(0x00A9E5), RUNE_C(0x00A9E6)},
- {RUNE_C(0x00AA29), RUNE_C(0x00AA2E)},
- {RUNE_C(0x00AA31), RUNE_C(0x00AA32)},
- {RUNE_C(0x00AA35), RUNE_C(0x00AA36)},
- {RUNE_C(0x00AA43), RUNE_C(0x00AA43)},
- {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)},
- {RUNE_C(0x00AA70), RUNE_C(0x00AA70)},
- {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)},
- {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)},
- {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)},
- {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)},
- {RUNE_C(0x00AABE), RUNE_C(0x00AABF)},
- {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)},
- {RUNE_C(0x00AADD), RUNE_C(0x00AADD)},
- {RUNE_C(0x00AAEC), RUNE_C(0x00AAED)},
- {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)},
- {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)},
- {RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)},
- {RUNE_C(0x00AB69), RUNE_C(0x00AB6B)},
- {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)},
- {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)},
- {RUNE_C(0x00ABED), RUNE_C(0x00ABED)},
- {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)},
- {RUNE_C(0x00FBB2), RUNE_C(0x00FBC2)},
- {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
- {RUNE_C(0x00FE13), RUNE_C(0x00FE13)},
- {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
- {RUNE_C(0x00FE52), RUNE_C(0x00FE52)},
- {RUNE_C(0x00FE55), RUNE_C(0x00FE55)},
- {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)},
- {RUNE_C(0x00FF07), RUNE_C(0x00FF07)},
- {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)},
- {RUNE_C(0x00FF1A), RUNE_C(0x00FF1A)},
- {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)},
- {RUNE_C(0x00FF40), RUNE_C(0x00FF40)},
- {RUNE_C(0x00FF70), RUNE_C(0x00FF70)},
- {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)},
- {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)},
- {RUNE_C(0x00FFF9), RUNE_C(0x00FFFB)},
- {RUNE_C(0x0101FD), RUNE_C(0x0101FD)},
- {RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
- {RUNE_C(0x010376), RUNE_C(0x01037A)},
- {RUNE_C(0x010780), RUNE_C(0x010785)},
- {RUNE_C(0x010787), RUNE_C(0x0107B0)},
- {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
- {RUNE_C(0x010A01), RUNE_C(0x010A03)},
- {RUNE_C(0x010A05), RUNE_C(0x010A06)},
- {RUNE_C(0x010A0C), RUNE_C(0x010A0F)},
- {RUNE_C(0x010A38), RUNE_C(0x010A3A)},
- {RUNE_C(0x010A3F), RUNE_C(0x010A3F)},
- {RUNE_C(0x010AE5), RUNE_C(0x010AE6)},
- {RUNE_C(0x010D24), RUNE_C(0x010D27)},
- {RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
- {RUNE_C(0x010EFD), RUNE_C(0x010EFF)},
- {RUNE_C(0x010F46), RUNE_C(0x010F50)},
- {RUNE_C(0x010F82), RUNE_C(0x010F85)},
- {RUNE_C(0x011001), RUNE_C(0x011001)},
- {RUNE_C(0x011038), RUNE_C(0x011046)},
- {RUNE_C(0x011070), RUNE_C(0x011070)},
- {RUNE_C(0x011073), RUNE_C(0x011074)},
- {RUNE_C(0x01107F), RUNE_C(0x011081)},
- {RUNE_C(0x0110B3), RUNE_C(0x0110B6)},
- {RUNE_C(0x0110B9), RUNE_C(0x0110BA)},
- {RUNE_C(0x0110BD), RUNE_C(0x0110BD)},
- {RUNE_C(0x0110C2), RUNE_C(0x0110C2)},
- {RUNE_C(0x0110CD), RUNE_C(0x0110CD)},
- {RUNE_C(0x011100), RUNE_C(0x011102)},
- {RUNE_C(0x011127), RUNE_C(0x01112B)},
- {RUNE_C(0x01112D), RUNE_C(0x011134)},
- {RUNE_C(0x011173), RUNE_C(0x011173)},
- {RUNE_C(0x011180), RUNE_C(0x011181)},
- {RUNE_C(0x0111B6), RUNE_C(0x0111BE)},
- {RUNE_C(0x0111C9), RUNE_C(0x0111CC)},
- {RUNE_C(0x0111CF), RUNE_C(0x0111CF)},
- {RUNE_C(0x01122F), RUNE_C(0x011231)},
- {RUNE_C(0x011234), RUNE_C(0x011234)},
- {RUNE_C(0x011236), RUNE_C(0x011237)},
- {RUNE_C(0x01123E), RUNE_C(0x01123E)},
- {RUNE_C(0x011241), RUNE_C(0x011241)},
- {RUNE_C(0x0112DF), RUNE_C(0x0112DF)},
- {RUNE_C(0x0112E3), RUNE_C(0x0112EA)},
- {RUNE_C(0x011300), RUNE_C(0x011301)},
- {RUNE_C(0x01133B), RUNE_C(0x01133C)},
- {RUNE_C(0x011340), RUNE_C(0x011340)},
- {RUNE_C(0x011366), RUNE_C(0x01136C)},
- {RUNE_C(0x011370), RUNE_C(0x011374)},
- {RUNE_C(0x011438), RUNE_C(0x01143F)},
- {RUNE_C(0x011442), RUNE_C(0x011444)},
- {RUNE_C(0x011446), RUNE_C(0x011446)},
- {RUNE_C(0x01145E), RUNE_C(0x01145E)},
- {RUNE_C(0x0114B3), RUNE_C(0x0114B8)},
- {RUNE_C(0x0114BA), RUNE_C(0x0114BA)},
- {RUNE_C(0x0114BF), RUNE_C(0x0114C0)},
- {RUNE_C(0x0114C2), RUNE_C(0x0114C3)},
- {RUNE_C(0x0115B2), RUNE_C(0x0115B5)},
- {RUNE_C(0x0115BC), RUNE_C(0x0115BD)},
- {RUNE_C(0x0115BF), RUNE_C(0x0115C0)},
- {RUNE_C(0x0115DC), RUNE_C(0x0115DD)},
- {RUNE_C(0x011633), RUNE_C(0x01163A)},
- {RUNE_C(0x01163D), RUNE_C(0x01163D)},
- {RUNE_C(0x01163F), RUNE_C(0x011640)},
- {RUNE_C(0x0116AB), RUNE_C(0x0116AB)},
- {RUNE_C(0x0116AD), RUNE_C(0x0116AD)},
- {RUNE_C(0x0116B0), RUNE_C(0x0116B5)},
- {RUNE_C(0x0116B7), RUNE_C(0x0116B7)},
- {RUNE_C(0x01171D), RUNE_C(0x01171F)},
- {RUNE_C(0x011722), RUNE_C(0x011725)},
- {RUNE_C(0x011727), RUNE_C(0x01172B)},
- {RUNE_C(0x01182F), RUNE_C(0x011837)},
- {RUNE_C(0x011839), RUNE_C(0x01183A)},
- {RUNE_C(0x01193B), RUNE_C(0x01193C)},
- {RUNE_C(0x01193E), RUNE_C(0x01193E)},
- {RUNE_C(0x011943), RUNE_C(0x011943)},
- {RUNE_C(0x0119D4), RUNE_C(0x0119D7)},
- {RUNE_C(0x0119DA), RUNE_C(0x0119DB)},
- {RUNE_C(0x0119E0), RUNE_C(0x0119E0)},
- {RUNE_C(0x011A01), RUNE_C(0x011A0A)},
- {RUNE_C(0x011A33), RUNE_C(0x011A38)},
- {RUNE_C(0x011A3B), RUNE_C(0x011A3E)},
- {RUNE_C(0x011A47), RUNE_C(0x011A47)},
- {RUNE_C(0x011A51), RUNE_C(0x011A56)},
- {RUNE_C(0x011A59), RUNE_C(0x011A5B)},
- {RUNE_C(0x011A8A), RUNE_C(0x011A96)},
- {RUNE_C(0x011A98), RUNE_C(0x011A99)},
- {RUNE_C(0x011C30), RUNE_C(0x011C36)},
- {RUNE_C(0x011C38), RUNE_C(0x011C3D)},
- {RUNE_C(0x011C3F), RUNE_C(0x011C3F)},
- {RUNE_C(0x011C92), RUNE_C(0x011CA7)},
- {RUNE_C(0x011CAA), RUNE_C(0x011CB0)},
- {RUNE_C(0x011CB2), RUNE_C(0x011CB3)},
- {RUNE_C(0x011CB5), RUNE_C(0x011CB6)},
- {RUNE_C(0x011D31), RUNE_C(0x011D36)},
- {RUNE_C(0x011D3A), RUNE_C(0x011D3A)},
- {RUNE_C(0x011D3C), RUNE_C(0x011D3D)},
- {RUNE_C(0x011D3F), RUNE_C(0x011D45)},
- {RUNE_C(0x011D47), RUNE_C(0x011D47)},
- {RUNE_C(0x011D90), RUNE_C(0x011D91)},
- {RUNE_C(0x011D95), RUNE_C(0x011D95)},
- {RUNE_C(0x011D97), RUNE_C(0x011D97)},
- {RUNE_C(0x011EF3), RUNE_C(0x011EF4)},
- {RUNE_C(0x011F00), RUNE_C(0x011F01)},
- {RUNE_C(0x011F36), RUNE_C(0x011F3A)},
- {RUNE_C(0x011F40), RUNE_C(0x011F40)},
- {RUNE_C(0x011F42), RUNE_C(0x011F42)},
- {RUNE_C(0x013430), RUNE_C(0x013440)},
- {RUNE_C(0x013447), RUNE_C(0x013455)},
- {RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
- {RUNE_C(0x016B30), RUNE_C(0x016B36)},
- {RUNE_C(0x016B40), RUNE_C(0x016B43)},
- {RUNE_C(0x016F4F), RUNE_C(0x016F4F)},
- {RUNE_C(0x016F8F), RUNE_C(0x016F9F)},
- {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
- {RUNE_C(0x016FE3), RUNE_C(0x016FE4)},
- {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
- {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
- {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
- {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)},
- {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)},
- {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)},
- {RUNE_C(0x01CF30), RUNE_C(0x01CF46)},
- {RUNE_C(0x01D167), RUNE_C(0x01D169)},
- {RUNE_C(0x01D173), RUNE_C(0x01D182)},
- {RUNE_C(0x01D185), RUNE_C(0x01D18B)},
- {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
- {RUNE_C(0x01D242), RUNE_C(0x01D244)},
- {RUNE_C(0x01DA00), RUNE_C(0x01DA36)},
- {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)},
- {RUNE_C(0x01DA75), RUNE_C(0x01DA75)},
- {RUNE_C(0x01DA84), RUNE_C(0x01DA84)},
- {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)},
- {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)},
- {RUNE_C(0x01E000), RUNE_C(0x01E006)},
- {RUNE_C(0x01E008), RUNE_C(0x01E018)},
- {RUNE_C(0x01E01B), RUNE_C(0x01E021)},
- {RUNE_C(0x01E023), RUNE_C(0x01E024)},
- {RUNE_C(0x01E026), RUNE_C(0x01E02A)},
- {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
- {RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
- {RUNE_C(0x01E130), RUNE_C(0x01E13D)},
- {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)},
- {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)},
- {RUNE_C(0x01E4EB), RUNE_C(0x01E4EF)},
- {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
- {RUNE_C(0x01E944), RUNE_C(0x01E94B)},
- {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)},
- {RUNE_C(0x0E0001), RUNE_C(0x0E0001)},
- {RUNE_C(0x0E0020), RUNE_C(0x0E007F)},
- {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)},
+static constexpr unsigned char stage2[][16] = {
+ {0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x90, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x04},
+ {0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF,
+ 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00},
+ {0x3F, 0x00, 0xFF, 0x17, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xC0, 0xBF, 0xFF, 0x3D, 0x00, 0x00},
+ {0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0x24},
+ {0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x01, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0xFE, 0x21, 0xFE, 0x00, 0x0C, 0x00, 0x02, 0x00},
+ {0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+ 0x1E, 0x20, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x40},
+ {0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+ 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00},
+ {0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+ 0xBE, 0x21, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFC},
+ {0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90,
+ 0x1E, 0x20, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00},
+ {0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
+ 0xC1, 0x3D, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x00},
+ {0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90,
+ 0x40, 0x30, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00},
+ {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
+ 0x1E, 0x20, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00},
+ {0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x07,
+ 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x1F,
+ 0x40, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xA0, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F},
+ {0xDF, 0xE0, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFD, 0x66,
+ 0x00, 0x00, 0x00, 0xC3, 0x01, 0x00, 0x1E, 0x00},
+ {0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0C, 0x00,
+ 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x3F,
+ 0x40, 0xFE, 0x8F, 0x20, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0E,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x40, 0x7F, 0xE5, 0x1F, 0xF8, 0x9F},
+ {0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x17,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00},
+ {0x03, 0x00, 0x00, 0x00, 0x3C, 0x3B, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0xA3, 0x03, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xCF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF7, 0xFF, 0xFD, 0x21, 0x10, 0x03},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x01},
+ {0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0,
+ 0x03, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x60},
+ {0x00, 0xF8, 0x00, 0x03, 0x90, 0x7C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xDF, 0xFF, 0x02, 0x80},
+ {0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x20, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3E, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70},
+ {0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F},
+ {0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF7, 0xBF},
+ {0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00},
+ {0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x03},
+ {0x44, 0x08, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x80},
+ {0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00,
+ 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x33,
+ 0x00, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x66, 0x00,
+ 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xC1,
+ 0x02, 0x00, 0x00, 0x20, 0x00, 0x30, 0x58, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xF8, 0x00, 0x0E, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0x08, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80},
+ {0x80, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00},
+ {0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x07},
+ {0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x6E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x80},
+ {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26,
+ 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x07, 0x00, 0x00, 0x00, 0x80, 0xEF, 0x1F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00},
+ {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F,
+ 0x00, 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xD3, 0x40,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0xF8, 0x07, 0x00, 0x00},
+ {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
+ 0x01, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x1F, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x5C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x85,
+ 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0,
+ 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xA7,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xBF, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0xE0, 0xBC, 0x0F, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x06,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF0, 0x0C, 0x01, 0x00, 0x00, 0x00},
+ {0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x79,
+ 0x80, 0x00, 0x7E, 0x0E, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0xFC, 0x7F, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xBF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFC, 0x6D, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xB4,
+ 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00},
+ {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x07,
+ 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x81, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00,
+ 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x6F},
+ {0x00, 0x00, 0x00, 0x60, 0x0F, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF,
+ 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xF8, 0xFF},
+ {0xE7, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x20, 0x00},
+ {0x10, 0x00, 0x00, 0xF8, 0xFE, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x7F, 0xFF, 0xFF, 0xF9, 0xDB, 0x07, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00},
+ {0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8},
+ {0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
+ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00},
};
-_MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
-
bool
uprop_is_ci(rune ch)
{
- return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+ return TESTBIT(stage2[stage1[ch / 128]], ch % 128);
}