aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-08-25 00:24:25 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-08-25 00:24:25 +0200
commit3db6b4427de43ec3ab54f6cec3e1a014780d6890 (patch)
treef279489169b16f60066743fc61152029f1a081de
parent696555b12c73974f27e68c1c2c022dc9e802a48d (diff)
Add simd-unicode
-rw-r--r--c/simd-unicode/.gitignore2
-rw-r--r--c/simd-unicode/Makefile8
-rw-r--r--c/simd-unicode/README18
-rw-r--r--c/simd-unicode/gendata.py5
-rw-r--r--c/simd-unicode/unicode.c152
-rw-r--r--c/simd-unicode/unicode.h3038
6 files changed, 3223 insertions, 0 deletions
diff --git a/c/simd-unicode/.gitignore b/c/simd-unicode/.gitignore
new file mode 100644
index 0000000..ef353d8
--- /dev/null
+++ b/c/simd-unicode/.gitignore
@@ -0,0 +1,2 @@
+out
+unicode
diff --git a/c/simd-unicode/Makefile b/c/simd-unicode/Makefile
new file mode 100644
index 0000000..0858d8a
--- /dev/null
+++ b/c/simd-unicode/Makefile
@@ -0,0 +1,8 @@
+include ../base.mk
+
+all: unicode
+unicode: unicode.c unicode.h
+ $(CC) $(CFLAGS) -mavx512f -lbsd -o $@ $@.c
+
+clean:
+ rm -f unicode
diff --git a/c/simd-unicode/README b/c/simd-unicode/README
new file mode 100644
index 0000000..e072046
--- /dev/null
+++ b/c/simd-unicode/README
@@ -0,0 +1,18 @@
+This is an experiment in using AVX-512 instructions to efficiently lookup
+Unicode properties for runes. It turns out after benchmarking that this
+is actually slower than a generic non-SIMD approach. My hypothesis is
+that it’s slower due to the large latency of AVX-512 gather instructions
+which are required to index the Unicode lookup tables.
+
+UPDATE 1: After replacing the gather instructions with loads/stores and manual
+for-loops to index data, the performance of the AVX-512 approach actually beats
+the generic approach by a small margin (just under 10% or so).
+
+UPDATE 2: Due to the fact that the Unicode tables take up a very large
+amount of space, it’s ideal that you use the smallest datatypes possible.
+After changing both the stage₁ and stage₂ tables to be arrays of bytes as
+opposed to arrays of dwords, the AVX-512 implementation using gather
+instructions no longer works however the variation using manual loops
+with loads/stores does work, albeit slower. On a 27 MiB file the generic
+implementation takes on average 82ms while the AVX-512 implementation
+takes on average 77ms.
diff --git a/c/simd-unicode/gendata.py b/c/simd-unicode/gendata.py
new file mode 100644
index 0000000..32fd3d1
--- /dev/null
+++ b/c/simd-unicode/gendata.py
@@ -0,0 +1,5 @@
+import random
+import sys
+
+runes = (random.randint(1, 0x3000) for _ in range(10_000_000))
+sys.stdout.buffer.write(b''.join(chr(x).encode() for x in runes))
diff --git a/c/simd-unicode/unicode.c b/c/simd-unicode/unicode.c
new file mode 100644
index 0000000..988d9f6
--- /dev/null
+++ b/c/simd-unicode/unicode.c
@@ -0,0 +1,152 @@
+#if !__AVX512F__
+# error "AVX512 intrinsics are required"
+#endif
+
+#define _GNU_SOURCE
+#include <sys/stat.h>
+
+#include <err.h>
+#include <fcntl.h>
+#include <immintrin.h>
+#include <stdalign.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <bsd/stdlib.h>
+
+#include "unicode.h"
+
+#define MIN(x, y) ((x) < (y) ? (x) : (y))
+
+static int unicode_generic(const char *, size_t);
+static int unicode_simd(const char *, size_t);
+static char *readfile(const char *, size_t *);
+
+int
+main(int argc, char **argv)
+{
+ if (argc != 2) {
+ fprintf(stderr, "Usage: %s file\n", getprogname());
+ exit(EXIT_FAILURE);
+ }
+
+ size_t n;
+ int rv = EXIT_SUCCESS;
+ const char *s = readfile(argv[1], &n);
+
+ clock_t tmbeg = clock();
+ printf("%d: ", unicode_generic(s, n));
+ printf("Elapsed time: %.3fs\n", (double)(clock() - tmbeg) / CLOCKS_PER_SEC);
+
+ tmbeg = clock();
+ printf("%d: ", unicode_simd(s, n));
+ printf("Elapsed time: %.3fs\n", (double)(clock() - tmbeg) / CLOCKS_PER_SEC);
+
+ return rv;
+}
+
+int
+unicode_generic(const char *s, size_t n)
+{
+ int acc = 0;
+ while (n > 0) {
+ rune ch;
+ int w = u8tor(&ch, s);
+ acc += stage2[stage1[ch / CCCBLKSIZ]][ch % CCCBLKSIZ];
+ s += w;
+ n -= w;
+ }
+ return acc;
+}
+
+int
+unicode_simd(const char *s, size_t n)
+{
+ int acc = 0;
+ const __m512i modmsk = _mm512_set1_epi32(CCCBLKSIZ - 1);
+
+ while (n > 0) {
+ int w = 0;
+ alignas(64) uint32_t data[16];
+
+ w += u8tor(&data[ 0], s + w);
+ w += u8tor(&data[ 1], s + w);
+ w += u8tor(&data[ 2], s + w);
+ w += u8tor(&data[ 3], s + w);
+ w += u8tor(&data[ 4], s + w);
+ w += u8tor(&data[ 5], s + w);
+ w += u8tor(&data[ 6], s + w);
+ w += u8tor(&data[ 7], s + w);
+ w += u8tor(&data[ 8], s + w);
+ w += u8tor(&data[ 9], s + w);
+ w += u8tor(&data[10], s + w);
+ w += u8tor(&data[11], s + w);
+ w += u8tor(&data[12], s + w);
+ w += u8tor(&data[13], s + w);
+ w += u8tor(&data[14], s + w);
+ w += u8tor(&data[15], s + w);
+
+ s += w;
+ n -= w;
+
+ __m512i vec = _mm512_load_epi32(data);
+ __m512i vidx = _mm512_srli_epi32(vec, CCCBLKSIZ_LOG2); /* vidx = vec / CCCBLKSZ */
+#if USE_GATHER
+ vidx = _mm512_i32gather_epi32(vidx, stage1, sizeof(rune));
+#else
+ _mm512_store_epi32(data, vidx);
+ for (int i = 0; i < 16; i++)
+ data[i] = stage1[data[i]];
+ vidx = _mm512_load_epi32(data);
+#endif
+ vidx = _mm512_slli_epi32(vidx, CCCBLKSIZ_LOG2);
+ vec = _mm512_and_epi32(vec, modmsk);
+ vidx = _mm512_add_epi32(vidx, vec);
+#if USE_GATHER
+ vec = _mm512_i32gather_epi32(vidx, stage2, sizeof(rune));
+ _mm512_store_epi32(data, vec);
+#else
+ _mm512_store_epi32(data, vidx);
+ for (int i = 0; i < 16; i++)
+ data[i] = ((uprop_ccc_t *)stage2)[data[i]];
+#endif
+
+ for (int i = 0; i < 16; i++)
+ acc += (uprop_ccc_t)data[i];
+ }
+
+ return acc;
+}
+
+char *
+readfile(const char *filename, size_t *n)
+{
+ int fd = open(filename, O_RDONLY);
+ if (fd == -1)
+ err(1, "open: %s", filename);
+
+ struct stat sb;
+ if (fstat(fd, &sb) == -1)
+ err(1, "fstat: %s", filename);
+
+ char *p = malloc(sb.st_size + 4);
+ if (p == NULL)
+ err(1, "malloc");
+
+ ssize_t nr;
+ for (size_t off = 0; (nr = read(fd, p + off, sb.st_blksize)) > 0; off += nr)
+ ;
+ if (nr == -1)
+ err(1, "read: %s", filename);
+
+ p[sb.st_size + 0] =
+ p[sb.st_size + 1] =
+ p[sb.st_size + 2] =
+ p[sb.st_size + 3] = 0;
+
+ *n = sb.st_size;
+ close(fd);
+ return p;
+}
diff --git a/c/simd-unicode/unicode.h b/c/simd-unicode/unicode.h
new file mode 100644
index 0000000..7bcc70d
--- /dev/null
+++ b/c/simd-unicode/unicode.h
@@ -0,0 +1,3038 @@
+#ifndef UNICODE_H
+#define UNICODE_H
+
+#include <stdint.h>
+
+#define CCCBLKSIZ (64)
+#define CCCBLKSIZ_LOG2 (6)
+
+typedef uint_least32_t rune;
+typedef uint8_t uprop_ccc_t;
+
+#define CCC_NR ((uprop_ccc_t)0) /* Not Reordered */
+#define CCC_OV ((uprop_ccc_t)1) /* Overlay */
+#define CCC_HANR ((uprop_ccc_t)6) /* Han Reading */
+#define CCC_NK ((uprop_ccc_t)7) /* Nukta */
+#define CCC_KV ((uprop_ccc_t)8) /* Kana Voicing */
+#define CCC_VR ((uprop_ccc_t)9) /* Virama */
+#define CCC_10 ((uprop_ccc_t)10) /* CCC10 */
+#define CCC_11 ((uprop_ccc_t)11) /* CCC11 */
+#define CCC_12 ((uprop_ccc_t)12) /* CCC12 */
+#define CCC_13 ((uprop_ccc_t)13) /* CCC13 */
+#define CCC_14 ((uprop_ccc_t)14) /* CCC14 */
+#define CCC_15 ((uprop_ccc_t)15) /* CCC15 */
+#define CCC_16 ((uprop_ccc_t)16) /* CCC16 */
+#define CCC_17 ((uprop_ccc_t)17) /* CCC17 */
+#define CCC_18 ((uprop_ccc_t)18) /* CCC18 */
+#define CCC_19 ((uprop_ccc_t)19) /* CCC19 */
+#define CCC_20 ((uprop_ccc_t)20) /* CCC20 */
+#define CCC_21 ((uprop_ccc_t)21) /* CCC21 */
+#define CCC_22 ((uprop_ccc_t)22) /* CCC22 */
+#define CCC_23 ((uprop_ccc_t)23) /* CCC23 */
+#define CCC_24 ((uprop_ccc_t)24) /* CCC24 */
+#define CCC_25 ((uprop_ccc_t)25) /* CCC25 */
+#define CCC_26 ((uprop_ccc_t)26) /* CCC26 */
+#define CCC_27 ((uprop_ccc_t)27) /* CCC27 */
+#define CCC_28 ((uprop_ccc_t)28) /* CCC28 */
+#define CCC_29 ((uprop_ccc_t)29) /* CCC29 */
+#define CCC_30 ((uprop_ccc_t)30) /* CCC30 */
+#define CCC_31 ((uprop_ccc_t)31) /* CCC31 */
+#define CCC_32 ((uprop_ccc_t)32) /* CCC32 */
+#define CCC_33 ((uprop_ccc_t)33) /* CCC33 */
+#define CCC_34 ((uprop_ccc_t)34) /* CCC34 */
+#define CCC_35 ((uprop_ccc_t)35) /* CCC35 */
+#define CCC_36 ((uprop_ccc_t)36) /* CCC36 */
+#define CCC_84 ((uprop_ccc_t)84) /* CCC84 */
+#define CCC_91 ((uprop_ccc_t)91) /* CCC91 */
+#define CCC_103 ((uprop_ccc_t)103) /* CCC103 */
+#define CCC_107 ((uprop_ccc_t)107) /* CCC107 */
+#define CCC_118 ((uprop_ccc_t)118) /* CCC118 */
+#define CCC_122 ((uprop_ccc_t)122) /* CCC122 */
+#define CCC_129 ((uprop_ccc_t)129) /* CCC129 */
+#define CCC_130 ((uprop_ccc_t)130) /* CCC130 */
+#define CCC_132 ((uprop_ccc_t)132) /* CCC132 */
+#define CCC_133 ((uprop_ccc_t)133) /* CCC133 */
+#define CCC_ATBL ((uprop_ccc_t)200) /* Attached Below Left */
+#define CCC_ATB ((uprop_ccc_t)202) /* Attached Below */
+#define CCC_ATA ((uprop_ccc_t)214) /* Attached Above */
+#define CCC_ATAR ((uprop_ccc_t)216) /* Attached Above Right */
+#define CCC_BL ((uprop_ccc_t)218) /* Below Left */
+#define CCC_B ((uprop_ccc_t)220) /* Below */
+#define CCC_BR ((uprop_ccc_t)222) /* Below Right */
+#define CCC_L ((uprop_ccc_t)224) /* Left */
+#define CCC_R ((uprop_ccc_t)226) /* Right */
+#define CCC_AL ((uprop_ccc_t)228) /* Above Left */
+#define CCC_A ((uprop_ccc_t)230) /* Above */
+#define CCC_AR ((uprop_ccc_t)232) /* Above Right */
+#define CCC_DB ((uprop_ccc_t)233) /* Double Below */
+#define CCC_DA ((uprop_ccc_t)234) /* Double Above */
+#define CCC_IS ((uprop_ccc_t)240) /* Iota Subscript */
+
+static const uint8_t stage1[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0,
+ 0, 0, 3, 0, 0, 0, 4, 5, 6, 7, 0, 8, 9, 10, 0, 11,
+ 12, 13, 14, 15, 16, 17, 16, 18, 16, 19, 16, 19, 16, 19, 0, 19,
+ 16, 20, 16, 19, 21, 19, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 35,
+ 0, 0, 36, 0, 37, 0, 0, 0, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 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, 50, 0, 51, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0,
+ 53, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, 57, 0, 0, 0, 0,
+ 58, 0, 0, 59, 60, 61, 62, 63, 0, 0, 64, 65, 0, 0, 0, 66,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 70, 0, 71, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 73, 0, 0, 0, 0,
+ 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 75, 76, 0, 77, 78, 0,
+ 0, 79, 80, 0, 81, 62, 0, 82, 83, 0, 0, 84, 85, 86, 0, 0,
+ 0, 87, 0, 88, 0, 0, 51, 89, 51, 0, 90, 0, 91, 0, 0, 0,
+ 80, 0, 0, 0, 92, 93, 0, 94, 95, 96, 97, 0, 0, 0, 0, 0,
+ 51, 0, 0, 0, 0, 98, 99, 0, 0, 0, 0, 0, 0, 100, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 105, 106, 0, 0, 107, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 108, 0, 109, 0, 102, 0, 0, 0, 0, 0, 110, 111, 0, 0, 0, 0,
+ 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 113, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+};
+
+static const uprop_ccc_t stage2[][64] = {
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_AR, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_AR, CCC_ATAR,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_ATB, CCC_ATB, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_ATB,
+ CCC_ATB, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_OV, CCC_OV, CCC_OV, CCC_OV,
+ CCC_OV, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_A, CCC_A, CCC_A},
+ {CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_IS, CCC_A, CCC_B,
+ CCC_B, CCC_B, CCC_A, CCC_A,
+ CCC_A, CCC_B, CCC_B, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_A,
+ CCC_AR, CCC_B, CCC_B, CCC_A,
+ CCC_DB, CCC_DA, CCC_DA, CCC_DB,
+ CCC_DA, CCC_DA, CCC_DB, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_A, CCC_BR, CCC_B,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_BR, CCC_AL, CCC_A,
+ CCC_10, CCC_11, CCC_12, CCC_13,
+ CCC_14, CCC_15, CCC_16, CCC_17,
+ CCC_18, CCC_19, CCC_19, CCC_20,
+ CCC_21, CCC_22, CCC_NR, CCC_23},
+ {CCC_NR, CCC_24, CCC_25, CCC_NR,
+ CCC_A, CCC_B, CCC_NR, CCC_18,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_30, CCC_31, CCC_32, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_27,
+ CCC_28, CCC_29, CCC_30, CCC_31,
+ CCC_32, CCC_33, CCC_34, CCC_A,
+ CCC_A, CCC_B, CCC_B, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_B, CCC_A, CCC_A, CCC_B,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_35, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_B,
+ CCC_A, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_NR, CCC_B, CCC_A,
+ CCC_A, CCC_B, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_36, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_B, CCC_A, CCC_A,
+ CCC_B, CCC_A, CCC_A, CCC_B,
+ CCC_B, CCC_B, CCC_A, CCC_B,
+ CCC_B, CCC_A, CCC_B, CCC_A},
+ {CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_B, CCC_A, CCC_B, CCC_A,
+ CCC_B, CCC_A, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_B, CCC_B,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_B, CCC_B, CCC_B,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_B,
+ CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_B, CCC_A, CCC_A,
+ CCC_A, CCC_B, CCC_B, CCC_B,
+ CCC_27, CCC_28, CCC_29, CCC_A,
+ CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_B, CCC_B, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NK, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_84, CCC_91, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_103, CCC_103, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_107, CCC_107, CCC_107, CCC_107,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_118, CCC_118, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_122, CCC_122, CCC_122, CCC_122,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_B, CCC_B, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_NR, CCC_B,
+ CCC_NR, CCC_ATAR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_129, CCC_130, CCC_NR,
+ CCC_132, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_130, CCC_130,
+ CCC_130, CCC_130, CCC_NR, CCC_NR},
+ {CCC_130, CCC_NR, CCC_A, CCC_A,
+ CCC_VR, CCC_NR, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_B, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NK,
+ CCC_NR, CCC_VR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_AL, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_BR, CCC_A, CCC_B,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_B, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_B},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_A,
+ CCC_A, CCC_B, CCC_NR, CCC_B},
+ {CCC_B, CCC_A, CCC_A, CCC_B,
+ CCC_B, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NK, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_B, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_VR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NK, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_VR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NK,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_NR,
+ CCC_OV, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_A, CCC_A,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_A, CCC_NR, CCC_OV, CCC_OV,
+ CCC_OV, CCC_OV, CCC_OV, CCC_OV,
+ CCC_OV, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_B, CCC_A,
+ CCC_A, CCC_DA, CCC_ATA, CCC_B,
+ CCC_ATB, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_AR, CCC_AL,
+ CCC_AL, CCC_B, CCC_BL, CCC_A,
+ CCC_DB, CCC_B, CCC_A, CCC_B},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_OV, CCC_OV,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_OV, CCC_OV, CCC_OV, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_OV, CCC_OV, CCC_A,
+ CCC_B, CCC_A, CCC_OV, CCC_OV,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_BL, CCC_AL,
+ CCC_AR, CCC_BR, CCC_L, CCC_L,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_KV, CCC_KV, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_B,
+ CCC_B, CCC_B, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NK,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_NR, CCC_A, CCC_A,
+ CCC_B, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A},
+ {CCC_NR, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_26, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_B, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_NR, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_OV, CCC_B, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_A, CCC_B, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_B, CCC_B, CCC_B},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_B, CCC_B,
+ CCC_A, CCC_A, CCC_A, CCC_B,
+ CCC_A, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_A, CCC_B,
+ CCC_A, CCC_B, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NK, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_A, CCC_A, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NK, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NK, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NK, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NK,
+ CCC_NK, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NK, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_VR, CCC_NK,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NK, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_VR, CCC_NK,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_VR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NK,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_VR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NK, CCC_NR,
+ CCC_VR, CCC_VR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_VR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_VR, CCC_VR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_OV, CCC_OV, CCC_OV, CCC_OV,
+ CCC_OV, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_HANR, CCC_HANR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_OV, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_ATAR, CCC_ATAR, CCC_OV,
+ CCC_OV, CCC_OV, CCC_NR, CCC_NR,
+ CCC_NR, CCC_R, CCC_ATAR, CCC_ATAR,
+ CCC_ATAR, CCC_ATAR, CCC_ATAR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_B},
+ {CCC_B, CCC_B, CCC_B, CCC_NR,
+ CCC_NR, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_B, CCC_B,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_NR, CCC_NR, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NR, CCC_A,
+ CCC_A, CCC_NR, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_A, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_AR, CCC_AR, CCC_B, CCC_A,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_B, CCC_B, CCC_B, CCC_B,
+ CCC_B, CCC_B, CCC_B, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+ {CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_A, CCC_A, CCC_A, CCC_A,
+ CCC_A, CCC_A, CCC_NK, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR,
+ CCC_NR, CCC_NR, CCC_NR, CCC_NR},
+};
+
+#define u8byte1(x) (((x) & 0x80) == 0x00)
+#define u8byte2(x) (((x) & 0xE0) == 0xC0)
+#define u8byte3(x) (((x) & 0xF0) == 0xE0)
+#define u8byte4(x) (((x) & 0xF8) == 0xF0)
+
+static int
+u8tor(rune *ch, const char *s)
+{
+ if (s[0] == 0) {
+ *ch = 0;
+ return 0;
+ } else if (u8byte1(s[0])) {
+ *ch = s[0];
+ return 1;
+ } else if (u8byte2(s[0])) {
+ *ch = ((s[0] & 0x1F) << 6)
+ | ((s[1] & 0x3F) << 0);
+ return 2;
+ } else if (u8byte3(s[0])) {
+ *ch = ((s[0] & 0x0F) << 12)
+ | ((s[1] & 0x3F) << 6)
+ | ((s[2] & 0x3F) << 0);
+ return 3;
+ } else if (u8byte4(s[0])) {
+ *ch = ((s[0] & 0x07) << 18)
+ | ((s[1] & 0x3F) << 12)
+ | ((s[2] & 0x3F) << 6)
+ | ((s[3] & 0x3F) << 0);
+ return 4;
+ }
+ __builtin_unreachable();
+}
+
+#endif /* !UNICODE_H */