--- a/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -317,3 +317,4 @@
61d2d0629b6dbf4c091dc86151ade1b3ef34fffe jdk9-b72
9b3a9d72f07b40c648de79961679f42283af1bb5 jdk9-b73
7c577fda1855d03c04546694d514678f596508c9 jdk9-b74
+f55df5cfe11c97e4b58998b76f5bd00a73cde12d jdk9-b75
--- a/.hgtags-top-repo Mon Aug 03 15:48:33 2015 -0500
+++ b/.hgtags-top-repo Mon Aug 03 16:33:06 2015 -0700
@@ -317,3 +317,4 @@
8582c35016fb6211b373810b6b172feccf9c483b jdk9-b72
4c2cbaae528bce970dabbb5676005d379357f4b6 jdk9-b73
57f3134853ecdd4a3ee2d4d26f22ba981d653d79 jdk9-b74
+8fd6eeb878606e39c908f12535f34ebbfd225a4a jdk9-b75
--- a/corba/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/corba/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -317,3 +317,4 @@
f9f3706bd24c42c07cb260fe05730a749b8e52f4 jdk9-b72
29096b78d93b01a2f8882509cd40755e3d6b8cd9 jdk9-b73
622fe934e351e89107edf3c667d6b57f543f58f1 jdk9-b74
+960b56805abd8460598897481820bd6a75f979e7 jdk9-b75
--- a/hotspot/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -477,3 +477,4 @@
c1b2825ef47e75cb34dd18450d1c4280b7c5853c jdk9-b72
e37d432868be0aa7cb5e0f3d7caff1e825d8ead3 jdk9-b73
fff6b54e9770ac4c12c2fb4cab5aa7672affa4bd jdk9-b74
+2f354281e9915275693c4e519a959b8a6f22d3a3 jdk9-b75
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad Mon Aug 03 16:33:06 2015 -0700
@@ -14101,7 +14101,7 @@
instruct vsub2F(vecD dst, vecD src1, vecD src2)
%{
predicate(n->as_Vector()->length() == 2);
- match(Set dst (AddVF src1 src2));
+ match(Set dst (SubVF src1 src2));
ins_cost(INSN_COST);
format %{ "fsub $dst,$src1,$src2\t# vector (2S)" %}
ins_encode %{
--- a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -261,7 +261,7 @@
// LoadStoreExclusiveOp
__ stxr(r20, r21, r2); // stxr w20, x21, [x2]
- __ stlxr(r7, r29, r7); // stlxr w7, x29, [x7]
+ __ stlxr(r5, r29, r7); // stlxr w5, x29, [x7]
__ ldxr(r5, r16); // ldxr x5, [x16]
__ ldaxr(r27, r29); // ldaxr x27, [x29]
__ stlr(r0, r29); // stlr x0, [x29]
@@ -295,7 +295,7 @@
__ ldxp(r8, r2, r19); // ldxp x8, x2, [x19]
__ ldaxp(r7, r19, r14); // ldaxp x7, x19, [x14]
__ stxp(r8, r27, r28, r5); // stxp w8, x27, x28, [x5]
- __ stlxp(r6, r8, r14, r6); // stlxp w6, x8, x14, [x6]
+ __ stlxp(r5, r8, r14, r6); // stlxp w5, x8, x14, [x6]
// LoadStoreExclusiveOp
__ ldxpw(r25, r4, r22); // ldxp w25, w4, [x22]
@@ -768,7 +768,7 @@
24c: d61f0040 br x2
250: d63f00a0 blr x5
254: c8147c55 stxr w20, x21, [x2]
- 258: c807fcfd stlxr w7, x29, [x7]
+ 258: c805fcfd stlxr w5, x29, [x7]
25c: c85f7e05 ldxr x5, [x16]
260: c85fffbb ldaxr x27, [x29]
264: c89fffa0 stlr x0, [x29]
@@ -794,7 +794,7 @@
2b4: c87f0a68 ldxp x8, x2, [x19]
2b8: c87fcdc7 ldaxp x7, x19, [x14]
2bc: c82870bb stxp w8, x27, x28, [x5]
- 2c0: c826b8c8 stlxp w6, x8, x14, [x6]
+ 2c0: c825b8c8 stlxp w5, x8, x14, [x6]
2c4: 887f12d9 ldxp w25, w4, [x22]
2c8: 887fb9ee ldaxp w14, w14, [x15]
2cc: 8834215a stxp w20, w26, w8, [x10]
@@ -1084,14 +1084,14 @@
0xd4063721, 0xd4035082, 0xd400bfe3, 0xd4282fc0,
0xd444c320, 0xd503201f, 0xd69f03e0, 0xd6bf03e0,
0xd5033fdf, 0xd5033f9f, 0xd5033abf, 0xd61f0040,
- 0xd63f00a0, 0xc8147c55, 0xc807fcfd, 0xc85f7e05,
+ 0xd63f00a0, 0xc8147c55, 0xc805fcfd, 0xc85f7e05,
0xc85fffbb, 0xc89fffa0, 0xc8dfff95, 0x88187cf8,
0x8815ff9a, 0x885f7cd5, 0x885fffcf, 0x889ffc73,
0x88dffc56, 0x48127c0f, 0x480bff85, 0x485f7cdd,
0x485ffcf2, 0x489fff99, 0x48dffe62, 0x080a7c3e,
0x0814fed5, 0x085f7c59, 0x085ffcb8, 0x089ffc70,
0x08dfffb6, 0xc87f0a68, 0xc87fcdc7, 0xc82870bb,
- 0xc826b8c8, 0x887f12d9, 0x887fb9ee, 0x8834215a,
+ 0xc825b8c8, 0x887f12d9, 0x887fb9ee, 0x8834215a,
0x8837ca52, 0xf806317e, 0xb81b3337, 0x39000dc2,
0x78005149, 0xf84391f4, 0xb85b220c, 0x385fd356,
0x785d127e, 0x389f4149, 0x79801e3c, 0x79c014a3,
--- a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -1106,11 +1106,13 @@
#define INSN4(NAME, sz, op, o0) /* Four registers */ \
void NAME(Register Rs, Register Rt1, Register Rt2, Register Rn) { \
+ assert(Rs != Rn, "unpredictable instruction"); \
load_store_exclusive(Rs, Rt1, Rt2, Rn, sz, op, o0); \
}
#define INSN3(NAME, sz, op, o0) /* Three registers */ \
void NAME(Register Rs, Register Rt, Register Rn) { \
+ assert(Rs != Rn, "unpredictable instruction"); \
load_store_exclusive(Rs, Rt, (Register)0b11111, Rn, sz, op, o0); \
}
--- a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -33,6 +33,7 @@
#include "compiler/disassembler.hpp"
#include "memory/resourceArea.hpp"
#include "nativeInst_aarch64.hpp"
+#include "oops/klass.inline.hpp"
#include "opto/compile.hpp"
#include "opto/node.hpp"
#include "runtime/biasedLocking.hpp"
@@ -3791,8 +3792,8 @@
br(Assembler::HI, slow_case);
// If heap_top hasn't been changed by some other thread, update it.
- stlxr(rscratch1, end, rscratch1);
- cbnzw(rscratch1, retry);
+ stlxr(rscratch2, end, rscratch1);
+ cbnzw(rscratch2, retry);
}
}
--- a/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2012, 2013 SAP AG. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2012, 2015 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
address generate_empty_entry(void) { return generate_jump_to_normal_entry(); }
address generate_Reference_get_entry(void);
- // Not supported
- address generate_CRC32_update_entry() { return NULL; }
- address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind) { return NULL; }
+ address generate_CRC32_update_entry();
+ address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind);
+
#endif // CPU_PPC_VM_INTERPRETERGENERATOR_PPC_HPP
--- a/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -50,6 +50,7 @@
#else
#define BLOCK_COMMENT(str) block_comment(str)
#endif
+#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
#ifdef ASSERT
// On RISC, there's no benefit to verifying instruction boundaries.
@@ -3433,6 +3434,418 @@
bind(Ldone_false);
}
+// Helpers for Intrinsic Emitters
+//
+// Revert the byte order of a 32bit value in a register
+// src: 0x44556677
+// dst: 0x77665544
+// Three steps to obtain the result:
+// 1) Rotate src (as doubleword) left 5 bytes. That puts the leftmost byte of the src word
+// into the rightmost byte position. Afterwards, everything left of the rightmost byte is cleared.
+// This value initializes dst.
+// 2) Rotate src (as word) left 3 bytes. That puts the rightmost byte of the src word into the leftmost
+// byte position. Furthermore, byte 5 is rotated into byte 6 position where it is supposed to go.
+// This value is mask inserted into dst with a [0..23] mask of 1s.
+// 3) Rotate src (as word) left 1 byte. That puts byte 6 into byte 5 position.
+// This value is mask inserted into dst with a [8..15] mask of 1s.
+void MacroAssembler::load_reverse_32(Register dst, Register src) {
+ assert_different_registers(dst, src);
+
+ rldicl(dst, src, (4+1)*8, 56); // Rotate byte 4 into position 7 (rightmost), clear all to the left.
+ rlwimi(dst, src, 3*8, 0, 23); // Insert byte 5 into position 6, 7 into 4, leave pos 7 alone.
+ rlwimi(dst, src, 1*8, 8, 15); // Insert byte 6 into position 5, leave the rest alone.
+}
+
+// Calculate the column addresses of the crc32 lookup table into distinct registers.
+// This loop-invariant calculation is moved out of the loop body, reducing the loop
+// body size from 20 to 16 instructions.
+// Returns the offset that was used to calculate the address of column tc3.
+// Due to register shortage, setting tc3 may overwrite table. With the return offset
+// at hand, the original table address can be easily reconstructed.
+int MacroAssembler::crc32_table_columns(Register table, Register tc0, Register tc1, Register tc2, Register tc3) {
+
+#ifdef VM_LITTLE_ENDIAN
+ // This is what we implement (the DOLIT4 part):
+ // ========================================================================= */
+ // #define DOLIT4 c ^= *buf4++; \
+ // c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
+ // crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24]
+ // #define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4
+ // ========================================================================= */
+ const int ix0 = 3*(4*CRC32_COLUMN_SIZE);
+ const int ix1 = 2*(4*CRC32_COLUMN_SIZE);
+ const int ix2 = 1*(4*CRC32_COLUMN_SIZE);
+ const int ix3 = 0*(4*CRC32_COLUMN_SIZE);
+#else
+ // This is what we implement (the DOBIG4 part):
+ // =========================================================================
+ // #define DOBIG4 c ^= *++buf4; \
+ // c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
+ // crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
+ // #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
+ // =========================================================================
+ const int ix0 = 4*(4*CRC32_COLUMN_SIZE);
+ const int ix1 = 5*(4*CRC32_COLUMN_SIZE);
+ const int ix2 = 6*(4*CRC32_COLUMN_SIZE);
+ const int ix3 = 7*(4*CRC32_COLUMN_SIZE);
+#endif
+ assert_different_registers(table, tc0, tc1, tc2);
+ assert(table == tc3, "must be!");
+
+ if (ix0 != 0) addi(tc0, table, ix0);
+ if (ix1 != 0) addi(tc1, table, ix1);
+ if (ix2 != 0) addi(tc2, table, ix2);
+ if (ix3 != 0) addi(tc3, table, ix3);
+
+ return ix3;
+}
+
+/**
+ * uint32_t crc;
+ * timesXtoThe32[crc & 0xFF] ^ (crc >> 8);
+ */
+void MacroAssembler::fold_byte_crc32(Register crc, Register val, Register table, Register tmp) {
+ assert_different_registers(crc, table, tmp);
+ assert_different_registers(val, table);
+
+ if (crc == val) { // Must rotate first to use the unmodified value.
+ rlwinm(tmp, val, 2, 24-2, 31-2); // Insert (rightmost) byte 7 of val, shifted left by 2, into byte 6..7 of tmp, clear the rest.
+ // As we use a word (4-byte) instruction, we have to adapt the mask bit positions.
+ srwi(crc, crc, 8); // Unsigned shift, clear leftmost 8 bits.
+ } else {
+ srwi(crc, crc, 8); // Unsigned shift, clear leftmost 8 bits.
+ rlwinm(tmp, val, 2, 24-2, 31-2); // Insert (rightmost) byte 7 of val, shifted left by 2, into byte 6..7 of tmp, clear the rest.
+ }
+ lwzx(tmp, table, tmp);
+ xorr(crc, crc, tmp);
+}
+
+/**
+ * uint32_t crc;
+ * timesXtoThe32[crc & 0xFF] ^ (crc >> 8);
+ */
+void MacroAssembler::fold_8bit_crc32(Register crc, Register table, Register tmp) {
+ fold_byte_crc32(crc, crc, table, tmp);
+}
+
+/**
+ * Emits code to update CRC-32 with a byte value according to constants in table.
+ *
+ * @param [in,out]crc Register containing the crc.
+ * @param [in]val Register containing the byte to fold into the CRC.
+ * @param [in]table Register containing the table of crc constants.
+ *
+ * uint32_t crc;
+ * val = crc_table[(val ^ crc) & 0xFF];
+ * crc = val ^ (crc >> 8);
+ */
+void MacroAssembler::update_byte_crc32(Register crc, Register val, Register table) {
+ BLOCK_COMMENT("update_byte_crc32:");
+ xorr(val, val, crc);
+ fold_byte_crc32(crc, val, table, val);
+}
+
+/**
+ * @param crc register containing existing CRC (32-bit)
+ * @param buf register pointing to input byte buffer (byte*)
+ * @param len register containing number of bytes
+ * @param table register pointing to CRC table
+ */
+void MacroAssembler::update_byteLoop_crc32(Register crc, Register buf, Register len, Register table,
+ Register data, bool loopAlignment, bool invertCRC) {
+ assert_different_registers(crc, buf, len, table, data);
+
+ Label L_mainLoop, L_done;
+ const int mainLoop_stepping = 1;
+ const int mainLoop_alignment = loopAlignment ? 32 : 4; // (InputForNewCode > 4 ? InputForNewCode : 32) : 4;
+
+ // Process all bytes in a single-byte loop.
+ cmpdi(CCR0, len, 0); // Anything to do?
+ mtctr(len);
+ beq(CCR0, L_done);
+
+ if (invertCRC) {
+ nand(crc, crc, crc); // ~c
+ }
+
+ align(mainLoop_alignment);
+ BIND(L_mainLoop);
+ lbz(data, 0, buf); // Byte from buffer, zero-extended.
+ addi(buf, buf, mainLoop_stepping); // Advance buffer position.
+ update_byte_crc32(crc, data, table);
+ bdnz(L_mainLoop); // Iterate.
+
+ if (invertCRC) {
+ nand(crc, crc, crc); // ~c
+ }
+
+ bind(L_done);
+}
+
+/**
+ * Emits code to update CRC-32 with a 4-byte value according to constants in table
+ * Implementation according to jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.c
+ */
+// A not on the lookup table address(es):
+// The lookup table consists of two sets of four columns each.
+// The columns {0..3} are used for little-endian machines.
+// The columns {4..7} are used for big-endian machines.
+// To save the effort of adding the column offset to the table address each time
+// a table element is looked up, it is possible to pass the pre-calculated
+// column addresses.
+// Uses R9..R12 as work register. Must be saved/restored by caller, if necessary.
+void MacroAssembler::update_1word_crc32(Register crc, Register buf, Register table, int bufDisp, int bufInc,
+ Register t0, Register t1, Register t2, Register t3,
+ Register tc0, Register tc1, Register tc2, Register tc3) {
+ assert_different_registers(crc, t3);
+
+ // XOR crc with next four bytes of buffer.
+ lwz(t3, bufDisp, buf);
+ if (bufInc != 0) {
+ addi(buf, buf, bufInc);
+ }
+ xorr(t3, t3, crc);
+
+ // Chop crc into 4 single-byte pieces, shifted left 2 bits, to form the table indices.
+ rlwinm(t0, t3, 2, 24-2, 31-2); // ((t1 >> 0) & 0xff) << 2
+ rlwinm(t1, t3, 32+(2- 8), 24-2, 31-2); // ((t1 >> 8) & 0xff) << 2
+ rlwinm(t2, t3, 32+(2-16), 24-2, 31-2); // ((t1 >> 16) & 0xff) << 2
+ rlwinm(t3, t3, 32+(2-24), 24-2, 31-2); // ((t1 >> 24) & 0xff) << 2
+
+ // Use the pre-calculated column addresses.
+ // Load pre-calculated table values.
+ lwzx(t0, tc0, t0);
+ lwzx(t1, tc1, t1);
+ lwzx(t2, tc2, t2);
+ lwzx(t3, tc3, t3);
+
+ // Calculate new crc from table values.
+ xorr(t0, t0, t1);
+ xorr(t2, t2, t3);
+ xorr(crc, t0, t2); // Now crc contains the final checksum value.
+}
+
+/**
+ * @param crc register containing existing CRC (32-bit)
+ * @param buf register pointing to input byte buffer (byte*)
+ * @param len register containing number of bytes
+ * @param table register pointing to CRC table
+ *
+ * Uses R9..R12 as work register. Must be saved/restored by caller!
+ */
+void MacroAssembler::kernel_crc32_2word(Register crc, Register buf, Register len, Register table,
+ Register t0, Register t1, Register t2, Register t3,
+ Register tc0, Register tc1, Register tc2, Register tc3) {
+ assert_different_registers(crc, buf, len, table);
+
+ Label L_mainLoop, L_tail;
+ Register tmp = t0;
+ Register data = t0;
+ Register tmp2 = t1;
+ const int mainLoop_stepping = 8;
+ const int tailLoop_stepping = 1;
+ const int log_stepping = exact_log2(mainLoop_stepping);
+ const int mainLoop_alignment = 32; // InputForNewCode > 4 ? InputForNewCode : 32;
+ const int complexThreshold = 2*mainLoop_stepping;
+
+ // Don't test for len <= 0 here. This pathological case should not occur anyway.
+ // Optimizing for it by adding a test and a branch seems to be a waste of CPU cycles.
+ // The situation itself is detected and handled correctly by the conditional branches
+ // following aghi(len, -stepping) and aghi(len, +stepping).
+ assert(tailLoop_stepping == 1, "check tailLoop_stepping!");
+
+ BLOCK_COMMENT("kernel_crc32_2word {");
+
+ nand(crc, crc, crc); // ~c
+
+ // Check for short (<mainLoop_stepping) buffer.
+ cmpdi(CCR0, len, complexThreshold);
+ blt(CCR0, L_tail);
+
+ // Pre-mainLoop alignment did show a slight (1%) positive effect on performance.
+ // We leave the code in for reference. Maybe we need alignment when we exploit vector instructions.
+ {
+ // Align buf addr to mainLoop_stepping boundary.
+ neg(tmp2, buf); // Calculate # preLoop iterations for alignment.
+ rldicl(tmp2, tmp2, 0, 64-log_stepping); // Rotate tmp2 0 bits, insert into tmp2, anding with mask with 1s from 62..63.
+
+ if (complexThreshold > mainLoop_stepping) {
+ sub(len, len, tmp2); // Remaining bytes for main loop (>=mainLoop_stepping is guaranteed).
+ } else {
+ sub(tmp, len, tmp2); // Remaining bytes for main loop.
+ cmpdi(CCR0, tmp, mainLoop_stepping);
+ blt(CCR0, L_tail); // For less than one mainloop_stepping left, do only tail processing
+ mr(len, tmp); // remaining bytes for main loop (>=mainLoop_stepping is guaranteed).
+ }
+ update_byteLoop_crc32(crc, buf, tmp2, table, data, false, false);
+ }
+
+ srdi(tmp2, len, log_stepping); // #iterations for mainLoop
+ andi(len, len, mainLoop_stepping-1); // remaining bytes for tailLoop
+ mtctr(tmp2);
+
+#ifdef VM_LITTLE_ENDIAN
+ Register crc_rv = crc;
+#else
+ Register crc_rv = tmp; // Load_reverse needs separate registers to work on.
+ // Occupies tmp, but frees up crc.
+ load_reverse_32(crc_rv, crc); // Revert byte order because we are dealing with big-endian data.
+ tmp = crc;
+#endif
+
+ int reconstructTableOffset = crc32_table_columns(table, tc0, tc1, tc2, tc3);
+
+ align(mainLoop_alignment); // Octoword-aligned loop address. Shows 2% improvement.
+ BIND(L_mainLoop);
+ update_1word_crc32(crc_rv, buf, table, 0, 0, crc_rv, t1, t2, t3, tc0, tc1, tc2, tc3);
+ update_1word_crc32(crc_rv, buf, table, 4, mainLoop_stepping, crc_rv, t1, t2, t3, tc0, tc1, tc2, tc3);
+ bdnz(L_mainLoop);
+
+#ifndef VM_LITTLE_ENDIAN
+ load_reverse_32(crc, crc_rv); // Revert byte order because we are dealing with big-endian data.
+ tmp = crc_rv; // Tmp uses it's original register again.
+#endif
+
+ // Restore original table address for tailLoop.
+ if (reconstructTableOffset != 0) {
+ addi(table, table, -reconstructTableOffset);
+ }
+
+ // Process last few (<complexThreshold) bytes of buffer.
+ BIND(L_tail);
+ update_byteLoop_crc32(crc, buf, len, table, data, false, false);
+
+ nand(crc, crc, crc); // ~c
+ BLOCK_COMMENT("} kernel_crc32_2word");
+}
+
+/**
+ * @param crc register containing existing CRC (32-bit)
+ * @param buf register pointing to input byte buffer (byte*)
+ * @param len register containing number of bytes
+ * @param table register pointing to CRC table
+ *
+ * uses R9..R12 as work register. Must be saved/restored by caller!
+ */
+void MacroAssembler::kernel_crc32_1word(Register crc, Register buf, Register len, Register table,
+ Register t0, Register t1, Register t2, Register t3,
+ Register tc0, Register tc1, Register tc2, Register tc3) {
+ assert_different_registers(crc, buf, len, table);
+
+ Label L_mainLoop, L_tail;
+ Register tmp = t0;
+ Register data = t0;
+ Register tmp2 = t1;
+ const int mainLoop_stepping = 4;
+ const int tailLoop_stepping = 1;
+ const int log_stepping = exact_log2(mainLoop_stepping);
+ const int mainLoop_alignment = 32; // InputForNewCode > 4 ? InputForNewCode : 32;
+ const int complexThreshold = 2*mainLoop_stepping;
+
+ // Don't test for len <= 0 here. This pathological case should not occur anyway.
+ // Optimizing for it by adding a test and a branch seems to be a waste of CPU cycles.
+ // The situation itself is detected and handled correctly by the conditional branches
+ // following aghi(len, -stepping) and aghi(len, +stepping).
+ assert(tailLoop_stepping == 1, "check tailLoop_stepping!");
+
+ BLOCK_COMMENT("kernel_crc32_1word {");
+
+ nand(crc, crc, crc); // ~c
+
+ // Check for short (<mainLoop_stepping) buffer.
+ cmpdi(CCR0, len, complexThreshold);
+ blt(CCR0, L_tail);
+
+ // Pre-mainLoop alignment did show a slight (1%) positive effect on performance.
+ // We leave the code in for reference. Maybe we need alignment when we exploit vector instructions.
+ {
+ // Align buf addr to mainLoop_stepping boundary.
+ neg(tmp2, buf); // Calculate # preLoop iterations for alignment.
+ rldicl(tmp2, tmp2, 0, 64-log_stepping); // Rotate tmp2 0 bits, insert into tmp2, anding with mask with 1s from 62..63.
+
+ if (complexThreshold > mainLoop_stepping) {
+ sub(len, len, tmp2); // Remaining bytes for main loop (>=mainLoop_stepping is guaranteed).
+ } else {
+ sub(tmp, len, tmp2); // Remaining bytes for main loop.
+ cmpdi(CCR0, tmp, mainLoop_stepping);
+ blt(CCR0, L_tail); // For less than one mainloop_stepping left, do only tail processing
+ mr(len, tmp); // remaining bytes for main loop (>=mainLoop_stepping is guaranteed).
+ }
+ update_byteLoop_crc32(crc, buf, tmp2, table, data, false, false);
+ }
+
+ srdi(tmp2, len, log_stepping); // #iterations for mainLoop
+ andi(len, len, mainLoop_stepping-1); // remaining bytes for tailLoop
+ mtctr(tmp2);
+
+#ifdef VM_LITTLE_ENDIAN
+ Register crc_rv = crc;
+#else
+ Register crc_rv = tmp; // Load_reverse needs separate registers to work on.
+ // Occupies tmp, but frees up crc.
+ load_reverse_32(crc_rv, crc); // evert byte order because we are dealing with big-endian data.
+ tmp = crc;
+#endif
+
+ int reconstructTableOffset = crc32_table_columns(table, tc0, tc1, tc2, tc3);
+
+ align(mainLoop_alignment); // Octoword-aligned loop address. Shows 2% improvement.
+ BIND(L_mainLoop);
+ update_1word_crc32(crc_rv, buf, table, 0, mainLoop_stepping, crc_rv, t1, t2, t3, tc0, tc1, tc2, tc3);
+ bdnz(L_mainLoop);
+
+#ifndef VM_LITTLE_ENDIAN
+ load_reverse_32(crc, crc_rv); // Revert byte order because we are dealing with big-endian data.
+ tmp = crc_rv; // Tmp uses it's original register again.
+#endif
+
+ // Restore original table address for tailLoop.
+ if (reconstructTableOffset != 0) {
+ addi(table, table, -reconstructTableOffset);
+ }
+
+ // Process last few (<complexThreshold) bytes of buffer.
+ BIND(L_tail);
+ update_byteLoop_crc32(crc, buf, len, table, data, false, false);
+
+ nand(crc, crc, crc); // ~c
+ BLOCK_COMMENT("} kernel_crc32_1word");
+}
+
+/**
+ * @param crc register containing existing CRC (32-bit)
+ * @param buf register pointing to input byte buffer (byte*)
+ * @param len register containing number of bytes
+ * @param table register pointing to CRC table
+ *
+ * Uses R7_ARG5, R8_ARG6 as work registers.
+ */
+void MacroAssembler::kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
+ Register t0, Register t1, Register t2, Register t3) {
+ assert_different_registers(crc, buf, len, table);
+
+ Register data = t0; // Holds the current byte to be folded into crc.
+
+ BLOCK_COMMENT("kernel_crc32_1byte {");
+
+ // Process all bytes in a single-byte loop.
+ update_byteLoop_crc32(crc, buf, len, table, data, true, true);
+
+ BLOCK_COMMENT("} kernel_crc32_1byte");
+}
+
+void MacroAssembler::kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp) {
+ assert_different_registers(crc, buf, /* len, not used!! */ table, tmp);
+
+ BLOCK_COMMENT("kernel_crc32_singleByte:");
+ nand(crc, crc, crc); // ~c
+
+ lbz(tmp, 0, buf); // Byte from buffer, zero-extended.
+ update_byte_crc32(crc, tmp, table);
+
+ nand(crc, crc, crc); // ~c
+}
+
// dest_lo += src1 + src2
// dest_hi += carry1 + carry2
void MacroAssembler::add2_with_carry(Register dest_hi,
@@ -3515,7 +3928,7 @@
b(L_multiply);
- bind( L_one_x ); // Load one 32 bit portion of x as (0,value).
+ bind(L_one_x); // Load one 32 bit portion of x as (0,value).
lwz(x_xstart, 0, x);
b(L_first_loop);
@@ -3534,7 +3947,7 @@
// z[kdx] = (jlong)product;
sldi(tmp, idx, LogBytesPerInt);
- if ( offset ) {
+ if (offset) {
addi(tmp, tmp, offset);
}
ldx(yz_idx, y, tmp);
@@ -3551,7 +3964,7 @@
add2_with_carry(product_high, product, carry, yz_idx);
sldi(tmp, idx, LogBytesPerInt);
- if ( offset ) {
+ if (offset) {
addi(tmp, tmp, offset);
}
#ifdef VM_LITTLE_ENDIAN
--- a/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -702,6 +702,27 @@
Register tmp6, Register tmp7, Register tmp8, Register tmp9, Register tmp10,
Register tmp11, Register tmp12, Register tmp13);
+ // CRC32 Intrinsics.
+ void load_reverse_32(Register dst, Register src);
+ int crc32_table_columns(Register table, Register tc0, Register tc1, Register tc2, Register tc3);
+ void fold_byte_crc32(Register crc, Register val, Register table, Register tmp);
+ void fold_8bit_crc32(Register crc, Register table, Register tmp);
+ void update_byte_crc32(Register crc, Register val, Register table);
+ void update_byteLoop_crc32(Register crc, Register buf, Register len, Register table,
+ Register data, bool loopAlignment, bool invertCRC);
+ void update_1word_crc32(Register crc, Register buf, Register table, int bufDisp, int bufInc,
+ Register t0, Register t1, Register t2, Register t3,
+ Register tc0, Register tc1, Register tc2, Register tc3);
+ void kernel_crc32_2word(Register crc, Register buf, Register len, Register table,
+ Register t0, Register t1, Register t2, Register t3,
+ Register tc0, Register tc1, Register tc2, Register tc3);
+ void kernel_crc32_1word(Register crc, Register buf, Register len, Register table,
+ Register t0, Register t1, Register t2, Register t3,
+ Register tc0, Register tc1, Register tc2, Register tc3);
+ void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
+ Register t0, Register t1, Register t2, Register t3);
+ void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp);
+
//
// Debugging
//
--- a/hotspot/src/cpu/ppc/vm/relocInfo_ppc.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/relocInfo_ppc.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -27,6 +27,7 @@
#include "asm/assembler.inline.hpp"
#include "code/relocInfo.hpp"
#include "nativeInst_ppc.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/safepoint.hpp"
--- a/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -2126,6 +2126,54 @@
return start;
}
+ /**
+ * Arguments:
+ *
+ * Inputs:
+ * R3_ARG1 - int crc
+ * R4_ARG2 - byte* buf
+ * R5_ARG3 - int length (of buffer)
+ *
+ * scratch:
+ * R6_ARG4 - crc table address
+ * R7_ARG5 - tmp1
+ * R8_ARG6 - tmp2
+ *
+ * Ouput:
+ * R3_RET - int crc result
+ */
+ // Compute CRC32 function.
+ address generate_CRC32_updateBytes(const char* name) {
+ __ align(CodeEntryAlignment);
+ StubCodeMark mark(this, "StubRoutines", name);
+ address start = __ function_entry(); // Remember stub start address (is rtn value).
+
+ // arguments to kernel_crc32:
+ Register crc = R3_ARG1; // Current checksum, preset by caller or result from previous call.
+ Register data = R4_ARG2; // source byte array
+ Register dataLen = R5_ARG3; // #bytes to process
+ Register table = R6_ARG4; // crc table address
+
+ Register t0 = R9; // work reg for kernel* emitters
+ Register t1 = R10; // work reg for kernel* emitters
+ Register t2 = R11; // work reg for kernel* emitters
+ Register t3 = R12; // work reg for kernel* emitters
+
+ BLOCK_COMMENT("Stub body {");
+ assert_different_registers(crc, data, dataLen, table);
+
+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
+
+ __ kernel_crc32_1byte(crc, data, dataLen, table, t0, t1, t2, t3);
+
+ BLOCK_COMMENT("return");
+ __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying required (R3_ARG1 == R3_RET).
+ __ blr();
+
+ BLOCK_COMMENT("} Stub body");
+ return start;
+ }
+
// Initialization
void generate_initial() {
// Generates all stubs and initializes the entry points
@@ -2144,6 +2192,12 @@
StubRoutines::_throw_StackOverflowError_entry =
generate_throw_exception("StackOverflowError throw_exception",
CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError), false);
+
+ // CRC32 Intrinsics.
+ if (UseCRC32Intrinsics) {
+ StubRoutines::_crc_table_adr = (address)StubRoutines::ppc64::_crc_table;
+ StubRoutines::_updateBytesCRC32 = generate_CRC32_updateBytes("CRC32_updateBytes");
+ }
}
void generate_all() {
--- a/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2012, 2014 SAP AG. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2012, 2015 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,457 @@
*
*/
+#include "asm/macroAssembler.inline.hpp"
+#include "runtime/stubRoutines.hpp"
+
// Implementation of the platform-specific part of StubRoutines - for
// a description of how to extend it, see the stubRoutines.hpp file.
+#define __ masm->
+
+// CRC32 Intrinsics.
+void StubRoutines::ppc64::generate_load_crc_table_addr(MacroAssembler* masm, Register table) {
+ __ load_const(table, StubRoutines::_crc_table_adr);
+}
+
+// CRC32 Intrinsics.
+/**
+ * crc_table[] from jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.h
+ */
+juint StubRoutines::ppc64::_crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE] = {
+ {
+ 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
+ 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
+ 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
+ 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
+ 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
+ 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
+ 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
+ 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
+ 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
+ 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
+ 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
+ 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
+ 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
+ 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
+ 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
+ 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
+ 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
+ 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
+ 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
+ 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
+ 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
+ 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
+ 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
+ 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
+ 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
+ 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
+ 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
+ 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
+ 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
+ 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
+ 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
+ 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
+ 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
+ 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
+ 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
+ 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
+ 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
+ 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
+ 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
+ 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
+ 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
+ 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
+ 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
+ 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
+ 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
+ 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
+ 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
+ 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
+ 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
+ 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
+ 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
+ 0x2d02ef8dUL
+#ifdef CRC32_BYFOUR
+ },
+ {
+ 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
+ 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
+ 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
+ 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
+ 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
+ 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
+ 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
+ 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
+ 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
+ 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
+ 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
+ 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
+ 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
+ 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
+ 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
+ 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
+ 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
+ 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
+ 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
+ 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
+ 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
+ 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
+ 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
+ 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
+ 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
+ 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
+ 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
+ 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
+ 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
+ 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
+ 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
+ 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
+ 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
+ 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
+ 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
+ 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
+ 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
+ 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
+ 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
+ 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
+ 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
+ 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
+ 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
+ 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
+ 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
+ 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
+ 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
+ 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
+ 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
+ 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
+ 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
+ 0x9324fd72UL
+ },
+ {
+ 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
+ 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
+ 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
+ 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
+ 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
+ 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
+ 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
+ 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
+ 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
+ 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
+ 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
+ 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
+ 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
+ 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
+ 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
+ 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
+ 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
+ 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
+ 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
+ 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
+ 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
+ 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
+ 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
+ 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
+ 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
+ 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
+ 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
+ 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
+ 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
+ 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
+ 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
+ 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
+ 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
+ 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
+ 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
+ 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
+ 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
+ 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
+ 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
+ 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
+ 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
+ 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
+ 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
+ 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
+ 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
+ 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
+ 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
+ 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
+ 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
+ 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
+ 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
+ 0xbe9834edUL
+ },
+ {
+ 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
+ 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
+ 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
+ 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
+ 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
+ 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
+ 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
+ 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
+ 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
+ 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
+ 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
+ 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
+ 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
+ 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
+ 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
+ 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
+ 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
+ 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
+ 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
+ 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
+ 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
+ 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
+ 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
+ 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
+ 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
+ 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
+ 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
+ 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
+ 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
+ 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
+ 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
+ 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
+ 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
+ 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
+ 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
+ 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
+ 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
+ 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
+ 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
+ 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
+ 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
+ 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
+ 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
+ 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
+ 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
+ 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
+ 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
+ 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
+ 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
+ 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
+ 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
+ 0xde0506f1UL
+ },
+ {
+ 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
+ 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
+ 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
+ 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
+ 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
+ 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
+ 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
+ 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
+ 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
+ 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
+ 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
+ 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
+ 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
+ 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
+ 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
+ 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
+ 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
+ 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
+ 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
+ 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
+ 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
+ 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
+ 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
+ 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
+ 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
+ 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
+ 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
+ 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
+ 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
+ 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
+ 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
+ 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
+ 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
+ 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
+ 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
+ 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
+ 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
+ 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
+ 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
+ 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
+ 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
+ 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
+ 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
+ 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
+ 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
+ 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
+ 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
+ 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
+ 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
+ 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
+ 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
+ 0x8def022dUL
+ },
+ {
+ 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
+ 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
+ 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
+ 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
+ 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
+ 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
+ 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
+ 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
+ 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
+ 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
+ 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
+ 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
+ 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
+ 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
+ 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
+ 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
+ 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
+ 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
+ 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
+ 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
+ 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
+ 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
+ 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
+ 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
+ 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
+ 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
+ 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
+ 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
+ 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
+ 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
+ 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
+ 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
+ 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
+ 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
+ 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
+ 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
+ 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
+ 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
+ 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
+ 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
+ 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
+ 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
+ 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
+ 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
+ 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
+ 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
+ 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
+ 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
+ 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
+ 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
+ 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
+ 0x72fd2493UL
+ },
+ {
+ 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
+ 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
+ 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
+ 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
+ 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
+ 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
+ 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
+ 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
+ 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
+ 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
+ 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
+ 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
+ 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
+ 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
+ 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
+ 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
+ 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
+ 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
+ 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
+ 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
+ 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
+ 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
+ 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
+ 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
+ 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
+ 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
+ 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
+ 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
+ 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
+ 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
+ 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
+ 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
+ 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
+ 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
+ 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
+ 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
+ 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
+ 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
+ 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
+ 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
+ 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
+ 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
+ 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
+ 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
+ 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
+ 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
+ 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
+ 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
+ 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
+ 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
+ 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
+ 0xed3498beUL
+ },
+ {
+ 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
+ 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
+ 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
+ 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
+ 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
+ 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
+ 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
+ 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
+ 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
+ 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
+ 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
+ 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
+ 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
+ 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
+ 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
+ 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
+ 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
+ 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
+ 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
+ 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
+ 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
+ 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
+ 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
+ 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
+ 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
+ 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
+ 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
+ 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
+ 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
+ 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
+ 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
+ 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
+ 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
+ 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
+ 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
+ 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
+ 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
+ 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
+ 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
+ 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
+ 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
+ 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
+ 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
+ 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
+ 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
+ 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
+ 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
+ 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
+ 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
+ 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
+ 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
+ 0xf10605deUL
+#endif
+ }
+};
--- a/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2012, 2013 SAP AG. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2012, 2015 SAP AG. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,11 +30,35 @@
// definition. See stubRoutines.hpp for a description on how to
// extend it.
-static bool returns_to_call_stub(address return_pc) { return return_pc == _call_stub_return_address; }
+static bool returns_to_call_stub(address return_pc) { return return_pc == _call_stub_return_address; }
enum platform_dependent_constants {
code_size1 = 20000, // simply increase if too small (assembler will crash if too small)
code_size2 = 20000 // simply increase if too small (assembler will crash if too small)
};
+// CRC32 Intrinsics.
+#define CRC32_COLUMN_SIZE 256
+#define CRC32_BYFOUR
+#ifdef CRC32_BYFOUR
+ #define CRC32_TABLES 8
+#else
+ #define CRC32_TABLES 1
+#endif
+
+class ppc64 {
+ friend class StubGenerator;
+
+ private:
+
+ // CRC32 Intrinsics.
+ static juint _crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
+
+ public:
+
+ // CRC32 Intrinsics.
+ static void generate_load_crc_table_addr(MacroAssembler* masm, Register table);
+
+};
+
#endif // CPU_PPC_VM_STUBROUTINES_PPC_64_HPP
--- a/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -58,7 +58,7 @@
#define BLOCK_COMMENT(str) __ block_comment(str)
#endif
-#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
+#define BIND(label) __ bind(label); BLOCK_COMMENT(#label ":")
//-----------------------------------------------------------------------------
@@ -725,7 +725,7 @@
}
generate_counter_incr(&invocation_counter_overflow, NULL, NULL);
- __ BIND(continue_after_compile);
+ BIND(continue_after_compile);
// Reset the _do_not_unlock_if_synchronized flag.
if (synchronized) {
__ li(R0, 0);
@@ -785,7 +785,7 @@
__ ld(signature_handler_fd, method_(signature_handler));
__ twi_0(signature_handler_fd); // Order wrt. load of klass mirror and entry point (isync is below).
- __ BIND(call_signature_handler);
+ BIND(call_signature_handler);
// Before we call the signature handler we push a new frame to
// protect the interpreter frame volatile registers when we return
@@ -855,7 +855,7 @@
__ std(R0/*mirror*/, _ijava_state_neg(oop_tmp), R11_scratch1);
// R4_ARG2 = &state->_oop_temp;
__ addi(R4_ARG2, R11_scratch1, _ijava_state_neg(oop_tmp));
- __ BIND(method_is_not_static);
+ BIND(method_is_not_static);
}
// At this point, arguments have been copied off the stack into
@@ -1068,14 +1068,14 @@
// interpreter will do the correct thing. If it isn't interpreted
// (call stub/compiled code) we will change our return and continue.
- __ BIND(exception_return_sync_check);
+ BIND(exception_return_sync_check);
if (synchronized) {
// Don't check for exceptions since we're still in the i2n frame. Do that
// manually afterwards.
unlock_method(false);
}
- __ BIND(exception_return_sync_check_already_unlocked);
+ BIND(exception_return_sync_check_already_unlocked);
const Register return_pc = R31;
@@ -1240,6 +1240,179 @@
return entry;
}
+// CRC32 Intrinsics.
+//
+// Contract on scratch and work registers.
+// =======================================
+//
+// On ppc, the register set {R2..R12} is available in the interpreter as scratch/work registers.
+// You should, however, keep in mind that {R3_ARG1..R10_ARG8} is the C-ABI argument register set.
+// You can't rely on these registers across calls.
+//
+// The generators for CRC32_update and for CRC32_updateBytes use the
+// scratch/work register set internally, passing the work registers
+// as arguments to the MacroAssembler emitters as required.
+//
+// R3_ARG1..R6_ARG4 are preset to hold the incoming java arguments.
+// Their contents is not constant but may change according to the requirements
+// of the emitted code.
+//
+// All other registers from the scratch/work register set are used "internally"
+// and contain garbage (i.e. unpredictable values) once blr() is reached.
+// Basically, only R3_RET contains a defined value which is the function result.
+//
+/**
+ * Method entry for static native methods:
+ * int java.util.zip.CRC32.update(int crc, int b)
+ */
+address InterpreterGenerator::generate_CRC32_update_entry() {
+ address start = __ pc(); // Remember stub start address (is rtn value).
+
+ if (UseCRC32Intrinsics) {
+ Label slow_path;
+
+ // Safepoint check
+ const Register sync_state = R11_scratch1;
+ int sync_state_offs = __ load_const_optimized(sync_state, SafepointSynchronize::address_of_state(), /*temp*/R0, true);
+ __ lwz(sync_state, sync_state_offs, sync_state);
+ __ cmpwi(CCR0, sync_state, SafepointSynchronize::_not_synchronized);
+ __ bne(CCR0, slow_path);
+
+ // We don't generate local frame and don't align stack because
+ // we not even call stub code (we generate the code inline)
+ // and there is no safepoint on this path.
+
+ // Load java parameters.
+ // R15_esp is callers operand stack pointer, i.e. it points to the parameters.
+ const Register argP = R15_esp;
+ const Register crc = R3_ARG1; // crc value
+ const Register data = R4_ARG2; // address of java byte value (kernel_crc32 needs address)
+ const Register dataLen = R5_ARG3; // source data len (1 byte). Not used because calling the single-byte emitter.
+ const Register table = R6_ARG4; // address of crc32 table
+ const Register tmp = dataLen; // Reuse unused len register to show we don't actually need a separate tmp here.
+
+ BLOCK_COMMENT("CRC32_update {");
+
+ // Arguments are reversed on java expression stack
+#ifdef VM_LITTLE_ENDIAN
+ __ addi(data, argP, 0+1*wordSize); // (stack) address of byte value. Emitter expects address, not value.
+ // Being passed as an int, the single byte is at offset +0.
+#else
+ __ addi(data, argP, 3+1*wordSize); // (stack) address of byte value. Emitter expects address, not value.
+ // Being passed from java as an int, the single byte is at offset +3.
+#endif
+ __ lwz(crc, 2*wordSize, argP); // Current crc state, zero extend to 64 bit to have a clean register.
+
+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
+ __ kernel_crc32_singleByte(crc, data, dataLen, table, tmp);
+
+ // Restore caller sp for c2i case and return.
+ __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
+ __ blr();
+
+ // Generate a vanilla native entry as the slow path.
+ BLOCK_COMMENT("} CRC32_update");
+ BIND(slow_path);
+ }
+
+ (void) generate_native_entry(false);
+
+ return start;
+}
+
+// CRC32 Intrinsics.
+/**
+ * Method entry for static native methods:
+ * int java.util.zip.CRC32.updateBytes( int crc, byte[] b, int off, int len)
+ * int java.util.zip.CRC32.updateByteBuffer(int crc, long* buf, int off, int len)
+ */
+address InterpreterGenerator::generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind) {
+ address start = __ pc(); // Remember stub start address (is rtn value).
+
+ if (UseCRC32Intrinsics) {
+ Label slow_path;
+
+ // Safepoint check
+ const Register sync_state = R11_scratch1;
+ int sync_state_offs = __ load_const_optimized(sync_state, SafepointSynchronize::address_of_state(), /*temp*/R0, true);
+ __ lwz(sync_state, sync_state_offs, sync_state);
+ __ cmpwi(CCR0, sync_state, SafepointSynchronize::_not_synchronized);
+ __ bne(CCR0, slow_path);
+
+ // We don't generate local frame and don't align stack because
+ // we not even call stub code (we generate the code inline)
+ // and there is no safepoint on this path.
+
+ // Load parameters.
+ // Z_esp is callers operand stack pointer, i.e. it points to the parameters.
+ const Register argP = R15_esp;
+ const Register crc = R3_ARG1; // crc value
+ const Register data = R4_ARG2; // address of java byte array
+ const Register dataLen = R5_ARG3; // source data len
+ const Register table = R6_ARG4; // address of crc32 table
+
+ const Register t0 = R9; // scratch registers for crc calculation
+ const Register t1 = R10;
+ const Register t2 = R11;
+ const Register t3 = R12;
+
+ const Register tc0 = R2; // registers to hold pre-calculated column addresses
+ const Register tc1 = R7;
+ const Register tc2 = R8;
+ const Register tc3 = table; // table address is reconstructed at the end of kernel_crc32_* emitters
+
+ const Register tmp = t0; // Only used very locally to calculate byte buffer address.
+
+ // Arguments are reversed on java expression stack.
+ // Calculate address of start element.
+ if (kind == Interpreter::java_util_zip_CRC32_updateByteBuffer) { // Used for "updateByteBuffer direct".
+ BLOCK_COMMENT("CRC32_updateByteBuffer {");
+ // crc @ (SP + 5W) (32bit)
+ // buf @ (SP + 3W) (64bit ptr to long array)
+ // off @ (SP + 2W) (32bit)
+ // dataLen @ (SP + 1W) (32bit)
+ // data = buf + off
+ __ ld( data, 3*wordSize, argP); // start of byte buffer
+ __ lwa( tmp, 2*wordSize, argP); // byte buffer offset
+ __ lwa( dataLen, 1*wordSize, argP); // #bytes to process
+ __ lwz( crc, 5*wordSize, argP); // current crc state
+ __ add( data, data, tmp); // Add byte buffer offset.
+ } else { // Used for "updateBytes update".
+ BLOCK_COMMENT("CRC32_updateBytes {");
+ // crc @ (SP + 4W) (32bit)
+ // buf @ (SP + 3W) (64bit ptr to byte array)
+ // off @ (SP + 2W) (32bit)
+ // dataLen @ (SP + 1W) (32bit)
+ // data = buf + off + base_offset
+ __ ld( data, 3*wordSize, argP); // start of byte buffer
+ __ lwa( tmp, 2*wordSize, argP); // byte buffer offset
+ __ lwa( dataLen, 1*wordSize, argP); // #bytes to process
+ __ add( data, data, tmp); // add byte buffer offset
+ __ lwz( crc, 4*wordSize, argP); // current crc state
+ __ addi(data, data, arrayOopDesc::base_offset_in_bytes(T_BYTE));
+ }
+
+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
+
+ // Performance measurements show the 1word and 2word variants to be almost equivalent,
+ // with very light advantages for the 1word variant. We chose the 1word variant for
+ // code compactness.
+ __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2, tc3);
+
+ // Restore caller sp for c2i case and return.
+ __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
+ __ blr();
+
+ // Generate a vanilla native entry as the slow path.
+ BLOCK_COMMENT("} CRC32_updateBytes(Buffer)");
+ BIND(slow_path);
+ }
+
+ (void) generate_native_entry(false);
+
+ return start;
+}
+
// These should never be compiled since the interpreter will prefer
// the compiled version to the intrinsic version.
bool AbstractInterpreter::can_be_compiled(methodHandle m) {
--- a/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -159,10 +159,18 @@
assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
- if (UseCRC32Intrinsics) {
- if (!FLAG_IS_DEFAULT(UseCRC32Intrinsics))
- warning("CRC32 intrinsics are not available on this CPU");
- FLAG_SET_DEFAULT(UseCRC32Intrinsics, false);
+ // Implementation does not use any of the vector instructions
+ // available with Power8. Their exploitation is still pending.
+ if (!UseCRC32Intrinsics) {
+ if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
+ FLAG_SET_DEFAULT(UseCRC32Intrinsics, true);
+ }
+ }
+
+ if (UseCRC32CIntrinsics) {
+ if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics))
+ warning("CRC32C intrinsics are not available on this CPU");
+ FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
}
// The AES intrinsic stubs require AES instruction support.
@@ -192,12 +200,6 @@
FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
}
- if (UseCRC32CIntrinsics) {
- if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics))
- warning("CRC32C intrinsics are not available on this CPU");
- FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
- }
-
if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
UseMultiplyToLenIntrinsic = true;
}
--- a/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -30,6 +30,7 @@
#include "interpreter/interpreter.hpp"
#include "memory/resourceArea.hpp"
#include "memory/universe.hpp"
+#include "oops/klass.inline.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/interfaceSupport.hpp"
--- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -26,6 +26,7 @@
#include "asm/assembler.hpp"
#include "code/relocInfo.hpp"
#include "nativeInst_sparc.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/safepoint.hpp"
--- a/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -31,6 +31,7 @@
#include "interpreter/interpreter.hpp"
#include "memory/resourceArea.hpp"
#include "memory/universe.hpp"
+#include "oops/klass.inline.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/biasedLocking.hpp"
#include "runtime/interfaceSupport.hpp"
--- a/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -26,6 +26,7 @@
#include "asm/macroAssembler.hpp"
#include "code/relocInfo.hpp"
#include "nativeInst_x86.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/safepoint.hpp"
--- a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -285,7 +285,7 @@
CPU_AVX512BW = (1 << 31)
} cpuFeatureFlags;
-#define CPU_AVX512VL 0x100000000 // EVEX instructions with smaller vector length : enums are limited to 32bit
+#define CPU_AVX512VL UCONST64(0x100000000) // EVEX instructions with smaller vector length : enums are limited to 32bit
enum {
// AMD
--- a/hotspot/src/os/aix/vm/os_aix.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/os/aix/vm/os_aix.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -1655,13 +1655,6 @@
}
void os::pd_print_cpu_info(outputStream* st, char* buf, size_t buflen) {
- // cpu
- st->print("CPU:");
- st->print("total %d", os::processor_count());
- // It's not safe to query number of active processors after crash
- // st->print("(active %d)", os::active_processor_count());
- st->print(" %s", VM_Version::cpu_features());
- st->cr();
}
void os::print_siginfo(outputStream* st, void* siginfo) {
@@ -3483,7 +3476,6 @@
// For now UseLargePages is just ignored.
FLAG_SET_ERGO(bool, UseLargePages, false);
_page_sizes[0] = 0;
- _large_page_size = -1;
// debug trace
trcVerbose("os::vm_page_size %s\n", describe_pagesize(os::vm_page_size()));
--- a/hotspot/src/share/vm/ci/ciField.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/ci/ciField.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -181,6 +181,17 @@
return (holder()->is_subclass_of(callsite_klass) && (name() == ciSymbol::target_name()));
}
+ bool is_autobox_cache() {
+ ciSymbol* klass_name = holder()->name();
+ return (name() == ciSymbol::cache_field_name() &&
+ holder()->uses_default_loader() &&
+ (klass_name == ciSymbol::java_lang_Character_CharacterCache() ||
+ klass_name == ciSymbol::java_lang_Byte_ByteCache() ||
+ klass_name == ciSymbol::java_lang_Short_ShortCache() ||
+ klass_name == ciSymbol::java_lang_Integer_IntegerCache() ||
+ klass_name == ciSymbol::java_lang_Long_LongCache()));
+ }
+
// Debugging output
void print();
void print_name_on(outputStream* st);
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -2023,10 +2023,10 @@
bool lvt_allocated = false;
u2 max_lvt_cnt = INITIAL_MAX_LVT_NUMBER;
u2 max_lvtt_cnt = INITIAL_MAX_LVT_NUMBER;
- u2* localvariable_table_length;
- u2** localvariable_table_start;
- u2* localvariable_type_table_length;
- u2** localvariable_type_table_start;
+ u2* localvariable_table_length = NULL;
+ u2** localvariable_table_start = NULL;
+ u2* localvariable_type_table_length = NULL;
+ u2** localvariable_type_table_start = NULL;
int method_parameters_length = -1;
u1* method_parameters_data = NULL;
bool method_parameters_seen = false;
@@ -4171,10 +4171,13 @@
}
}
+#ifdef ASSERT
if (CheckIntrinsics) {
// Check for orphan methods in the current class. A method m
// of a class C is orphan if an intrinsic is defined for method m,
// but class C does not declare m.
+ // The check is potentially expensive, therefore it is available
+ // only in debug builds.
for (int id = vmIntrinsics::FIRST_ID; id < (int)vmIntrinsics::ID_LIMIT; id++) {
if (id == vmIntrinsics::_compiledLambdaForm) {
@@ -4210,8 +4213,10 @@
}
}
}
+#endif // ASSERT
}
+
if (cached_class_file != NULL) {
// JVMTI: we have an InstanceKlass now, tell it about the cached bytes
this_klass->set_cached_class_file(cached_class_file);
--- a/hotspot/src/share/vm/classfile/vmSymbols.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -658,7 +658,10 @@
// annotation. If CheckIntrinsics is enabled, the VM performs the following
// checks when a class C is loaded: (1) all intrinsics defined by the VM for
// class C are present in the loaded class file and are marked;
-// (2) an intrinsic is defined by the VM for all marked methods of class C.
+// (2) an intrinsic is defined by the VM for all marked methods of class C;
+// (3) check for orphan methods in class C (i.e., methods for which the VM
+// declares an intrinsic but that are not declared for the loaded class C.
+// Check (3) is available only in debug builds.
//
// If a mismatch is detected for a method, the VM behaves differently depending
// on the type of build. A fastdebug build exits and reports an error on a mismatch.
@@ -679,6 +682,10 @@
do_name( getClass_name, "getClass") \
do_intrinsic(_clone, java_lang_Object, clone_name, void_object_signature, F_R) \
do_name( clone_name, "clone") \
+ do_intrinsic(_notify, java_lang_Object, notify_name, void_method_signature, F_R) \
+ do_name( notify_name, "notify") \
+ do_intrinsic(_notifyAll, java_lang_Object, notifyAll_name, void_method_signature, F_R) \
+ do_name( notifyAll_name, "notifyAll") \
\
/* Math & StrictMath intrinsics are defined in terms of just a few signatures: */ \
do_class(java_lang_Math, "java/lang/Math") \
--- a/hotspot/src/share/vm/gc/g1/g1Allocator.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/gc/g1/g1Allocator.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -44,52 +44,52 @@
size_t _summary_bytes_used;
public:
- G1Allocator(G1CollectedHeap* heap) :
- _g1h(heap), _summary_bytes_used(0) { }
+ G1Allocator(G1CollectedHeap* heap) :
+ _g1h(heap), _summary_bytes_used(0) { }
- static G1Allocator* create_allocator(G1CollectedHeap* g1h);
+ static G1Allocator* create_allocator(G1CollectedHeap* g1h);
- virtual void init_mutator_alloc_region() = 0;
- virtual void release_mutator_alloc_region() = 0;
+ virtual void init_mutator_alloc_region() = 0;
+ virtual void release_mutator_alloc_region() = 0;
- virtual void init_gc_alloc_regions(EvacuationInfo& evacuation_info) = 0;
- virtual void release_gc_alloc_regions(EvacuationInfo& evacuation_info) = 0;
- virtual void abandon_gc_alloc_regions() = 0;
+ virtual void init_gc_alloc_regions(EvacuationInfo& evacuation_info) = 0;
+ virtual void release_gc_alloc_regions(EvacuationInfo& evacuation_info) = 0;
+ virtual void abandon_gc_alloc_regions() = 0;
- virtual MutatorAllocRegion* mutator_alloc_region(AllocationContext_t context) = 0;
- virtual SurvivorGCAllocRegion* survivor_gc_alloc_region(AllocationContext_t context) = 0;
- virtual OldGCAllocRegion* old_gc_alloc_region(AllocationContext_t context) = 0;
- virtual size_t used() = 0;
- virtual bool is_retained_old_region(HeapRegion* hr) = 0;
+ virtual MutatorAllocRegion* mutator_alloc_region(AllocationContext_t context) = 0;
+ virtual SurvivorGCAllocRegion* survivor_gc_alloc_region(AllocationContext_t context) = 0;
+ virtual OldGCAllocRegion* old_gc_alloc_region(AllocationContext_t context) = 0;
+ virtual size_t used() = 0;
+ virtual bool is_retained_old_region(HeapRegion* hr) = 0;
- void reuse_retained_old_region(EvacuationInfo& evacuation_info,
- OldGCAllocRegion* old,
- HeapRegion** retained);
+ void reuse_retained_old_region(EvacuationInfo& evacuation_info,
+ OldGCAllocRegion* old,
+ HeapRegion** retained);
- size_t used_unlocked() const {
- return _summary_bytes_used;
- }
+ size_t used_unlocked() const {
+ return _summary_bytes_used;
+ }
- void increase_used(size_t bytes) {
- _summary_bytes_used += bytes;
- }
+ void increase_used(size_t bytes) {
+ _summary_bytes_used += bytes;
+ }
- void decrease_used(size_t bytes) {
- assert(_summary_bytes_used >= bytes,
- err_msg("invariant: _summary_bytes_used: " SIZE_FORMAT " should be >= bytes: " SIZE_FORMAT,
- _summary_bytes_used, bytes));
- _summary_bytes_used -= bytes;
- }
+ void decrease_used(size_t bytes) {
+ assert(_summary_bytes_used >= bytes,
+ err_msg("invariant: _summary_bytes_used: " SIZE_FORMAT " should be >= bytes: " SIZE_FORMAT,
+ _summary_bytes_used, bytes));
+ _summary_bytes_used -= bytes;
+ }
- void set_used(size_t bytes) {
- _summary_bytes_used = bytes;
- }
+ void set_used(size_t bytes) {
+ _summary_bytes_used = bytes;
+ }
- virtual HeapRegion* new_heap_region(uint hrs_index,
- G1BlockOffsetSharedArray* sharedOffsetArray,
- MemRegion mr) {
- return new HeapRegion(hrs_index, sharedOffsetArray, mr);
- }
+ virtual HeapRegion* new_heap_region(uint hrs_index,
+ G1BlockOffsetSharedArray* sharedOffsetArray,
+ MemRegion mr) {
+ return new HeapRegion(hrs_index, sharedOffsetArray, mr);
+ }
};
// The default allocator for G1.
--- a/hotspot/src/share/vm/opto/compile.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/compile.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -140,6 +140,9 @@
bool is_debug() const { return _debug; }
void set_debug(bool debug) { _debug = debug; }
static const char* debug_option_name;
+
+ bool same_idx(node_idx_t k1, node_idx_t k2) const { return idx(k1) == idx(k2); }
+ bool same_gen(node_idx_t k1, node_idx_t k2) const { return gen(k1) == gen(k2); }
};
//------------------------------Compile----------------------------------------
--- a/hotspot/src/share/vm/opto/escape.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/escape.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -526,7 +526,7 @@
if (adr->is_BoxLock())
break;
// Stored value escapes in unsafe access.
- if ((opcode == Op_StoreP) && (adr_type == TypeRawPtr::BOTTOM)) {
+ if ((opcode == Op_StoreP) && adr_type->isa_rawptr()) {
// Pointer stores in G1 barriers looks like unsafe access.
// Ignore such stores to be able scalar replace non-escaping
// allocations.
@@ -540,11 +540,11 @@
int offs = (int)igvn->find_intptr_t_con(adr->in(AddPNode::Offset), Type::OffsetBot);
if (offs == in_bytes(JavaThread::satb_mark_queue_offset() +
PtrQueue::byte_offset_of_buf())) {
- break; // G1 pre barier previous oop value store.
+ break; // G1 pre barrier previous oop value store.
}
if (offs == in_bytes(JavaThread::dirty_card_queue_offset() +
PtrQueue::byte_offset_of_buf())) {
- break; // G1 post barier card address store.
+ break; // G1 post barrier card address store.
}
}
}
@@ -725,7 +725,7 @@
assert(ptn != NULL, "node should be registered");
add_edge(adr_ptn, ptn);
break;
- } else if ((opcode == Op_StoreP) && (adr_type == TypeRawPtr::BOTTOM)) {
+ } else if ((opcode == Op_StoreP) && adr_type->isa_rawptr()) {
// Stored value escapes in unsafe access.
Node *val = n->in(MemNode::ValueIn);
PointsToNode* ptn = ptnode_adr(val->_idx);
--- a/hotspot/src/share/vm/opto/library_call.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/library_call.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -225,6 +225,7 @@
bool inline_pow();
Node* finish_pow_exp(Node* result, Node* x, Node* y, const TypeFunc* call_type, address funcAddr, const char* funcName);
bool inline_min_max(vmIntrinsics::ID id);
+ bool inline_notify(vmIntrinsics::ID id);
Node* generate_min_max(vmIntrinsics::ID id, Node* x, Node* y);
// This returns Type::AnyPtr, RawPtr, or OopPtr.
int classify_unsafe_addr(Node* &base, Node* &offset);
@@ -776,6 +777,13 @@
case vmIntrinsics::_min:
case vmIntrinsics::_max: return inline_min_max(intrinsic_id());
+ case vmIntrinsics::_notify:
+ case vmIntrinsics::_notifyAll:
+ if (InlineNotify) {
+ return inline_notify(intrinsic_id());
+ }
+ return false;
+
case vmIntrinsics::_addExactI: return inline_math_addExactI(false /* add */);
case vmIntrinsics::_addExactL: return inline_math_addExactL(false /* add */);
case vmIntrinsics::_decrementExactI: return inline_math_subtractExactI(true /* decrement */);
@@ -2075,6 +2083,21 @@
);
}
+//----------------------------inline_notify-----------------------------------*
+bool LibraryCallKit::inline_notify(vmIntrinsics::ID id) {
+ const TypeFunc* ftype = OptoRuntime::monitor_notify_Type();
+ address func;
+ if (id == vmIntrinsics::_notify) {
+ func = OptoRuntime::monitor_notify_Java();
+ } else {
+ func = OptoRuntime::monitor_notifyAll_Java();
+ }
+ Node* call = make_runtime_call(RC_NO_LEAF, ftype, func, NULL, TypeRawPtr::BOTTOM, argument(0));
+ make_slow_call_ex(call, env()->Throwable_klass(), false);
+ return true;
+}
+
+
//----------------------------inline_min_max-----------------------------------
bool LibraryCallKit::inline_min_max(vmIntrinsics::ID id) {
set_result(generate_min_max(id, argument(0), argument(1)));
@@ -2687,35 +2710,48 @@
// of safe & unsafe memory.
if (need_mem_bar) insert_mem_bar(Op_MemBarCPUOrder);
- if (!is_store) {
- MemNode::MemOrd mo = is_volatile ? MemNode::acquire : MemNode::unordered;
- // To be valid, unsafe loads may depend on other conditions than
- // the one that guards them: pin the Load node
- Node* p = make_load(control(), adr, value_type, type, adr_type, mo, LoadNode::Pinned, is_volatile);
- // load value
- switch (type) {
- case T_BOOLEAN:
- case T_CHAR:
- case T_BYTE:
- case T_SHORT:
- case T_INT:
- case T_LONG:
- case T_FLOAT:
- case T_DOUBLE:
- break;
- case T_OBJECT:
- if (need_read_barrier) {
- insert_pre_barrier(heap_base_oop, offset, p, !(is_volatile || need_mem_bar));
+ if (!is_store) {
+ Node* p = NULL;
+ // Try to constant fold a load from a constant field
+ ciField* field = alias_type->field();
+ if (heap_base_oop != top() &&
+ field != NULL && field->is_constant() && field->layout_type() == type) {
+ // final or stable field
+ const Type* con_type = Type::make_constant(alias_type->field(), heap_base_oop);
+ if (con_type != NULL) {
+ p = makecon(con_type);
}
- break;
- case T_ADDRESS:
- // Cast to an int type.
- p = _gvn.transform(new CastP2XNode(NULL, p));
- p = ConvX2UL(p);
- break;
- default:
- fatal(err_msg_res("unexpected type %d: %s", type, type2name(type)));
- break;
+ }
+ if (p == NULL) {
+ MemNode::MemOrd mo = is_volatile ? MemNode::acquire : MemNode::unordered;
+ // To be valid, unsafe loads may depend on other conditions than
+ // the one that guards them: pin the Load node
+ p = make_load(control(), adr, value_type, type, adr_type, mo, LoadNode::Pinned, is_volatile);
+ // load value
+ switch (type) {
+ case T_BOOLEAN:
+ case T_CHAR:
+ case T_BYTE:
+ case T_SHORT:
+ case T_INT:
+ case T_LONG:
+ case T_FLOAT:
+ case T_DOUBLE:
+ break;
+ case T_OBJECT:
+ if (need_read_barrier) {
+ insert_pre_barrier(heap_base_oop, offset, p, !(is_volatile || need_mem_bar));
+ }
+ break;
+ case T_ADDRESS:
+ // Cast to an int type.
+ p = _gvn.transform(new CastP2XNode(NULL, p));
+ p = ConvX2UL(p);
+ break;
+ default:
+ fatal(err_msg_res("unexpected type %d: %s", type, type2name(type)));
+ break;
+ }
}
// The load node has the control of the preceding MemBarCPUOrder. All
// following nodes will have the control of the MemBarCPUOrder inserted at
--- a/hotspot/src/share/vm/opto/loopnode.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/loopnode.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -3682,7 +3682,6 @@
}
void PhaseIdealLoop::dump( IdealLoopTree *loop, uint idx, Node_List &rpo_list ) const {
- CloneMap& cm = C->clone_map();
loop->dump_head();
// Now scan for CFG nodes in the same loop
@@ -3714,7 +3713,6 @@
cached_idom = find_non_split_ctrl(cached_idom);
}
tty->print(" ID:%d",computed_idom->_idx);
- cm.dump(n->_idx);
n->dump();
if( cached_idom != computed_idom ) {
tty->print_cr("*** BROKEN IDOM! Computed as: %d, cached as: %d",
@@ -3734,7 +3732,6 @@
for( uint j = 0; j < loop->_nest; j++ )
tty->print(" ");
tty->print(" ");
- cm.dump(m->_idx);
m->dump();
}
}
--- a/hotspot/src/share/vm/opto/parse.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/parse.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -539,10 +539,6 @@
void do_get_xxx(Node* obj, ciField* field, bool is_field);
void do_put_xxx(Node* obj, ciField* field, bool is_field);
- // loading from a constant field or the constant pool
- // returns false if push failed (non-perm field constants only, not ldcs)
- bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false, const Type* basic_type = NULL);
-
// implementation of object creation bytecodes
void emit_guard_for_new(ciInstanceKlass* klass);
void do_new();
--- a/hotspot/src/share/vm/opto/parse2.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/parse2.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -1478,8 +1478,10 @@
}
assert(constant.basic_type() != T_OBJECT || constant.as_object()->is_instance(),
"must be java_mirror of klass");
- bool pushed = push_constant(constant, true);
- guarantee(pushed, "must be possible to push this constant");
+ const Type* con_type = Type::make_from_constant(constant);
+ if (con_type != NULL) {
+ push_node(con_type->basic_type(), makecon(con_type));
+ }
}
break;
--- a/hotspot/src/share/vm/opto/parse3.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/parse3.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -149,51 +149,10 @@
// Does this field have a constant value? If so, just push the value.
if (field->is_constant()) {
// final or stable field
- const Type* stable_type = NULL;
- if (FoldStableValues && field->is_stable()) {
- stable_type = Type::get_const_type(field->type());
- if (field->type()->is_array_klass()) {
- int stable_dimension = field->type()->as_array_klass()->dimension();
- stable_type = stable_type->is_aryptr()->cast_to_stable(true, stable_dimension);
- }
- }
- if (field->is_static()) {
- // final static field
- if (C->eliminate_boxing()) {
- // The pointers in the autobox arrays are always non-null.
- ciSymbol* klass_name = field->holder()->name();
- if (field->name() == ciSymbol::cache_field_name() &&
- field->holder()->uses_default_loader() &&
- (klass_name == ciSymbol::java_lang_Character_CharacterCache() ||
- klass_name == ciSymbol::java_lang_Byte_ByteCache() ||
- klass_name == ciSymbol::java_lang_Short_ShortCache() ||
- klass_name == ciSymbol::java_lang_Integer_IntegerCache() ||
- klass_name == ciSymbol::java_lang_Long_LongCache())) {
- bool require_const = true;
- bool autobox_cache = true;
- if (push_constant(field->constant_value(), require_const, autobox_cache)) {
- return;
- }
- }
- }
- if (push_constant(field->constant_value(), false, false, stable_type))
- return;
- } else {
- // final or stable non-static field
- // Treat final non-static fields of trusted classes (classes in
- // java.lang.invoke and sun.invoke packages and subpackages) as
- // compile time constants.
- if (obj->is_Con()) {
- const TypeOopPtr* oop_ptr = obj->bottom_type()->isa_oopptr();
- ciObject* constant_oop = oop_ptr->const_oop();
- ciConstant constant = field->constant_value_of(constant_oop);
- if (FoldStableValues && field->is_stable() && constant.is_null_or_zero()) {
- // fall through to field load; the field is not yet initialized
- } else {
- if (push_constant(constant, true, false, stable_type))
- return;
- }
- }
+ const Type* con_type = Type::make_constant(field, obj);
+ if (con_type != NULL) {
+ push_node(con_type->basic_type(), makecon(con_type));
+ return;
}
}
@@ -362,39 +321,6 @@
}
}
-
-
-bool Parse::push_constant(ciConstant constant, bool require_constant, bool is_autobox_cache, const Type* stable_type) {
- const Type* con_type = Type::make_from_constant(constant, require_constant, is_autobox_cache);
- switch (constant.basic_type()) {
- case T_ARRAY:
- case T_OBJECT:
- // cases:
- // can_be_constant = (oop not scavengable || ScavengeRootsInCode != 0)
- // should_be_constant = (oop not scavengable || ScavengeRootsInCode >= 2)
- // An oop is not scavengable if it is in the perm gen.
- if (stable_type != NULL && con_type != NULL && con_type->isa_oopptr())
- con_type = con_type->join_speculative(stable_type);
- break;
-
- case T_ILLEGAL:
- // Invalid ciConstant returned due to OutOfMemoryError in the CI
- assert(C->env()->failing(), "otherwise should not see this");
- // These always occur because of object types; we are going to
- // bail out anyway, so make the stack depths match up
- push( zerocon(T_OBJECT) );
- return false;
- }
-
- if (con_type == NULL)
- // we cannot inline the oop, but we can use it later to narrow a type
- return false;
-
- push_node(constant.basic_type(), makecon(con_type));
- return true;
-}
-
-
//=============================================================================
void Parse::do_anewarray() {
bool will_link;
--- a/hotspot/src/share/vm/opto/runtime.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/runtime.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -96,6 +96,8 @@
address OptoRuntime::_g1_wb_post_Java = NULL;
address OptoRuntime::_vtable_must_compile_Java = NULL;
address OptoRuntime::_complete_monitor_locking_Java = NULL;
+address OptoRuntime::_monitor_notify_Java = NULL;
+address OptoRuntime::_monitor_notifyAll_Java = NULL;
address OptoRuntime::_rethrow_Java = NULL;
address OptoRuntime::_slow_arraycopy_Java = NULL;
@@ -144,6 +146,8 @@
gen(env, _g1_wb_pre_Java , g1_wb_pre_Type , SharedRuntime::g1_wb_pre , 0 , false, false, false);
gen(env, _g1_wb_post_Java , g1_wb_post_Type , SharedRuntime::g1_wb_post , 0 , false, false, false);
gen(env, _complete_monitor_locking_Java , complete_monitor_enter_Type , SharedRuntime::complete_monitor_locking_C, 0, false, false, false);
+ gen(env, _monitor_notify_Java , monitor_notify_Type , monitor_notify_C , 0 , false, false, false);
+ gen(env, _monitor_notifyAll_Java , monitor_notify_Type , monitor_notifyAll_C , 0 , false, false, false);
gen(env, _rethrow_Java , rethrow_Type , rethrow_C , 2 , true , false, true );
gen(env, _slow_arraycopy_Java , slow_arraycopy_Type , SharedRuntime::slow_arraycopy_C , 0 , false, false, false);
@@ -426,6 +430,45 @@
thread->set_vm_result(obj);
JRT_END
+JRT_BLOCK_ENTRY(void, OptoRuntime::monitor_notify_C(oopDesc* obj, JavaThread *thread))
+
+ // Very few notify/notifyAll operations find any threads on the waitset, so
+ // the dominant fast-path is to simply return.
+ // Relatedly, it's critical that notify/notifyAll be fast in order to
+ // reduce lock hold times.
+ if (!SafepointSynchronize::is_synchronizing()) {
+ if (ObjectSynchronizer::quick_notify(obj, thread, false)) {
+ return;
+ }
+ }
+
+ // This is the case the fast-path above isn't provisioned to handle.
+ // The fast-path is designed to handle frequently arising cases in an efficient manner.
+ // (The fast-path is just a degenerate variant of the slow-path).
+ // Perform the dreaded state transition and pass control into the slow-path.
+ JRT_BLOCK;
+ Handle h_obj(THREAD, obj);
+ ObjectSynchronizer::notify(h_obj, CHECK);
+ JRT_BLOCK_END;
+JRT_END
+
+JRT_BLOCK_ENTRY(void, OptoRuntime::monitor_notifyAll_C(oopDesc* obj, JavaThread *thread))
+
+ if (!SafepointSynchronize::is_synchronizing() ) {
+ if (ObjectSynchronizer::quick_notify(obj, thread, true)) {
+ return;
+ }
+ }
+
+ // This is the case the fast-path above isn't provisioned to handle.
+ // The fast-path is designed to handle frequently arising cases in an efficient manner.
+ // (The fast-path is just a degenerate variant of the slow-path).
+ // Perform the dreaded state transition and pass control into the slow-path.
+ JRT_BLOCK;
+ Handle h_obj(THREAD, obj);
+ ObjectSynchronizer::notifyall(h_obj, CHECK);
+ JRT_BLOCK_END;
+JRT_END
const TypeFunc *OptoRuntime::new_instance_Type() {
// create input type (domain)
@@ -604,14 +647,26 @@
fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // Object to be Locked
fields[TypeFunc::Parms+1] = TypeRawPtr::BOTTOM; // Address of stack location for lock - BasicLock
fields[TypeFunc::Parms+2] = TypeRawPtr::BOTTOM; // Thread pointer (Self)
- const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+3,fields);
+ const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+3, fields);
// create result type (range)
fields = TypeTuple::fields(0);
- const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0,fields);
+ const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
+
+ return TypeFunc::make(domain, range);
+}
- return TypeFunc::make(domain,range);
+const TypeFunc *OptoRuntime::monitor_notify_Type() {
+ // create input type (domain)
+ const Type **fields = TypeTuple::fields(1);
+ fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // Object to be Locked
+ const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
+
+ // create result type (range)
+ fields = TypeTuple::fields(0);
+ const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
+ return TypeFunc::make(domain, range);
}
const TypeFunc* OptoRuntime::flush_windows_Type() {
--- a/hotspot/src/share/vm/opto/runtime.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/runtime.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -146,6 +146,8 @@
static address _vtable_must_compile_Java;
static address _complete_monitor_locking_Java;
static address _rethrow_Java;
+ static address _monitor_notify_Java;
+ static address _monitor_notifyAll_Java;
static address _slow_arraycopy_Java;
static address _register_finalizer_Java;
@@ -186,6 +188,9 @@
static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
+ static void monitor_notify_C(oopDesc* obj, JavaThread* thread);
+ static void monitor_notifyAll_C(oopDesc* obj, JavaThread* thread);
+
private:
// Implicit exception support
@@ -244,7 +249,9 @@
static address g1_wb_pre_Java() { return _g1_wb_pre_Java; }
static address g1_wb_post_Java() { return _g1_wb_post_Java; }
static address vtable_must_compile_stub() { return _vtable_must_compile_Java; }
- static address complete_monitor_locking_Java() { return _complete_monitor_locking_Java; }
+ static address complete_monitor_locking_Java() { return _complete_monitor_locking_Java; }
+ static address monitor_notify_Java() { return _monitor_notify_Java; }
+ static address monitor_notifyAll_Java() { return _monitor_notifyAll_Java; }
static address slow_arraycopy_Java() { return _slow_arraycopy_Java; }
static address register_finalizer_Java() { return _register_finalizer_Java; }
@@ -285,6 +292,7 @@
static const TypeFunc* g1_wb_post_Type();
static const TypeFunc* complete_monitor_enter_Type();
static const TypeFunc* complete_monitor_exit_Type();
+ static const TypeFunc* monitor_notify_Type();
static const TypeFunc* uncommon_trap_Type();
static const TypeFunc* athrow_Type();
static const TypeFunc* rethrow_Type();
--- a/hotspot/src/share/vm/opto/superword.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/superword.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -74,9 +74,15 @@
_do_vector_loop(phase->C->do_vector_loop()), // whether to do vectorization/simd style
_ii_first(-1), // first loop generation index - only if do_vector_loop()
_ii_last(-1), // last loop generation index - only if do_vector_loop()
- _ii_order(arena(), 8, 0, 0),
- _vector_loop_debug(phase->C->has_method() && phase->C->method_has_option("VectorizeDebug"))
-{}
+ _ii_order(arena(), 8, 0, 0)
+{
+#ifndef PRODUCT
+ _vector_loop_debug = 0;
+ if (_phase->C->method() != NULL) {
+ _phase->C->method()->has_option_value("VectorizeDebug", _vector_loop_debug);
+ }
+#endif
+}
//------------------------------transform_loop---------------------------
void SuperWord::transform_loop(IdealLoopTree* lpt, bool do_optimization) {
@@ -90,7 +96,6 @@
if (!cl->is_valid_counted_loop()) return; // skip malformed counted loop
if (!cl->is_main_loop() ) return; // skip normal, pre, and post loops
-
// Check for no control flow in body (other than exit)
Node *cl_exit = cl->loopexit();
if (cl_exit->in(0) != lpt->_head) return;
@@ -425,13 +430,15 @@
// this reference to a vector-aligned address.
best_align_to_mem_ref = mem_ref;
best_iv_adjustment = iv_adjustment;
+ NOT_PRODUCT(find_adjacent_refs_trace_1(best_align_to_mem_ref, best_iv_adjustment);)
}
SWPointer align_to_ref_p(mem_ref, this, NULL, false);
// Set alignment relative to "align_to_ref" for all related memory operations.
for (int i = memops.size() - 1; i >= 0; i--) {
MemNode* s = memops.at(i)->as_Mem();
- if (isomorphic(s, mem_ref)) {
+ if (isomorphic(s, mem_ref) &&
+ (!_do_vector_loop || same_origin_idx(s, mem_ref))) {
SWPointer p2(s, this, NULL, false);
if (p2.comparable(align_to_ref_p)) {
int align = memory_alignment(s, iv_adjustment);
@@ -496,7 +503,7 @@
Node_List* pair = new Node_List();
pair->push(s1);
pair->push(s2);
- if (!_do_vector_loop || _clone_map.idx(s1->_idx) == _clone_map.idx(s2->_idx)) {
+ if (!_do_vector_loop || same_origin_idx(s1, s2)) {
_packset.append(pair);
}
}
@@ -533,8 +540,12 @@
memops.push(s);
}
MemNode* best_align_to_mem_ref = find_align_to_ref(memops);
- if (best_align_to_mem_ref == NULL) break;
+ if (best_align_to_mem_ref == NULL) {
+ NOT_PRODUCT(if (TraceSuperWord) tty->print_cr("SuperWord::find_adjacent_refs(): best_align_to_mem_ref == NULL");)
+ break;
+ }
best_iv_adjustment = get_iv_adjustment(best_align_to_mem_ref);
+ NOT_PRODUCT(find_adjacent_refs_trace_1(best_align_to_mem_ref, best_iv_adjustment);)
// Restore list.
while (memops.size() > orig_msize)
(void)memops.pop();
@@ -560,6 +571,16 @@
#endif
}
+#ifndef PRODUCT
+void SuperWord::find_adjacent_refs_trace_1(Node* best_align_to_mem_ref, int best_iv_adjustment) {
+ if (is_trace_adjacent()) {
+ tty->print("SuperWord::find_adjacent_refs best_align_to_mem_ref = %d, best_iv_adjustment = %d",
+ best_align_to_mem_ref->_idx, best_iv_adjustment);
+ best_align_to_mem_ref->dump();
+ }
+}
+#endif
+
//------------------------------find_align_to_ref---------------------------
// Find a memory reference to align the loop induction variable to.
// Looks first at stores then at loads, looking for a memory reference
@@ -756,9 +777,11 @@
}
#ifndef PRODUCT
- if (TraceSuperWord)
- tty->print_cr("\noffset = %d iv_adjust = %d elt_size = %d scale = %d iv_stride = %d vect_size %d",
- offset, iv_adjustment, elt_size, scale, iv_stride(), vw);
+ if (TraceSuperWord) {
+ tty->print("SuperWord::get_iv_adjustment: n = %d, noffset = %d iv_adjust = %d elt_size = %d scale = %d iv_stride = %d vect_size %d: ",
+ mem_ref->_idx, offset, iv_adjustment, elt_size, scale, iv_stride(), vw);
+ mem_ref->dump();
+ }
#endif
return iv_adjustment;
}
@@ -863,12 +886,14 @@
Node* n = start;
Node* prev = NULL;
while (true) {
+ NOT_PRODUCT( if(is_trace_mem_slice()) tty->print_cr("SuperWord::mem_slice_preds: n %d", n->_idx);)
assert(in_bb(n), "must be in block");
for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
Node* out = n->fast_out(i);
if (out->is_Load()) {
if (in_bb(out)) {
preds.push(out);
+ NOT_PRODUCT(if (TraceSuperWord && Verbose) tty->print_cr("SuperWord::mem_slice_preds: added pred(%d)", out->_idx);)
}
} else {
// FIXME
@@ -883,10 +908,11 @@
} else {
assert(out == prev || prev == NULL, "no branches off of store slice");
}
- }
- }
+ }//else
+ }//for
if (n == stop) break;
preds.push(n);
+ NOT_PRODUCT(if (TraceSuperWord && Verbose) tty->print_cr("SuperWord::mem_slice_preds: added pred(%d)", n->_idx);)
prev = n;
assert(n->is_Mem(), err_msg_res("unexpected node %s", n->Name()));
n = n->in(MemNode::Memory);
@@ -2140,18 +2166,38 @@
} else {
_stk.pop(); // Remove post-visited node from stack
}
- }
-
+ }//while
+
+ int ii_current = -1;
+ unsigned int load_idx = (unsigned int)-1;
+ _ii_order.clear();
// Create real map of block indices for nodes
for (int j = 0; j < _block.length(); j++) {
Node* n = _block.at(j);
set_bb_idx(n, j);
- }
+ if (_do_vector_loop && n->is_Load()) {
+ if (ii_current == -1) {
+ ii_current = _clone_map.gen(n->_idx);
+ _ii_order.push(ii_current);
+ load_idx = _clone_map.idx(n->_idx);
+ } else if (_clone_map.idx(n->_idx) == load_idx && _clone_map.gen(n->_idx) != ii_current) {
+ ii_current = _clone_map.gen(n->_idx);
+ _ii_order.push(ii_current);
+ }
+ }
+ }//for
// Ensure extra info is allocated.
initialize_bb();
#ifndef PRODUCT
+ if (_vector_loop_debug && _ii_order.length() > 0) {
+ tty->print("SuperWord::construct_bb: List of generations: ");
+ for (int jj = 0; jj < _ii_order.length(); ++jj) {
+ tty->print(" %d:%d", jj, _ii_order.at(jj));
+ }
+ tty->print_cr(" ");
+ }
if (TraceSuperWord) {
print_bb();
tty->print_cr("\ndata entry nodes: %s", _data_entry.length() > 0 ? "" : "NONE");
@@ -2312,18 +2358,27 @@
//------------------------------memory_alignment---------------------------
// Alignment within a vector memory reference
int SuperWord::memory_alignment(MemNode* s, int iv_adjust) {
+ #ifndef PRODUCT
+ if(TraceSuperWord && Verbose) {
+ tty->print("SuperWord::memory_alignment within a vector memory reference for %d: ", s->_idx); s->dump();
+ }
+ #endif
+ NOT_PRODUCT(SWPointer::Tracer::Depth ddd(0);)
SWPointer p(s, this, NULL, false);
if (!p.valid()) {
+ NOT_PRODUCT(if(is_trace_alignment()) tty->print("SWPointer::memory_alignment: SWPointer p invalid, return bottom_align");)
return bottom_align;
}
int vw = vector_width_in_bytes(s);
if (vw < 2) {
+ NOT_PRODUCT(if(is_trace_alignment()) tty->print_cr("SWPointer::memory_alignment: vector_width_in_bytes < 2, return bottom_align");)
return bottom_align; // No vectors for this type
}
int offset = p.offset_in_bytes();
offset += iv_adjust*p.memory_size();
int off_rem = offset % vw;
int off_mod = off_rem >= 0 ? off_rem : off_rem + vw;
+ NOT_PRODUCT(if(TraceSuperWord && Verbose) tty->print_cr("SWPointer::memory_alignment: off_rem = %d, off_mod = %d", off_rem, off_mod);)
return off_mod;
}
@@ -2732,13 +2787,20 @@
//==============================SWPointer===========================
-
+#ifndef PRODUCT
+int SWPointer::Tracer::_depth = 0;
+#endif
//----------------------------SWPointer------------------------
SWPointer::SWPointer(MemNode* mem, SuperWord* slp, Node_Stack *nstack, bool analyze_only) :
_mem(mem), _slp(slp), _base(NULL), _adr(NULL),
_scale(0), _offset(0), _invar(NULL), _negate_invar(false),
_nstack(nstack), _analyze_only(analyze_only),
- _stack_idx(0) {
+ _stack_idx(0)
+#ifndef PRODUCT
+ , _tracer(slp)
+#endif
+{
+ NOT_PRODUCT(_tracer.ctor_1(mem);)
Node* adr = mem->in(MemNode::Address);
if (!adr->is_AddP()) {
@@ -2757,16 +2819,29 @@
assert(!valid(), "unsafe access");
return;
}
- for (int i = 0; i < 3; i++) {
+
+ NOT_PRODUCT(if(_slp->is_trace_alignment()) _tracer.store_depth();)
+ NOT_PRODUCT(_tracer.ctor_2(adr);)
+
+ int i;
+ for (i = 0; i < 3; i++) {
+ NOT_PRODUCT(_tracer.ctor_3(adr, i);)
+
if (!scaled_iv_plus_offset(adr->in(AddPNode::Offset))) {
assert(!valid(), "too complex");
return;
}
adr = adr->in(AddPNode::Address);
+ NOT_PRODUCT(_tracer.ctor_4(adr, i);)
+
if (base == adr || !adr->is_AddP()) {
+ NOT_PRODUCT(_tracer.ctor_5(adr, base, i);)
break; // stop looking at addp's
}
}
+ NOT_PRODUCT(if(_slp->is_trace_alignment()) _tracer.restore_depth();)
+ NOT_PRODUCT(_tracer.ctor_6(mem);)
+
_base = base;
_adr = adr;
assert(valid(), "Usable");
@@ -2778,68 +2853,103 @@
_mem(p->_mem), _slp(p->_slp), _base(NULL), _adr(NULL),
_scale(0), _offset(0), _invar(NULL), _negate_invar(false),
_nstack(p->_nstack), _analyze_only(p->_analyze_only),
- _stack_idx(p->_stack_idx) {}
-
+ _stack_idx(p->_stack_idx)
+ #ifndef PRODUCT
+ , _tracer(p->_slp)
+ #endif
+{}
+
+
+bool SWPointer::invariant(Node* n) {
+ NOT_PRODUCT(Tracer::Depth dd;)
+ Node *n_c = phase()->get_ctrl(n);
+ NOT_PRODUCT(_tracer.invariant_1(n, n_c);)
+ return !lpt()->is_member(phase()->get_loop(n_c));
+}
//------------------------scaled_iv_plus_offset--------------------
// Match: k*iv + offset
// where: k is a constant that maybe zero, and
// offset is (k2 [+/- invariant]) where k2 maybe zero and invariant is optional
bool SWPointer::scaled_iv_plus_offset(Node* n) {
+ NOT_PRODUCT(Tracer::Depth ddd;)
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_1(n);)
+
if (scaled_iv(n)) {
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_2(n);)
return true;
}
+
if (offset_plus_k(n)) {
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_3(n);)
return true;
}
+
int opc = n->Opcode();
if (opc == Op_AddI) {
if (scaled_iv(n->in(1)) && offset_plus_k(n->in(2))) {
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_4(n);)
return true;
}
if (scaled_iv(n->in(2)) && offset_plus_k(n->in(1))) {
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_5(n);)
return true;
}
} else if (opc == Op_SubI) {
if (scaled_iv(n->in(1)) && offset_plus_k(n->in(2), true)) {
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_6(n);)
return true;
}
if (scaled_iv(n->in(2)) && offset_plus_k(n->in(1))) {
_scale *= -1;
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_7(n);)
return true;
}
}
+
+ NOT_PRODUCT(_tracer.scaled_iv_plus_offset_8(n);)
return false;
}
//----------------------------scaled_iv------------------------
// Match: k*iv where k is a constant that's not zero
bool SWPointer::scaled_iv(Node* n) {
- if (_scale != 0) {
- return false; // already found a scale
+ NOT_PRODUCT(Tracer::Depth ddd;)
+ NOT_PRODUCT(_tracer.scaled_iv_1(n);)
+
+ if (_scale != 0) { // already found a scale
+ NOT_PRODUCT(_tracer.scaled_iv_2(n, _scale);)
+ return false;
}
+
if (n == iv()) {
_scale = 1;
+ NOT_PRODUCT(_tracer.scaled_iv_3(n, _scale);)
return true;
}
if (_analyze_only && (invariant(n) == false)) {
_nstack->push(n, _stack_idx++);
}
+
int opc = n->Opcode();
if (opc == Op_MulI) {
if (n->in(1) == iv() && n->in(2)->is_Con()) {
_scale = n->in(2)->get_int();
+ NOT_PRODUCT(_tracer.scaled_iv_4(n, _scale);)
return true;
} else if (n->in(2) == iv() && n->in(1)->is_Con()) {
_scale = n->in(1)->get_int();
+ NOT_PRODUCT(_tracer.scaled_iv_5(n, _scale);)
return true;
}
} else if (opc == Op_LShiftI) {
if (n->in(1) == iv() && n->in(2)->is_Con()) {
_scale = 1 << n->in(2)->get_int();
+ NOT_PRODUCT(_tracer.scaled_iv_6(n, _scale);)
return true;
}
} else if (opc == Op_ConvI2L) {
if (scaled_iv_plus_offset(n->in(1))) {
+ NOT_PRODUCT(_tracer.scaled_iv_7(n);)
return true;
}
} else if (opc == Op_LShiftL) {
@@ -2847,17 +2957,22 @@
// Need to preserve the current _offset value, so
// create a temporary object for this expression subtree.
// Hacky, so should re-engineer the address pattern match.
+ NOT_PRODUCT(Tracer::Depth dddd;)
SWPointer tmp(this);
+ NOT_PRODUCT(_tracer.scaled_iv_8(n, &tmp);)
+
if (tmp.scaled_iv_plus_offset(n->in(1))) {
- if (tmp._invar == NULL) {
+ if (tmp._invar == NULL || _slp->do_vector_loop()) {
int mult = 1 << n->in(2)->get_int();
_scale = tmp._scale * mult;
_offset += tmp._offset * mult;
+ NOT_PRODUCT(_tracer.scaled_iv_9(n, _scale, _offset, mult);)
return true;
}
}
}
}
+ NOT_PRODUCT(_tracer.scaled_iv_10(n);)
return false;
}
@@ -2865,9 +2980,13 @@
// Match: offset is (k [+/- invariant])
// where k maybe zero and invariant is optional, but not both.
bool SWPointer::offset_plus_k(Node* n, bool negate) {
+ NOT_PRODUCT(Tracer::Depth ddd;)
+ NOT_PRODUCT(_tracer.offset_plus_k_1(n);)
+
int opc = n->Opcode();
if (opc == Op_ConI) {
_offset += negate ? -(n->get_int()) : n->get_int();
+ NOT_PRODUCT(_tracer.offset_plus_k_2(n, _offset);)
return true;
} else if (opc == Op_ConL) {
// Okay if value fits into an int
@@ -2876,11 +2995,17 @@
jlong loff = n->get_long();
jint off = (jint)loff;
_offset += negate ? -off : loff;
+ NOT_PRODUCT(_tracer.offset_plus_k_3(n, _offset);)
return true;
}
+ NOT_PRODUCT(_tracer.offset_plus_k_4(n);)
return false;
}
- if (_invar != NULL) return false; // already have an invariant
+ if (_invar != NULL) { // already has an invariant
+ NOT_PRODUCT(_tracer.offset_plus_k_5(n, _invar);)
+ return false;
+ }
+
if (_analyze_only && (invariant(n) == false)) {
_nstack->push(n, _stack_idx++);
}
@@ -2889,11 +3014,13 @@
_negate_invar = negate;
_invar = n->in(1);
_offset += negate ? -(n->in(2)->get_int()) : n->in(2)->get_int();
+ NOT_PRODUCT(_tracer.offset_plus_k_6(n, _invar, _negate_invar, _offset);)
return true;
} else if (n->in(1)->is_Con() && invariant(n->in(2))) {
_offset += negate ? -(n->in(1)->get_int()) : n->in(1)->get_int();
_negate_invar = negate;
_invar = n->in(2);
+ NOT_PRODUCT(_tracer.offset_plus_k_7(n, _invar, _negate_invar, _offset);)
return true;
}
}
@@ -2902,19 +3029,24 @@
_negate_invar = negate;
_invar = n->in(1);
_offset += !negate ? -(n->in(2)->get_int()) : n->in(2)->get_int();
+ NOT_PRODUCT(_tracer.offset_plus_k_8(n, _invar, _negate_invar, _offset);)
return true;
} else if (n->in(1)->is_Con() && invariant(n->in(2))) {
_offset += negate ? -(n->in(1)->get_int()) : n->in(1)->get_int();
_negate_invar = !negate;
_invar = n->in(2);
+ NOT_PRODUCT(_tracer.offset_plus_k_9(n, _invar, _negate_invar, _offset);)
return true;
}
}
if (invariant(n)) {
_negate_invar = negate;
_invar = n;
+ NOT_PRODUCT(_tracer.offset_plus_k_10(n, _invar, _negate_invar, _offset);)
return true;
}
+
+ NOT_PRODUCT(_tracer.offset_plus_k_11(n);)
return false;
}
@@ -2930,6 +3062,287 @@
#endif
}
+//----------------------------tracing------------------------
+#ifndef PRODUCT
+void SWPointer::Tracer::print_depth() {
+ for (int ii = 0; ii<_depth; ++ii) tty->print(" ");
+}
+
+void SWPointer::Tracer::ctor_1 (Node* mem) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print(" %d SWPointer::SWPointer: start alignment analysis", mem->_idx); mem->dump();
+ }
+}
+
+void SWPointer::Tracer::ctor_2(Node* adr) {
+ if(_slp->is_trace_alignment()) {
+ //store_depth();
+ inc_depth();
+ print_depth(); tty->print(" %d (adr) SWPointer::SWPointer: ", adr->_idx); adr->dump();
+ inc_depth();
+ print_depth(); tty->print(" %d (base) SWPointer::SWPointer: ", adr->in(AddPNode::Base)->_idx); adr->in(AddPNode::Base)->dump();
+ }
+}
+
+void SWPointer::Tracer::ctor_3(Node* adr, int i) {
+ if(_slp->is_trace_alignment()) {
+ inc_depth();
+ Node* offset = adr->in(AddPNode::Offset);
+ print_depth(); tty->print(" %d (offset) SWPointer::SWPointer: i = %d: ", offset->_idx, i); offset->dump();
+ }
+}
+
+void SWPointer::Tracer::ctor_4(Node* adr, int i) {
+ if(_slp->is_trace_alignment()) {
+ inc_depth();
+ print_depth(); tty->print(" %d (adr) SWPointer::SWPointer: i = %d: ", adr->_idx, i); adr->dump();
+ }
+}
+
+void SWPointer::Tracer::ctor_5(Node* adr, Node* base, int i) {
+ if(_slp->is_trace_alignment()) {
+ inc_depth();
+ if (base == adr) {
+ print_depth(); tty->print_cr(" \\ %d (adr) == %d (base) SWPointer::SWPointer: breaking analysis at i = %d", adr->_idx, base->_idx, i);
+ } else if (!adr->is_AddP()) {
+ print_depth(); tty->print_cr(" \\ %d (adr) is NOT Addp SWPointer::SWPointer: breaking analysis at i = %d", adr->_idx, i);
+ }
+ }
+}
+
+void SWPointer::Tracer::ctor_6(Node* mem) {
+ if(_slp->is_trace_alignment()) {
+ //restore_depth();
+ print_depth(); tty->print_cr(" %d (adr) SWPointer::SWPointer: stop analysis", mem->_idx);
+ }
+}
+
+void SWPointer::Tracer::invariant_1(Node *n, Node *n_c) {
+ if (_slp->do_vector_loop() && _slp->is_debug() && _slp->_lpt->is_member(_slp->_phase->get_loop(n_c)) != (int)_slp->in_bb(n)) {
+ int is_member = _slp->_lpt->is_member(_slp->_phase->get_loop(n_c));
+ int in_bb = _slp->in_bb(n);
+ print_depth(); tty->print(" \\ "); tty->print_cr(" %d SWPointer::invariant conditions differ: n_c %d", n->_idx, n_c->_idx);
+ print_depth(); tty->print(" \\ "); tty->print_cr("is_member %d, in_bb %d", is_member, in_bb);
+ print_depth(); tty->print(" \\ "); n->dump();
+ print_depth(); tty->print(" \\ "); n_c->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_1(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print(" %d SWPointer::scaled_iv_plus_offset testing node: ", n->_idx);
+ n->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_2(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv_plus_offset: PASSED", n->_idx);
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_3(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv_plus_offset: PASSED", n->_idx);
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_4(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv_plus_offset: Op_AddI PASSED", n->_idx);
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(1) is scaled_iv: ", n->in(1)->_idx); n->in(1)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(2) is offset_plus_k: ", n->in(2)->_idx); n->in(2)->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_5(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv_plus_offset: Op_AddI PASSED", n->_idx);
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(2) is scaled_iv: ", n->in(2)->_idx); n->in(2)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(1) is offset_plus_k: ", n->in(1)->_idx); n->in(1)->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_6(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv_plus_offset: Op_SubI PASSED", n->_idx);
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(1) is scaled_iv: ", n->in(1)->_idx); n->in(1)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(2) is offset_plus_k: ", n->in(2)->_idx); n->in(2)->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_7(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv_plus_offset: Op_SubI PASSED", n->_idx);
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(2) is scaled_iv: ", n->in(2)->_idx); n->in(2)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv_plus_offset: in(1) is offset_plus_k: ", n->in(1)->_idx); n->in(1)->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_plus_offset_8(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv_plus_offset: FAILED", n->_idx);
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_1(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print(" %d SWPointer::scaled_iv: testing node: ", n->_idx); n->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_2(Node* n, int scale) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: FAILED since another _scale has been detected before", n->_idx);
+ print_depth(); tty->print_cr(" \\ SWPointer::scaled_iv: _scale (%d) != 0", scale);
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_3(Node* n, int scale) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: is iv, setting _scale = %d", n->_idx, scale);
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_4(Node* n, int scale) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: Op_MulI PASSED, setting _scale = %d", n->_idx, scale);
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv: in(1) is iv: ", n->in(1)->_idx); n->in(1)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv: in(2) is Con: ", n->in(2)->_idx); n->in(2)->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_5(Node* n, int scale) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: Op_MulI PASSED, setting _scale = %d", n->_idx, scale);
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv: in(2) is iv: ", n->in(2)->_idx); n->in(2)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv: in(1) is Con: ", n->in(1)->_idx); n->in(1)->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_6(Node* n, int scale) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: Op_LShiftI PASSED, setting _scale = %d", n->_idx, scale);
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv: in(1) is iv: ", n->in(1)->_idx); n->in(1)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::scaled_iv: in(2) is Con: ", n->in(2)->_idx); n->in(2)->dump();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_7(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: Op_ConvI2L PASSED", n->_idx);
+ print_depth(); tty->print_cr(" \\ SWPointer::scaled_iv: in(1) %d is scaled_iv_plus_offset: ", n->in(1)->_idx);
+ inc_depth(); inc_depth();
+ print_depth(); n->in(1)->dump();
+ dec_depth(); dec_depth();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_8(Node* n, SWPointer* tmp) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print(" %d SWPointer::scaled_iv: Op_LShiftL, creating tmp SWPointer: ", n->_idx); tmp->print();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_9(Node* n, int scale, int _offset, int mult) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: Op_LShiftL PASSED, setting _scale = %d, _offset = %d", n->_idx, scale, _offset);
+ print_depth(); tty->print_cr(" \\ SWPointer::scaled_iv: in(1) %d is scaled_iv_plus_offset, in(2) %d used to get mult = %d: _scale = %d, _offset = %d",
+ n->in(1)->_idx, n->in(2)->_idx, mult, scale, _offset);
+ inc_depth(); inc_depth();
+ print_depth(); n->in(1)->dump();
+ print_depth(); n->in(2)->dump();
+ dec_depth(); dec_depth();
+ }
+}
+
+void SWPointer::Tracer::scaled_iv_10(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::scaled_iv: FAILED", n->_idx);
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_1(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print(" %d SWPointer::offset_plus_k: testing node: ", n->_idx); n->dump();
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_2(Node* n, int _offset) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: Op_ConI PASSED, setting _offset = %d", n->_idx, _offset);
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_3(Node* n, int _offset) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: Op_ConL PASSED, setting _offset = %d", n->_idx, _offset);
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_4(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: FAILED", n->_idx);
+ print_depth(); tty->print_cr(" \\ " JLONG_FORMAT " SWPointer::offset_plus_k: Op_ConL FAILED, k is too big", n->get_long());
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_5(Node* n, Node* _invar) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: FAILED since another invariant has been detected before", n->_idx);
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: _invar != NULL: ", _invar->_idx); _invar->dump();
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_6(Node* n, Node* _invar, bool _negate_invar, int _offset) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: Op_AddI PASSED, setting _negate_invar = %d, _invar = %d, _offset = %d",
+ n->_idx, _negate_invar, _invar->_idx, _offset);
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(2) is Con: ", n->in(2)->_idx); n->in(2)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(1) is invariant: ", _invar->_idx); _invar->dump();
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_7(Node* n, Node* _invar, bool _negate_invar, int _offset) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: Op_AddI PASSED, setting _negate_invar = %d, _invar = %d, _offset = %d",
+ n->_idx, _negate_invar, _invar->_idx, _offset);
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(1) is Con: ", n->in(1)->_idx); n->in(1)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(2) is invariant: ", _invar->_idx); _invar->dump();
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_8(Node* n, Node* _invar, bool _negate_invar, int _offset) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: Op_SubI is PASSED, setting _negate_invar = %d, _invar = %d, _offset = %d",
+ n->_idx, _negate_invar, _invar->_idx, _offset);
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(2) is Con: ", n->in(2)->_idx); n->in(2)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(1) is invariant: ", _invar->_idx); _invar->dump();
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_9(Node* n, Node* _invar, bool _negate_invar, int _offset) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: Op_SubI PASSED, setting _negate_invar = %d, _invar = %d, _offset = %d", n->_idx, _negate_invar, _invar->_idx, _offset);
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(1) is Con: ", n->in(1)->_idx); n->in(1)->dump();
+ print_depth(); tty->print(" \\ %d SWPointer::offset_plus_k: in(2) is invariant: ", _invar->_idx); _invar->dump();
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_10(Node* n, Node* _invar, bool _negate_invar, int _offset) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: PASSED, setting _negate_invar = %d, _invar = %d, _offset = %d", n->_idx, _negate_invar, _invar->_idx, _offset);
+ print_depth(); tty->print_cr(" \\ %d SWPointer::offset_plus_k: is invariant", n->_idx);
+ }
+}
+
+void SWPointer::Tracer::offset_plus_k_11(Node* n) {
+ if(_slp->is_trace_alignment()) {
+ print_depth(); tty->print_cr(" %d SWPointer::offset_plus_k: FAILED", n->_idx);
+ }
+}
+
+#endif
// ========================= OrderedPair =====================
const OrderedPair OrderedPair::initial;
@@ -3076,13 +3489,20 @@
//
// --------------------------------- vectorization/simd -----------------------------------
//
+bool SuperWord::same_origin_idx(Node* a, Node* b) const {
+ return a != NULL && b != NULL && _clone_map.same_idx(a->_idx, b->_idx);
+}
+bool SuperWord::same_generation(Node* a, Node* b) const {
+ return a != NULL && b != NULL && _clone_map.same_gen(a->_idx, b->_idx);
+}
+
Node* SuperWord::find_phi_for_mem_dep(LoadNode* ld) {
assert(in_bb(ld), "must be in block");
if (_clone_map.gen(ld->_idx) == _ii_first) {
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::find_phi_for_mem_dep _clone_map.gen(ld->_idx)=%d",
- _clone_map.gen(ld->_idx));
+ _clone_map.gen(ld->_idx));
}
#endif
return NULL; //we think that any ld in the first gen being vectorizable
@@ -3094,18 +3514,18 @@
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::find_phi_for_mem_dep input node %d to load %d has no other outputs and edge mem->load cannot be removed",
- mem->_idx, ld->_idx);
+ mem->_idx, ld->_idx);
ld->dump();
mem->dump();
}
#endif
return NULL;
}
- if (!in_bb(mem) || _clone_map.gen(mem->_idx) == _clone_map.gen(ld->_idx)) {
+ if (!in_bb(mem) || same_generation(mem, ld)) {
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::find_phi_for_mem_dep _clone_map.gen(mem->_idx)=%d",
- _clone_map.gen(mem->_idx));
+ _clone_map.gen(mem->_idx));
}
#endif
return NULL; // does not depend on loop volatile node or depends on the same generation
@@ -3136,7 +3556,7 @@
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::find_phi_for_mem_dep load %d is not vectorizable node, its phi %d is not _mem_slice_head",
- ld->_idx, phi->_idx);
+ ld->_idx, phi->_idx);
ld->dump();
phi->dump();
}
@@ -3151,11 +3571,11 @@
Node* SuperWord::first_node(Node* nd) {
for (int ii = 0; ii < _iteration_first.length(); ii++) {
Node* nnn = _iteration_first.at(ii);
- if (_clone_map.idx(nnn->_idx) == _clone_map.idx(nd->_idx)) {
+ if (same_origin_idx(nnn, nd)) {
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::first_node: %d is the first iteration node for %d (_clone_map.idx(nnn->_idx) = %d)",
- nnn->_idx, nd->_idx, _clone_map.idx(nnn->_idx));
+ nnn->_idx, nd->_idx, _clone_map.idx(nnn->_idx));
}
#endif
return nnn;
@@ -3165,7 +3585,7 @@
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::first_node: did not find first iteration node for %d (_clone_map.idx(nd->_idx)=%d)",
- nd->_idx, _clone_map.idx(nd->_idx));
+ nd->_idx, _clone_map.idx(nd->_idx));
}
#endif
return 0;
@@ -3174,11 +3594,11 @@
Node* SuperWord::last_node(Node* nd) {
for (int ii = 0; ii < _iteration_last.length(); ii++) {
Node* nnn = _iteration_last.at(ii);
- if (_clone_map.idx(nnn->_idx) == _clone_map.idx(nd->_idx)) {
+ if (same_origin_idx(nnn, nd)) {
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::last_node _clone_map.idx(nnn->_idx)=%d, _clone_map.idx(nd->_idx)=%d",
- _clone_map.idx(nnn->_idx), _clone_map.idx(nd->_idx));
+ _clone_map.idx(nnn->_idx), _clone_map.idx(nd->_idx));
}
#endif
return nnn;
@@ -3219,9 +3639,11 @@
} else if (_ii_first != _clone_map.gen(ii->_idx)) {
#ifndef PRODUCT
if (TraceSuperWord && Verbose) {
- tty->print_cr("SuperWord::mark_generations _ii_first error - found different generations in two nodes ");
+ tty->print_cr("SuperWord::mark_generations: _ii_first was found before and not equal to one in this node (%d)", _ii_first);
ii->dump();
- ii_err->dump();
+ if (ii_err!= 0) {
+ ii_err->dump();
+ }
}
#endif
return -1; // this phi has Stores from different generations of unroll and cannot be simd/vectorized
@@ -3252,8 +3674,7 @@
}
// building order of iterations
- assert(_ii_order.length() == 0, "should be empty");
- if (ii_err != 0) {
+ if (_ii_order.length() == 0 && ii_err != 0) {
assert(in_bb(ii_err) && ii_err->is_Store(), "should be Store in bb");
Node* nd = ii_err;
while(_clone_map.gen(nd->_idx) != _ii_last) {
@@ -3261,7 +3682,7 @@
bool found = false;
for (DUIterator_Fast imax, i = nd->fast_outs(imax); i < imax; i++) {
Node* use = nd->fast_out(i);
- if (_clone_map.idx(use->_idx) == _clone_map.idx(nd->_idx) && use->as_Store()->in(MemNode::Memory) == nd) {
+ if (same_origin_idx(use, nd) && use->as_Store()->in(MemNode::Memory) == nd) {
found = true;
nd = use;
break;
@@ -3303,7 +3724,7 @@
bool SuperWord::fix_commutative_inputs(Node* gold, Node* fix) {
assert(gold->is_Add() && fix->is_Add() || gold->is_Mul() && fix->is_Mul(), "should be only Add or Mul nodes");
- assert(_clone_map.idx(gold->_idx) == _clone_map.idx(fix->_idx), "should be clones of the same node");
+ assert(same_origin_idx(gold, fix), "should be clones of the same node");
Node* gin1 = gold->in(1);
Node* gin2 = gold->in(2);
Node* fin1 = fix->in(1);
@@ -3311,12 +3732,12 @@
bool swapped = false;
if (in_bb(gin1) && in_bb(gin2) && in_bb(fin1) && in_bb(fin1)) {
- if (_clone_map.idx(gin1->_idx) == _clone_map.idx(fin1->_idx) &&
- _clone_map.idx(gin2->_idx) == _clone_map.idx(fin2->_idx)) {
+ if (same_origin_idx(gin1, fin1) &&
+ same_origin_idx(gin2, fin2)) {
return true; // nothing to fix
}
- if (_clone_map.idx(gin1->_idx) == _clone_map.idx(fin2->_idx) &&
- _clone_map.idx(gin2->_idx) == _clone_map.idx(fin1->_idx)) {
+ if (same_origin_idx(gin1, fin2) &&
+ same_origin_idx(gin2, fin1)) {
fix->swap_edges(1, 2);
swapped = true;
}
@@ -3364,7 +3785,7 @@
for (int gen = 1; gen < _ii_order.length(); ++gen) {
for (int kk = 0; kk < _block.length(); kk++) {
Node* clone = _block.at(kk);
- if (_clone_map.idx(clone->_idx) == _clone_map.idx(nd->_idx) &&
+ if (same_origin_idx(clone, nd) &&
_clone_map.gen(clone->_idx) == _ii_order.at(gen)) {
if (nd->is_Add() || nd->is_Mul()) {
fix_commutative_inputs(nd, clone);
@@ -3429,13 +3850,12 @@
if (ld->is_Load() && ld->as_Load()->in(MemNode::Memory) == n && in_bb(ld)) {
for (int i = 0; i < _block.length(); i++) {
Node* ld2 = _block.at(i);
- if (ld2->is_Load() &&
- _clone_map.idx(ld->_idx) == _clone_map.idx(ld2->_idx) &&
- _clone_map.gen(ld->_idx) != _clone_map.gen(ld2->_idx)) { // <= do not collect the first generation ld
+ if (ld2->is_Load() && same_origin_idx(ld, ld2) &&
+ !same_generation(ld, ld2)) { // <= do not collect the first generation ld
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::hoist_loads_in_graph: will try to hoist load ld2->_idx=%d, cloned from %d (ld->_idx=%d)",
- ld2->_idx, _clone_map.idx(ld->_idx), ld->_idx);
+ ld2->_idx, _clone_map.idx(ld->_idx), ld->_idx);
}
#endif
// could not do on-the-fly, since iterator is immutable
@@ -3453,7 +3873,7 @@
#ifndef PRODUCT
if (_vector_loop_debug) {
tty->print_cr("SuperWord::hoist_loads_in_graph replacing MemNode::Memory(%d) edge in %d with one from %d",
- MemNode::Memory, ld->_idx, phi->_idx);
+ MemNode::Memory, ld->_idx, phi->_idx);
}
#endif
_igvn.replace_input_of(ld, MemNode::Memory, phi);
--- a/hotspot/src/share/vm/opto/superword.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/superword.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -203,6 +203,7 @@
// -----------------------------SuperWord---------------------------------
// Transforms scalar operations into packed (superword) operations.
class SuperWord : public ResourceObj {
+ friend class SWPointer;
private:
PhaseIdealLoop* _phase;
Arena* _arena;
@@ -247,8 +248,17 @@
PhaseIdealLoop* phase() { return _phase; }
IdealLoopTree* lpt() { return _lpt; }
PhiNode* iv() { return _iv; }
+
bool early_return() { return _early_return; }
+#ifndef PRODUCT
+ bool is_debug() { return _vector_loop_debug > 0; }
+ bool is_trace_alignment() { return (_vector_loop_debug & 2) > 0; }
+ bool is_trace_mem_slice() { return (_vector_loop_debug & 4) > 0; }
+ bool is_trace_loop() { return (_vector_loop_debug & 8) > 0; }
+ bool is_trace_adjacent() { return (_vector_loop_debug & 16) > 0; }
+#endif
+ bool do_vector_loop() { return _do_vector_loop; }
private:
IdealLoopTree* _lpt; // Current loop tree node
LoopNode* _lp; // Current LoopNode
@@ -257,12 +267,14 @@
bool _race_possible; // In cases where SDMU is true
bool _early_return; // True if we do not initialize
bool _do_vector_loop; // whether to do vectorization/simd style
- bool _vector_loop_debug; // provide more printing in debug mode
int _num_work_vecs; // Number of non memory vector operations
int _num_reductions; // Number of reduction expressions applied
int _ii_first; // generation with direct deps from mem phi
int _ii_last; // generation with direct deps to mem phi
GrowableArray<int> _ii_order;
+#ifndef PRODUCT
+ uintx _vector_loop_debug; // provide more printing in debug mode
+#endif
// Accessors
Arena* arena() { return _arena; }
@@ -325,12 +337,20 @@
Node_List* my_pack(Node* n) { return !in_bb(n) ? NULL : _node_info.adr_at(bb_idx(n))->_my_pack; }
void set_my_pack(Node* n, Node_List* p) { int i = bb_idx(n); grow_node_info(i); _node_info.adr_at(i)->_my_pack = p; }
+ // CloneMap utilities
+ bool same_origin_idx(Node* a, Node* b) const;
+ bool same_generation(Node* a, Node* b) const;
+
// methods
// Extract the superword level parallelism
void SLP_extract();
// Find the adjacent memory references and create pack pairs for them.
void find_adjacent_refs();
+ // Tracing support
+ #ifndef PRODUCT
+ void find_adjacent_refs_trace_1(Node* best_align_to_mem_ref, int best_iv_adjustment);
+ #endif
// Find a memory reference to align the loop induction variable to.
MemNode* find_align_to_ref(Node_List &memops);
// Calculate loop's iv adjustment for this memory ops.
@@ -340,13 +360,13 @@
// rebuild the graph so all loads in different iterations of cloned loop become dependant on phi node (in _do_vector_loop only)
bool hoist_loads_in_graph();
// Test whether MemNode::Memory dependency to the same load but in the first iteration of this loop is coming from memory phi
- // Return false if failed.
+ // Return false if failed
Node* find_phi_for_mem_dep(LoadNode* ld);
// Return same node but from the first generation. Return 0, if not found
Node* first_node(Node* nd);
// Return same node as this but from the last generation. Return 0, if not found
Node* last_node(Node* n);
- // Mark nodes belonging to first and last generation,
+ // Mark nodes belonging to first and last generation
// returns first generation index or -1 if vectorization/simd is impossible
int mark_generations();
// swapping inputs of commutative instruction (Add or Mul)
@@ -483,10 +503,7 @@
IdealLoopTree* lpt() { return _slp->lpt(); }
PhiNode* iv() { return _slp->iv(); } // Induction var
- bool invariant(Node* n) {
- Node *n_c = phase()->get_ctrl(n);
- return !lpt()->is_member(phase()->get_loop(n_c));
- }
+ bool invariant(Node* n);
// Match: k*iv + offset
bool scaled_iv_plus_offset(Node* n);
@@ -545,6 +562,76 @@
static bool comparable(int cmp) { return cmp < NotComparable; }
void print();
+
+#ifndef PRODUCT
+ class Tracer {
+ friend class SuperWord;
+ friend class SWPointer;
+ SuperWord* _slp;
+ static int _depth;
+ int _depth_save;
+ void print_depth();
+ int depth() const { return _depth; }
+ void set_depth(int d) { _depth = d; }
+ void inc_depth() { _depth++;}
+ void dec_depth() { if (_depth > 0) _depth--;}
+ void store_depth() {_depth_save = _depth;}
+ void restore_depth() {_depth = _depth_save;}
+
+ class Depth {
+ friend class Tracer;
+ friend class SWPointer;
+ friend class SuperWord;
+ Depth() { ++_depth; }
+ Depth(int x) { _depth = 0; }
+ ~Depth() { if (_depth > 0) --_depth;}
+ };
+ Tracer (SuperWord* slp) : _slp(slp) {}
+
+ // tracing functions
+ void ctor_1(Node* mem);
+ void ctor_2(Node* adr);
+ void ctor_3(Node* adr, int i);
+ void ctor_4(Node* adr, int i);
+ void ctor_5(Node* adr, Node* base, int i);
+ void ctor_6(Node* mem);
+
+ void invariant_1(Node *n, Node *n_c);
+
+ void scaled_iv_plus_offset_1(Node* n);
+ void scaled_iv_plus_offset_2(Node* n);
+ void scaled_iv_plus_offset_3(Node* n);
+ void scaled_iv_plus_offset_4(Node* n);
+ void scaled_iv_plus_offset_5(Node* n);
+ void scaled_iv_plus_offset_6(Node* n);
+ void scaled_iv_plus_offset_7(Node* n);
+ void scaled_iv_plus_offset_8(Node* n);
+
+ void scaled_iv_1(Node* n);
+ void scaled_iv_2(Node* n, int scale);
+ void scaled_iv_3(Node* n, int scale);
+ void scaled_iv_4(Node* n, int scale);
+ void scaled_iv_5(Node* n, int scale);
+ void scaled_iv_6(Node* n, int scale);
+ void scaled_iv_7(Node* n);
+ void scaled_iv_8(Node* n, SWPointer* tmp);
+ void scaled_iv_9(Node* n, int _scale, int _offset, int mult);
+ void scaled_iv_10(Node* n);
+
+ void offset_plus_k_1(Node* n);
+ void offset_plus_k_2(Node* n, int _offset);
+ void offset_plus_k_3(Node* n, int _offset);
+ void offset_plus_k_4(Node* n);
+ void offset_plus_k_5(Node* n, Node* _invar);
+ void offset_plus_k_6(Node* n, Node* _invar, bool _negate_invar, int _offset);
+ void offset_plus_k_7(Node* n, Node* _invar, bool _negate_invar, int _offset);
+ void offset_plus_k_8(Node* n, Node* _invar, bool _negate_invar, int _offset);
+ void offset_plus_k_9(Node* n, Node* _invar, bool _negate_invar, int _offset);
+ void offset_plus_k_10(Node* n, Node* _invar, bool _negate_invar, int _offset);
+ void offset_plus_k_11(Node* n);
+
+ } _tracer;//TRacer;
+#endif
};
--- a/hotspot/src/share/vm/opto/type.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/type.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -200,8 +200,7 @@
//-----------------------make_from_constant------------------------------------
-const Type* Type::make_from_constant(ciConstant constant,
- bool require_constant, bool is_autobox_cache) {
+const Type* Type::make_from_constant(ciConstant constant, bool require_constant) {
switch (constant.basic_type()) {
case T_BOOLEAN: return TypeInt::make(constant.as_boolean());
case T_CHAR: return TypeInt::make(constant.as_char());
@@ -222,14 +221,57 @@
if (oop_constant->is_null_object()) {
return Type::get_zero_type(T_OBJECT);
} else if (require_constant || oop_constant->should_be_constant()) {
- return TypeOopPtr::make_from_constant(oop_constant, require_constant, is_autobox_cache);
+ return TypeOopPtr::make_from_constant(oop_constant, require_constant);
+ }
+ }
+ case T_ILLEGAL:
+ // Invalid ciConstant returned due to OutOfMemoryError in the CI
+ assert(Compile::current()->env()->failing(), "otherwise should not see this");
+ return NULL;
+ }
+ // Fall through to failure
+ return NULL;
+}
+
+
+const Type* Type::make_constant(ciField* field, Node* obj) {
+ if (!field->is_constant()) return NULL;
+
+ const Type* con_type = NULL;
+ if (field->is_static()) {
+ // final static field
+ con_type = Type::make_from_constant(field->constant_value(), /*require_const=*/true);
+ if (Compile::current()->eliminate_boxing() && field->is_autobox_cache() && con_type != NULL) {
+ con_type = con_type->is_aryptr()->cast_to_autobox_cache(true);
+ }
+ } else {
+ // final or stable non-static field
+ // Treat final non-static fields of trusted classes (classes in
+ // java.lang.invoke and sun.invoke packages and subpackages) as
+ // compile time constants.
+ if (obj->is_Con()) {
+ const TypeOopPtr* oop_ptr = obj->bottom_type()->isa_oopptr();
+ ciObject* constant_oop = oop_ptr->const_oop();
+ ciConstant constant = field->constant_value_of(constant_oop);
+ con_type = Type::make_from_constant(constant, /*require_const=*/true);
+ }
+ }
+ if (FoldStableValues && field->is_stable() && con_type != NULL) {
+ if (con_type->is_zero_type()) {
+ return NULL; // the field hasn't been initialized yet
+ } else if (con_type->isa_oopptr()) {
+ const Type* stable_type = Type::get_const_type(field->type());
+ if (field->type()->is_array_klass()) {
+ int stable_dimension = field->type()->as_array_klass()->dimension();
+ stable_type = stable_type->is_aryptr()->cast_to_stable(true, stable_dimension);
+ }
+ if (stable_type != NULL) {
+ con_type = con_type->join_speculative(stable_type);
}
}
}
- // Fall through to failure
- return NULL;
-}
-
+ return con_type;
+}
//------------------------------make-------------------------------------------
// Create a simple Type, with default empty symbol sets. Then hashcons it
@@ -3009,9 +3051,7 @@
//------------------------------make_from_constant-----------------------------
// Make a java pointer from an oop constant
-const TypeOopPtr* TypeOopPtr::make_from_constant(ciObject* o,
- bool require_constant,
- bool is_autobox_cache) {
+const TypeOopPtr* TypeOopPtr::make_from_constant(ciObject* o, bool require_constant) {
assert(!o->is_null_object(), "null object not yet handled here.");
ciKlass* klass = o->klass();
if (klass->is_instance_klass()) {
@@ -3026,10 +3066,6 @@
// Element is an object array. Recursively call ourself.
const TypeOopPtr *etype =
TypeOopPtr::make_from_klass_raw(klass->as_obj_array_klass()->element_klass());
- if (is_autobox_cache) {
- // The pointers in the autobox arrays are always non-null.
- etype = etype->cast_to_ptr_type(TypePtr::NotNull)->is_oopptr();
- }
const TypeAry* arr0 = TypeAry::make(etype, TypeInt::make(o->as_array()->length()));
// We used to pass NotNull in here, asserting that the sub-arrays
// are all not-null. This is not true in generally, as code can
@@ -3039,7 +3075,7 @@
} else if (!o->should_be_constant()) {
return TypeAryPtr::make(TypePtr::NotNull, arr0, klass, true, 0);
}
- const TypeAryPtr* arr = TypeAryPtr::make(TypePtr::Constant, o, arr0, klass, true, 0, InstanceBot, NULL, InlineDepthBottom, is_autobox_cache);
+ const TypeAryPtr* arr = TypeAryPtr::make(TypePtr::Constant, o, arr0, klass, true, 0);
return arr;
} else if (klass->is_type_array_klass()) {
// Element is an typeArray
@@ -3940,7 +3976,6 @@
return make(ptr(), const_oop(), new_ary, klass(), klass_is_exact(), _offset, _instance_id, _speculative, _inline_depth);
}
-
//------------------------------cast_to_stable---------------------------------
const TypeAryPtr* TypeAryPtr::cast_to_stable(bool stable, int stable_dimension) const {
if (stable_dimension <= 0 || (stable_dimension == 1 && stable == this->is_stable()))
@@ -3969,6 +4004,18 @@
return dim;
}
+//----------------------cast_to_autobox_cache-----------------------------------
+const TypeAryPtr* TypeAryPtr::cast_to_autobox_cache(bool cache) const {
+ if (is_autobox_cache() == cache) return this;
+ const TypeOopPtr* etype = elem()->make_oopptr();
+ if (etype == NULL) return this;
+ // The pointers in the autobox arrays are always non-null.
+ TypePtr::PTR ptr_type = cache ? TypePtr::NotNull : TypePtr::AnyNull;
+ etype = etype->cast_to_ptr_type(TypePtr::NotNull)->is_oopptr();
+ const TypeAry* new_ary = TypeAry::make(etype, size(), is_stable());
+ return make(ptr(), const_oop(), new_ary, klass(), klass_is_exact(), _offset, _instance_id, _speculative, _inline_depth, cache);
+}
+
//------------------------------eq---------------------------------------------
// Structural equality check for Type representations
bool TypeAryPtr::eq( const Type *t ) const {
@@ -4455,7 +4502,7 @@
// TRUE if Type is a singleton type, FALSE otherwise. Singletons are simple
// constants
bool TypeMetadataPtr::singleton(void) const {
- // detune optimizer to not generate constant metadta + constant offset as a constant!
+ // detune optimizer to not generate constant metadata + constant offset as a constant!
// TopPTR, Null, AnyNull, Constant are all singletons
return (_offset == 0) && !below_centerline(_ptr);
}
--- a/hotspot/src/share/vm/opto/type.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/opto/type.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -412,8 +412,9 @@
static const Type* get_typeflow_type(ciType* type);
static const Type* make_from_constant(ciConstant constant,
- bool require_constant = false,
- bool is_autobox_cache = false);
+ bool require_constant = false);
+
+ static const Type* make_constant(ciField* field, Node* obj);
// Speculative type helper methods. See TypePtr.
virtual const TypePtr* speculative() const { return NULL; }
@@ -973,8 +974,7 @@
// may return a non-singleton type.
// If require_constant, produce a NULL if a singleton is not possible.
static const TypeOopPtr* make_from_constant(ciObject* o,
- bool require_constant = false,
- bool not_null_elements = false);
+ bool require_constant = false);
// Make a generic (unclassed) pointer to an oop.
static const TypeOopPtr* make(PTR ptr, int offset, int instance_id,
@@ -1184,6 +1184,8 @@
const TypeAryPtr* cast_to_stable(bool stable, int stable_dimension = 1) const;
int stable_dimension() const;
+ const TypeAryPtr* cast_to_autobox_cache(bool cache) const;
+
// Convenience common pre-built types.
static const TypeAryPtr *RANGE;
static const TypeAryPtr *OOPS;
@@ -1674,12 +1676,12 @@
inline const TypePtr* Type::make_ptr() const {
return (_base == NarrowOop) ? is_narrowoop()->get_ptrtype() :
- ((_base == NarrowKlass) ? is_narrowklass()->get_ptrtype() :
- (isa_ptr() ? is_ptr() : NULL));
+ ((_base == NarrowKlass) ? is_narrowklass()->get_ptrtype() :
+ isa_ptr());
}
inline const TypeOopPtr* Type::make_oopptr() const {
- return (_base == NarrowOop) ? is_narrowoop()->get_ptrtype()->is_oopptr() : is_oopptr();
+ return (_base == NarrowOop) ? is_narrowoop()->get_ptrtype()->isa_oopptr() : isa_oopptr();
}
inline const TypeNarrowOop* Type::make_narrowoop() const {
@@ -1689,7 +1691,7 @@
inline const TypeNarrowKlass* Type::make_narrowklass() const {
return (_base == NarrowKlass) ? is_narrowklass() :
- (isa_ptr() ? TypeNarrowKlass::make(is_ptr()) : NULL);
+ (isa_ptr() ? TypeNarrowKlass::make(is_ptr()) : NULL);
}
inline bool Type::is_floatingpoint() const {
--- a/hotspot/src/share/vm/runtime/arguments.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -91,7 +91,7 @@
int Arguments::_sun_java_launcher_pid = -1;
bool Arguments::_sun_java_launcher_is_altjvm = false;
-// These parameters are reset in method parse_vm_init_args(JavaVMInitArgs*)
+// These parameters are reset in method parse_vm_init_args()
bool Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods;
bool Arguments::_UseOnStackReplacement = UseOnStackReplacement;
bool Arguments::_BackgroundCompilation = BackgroundCompilation;
@@ -2251,7 +2251,9 @@
// Parse JavaVMInitArgs structure
-jint Arguments::parse_vm_init_args(const JavaVMInitArgs* args) {
+jint Arguments::parse_vm_init_args(const JavaVMInitArgs *java_tool_options_args,
+ const JavaVMInitArgs *java_options_args,
+ const JavaVMInitArgs *cmd_line_args) {
// For components of the system classpath.
SysClassPath scp(Arguments::get_sysclasspath());
bool scp_assembly_required = false;
@@ -2269,20 +2271,25 @@
// Setup flags for mixed which is the default
set_mode_flags(_mixed);
- // Parse JAVA_TOOL_OPTIONS environment variable (if present)
- jint result = parse_java_tool_options_environment_variable(&scp, &scp_assembly_required);
+ // Parse args structure generated from JAVA_TOOL_OPTIONS environment
+ // variable (if present).
+ jint result = parse_each_vm_init_arg(
+ java_tool_options_args, &scp, &scp_assembly_required, Flag::ENVIRON_VAR);
if (result != JNI_OK) {
return result;
}
- // Parse JavaVMInitArgs structure passed in
- result = parse_each_vm_init_arg(args, &scp, &scp_assembly_required, Flag::COMMAND_LINE);
+ // Parse args structure generated from the command line flags.
+ result = parse_each_vm_init_arg(cmd_line_args, &scp, &scp_assembly_required,
+ Flag::COMMAND_LINE);
if (result != JNI_OK) {
return result;
}
- // Parse _JAVA_OPTIONS environment variable (if present) (mimics classic VM)
- result = parse_java_options_environment_variable(&scp, &scp_assembly_required);
+ // Parse args structure generated from the _JAVA_OPTIONS environment
+ // variable (if present) (mimics classic VM)
+ result = parse_each_vm_init_arg(
+ java_options_args, &scp, &scp_assembly_required, Flag::ENVIRON_VAR);
if (result != JNI_OK) {
return result;
}
@@ -3385,20 +3392,73 @@
return JNI_OK;
}
-jint Arguments::parse_java_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p) {
- return parse_options_environment_variable("_JAVA_OPTIONS", scp_p,
- scp_assembly_required_p);
+// Helper class for controlling the lifetime of JavaVMInitArgs
+// objects. The contents of the JavaVMInitArgs are guaranteed to be
+// deleted on the destruction of the ScopedVMInitArgs object.
+class ScopedVMInitArgs : public StackObj {
+ private:
+ JavaVMInitArgs _args;
+
+ public:
+ ScopedVMInitArgs() {
+ _args.version = JNI_VERSION_1_2;
+ _args.nOptions = 0;
+ _args.options = NULL;
+ _args.ignoreUnrecognized = false;
+ }
+
+ // Populates the JavaVMInitArgs object represented by this
+ // ScopedVMInitArgs object with the arguments in options. The
+ // allocated memory is deleted by the destructor. If this method
+ // returns anything other than JNI_OK, then this object is in a
+ // partially constructed state, and should be abandoned.
+ jint set_args(GrowableArray<JavaVMOption>* options) {
+ JavaVMOption* options_arr = NEW_C_HEAP_ARRAY_RETURN_NULL(
+ JavaVMOption, options->length(), mtInternal);
+ if (options_arr == NULL) {
+ return JNI_ENOMEM;
+ }
+ _args.options = options_arr;
+
+ for (int i = 0; i < options->length(); i++) {
+ options_arr[i] = options->at(i);
+ options_arr[i].optionString = os::strdup(options_arr[i].optionString);
+ if (options_arr[i].optionString == NULL) {
+ // Rely on the destructor to do cleanup.
+ _args.nOptions = i;
+ return JNI_ENOMEM;
+ }
+ }
+
+ _args.nOptions = options->length();
+ _args.ignoreUnrecognized = IgnoreUnrecognizedVMOptions;
+ return JNI_OK;
+ }
+
+ JavaVMInitArgs* get() { return &_args; }
+
+ ~ScopedVMInitArgs() {
+ if (_args.options == NULL) return;
+ for (int i = 0; i < _args.nOptions; i++) {
+ os::free(_args.options[i].optionString);
+ }
+ FREE_C_HEAP_ARRAY(JavaVMOption, _args.options);
+ }
+};
+
+jint Arguments::parse_java_options_environment_variable(ScopedVMInitArgs* args) {
+ return parse_options_environment_variable("_JAVA_OPTIONS", args);
}
-jint Arguments::parse_java_tool_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p) {
- return parse_options_environment_variable("JAVA_TOOL_OPTIONS", scp_p,
- scp_assembly_required_p);
+jint Arguments::parse_java_tool_options_environment_variable(ScopedVMInitArgs* args) {
+ return parse_options_environment_variable("JAVA_TOOL_OPTIONS", args);
}
-jint Arguments::parse_options_environment_variable(const char* name, SysClassPath* scp_p, bool* scp_assembly_required_p) {
+jint Arguments::parse_options_environment_variable(const char* name,
+ ScopedVMInitArgs* vm_args) {
char *buffer = ::getenv(name);
- // Don't check this variable if user has special privileges
+ // Don't check this environment variable if user has special privileges
// (e.g. unix su command).
if (buffer == NULL || os::have_special_privileges()) {
return JNI_OK;
@@ -3443,48 +3503,20 @@
*wrt++ = *rd++; // copy to option string
}
}
- // Need to check if we're done before writing a NULL,
- // because the write could be to the byte that rd is pointing to.
- if (*rd++ == 0) {
- *wrt = 0;
- break;
+ if (*rd != 0) {
+ // In this case, the assignment to wrt below will make *rd nul,
+ // which will interfere with the next loop iteration.
+ rd++;
}
*wrt = 0; // Zero terminate option
}
- JavaVMOption* options_arr =
- NEW_C_HEAP_ARRAY_RETURN_NULL(JavaVMOption, options->length(), mtInternal);
- if (options_arr == NULL) {
- delete options;
- os::free(buffer);
- return JNI_ENOMEM;
- }
- for (int i = 0; i < options->length(); i++) {
- options_arr[i] = options->at(i);
- }
-
- // Construct JavaVMInitArgs structure and parse as if it was part of the command line
- JavaVMInitArgs vm_args;
- vm_args.version = JNI_VERSION_1_2;
- vm_args.options = options_arr;
- vm_args.nOptions = options->length();
- vm_args.ignoreUnrecognized = IgnoreUnrecognizedVMOptions;
-
- if (PrintVMOptions) {
- const char* tail;
- for (int i = 0; i < vm_args.nOptions; i++) {
- const JavaVMOption *option = vm_args.options + i;
- if (match_option(option, "-XX:", &tail)) {
- logOption(tail);
- }
- }
- }
-
- jint result = parse_each_vm_init_arg(&vm_args, scp_p, scp_assembly_required_p,
- Flag::ENVIRON_VAR);
- FREE_C_HEAP_ARRAY(JavaVMOption, options_arr);
+
+ // Fill out JavaVMInitArgs structure.
+ jint status = vm_args->set_args(options);
+
delete options;
os::free(buffer);
- return result;
+ return status;
}
void Arguments::set_shared_spaces_flags() {
@@ -3567,32 +3599,18 @@
}
#endif // PRODUCT
-// Parse entry point called from JNI_CreateJavaVM
-
-jint Arguments::parse(const JavaVMInitArgs* args) {
-
- // Initialize ranges and constraints
- CommandLineFlagRangeList::init();
- CommandLineFlagConstraintList::init();
-
+static jint match_special_option_and_act(const JavaVMInitArgs* args,
+ char** flags_file) {
// Remaining part of option string
const char* tail;
- // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed.
- const char* hotspotrc = ".hotspotrc";
- bool settings_file_specified = false;
- bool needs_hotspotrc_warning = false;
-
- const char* flags_file;
- int index;
- for (index = 0; index < args->nOptions; index++) {
- const JavaVMOption *option = args->options + index;
+ for (int index = 0; index < args->nOptions; index++) {
+ const JavaVMOption* option = args->options + index;
if (ArgumentsExt::process_options(option)) {
continue;
}
if (match_option(option, "-XX:Flags=", &tail)) {
- flags_file = tail;
- settings_file_specified = true;
+ *flags_file = (char *) tail;
continue;
}
if (match_option(option, "-XX:+PrintVMOptions")) {
@@ -3646,10 +3664,69 @@
}
#endif
}
+ return JNI_OK;
+}
+
+static void print_options(const JavaVMInitArgs *args) {
+ const char* tail;
+ for (int index = 0; index < args->nOptions; index++) {
+ const JavaVMOption *option = args->options + index;
+ if (match_option(option, "-XX:", &tail)) {
+ logOption(tail);
+ }
+ }
+}
+
+// Parse entry point called from JNI_CreateJavaVM
+
+jint Arguments::parse(const JavaVMInitArgs* args) {
+
+ // Initialize ranges and constraints
+ CommandLineFlagRangeList::init();
+ CommandLineFlagConstraintList::init();
+
+ // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed.
+ const char* hotspotrc = ".hotspotrc";
+ char* flags_file = NULL;
+ bool settings_file_specified = false;
+ bool needs_hotspotrc_warning = false;
+ ScopedVMInitArgs java_tool_options_args;
+ ScopedVMInitArgs java_options_args;
+
+ jint code =
+ parse_java_tool_options_environment_variable(&java_tool_options_args);
+ if (code != JNI_OK) {
+ return code;
+ }
+
+ code = parse_java_options_environment_variable(&java_options_args);
+ if (code != JNI_OK) {
+ return code;
+ }
+
+ code =
+ match_special_option_and_act(java_tool_options_args.get(), &flags_file);
+ if (code != JNI_OK) {
+ return code;
+ }
+
+ code = match_special_option_and_act(args, &flags_file);
+ if (code != JNI_OK) {
+ return code;
+ }
+
+ code = match_special_option_and_act(java_options_args.get(), &flags_file);
+ if (code != JNI_OK) {
+ return code;
+ }
+
+ settings_file_specified = (flags_file != NULL);
if (IgnoreUnrecognizedVMOptions) {
// uncast const to modify the flag args->ignoreUnrecognized
*(jboolean*)(&args->ignoreUnrecognized) = true;
+ java_tool_options_args.get()->ignoreUnrecognized = true;
+ java_options_args.get()->ignoreUnrecognized = true;
}
// Parse specified settings file
@@ -3672,16 +3749,15 @@
}
if (PrintVMOptions) {
- for (index = 0; index < args->nOptions; index++) {
- const JavaVMOption *option = args->options + index;
- if (match_option(option, "-XX:", &tail)) {
- logOption(tail);
- }
- }
+ print_options(java_tool_options_args.get());
+ print_options(args);
+ print_options(java_options_args.get());
}
// Parse JavaVMInitArgs structure passed in, as well as JAVA_TOOL_OPTIONS and _JAVA_OPTIONS
- jint result = parse_vm_init_args(args);
+ jint result = parse_vm_init_args(java_tool_options_args.get(),
+ java_options_args.get(), args);
+
if (result != JNI_OK) {
return result;
}
--- a/hotspot/src/share/vm/runtime/arguments.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/arguments.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -220,6 +220,8 @@
}
};
+// Helper class for controlling the lifetime of JavaVMInitArgs objects.
+class ScopedVMInitArgs;
class Arguments : AllStatic {
friend class VMStructs;
@@ -374,10 +376,12 @@
static bool process_argument(const char* arg, jboolean ignore_unrecognized, Flag::Flags origin);
static void process_java_launcher_argument(const char*, void*);
static void process_java_compiler_argument(char* arg);
- static jint parse_options_environment_variable(const char* name, SysClassPath* scp_p, bool* scp_assembly_required_p);
- static jint parse_java_tool_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p);
- static jint parse_java_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p);
- static jint parse_vm_init_args(const JavaVMInitArgs* args);
+ static jint parse_options_environment_variable(const char* name, ScopedVMInitArgs* vm_args);
+ static jint parse_java_tool_options_environment_variable(ScopedVMInitArgs* vm_args);
+ static jint parse_java_options_environment_variable(ScopedVMInitArgs* vm_args);
+ static jint parse_vm_init_args(const JavaVMInitArgs *java_tool_options_args,
+ const JavaVMInitArgs *java_options_args,
+ const JavaVMInitArgs *cmd_line_args);
static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, Flag::Flags origin);
static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required);
static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
--- a/hotspot/src/share/vm/runtime/globals.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/globals.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -1286,6 +1286,8 @@
\
experimental(intx, SyncVerbose, 0, "(Unstable)") \
\
+ product(bool, InlineNotify, true, "intrinsify subset of notify" ) \
+ \
experimental(intx, ClearFPUAtPark, 0, "(Unsafe, Unstable)") \
\
experimental(intx, hashCode, 5, \
@@ -4127,14 +4129,18 @@
"Use the FP register for holding the frame pointer " \
"and not as a general purpose register.") \
\
- diagnostic(bool, CheckIntrinsics, trueInDebug, \
+ diagnostic(bool, CheckIntrinsics, true, \
"When a class C is loaded, check that " \
"(1) all intrinsics defined by the VM for class C are present "\
"in the loaded class file and are marked with the " \
- "@HotSpotIntrinsicCandidate annotation and also that " \
+ "@HotSpotIntrinsicCandidate annotation, that " \
"(2) there is an intrinsic registered for all loaded methods " \
"that are annotated with the @HotSpotIntrinsicCandidate " \
- "annotation.")
+ "annotation, and that " \
+ "(3) no orphan methods exist for class C (i.e., methods for " \
+ "which the VM declares an intrinsic but that are not declared "\
+ "in the loaded class C. " \
+ "Check (3) is available only in debug builds.")
/*
* Macros for factoring of globals
--- a/hotspot/src/share/vm/runtime/objectMonitor.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/objectMonitor.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -430,6 +430,8 @@
return -1;
}
+#define MAX_RECHECK_INTERVAL 1000
+
void NOINLINE ObjectMonitor::EnterI(TRAPS) {
Thread * const Self = THREAD;
assert(Self->is_Java_thread(), "invariant");
@@ -539,7 +541,7 @@
TEVENT(Inflated enter - Contention);
int nWakeups = 0;
- int RecheckInterval = 1;
+ int recheckInterval = 1;
for (;;) {
@@ -553,10 +555,12 @@
// park self
if (_Responsible == Self || (SyncFlags & 1)) {
TEVENT(Inflated enter - park TIMED);
- Self->_ParkEvent->park((jlong) RecheckInterval);
- // Increase the RecheckInterval, but clamp the value.
- RecheckInterval *= 8;
- if (RecheckInterval > 1000) RecheckInterval = 1000;
+ Self->_ParkEvent->park((jlong) recheckInterval);
+ // Increase the recheckInterval, but clamp the value.
+ recheckInterval *= 8;
+ if (recheckInterval > MAX_RECHECK_INTERVAL) {
+ recheckInterval = MAX_RECHECK_INTERVAL;
+ }
} else {
TEVENT(Inflated enter - park UNTIMED);
Self->_ParkEvent->park();
@@ -709,7 +713,7 @@
// or java_suspend_self()
jt->set_suspend_equivalent();
if (SyncFlags & 1) {
- Self->_ParkEvent->park((jlong)1000);
+ Self->_ParkEvent->park((jlong)MAX_RECHECK_INTERVAL);
} else {
Self->_ParkEvent->park();
}
@@ -1636,15 +1640,8 @@
// then instead of transferring a thread from the WaitSet to the EntryList
// we might just dequeue a thread from the WaitSet and directly unpark() it.
-void ObjectMonitor::notify(TRAPS) {
- CHECK_OWNER();
- if (_WaitSet == NULL) {
- TEVENT(Empty-Notify);
- return;
- }
- DTRACE_MONITOR_PROBE(notify, this, object(), THREAD);
-
- int Policy = Knob_MoveNotifyee;
+void ObjectMonitor::INotify(Thread * Self) {
+ const int policy = Knob_MoveNotifyee;
Thread::SpinAcquire(&_WaitSetLock, "WaitSet - notify");
ObjectWaiter * iterator = DequeueWaiter();
@@ -1652,74 +1649,76 @@
TEVENT(Notify1 - Transfer);
guarantee(iterator->TState == ObjectWaiter::TS_WAIT, "invariant");
guarantee(iterator->_notified == 0, "invariant");
- if (Policy != 4) {
+ // Disposition - what might we do with iterator ?
+ // a. add it directly to the EntryList - either tail (policy == 1)
+ // or head (policy == 0).
+ // b. push it onto the front of the _cxq (policy == 2).
+ // For now we use (b).
+ if (policy != 4) {
iterator->TState = ObjectWaiter::TS_ENTER;
}
iterator->_notified = 1;
- Thread * Self = THREAD;
iterator->_notifier_tid = Self->osthread()->thread_id();
- ObjectWaiter * List = _EntryList;
- if (List != NULL) {
- assert(List->_prev == NULL, "invariant");
- assert(List->TState == ObjectWaiter::TS_ENTER, "invariant");
- assert(List != iterator, "invariant");
+ ObjectWaiter * list = _EntryList;
+ if (list != NULL) {
+ assert(list->_prev == NULL, "invariant");
+ assert(list->TState == ObjectWaiter::TS_ENTER, "invariant");
+ assert(list != iterator, "invariant");
}
- if (Policy == 0) { // prepend to EntryList
- if (List == NULL) {
+ if (policy == 0) { // prepend to EntryList
+ if (list == NULL) {
iterator->_next = iterator->_prev = NULL;
_EntryList = iterator;
} else {
- List->_prev = iterator;
- iterator->_next = List;
+ list->_prev = iterator;
+ iterator->_next = list;
iterator->_prev = NULL;
_EntryList = iterator;
}
- } else if (Policy == 1) { // append to EntryList
- if (List == NULL) {
+ } else if (policy == 1) { // append to EntryList
+ if (list == NULL) {
iterator->_next = iterator->_prev = NULL;
_EntryList = iterator;
} else {
// CONSIDER: finding the tail currently requires a linear-time walk of
// the EntryList. We can make tail access constant-time by converting to
// a CDLL instead of using our current DLL.
- ObjectWaiter * Tail;
- for (Tail = List; Tail->_next != NULL; Tail = Tail->_next) /* empty */;
- assert(Tail != NULL && Tail->_next == NULL, "invariant");
- Tail->_next = iterator;
- iterator->_prev = Tail;
+ ObjectWaiter * tail;
+ for (tail = list; tail->_next != NULL; tail = tail->_next) /* empty */;
+ assert(tail != NULL && tail->_next == NULL, "invariant");
+ tail->_next = iterator;
+ iterator->_prev = tail;
iterator->_next = NULL;
}
- } else if (Policy == 2) { // prepend to cxq
- // prepend to cxq
- if (List == NULL) {
+ } else if (policy == 2) { // prepend to cxq
+ if (list == NULL) {
iterator->_next = iterator->_prev = NULL;
_EntryList = iterator;
} else {
iterator->TState = ObjectWaiter::TS_CXQ;
for (;;) {
- ObjectWaiter * Front = _cxq;
- iterator->_next = Front;
- if (Atomic::cmpxchg_ptr (iterator, &_cxq, Front) == Front) {
+ ObjectWaiter * front = _cxq;
+ iterator->_next = front;
+ if (Atomic::cmpxchg_ptr(iterator, &_cxq, front) == front) {
break;
}
}
}
- } else if (Policy == 3) { // append to cxq
+ } else if (policy == 3) { // append to cxq
iterator->TState = ObjectWaiter::TS_CXQ;
for (;;) {
- ObjectWaiter * Tail;
- Tail = _cxq;
- if (Tail == NULL) {
+ ObjectWaiter * tail = _cxq;
+ if (tail == NULL) {
iterator->_next = NULL;
- if (Atomic::cmpxchg_ptr (iterator, &_cxq, NULL) == NULL) {
+ if (Atomic::cmpxchg_ptr(iterator, &_cxq, NULL) == NULL) {
break;
}
} else {
- while (Tail->_next != NULL) Tail = Tail->_next;
- Tail->_next = iterator;
- iterator->_prev = Tail;
+ while (tail->_next != NULL) tail = tail->_next;
+ tail->_next = iterator;
+ iterator->_prev = tail;
iterator->_next = NULL;
break;
}
@@ -1731,10 +1730,6 @@
ev->unpark();
}
- if (Policy < 4) {
- iterator->wait_reenter_begin(this);
- }
-
// _WaitSetLock protects the wait queue, not the EntryList. We could
// move the add-to-EntryList operation, above, outside the critical section
// protected by _WaitSetLock. In practice that's not useful. With the
@@ -1742,133 +1737,63 @@
// is the only thread that grabs _WaitSetLock. There's almost no contention
// on _WaitSetLock so it's not profitable to reduce the length of the
// critical section.
+
+ if (policy < 4) {
+ iterator->wait_reenter_begin(this);
+ }
}
-
Thread::SpinRelease(&_WaitSetLock);
+}
- if (iterator != NULL && ObjectMonitor::_sync_Notifications != NULL) {
- ObjectMonitor::_sync_Notifications->inc();
+// Consider: a not-uncommon synchronization bug is to use notify() when
+// notifyAll() is more appropriate, potentially resulting in stranded
+// threads; this is one example of a lost wakeup. A useful diagnostic
+// option is to force all notify() operations to behave as notifyAll().
+//
+// Note: We can also detect many such problems with a "minimum wait".
+// When the "minimum wait" is set to a small non-zero timeout value
+// and the program does not hang whereas it did absent "minimum wait",
+// that suggests a lost wakeup bug. The '-XX:SyncFlags=1' option uses
+// a "minimum wait" for all park() operations; see the recheckInterval
+// variable and MAX_RECHECK_INTERVAL.
+
+void ObjectMonitor::notify(TRAPS) {
+ CHECK_OWNER();
+ if (_WaitSet == NULL) {
+ TEVENT(Empty-Notify);
+ return;
+ }
+ DTRACE_MONITOR_PROBE(notify, this, object(), THREAD);
+ INotify(THREAD);
+ if (ObjectMonitor::_sync_Notifications != NULL) {
+ ObjectMonitor::_sync_Notifications->inc(1);
}
}
+// The current implementation of notifyAll() transfers the waiters one-at-a-time
+// from the waitset to the EntryList. This could be done more efficiently with a
+// single bulk transfer but in practice it's not time-critical. Beware too,
+// that in prepend-mode we invert the order of the waiters. Let's say that the
+// waitset is "ABCD" and the EntryList is "XYZ". After a notifyAll() in prepend
+// mode the waitset will be empty and the EntryList will be "DCBAXYZ".
+
void ObjectMonitor::notifyAll(TRAPS) {
CHECK_OWNER();
- ObjectWaiter* iterator;
if (_WaitSet == NULL) {
TEVENT(Empty-NotifyAll);
return;
}
+
DTRACE_MONITOR_PROBE(notifyAll, this, object(), THREAD);
-
- int Policy = Knob_MoveNotifyee;
- int Tally = 0;
- Thread::SpinAcquire(&_WaitSetLock, "WaitSet - notifyall");
-
- for (;;) {
- iterator = DequeueWaiter();
- if (iterator == NULL) break;
- TEVENT(NotifyAll - Transfer1);
- ++Tally;
-
- // Disposition - what might we do with iterator ?
- // a. add it directly to the EntryList - either tail or head.
- // b. push it onto the front of the _cxq.
- // For now we use (a).
-
- guarantee(iterator->TState == ObjectWaiter::TS_WAIT, "invariant");
- guarantee(iterator->_notified == 0, "invariant");
- iterator->_notified = 1;
- Thread * Self = THREAD;
- iterator->_notifier_tid = Self->osthread()->thread_id();
- if (Policy != 4) {
- iterator->TState = ObjectWaiter::TS_ENTER;
- }
-
- ObjectWaiter * List = _EntryList;
- if (List != NULL) {
- assert(List->_prev == NULL, "invariant");
- assert(List->TState == ObjectWaiter::TS_ENTER, "invariant");
- assert(List != iterator, "invariant");
- }
-
- if (Policy == 0) { // prepend to EntryList
- if (List == NULL) {
- iterator->_next = iterator->_prev = NULL;
- _EntryList = iterator;
- } else {
- List->_prev = iterator;
- iterator->_next = List;
- iterator->_prev = NULL;
- _EntryList = iterator;
- }
- } else if (Policy == 1) { // append to EntryList
- if (List == NULL) {
- iterator->_next = iterator->_prev = NULL;
- _EntryList = iterator;
- } else {
- // CONSIDER: finding the tail currently requires a linear-time walk of
- // the EntryList. We can make tail access constant-time by converting to
- // a CDLL instead of using our current DLL.
- ObjectWaiter * Tail;
- for (Tail = List; Tail->_next != NULL; Tail = Tail->_next) /* empty */;
- assert(Tail != NULL && Tail->_next == NULL, "invariant");
- Tail->_next = iterator;
- iterator->_prev = Tail;
- iterator->_next = NULL;
- }
- } else if (Policy == 2) { // prepend to cxq
- // prepend to cxq
- iterator->TState = ObjectWaiter::TS_CXQ;
- for (;;) {
- ObjectWaiter * Front = _cxq;
- iterator->_next = Front;
- if (Atomic::cmpxchg_ptr (iterator, &_cxq, Front) == Front) {
- break;
- }
- }
- } else if (Policy == 3) { // append to cxq
- iterator->TState = ObjectWaiter::TS_CXQ;
- for (;;) {
- ObjectWaiter * Tail;
- Tail = _cxq;
- if (Tail == NULL) {
- iterator->_next = NULL;
- if (Atomic::cmpxchg_ptr (iterator, &_cxq, NULL) == NULL) {
- break;
- }
- } else {
- while (Tail->_next != NULL) Tail = Tail->_next;
- Tail->_next = iterator;
- iterator->_prev = Tail;
- iterator->_next = NULL;
- break;
- }
- }
- } else {
- ParkEvent * ev = iterator->_event;
- iterator->TState = ObjectWaiter::TS_RUN;
- OrderAccess::fence();
- ev->unpark();
- }
-
- if (Policy < 4) {
- iterator->wait_reenter_begin(this);
- }
-
- // _WaitSetLock protects the wait queue, not the EntryList. We could
- // move the add-to-EntryList operation, above, outside the critical section
- // protected by _WaitSetLock. In practice that's not useful. With the
- // exception of wait() timeouts and interrupts the monitor owner
- // is the only thread that grabs _WaitSetLock. There's almost no contention
- // on _WaitSetLock so it's not profitable to reduce the length of the
- // critical section.
+ int tally = 0;
+ while (_WaitSet != NULL) {
+ tally++;
+ INotify(THREAD);
}
- Thread::SpinRelease(&_WaitSetLock);
-
- if (Tally != 0 && ObjectMonitor::_sync_Notifications != NULL) {
- ObjectMonitor::_sync_Notifications->inc(Tally);
+ if (tally != 0 && ObjectMonitor::_sync_Notifications != NULL) {
+ ObjectMonitor::_sync_Notifications->inc(tally);
}
}
--- a/hotspot/src/share/vm/runtime/objectMonitor.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/objectMonitor.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -332,7 +332,7 @@
private:
void AddWaiter(ObjectWaiter * waiter);
static void DeferredInitialize();
-
+ void INotify(Thread * Self);
ObjectWaiter * DequeueWaiter();
void DequeueSpecificWaiter(ObjectWaiter * waiter);
void EnterI(TRAPS);
--- a/hotspot/src/share/vm/runtime/rframe.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/rframe.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -81,7 +81,7 @@
: InterpretedRFrame(fr, thread, callee) {}
RFrame* RFrame::new_RFrame(frame fr, JavaThread* thread, RFrame*const callee) {
- RFrame* rf;
+ RFrame* rf = NULL;
int dist = callee ? callee->distance() : -1;
if (fr.is_interpreted_frame()) {
rf = new InterpretedRFrame(fr, thread, callee);
@@ -93,8 +93,10 @@
} else {
assert(false, "Unhandled frame type");
}
- rf->set_distance(dist);
- rf->init();
+ if (rf != NULL) {
+ rf->set_distance(dist);
+ rf->init();
+ }
return rf;
}
--- a/hotspot/src/share/vm/runtime/synchronizer.cpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/synchronizer.cpp Mon Aug 03 16:33:06 2015 -0700
@@ -86,6 +86,8 @@
} \
}
+#define HOTSPOT_MONITOR_PROBE_notify HOTSPOT_MONITOR_NOTIFY
+#define HOTSPOT_MONITOR_PROBE_notifyAll HOTSPOT_MONITOR_NOTIFYALL
#define HOTSPOT_MONITOR_PROBE_waited HOTSPOT_MONITOR_WAITED
#define DTRACE_MONITOR_PROBE(probe, monitor, obj, thread) \
@@ -146,6 +148,58 @@
// operators: safepoints or indefinite blocking (blocking that might span a
// safepoint) are forbidden. Generally the thread_state() is _in_Java upon
// entry.
+//
+// Consider: An interesting optimization is to have the JIT recognize the
+// following common idiom:
+// synchronized (someobj) { .... ; notify(); }
+// That is, we find a notify() or notifyAll() call that immediately precedes
+// the monitorexit operation. In that case the JIT could fuse the operations
+// into a single notifyAndExit() runtime primitive.
+
+bool ObjectSynchronizer::quick_notify(oopDesc * obj, Thread * self, bool all) {
+ assert(!SafepointSynchronize::is_at_safepoint(), "invariant");
+ assert(self->is_Java_thread(), "invariant");
+ assert(((JavaThread *) self)->thread_state() == _thread_in_Java, "invariant");
+ No_Safepoint_Verifier nsv;
+ if (obj == NULL) return false; // slow-path for invalid obj
+ const markOop mark = obj->mark();
+
+ if (mark->has_locker() && self->is_lock_owned((address)mark->locker())) {
+ // Degenerate notify
+ // stack-locked by caller so by definition the implied waitset is empty.
+ return true;
+ }
+
+ if (mark->has_monitor()) {
+ ObjectMonitor * const mon = mark->monitor();
+ assert(mon->object() == obj, "invariant");
+ if (mon->owner() != self) return false; // slow-path for IMS exception
+
+ if (mon->first_waiter() != NULL) {
+ // We have one or more waiters. Since this is an inflated monitor
+ // that we own, we can transfer one or more threads from the waitset
+ // to the entrylist here and now, avoiding the slow-path.
+ if (all) {
+ DTRACE_MONITOR_PROBE(notifyAll, mon, obj, self);
+ } else {
+ DTRACE_MONITOR_PROBE(notify, mon, obj, self);
+ }
+ int tally = 0;
+ do {
+ mon->INotify(self);
+ ++tally;
+ } while (mon->first_waiter() != NULL && all);
+ if (ObjectMonitor::_sync_Notifications != NULL) {
+ ObjectMonitor::_sync_Notifications->inc(tally);
+ }
+ }
+ return true;
+ }
+
+ // biased locking and any other IMS exception states take the slow-path
+ return false;
+}
+
// The LockNode emitted directly at the synchronization site would have
// been too big if it were to have included support for the cases of inflated
@@ -1451,8 +1505,7 @@
// This is an unfortunate aspect of this design.
enum ManifestConstants {
- ClearResponsibleAtSTW = 0,
- MaximumRecheckInterval = 1000
+ ClearResponsibleAtSTW = 0
};
// Deflate a single monitor if not in-use
--- a/hotspot/src/share/vm/runtime/synchronizer.hpp Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/src/share/vm/runtime/synchronizer.hpp Mon Aug 03 16:33:06 2015 -0700
@@ -72,6 +72,7 @@
static void notify(Handle obj, TRAPS);
static void notifyall(Handle obj, TRAPS);
+ static bool quick_notify(oopDesc* obj, Thread* Self, bool All);
static bool quick_enter(oop obj, Thread* Self, BasicLock* Lock);
// Special internal-use-only method for use by JVM infrastructure
--- a/hotspot/test/compiler/dependencies/MonomorphicObjectCall/java/lang/Object.java Mon Aug 03 15:48:33 2015 -0500
+++ b/hotspot/test/compiler/dependencies/MonomorphicObjectCall/java/lang/Object.java Mon Aug 03 16:33:06 2015 -0700
@@ -58,8 +58,10 @@
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
+ @HotSpotIntrinsicCandidate
public final native void notify();
+ @HotSpotIntrinsicCandidate
public final native void notifyAll();
public final native void wait(long timeout) throws InterruptedException;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/unsafe/UnsafeGetConstantField.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,370 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @summary tests on constant folding of unsafe get operations
+ * @library /testlibrary /../../test/lib
+ * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions
+ * -Xbatch -XX:-TieredCompilation
+ * -XX:+FoldStableValues
+ * -XX:+UseUnalignedAccesses
+ * java.lang.invoke.UnsafeGetConstantField
+ * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions
+ * -Xbatch -XX:-TieredCompilation
+ * -XX:+FoldStableValues
+ * -XX:-UseUnalignedAccesses
+ * java.lang.invoke.UnsafeGetConstantField
+ */
+package java.lang.invoke;
+
+import jdk.internal.org.objectweb.asm.*;
+import jdk.test.lib.Asserts;
+import jdk.test.lib.Utils;
+import sun.misc.Unsafe;
+import static jdk.internal.org.objectweb.asm.Opcodes.*;
+
+public class UnsafeGetConstantField {
+ static final Class<?> THIS_CLASS = UnsafeGetConstantField.class;
+
+ static final Unsafe U = Utils.getUnsafe();
+
+ public static void main(String[] args) {
+ testUnsafeGetAddress();
+ testUnsafeGetField();
+ testUnsafeGetFieldUnaligned();
+ System.out.println("TEST PASSED");
+ }
+
+ static final long nativeAddr = U.allocateMemory(16);
+ static void testUnsafeGetAddress() {
+ long cookie = 0x12345678L;
+ U.putAddress(nativeAddr, cookie);
+ for (int i = 0; i < 20_000; i++) {
+ Asserts.assertEquals(checkGetAddress(), cookie);
+ }
+ }
+ @DontInline
+ static long checkGetAddress() {
+ return U.getAddress(nativeAddr);
+ }
+
+ static void testUnsafeGetField() {
+ int[] testedFlags = new int[] { 0, ACC_STATIC, ACC_FINAL, (ACC_STATIC | ACC_FINAL) };
+ boolean[] boolValues = new boolean[] { false, true };
+ String[] modes = new String[] { "", "Volatile" };
+
+ for (JavaType t : JavaType.values()) {
+ for (int flags : testedFlags) {
+ for (boolean stable : boolValues) {
+ for (boolean hasDefaultValue : boolValues) {
+ for (String suffix : modes) {
+ runTest(t, flags, stable, hasDefaultValue, suffix);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ static void testUnsafeGetFieldUnaligned() {
+ JavaType[] types = new JavaType[] { JavaType.S, JavaType.C, JavaType.I, JavaType.J };
+ int[] testedFlags = new int[] { 0, ACC_STATIC, ACC_FINAL, (ACC_STATIC | ACC_FINAL) };
+ boolean[] boolValues = new boolean[] { false, true };
+
+ for (JavaType t : types) {
+ for (int flags : testedFlags) {
+ for (boolean stable : boolValues) {
+ for (boolean hasDefaultValue : boolValues) {
+ runTest(t, flags, stable, hasDefaultValue, "Unaligned");
+ }
+ }
+ }
+ }
+ }
+
+ static void runTest(JavaType t, int flags, boolean stable, boolean hasDefaultValue, String postfix) {
+ Generator g = new Generator(t, flags, stable, hasDefaultValue, postfix);
+ Test test = g.generate();
+ System.out.printf("type=%s flags=%d stable=%b default=%b post=%s\n",
+ t.typeName, flags, stable, hasDefaultValue, postfix);
+ // Trigger compilation
+ for (int i = 0; i < 20_000; i++) {
+ Asserts.assertEQ(test.testDirect(), test.testUnsafe());
+ }
+ }
+
+ interface Test {
+ Object testDirect();
+ Object testUnsafe();
+ }
+
+ enum JavaType {
+ Z("Boolean", true),
+ B("Byte", new Byte((byte)-1)),
+ S("Short", new Short((short)-1)),
+ C("Char", Character.MAX_VALUE),
+ I("Int", -1),
+ J("Long", -1L),
+ F("Float", -1F),
+ D("Double", -1D),
+ L("Object", new Object());
+
+ String typeName;
+ Object value;
+ String wrapper;
+ JavaType(String name, Object value) {
+ this.typeName = name;
+ this.value = value;
+ this.wrapper = internalName(value.getClass());
+ }
+
+ String desc() {
+ if (this == JavaType.L) {
+ return "Ljava/lang/Object;";
+ } else {
+ return toString();
+ }
+ }
+ }
+
+ static String internalName(Class cls) {
+ return cls.getName().replace('.', '/');
+ }
+ static String descriptor(Class cls) {
+ return String.format("L%s;", internalName(cls));
+ }
+
+ /**
+ * Sample generated class:
+ * static class T1 implements Test {
+ * final int f = -1;
+ * static final long FIELD_OFFSET;
+ * static final T1 t = new T1();
+ * static {
+ * FIELD_OFFSET = U.objectFieldOffset(T1.class.getDeclaredField("f"));
+ * }
+ * public Object testDirect() { return t.f; }
+ * public Object testUnsafe() { return U.getInt(t, FIELD_OFFSET); }
+ * }
+ */
+ static class Generator {
+ static final String FIELD_NAME = "f";
+ static final String UNSAFE_NAME = internalName(Unsafe.class);
+ static final String UNSAFE_DESC = descriptor(Unsafe.class);
+
+ final JavaType type;
+ final int flags;
+ final boolean stable;
+ final boolean hasDefaultValue;
+ final String nameSuffix;
+
+ final String className;
+ final String classDesc;
+ final String fieldDesc;
+
+ Generator(JavaType t, int flags, boolean stable, boolean hasDefaultValue, String suffix) {
+ this.type = t;
+ this.flags = flags;
+ this.stable = stable;
+ this.hasDefaultValue = hasDefaultValue;
+ this.nameSuffix = suffix;
+
+ fieldDesc = type.desc();
+ className = String.format("%s$Test%s%s__f=%d__s=%b__d=%b", internalName(THIS_CLASS), type.typeName,
+ suffix, flags, stable, hasDefaultValue);
+ classDesc = String.format("L%s;", className);
+ }
+
+ byte[] generateClassFile() {
+ ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
+ cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC | Opcodes.ACC_SUPER, className, null, "java/lang/Object",
+ new String[]{ internalName(Test.class) });
+
+ // Declare fields
+ cw.visitField(ACC_FINAL | ACC_STATIC, "t", classDesc, null, null).visitEnd();
+ cw.visitField(ACC_FINAL | ACC_STATIC, "FIELD_OFFSET", "J", null, null).visitEnd();
+ cw.visitField(ACC_FINAL | ACC_STATIC, "U", UNSAFE_DESC, null, null).visitEnd();
+ if (isStatic()) {
+ cw.visitField(ACC_FINAL | ACC_STATIC, "STATIC_BASE", "Ljava/lang/Object;", null, null).visitEnd();
+ }
+
+ FieldVisitor fv = cw.visitField(flags, FIELD_NAME, fieldDesc, null, null);
+ if (stable) {
+ fv.visitAnnotation(descriptor(Stable.class), true);
+ }
+ fv.visitEnd();
+
+ // Methods
+ { // <init>
+ MethodVisitor mv = cw.visitMethod(0, "<init>", "()V", null, null);
+ mv.visitCode();
+
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
+ if (!isStatic()) {
+ initField(mv);
+ }
+ mv.visitInsn(RETURN);
+
+ mv.visitMaxs(0, 0);
+ mv.visitEnd();
+ }
+
+ { // public Object testDirect() { return t.f; }
+ MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "testDirect", "()Ljava/lang/Object;", null, null);
+ mv.visitCode();
+
+ getFieldValue(mv);
+ wrapResult(mv);
+ mv.visitInsn(ARETURN);
+
+ mv.visitMaxs(0, 0);
+ mv.visitEnd();
+ }
+
+ { // public Object testUnsafe() { return U.getInt(t, FIELD_OFFSET); }
+ MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "testUnsafe", "()Ljava/lang/Object;", null, null);
+ mv.visitCode();
+
+ getFieldValueUnsafe(mv);
+ wrapResult(mv);
+ mv.visitInsn(ARETURN);
+
+ mv.visitMaxs(0, 0);
+ mv.visitEnd();
+ }
+
+ { // <clinit>
+ MethodVisitor mv = cw.visitMethod(ACC_STATIC, "<clinit>", "()V", null, null);
+ mv.visitCode();
+
+ // Cache Unsafe instance
+ mv.visitMethodInsn(INVOKESTATIC, UNSAFE_NAME, "getUnsafe", "()"+UNSAFE_DESC, false);
+ mv.visitFieldInsn(PUTSTATIC, className, "U", UNSAFE_DESC);
+
+ // Create test object instance
+ mv.visitTypeInsn(NEW, className);
+ mv.visitInsn(DUP);
+ mv.visitMethodInsn(INVOKESPECIAL, className, "<init>", "()V", false);
+ mv.visitFieldInsn(PUTSTATIC, className, "t", classDesc);
+
+ // Compute field offset
+ getUnsafe(mv);
+ getField(mv);
+ mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, (isStatic() ? "staticFieldOffset" : "objectFieldOffset"),
+ "(Ljava/lang/reflect/Field;)J", false);
+ mv.visitFieldInsn(PUTSTATIC, className, "FIELD_OFFSET", "J");
+
+ // Compute base offset for static field
+ if (isStatic()) {
+ getUnsafe(mv);
+ getField(mv);
+ mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, "staticFieldBase", "(Ljava/lang/reflect/Field;)Ljava/lang/Object;", false);
+ mv.visitFieldInsn(PUTSTATIC, className, "STATIC_BASE", "Ljava/lang/Object;");
+ initField(mv);
+ }
+
+ mv.visitInsn(RETURN);
+ mv.visitMaxs(0, 0);
+ mv.visitEnd();
+ }
+
+ return cw.toByteArray();
+ }
+
+ Test generate() {
+ byte[] classFile = generateClassFile();
+ Class<?> c = U.defineClass(className, classFile, 0, classFile.length, THIS_CLASS.getClassLoader(), null);
+ try {
+ return (Test) c.newInstance();
+ } catch(Exception e) {
+ throw new Error(e);
+ }
+ }
+
+ boolean isStatic() {
+ return (flags & ACC_STATIC) > 0;
+ }
+ boolean isFinal() {
+ return (flags & ACC_FINAL) > 0;
+ }
+ void getUnsafe(MethodVisitor mv) {
+ mv.visitFieldInsn(GETSTATIC, className, "U", UNSAFE_DESC);
+ }
+ void getField(MethodVisitor mv) {
+ mv.visitLdcInsn(Type.getType(classDesc));
+ mv.visitLdcInsn(FIELD_NAME);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Class", "getDeclaredField", "(Ljava/lang/String;)Ljava/lang/reflect/Field;", false);
+ }
+ void getFieldValue(MethodVisitor mv) {
+ if (isStatic()) {
+ mv.visitFieldInsn(GETSTATIC, className, FIELD_NAME, fieldDesc);
+ } else {
+ mv.visitFieldInsn(GETSTATIC, className, "t", classDesc);
+ mv.visitFieldInsn(GETFIELD, className, FIELD_NAME, fieldDesc);
+ }
+ }
+ void getFieldValueUnsafe(MethodVisitor mv) {
+ getUnsafe(mv);
+ if (isStatic()) {
+ mv.visitFieldInsn(GETSTATIC, className, "STATIC_BASE", "Ljava/lang/Object;");
+ } else {
+ mv.visitFieldInsn(GETSTATIC, className, "t", classDesc);
+ }
+ mv.visitFieldInsn(GETSTATIC, className, "FIELD_OFFSET", "J");
+ String name = "get" + type.typeName + nameSuffix;
+ mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, name, "(Ljava/lang/Object;J)" + type.desc(), false);
+ }
+ void wrapResult(MethodVisitor mv) {
+ if (type != JavaType.L) {
+ String desc = String.format("(%s)L%s;", type.desc(), type.wrapper);
+ mv.visitMethodInsn(INVOKESTATIC, type.wrapper, "valueOf", desc, false);
+ }
+ }
+ void initField(MethodVisitor mv) {
+ if (hasDefaultValue) {
+ return; // Nothing to do
+ }
+ if (!isStatic()) {
+ mv.visitVarInsn(ALOAD, 0);
+ }
+ switch (type) {
+ case L: {
+ mv.visitTypeInsn(NEW, "java/lang/Object");
+ mv.visitInsn(DUP);
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
+
+ break;
+ }
+ default: {
+ mv.visitLdcInsn(type.value);
+ break;
+ }
+ }
+ mv.visitFieldInsn((isStatic() ? PUTSTATIC : PUTFIELD), className, FIELD_NAME, fieldDesc);
+ }
+ }
+}
--- a/jaxp/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/jaxp/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -317,3 +317,4 @@
81e85f3b6174314155991048767452a9931e12e2 jdk9-b72
be5efc34a43bdd982d1cbe11cb2f6d6a060dde60 jdk9-b73
eadcb2b55cd1daf77625813aad0f6f3967b1528a jdk9-b74
+16b5e696f948cd8aa9b3afdb686ddffd48bd17a8 jdk9-b75
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Repository.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Repository.java Mon Aug 03 16:33:06 2015 -0700
@@ -117,14 +117,6 @@
} catch(ClassNotFoundException ex) { return null; }
}
- /** @return class file object for given Java class.
- */
- public static ClassPath.ClassFile lookupClassFile(String class_name) {
- try {
- return ClassPath.SYSTEM_CLASS_PATH.getClassFile(class_name);
- } catch(IOException e) { return null; }
- }
-
/** Clear the repository.
*/
public static void clearCache() {
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassPath.java Mon Aug 03 15:48:33 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-package com.sun.org.apache.bcel.internal.util;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache BCEL" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache BCEL", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-import java.util.*;
-import java.util.zip.*;
-import java.io.*;
-
-/**
- * Responsible for loading (class) files from the CLASSPATH. Inspired by
- * sun.tools.ClassPath.
- *
- * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
- */
-public class ClassPath implements Serializable {
- public static final ClassPath SYSTEM_CLASS_PATH = new ClassPath();
-
- private PathEntry[] paths;
- private String class_path;
-
- /**
- * Search for classes in given path.
- */
- public ClassPath(String class_path) {
- this.class_path = class_path;
-
- ArrayList vec = new ArrayList();
-
- for(StringTokenizer tok=new StringTokenizer(class_path,
- SecuritySupport.getSystemProperty("path.separator"));
- tok.hasMoreTokens();)
- {
- String path = tok.nextToken();
-
- if(!path.equals("")) {
- File file = new File(path);
-
- try {
- if(SecuritySupport.getFileExists(file)) {
- if(file.isDirectory())
- vec.add(new Dir(path));
- else
- vec.add(new Zip(new ZipFile(file)));
- }
- } catch(IOException e) {
- System.err.println("CLASSPATH component " + file + ": " + e);
- }
- }
- }
-
- paths = new PathEntry[vec.size()];
- vec.toArray(paths);
- }
-
- /**
- * Search for classes in CLASSPATH.
- * @deprecated Use SYSTEM_CLASS_PATH constant
- */
- public ClassPath() {
- // this(getClassPath());
- this("");
- }
-
- /** @return used class path string
- */
- public String toString() {
- return class_path;
- }
-
- public int hashCode() {
- return class_path.hashCode();
- }
-
- public boolean equals(Object o) {
- if(o instanceof ClassPath) {
- return class_path.equals(((ClassPath)o).class_path);
- }
-
- return false;
- }
-
- private static final void getPathComponents(String path, ArrayList list) {
- if(path != null) {
- StringTokenizer tok = new StringTokenizer(path, File.pathSeparator);
-
- while(tok.hasMoreTokens()) {
- String name = tok.nextToken();
- File file = new File(name);
-
- if(SecuritySupport.getFileExists(file)) {
- list.add(name);
- }
- }
- }
- }
-
- /** Checks for class path components in the following properties:
- * "java.class.path", "sun.boot.class.path"
- *
- * @return class path as used by default by BCEL
- */
- public static final String getClassPath() {
-
- String class_path, boot_path;
-
- try {
- class_path = SecuritySupport.getSystemProperty("java.class.path");
- boot_path = SecuritySupport.getSystemProperty("sun.boot.class.path");
- }
- catch (SecurityException e) {
- return "";
- }
-
- ArrayList list = new ArrayList();
-
- getPathComponents(class_path, list);
- getPathComponents(boot_path, list);
-
- StringBuffer buf = new StringBuffer();
-
- for(Iterator e = list.iterator(); e.hasNext(); ) {
- buf.append((String)e.next());
-
- if(e.hasNext())
- buf.append(File.pathSeparatorChar);
- }
-
- return buf.toString().intern();
- }
-
- /**
- * @param name fully qualified class name, e.g. java.lang.String
- * @return input stream for class
- */
- public InputStream getInputStream(String name) throws IOException {
- return getInputStream(name, ".class");
- }
-
- /**
- * Return stream for class or resource on CLASSPATH.
- *
- * @param name fully qualified file name, e.g. java/lang/String
- * @param suffix file name ends with suff, e.g. .java
- * @return input stream for file on class path
- */
- public InputStream getInputStream(String name, String suffix) throws IOException {
- InputStream is = null;
-
- try {
- is = getClass().getClassLoader().getResourceAsStream(name + suffix);
- } catch(Exception e) { }
-
- if(is != null)
- return is;
-
- return getClassFile(name, suffix).getInputStream();
- }
-
- /**
- * @param name fully qualified file name, e.g. java/lang/String
- * @param suffix file name ends with suff, e.g. .java
- * @return class file for the java class
- */
- public ClassFile getClassFile(String name, String suffix) throws IOException {
- for(int i=0; i < paths.length; i++) {
- ClassFile cf;
-
- if((cf = paths[i].getClassFile(name, suffix)) != null)
- return cf;
- }
-
- throw new IOException("Couldn't find: " + name + suffix);
- }
-
- /**
- * @param name fully qualified class name, e.g. java.lang.String
- * @return input stream for class
- */
- public ClassFile getClassFile(String name) throws IOException {
- return getClassFile(name, ".class");
- }
-
- /**
- * @param name fully qualified file name, e.g. java/lang/String
- * @param suffix file name ends with suffix, e.g. .java
- * @return byte array for file on class path
- */
- public byte[] getBytes(String name, String suffix) throws IOException {
- InputStream is = getInputStream(name, suffix);
-
- if(is == null)
- throw new IOException("Couldn't find: " + name + suffix);
-
- DataInputStream dis = new DataInputStream(is);
- byte[] bytes = new byte[is.available()];
- dis.readFully(bytes);
- dis.close(); is.close();
-
- return bytes;
- }
-
- /**
- * @return byte array for class
- */
- public byte[] getBytes(String name) throws IOException {
- return getBytes(name, ".class");
- }
-
- /**
- * @param name name of file to search for, e.g. java/lang/String.java
- * @return full (canonical) path for file
- */
- public String getPath(String name) throws IOException {
- int index = name.lastIndexOf('.');
- String suffix = "";
-
- if(index > 0) {
- suffix = name.substring(index);
- name = name.substring(0, index);
- }
-
- return getPath(name, suffix);
- }
-
- /**
- * @param name name of file to search for, e.g. java/lang/String
- * @param suffix file name suffix, e.g. .java
- * @return full (canonical) path for file, if it exists
- */
- public String getPath(String name, String suffix) throws IOException {
- return getClassFile(name, suffix).getPath();
- }
-
- private static abstract class PathEntry implements Serializable {
- abstract ClassFile getClassFile(String name, String suffix) throws IOException;
- }
-
- /** Contains information about file/ZIP entry of the Java class.
- */
- public interface ClassFile {
- /** @return input stream for class file.
- */
- public abstract InputStream getInputStream() throws IOException;
-
- /** @return canonical path to class file.
- */
- public abstract String getPath();
-
- /** @return base path of found class, i.e. class is contained relative
- * to that path, which may either denote a directory, or zip file
- */
- public abstract String getBase();
-
- /** @return modification time of class file.
- */
- public abstract long getTime();
-
- /** @return size of class file.
- */
- public abstract long getSize();
- }
-
- private static class Dir extends PathEntry {
- private String dir;
-
- Dir(String d) { dir = d; }
-
- ClassFile getClassFile(String name, String suffix) throws IOException {
- final File file = new File(dir + File.separatorChar +
- name.replace('.', File.separatorChar) + suffix);
-
- return SecuritySupport.getFileExists(file)? new ClassFile() {
- public InputStream getInputStream() throws IOException { return new FileInputStream(file); }
-
- public String getPath() { try {
- return file.getCanonicalPath();
- } catch(IOException e) { return null; }
-
- }
- public long getTime() { return file.lastModified(); }
- public long getSize() { return file.length(); }
- public String getBase() { return dir; }
-
- } : null;
- }
-
- public String toString() { return dir; }
- }
-
- private static class Zip extends PathEntry {
- private ZipFile zip;
-
- Zip(ZipFile z) { zip = z; }
-
- ClassFile getClassFile(String name, String suffix) throws IOException {
- final ZipEntry entry = zip.getEntry(name.replace('.', '/') + suffix);
-
- return (entry != null)? new ClassFile() {
- public InputStream getInputStream() throws IOException { return zip.getInputStream(entry); }
- public String getPath() { return entry.toString(); }
- public long getTime() { return entry.getTime(); }
- public long getSize() { return entry.getSize(); }
- public String getBase() {
- return zip.getName();
- }
- } : null;
- }
- }
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SyntheticRepository.java Mon Aug 03 16:33:06 2015 -0700
@@ -60,7 +60,6 @@
import java.io.*;
-import java.util.Map;
import java.util.HashMap;
import com.sun.org.apache.bcel.internal.classfile.*;
@@ -86,30 +85,16 @@
* @author David Dixon-Peugh
*/
public class SyntheticRepository implements Repository {
- private static final String DEFAULT_PATH = ClassPath.getClassPath();
private static HashMap _instances = new HashMap(); // CLASSPATH X REPOSITORY
- private ClassPath _path = null;
private HashMap _loadedClasses = new HashMap(); // CLASSNAME X JAVACLASS
- private SyntheticRepository(ClassPath path) {
- _path = path;
- }
+ private SyntheticRepository() {
+ }
public static SyntheticRepository getInstance() {
- return getInstance(ClassPath.SYSTEM_CLASS_PATH);
- }
-
- public static SyntheticRepository getInstance(ClassPath classPath) {
- SyntheticRepository rep = (SyntheticRepository)_instances.get(classPath);
-
- if(rep == null) {
- rep = new SyntheticRepository(classPath);
- _instances.put(classPath, rep);
- }
-
- return rep;
+ return new SyntheticRepository();
}
/**
@@ -147,12 +132,9 @@
className = className.replace('/', '.'); // Just in case, canonical form
- try {
- return loadClass(_path.getInputStream(className), className);
- } catch(IOException e) {
- throw new ClassNotFoundException("Exception while looking for class " +
+ IOException e = new IOException("Couldn't find: " + className + ".class");
+ throw new ClassNotFoundException("Exception while looking for class " +
className + ": " + e.toString());
- }
}
/**
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java Mon Aug 03 15:48:33 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1285 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id: EnvironmentCheck.java,v 1.2.4.1 2005/09/09 07:13:59 pvedula Exp $
- */
-package com.sun.org.apache.xalan.internal.xslt;
-
-import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
-import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Utility class to report simple information about the environment.
- * Simplistic reporting about certain classes found in your JVM may
- * help answer some FAQs for simple problems.
- *
- * <p>Usage-command line:
- * <code>
- * java com.sun.org.apache.xalan.internal.xslt.EnvironmentCheck [-out outFile]
- * </code></p>
- *
- * <p>Usage-from program:
- * <code>
- * boolean environmentOK =
- * (new EnvironmentCheck()).checkEnvironment(yourPrintWriter);
- * </code></p>
- *
- * <p>Usage-from stylesheet:
- * <code><pre>
- * <?xml version="1.0"?>
- * <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- * xmlns:xalan="http://xml.apache.org/xalan"
- * exclude-result-prefixes="xalan">
- * <xsl:output indent="yes"/>
- * <xsl:template match="/">
- * <xsl:copy-of select="xalan:checkEnvironment()"/>
- * </xsl:template>
- * </xsl:stylesheet>
- * </pre></code></p>
- *
- * <p>Xalan users reporting problems are encouraged to use this class
- * to see if there are potential problems with their actual
- * Java environment <b>before</b> reporting a bug. Note that you
- * should both check from the JVM/JRE's command line as well as
- * temporarily calling checkEnvironment() directly from your code,
- * since the classpath may differ (especially for servlets, etc).</p>
- *
- * <p>Also see http://xml.apache.org/xalan-j/faq.html</p>
- *
- * <p>Note: This class is pretty simplistic:
- * results are not necessarily definitive nor will it find all
- * problems related to environment setup. Also, you should avoid
- * calling this in deployed production code, both because it is
- * quite slow and because it forces classes to get loaded.</p>
- *
- * <p>Note: This class explicitly has very limited compile-time
- * dependencies to enable easy compilation and usage even when
- * Xalan, DOM/SAX/JAXP, etc. are not present.</p>
- *
- * <p>Note: for an improved version of this utility, please see
- * the xml-commons' project Which utility which does the same kind
- * of thing but in a much simpler manner.</p>
- *
- * @author Shane_Curcuru@us.ibm.com
- */
-public class EnvironmentCheck
-{
-
- /**
- * Command line runnability: checks for [-out outFilename] arg.
- * <p>Command line entrypoint; Sets output and calls
- * {@link #checkEnvironment(PrintWriter)}.</p>
- * @param args command line args
- */
- public static void main(String[] args)
- {
- // Default to System.out, autoflushing
- PrintWriter sendOutputTo = new PrintWriter(System.out, true);
-
- // Read our simplistic input args, if supplied
- for (int i = 0; i < args.length; i++)
- {
- if ("-out".equalsIgnoreCase(args[i]))
- {
- i++;
-
- if (i < args.length)
- {
- try
- {
- sendOutputTo = new PrintWriter(new FileWriter(args[i], true));
- }
- catch (Exception e)
- {
- System.err.println("# WARNING: -out " + args[i] + " threw "
- + e.toString());
- }
- }
- else
- {
- System.err.println(
- "# WARNING: -out argument should have a filename, output sent to console");
- }
- }
- }
-
- EnvironmentCheck app = new EnvironmentCheck();
- app.checkEnvironment(sendOutputTo);
- }
-
- /**
- * Programmatic entrypoint: Report on basic Java environment
- * and CLASSPATH settings that affect Xalan.
- *
- * <p>Note that this class is not advanced enough to tell you
- * everything about the environment that affects Xalan, and
- * sometimes reports errors that will not actually affect
- * Xalan's behavior. Currently, it very simplistically
- * checks the JVM's environment for some basic properties and
- * logs them out; it will report a problem if it finds a setting
- * or .jar file that is <i>likely</i> to cause problems.</p>
- *
- * <p>Advanced users can peruse the code herein to help them
- * investigate potential environment problems found; other users
- * may simply send the output from this tool along with any bugs
- * they submit to help us in the debugging process.</p>
- *
- * @param pw PrintWriter to send output to; can be sent to a
- * file that will look similar to a Properties file; defaults
- * to System.out if null
- * @return true if your environment appears to have no major
- * problems; false if potential environment problems found
- * @see #getEnvironmentHash()
- */
- public boolean checkEnvironment(PrintWriter pw)
- {
-
- // Use user-specified output writer if non-null
- if (null != pw)
- outWriter = pw;
-
- // Setup a hash to store various environment information in
- Hashtable hash = getEnvironmentHash();
-
- // Check for ERROR keys in the hashtable, and print report
- boolean environmentHasErrors = writeEnvironmentReport(hash);
-
- if (environmentHasErrors)
- {
- // Note: many logMsg calls have # at the start to
- // fake a property-file like output
- logMsg("# WARNING: Potential problems found in your environment!");
- logMsg("# Check any 'ERROR' items above against the Xalan FAQs");
- logMsg("# to correct potential problems with your classes/jars");
- logMsg("# http://xml.apache.org/xalan-j/faq.html");
- if (null != outWriter)
- outWriter.flush();
- return false;
- }
- else
- {
- logMsg("# YAHOO! Your environment seems to be OK.");
- if (null != outWriter)
- outWriter.flush();
- return true;
- }
- }
-
- /**
- * Fill a hash with basic environment settings that affect Xalan.
- *
- * <p>Worker method called from various places.</p>
- * <p>Various system and CLASSPATH, etc. properties are put into
- * the hash as keys with a brief description of the current state
- * of that item as the value. Any serious problems will be put in
- * with a key that is prefixed with {@link #ERROR 'ERROR.'} so it
- * stands out in any resulting report; also a key with just that
- * constant will be set as well for any error.</p>
- * <p>Note that some legitimate cases are flaged as potential
- * errors - namely when a developer recompiles xalan.jar on their
- * own - and even a non-error state doesn't guaruntee that
- * everything in the environment is correct. But this will help
- * point out the most common classpath and system property
- * problems that we've seen.</p>
- *
- * @return Hashtable full of useful environment info about Xalan
- * and related system properties, etc.
- */
- public Hashtable getEnvironmentHash()
- {
- // Setup a hash to store various environment information in
- Hashtable hash = new Hashtable();
-
- // Call various worker methods to fill in the hash
- // These are explicitly separate for maintenance and so
- // advanced users could call them standalone
- checkJAXPVersion(hash);
- checkProcessorVersion(hash);
- checkParserVersion(hash);
- checkAntVersion(hash);
- if (!checkDOML3(hash)) {
- checkDOMVersion(hash);
- }
- checkSAXVersion(hash);
- checkSystemProperties(hash);
-
- return hash;
- }
-
- /**
- * Dump a basic Xalan environment report to outWriter.
- *
- * <p>This dumps a simple header and then each of the entries in
- * the Hashtable to our PrintWriter; it does special processing
- * for entries that are .jars found in the classpath.</p>
- *
- * @param h Hashtable of items to report on; presumably
- * filled in by our various check*() methods
- * @return true if your environment appears to have no major
- * problems; false if potential environment problems found
- * @see #appendEnvironmentReport(Node, Document, Hashtable)
- * for an equivalent that appends to a Node instead
- */
- protected boolean writeEnvironmentReport(Hashtable h)
- {
-
- if (null == h)
- {
- logMsg("# ERROR: writeEnvironmentReport called with null Hashtable");
- return false;
- }
-
- boolean errors = false;
-
- logMsg(
- "#---- BEGIN writeEnvironmentReport($Revision: 1.10 $): Useful stuff found: ----");
-
- // Fake the Properties-like output
- for (Enumeration keys = h.keys();
- keys.hasMoreElements();
- /* no increment portion */
- )
- {
- Object key = keys.nextElement();
- String keyStr = (String) key;
- try
- {
- // Special processing for classes found..
- if (keyStr.startsWith(FOUNDCLASSES))
- {
- Vector v = (Vector) h.get(keyStr);
- errors |= logFoundJars(v, keyStr);
- }
- // ..normal processing for all other entries
- else
- {
- // Note: we could just check for the ERROR key by itself,
- // since we now set that, but since we have to go
- // through the whole hash anyway, do it this way,
- // which is safer for maintenance
- if (keyStr.startsWith(ERROR))
- {
- errors = true;
- }
- logMsg(keyStr + "=" + h.get(keyStr));
- }
- }
- catch (Exception e)
- {
- logMsg("Reading-" + key + "= threw: " + e.toString());
- }
- }
-
- logMsg(
- "#----- END writeEnvironmentReport: Useful properties found: -----");
-
- return errors;
- }
-
- /** Prefixed to hash keys that signify serious problems. */
- public static final String ERROR = "ERROR.";
-
- /** Added to descriptions that signify potential problems. */
- public static final String WARNING = "WARNING.";
-
- /** Value for any error found. */
- public static final String ERROR_FOUND = "At least one error was found!";
-
- /** Prefixed to hash keys that signify version numbers. */
- public static final String VERSION = "version.";
-
- /** Prefixed to hash keys that signify .jars found in classpath. */
- public static final String FOUNDCLASSES = "foundclasses.";
-
- /** Marker that a class or .jar was found. */
- public static final String CLASS_PRESENT = "present-unknown-version";
-
- /** Marker that a class or .jar was not found. */
- public static final String CLASS_NOTPRESENT = "not-present";
-
- /** Listing of common .jar files that include Xalan-related classes. */
- public String[] jarNames =
- {
- "xalan.jar", "xalansamples.jar", "xalanj1compat.jar", "xalanservlet.jar",
- "serializer.jar", // Serializer (shared between Xalan & Xerces)
- "xerces.jar", // Xerces-J 1.x
- "xercesImpl.jar", // Xerces-J 2.x
- "testxsl.jar",
- "crimson.jar",
- "lotusxsl.jar",
- "jaxp.jar", "parser.jar", "dom.jar", "sax.jar", "xml.jar",
- "xml-apis.jar",
- "xsltc.jar"
- };
-
- /**
- * Print out report of .jars found in a classpath.
- *
- * Takes the information encoded from a checkPathForJars()
- * call and dumps it out to our PrintWriter.
- *
- * @param v Vector of Hashtables of .jar file info
- * @param desc description to print out in header
- *
- * @return false if OK, true if any .jars were reported
- * as having errors
- * @see #checkPathForJars(String, String[])
- */
- protected boolean logFoundJars(Vector v, String desc)
- {
-
- if ((null == v) || (v.size() < 1))
- return false;
-
- boolean errors = false;
-
- logMsg("#---- BEGIN Listing XML-related jars in: " + desc + " ----");
-
- for (int i = 0; i < v.size(); i++)
- {
- Hashtable subhash = (Hashtable) v.elementAt(i);
-
- for (Enumeration keys = subhash.keys();
- keys.hasMoreElements();
- /* no increment portion */
- )
- {
- Object key = keys.nextElement();
- String keyStr = (String) key;
- try
- {
- if (keyStr.startsWith(ERROR))
- {
- errors = true;
- }
- logMsg(keyStr + "=" + subhash.get(keyStr));
-
- }
- catch (Exception e)
- {
- errors = true;
- logMsg("Reading-" + key + "= threw: " + e.toString());
- }
- }
- }
-
- logMsg("#----- END Listing XML-related jars in: " + desc + " -----");
-
- return errors;
- }
-
- /**
- * Stylesheet extension entrypoint: Dump a basic Xalan
- * environment report from getEnvironmentHash() to a Node.
- *
- * <p>Copy of writeEnvironmentReport that creates a Node suitable
- * for other processing instead of a properties-like text output.
- * </p>
- * @param container Node to append our report to
- * @param factory Document providing createElement, etc. services
- * @param h Hash presumably from {@link #getEnvironmentHash()}
- * @see #writeEnvironmentReport(Hashtable)
- * for an equivalent that writes to a PrintWriter instead
- */
- public void appendEnvironmentReport(Node container, Document factory, Hashtable h)
- {
- if ((null == container) || (null == factory))
- {
- return;
- }
-
- try
- {
- Element envCheckNode = factory.createElement("EnvironmentCheck");
- envCheckNode.setAttribute("version", "$Revision: 1.10 $");
- container.appendChild(envCheckNode);
-
- if (null == h)
- {
- Element statusNode = factory.createElement("status");
- statusNode.setAttribute("result", "ERROR");
- statusNode.appendChild(factory.createTextNode("appendEnvironmentReport called with null Hashtable!"));
- envCheckNode.appendChild(statusNode);
- return;
- }
-
- boolean errors = false;
-
- Element hashNode = factory.createElement("environment");
- envCheckNode.appendChild(hashNode);
-
- for (Enumeration keys = h.keys();
- keys.hasMoreElements();
- /* no increment portion */
- )
- {
- Object key = keys.nextElement();
- String keyStr = (String) key;
- try
- {
- // Special processing for classes found..
- if (keyStr.startsWith(FOUNDCLASSES))
- {
- Vector v = (Vector) h.get(keyStr);
- // errors |= logFoundJars(v, keyStr);
- errors |= appendFoundJars(hashNode, factory, v, keyStr);
- }
- // ..normal processing for all other entries
- else
- {
- // Note: we could just check for the ERROR key by itself,
- // since we now set that, but since we have to go
- // through the whole hash anyway, do it this way,
- // which is safer for maintenance
- if (keyStr.startsWith(ERROR))
- {
- errors = true;
- }
- Element node = factory.createElement("item");
- node.setAttribute("key", keyStr);
- node.appendChild(factory.createTextNode((String)h.get(keyStr)));
- hashNode.appendChild(node);
- }
- }
- catch (Exception e)
- {
- errors = true;
- Element node = factory.createElement("item");
- node.setAttribute("key", keyStr);
- node.appendChild(factory.createTextNode(ERROR + " Reading " + key + " threw: " + e.toString()));
- hashNode.appendChild(node);
- }
- } // end of for...
-
- Element statusNode = factory.createElement("status");
- statusNode.setAttribute("result", (errors ? "ERROR" : "OK" ));
- envCheckNode.appendChild(statusNode);
- }
- catch (Exception e2)
- {
- System.err.println("appendEnvironmentReport threw: " + e2.toString());
- e2.printStackTrace();
- }
- }
-
- /**
- * Print out report of .jars found in a classpath.
- *
- * Takes the information encoded from a checkPathForJars()
- * call and dumps it out to our PrintWriter.
- *
- * @param container Node to append our report to
- * @param factory Document providing createElement, etc. services
- * @param v Vector of Hashtables of .jar file info
- * @param desc description to print out in header
- *
- * @return false if OK, true if any .jars were reported
- * as having errors
- * @see #checkPathForJars(String, String[])
- */
- protected boolean appendFoundJars(Node container, Document factory,
- Vector v, String desc)
- {
-
- if ((null == v) || (v.size() < 1))
- return false;
-
- boolean errors = false;
-
- for (int i = 0; i < v.size(); i++)
- {
- Hashtable subhash = (Hashtable) v.elementAt(i);
-
- for (Enumeration keys = subhash.keys();
- keys.hasMoreElements();
- /* no increment portion */
- )
- {
- Object key = keys.nextElement();
- try
- {
- String keyStr = (String) key;
- if (keyStr.startsWith(ERROR))
- {
- errors = true;
- }
- Element node = factory.createElement("foundJar");
- node.setAttribute("name", keyStr.substring(0, keyStr.indexOf("-")));
- node.setAttribute("desc", keyStr.substring(keyStr.indexOf("-") + 1));
- node.appendChild(factory.createTextNode((String)subhash.get(keyStr)));
- container.appendChild(node);
- }
- catch (Exception e)
- {
- errors = true;
- Element node = factory.createElement("foundJar");
- node.appendChild(factory.createTextNode(ERROR + " Reading " + key + " threw: " + e.toString()));
- container.appendChild(node);
- }
- }
- }
- return errors;
- }
-
- /**
- * Fillin hash with info about SystemProperties.
- *
- * Logs java.class.path and other likely paths; then attempts
- * to search those paths for .jar files with Xalan-related classes.
- *
- * @param h Hashtable to put information in
- * @see #jarNames
- * @see #checkPathForJars(String, String[])
- */
- protected void checkSystemProperties(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- // Grab java version for later use
- try
- {
- String javaVersion = SecuritySupport.getSystemProperty("java.version");
-
- h.put("java.version", javaVersion);
- }
- catch (SecurityException se)
- {
-
- // For applet context, etc.
- h.put(
- "java.version",
- "WARNING: SecurityException thrown accessing system version properties");
- }
-
- // Printout jar files on classpath(s) that may affect operation
- // Do this in order
- try
- {
-
- // This is present in all JVM's
- String cp = SecuritySupport.getSystemProperty("java.class.path");
-
- h.put("java.class.path", cp);
-
- Vector classpathJars = checkPathForJars(cp, jarNames);
-
- if (null != classpathJars)
- h.put(FOUNDCLASSES + "java.class.path", classpathJars);
-
- // Also check for JDK 1.2+ type classpaths
- String othercp = SecuritySupport.getSystemProperty("sun.boot.class.path");
-
- if (null != othercp)
- {
- h.put("sun.boot.class.path", othercp);
-
- classpathJars = checkPathForJars(othercp, jarNames);
-
- if (null != classpathJars)
- h.put(FOUNDCLASSES + "sun.boot.class.path", classpathJars);
- }
-
- //@todo also check other System properties' paths?
- // v2 = checkPathForJars(System.getProperty("sun.boot.library.path"), jarNames); // ?? may not be needed
- // v3 = checkPathForJars(System.getProperty("java.library.path"), jarNames); // ?? may not be needed
- }
- catch (SecurityException se2)
- {
- // For applet context, etc.
- h.put(
- "java.class.path",
- "WARNING: SecurityException thrown accessing system classpath properties");
- }
- }
-
- /**
- * Cheap-o listing of specified .jars found in the classpath.
- *
- * cp should be separated by the usual File.pathSeparator. We
- * then do a simplistic search of the path for any requested
- * .jar filenames, and return a listing of their names and
- * where (apparently) they came from.
- *
- * @param cp classpath to search
- * @param jars array of .jar base filenames to look for
- *
- * @return Vector of Hashtables filled with info about found .jars
- * @see #jarNames
- * @see #logFoundJars(Vector, String)
- * @see #appendFoundJars(Node, Document, Vector, String )
- * @see #getApparentVersion(String, long)
- */
- protected Vector checkPathForJars(String cp, String[] jars)
- {
-
- if ((null == cp) || (null == jars) || (0 == cp.length())
- || (0 == jars.length))
- return null;
-
- Vector v = new Vector();
- StringTokenizer st = new StringTokenizer(cp, File.pathSeparator);
-
- while (st.hasMoreTokens())
- {
-
- // Look at each classpath entry for each of our requested jarNames
- String filename = st.nextToken();
-
- for (int i = 0; i < jars.length; i++)
- {
- if (filename.indexOf(jars[i]) > -1)
- {
- File f = new File(filename);
-
- if (f.exists())
- {
-
- // If any requested jarName exists, report on
- // the details of that .jar file
- try
- {
- Hashtable h = new Hashtable(2);
- // Note "-" char is looked for in appendFoundJars
- h.put(jars[i] + "-path", f.getAbsolutePath());
-
- // We won't bother reporting on the xalan.jar apparent version
- // since this requires knowing the jar size of the xalan.jar
- // before we build it.
- // For other jars, eg. xml-apis.jar and xercesImpl.jar, we
- // report the apparent version of the file we've found
- if (!("xalan.jar".equalsIgnoreCase(jars[i]))) {
- h.put(jars[i] + "-apparent.version",
- getApparentVersion(jars[i], f.length()));
- }
- v.addElement(h);
- }
- catch (Exception e)
- {
-
- /* no-op, don't add it */
- }
- }
- else
- {
- Hashtable h = new Hashtable(2);
- // Note "-" char is looked for in appendFoundJars
- h.put(jars[i] + "-path", WARNING + " Classpath entry: "
- + filename + " does not exist");
- h.put(jars[i] + "-apparent.version", CLASS_NOTPRESENT);
- v.addElement(h);
- }
- }
- }
- }
-
- return v;
- }
-
- /**
- * Cheap-o method to determine the product version of a .jar.
- *
- * Currently does a lookup into a local table of some recent
- * shipped Xalan builds to determine where the .jar probably
- * came from. Note that if you recompile Xalan or Xerces
- * yourself this will likely report a potential error, since
- * we can't certify builds other than the ones we ship.
- * Only reports against selected posted Xalan-J builds.
- *
- * //@todo actually look up version info in manifests
- *
- * @param jarName base filename of the .jarfile
- * @param jarSize size of the .jarfile
- *
- * @return String describing where the .jar file probably
- * came from
- */
- protected String getApparentVersion(String jarName, long jarSize)
- {
- // If we found a matching size and it's for our
- // jar, then return it's description
- // Lookup in static jarVersions Hashtable
- String foundSize = (String) jarVersions.get(new Long(jarSize));
-
- if ((null != foundSize) && (foundSize.startsWith(jarName)))
- {
- return foundSize;
- }
- else
- {
- if ("xerces.jar".equalsIgnoreCase(jarName)
- || "xercesImpl.jar".equalsIgnoreCase(jarName))
-// || "xalan.jar".equalsIgnoreCase(jarName))
- {
-
- // For xalan.jar and xerces.jar/xercesImpl.jar, which we ship together:
- // The jar is not from a shipped copy of xalan-j, so
- // it's up to the user to ensure that it's compatible
- return jarName + " " + WARNING + CLASS_PRESENT;
- }
- else
- {
-
- // Otherwise, it's just a jar we don't have the version info calculated for
- return jarName + " " + CLASS_PRESENT;
- }
- }
- }
-
- /**
- * Report version information about JAXP interfaces.
- *
- * Currently distinguishes between JAXP 1.0.1 and JAXP 1.1,
- * and not found; only tests the interfaces, and does not
- * check for reference implementation versions.
- *
- * @param h Hashtable to put information in
- */
- protected void checkJAXPVersion(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- Class clazz = null;
-
- try
- {
- final String JAXP1_CLASS = "javax.xml.stream.XMLStreamConstants";
-
- clazz = ObjectFactory.findProviderClass(JAXP1_CLASS, true);
-
- // If we succeeded, we have JAXP 1.4 available
- h.put(VERSION + "JAXP", "1.4");
- }
- catch (Exception e)
- {
- h.put(ERROR + VERSION + "JAXP", "1.3");
- h.put(ERROR, ERROR_FOUND);
- }
- }
-
- /**
- * Report product version information from Xalan-J.
- *
- * Looks for version info in xalan.jar from Xalan-J products.
- *
- * @param h Hashtable to put information in
- */
- protected void checkProcessorVersion(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- try
- {
- final String XALAN1_VERSION_CLASS =
- "com.sun.org.apache.xalan.internal.xslt.XSLProcessorVersion";
-
- Class clazz = ObjectFactory.findProviderClass(XALAN1_VERSION_CLASS, true);
-
- // Found Xalan-J 1.x, grab it's version fields
- StringBuffer buf = new StringBuffer();
- Field f = clazz.getField("PRODUCT");
-
- buf.append(f.get(null));
- buf.append(';');
-
- f = clazz.getField("LANGUAGE");
-
- buf.append(f.get(null));
- buf.append(';');
-
- f = clazz.getField("S_VERSION");
-
- buf.append(f.get(null));
- buf.append(';');
- h.put(VERSION + "xalan1", buf.toString());
- }
- catch (Exception e1)
- {
- h.put(VERSION + "xalan1", CLASS_NOTPRESENT);
- }
-
- try
- {
- // NOTE: This is the old Xalan 2.0, 2.1, 2.2 version class,
- // is being replaced by class below
- final String XALAN2_VERSION_CLASS =
- "com.sun.org.apache.xalan.internal.processor.XSLProcessorVersion";
-
- Class clazz = ObjectFactory.findProviderClass(XALAN2_VERSION_CLASS, true);
-
- // Found Xalan-J 2.x, grab it's version fields
- StringBuffer buf = new StringBuffer();
- Field f = clazz.getField("S_VERSION");
- buf.append(f.get(null));
-
- h.put(VERSION + "xalan2x", buf.toString());
- }
- catch (Exception e2)
- {
- h.put(VERSION + "xalan2x", CLASS_NOTPRESENT);
- }
- try
- {
- // NOTE: This is the new Xalan 2.2+ version class
- final String XALAN2_2_VERSION_CLASS =
- "com.sun.org.apache.xalan.internal.Version";
- final String XALAN2_2_VERSION_METHOD = "getVersion";
- final Class noArgs[] = new Class[0];
-
- Class clazz = ObjectFactory.findProviderClass(XALAN2_2_VERSION_CLASS, true);
-
- Method method = clazz.getMethod(XALAN2_2_VERSION_METHOD, noArgs);
- Object returnValue = method.invoke(null, new Object[0]);
-
- h.put(VERSION + "xalan2_2", (String)returnValue);
- }
- catch (Exception e2)
- {
- h.put(VERSION + "xalan2_2", CLASS_NOTPRESENT);
- }
- }
-
- /**
- * Report product version information from common parsers.
- *
- * Looks for version info in xerces.jar/xercesImpl.jar/crimson.jar.
- *
- * //@todo actually look up version info in crimson manifest
- *
- * @param h Hashtable to put information in
- */
- protected void checkParserVersion(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- try
- {
- final String XERCES1_VERSION_CLASS = "com.sun.org.apache.xerces.internal.framework.Version";
-
- Class clazz = ObjectFactory.findProviderClass(XERCES1_VERSION_CLASS, true);
-
- // Found Xerces-J 1.x, grab it's version fields
- Field f = clazz.getField("fVersion");
- String parserVersion = (String) f.get(null);
-
- h.put(VERSION + "xerces1", parserVersion);
- }
- catch (Exception e)
- {
- h.put(VERSION + "xerces1", CLASS_NOTPRESENT);
- }
-
- // Look for xerces1 and xerces2 parsers separately
- try
- {
- final String XERCES2_VERSION_CLASS = "com.sun.org.apache.xerces.internal.impl.Version";
-
- Class clazz = ObjectFactory.findProviderClass(XERCES2_VERSION_CLASS, true);
-
- // Found Xerces-J 2.x, grab it's version fields
- Field f = clazz.getField("fVersion");
- String parserVersion = (String) f.get(null);
-
- h.put(VERSION + "xerces2", parserVersion);
- }
- catch (Exception e)
- {
- h.put(VERSION + "xerces2", CLASS_NOTPRESENT);
- }
-
- try
- {
- final String CRIMSON_CLASS = "org.apache.crimson.parser.Parser2";
-
- Class clazz = ObjectFactory.findProviderClass(CRIMSON_CLASS, true);
-
- //@todo determine specific crimson version
- h.put(VERSION + "crimson", CLASS_PRESENT);
- }
- catch (Exception e)
- {
- h.put(VERSION + "crimson", CLASS_NOTPRESENT);
- }
- }
-
- /**
- * Report product version information from Ant.
- *
- * @param h Hashtable to put information in
- */
- protected void checkAntVersion(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- try
- {
- final String ANT_VERSION_CLASS = "org.apache.tools.ant.Main";
- final String ANT_VERSION_METHOD = "getAntVersion"; // noArgs
- final Class noArgs[] = new Class[0];
-
- Class clazz = ObjectFactory.findProviderClass(ANT_VERSION_CLASS, true);
-
- Method method = clazz.getMethod(ANT_VERSION_METHOD, noArgs);
- Object returnValue = method.invoke(null, new Object[0]);
-
- h.put(VERSION + "ant", (String)returnValue);
- }
- catch (Exception e)
- {
- h.put(VERSION + "ant", CLASS_NOTPRESENT);
- }
- }
-
- /**
- * Report version info from DOM interfaces.
- *
- * @param h Hashtable to put information in
- */
- protected boolean checkDOML3(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- final String DOM_CLASS = "org.w3c.dom.Document";
- final String DOM_LEVEL3_METHOD = "getDoctype"; // no parameter
-
- try
- {
- Class clazz = ObjectFactory.findProviderClass(DOM_CLASS, true);
-
- Method method = clazz.getMethod(DOM_LEVEL3_METHOD, (Class<?>[])null);
-
- // If we succeeded, we have loaded interfaces from a
- // level 3 DOM somewhere
- h.put(VERSION + "DOM", "3.0");
- return true;
- }
- catch (Exception e)
- {
- return false;
- }
- }
-
- /**
- * Report version info from DOM interfaces.
- *
- * Currently distinguishes between pre-DOM level 2, the DOM
- * level 2 working draft, the DOM level 2 final draft,
- * and not found.
- *
- * @param h Hashtable to put information in
- */
- protected void checkDOMVersion(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- final String DOM_LEVEL2_CLASS = "org.w3c.dom.Document";
- final String DOM_LEVEL2_METHOD = "createElementNS"; // String, String
- final String DOM_LEVEL3_METHOD = "getDoctype"; // no parameter
- final String DOM_LEVEL2WD_CLASS = "org.w3c.dom.Node";
- final String DOM_LEVEL2WD_METHOD = "supported"; // String, String
- final String DOM_LEVEL2FD_CLASS = "org.w3c.dom.Node";
- final String DOM_LEVEL2FD_METHOD = "isSupported"; // String, String
- final Class twoStringArgs[] = { java.lang.String.class,
- java.lang.String.class };
-
- try
- {
- Class clazz = ObjectFactory.findProviderClass(DOM_LEVEL2_CLASS, true);
-
- Method method = clazz.getMethod(DOM_LEVEL2_METHOD, twoStringArgs);
-
- // If we succeeded, we have loaded interfaces from a
- // level 2 DOM somewhere
- h.put(VERSION + "DOM", "2.0");
-
- try
- {
- // Check for the working draft version, which is
- // commonly found, but won't work anymore
- clazz = ObjectFactory.findProviderClass(DOM_LEVEL2WD_CLASS, true);
-
- method = clazz.getMethod(DOM_LEVEL2WD_METHOD, twoStringArgs);
-
- h.put(ERROR + VERSION + "DOM.draftlevel", "2.0wd");
- h.put(ERROR, ERROR_FOUND);
- }
- catch (Exception e2)
- {
- try
- {
- // Check for the final draft version as well
- clazz = ObjectFactory.findProviderClass(DOM_LEVEL2FD_CLASS, true);
-
- method = clazz.getMethod(DOM_LEVEL2FD_METHOD, twoStringArgs);
-
- h.put(VERSION + "DOM.draftlevel", "2.0fd");
- }
- catch (Exception e3)
- {
- h.put(ERROR + VERSION + "DOM.draftlevel", "2.0unknown");
- h.put(ERROR, ERROR_FOUND);
- }
- }
- }
- catch (Exception e)
- {
- h.put(ERROR + VERSION + "DOM",
- "ERROR attempting to load DOM level 2 class: " + e.toString());
- h.put(ERROR, ERROR_FOUND);
- }
-
- //@todo load an actual DOM implmementation and query it as well
- //@todo load an actual DOM implmementation and check if
- // isNamespaceAware() == true, which is needed to parse
- // xsl stylesheet files into a DOM
- }
-
- /**
- * Report version info from SAX interfaces.
- *
- * Currently distinguishes between SAX 2, SAX 2.0beta2,
- * SAX1, and not found.
- *
- * @param h Hashtable to put information in
- */
- protected void checkSAXVersion(Hashtable h)
- {
-
- if (null == h)
- h = new Hashtable();
-
- final String SAX_VERSION1_CLASS = "org.xml.sax.Parser";
- final String SAX_VERSION1_METHOD = "parse"; // String
- final String SAX_VERSION2_CLASS = "org.xml.sax.XMLReader";
- final String SAX_VERSION2_METHOD = "parse"; // String
- final String SAX_VERSION2BETA_CLASSNF = "org.xml.sax.helpers.AttributesImpl";
- final String SAX_VERSION2BETA_METHODNF = "setAttributes"; // Attributes
- final Class oneStringArg[] = { java.lang.String.class };
- // Note this introduces a minor compile dependency on SAX...
- final Class attributesArg[] = { org.xml.sax.Attributes.class };
-
- try
- {
- // This method was only added in the final SAX 2.0 release;
- // see changes.html "Changes from SAX 2.0beta2 to SAX 2.0prerelease"
- Class clazz = ObjectFactory.findProviderClass(SAX_VERSION2BETA_CLASSNF, true);
-
- Method method = clazz.getMethod(SAX_VERSION2BETA_METHODNF, attributesArg);
-
- // If we succeeded, we have loaded interfaces from a
- // real, final SAX version 2.0 somewhere
- h.put(VERSION + "SAX", "2.0");
- }
- catch (Exception e)
- {
- // If we didn't find the SAX 2.0 class, look for a 2.0beta2
- h.put(ERROR + VERSION + "SAX",
- "ERROR attempting to load SAX version 2 class: " + e.toString());
- h.put(ERROR, ERROR_FOUND);
-
- try
- {
- Class clazz = ObjectFactory.findProviderClass(SAX_VERSION2_CLASS, true);
-
- Method method = clazz.getMethod(SAX_VERSION2_METHOD, oneStringArg);
-
- // If we succeeded, we have loaded interfaces from a
- // SAX version 2.0beta2 or earlier; these might work but
- // you should really have the final SAX 2.0
- h.put(VERSION + "SAX-backlevel", "2.0beta2-or-earlier");
- }
- catch (Exception e2)
- {
- // If we didn't find the SAX 2.0beta2 class, look for a 1.0 one
- h.put(ERROR + VERSION + "SAX",
- "ERROR attempting to load SAX version 2 class: " + e.toString());
- h.put(ERROR, ERROR_FOUND);
-
- try
- {
- Class clazz = ObjectFactory.findProviderClass(SAX_VERSION1_CLASS, true);
-
- Method method = clazz.getMethod(SAX_VERSION1_METHOD, oneStringArg);
-
- // If we succeeded, we have loaded interfaces from a
- // SAX version 1.0 somewhere; which won't work very
- // well for JAXP 1.1 or beyond!
- h.put(VERSION + "SAX-backlevel", "1.0");
- }
- catch (Exception e3)
- {
- // If we didn't find the SAX 2.0 class, look for a 1.0 one
- // Note that either 1.0 or no SAX are both errors
- h.put(ERROR + VERSION + "SAX-backlevel",
- "ERROR attempting to load SAX version 1 class: " + e3.toString());
-
- }
- }
- }
- }
-
- /**
- * Manual table of known .jar sizes.
- * Only includes shipped versions of certain projects.
- * key=jarsize, value=jarname ' from ' distro name
- * Note assumption: two jars cannot have the same size!
- *
- * @see #getApparentVersion(String, long)
- */
- private static Hashtable jarVersions = new Hashtable();
-
- /**
- * Static initializer for jarVersions table.
- * Doing this just once saves time and space.
- *
- * @see #getApparentVersion(String, long)
- */
- static
- {
- // Note: hackish Hashtable, this could use improvement
- jarVersions.put(new Long(857192), "xalan.jar from xalan-j_1_1");
- jarVersions.put(new Long(440237), "xalan.jar from xalan-j_1_2");
- jarVersions.put(new Long(436094), "xalan.jar from xalan-j_1_2_1");
- jarVersions.put(new Long(426249), "xalan.jar from xalan-j_1_2_2");
- jarVersions.put(new Long(702536), "xalan.jar from xalan-j_2_0_0");
- jarVersions.put(new Long(720930), "xalan.jar from xalan-j_2_0_1");
- jarVersions.put(new Long(732330), "xalan.jar from xalan-j_2_1_0");
- jarVersions.put(new Long(872241), "xalan.jar from xalan-j_2_2_D10");
- jarVersions.put(new Long(882739), "xalan.jar from xalan-j_2_2_D11");
- jarVersions.put(new Long(923866), "xalan.jar from xalan-j_2_2_0");
- jarVersions.put(new Long(905872), "xalan.jar from xalan-j_2_3_D1");
- jarVersions.put(new Long(906122), "xalan.jar from xalan-j_2_3_0");
- jarVersions.put(new Long(906248), "xalan.jar from xalan-j_2_3_1");
- jarVersions.put(new Long(983377), "xalan.jar from xalan-j_2_4_D1");
- jarVersions.put(new Long(997276), "xalan.jar from xalan-j_2_4_0");
- jarVersions.put(new Long(1031036), "xalan.jar from xalan-j_2_4_1");
- // Stop recording xalan.jar sizes as of Xalan Java 2.5.0
-
- jarVersions.put(new Long(596540), "xsltc.jar from xalan-j_2_2_0");
- jarVersions.put(new Long(590247), "xsltc.jar from xalan-j_2_3_D1");
- jarVersions.put(new Long(589914), "xsltc.jar from xalan-j_2_3_0");
- jarVersions.put(new Long(589915), "xsltc.jar from xalan-j_2_3_1");
- jarVersions.put(new Long(1306667), "xsltc.jar from xalan-j_2_4_D1");
- jarVersions.put(new Long(1328227), "xsltc.jar from xalan-j_2_4_0");
- jarVersions.put(new Long(1344009), "xsltc.jar from xalan-j_2_4_1");
- jarVersions.put(new Long(1348361), "xsltc.jar from xalan-j_2_5_D1");
- // Stop recording xsltc.jar sizes as of Xalan Java 2.5.0
-
- jarVersions.put(new Long(1268634), "xsltc.jar-bundled from xalan-j_2_3_0");
-
- jarVersions.put(new Long(100196), "xml-apis.jar from xalan-j_2_2_0 or xalan-j_2_3_D1");
- jarVersions.put(new Long(108484), "xml-apis.jar from xalan-j_2_3_0, or xalan-j_2_3_1 from xml-commons-1.0.b2");
- jarVersions.put(new Long(109049), "xml-apis.jar from xalan-j_2_4_0 from xml-commons RIVERCOURT1 branch");
- jarVersions.put(new Long(113749), "xml-apis.jar from xalan-j_2_4_1 from factoryfinder-build of xml-commons RIVERCOURT1");
- jarVersions.put(new Long(124704), "xml-apis.jar from tck-jaxp-1_2_0 branch of xml-commons");
- jarVersions.put(new Long(124724), "xml-apis.jar from tck-jaxp-1_2_0 branch of xml-commons, tag: xml-commons-external_1_2_01");
- jarVersions.put(new Long(194205), "xml-apis.jar from head branch of xml-commons, tag: xml-commons-external_1_3_02");
-
- // If the below were more common I would update it to report
- // errors better; but this is so old hardly anyone has it
- jarVersions.put(new Long(424490), "xalan.jar from Xerces Tools releases - ERROR:DO NOT USE!");
-
- jarVersions.put(new Long(1591855), "xerces.jar from xalan-j_1_1 from xerces-1...");
- jarVersions.put(new Long(1498679), "xerces.jar from xalan-j_1_2 from xerces-1_2_0.bin");
- jarVersions.put(new Long(1484896), "xerces.jar from xalan-j_1_2_1 from xerces-1_2_1.bin");
- jarVersions.put(new Long(804460), "xerces.jar from xalan-j_1_2_2 from xerces-1_2_2.bin");
- jarVersions.put(new Long(1499244), "xerces.jar from xalan-j_2_0_0 from xerces-1_2_3.bin");
- jarVersions.put(new Long(1605266), "xerces.jar from xalan-j_2_0_1 from xerces-1_3_0.bin");
- jarVersions.put(new Long(904030), "xerces.jar from xalan-j_2_1_0 from xerces-1_4.bin");
- jarVersions.put(new Long(904030), "xerces.jar from xerces-1_4_0.bin");
- jarVersions.put(new Long(1802885), "xerces.jar from xerces-1_4_2.bin");
- jarVersions.put(new Long(1734594), "xerces.jar from Xerces-J-bin.2.0.0.beta3");
- jarVersions.put(new Long(1808883), "xerces.jar from xalan-j_2_2_D10,D11,D12 or xerces-1_4_3.bin");
- jarVersions.put(new Long(1812019), "xerces.jar from xalan-j_2_2_0");
- jarVersions.put(new Long(1720292), "xercesImpl.jar from xalan-j_2_3_D1");
- jarVersions.put(new Long(1730053), "xercesImpl.jar from xalan-j_2_3_0 or xalan-j_2_3_1 from xerces-2_0_0");
- jarVersions.put(new Long(1728861), "xercesImpl.jar from xalan-j_2_4_D1 from xerces-2_0_1");
- jarVersions.put(new Long(972027), "xercesImpl.jar from xalan-j_2_4_0 from xerces-2_1");
- jarVersions.put(new Long(831587), "xercesImpl.jar from xalan-j_2_4_1 from xerces-2_2");
- jarVersions.put(new Long(891817), "xercesImpl.jar from xalan-j_2_5_D1 from xerces-2_3");
- jarVersions.put(new Long(895924), "xercesImpl.jar from xerces-2_4");
- jarVersions.put(new Long(1010806), "xercesImpl.jar from Xerces-J-bin.2.6.2");
- jarVersions.put(new Long(1203860), "xercesImpl.jar from Xerces-J-bin.2.7.1");
-
- jarVersions.put(new Long(37485), "xalanj1compat.jar from xalan-j_2_0_0");
- jarVersions.put(new Long(38100), "xalanj1compat.jar from xalan-j_2_0_1");
-
- jarVersions.put(new Long(18779), "xalanservlet.jar from xalan-j_2_0_0");
- jarVersions.put(new Long(21453), "xalanservlet.jar from xalan-j_2_0_1");
- jarVersions.put(new Long(24826), "xalanservlet.jar from xalan-j_2_3_1 or xalan-j_2_4_1");
- jarVersions.put(new Long(24831), "xalanservlet.jar from xalan-j_2_4_1");
- // Stop recording xalanservlet.jar sizes as of Xalan Java 2.5.0; now a .war file
-
- // For those who've downloaded JAXP from sun
- jarVersions.put(new Long(5618), "jaxp.jar from jaxp1.0.1");
- jarVersions.put(new Long(136133), "parser.jar from jaxp1.0.1");
- jarVersions.put(new Long(28404), "jaxp.jar from jaxp-1.1");
- jarVersions.put(new Long(187162), "crimson.jar from jaxp-1.1");
- jarVersions.put(new Long(801714), "xalan.jar from jaxp-1.1");
- jarVersions.put(new Long(196399), "crimson.jar from crimson-1.1.1");
- jarVersions.put(new Long(33323), "jaxp.jar from crimson-1.1.1 or jakarta-ant-1.4.1b1");
- jarVersions.put(new Long(152717), "crimson.jar from crimson-1.1.2beta2");
- jarVersions.put(new Long(88143), "xml-apis.jar from crimson-1.1.2beta2");
- jarVersions.put(new Long(206384), "crimson.jar from crimson-1.1.3 or jakarta-ant-1.4.1b1");
-
- // jakarta-ant: since many people use ant these days
- jarVersions.put(new Long(136198), "parser.jar from jakarta-ant-1.3 or 1.2");
- jarVersions.put(new Long(5537), "jaxp.jar from jakarta-ant-1.3 or 1.2");
- }
-
- /** Simple PrintWriter we send output to; defaults to System.out. */
- protected PrintWriter outWriter = new PrintWriter(System.out, true);
-
- /**
- * Bottleneck output: calls outWriter.println(s).
- * @param s String to print
- */
- protected void logMsg(String s)
- {
- outWriter.println(s);
- }
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/Hashtree2Node.java Mon Aug 03 15:48:33 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-/*
- * Copyright 2002-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id: Hashtree2Node.java,v 1.2.4.1 2005/09/15 08:15:45 suresh_emailid Exp $
- */
-
-package com.sun.org.apache.xml.internal.utils;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Simple static utility to convert Hashtable to a Node.
- *
- * Please maintain JDK 1.1.x compatibility; no Collections!
- *
- * @see com.sun.org.apache.xalan.internal.xslt.EnvironmentCheck
- * @see com.sun.org.apache.xalan.internal.lib.Extensions
- * @author shane_curcuru@us.ibm.com
- * @xsl.usage general
- */
-public abstract class Hashtree2Node
-{
-
- /**
- * Convert a Hashtable into a Node tree.
- *
- * <p>The hash may have either Hashtables as values (in which
- * case we recurse) or other values, in which case we print them
- * as <item> elements, with a 'key' attribute with the value
- * of the key, and the element contents as the value.</p>
- *
- * <p>If args are null we simply return without doing anything.
- * If we encounter an error, we will attempt to add an 'ERROR'
- * Element with exception info; if that doesn't work we simply
- * return without doing anything else byt printStackTrace().</p>
- *
- * @param hash to get info from (may have sub-hashtables)
- * @param name to use as parent element for appended node
- * futurework could have namespace and prefix as well
- * @param container Node to append our report to
- * @param factory Document providing createElement, etc. services
- */
- public static void appendHashToNode(Hashtable hash, String name,
- Node container, Document factory)
- {
- // Required arguments must not be null
- if ((null == container) || (null == factory) || (null == hash))
- {
- return;
- }
-
- // name we will provide a default value for
- String elemName = null;
- if ((null == name) || ("".equals(name)))
- elemName = "appendHashToNode";
- else
- elemName = name;
-
- try
- {
- Element hashNode = factory.createElement(elemName);
- container.appendChild(hashNode);
-
- Enumeration keys = hash.keys();
- Vector v = new Vector();
-
- while (keys.hasMoreElements())
- {
- Object key = keys.nextElement();
- String keyStr = key.toString();
- Object item = hash.get(key);
-
- if (item instanceof Hashtable)
- {
- // Ensure a pre-order traversal; add this hashes
- // items before recursing to child hashes
- // Save name and hash in two steps
- v.addElement(keyStr);
- v.addElement((Hashtable) item);
- }
- else
- {
- try
- {
- // Add item to node
- Element node = factory.createElement("item");
- node.setAttribute("key", keyStr);
- node.appendChild(factory.createTextNode((String)item));
- hashNode.appendChild(node);
- }
- catch (Exception e)
- {
- Element node = factory.createElement("item");
- node.setAttribute("key", keyStr);
- node.appendChild(factory.createTextNode("ERROR: Reading " + key + " threw: " + e.toString()));
- hashNode.appendChild(node);
- }
- }
- }
-
- // Now go back and do the saved hashes
- keys = v.elements();
- while (keys.hasMoreElements())
- {
- // Retrieve name and hash in two steps
- String n = (String) keys.nextElement();
- Hashtable h = (Hashtable) keys.nextElement();
-
- appendHashToNode(h, n, hashNode, factory);
- }
- }
- catch (Exception e2)
- {
- // Ooops, just bail (suggestions for a safe thing
- // to do in this case appreciated)
- e2.printStackTrace();
- }
- }
-}
--- a/jaxp/test/javax/xml/jaxp/internaltest/javax/xml/common/bug6979306/Bug6979306Test.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jaxp/test/javax/xml/jaxp/internaltest/javax/xml/common/bug6979306/Bug6979306Test.java Mon Aug 03 16:33:06 2015 -0700
@@ -25,21 +25,17 @@
* @test
* @modules java.xml/com.sun.org.apache.xerces.internal.impl
* java.xml/com.sun.org.apache.xalan.internal
- * java.xml/com.sun.org.apache.xalan.internal.xslt
* @bug 6979306
* @summary Test JAXP component version.
*/
import org.testng.annotations.Test;
-import com.sun.org.apache.xalan.internal.xslt.EnvironmentCheck;
-
public class Bug6979306Test {
@Test
public void test() {
String[] input = {};
- EnvironmentCheck.main(input);
com.sun.org.apache.xerces.internal.impl.Version.main(input);
com.sun.org.apache.xalan.internal.Version._main(input);
}
--- a/jaxws/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/jaxws/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -320,3 +320,4 @@
1d87054e2d2f405c114f0061b97cbf8214bddf0a jdk9-b72
285939df908721cdb2b18a119638114306b8dca7 jdk9-b73
6232472e51418757f7b2bf05332678ea78096e6b jdk9-b74
+086bcd5e4a531a350c84668c8dc019461588ee3d jdk9-b75
--- a/jdk/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -317,3 +317,4 @@
f376824d4940f45719d91838f3f6249f873440db jdk9-b72
1c8bca2ebba13948199de33a1b71e2d6f1c7a8a6 jdk9-b73
6dd82d2e4a104f4d204b2890f33ef11ec3e3f8d0 jdk9-b74
+4dd09cb5f7c2a2a23a9958ea7a602dd74d5709b2 jdk9-b75
--- a/jdk/make/data/charsetmapping/charsets Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/make/data/charsetmapping/charsets Mon Aug 03 16:33:06 2015 -0700
@@ -547,7 +547,7 @@
charset GB18030 GB18030
package sun.nio.cs.ext
- type source
+ type template
alias gb18030-2000
charset GB2312 EUC_CN
--- a/jdk/make/data/charsetmapping/stdcs-linux Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/make/data/charsetmapping/stdcs-linux Mon Aug 03 16:33:06 2015 -0700
@@ -9,9 +9,16 @@
EUC_JP
EUC_JP_LINUX
EUC_JP_Open
+EUC_TW
GBK
+GB18030
+ISO_8859_11
+ISO_8859_3
+ISO_8859_6
+ISO_8859_8
Johab
PCK
+TIS_620
JIS_X_0201
JIS_X_0208
JIS_X_0212
--- a/jdk/make/data/charsetmapping/stdcs-solaris Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/make/data/charsetmapping/stdcs-solaris Mon Aug 03 16:33:06 2015 -0700
@@ -11,12 +11,14 @@
EUC_JP_Open
EUC_TW
GBK
+GB18030
ISO_8859_11
ISO_8859_3
ISO_8859_6
ISO_8859_8
Johab
PCK
+TIS_620
JIS_X_0201
JIS_X_0208
JIS_X_0212
--- a/jdk/make/data/currency/CurrencyData.properties Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/make/data/currency/CurrencyData.properties Mon Aug 03 16:33:06 2015 -0700
@@ -31,7 +31,7 @@
# Version of the currency code information in this class.
# It is a serial number that accompanies with each amendment.
-dataVersion=159
+dataVersion=160
# List of all valid ISO 4217 currency codes.
# To ensure compatibility, do not remove codes.
@@ -109,7 +109,7 @@
AT=EUR
# AZERBAIJAN
AZ=AZN
-# BAHAMAS
+# BAHAMAS (THE)
BS=BSD
# BAHRAIN
BH=BHD
@@ -131,7 +131,7 @@
BQ=USD
# BHUTAN
BT=BTN
-# BOLIVIA
+# BOLIVIA (PLURINATIONAL STATE OF)
BO=BOB
# BOSNIA AND HERZEGOVINA
BA=BAM
@@ -141,7 +141,7 @@
BV=NOK
# BRAZIL
BR=BRL
-# BRITISH INDIAN OCEAN TERRITORY
+# BRITISH INDIAN OCEAN TERRITORY (THE)
IO=USD
# BRUNEI DARUSSALAM
BN=BND
@@ -159,9 +159,9 @@
CA=CAD
# CAPE VERDE
CV=CVE
-# CAYMAN ISLANDS
+# CAYMAN ISLANDS (THE)
KY=KYD
-# CENTRAL AFRICAN REPUBLIC
+# CENTRAL AFRICAN REPUBLIC (THE)
CF=XAF
# CHAD
TD=XAF
@@ -171,17 +171,17 @@
CN=CNY
# CHRISTMAS ISLAND
CX=AUD
-# COCOS (KEELING) ISLANDS
+# COCOS (KEELING) ISLANDS (THE)
CC=AUD
# COLOMBIA
CO=COP
-# COMOROS
+# COMOROS (THE)
KM=KMF
-# CONGO
+# CONGO (THE)
CG=XAF
-# CONGO, THE DEMOCRATIC REPUBLIC OF THE
+# CONGO (THE DEMOCRATIC REPUBLIC OF THE)
CD=CDF
-# COOK ISLANDS
+# COOK ISLANDS (THE)
CK=NZD
# COSTA RICA
CR=CRC
@@ -195,7 +195,7 @@
CW=ANG
# CYPRUS
CY=EUR
-# CZECH REPUBLIC
+# CZECH REPUBLIC (THE)
CZ=CZK
# DENMARK
DK=DKK
@@ -203,7 +203,7 @@
DJ=DJF
# DOMINICA
DM=XCD
-# DOMINICAN REPUBLIC
+# DOMINICAN REPUBLIC (THE)
DO=DOP
# ECUADOR
EC=USD
@@ -220,9 +220,9 @@
EE=EUR
# ETHIOPIA
ET=ETB
-# FALKLAND ISLANDS (MALVINAS)
+# FALKLAND ISLANDS (THE) [MALVINAS]
FK=FKP
-# FAROE ISLANDS
+# FAROE ISLANDS (THE)
FO=DKK
# FIJI
FJ=FJD
@@ -234,11 +234,11 @@
GF=EUR
# FRENCH POLYNESIA
PF=XPF
-# FRENCH SOUTHERN TERRITORIES
+# FRENCH SOUTHERN TERRITORIES (THE)
TF=EUR
# GABON
GA=XAF
-# GAMBIA
+# GAMBIA (THE)
GM=GMD
# GEORGIA
GE=GEL
@@ -272,7 +272,7 @@
HT=HTG
# HEARD ISLAND AND MCDONALD ISLANDS
HM=AUD
-# HOLY SEE (VATICAN CITY STATE)
+# HOLY SEE (THE)
VA=EUR
# HONDURAS
HN=HNL
@@ -286,7 +286,7 @@
IN=INR
# INDONESIA
ID=IDR
-# IRAN, ISLAMIC REPUBLIC OF
+# IRAN (ISLAMIC REPUBLIC OF)
IR=IRR
# IRAQ
IQ=IQD
@@ -312,15 +312,15 @@
KE=KES
# KIRIBATI
KI=AUD
-# KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF
+# KOREA (THE DEMOCRATIC PEOPLE'S REPUBLIC OF)
KP=KPW
-# KOREA, REPUBLIC OF
+# KOREA (THE REPUBLIC OF)
KR=KRW
# KUWAIT
KW=KWD
# KYRGYZSTAN
KG=KGS
-# LAO PEOPLE'S DEMOCRATIC REPUBLIC
+# LAO PEOPLE'S DEMOCRATIC REPUBLIC (THE)
LA=LAK
# LATVIA
LV=LVL;2013-12-31-22-00-00;EUR
@@ -340,7 +340,7 @@
LU=EUR
# MACAU
MO=MOP
-# MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF
+# MACEDONIA (THE FORMER YUGOSLAV REPUBLIC OF)
MK=MKD
# MADAGASCAR
MG=MGA
@@ -354,7 +354,7 @@
ML=XOF
# MALTA
MT=EUR
-# MARSHALL ISLANDS
+# MARSHALL ISLANDS (THE)
MH=USD
# MARTINIQUE
MQ=EUR
@@ -366,9 +366,9 @@
YT=EUR
# MEXICO
MX=MXN
-# MICRONESIA, FEDERATED STATES OF
+# MICRONESIA (FEDERATED STATES OF)
FM=USD
-# MOLDOVA, REPUBLIC OF
+# MOLDOVA (THE REPUBLIC OF)
MD=MDL
# MONACO
MC=EUR
@@ -390,7 +390,7 @@
NR=AUD
# NEPAL
NP=NPR
-# NETHERLANDS
+# NETHERLANDS (THE)
NL=EUR
# NETHERLANDS ANTILLES
AN=ANG
@@ -400,7 +400,7 @@
NZ=NZD
# NICARAGUA
NI=NIO
-# NIGER
+# NIGER (THE)
NE=XOF
# NIGERIA
NG=NGN
@@ -408,7 +408,7 @@
NU=NZD
# NORFOLK ISLAND
NF=AUD
-# NORTHERN MARIANA ISLANDS
+# NORTHERN MARIANA ISLANDS (THE)
MP=USD
# NORWAY
NO=NOK
@@ -428,7 +428,7 @@
PY=PYG
# PERU
PE=PEN
-# PHILIPPINES
+# PHILIPPINES (THE)
PH=PHP
# PITCAIRN
PN=NZD
@@ -444,7 +444,7 @@
RE=EUR
# ROMANIA
RO=RON
-# RUSSIAN FEDERATION
+# RUSSIAN FEDERATION (THE)
RU=RUB
# RWANDA
RW=RWF
@@ -500,7 +500,7 @@
ES=EUR
# SRI LANKA
LK=LKR
-# SUDAN
+# SUDAN (THE)
SD=SDG
# SURINAME
SR=SRD
@@ -516,7 +516,7 @@
CH=CHF
# SYRIAN ARAB REPUBLIC
SY=SYP
-# TAIWAN
+# TAIWAN (PROVINCE OF CHINA)
TW=TWD
# TAJIKISTAN
TJ=TJS
@@ -540,7 +540,7 @@
TR=TRY
# TURKMENISTAN
TM=TMT
-# TURKS AND CAICOS ISLANDS
+# TURKS AND CAICOS ISLANDS (THE)
TC=USD
# TUVALU
TV=AUD
@@ -548,13 +548,13 @@
UG=UGX
# UKRAINE
UA=UAH
-# UNITED ARAB EMIRATES
+# UNITED ARAB EMIRATES (THE)
AE=AED
-# UNITED KINGDOM
+# UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (THE)
GB=GBP
-# UNITED STATES
+# UNITED STATES OF AMERICA (THE)
US=USD
-# UNITED STATES MINOR OUTLYING ISLANDS
+# UNITED STATES MINOR OUTLYING ISLANDS (THE)
UM=USD
# URUGUAY
UY=UYU
@@ -562,7 +562,7 @@
UZ=UZS
# VANUATU
VU=VUV
-# VENEZUELA
+# VENEZUELA (BOLIVARIAN REPUBLIC OF)
VE=VEF
# VIET NAM
VN=VND
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/BlowfishCipher.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/BlowfishCipher.java Mon Aug 03 16:33:06 2015 -0700
@@ -82,7 +82,7 @@
/**
* Sets the padding mechanism of this cipher.
*
- * @param padding the padding mechanism
+ * @param paddingScheme the padding mechanism
*
* @exception NoSuchPaddingException if the requested padding mechanism
* does not exist
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/DESCipher.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/DESCipher.java Mon Aug 03 16:33:06 2015 -0700
@@ -77,7 +77,7 @@
/**
* Sets the padding mechanism of this cipher.
*
- * @param padding the padding mechanism
+ * @param paddingScheme the padding mechanism
*
* @exception NoSuchPaddingException if the requested padding mechanism
* does not exist
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/DESedeCipher.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/DESedeCipher.java Mon Aug 03 16:33:06 2015 -0700
@@ -74,7 +74,7 @@
/**
* Sets the padding mechanism of this cipher.
*
- * @param padding the padding mechanism
+ * @param paddingScheme the padding mechanism
*
* @exception NoSuchPaddingException if the requested padding mechanism
* does not exist
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Mon Aug 03 16:33:06 2015 -0700
@@ -32,7 +32,7 @@
/**
* This class implements the CMS DESede KeyWrap algorithm as defined
- * in <a href=http://www.w3.org/TR/xmlenc-core/#sec-Alg-SymmetricKeyWrap>
+ * in <a href=http://www.w3.org/TR/xmlenc-core/#sec-Alg-SymmetricKeyWrap></a>
* "XML Encryption Syntax and Processing" section 5.6.2
* "CMS Triple DES Key Wrap".
* Note: only <code>CBC</code> mode and <code>NoPadding</code> padding
@@ -159,9 +159,8 @@
/**
* Initializes this cipher with a key and a source of randomness.
*
- * <p>The cipher only supports the following two operation modes:<b>
- * Cipher.WRAP_MODE, and <b>
- * Cipher.UNWRAP_MODE.
+ * <p>The cipher only supports the following two operation modes:
+ * {@code Cipher.WRAP_MODE}, and {@code Cipher.UNWRAP_MODE}.
* <p>For modes other than the above two, UnsupportedOperationException
* will be thrown.
* <p>If this cipher requires an initialization vector (IV), it will get
@@ -192,9 +191,8 @@
* Initializes this cipher with a key, a set of algorithm parameters,
* and a source of randomness.
*
- * <p>The cipher only supports the following two operation modes:<b>
- * Cipher.WRAP_MODE, and <b>
- * Cipher.UNWRAP_MODE.
+ * <p>The cipher only supports the following two operation modes:
+ * {@code Cipher.WRAP_MODE}, and {@code Cipher.UNWRAP_MODE}.
* <p>For modes other than the above two, UnsupportedOperationException
* will be thrown.
* <p>If this cipher requires an initialization vector (IV), it will get
@@ -252,9 +250,8 @@
* Initializes this cipher with a key, a set of algorithm parameters,
* and a source of randomness.
*
- * <p>The cipher only supports the following two operation modes:<b>
- * Cipher.WRAP_MODE, and <b>
- * Cipher.UNWRAP_MODE.
+ * <p>The cipher only supports the following two operation modes:
+ * {@code Cipher.WRAP_MODE}, and {@code Cipher.UNWRAP_MODE}.
* <p>For modes other than the above two, UnsupportedOperationException
* will be thrown.
* <p>If this cipher requires an initialization vector (IV), it will get
@@ -360,15 +357,15 @@
* current Cipher.engineInit(...) implementation,
* IllegalStateException will always be thrown upon invocation.
*
- * @param in the input buffer.
- * @param inOffset the offset in <code>in</code> where the input
+ * @param input the input buffer.
+ * @param inputOffset the offset in {@code input} where the input
* starts.
- * @param inLen the input length.
- * @param out the buffer for the result.
- * @param outOffset the ofset in <code>out</code> where the result
+ * @param inputLen the input length.
+ * @param output the buffer for the result.
+ * @param outputOffset the ofset in {@code output} where the result
* is stored.
*
- * @return the number of bytes stored in <code>out</code>.
+ * @return the number of bytes stored in {@code out}.
*
* @exception IllegalStateException upon invocation of this method.
*/
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java Mon Aug 03 16:33:06 2015 -0700
@@ -100,7 +100,7 @@
* generator, and optionally the requested size in bits of the random
* exponent (private value).
*
- * @param params the parameter set used to generate the key pair
+ * @param algParams the parameter set used to generate the key pair
* @param random the source of randomness
*
* @exception InvalidAlgorithmParameterException if the given parameters
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Mon Aug 03 16:33:06 2015 -0700
@@ -92,7 +92,7 @@
* generation values, which specify the size of the prime modulus and
* the size of the random exponent, both in bits.
*
- * @param params the set of parameter generation values
+ * @param genParamSpec the set of parameter generation values
* @param random the source of randomness
*
* @exception InvalidAlgorithmParameterException if the given parameter
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java Mon Aug 03 16:33:06 2015 -0700
@@ -80,7 +80,7 @@
* Sets the padding mechanism of this cipher. This algorithm only uses
* PKCS #5 padding.
*
- * @param padding the padding mechanism
+ * @param paddingScheme the padding mechanism
*
* @exception NoSuchPaddingException if the requested padding mechanism
* is invalid
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java Mon Aug 03 16:33:06 2015 -0700
@@ -92,7 +92,7 @@
* Sets the padding mechanism of this cipher. This algorithm only uses
* PKCS #5 padding.
*
- * @param padding the padding mechanism
+ * @param paddingScheme the padding mechanism
*
* @exception NoSuchPaddingException if the requested padding mechanism
* is invalid
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Mon Aug 03 16:33:06 2015 -0700
@@ -75,7 +75,7 @@
*
* @param key the key
*
- * @param keySpec the requested format in which the key material shall be
+ * @param keySpecCl the requested format in which the key material shall be
* returned
*
* @return the underlying key specification (key material) in the
--- a/jdk/src/java.base/share/classes/java/lang/Object.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/lang/Object.java Mon Aug 03 16:33:06 2015 -0700
@@ -278,6 +278,7 @@
* @see java.lang.Object#notifyAll()
* @see java.lang.Object#wait()
*/
+ @HotSpotIntrinsicCandidate
public final native void notify();
/**
@@ -302,6 +303,7 @@
* @see java.lang.Object#notify()
* @see java.lang.Object#wait()
*/
+ @HotSpotIntrinsicCandidate
public final native void notifyAll();
/**
--- a/jdk/src/java.base/share/classes/java/net/InetAddress.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/net/InetAddress.java Mon Aug 03 16:33:06 2015 -0700
@@ -297,6 +297,13 @@
return null;
}
});
+ sun.misc.SharedSecrets.setJavaNetInetAddressAccess(
+ new sun.misc.JavaNetInetAddressAccess() {
+ public String getOriginalHostName(InetAddress ia) {
+ return ia.holder.getOriginalHostName();
+ }
+ }
+ );
init();
}
--- a/jdk/src/java.base/share/classes/java/net/URLClassLoader.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/net/URLClassLoader.java Mon Aug 03 16:33:06 2015 -0700
@@ -774,10 +774,6 @@
public URLClassPath getURLClassPath (URLClassLoader u) {
return u.ucp;
}
-
- public String getOriginalHostName(InetAddress ia) {
- return ia.holder.getOriginalHostName();
- }
}
);
ClassLoader.registerAsParallelCapable();
--- a/jdk/src/java.base/share/classes/java/security/KeyStoreSpi.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/security/KeyStoreSpi.java Mon Aug 03 16:33:06 2015 -0700
@@ -360,6 +360,22 @@
* that specifies how to load the keystore,
* which may be {@code null}
*
+ * @implSpec
+ * The default implementation examines {@code KeyStore.LoadStoreParameter}
+ * to extract its password and pass it to
+ * {@link KeyStoreSpi#engineLoad(InputStream, char[])} along with a
+ * {@code null} {@code InputStream}.
+ * <p>
+ * If {@code KeyStore.LoadStoreParameter} is {@code null} then
+ * the password parameter will also be {@code null}.
+ * Otherwise the {@code KeyStore.ProtectionParameter} of
+ * {@code KeyStore.LoadStoreParameter} must be either a
+ * {@code KeyStore.PasswordProtection} or a
+ * {@code KeyStore.CallbackHandlerProtection} that supports
+ * {@code PasswordCallback} so that the password parameter can be
+ * extracted. If the {@code KeyStore.ProtectionParameter} is neither
+ * of those classes then a {@code NoSuchAlgorithmException} is thrown.
+ *
* @exception IllegalArgumentException if the given
* {@code KeyStore.LoadStoreParameter}
* input is not recognized
@@ -385,37 +401,32 @@
return;
}
- if (param instanceof KeyStore.SimpleLoadStoreParameter) {
- ProtectionParameter protection = param.getProtectionParameter();
- char[] password;
- if (protection instanceof PasswordProtection) {
- password = ((PasswordProtection)protection).getPassword();
- } else if (protection instanceof CallbackHandlerProtection) {
- CallbackHandler handler =
- ((CallbackHandlerProtection)protection).getCallbackHandler();
- PasswordCallback callback =
- new PasswordCallback("Password: ", false);
- try {
- handler.handle(new Callback[] {callback});
- } catch (UnsupportedCallbackException e) {
- throw new NoSuchAlgorithmException
- ("Could not obtain password", e);
- }
- password = callback.getPassword();
- callback.clearPassword();
- if (password == null) {
- throw new NoSuchAlgorithmException
- ("No password provided");
- }
- } else {
- throw new NoSuchAlgorithmException("ProtectionParameter must"
- + " be PasswordProtection or CallbackHandlerProtection");
+ ProtectionParameter protection = param.getProtectionParameter();
+ char[] password;
+ if (protection instanceof PasswordProtection) {
+ password = ((PasswordProtection)protection).getPassword();
+ } else if (protection instanceof CallbackHandlerProtection) {
+ CallbackHandler handler =
+ ((CallbackHandlerProtection)protection).getCallbackHandler();
+ PasswordCallback callback =
+ new PasswordCallback("Password: ", false);
+ try {
+ handler.handle(new Callback[] {callback});
+ } catch (UnsupportedCallbackException e) {
+ throw new NoSuchAlgorithmException
+ ("Could not obtain password", e);
}
- engineLoad(null, password);
- return;
+ password = callback.getPassword();
+ callback.clearPassword();
+ if (password == null) {
+ throw new NoSuchAlgorithmException("No password provided");
+ }
+ } else {
+ throw new NoSuchAlgorithmException("ProtectionParameter must"
+ + " be PasswordProtection or CallbackHandlerProtection");
}
-
- throw new UnsupportedOperationException();
+ engineLoad(null, password);
+ return;
}
/**
--- a/jdk/src/java.base/share/classes/java/util/EnumMap.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/EnumMap.java Mon Aug 03 16:33:06 2015 -0700
@@ -681,8 +681,11 @@
}
private boolean equals(EnumMap<?,?> em) {
+ if (em.size != size)
+ return false;
+
if (em.keyType != keyType)
- return size == 0 && em.size == 0;
+ return size == 0;
// Key types match, compare each value
for (int i = 0; i < keyUniverse.length; i++) {
--- a/jdk/src/java.base/share/classes/java/util/PropertyResourceBundle.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/PropertyResourceBundle.java Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -40,8 +40,17 @@
package java.util;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.Reader;
import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.charset.MalformedInputException;
+import java.nio.charset.StandardCharsets;
+import java.nio.charset.UnmappableCharacterException;
+import java.security.AccessController;
+import java.util.Locale;
+import sun.security.action.GetPropertyAction;
+import sun.util.PropertyResourceBundleCharset;
import sun.util.ResourceBundleEnumeration;
/**
@@ -108,11 +117,20 @@
* <strong>Note:</strong> PropertyResourceBundle can be constructed either
* from an InputStream or a Reader, which represents a property file.
* Constructing a PropertyResourceBundle instance from an InputStream requires
- * that the input stream be encoded in ISO-8859-1. In that case, characters
- * that cannot be represented in ISO-8859-1 encoding must be represented by Unicode Escapes
- * as defined in section 3.3 of
- * <cite>The Java™ Language Specification</cite>
+ * that the input stream be encoded in UTF-8. By default, if a
+ * {@link java.nio.charset.MalformedInputException} or an
+ * {@link java.nio.charset.UnmappableCharacterException} occurs on reading the
+ * input stream, then the PropertyResourceBundle instance resets to the state
+ * before the exception, re-reads the input stream in {@code ISO-8859-1}, and
+ * continues reading. If the system property
+ * {@code java.util.PropertyResourceBundle.encoding} is set to either
+ * "ISO-8859-1" or "UTF-8", the input stream is solely read in that encoding,
+ * and throws the exception if it encounters an invalid sequence.
+ * If "ISO-8859-1" is specified, characters that cannot be represented in
+ * ISO-8859-1 encoding must be represented by Unicode Escapes as defined in section
+ * 3.3 of <cite>The Java™ Language Specification</cite>
* whereas the other constructor which takes a Reader does not have that limitation.
+ * Other encoding values are ignored for this system property.
*
* @see ResourceBundle
* @see ListResourceBundle
@@ -120,10 +138,26 @@
* @since 1.1
*/
public class PropertyResourceBundle extends ResourceBundle {
+
+ // Check whether the strict encoding is specified.
+ // The possible encoding is either "ISO-8859-1" or "UTF-8".
+ private static final String encoding =
+ AccessController.doPrivileged(
+ new GetPropertyAction("java.util.PropertyResourceBundle.encoding", ""))
+ .toUpperCase(Locale.ROOT);
+
/**
* Creates a property resource bundle from an {@link java.io.InputStream
- * InputStream}. The property file read with this constructor
- * must be encoded in ISO-8859-1.
+ * InputStream}. This constructor reads the property file in UTF-8 by default.
+ * If a {@link java.nio.charset.MalformedInputException} or an
+ * {@link java.nio.charset.UnmappableCharacterException} occurs on reading the
+ * input stream, then the PropertyResourceBundle instance resets to the state
+ * before the exception, re-reads the input stream in {@code ISO-8859-1} and
+ * continues reading. If the system property
+ * {@code java.util.PropertyResourceBundle.encoding} is set to either
+ * "ISO-8859-1" or "UTF-8", the input stream is solely read in that encoding,
+ * and throws the exception if it encounters an invalid sequence. Other
+ * encoding values are ignored for this system property.
*
* @param stream an InputStream that represents a property file
* to read from.
@@ -131,12 +165,19 @@
* @throws NullPointerException if <code>stream</code> is null
* @throws IllegalArgumentException if {@code stream} contains a
* malformed Unicode escape sequence.
+ * @throws MalformedInputException if the system property
+ * {@code java.util.PropertyResourceBundle.encoding} is set to "UTF-8"
+ * and {@code stream} contains an invalid UTF-8 byte sequence.
+ * @throws UnmappableCharacterException if the system property
+ * {@code java.util.PropertyResourceBundle.encoding} is set to "UTF-8"
+ * and {@code stream} contains an unmappable UTF-8 byte sequence.
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public PropertyResourceBundle (InputStream stream) throws IOException {
- Properties properties = new Properties();
- properties.load(stream);
- lookup = new HashMap(properties);
+ this(new InputStreamReader(stream,
+ "ISO-8859-1".equals(encoding) ?
+ StandardCharsets.ISO_8859_1.newDecoder() :
+ new PropertyResourceBundleCharset("UTF-8".equals(encoding)).newDecoder()));
}
/**
--- a/jdk/src/java.base/share/classes/java/util/regex/Matcher.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/regex/Matcher.java Mon Aug 03 16:33:06 2015 -0700
@@ -63,7 +63,7 @@
*
* <p> A matcher finds matches in a subset of its input called the
* <i>region</i>. By default, the region contains all of the matcher's input.
- * The region can be modified via the{@link #region region} method and queried
+ * The region can be modified via the {@link #region region} method and queried
* via the {@link #regionStart regionStart} and {@link #regionEnd regionEnd}
* methods. The way that the region boundaries interact with some pattern
* constructs can be changed. See {@link #useAnchoringBounds
@@ -1639,15 +1639,15 @@
*/
public String toString() {
StringBuilder sb = new StringBuilder();
- sb.append("java.util.regex.Matcher");
- sb.append("[pattern=" + pattern());
- sb.append(" region=");
- sb.append(regionStart() + "," + regionEnd());
- sb.append(" lastmatch=");
+ sb.append("java.util.regex.Matcher")
+ .append("[pattern=").append(pattern())
+ .append(" region=")
+ .append(regionStart()).append(',').append(regionEnd())
+ .append(" lastmatch=");
if ((first >= 0) && (group() != null)) {
sb.append(group());
}
- sb.append("]");
+ sb.append(']');
return sb.toString();
}
--- a/jdk/src/java.base/share/classes/java/util/regex/Pattern.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/regex/Pattern.java Mon Aug 03 16:33:06 2015 -0700
@@ -565,7 +565,7 @@
* <p>
* <b><a name="usc">Scripts</a></b> are specified either with the prefix {@code Is}, as in
* {@code IsHiragana}, or by using the {@code script} keyword (or its short
- * form {@code sc})as in {@code script=Hiragana} or {@code sc=Hiragana}.
+ * form {@code sc}) as in {@code script=Hiragana} or {@code sc=Hiragana}.
* <p>
* The script names supported by <code>Pattern</code> are the valid script names
* accepted and defined by
@@ -1299,18 +1299,22 @@
if (slashEIndex == -1)
return "\\Q" + s + "\\E";
- StringBuilder sb = new StringBuilder(s.length() * 2);
+ int lenHint = s.length();
+ lenHint = (lenHint < Integer.MAX_VALUE - 8 - lenHint) ?
+ (lenHint << 1) : (Integer.MAX_VALUE - 8);
+
+ StringBuilder sb = new StringBuilder(lenHint);
sb.append("\\Q");
- slashEIndex = 0;
int current = 0;
- while ((slashEIndex = s.indexOf("\\E", current)) != -1) {
- sb.append(s.substring(current, slashEIndex));
+ do {
+ sb.append(s, current, slashEIndex)
+ .append("\\E\\\\E\\Q");
current = slashEIndex + 2;
- sb.append("\\E\\\\E\\Q");
- }
- sb.append(s.substring(current, s.length()));
- sb.append("\\E");
- return sb.toString();
+ } while ((slashEIndex = s.indexOf("\\E", current)) != -1);
+
+ return sb.append(s, current, s.length())
+ .append("\\E")
+ .toString();
}
/**
@@ -1367,14 +1371,16 @@
}
/**
- * The pattern is converted to normalizedD form and then a pure group
- * is constructed to match canonical equivalences of the characters.
+ * The pattern is converted to normalized form ({@linkplain
+ * java.text.Normalizer.Form.NFD NFD}, canonical decomposition)
+ * and then a pure group is constructed to match canonical
+ * equivalences of the characters.
*/
private void normalize() {
boolean inCharClass = false;
int lastCodePoint = -1;
- // Convert pattern into normalizedD form
+ // Convert pattern into normalized form
normalizedPattern = Normalizer.normalize(pattern, Normalizer.Form.NFD);
patternLength = normalizedPattern.length();
--- a/jdk/src/java.base/share/classes/java/util/stream/Collector.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/stream/Collector.java Mon Aug 03 16:33:06 2015 -0700
@@ -223,7 +223,7 @@
* Perform the final transformation from the intermediate accumulation type
* {@code A} to the final result type {@code R}.
*
- * <p>If the characteristic {@code IDENTITY_TRANSFORM} is
+ * <p>If the characteristic {@code IDENTITY_FINISH} is
* set, this function may be presumed to be an identity transform with an
* unchecked cast from {@code A} to {@code R}.
*
--- a/jdk/src/java.base/share/classes/java/util/stream/DoubleStream.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/stream/DoubleStream.java Mon Aug 03 16:33:06 2015 -0700
@@ -293,7 +293,7 @@
*
* <p>Independent of whether this stream is ordered or unordered if all
* elements of this stream match the given predicate then this operation
- * takes all elements (the result is the same is the input), or if no
+ * takes all elements (the result is the same as the input), or if no
* elements of the stream match the given predicate then no elements are
* taken (the result is an empty stream).
*
@@ -329,6 +329,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default DoubleStream takeWhile(DoublePredicate predicate) {
Objects.requireNonNull(predicate);
@@ -361,7 +362,7 @@
* elements of this stream match the given predicate then this operation
* drops all elements (the result is an empty stream), or if no elements of
* the stream match the given predicate then no elements are dropped (the
- * result is the same is the input).
+ * result is the same as the input).
*
* <p>This is a <a href="package-summary.html#StreamOps">stateful
* intermediate operation</a>.
@@ -395,6 +396,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default DoubleStream dropWhile(DoublePredicate predicate) {
Objects.requireNonNull(predicate);
--- a/jdk/src/java.base/share/classes/java/util/stream/IntStream.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/stream/IntStream.java Mon Aug 03 16:33:06 2015 -0700
@@ -291,7 +291,7 @@
*
* <p>Independent of whether this stream is ordered or unordered if all
* elements of this stream match the given predicate then this operation
- * takes all elements (the result is the same is the input), or if no
+ * takes all elements (the result is the same as the input), or if no
* elements of the stream match the given predicate then no elements are
* taken (the result is an empty stream).
*
@@ -326,6 +326,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default IntStream takeWhile(IntPredicate predicate) {
Objects.requireNonNull(predicate);
@@ -358,7 +359,7 @@
* elements of this stream match the given predicate then this operation
* drops all elements (the result is an empty stream), or if no elements of
* the stream match the given predicate then no elements are dropped (the
- * result is the same is the input).
+ * result is the same as the input).
*
* <p>This is a <a href="package-summary.html#StreamOps">stateful
* intermediate operation</a>.
@@ -391,6 +392,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default IntStream dropWhile(IntPredicate predicate) {
Objects.requireNonNull(predicate);
--- a/jdk/src/java.base/share/classes/java/util/stream/LongStream.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/stream/LongStream.java Mon Aug 03 16:33:06 2015 -0700
@@ -291,7 +291,7 @@
*
* <p>Independent of whether this stream is ordered or unordered if all
* elements of this stream match the given predicate then this operation
- * takes all elements (the result is the same is the input), or if no
+ * takes all elements (the result is the same as the input), or if no
* elements of the stream match the given predicate then no elements are
* taken (the result is an empty stream).
*
@@ -327,6 +327,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default LongStream takeWhile(LongPredicate predicate) {
Objects.requireNonNull(predicate);
@@ -359,7 +360,7 @@
* elements of this stream match the given predicate then this operation
* drops all elements (the result is an empty stream), or if no elements of
* the stream match the given predicate then no elements are dropped (the
- * result is the same is the input).
+ * result is the same as the input).
*
* <p>This is a <a href="package-summary.html#StreamOps">stateful
* intermediate operation</a>.
@@ -393,6 +394,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default LongStream dropWhile(LongPredicate predicate) {
Objects.requireNonNull(predicate);
--- a/jdk/src/java.base/share/classes/java/util/stream/SliceOps.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/stream/SliceOps.java Mon Aug 03 16:33:06 2015 -0700
@@ -138,7 +138,7 @@
skip, limit, size);
}
else {
- // @@@ OOMEs will occur for LongStream.longs().filter(i -> true).limit(n)
+ // @@@ OOMEs will occur for LongStream.range(0, Long.MAX_VALUE).filter(i -> true).limit(n)
// regardless of the value of n
// Need to adjust the target size of splitting for the
// SliceTask from say (size / k) to say min(size / k, 1 << 14)
--- a/jdk/src/java.base/share/classes/java/util/stream/Stream.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/stream/Stream.java Mon Aug 03 16:33:06 2015 -0700
@@ -498,7 +498,7 @@
*
* <p>Independent of whether this stream is ordered or unordered if all
* elements of this stream match the given predicate then this operation
- * takes all elements (the result is the same is the input), or if no
+ * takes all elements (the result is the same as the input), or if no
* elements of the stream match the given predicate then no elements are
* taken (the result is an empty stream).
*
@@ -533,6 +533,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default Stream<T> takeWhile(Predicate<? super T> predicate) {
Objects.requireNonNull(predicate);
@@ -565,7 +566,7 @@
* elements of this stream match the given predicate then this operation
* drops all elements (the result is an empty stream), or if no elements of
* the stream match the given predicate then no elements are dropped (the
- * result is the same is the input).
+ * result is the same as the input).
*
* <p>This is a <a href="package-summary.html#StreamOps">stateful
* intermediate operation</a>.
@@ -598,6 +599,7 @@
* predicate to apply to elements to determine the longest
* prefix of elements.
* @return the new stream
+ * @since 1.9
*/
default Stream<T> dropWhile(Predicate<? super T> predicate) {
Objects.requireNonNull(predicate);
--- a/jdk/src/java.base/share/classes/java/util/stream/Streams.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/java/util/stream/Streams.java Mon Aug 03 16:33:06 2015 -0700
@@ -156,10 +156,9 @@
* than a balanced tree at the expense of a higher-depth for the right
* side of the range.
*
- * <p>This is optimized for cases such as IntStream.ints() that is
- * implemented as range of 0 to Integer.MAX_VALUE but is likely to be
- * augmented with a limit operation that limits the number of elements
- * to a count lower than this threshold.
+ * <p>This is optimized for cases such as IntStream.range(0, Integer.MAX_VALUE)
+ * that is likely to be augmented with a limit operation that limits the
+ * number of elements to a count lower than this threshold.
*/
private static final int BALANCED_SPLIT_THRESHOLD = 1 << 24;
@@ -280,10 +279,9 @@
* than a balanced tree at the expense of a higher-depth for the right
* side of the range.
*
- * <p>This is optimized for cases such as LongStream.longs() that is
- * implemented as range of 0 to Long.MAX_VALUE but is likely to be
- * augmented with a limit operation that limits the number of elements
- * to a count lower than this threshold.
+ * <p>This is optimized for cases such as LongStream.range(0, Long.MAX_VALUE)
+ * that is likely to be augmented with a limit operation that limits the
+ * number of elements to a count lower than this threshold.
*/
private static final long BALANCED_SPLIT_THRESHOLD = 1 << 24;
--- a/jdk/src/java.base/share/classes/jdk/internal/jimage/ExternalFilesWriter.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/jdk/internal/jimage/ExternalFilesWriter.java Mon Aug 03 16:33:06 2015 -0700
@@ -58,7 +58,7 @@
case NATIVE_CMD:
Path path = destFile("bin", filename);
writeEntry(in, path);
- path.toFile().setExecutable(true);
+ path.toFile().setExecutable(true, false);
break;
case CONFIG:
writeEntry(in, destFile("conf", filename));
--- a/jdk/src/java.base/share/classes/sun/misc/JavaNetAccess.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/sun/misc/JavaNetAccess.java Mon Aug 03 16:33:06 2015 -0700
@@ -26,17 +26,10 @@
package sun.misc;
import java.net.URLClassLoader;
-import java.net.InetAddress;
public interface JavaNetAccess {
/**
* return the URLClassPath belonging to the given loader
*/
URLClassPath getURLClassPath (URLClassLoader u);
-
- /**
- * Return the original application specified hostname of
- * the given InetAddress object.
- */
- String getOriginalHostName(InetAddress ia);
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/sun/misc/JavaNetInetAddressAccess.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.misc;
+
+import java.net.InetAddress;
+
+public interface JavaNetInetAddressAccess {
+ /**
+ * Return the original application specified hostname of
+ * the given InetAddress object.
+ */
+ String getOriginalHostName(InetAddress ia);
+}
--- a/jdk/src/java.base/share/classes/sun/misc/SharedSecrets.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/sun/misc/SharedSecrets.java Mon Aug 03 16:33:06 2015 -0700
@@ -48,6 +48,7 @@
private static JavaLangRefAccess javaLangRefAccess;
private static JavaIOAccess javaIOAccess;
private static JavaNetAccess javaNetAccess;
+ private static JavaNetInetAddressAccess javaNetInetAddressAccess;
private static JavaNetHttpCookieAccess javaNetHttpCookieAccess;
private static JavaNioAccess javaNioAccess;
private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess;
@@ -92,9 +93,19 @@
}
public static JavaNetAccess getJavaNetAccess() {
+ if (javaNetAccess == null)
+ unsafe.ensureClassInitialized(java.net.URLClassLoader.class);
return javaNetAccess;
}
+ public static void setJavaNetInetAddressAccess(JavaNetInetAddressAccess jna) {
+ javaNetInetAddressAccess = jna;
+ }
+
+ public static JavaNetInetAddressAccess getJavaNetInetAddressAccess() {
+ return javaNetInetAddressAccess;
+ }
+
public static void setJavaNetHttpCookieAccess(JavaNetHttpCookieAccess a) {
javaNetHttpCookieAccess = a;
}
--- a/jdk/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java Mon Aug 03 16:33:06 2015 -0700
@@ -42,7 +42,7 @@
import javax.net.ssl.*;
import sun.misc.ManagedLocalsThread;
-import sun.misc.JavaNetAccess;
+import sun.misc.JavaNetInetAddressAccess;
import sun.misc.SharedSecrets;
/**
@@ -2096,7 +2096,7 @@
/*
* Get the original hostname via sun.misc.SharedSecrets.
*/
- JavaNetAccess jna = SharedSecrets.getJavaNetAccess();
+ JavaNetInetAddressAccess jna = SharedSecrets.getJavaNetInetAddressAccess();
String originalHostname = jna.getOriginalHostName(inetAddress);
/*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/sun/util/PropertyResourceBundleCharset.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.util;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.CodingErrorAction;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * A Charset implementation for reading PropertyResourceBundle, in order
+ * for loading properties files. This first tries to load the properties
+ * file with UTF-8 encoding). If it fails, then load the file with ISO-8859-1
+ */
+public class PropertyResourceBundleCharset extends Charset {
+
+ private boolean strictUTF8 = false;
+
+ public PropertyResourceBundleCharset(boolean strictUTF8) {
+ this(PropertyResourceBundleCharset.class.getCanonicalName(), null);
+ this.strictUTF8 = strictUTF8;
+ }
+
+ public PropertyResourceBundleCharset(String canonicalName, String[] aliases) {
+ super(canonicalName, aliases);
+ }
+
+ @Override
+ public boolean contains(Charset cs) {
+ return false;
+ }
+
+ @Override
+ public CharsetDecoder newDecoder() {
+ return new PropertiesFileDecoder(this, 1.0f, 1.0f);
+ }
+
+ @Override
+ public CharsetEncoder newEncoder() {
+ throw new UnsupportedOperationException("Encoding is not supported");
+ }
+
+ private final class PropertiesFileDecoder extends CharsetDecoder {
+
+ private CharsetDecoder cdUTF_8 = StandardCharsets.UTF_8.newDecoder()
+ .onMalformedInput(CodingErrorAction.REPORT)
+ .onUnmappableCharacter(CodingErrorAction.REPORT);
+ private CharsetDecoder cdISO_8859_1 = null;
+
+ protected PropertiesFileDecoder(Charset cs,
+ float averageCharsPerByte, float maxCharsPerByte) {
+ super(cs, averageCharsPerByte, maxCharsPerByte);
+ }
+
+ protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
+ if (Objects.nonNull(cdISO_8859_1)) {
+ return cdISO_8859_1.decode(in, out, false);
+ }
+ in.mark();
+ out.mark();
+
+ CoderResult cr = cdUTF_8.decode(in, out, false);
+ if (cr.isUnderflow() || cr.isOverflow() ||
+ PropertyResourceBundleCharset.this.strictUTF8) {
+ return cr;
+ }
+
+ in.reset();
+ out.reset();
+
+ PlatformLogger.getLogger(getClass().getCanonicalName()).info(
+ "Invalid or unmappable UTF-8 sequence detected. " +
+ "Switching encoding from UTF-8 to ISO-8859-1");
+ cdISO_8859_1 = StandardCharsets.ISO_8859_1.newDecoder();
+ return cdISO_8859_1.decode(in, out, false);
+ }
+ }
+}
--- a/jdk/src/java.base/share/classes/sun/util/resources/CurrencyNames.properties Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/share/classes/sun/util/resources/CurrencyNames.properties Mon Aug 03 16:33:06 2015 -0700
@@ -60,9 +60,6 @@
# or other dealings in these Data Files or Software without prior
# written authorization of the copyright holder.
-#
-# Generated automatically from the Common Locale Data Repository. DO NOT EDIT!
-#
ADP=ADP
AED=AED
AFA=AFA
@@ -358,7 +355,7 @@
gyd=Guyanaese Dollar
hkd=Hong Kong Dollar
hnl=Honduran Lempira
-hrk=Croatian Kuna
+hrk=Kuna
htg=Haitian Gourde
huf=Hungarian Forint
idr=Indonesian Rupiah
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileStore.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileStore.java Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -186,7 +186,8 @@
return false;
UnixFileStore other = (UnixFileStore)ob;
return (this.dev == other.dev) &&
- Arrays.equals(this.entry.dir(), other.entry.dir());
+ Arrays.equals(this.entry.dir(), other.entry.dir()) &&
+ this.entry.name().equals(other.entry.name());
}
@Override
--- a/jdk/src/java.base/unix/native/libnio/ch/Net.c Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.base/unix/native/libnio/ch/Net.c Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
#include <string.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
+#include <limits.h>
#include "jni.h"
#include "jni_util.h"
@@ -186,7 +187,7 @@
#endif
}
-JNIEXPORT int JNICALL
+JNIEXPORT jint JNICALL
Java_sun_nio_ch_Net_socket0(JNIEnv *env, jclass cl, jboolean preferIPv6,
jboolean stream, jboolean reuse, jboolean ignored)
{
@@ -709,7 +710,12 @@
int rv;
pfd.fd = fdval(env, fdo);
pfd.events = events;
- rv = poll(&pfd, 1, timeout);
+ if (timeout < -1) {
+ timeout = -1;
+ } else if (timeout > INT_MAX) {
+ timeout = INT_MAX;
+ }
+ rv = poll(&pfd, 1, (int)timeout);
if (rv >= 0) {
return pfd.revents;
--- a/jdk/src/java.desktop/share/classes/sun/java2d/SunGraphicsEnvironment.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.desktop/share/classes/sun/java2d/SunGraphicsEnvironment.java Mon Aug 03 16:33:06 2015 -0700
@@ -84,6 +84,8 @@
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction<Object>() {
public Object run() {
+ String osName = System.getProperty("os.name");
+ if ("SunOS".equals(osName)) {
String version = System.getProperty("os.version", "0.0");
try {
float ver = Float.parseFloat(version);
@@ -117,7 +119,7 @@
}
} catch (Exception e) {
}
-
+ }
/* Establish the default font to be used by SG2D etc */
defaultFont = new Font(Font.DIALOG, Font.PLAIN, 12);
--- a/jdk/src/java.prefs/macosx/classes/java/util/prefs/MacOSXPreferences.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.prefs/macosx/classes/java/util/prefs/MacOSXPreferences.java Mon Aug 03 16:33:06 2015 -0700
@@ -37,9 +37,6 @@
// true if this node is a child of userRoot or is userRoot
private final boolean isUser;
- // true if this node is userRoot or systemRoot
- private final boolean isRoot;
-
// CF's storage location for this node and its keys
private final MacOSXPreferencesFile file;
@@ -94,7 +91,6 @@
boolean isNew, boolean isRoot, boolean isUser)
{
super(parent, name);
- this.isRoot = isRoot;
if (isRoot)
this.isUser = isUser;
else
@@ -115,7 +111,6 @@
// /one/two/three/four/five/
// The fourth slash is the end of the first three components.
// If there is no fourth slash, the name has fewer than 3 components
- int componentCount = 0;
int pos = -1;
for (int i = 0; i < 4; i++) {
pos = name.indexOf('/', pos+1);
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/GSSCredentialImpl.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/GSSCredentialImpl.java Mon Aug 03 16:33:06 2015 -0700
@@ -547,8 +547,8 @@
/**
* Returns the specified mechanism's credential-element.
*
- * @param mechOid - the oid for mechanism to retrieve
- * @param throwExcep - boolean indicating if the function is
+ * @param mechOid the oid for mechanism to retrieve
+ * @param initiate boolean indicating if the function is
* to throw exception or return null when element is not
* found.
* @return mechanism credential object
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/GSSToken.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/GSSToken.java Mon Aug 03 16:33:06 2015 -0700
@@ -84,7 +84,7 @@
*
* @param data the array containing the bytes of the integer value
* @param pos the offset in the array
- * @size the number of bytes to read from the array.
+ * @param size the number of bytes to read from the array.
* @return the integer value
*/
public static final int readLittleEndian(byte[] data, int pos, int size) {
@@ -141,7 +141,7 @@
* Reads a two byte integer value from an InputStream.
*
* @param is the InputStream to read from
- * @returns the integer value
+ * @return the integer value
* @throws IOException if some errors occurs while reading the integer
* bytes.
*/
@@ -155,7 +155,7 @@
*
* @param src the byte arra to read from
* @param pos the offset to start reading from
- * @returns the integer value
+ * @return the integer value
*/
public static final int readInt(byte[] src, int pos) {
return ((0xFF & src[pos])<<8 | (0xFF & src[pos+1]));
@@ -167,8 +167,8 @@
*
* @param is the InputStream to read from
* @param buffer the buffer to store the bytes into
- * @param throws EOFException if EOF is reached before all bytes are
- * read.
+ * @throws EOFException if EOF is reached before all bytes are
+ * read.
* @throws IOException is an error occurs while reading
*/
public static final void readFully(InputStream is, byte[] buffer)
@@ -184,8 +184,8 @@
* @param buffer the buffer to store the bytes into
* @param offset the offset to start storing at
* @param len the number of bytes to read
- * @param throws EOFException if EOF is reached before all bytes are
- * read.
+ * @throws EOFException if EOF is reached before all bytes are
+ * read.
* @throws IOException is an error occurs while reading
*/
public static final void readFully(InputStream is,
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/LoginConfigImpl.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/LoginConfigImpl.java Mon Aug 03 16:33:06 2015 -0700
@@ -48,7 +48,7 @@
* A new instance of LoginConfigImpl must be created for each login request
* since it's only used by a single (caller, mech) pair
* @param caller defined in GSSUtil as CALLER_XXX final fields
- * @param oid defined in GSSUtil as XXX_MECH_OID final fields
+ * @param mech defined in GSSUtil as XXX_MECH_OID final fields
*/
public LoginConfigImpl(GSSCaller caller, Oid mech) {
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/ProviderList.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/ProviderList.java Mon Aug 03 16:33:06 2015 -0700
@@ -46,7 +46,7 @@
* queries this class whenever it needs a mechanism's factory.<p>
*
* This class stores an ordered list of pairs of the form
- * <provider, oid>. When it attempts to instantiate a mechanism
+ * {@code <provider, oid>}. When it attempts to instantiate a mechanism
* defined by oid o, it steps through the list looking for an entry
* with oid=o, or with oid=null. (An entry with oid=null matches all
* mechanisms.) When it finds such an entry, the corresponding
@@ -74,12 +74,12 @@
* the system ones don't suffice.<p>
*
* If a mechanism's factory is being obtained from a provider as a
- * result of encountering a entryof the form <provider, oid> where
+ * result of encountering a entryof the form {@code <provider, oid>} where
* oid is non-null, then the assumption is that the application added
* this entry and it wants this mechanism to be obtained from this
* provider. Thus is the provider does not actually contain the
* requested mechanism, an exception will be thrown. However, if the
- * entry were of the form <provider, null>, then it is viewed more
+ * entry were of the form {@code <provider, null>}, then it is viewed more
* liberally and is simply skipped over if the provider does not claim to
* support the requested mechanism.
*/
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5NameElement.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5NameElement.java Mon Aug 03 16:33:06 2015 -0700
@@ -198,8 +198,8 @@
* If either name denotes an anonymous principal, the call should
* return false.
*
- * @param name to be compared with
- * @returns true if they both refer to the same entity, else false
+ * @param other to be compared with
+ * @return true if they both refer to the same entity, else false
* @exception GSSException with major codes of BAD_NAMETYPE,
* BAD_NAME, FAILURE
*/
@@ -224,7 +224,7 @@
* situation where an error occurs.
*
* @param another the object to be compared to
- * @returns true if they both refer to the same entity, else false
+ * @return true if they both refer to the same entity, else false
* @see #equals(GSSNameSpi)
*/
public boolean equals(Object another) {
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSContextSpi.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSContextSpi.java Mon Aug 03 16:33:06 2015 -0700
@@ -51,14 +51,14 @@
* and the context flags before the context is fully established. The
* isProtReady method is used to indicate that these services are
* available.
- *<p>
+ * <p>
* <strong>
* Context establishment tokens are defined in a mechanism independent
* format in section 3.1 of RFC 2743. The GSS-Framework will add
* and remove the mechanism independent header portion of this token format
* depending on whether a token is received or is being sent. The mechanism
- * should only generate or expect to read the inner-context token portion..
- * <p>
+ * should only generate or expect to read the inner-context token portion.
+ * <br>
* On the other hands, tokens used for per-message calls are generated
* entirely by the mechanism. It is possible that the mechanism chooses to
* encase inner-level per-message tokens in a header similar to that used
@@ -239,7 +239,7 @@
* asked to provide.
* @param confReq a flag indicating whether confidentiality will be
* requested or not
- * @param outputSize the maximum size of the output token
+ * @param maxTokSize the maximum size of the output token
* @return the maximum size for the input message that can be
* provided to the wrap() method in order to guarantee that these
* requirements are met.
@@ -254,7 +254,7 @@
* @param is the user-provided message to be protected
* @param os the token to be sent to the peer. It includes
* the message from <i>is</i> with the requested protection.
- * @param msgPro on input it contains the requested qop and
+ * @param msgProp on input it contains the requested qop and
* confidentiality state, on output, the applied values
* @exception GSSException may be thrown
* @see unwrap
@@ -365,7 +365,7 @@
*
* @param is token generated by getMIC
* @param msgStr the message to check integrity for
- * @param msgProp will contain the applied QOP and confidentiality
+ * @param mProp will contain the applied QOP and confidentiality
* states of the token as well as any informatory status codes
* @exception GSSException may be thrown
*/
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSNameSpi.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/spi/GSSNameSpi.java Mon Aug 03 16:33:06 2015 -0700
@@ -46,7 +46,7 @@
* return false.
*
* @param name to be compared with
- * @returns true if they both refer to the same entity, else false
+ * @return true if they both refer to the same entity, else false
* @exception GSSException with major codes of BAD_NAMETYPE,
* BAD_NAME, FAILURE
*/
@@ -60,7 +60,7 @@
* situation where an error occurs.
*
* @param another the object to be compared to
- * @returns true if they both refer to the same entity, else false
+ * @return true if they both refer to the same entity, else false
* @see #equals(GSSNameSpi)
*/
public boolean equals(Object another);
--- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/spi/MechanismFactory.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/spi/MechanismFactory.java Mon Aug 03 16:33:06 2015 -0700
@@ -147,7 +147,7 @@
* <p>
* An exported name will generally be passed in using this method.
*
- * @param nameBytes the bytes describing this entity to the mechanism
+ * @param name the bytes describing this entity to the mechanism
* @param nameType an Oid serving as a clue as to how the mechanism should
* interpret the nameStr
* @throws GSSException if any of the errors described in RFC 2743 for
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Checksum.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Checksum.java Mon Aug 03 16:33:06 2015 -0700
@@ -128,8 +128,8 @@
/**
* Constructs a new Checksum using the raw data and type.
- * @data the byte array of checksum.
- * @new_cksumType the type of checksum.
+ * @param data the byte array of checksum.
+ * @param new_cksumType the type of checksum.
*
*/
// used in InitialToken
@@ -141,8 +141,8 @@
/**
* Constructs a new Checksum by calculating the checksum over the data
* using specified checksum type.
- * @new_cksumType the type of checksum.
- * @data the data that needs to be performed a checksum calculation on.
+ * @param new_cksumType the type of checksum.
+ * @param data the data that needs to be performed a checksum calculation on.
*/
public Checksum(int new_cksumType, byte[] data)
throws KdcErrException, KrbCryptoException {
@@ -159,8 +159,8 @@
/**
* Constructs a new Checksum by calculating the keyed checksum
* over the data using specified checksum type.
- * @new_cksumType the type of checksum.
- * @data the data that needs to be performed a checksum calculation on.
+ * @param new_cksumType the type of checksum.
+ * @param data the data that needs to be performed a checksum calculation on.
*/
// KrbSafe, KrbTgsReq
public Checksum(int new_cksumType, byte[] data,
@@ -238,12 +238,12 @@
/**
* Encodes a Checksum object.
- * <xmp>
+ * <pre>{@code
* Checksum ::= SEQUENCE {
* cksumtype [0] Int32,
* checksum [1] OCTET STRING
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Config.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Config.java Mon Aug 03 16:33:06 2015 -0700
@@ -330,7 +330,7 @@
*
* @param s the string duration
* @return time in seconds
- * @throw KrbException if format is illegal
+ * @throws KrbException if format is illegal
*/
public static int duration(String s) throws KrbException {
@@ -392,7 +392,7 @@
* @param keys the keys
* @return the int value, Integer.MIN_VALUE is returned if it cannot be
* found or the value is not a legal integer.
- * @throw IllegalArgumentException if any of the keys is illegal
+ * @throws IllegalArgumentException if any of the keys is illegal
* @see #get(java.lang.String[])
*/
public int getIntValue(String... keys) {
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java Mon Aug 03 16:33:06 2015 -0700
@@ -279,7 +279,7 @@
* @param ticketCache the path to the tickets file. A value
* of null will be accepted to indicate that the default
* path should be searched
- * @returns the TGT credentials or null if none were found. If the tgt
+ * @return the TGT credentials or null if none were found. If the tgt
* expired, it is the responsibility of the caller to determine this.
*/
public static Credentials acquireTGTFromCache(PrincipalName princ,
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/EncryptedData.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/EncryptedData.java Mon Aug 03 16:33:06 2015 -0700
@@ -259,20 +259,20 @@
/**
* Returns an ASN.1 encoded EncryptedData type.
*
- * <xmp>
+ * <pre>{@code
* EncryptedData ::= SEQUENCE {
* etype [0] Int32 -- EncryptionType --,
* kvno [1] UInt32 OPTIONAL,
* cipher [2] OCTET STRING -- ciphertext
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
* specification available at
* <a href="http://www.ietf.org/rfc/rfc4120.txt">
* http://www.ietf.org/rfc/rfc4120.txt</a>.
- * <p>
+ *
* @return byte array of encoded EncryptedData object.
* @exception Asn1Exception if an error occurs while decoding an
* ASN1 encoded data.
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/EncryptionKey.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/EncryptionKey.java Mon Aug 03 16:33:06 2015 -0700
@@ -101,11 +101,11 @@
* Obtains all versions of the secret key of the principal from a
* keytab.
*
- * @Param princ the principal whose secret key is desired
+ * @param princ the principal whose secret key is desired
* @param keytab the path to the keytab file. A value of null
* will be accepted to indicate that the default path should be
* searched.
- * @returns an array of secret keys or null if none were found.
+ * @return an array of secret keys or null if none were found.
*/
public static EncryptionKey[] acquireSecretKeys(PrincipalName princ,
String keytab) {
@@ -127,7 +127,7 @@
* @param password NOT null
* @param etype
* @param snp can be NULL
- * @returns never null
+ * @return never null
*/
public static EncryptionKey acquireSecretKey(PrincipalName cname,
char[] password, int etype, PAData.SaltAndParams snp)
@@ -150,7 +150,7 @@
* @param salt NOT null
* @param etype
* @param s2kparams can be NULL
- * @returns never null
+ * @return never null
*/
public static EncryptionKey acquireSecretKey(char[] password,
String salt, int etype, byte[] s2kparams)
@@ -388,11 +388,11 @@
/**
* Returns the ASN.1 encoding of this EncryptionKey.
*
- * <xmp>
+ * <pre>{@code
* EncryptionKey ::= SEQUENCE {
* keytype[0] INTEGER,
* keyvalue[1] OCTET STRING }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/KrbAsReqBuilder.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/KrbAsReqBuilder.java Mon Aug 03 16:33:06 2015 -0700
@@ -110,7 +110,7 @@
* realm, where default realm will be used. This realm will be the target
* realm for AS-REQ. I believe a client should only get initial TGT from
* its own realm.
- * @param keys must not be null. if empty, might be quite useless.
+ * @param ktab must not be null. If empty, might be quite useless.
* This argument will neither be modified nor stored by the method.
* @throws KrbException
*/
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/KrbCred.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/KrbCred.java Mon Aug 03 16:33:06 2015 -0700
@@ -34,8 +34,6 @@
import sun.security.krb5.internal.*;
import sun.security.krb5.internal.crypto.KeyUsage;
import java.io.IOException;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
import sun.security.util.DerValue;
@@ -65,7 +63,6 @@
PrincipalName client = tgt.getClient();
PrincipalName tgService = tgt.getServer();
- PrincipalName server = serviceTicket.getServer();
if (!serviceTicket.getClient().equals(client))
throw new KrbException(Krb5.KRB_ERR_GENERIC,
"Client principal does not match");
@@ -78,28 +75,10 @@
options.set(KDCOptions.FORWARDED, true);
options.set(KDCOptions.FORWARDABLE, true);
- HostAddresses sAddrs = null;
-
- // GSSName.NT_HOSTBASED_SERVICE should display with KRB_NT_SRV_HST
- if (server.getNameType() == PrincipalName.KRB_NT_SRV_HST) {
- sAddrs = new HostAddresses(server);
- } else if (server.getNameType() == PrincipalName.KRB_NT_UNKNOWN) {
- // Sometimes this is also a server
- if (server.getNameStrings().length >= 2) {
- String host = server.getNameStrings()[1];
- try {
- InetAddress[] addr = InetAddress.getAllByName(host);
- if (addr != null && addr.length > 0) {
- sAddrs = new HostAddresses(addr);
- }
- } catch (UnknownHostException ioe) {
- // maybe we guessed wrong, let sAddrs be null
- }
- }
- }
-
KrbTgsReq tgsReq = new KrbTgsReq(options, tgt, tgService,
- null, null, null, null, sAddrs, null, null, null);
+ null, null, null, null,
+ null, // No easy way to get addresses right
+ null, null, null);
credMessg = createMessage(tgsReq.sendAndGetCreds(), key);
obuf = credMessg.asn1Encode();
@@ -111,7 +90,6 @@
EncryptionKey sessionKey
= delegatedCreds.getSessionKey();
PrincipalName princ = delegatedCreds.getClient();
- Realm realm = princ.getRealm();
PrincipalName tgService = delegatedCreds.getServer();
KrbCredInfo credInfo = new KrbCredInfo(sessionKey,
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java Mon Aug 03 16:33:06 2015 -0700
@@ -45,14 +45,14 @@
/**
* Implements the ASN.1 PrincipalName type and its realm in a single class.
- * <xmp>
+ * <pre>{@code
* Realm ::= KerberosString
*
* PrincipalName ::= SEQUENCE {
* name-type [0] Int32,
* name-string [1] SEQUENCE OF KerberosString
* }
- * </xmp>
+ * }</pre>
* This class is immutable.
* @see Realm
*/
@@ -211,14 +211,14 @@
/**
* Returns the ASN.1 encoding of the
- * <xmp>
+ * <pre>{@code
* PrincipalName ::= SEQUENCE {
* name-type [0] Int32,
* name-string [1] SEQUENCE OF KerberosString
* }
*
* KerberosString ::= GeneralString (IA5String)
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
@@ -638,7 +638,8 @@
* name, the second component is returned.
* Null is returned if there are not two or more
* components in the name.
- * @returns instance component of a multi-component name.
+ *
+ * @return instance component of a multi-component name.
*/
public String getInstanceComponent()
{
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Realm.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/Realm.java Mon Aug 03 16:33:06 2015 -0700
@@ -41,9 +41,8 @@
/**
* Implements the ASN.1 Realm type.
*
- * <xmp>
- * Realm ::= GeneralString
- * </xmp>
+ * {@code Realm ::= GeneralString}
+ *
* This class is immutable.
*/
public class Realm implements Cloneable {
@@ -244,8 +243,8 @@
*
* @param cRealm the initiating realm, not null
* @param sRealm the target realm, not null, not equals to cRealm
- * @returns array of realms including at least cRealm as the first
- * element
+ * @return array of realms including at least cRealm as the first
+ * element
*/
public static String[] getRealmsList(String cRealm, String sRealm) {
try {
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/APOptions.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/APOptions.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,17 +38,17 @@
/**
* Implements the ASN.1 APOptions type.
*
- * <xmp>
+ * <pre>{@code
* APOptions ::= KerberosFlags
* -- reserved(0),
* -- use-session-key(1),
* -- mutual-required(2)
- * </xmp>
*
* KerberosFlags ::= BIT STRING (SIZE (32..MAX))
* -- minimum number of bits shall be sent,
* -- but no fewer than 32
*
+ * }</pre>
* <p>
* This definition reflects the Network Working Group RFC4120
* specification available at
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/APRep.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/APRep.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,13 +39,13 @@
/**
* Implements the ASN.1 AP-REP type.
*
- * <xmp>
+ * <pre>{@code
* AP-REP ::= [APPLICATION 15] SEQUENCE {
* pvno [0] INTEGER (5),
* msg-type [1] INTEGER (15),
* enc-part [2] EncryptedData -- EncAPRepPart
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/APReq.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/APReq.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
/**
* Implements the ASN.1 AP-REQ type.
*
- * <xmp>
+ * <pre>{@code
* AP-REQ ::= [APPLICATION 14] SEQUENCE {
* pvno [0] INTEGER (5),
* msg-type [1] INTEGER (14),
@@ -46,7 +46,7 @@
* ticket [3] Ticket,
* authenticator [4] EncryptedData -- Authenticator
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/Authenticator.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/Authenticator.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
/**
* Implements the ASN.1 Authenticator type.
*
- * <xmp>
+ * <pre>{@code
* Authenticator ::= [APPLICATION 2] SEQUENCE {
* authenticator-vno [0] INTEGER (5),
* crealm [1] Realm,
@@ -50,7 +50,7 @@
* seq-number [7] UInt32 OPTIONAL,
* authorization-data [8] AuthorizationData OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncAPRepPart.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncAPRepPart.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,14 +39,14 @@
/**
* Implements the ASN.1 EncAPRepPart type.
*
- * <xmp>
+ * <pre>{@code
* EncAPRepPart ::= [APPLICATION 27] SEQUENCE {
* ctime [0] KerberosTime,
* cusec [1] Microseconds,
* subkey [2] EncryptionKey OPTIONAL,
* seq-number [3] UInt32 OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKDCRepPart.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKDCRepPart.java Mon Aug 03 16:33:06 2015 -0700
@@ -40,7 +40,7 @@
/**
* Implements the ASN.1 EncKDCRepPart type.
*
- * <xmp>
+ * <pre>{@code
* EncKDCRepPart ::= SEQUENCE {
* key [0] EncryptionKey,
* last-req [1] LastReq,
@@ -55,7 +55,7 @@
* sname [10] PrincipalName,
* caddr [11] HostAddresses OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbCredPart.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbCredPart.java Mon Aug 03 16:33:06 2015 -0700
@@ -40,7 +40,7 @@
/**
* Implements the ASN.1 EncKrbCredPart type.
*
- * <xmp>
+ * <pre>{@code
* EncKrbCredPart ::= [APPLICATION 29] SEQUENCE {
* ticket-info [0] SEQUENCE OF KrbCredInfo,
* nonce [1] UInt32 OPTIONAL,
@@ -49,7 +49,7 @@
* s-address [4] HostAddress OPTIONAL,
* r-address [5] HostAddress OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbPrivPart.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncKrbPrivPart.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
/**
* Implements the ASN.1 EncKrbPrivPart type.
*
- * <xmp>
+ * <pre>{@code
* EncKrbPrivPart ::= [APPLICATION 28] SEQUENCE {
* user-data [0] OCTET STRING,
* timestamp [1] KerberosTime OPTIONAL,
@@ -47,7 +47,7 @@
* s-address [4] HostAddress -- sender's addr --,
* r-address [5] HostAddress OPTIONAL -- recip's addr
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncTicketPart.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/EncTicketPart.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
/**
* Implements the ASN.1 EncTicketPart type.
*
- * <xmp>
+ * <pre>{@code
* EncTicketPart ::= [APPLICATION 3] SEQUENCE {
* flags [0] TicketFlags,
* key [1] EncryptionKey,
@@ -53,7 +53,7 @@
* caddr [9] HostAddresses OPTIONAL,
* authorization-data [10] AuthorizationData OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,16 +39,17 @@
import java.net.Inet6Address;
import java.net.UnknownHostException;
import java.io.IOException;
+import java.util.Arrays;
/**
* Implements the ASN.1 HostAddress type.
*
- * <xmp>
+ * <pre>{@code
* HostAddress ::= SEQUENCE {
* addr-type [0] Int32,
* address [1] OCTET STRING
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
@@ -131,7 +132,7 @@
/**
* Gets the InetAddress of this HostAddress.
* @return the IP address for this specified host.
- * @exception if no IP address for the host could be found.
+ * @exception UnknownHostException if no IP address for the host could be found.
*
*/
public InetAddress getInetAddress() throws UnknownHostException {
@@ -295,4 +296,11 @@
}
}
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(Arrays.toString(address));
+ sb.append('(').append(addrType).append(')');
+ return sb.toString();
+ }
}
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java Mon Aug 03 16:33:06 2015 -0700
@@ -45,7 +45,7 @@
/**
* Implements the ASN.1 HostAddresses type.
*
- * <xmp>
+ * <pre>{@code
* HostAddresses -- NOTE: subtly different from rfc1510,
* -- but has a value mapping and encodes the same
* ::= SEQUENCE OF HostAddress
@@ -54,7 +54,7 @@
* addr-type [0] Int32,
* address [1] OCTET STRING
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
@@ -338,4 +338,9 @@
for (int i = 0; i < inetAddresses.length; i++)
addresses[i] = new HostAddress(inetAddresses[i]);
}
+
+ @Override
+ public String toString() {
+ return Arrays.toString(addresses);
+ }
}
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCOptions.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCOptions.java Mon Aug 03 16:33:06 2015 -0700
@@ -40,7 +40,7 @@
/**
* Implements the ASN.1 KDCOptions type.
*
- * <xmp>
+ * <pre>{@code
* KDCOptions ::= KerberosFlags
* -- reserved(0),
* -- forwardable(1),
@@ -69,7 +69,7 @@
* -- minimum number of bits shall be sent,
* -- but no fewer than 32
*
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
@@ -115,7 +115,7 @@
* in the addresses field of the request.
* <li>FORWARDED, PROXY, ENC_TKT_IN_SKEY, RENEW, VALIDATE are used only in
* subsequent requests.
- * </ol><p>
+ * </ol>
*/
public class KDCOptions extends KerberosFlags {
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCRep.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
/**
* Implements the ASN.1 KDC-REP type.
*
- * <xmp>
+ * <pre>{@code
* KDC-REP ::= SEQUENCE {
* pvno [0] INTEGER (5),
* msg-type [1] INTEGER (11 -- AS -- | 13 -- TGS --),
@@ -51,7 +51,7 @@
* -- EncASRepPart or EncTGSRepPart,
* -- as appropriate
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReq.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReq.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
/**
* Implements the ASN.1 KRB_KDC_REQ type.
*
- * <xmp>
+ * <pre>{@code
* KDC-REQ ::= SEQUENCE {
* -- NOTE: first tag is [1], not [0]
* pvno [1] INTEGER (5) ,
@@ -48,7 +48,7 @@
* -- NOTE: not empty --,
* req-body [4] KDC-REQ-BODY
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
@@ -95,7 +95,7 @@
* @param req_type a encoded asn1 type value.
* @exception Asn1Exception if an error occurs while decoding an ASN1 encoded data.
* @exception IOException if an I/O error occurs while reading encoded data.
- * @exceptoin KrbErrException
+ * @exception KrbErrException
*/
public KDCReq(DerValue der, int req_type) throws Asn1Exception,
IOException, KrbException {
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReqBody.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReqBody.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
/**
* Implements the ASN.1 KDC-REQ-BODY type.
*
- * <xmp>
+ * <pre>{@code
* KDC-REQ-BODY ::= SEQUENCE {
* kdc-options [0] KDCOptions,
* cname [1] PrincipalName OPTIONAL
@@ -60,7 +60,7 @@
* additional-tickets [11] SEQUENCE OF Ticket OPTIONAL
* -- NOTE: not empty
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBCred.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBCred.java Mon Aug 03 16:33:06 2015 -0700
@@ -41,14 +41,14 @@
/**
* Implements the ASN.1 Authenticator type.
*
- * <xmp>
+ * <pre>{@code
* KRB-CRED ::= [APPLICATION 22] SEQUENCE {
* pvno [0] INTEGER (5),
* msg-type [1] INTEGER (22),
* tickets [2] SEQUENCE OF Ticket,
* enc-part [3] EncryptedData -- EncKrbCredPart
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java Mon Aug 03 16:33:06 2015 -0700
@@ -48,7 +48,7 @@
/**
* Implements the ASN.1 KRBError type.
*
- * <xmp>
+ * <pre>{@code
* KRB-ERROR ::= [APPLICATION 30] SEQUENCE {
* pvno [0] INTEGER (5),
* msg-type [1] INTEGER (30),
@@ -71,7 +71,7 @@
* data-type [0] Int32,
* data-value [1] OCTET STRING OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBPriv.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBPriv.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,14 +39,14 @@
/**
* Implements the ASN.1 KRB-PRIV type.
*
- * <xmp>
+ * <pre>{@code
* KRB-PRIV ::= [APPLICATION 21] SEQUENCE {
* pvno [0] INTEGER (5),
* msg-type [1] INTEGER (21),
* -- NOTE: there is no [2] tag
* enc-part [3] EncryptedData -- EncKrbPrivPart
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafe.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafe.java Mon Aug 03 16:33:06 2015 -0700
@@ -40,14 +40,14 @@
/**
* Implements the ASN.1 KRBSafe type.
*
- * <xmp>
+ * <pre>{@code
* KRB-SAFE ::= [APPLICATION 20] SEQUENCE {
* pvno [0] INTEGER (5),
* msg-type [1] INTEGER (20),
* safe-body [2] KRB-SAFE-BODY,
* cksum [3] Checksum
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafeBody.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBSafeBody.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,7 +39,7 @@
/**
* Implements the ASN.1 KRBSafeBody type.
*
- * <xmp>
+ * <pre>{@code
* KRB-SAFE-BODY ::= SEQUENCE {
* user-data [0] OCTET STRING,
* timestamp [1] KerberosTime OPTIONAL,
@@ -48,7 +48,7 @@
* s-address [4] HostAddress,
* r-address [5] HostAddress OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KerberosTime.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KerberosTime.java Mon Aug 03 16:33:06 2015 -0700
@@ -46,9 +46,7 @@
/**
* Implements the ASN.1 KerberosTime type. This is an immutable class.
*
- * <xmp>
- * KerberosTime ::= GeneralizedTime -- with no fractional seconds
- * </xmp>
+ * {@code KerberosTime ::= GeneralizedTime} -- with no fractional seconds
*
* The timestamps used in Kerberos are encoded as GeneralizedTimes. A
* KerberosTime value shall not include any fractional portions of the
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbCredInfo.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbCredInfo.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,7 @@
/**
* Implements the ASN.1 KrbCredInfo type.
*
- * <xmp>
+ * <pre>{@code
* KrbCredInfo ::= SEQUENCE {
* key [0] EncryptionKey,
* prealm [1] Realm OPTIONAL,
@@ -52,7 +52,7 @@
* sname [9] PrincipalName OPTIONAL,
* caddr [10] HostAddresses OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/LastReq.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/LastReq.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
/**
* Implements the ASN.1 LastReq type.
*
- * <xmp>
+ * <pre>{@code
* LastReq ::= SEQUENCE OF SEQUENCE {
* lr-type [0] Int32,
* lr-value [1] KerberosTime
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/LoginOptions.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/LoginOptions.java Mon Aug 03 16:33:06 2015 -0700
@@ -36,7 +36,7 @@
/**
* Implements the ASN.1 KDCOptions type.
*
- * <xmp>
+ * <pre>{@code
* KDCOptions ::= KerberosFlags
* -- reserved(0),
* -- forwardable(1),
@@ -64,7 +64,7 @@
* KerberosFlags ::= BIT STRING (SIZE (32..MAX))
* -- minimum number of bits shall be sent,
* -- but no fewer than 32
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/MethodData.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/MethodData.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
/**
* Implements the ASN.1 EncKrbPrivPart type.
*
- * <xmp>
+ * <pre>{@code
* METHOD-DATA ::= SEQUENCE {
* method-type[0] INTEGER,
* method-data[1] OCTET STRING OPTIONAL
* }
- * </xmp>
+ * }</pre>
*/
public class MethodData {
private int methodType;
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAData.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAData.java Mon Aug 03 16:33:06 2015 -0700
@@ -39,13 +39,13 @@
/**
* Implements the ASN.1 PA-DATA type.
*
- * <xmp>
+ * <pre>{@code
* PA-DATA ::= SEQUENCE {
* -- NOTE: first tag is [1], not [0]
* padata-type [1] Int32,
* padata-value [2] OCTET STRING -- might be encoded AP-REQ
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
@@ -140,11 +140,14 @@
/**
* Gets the preferred etype from the PAData array.
- * 1. ETYPE-INFO2-ENTRY with unknown s2kparams ignored
- * 2. ETYPE-INFO2 preferred to ETYPE-INFO
- * 3. multiple entries for same etype in one PA-DATA, use the first one.
- * 4. Multiple PA-DATA with same type, choose the last one
+ * <ol>
+ * <li>ETYPE-INFO2-ENTRY with unknown s2kparams ignored</li>
+ * <li>ETYPE-INFO2 preferred to ETYPE-INFO</li>
+ * <li>Multiple entries for same etype in one PA-DATA, use the first one.</li>
+ * <li>Multiple PA-DATA with same type, choose the last one.</li>
+ * </ol>
* (This is useful when PA-DATAs from KRB-ERROR and AS-REP are combined).
+ *
* @return the etype, or defaultEType if not enough info
* @throws Asn1Exception|IOException if there is an encoding error
*/
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAEncTSEnc.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAEncTSEnc.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
/**
* Implements the ASN.1 PAEncTSEnc type.
*
- * <xmp>
+ * <pre>{@code
* PA-ENC-TS-ENC ::= SEQUENCE {
* patimestamp [0] KerberosTime -- client's time --,
* pausec [1] Microseconds OPTIONAL
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAForUserEnc.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/PAForUserEnc.java Mon Aug 03 16:33:06 2015 -0700
@@ -36,7 +36,7 @@
/**
* Implements the ASN.1 PA-FOR-USER type.
*
- * <xmp>
+ * <pre>{@code
* padata-type ::= PA-FOR-USER
* -- value 129
* padata-value ::= EncryptedData
@@ -47,7 +47,7 @@
* cksum[2] Checksum,
* auth-package[3] KerberosString
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects MS-SFU.
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/Ticket.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/Ticket.java Mon Aug 03 16:33:06 2015 -0700
@@ -42,14 +42,14 @@
/**
* Implements the ASN.1 Ticket type.
*
- * <xmp>
+ * <pre>{@code
* Ticket ::= [APPLICATION 1] SEQUENCE {
* tkt-vno [0] INTEGER (5),
* realm [1] Realm,
* sname [2] PrincipalName,
* enc-part [3] EncryptedData -- EncTicketPart
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/TransitedEncoding.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/TransitedEncoding.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,12 +38,12 @@
/**
* Implements the ASN.1 TransitedEncoding type.
*
- * <xmp>
+ * <pre>{@code
* TransitedEncoding ::= SEQUENCE {
* tr-type [0] Int32 -- must be registered --,
* contents [1] OCTET STRING
* }
- * </xmp>
+ * }</pre>
*
* <p>
* This definition reflects the Network Working Group RFC 4120
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/Des.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/Des.java Mon Aug 03 16:33:06 2015 -0700
@@ -226,7 +226,7 @@
/**
* Generates DES key from the password.
- * @param password a char[] used to create the key.
+ * @param passwdChars a char[] used to create the key.
* @return DES key.
*
* @modified by Yanni Zhang, Dec 6, 99
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/DesMacCksumType.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/DesMacCksumType.java Mon Aug 03 16:33:06 2015 -0700
@@ -125,7 +125,7 @@
* @param data the data.
* @param size the length of data.
* @param key the key used to encrypt the checksum.
- * @param checksum
+ * @param checksum the checksum.
* @return true if verification is successful.
*
* @modified by Yanni Zhang, 12/08/99.
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacMd5ArcFourCksumType.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacMd5ArcFourCksumType.java Mon Aug 03 16:33:06 2015 -0700
@@ -95,7 +95,7 @@
* @param data the data.
* @param size the length of data.
* @param key the key used to encrypt the checksum.
- * @param checksum
+ * @param checksum the checksum.
* @return true if verification is successful.
*/
public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes128CksumType.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes128CksumType.java Mon Aug 03 16:33:06 2015 -0700
@@ -95,7 +95,7 @@
* @param data the data.
* @param size the length of data.
* @param key the key used to encrypt the checksum.
- * @param checksum
+ * @param checksum the checksum.
* @return true if verification is successful.
*/
public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes256CksumType.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes256CksumType.java Mon Aug 03 16:33:06 2015 -0700
@@ -95,7 +95,7 @@
* @param data the data.
* @param size the length of data.
* @param key the key used to encrypt the checksum.
- * @param checksum
+ * @param checksum the checksum.
* @return true if verification is successful.
*/
public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Des3KdCksumType.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/HmacSha1Des3KdCksumType.java Mon Aug 03 16:33:06 2015 -0700
@@ -89,7 +89,7 @@
* @param data the data.
* @param size the length of data.
* @param key the key used to encrypt the checksum.
- * @param checksum
+ * @param checksum the checksum.
* @return true if verification is successful.
*/
public boolean verifyKeyedChecksum(byte[] data, int size,
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/RsaMd5DesCksumType.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/RsaMd5DesCksumType.java Mon Aug 03 16:33:06 2015 -0700
@@ -120,7 +120,7 @@
* @param data the data.
* @param size the length of data.
* @param key the key used to encrypt the checksum.
- * @param checksum
+ * @param checksum the checksum.
* @return true if verification is successful.
*
* @modified by Yanni Zhang, 12/08/99.
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/ktab/KeyTab.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/ktab/KeyTab.java Mon Aug 03 16:33:06 2015 -0700
@@ -513,7 +513,7 @@
/**
* Creates key table file version.
* @param file the key table file.
- * @exception IOException.
+ * @exception IOException
*/
public synchronized void createVersion(File file) throws IOException {
try (KeyTabOutputStream kos =
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/rcache/AuthList.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/rcache/AuthList.java Mon Aug 03 16:33:06 2015 -0700
@@ -45,7 +45,7 @@
* self-cleanup of expired items in the cache.
*
* AuthTimeWithHash objects inside a cache are always sorted from big (new) to
- * small (old) as determined by {@see AuthTimeWithHash#compareTo}. In the most
+ * small (old) as determined by {@link AuthTimeWithHash#compareTo}. In the most
* common case a newcomer should be newer than the first element.
*
* @author Yanni Zhang
--- a/jdk/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Kinit.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Kinit.java Mon Aug 03 16:33:06 2015 -0700
@@ -59,26 +59,25 @@
* We currently support only file-based credentials cache to
* store the tickets obtained from the KDC.
* By default, for all Unix platforms a cache file named
- * /tmp/krb5cc_<uid> will be generated. The <uid> is the
+ * {@code /tmp/krb5cc_<uid>} will be generated. The {@code <uid>} is the
* numeric user identifier.
* For all other platforms, a cache file named
- * <USER_HOME>/krb5cc_<USER_NAME> would be generated.
+ * {@code <USER_HOME>/krb5cc_<USER_NAME>} would be generated.
* <p>
- * <USER_HOME> is obtained from <code>java.lang.System</code>
+ * {@code <USER_HOME>} is obtained from {@code java.lang.System}
* property <i>user.home</i>.
- * <USER_NAME> is obtained from <code>java.lang.System</code>
+ * {@code <USER_NAME>} is obtained from {@code java.lang.System}
* property <i>user.name</i>.
- * If <USER_HOME> is null the cache file would be stored in
+ * If {@code <USER_HOME>} is null the cache file would be stored in
* the current directory that the program is running from.
- * <USER_NAME> is operating system's login username.
+ * {@code <USER_NAME>} is operating system's login username.
* It could be different from user's principal name.
- *</p>
- *<p>
+ * <p>
* For instance, on Windows NT, it could be
- * c:\winnt\profiles\duke\krb5cc_duke, in
- * which duke is the <USER_NAME>, and c:\winnt\profile\duke is the
- * <USER_HOME>.
- *<p>
+ * {@code c:\winnt\profiles\duke\krb5cc_duke}, in
+ * which duke is the {@code <USER_NAME>} and {@code c:\winnt\profile\duke} is the
+ * {@code <USER_HOME>}.
+ * <p>
* A single user could have multiple principal names,
* but the primary principal of the credentials cache could only be one,
* which means one cache file could only store tickets for one
@@ -88,10 +87,8 @@
* To avoid overwriting, you need to specify
* a different cache file name when you request a
* new ticket.
- *</p>
- *<p>
+ * <p>
* You can specify the location of the cache file by using the -c option
- *
*/
public static void main(String[] args) {
--- a/jdk/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Klist.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Klist.java Mon Aug 03 16:33:06 2015 -0700
@@ -69,8 +69,10 @@
* <li><b>-n</b> do not reverse-resolve addresses
* </ul>
* available options for keytabs:
+ * <ul>
* <li><b>-t</b> shows keytab entry timestamps
* <li><b>-K</b> shows keytab entry DES keys
+ * </ul>
*/
public static void main(String[] args) {
Klist klist = new Klist();
--- a/jdk/src/java.security.sasl/share/classes/com/sun/security/sasl/digest/FactoryImpl.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.sasl/share/classes/com/sun/security/sasl/digest/FactoryImpl.java Mon Aug 03 16:33:06 2015 -0700
@@ -60,7 +60,7 @@
*
* @throws SaslException If there is an error creating the DigestMD5
* SASL client.
- * @returns a new SaslClient ; otherwise null if unsuccessful.
+ * @return a new SaslClient; otherwise null if unsuccessful.
*/
public SaslClient createSaslClient(String[] mechs,
String authorizationId, String protocol, String serverName,
@@ -90,7 +90,7 @@
*
* @throws SaslException If there is an error creating the DigestMD5
* SASL server.
- * @returns a new SaslServer ; otherwise null if unsuccessful.
+ * @return a new SaslServer; otherwise null if unsuccessful.
*/
public SaslServer createSaslServer(String mech,
String protocol, String serverName, Map<String,?> props, CallbackHandler cbh)
@@ -114,7 +114,7 @@
/**
* Returns the authentication mechanisms that this factory can produce.
*
- * @returns String[] {"DigestMD5"} if policies in env match those of this
+ * @return String[] {"DigestMD5"} if policies in env match those of this
* factory.
*/
public String[] getMechanismNames(Map<String,?> env) {
--- a/jdk/src/java.security.sasl/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.security.sasl/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java Mon Aug 03 16:33:06 2015 -0700
@@ -57,7 +57,7 @@
/**
* Returns a new instance of the NTLM SASL client mechanism.
* Argument checks are performed in SaslClient's constructor.
- * @returns a new SaslClient ; otherwise null if unsuccessful.
+ * @return a new SaslClient; otherwise null if unsuccessful.
* @throws SaslException If there is an error creating the NTLM
* SASL client.
*/
@@ -86,7 +86,7 @@
/**
* Returns a new instance of the NTLM SASL server mechanism.
* Argument checks are performed in SaslServer's constructor.
- * @returns a new SaslServer ; otherwise null if unsuccessful.
+ * @return a new SaslServer; otherwise null if unsuccessful.
* @throws SaslException If there is an error creating the NTLM
* SASL server.
*/
@@ -116,7 +116,7 @@
/**
* Returns the authentication mechanisms that this factory can produce.
*
- * @returns String[] {"NTLM"} if policies in env match those of this
+ * @return String[] {"NTLM"} if policies in env match those of this
* factory.
*/
public String[] getMechanismNames(Map<String,?> env) {
--- a/jdk/src/java.sql/share/classes/javax/sql/RowSet.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.sql/share/classes/javax/sql/RowSet.java Mon Aug 03 16:33:06 2015 -0700
@@ -1477,7 +1477,7 @@
/**
* Sets the designated parameter to a <code>InputStream</code> object.
- * The "{@code InputStream} must contain the number
+ * The {@code InputStream} must contain the number
* of characters specified by length, otherwise a <code>SQLException</code> will be
* generated when the <code>CallableStatement</code> is executed.
* This method differs from the <code>setBinaryStream (int, InputStream, int)</code>
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java Mon Aug 03 16:33:06 2015 -0700
@@ -41,12 +41,12 @@
* as defined in the W3C specification for XML-Signature Syntax and Processing.
* The XML Schema Definition is defined as:
*
- * <xmp>
+ * <pre>{@code
* <simpleType name="CryptoBinary">
* <restriction base = "base64Binary">
* </restriction>
* </simpleType>
- * </xmp>
+ * }</pre>
*
* @author Sean Mullan
*/
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java Mon Aug 03 16:33:06 2015 -0700
@@ -57,7 +57,7 @@
* and optional list of external elements.
*
* @param keyPacket a PGP Key Material Packet as defined in section 5.5 of
- * <a href="http://www.ietf.org/rfc/rfc2440.txt"/>RFC 2440</a>. The
+ * <a href="http://www.ietf.org/rfc/rfc2440.txt">RFC 2440</a>. The
* array is cloned to prevent subsequent modification.
* @param other a list of {@link XMLStructure}s representing elements from
* an external namespace. The list is defensively copied to prevent
@@ -90,10 +90,10 @@
* optional key packet and list of external elements.
*
* @param keyId a PGP public key id as defined in section 11.2 of
- * <a href="http://www.ietf.org/rfc/rfc2440.txt"/>RFC 2440</a>. The
+ * <a href="http://www.ietf.org/rfc/rfc2440.txt">RFC 2440</a>. The
* array is cloned to prevent subsequent modification.
* @param keyPacket a PGP Key Material Packet as defined in section 5.5 of
- * <a href="http://www.ietf.org/rfc/rfc2440.txt"/>RFC 2440</a> (may
+ * <a href="http://www.ietf.org/rfc/rfc2440.txt">RFC 2440</a> (may
* be <code>null</code>). The array is cloned to prevent subsequent
* modification.
* @param other a list of {@link XMLStructure}s representing elements from
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java Mon Aug 03 16:33:06 2015 -0700
@@ -118,7 +118,6 @@
* is defensively copied to protect against subsequent modification.
* May be <code>null</code> or empty.
* @param id the reference ID (may be <code>null</code>)
- * @return a <code>Reference</code>
* @throws NullPointerException if <code>dm</code> is <code>null</code>
* @throws ClassCastException if any of the <code>transforms</code> are
* not of type <code>Transform</code>
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java Mon Aug 03 16:33:06 2015 -0700
@@ -58,7 +58,6 @@
* @param properties a list of one or more {@link SignatureProperty}s. The
* list is defensively copied to protect against subsequent modification.
* @param id the Id (may be <code>null</code>)
- * @return a <code>DOMSignatureProperties</code>
* @throws ClassCastException if <code>properties</code> contains any
* entries that are not of type {@link SignatureProperty}
* @throws IllegalArgumentException if <code>properties</code> is empty
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java Mon Aug 03 16:33:06 2015 -0700
@@ -59,7 +59,6 @@
* is defensively copied to protect against subsequent modification.
* @param target the target URI
* @param id the Id (may be <code>null</code>)
- * @return a <code>SignatureProperty</code>
* @throws ClassCastException if <code>content</code> contains any
* entries that are not of type {@link XMLStructure}
* @throws IllegalArgumentException if <code>content</code> is empty
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java Mon Aug 03 16:33:06 2015 -0700
@@ -53,7 +53,7 @@
protected TransformService spi;
/**
- * Creates a <code>DOMTransform</code>.
+ * Creates a {@code DOMTransform}.
*
* @param spi the TransformService
*/
@@ -62,7 +62,7 @@
}
/**
- * Creates a <code>DOMTransform</code> from an element. This constructor
+ * Creates a {@code DOMTransform} from an element. This constructor
* invokes the abstract {@link #unmarshalParams unmarshalParams} method to
* unmarshal any algorithm-specific input parameters.
*
@@ -138,12 +138,12 @@
* Transforms the specified data using the underlying transform algorithm.
*
* @param data the data to be transformed
- * @param sc the <code>XMLCryptoContext</code> containing
- * additional context (may be <code>null</code> if not applicable)
+ * @param xc the {@code XMLCryptoContext} containing
+ * additional context (may be {@code null} if not applicable)
* @return the transformed data
- * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws NullPointerException if {@code data} is {@code null}
* @throws XMLSignatureException if an unexpected error occurs while
- * executing the transform
+ * executing the transform
*/
public Data transform(Data data, XMLCryptoContext xc)
throws TransformException
@@ -155,14 +155,14 @@
* Transforms the specified data using the underlying transform algorithm.
*
* @param data the data to be transformed
- * @param sc the <code>XMLCryptoContext</code> containing
- * additional context (may be <code>null</code> if not applicable)
- * @param os the <code>OutputStream</code> that should be used to write
- * the transformed data to
+ * @param xc the {@code XMLCryptoContext} containing
+ * additional context (may be {@code null} if not applicable)
+ * @param os the {@code OutputStream} that should be used to write
+ * the transformed data to
* @return the transformed data
- * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws NullPointerException if {@code data} is {@code null}
* @throws XMLSignatureException if an unexpected error occurs while
- * executing the transform
+ * executing the transform
*/
public Data transform(Data data, XMLCryptoContext xc, OutputStream os)
throws TransformException
@@ -201,16 +201,16 @@
/**
* Transforms the specified data using the underlying transform algorithm.
* This method invokes the {@link #marshal marshal} method and passes it
- * the specified <code>DOMSignContext</code> before transforming the data.
+ * the specified {@code DOMSignContext} before transforming the data.
*
* @param data the data to be transformed
- * @param sc the <code>XMLCryptoContext</code> containing
- * additional context (may be <code>null</code> if not applicable)
+ * @param sc the {@code XMLCryptoContext} containing
+ * additional context (may be {@code null} if not applicable)
* @param context the marshalling context
* @return the transformed data
* @throws MarshalException if an exception occurs while marshalling
- * @throws NullPointerException if <code>data</code> or <code>context</code>
- * is <code>null</code>
+ * @throws NullPointerException if {@code data} or {@code context}
+ * is {@code null}
* @throws XMLSignatureException if an unexpected error occurs while
* executing the transform
*/
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java Mon Aug 03 16:33:06 2015 -0700
@@ -65,7 +65,6 @@
* or {@link javax.xml.dsig.XMLStructure} ({@link X509IssuerSerial}
* objects or elements from an external namespace). The list is
* defensively copied to protect against subsequent modification.
- * @return a <code>X509Data</code>
* @throws NullPointerException if <code>content</code> is <code>null</code>
* @throws IllegalArgumentException if <code>content</code> is empty
* @throws ClassCastException if <code>content</code> contains any entries
--- a/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java Mon Aug 03 16:33:06 2015 -0700
@@ -63,7 +63,6 @@
* @param id the Id (may be <code>null</code>)
* @param mimeType the mime type (may be <code>null</code>)
* @param encoding the encoding (may be <code>null</code>)
- * @return an <code>XMLObject</code>
* @throws ClassCastException if <code>content</code> contains any
* entries that are not of type {@link XMLStructure}
*/
--- a/jdk/src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java Mon Aug 03 15:48:33 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12778 +0,0 @@
-/*
- * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- */
-
-package sun.nio.cs.ext;
-
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-import java.nio.charset.CoderResult;
-import sun.nio.cs.Surrogate;
-
-public class GB18030
- extends Charset
-{
- private static final int GB18030_SINGLE_BYTE = 1;
- private static final int GB18030_DOUBLE_BYTE = 2;
- private static final int GB18030_FOUR_BYTE = 3;
-
- public GB18030() {
- super("GB18030", ExtendedCharsets.aliasesFor("GB18030"));
- }
-
- public boolean contains(Charset cs) {
- return ((cs.name().equals("US-ASCII"))
- || (cs.name().equals("GBK"))
- || (cs.name().equals("ISO-8859-1"))
- || (cs.name().equals("ISO-8859-2"))
- || (cs.name().equals("ISO-8859-3"))
- || (cs.name().equals("ISO-8859-4"))
- || (cs.name().equals("ISO-8859-5"))
- || (cs.name().equals("ISO-8859-6"))
- || (cs.name().equals("ISO-8859-7"))
- || (cs.name().equals("ISO-8859-8"))
- || (cs.name().equals("ISO-8859-9"))
- || (cs.name().equals("ISO-8859-13"))
- || (cs.name().equals("UTF-8"))
- || (cs.name().equals("UTF-16"))
- || (cs.name().equals("UTF-16LE"))
- || (cs.name().equals("UTF-16BE"))
- || (cs.name().equals("ISO-8859-15"))
- || (cs.name().equals("windows-1251"))
- || (cs.name().equals("windows-1252"))
- || (cs.name().equals("windows-1253"))
- || (cs.name().equals("windows-1254"))
- || (cs.name().equals("windows-1255"))
- || (cs.name().equals("windows-1256"))
- || (cs.name().equals("windows-1257"))
- || (cs.name().equals("windows-1258"))
- || (cs.name().equals("windows-932"))
- || (cs.name().equals("x-mswin-936"))
- || (cs.name().equals("x-windows-949"))
- || (cs.name().equals("x-windows-950"))
- || (cs.name().equals("windows-31j"))
- || (cs.name().equals("JIS_X0201"))
- || (cs.name().equals("JIS_X0208-1990"))
- || (cs.name().equals("JIS_X0212"))
- || (cs.name().equals("Shift_JIS"))
- || (cs.name().equals("GB2312"))
- || (cs.name().equals("EUC-KR"))
- || (cs.name().equals("x-EUC-TW"))
- || (cs.name().equals("EUC-JP"))
- || (cs.name().equals("euc-jp-linux"))
- || (cs.name().equals("KOI8-R"))
- || (cs.name().equals("TIS-620"))
- || (cs.name().equals("x-ISCII91"))
- || (cs.name().equals("Big5"))
- || (cs.name().equals("Big5-HKSCS"))
- || (cs.name().equals("x-MS950-HKSCS"))
- || (cs.name().equals("ISO-2022-JP"))
- || (cs.name().equals("ISO-2022-KR"))
- || (cs.name().equals("x-ISO-2022-CN-CNS"))
- || (cs.name().equals("x-ISO-2022-CN-GB"))
- || (cs.name().equals("x-Johab"))
- || (cs instanceof GB18030));
- }
-
- public CharsetDecoder newDecoder() {
- return new Decoder(this);
- }
-
- public CharsetEncoder newEncoder() {
- return new Encoder(this);
- }
-
- private final static String innerDecoderIndex0=
- "\u0080"+
- "\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088"+
- "\u0089\u008A\u008B\u008C\u008D\u008E\u008F\u0090"+
- "\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098"+
- "\u0099\u009A\u009B\u009C\u009D\u009E\u009F\u00A0"+
- "\u00A1\u00A2\u00A3\u00A5\u00A6\u00A9\u00AA\u00AB"+
- "\u00AC\u00AD\u00AE\u00AF\u00B2\u00B3\u00B4\u00B5"+
- "\u00B6\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE"+
- "\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6"+
- "\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE"+
- "\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6"+
- "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF"+
- "\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00EB\u00EE"+
- "\u00EF\u00F0\u00F1\u00F4\u00F5\u00F6\u00F8\u00FB"+
- "\u00FD\u00FE\u00FF\u0100\u0102\u0103\u0104\u0105"+
- "\u0106\u0107\u0108\u0109\u010A\u010B\u010C\u010D"+
- "\u010E\u010F\u0110\u0111\u0112\u0114\u0115\u0116"+
- "\u0117\u0118\u0119\u011A\u011C\u011D\u011E\u011F"+
- "\u0120\u0121\u0122\u0123\u0124\u0125\u0126\u0127"+
- "\u0128\u0129\u012A\u012C\u012D\u012E\u012F\u0130"+
- "\u0131\u0132\u0133\u0134\u0135\u0136\u0137\u0138"+
- "\u0139\u013A\u013B\u013C\u013D\u013E\u013F\u0140"+
- "\u0141\u0142\u0143\u0145\u0146\u0147\u0149\u014A"+
- "\u014B\u014C\u014E\u014F\u0150\u0151\u0152\u0153"+
- "\u0154\u0155\u0156\u0157\u0158\u0159\u015A\u015B"+
- "\u015C\u015D\u015E\u015F\u0160\u0161\u0162\u0163"+
- "\u0164\u0165\u0166\u0167\u0168\u0169\u016A\u016C"+
- "\u016D\u016E\u016F\u0170\u0171\u0172\u0173\u0174"+
- "\u0175\u0176\u0177\u0178\u0179\u017A\u017B\u017C"+
- "\u017D\u017E\u017F\u0180\u0181\u0182\u0183\u0184"+
- "\u0185\u0186\u0187\u0188\u0189\u018A\u018B\u018C"+
- "\u018D\u018E\u018F\u0190\u0191\u0192\u0193\u0194"+
- "\u0195\u0196\u0197\u0198\u0199\u019A\u019B"+
- "\u019C\u019D\u019E\u019F\u01A0\u01A1\u01A2\u01A3"+
- "\u01A4\u01A5\u01A6\u01A7\u01A8\u01A9\u01AA\u01AB"+
- "\u01AC\u01AD\u01AE\u01AF\u01B0\u01B1\u01B2\u01B3"+
- "\u01B4\u01B5\u01B6\u01B7\u01B8\u01B9\u01BA\u01BB"+
- "\u01BC\u01BD\u01BE\u01BF\u01C0\u01C1\u01C2\u01C3"+
- "\u01C4\u01C5\u01C6\u01C7\u01C8\u01C9\u01CA\u01CB"+
- "\u01CC\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9"+
- "\u01DB\u01DD\u01DE\u01DF\u01E0\u01E1\u01E2\u01E3"+
- "\u01E4\u01E5\u01E6\u01E7\u01E8\u01E9\u01EA\u01EB"+
- "\u01EC\u01ED\u01EE\u01EF\u01F0\u01F1\u01F2\u01F3"+
- "\u01F4\u01F5\u01F6\u01F7\u01F8\u01FA\u01FB\u01FC"+
- "\u01FD\u01FE\u01FF\u0200\u0201\u0202\u0203\u0204"+
- "\u0205\u0206\u0207\u0208\u0209\u020A\u020B\u020C"+
- "\u020D\u020E\u020F\u0210\u0211\u0212\u0213\u0214"+
- "\u0215\u0216\u0217\u0218\u0219\u021A\u021B\u021C"+
- "\u021D\u021E\u021F\u0220\u0221\u0222\u0223\u0224"+
- "\u0225\u0226\u0227\u0228\u0229\u022A\u022B\u022C"+
- "\u022D\u022E\u022F\u0230\u0231\u0232\u0233\u0234"+
- "\u0235\u0236\u0237\u0238\u0239\u023A\u023B\u023C"+
- "\u023D\u023E\u023F\u0240\u0241\u0242\u0243\u0244"+
- "\u0245\u0246\u0247\u0248\u0249\u024A\u024B\u024C"+
- "\u024D\u024E\u024F\u0250\u0252\u0253\u0254\u0255"+
- "\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D"+
- "\u025E\u025F\u0260\u0262\u0263\u0264\u0265\u0266"+
- "\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E"+
- "\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276"+
- "\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E"+
- "\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286"+
- "\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E"+
- "\u028F\u0290\u0291\u0292\u0293\u0294\u0295\u0296"+
- "\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E"+
- "\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6"+
- "\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE"+
- "\u02AF\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6"+
- "\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE"+
- "\u02BF\u02C0\u02C1\u02C2\u02C3\u02C4\u02C5\u02C6"+
- "\u02C8\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02D2"+
- "\u02D3\u02D4\u02D5\u02D6\u02D7\u02D8\u02DA\u02DB"+
- "\u02DC\u02DD\u02DE\u02DF\u02E0\u02E1\u02E2\u02E3"+
- "\u02E4\u02E5\u02E6\u02E7\u02E8\u02E9\u02EA\u02EB"+
- "\u02EC\u02ED\u02EE\u02EF\u02F0\u02F1\u02F2\u02F3"+
- "\u02F4\u02F5\u02F6\u02F7\u02F8\u02F9\u02FA\u02FB"+
- "\u02FC\u02FD\u02FE\u02FF\u0300\u0301\u0302\u0303"+
- "\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B"+
- "\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313"+
- "\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B"+
- "\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323"+
- "\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B"+
- "\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333"+
- "\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B"+
- "\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343"+
- "\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B"+
- "\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353"+
- "\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B"+
- "\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363"+
- "\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B"+
- "\u036C\u036D\u036E\u036F\u0370\u0371\u0372\u0373"+
- "\u0374\u0375\u0376\u0377\u0378\u0379\u037A\u037B"+
- "\u037C\u037D\u037E\u037F\u0380\u0381\u0382\u0383"+
- "\u0384\u0385\u0386\u0387\u0388\u0389\u038A\u038B"+
- "\u038C\u038D\u038E\u038F\u0390\u03A2\u03AA\u03AB"+
- "\u03AC\u03AD\u03AE\u03AF\u03B0\u03C2\u03CA\u03CB"+
- "\u03CC\u03CD\u03CE\u03CF\u03D0\u03D1\u03D2\u03D3"+
- "\u03D4\u03D5\u03D6\u03D7\u03D8\u03D9\u03DA\u03DB"+
- "\u03DC\u03DD\u03DE\u03DF\u03E0\u03E1\u03E2\u03E3"+
- "\u03E4\u03E5\u03E6\u03E7\u03E8\u03E9\u03EA\u03EB"+
- "\u03EC\u03ED\u03EE\u03EF\u03F0\u03F1\u03F2\u03F3"+
- "\u03F4\u03F5\u03F6\u03F7\u03F8\u03F9\u03FA\u03FB"+
- "\u03FC\u03FD\u03FE\u03FF\u0400\u0402\u0403\u0404"+
- "\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C"+
- "\u040D\u040E\u040F\u0450\u0452\u0453\u0454\u0455"+
- "\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D"+
- "\u045E\u045F\u0460\u0461\u0462\u0463\u0464\u0465"+
- "\u0466\u0467\u0468\u0469\u046A\u046B\u046C\u046D"+
- "\u046E\u046F\u0470\u0471\u0472\u0473\u0474\u0475"+
- "\u0476\u0477\u0478\u0479\u047A\u047B\u047C\u047D"+
- "\u047E\u047F\u0480\u0481\u0482\u0483\u0484\u0485"+
- "\u0486\u0487\u0488\u0489\u048A\u048B\u048C\u048D"+
- "\u048E\u048F\u0490\u0491\u0492\u0493\u0494\u0495"+
- "\u0496\u0497\u0498\u0499\u049A\u049B\u049C\u049D"+
- "\u049E\u049F\u04A0\u04A1\u04A2\u04A3\u04A4\u04A5"+
- "\u04A6\u04A7\u04A8\u04A9\u04AA\u04AB\u04AC\u04AD"+
- "\u04AE\u04AF\u04B0\u04B1\u04B2\u04B3\u04B4\u04B5"+
- "\u04B6\u04B7\u04B8\u04B9\u04BA\u04BB\u04BC\u04BD"+
- "\u04BE\u04BF\u04C0\u04C1\u04C2\u04C3\u04C4\u04C5"+
- "\u04C6\u04C7\u04C8\u04C9\u04CA\u04CB\u04CC\u04CD"+
- "\u04CE\u04CF\u04D0\u04D1\u04D2\u04D3\u04D4\u04D5"+
- "\u04D6\u04D7\u04D8\u04D9\u04DA\u04DB\u04DC\u04DD"+
- "\u04DE\u04DF\u04E0\u04E1\u04E2\u04E3\u04E4\u04E5"+
- "\u04E6\u04E7\u04E8\u04E9\u04EA\u04EB\u04EC\u04ED"+
- "\u04EE\u04EF\u04F0\u04F1\u04F2\u04F3\u04F4\u04F5"+
- "\u04F6\u04F7\u04F8\u04F9\u04FA\u04FB\u04FC\u04FD"+
- "\u04FE\u04FF\u0500\u0501\u0502\u0503\u0504\u0505"+
- "\u0506\u0507\u0508\u0509\u050A\u050B\u050C\u050D"+
- "\u050E\u050F\u0510\u0511\u0512\u0513\u0514\u0515"+
- "\u0516\u0517\u0518\u0519\u051A\u051B\u051C\u051D"+
- "\u051E\u051F\u0520\u0521\u0522\u0523\u0524\u0525"+
- "\u0526\u0527\u0528\u0529\u052A\u052B\u052C\u052D"+
- "\u052E\u052F\u0530\u0531\u0532\u0533\u0534\u0535"+
- "\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D"+
- "\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545"+
- "\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D"+
- "\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555"+
- "\u0556\u0557\u0558\u0559\u055A\u055B\u055C\u055D"+
- "\u055E\u055F\u0560\u0561\u0562\u0563\u0564\u0565"+
- "\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D"+
- "\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575"+
- "\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D"+
- "\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585"+
- "\u0586\u0587\u0588\u0589\u058A\u058B\u058C\u058D"+
- "\u058E\u058F\u0590\u0591\u0592\u0593\u0594\u0595"+
- "\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D"+
- "\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5"+
- "\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD"+
- "\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5"+
- "\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD"+
- "\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05C4\u05C5"+
- "\u05C6\u05C7\u05C8\u05C9\u05CA\u05CB\u05CC\u05CD"+
- "\u05CE\u05CF\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5"+
- "\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD"+
- "\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5"+
- "\u05E6\u05E7\u05E8\u05E9\u05EA\u05EB\u05EC\u05ED"+
- "\u05EE\u05EF\u05F0\u05F1\u05F2\u05F3\u05F4\u05F5"+
- "\u05F6\u05F7\u05F8\u05F9\u05FA\u05FB\u05FC\u05FD"+
- "\u05FE\u05FF\u0600\u0601\u0602\u0603\u0604\u0605"+
- "\u0606\u0607\u0608\u0609\u060A\u060B\u060C\u060D"+
- "\u060E\u060F\u0610\u0611\u0612\u0613\u0614\u0615"+
- "\u0616\u0617\u0618\u0619\u061A\u061B\u061C\u061D"+
- "\u061E\u061F\u0620\u0621\u0622\u0623\u0624\u0625"+
- "\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D"+
- "\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635"+
- "\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D"+
- "\u063E\u063F\u0640\u0641\u0642\u0643\u0644\u0645"+
- "\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D"+
- "\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655"+
- "\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D"+
- "\u065E\u065F\u0660\u0661\u0662\u0663\u0664\u0665"+
- "\u0666\u0667\u0668\u0669\u066A\u066B\u066C\u066D"+
- "\u066E\u066F\u0670\u0671\u0672\u0673\u0674\u0675"+
- "\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D"+
- "\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685"+
- "\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D"+
- "\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695"+
- "\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D"+
- "\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5"+
- "\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD"+
- "\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5"+
- "\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD"+
- "\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5"+
- "\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD"+
- "\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D4\u06D5"+
- "\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DD"+
- "\u06DE\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E5"+
- "\u06E6\u06E7\u06E8\u06E9\u06EA\u06EB\u06EC\u06ED"+
- "\u06EE\u06EF\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5"+
- "\u06F6\u06F7\u06F8\u06F9\u06FA\u06FB\u06FC\u06FD"+
- "\u06FE\u06FF\u0700\u0701\u0702\u0703\u0704\u0705"+
- "\u0706\u0707\u0708\u0709\u070A\u070B\u070C\u070D"+
- "\u070E\u070F\u0710\u0711\u0712\u0713\u0714\u0715"+
- "\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D"+
- "\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725"+
- "\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D"+
- "\u072E\u072F\u0730\u0731\u0732\u0733\u0734\u0735"+
- "\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D"+
- "\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745"+
- "\u0746\u0747\u0748\u0749\u074A\u074B\u074C\u074D"+
- "\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755"+
- "\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D"+
- "\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765"+
- "\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D"+
- "\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775"+
- "\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D"+
- "\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785"+
- "\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D"+
- "\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795"+
- "\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D"+
- "\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5"+
- "\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD"+
- "\u07AE\u07AF\u07B0\u07B1\u07B2\u07B3\u07B4\u07B5"+
- "\u07B6\u07B7\u07B8\u07B9\u07BA\u07BB\u07BC\u07BD"+
- "\u07BE\u07BF\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5"+
- "\u07C6\u07C7\u07C8\u07C9\u07CA\u07CB\u07CC\u07CD"+
- "\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5"+
- "\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD"+
- "\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5"+
- "\u07E6\u07E7\u07E8\u07E9\u07EA\u07EB\u07EC\u07ED"+
- "\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u07F4\u07F5"+
- "\u07F6\u07F7\u07F8\u07F9\u07FA\u07FB\u07FC\u07FD"+
- "\u07FE\u07FF\u0800\u0801\u0802\u0803\u0804\u0805"+
- "\u0806\u0807\u0808\u0809\u080A\u080B\u080C\u080D"+
- "\u080E\u080F\u0810\u0811\u0812\u0813\u0814\u0815"+
- "\u0816\u0817\u0818\u0819\u081A\u081B\u081C\u081D"+
- "\u081E\u081F\u0820\u0821\u0822\u0823\u0824\u0825"+
- "\u0826\u0827\u0828\u0829\u082A\u082B\u082C\u082D"+
- "\u082E\u082F\u0830\u0831\u0832\u0833\u0834\u0835"+
- "\u0836\u0837\u0838\u0839\u083A\u083B\u083C\u083D"+
- "\u083E\u083F\u0840\u0841\u0842\u0843\u0844\u0845"+
- "\u0846\u0847\u0848\u0849\u084A\u084B\u084C\u084D"+
- "\u084E\u084F\u0850\u0851\u0852\u0853\u0854\u0855"+
- "\u0856\u0857\u0858\u0859\u085A\u085B\u085C\u085D"+
- "\u085E\u085F\u0860\u0861\u0862\u0863\u0864\u0865"+
- "\u0866\u0867\u0868\u0869\u086A\u086B\u086C\u086D"+
- "\u086E\u086F\u0870\u0871\u0872\u0873\u0874\u0875"+
- "\u0876\u0877\u0878\u0879\u087A\u087B\u087C\u087D"+
- "\u087E\u087F\u0880\u0881\u0882\u0883\u0884\u0885"+
- "\u0886\u0887\u0888\u0889\u088A\u088B\u088C\u088D"+
- "\u088E\u088F\u0890\u0891\u0892\u0893\u0894\u0895"+
- "\u0896\u0897\u0898\u0899\u089A\u089B\u089C\u089D"+
- "\u089E\u089F\u08A0\u08A1\u08A2\u08A3\u08A4\u08A5"+
- "\u08A6\u08A7\u08A8\u08A9\u08AA\u08AB\u08AC\u08AD"+
- "\u08AE\u08AF\u08B0\u08B1\u08B2\u08B3\u08B4\u08B5"+
- "\u08B6\u08B7\u08B8\u08B9\u08BA\u08BB\u08BC\u08BD"+
- "\u08BE\u08BF\u08C0\u08C1\u08C2\u08C3\u08C4\u08C5"+
- "\u08C6\u08C7\u08C8\u08C9\u08CA\u08CB\u08CC\u08CD"+
- "\u08CE\u08CF\u08D0\u08D1\u08D2\u08D3\u08D4\u08D5"+
- "\u08D6\u08D7\u08D8\u08D9\u08DA\u08DB\u08DC\u08DD"+
- "\u08DE\u08DF\u08E0\u08E1\u08E2\u08E3\u08E4\u08E5"+
- "\u08E6\u08E7\u08E8\u08E9\u08EA\u08EB\u08EC\u08ED"+
- "\u08EE\u08EF\u08F0\u08F1\u08F2\u08F3\u08F4\u08F5"+
- "\u08F6\u08F7\u08F8\u08F9\u08FA\u08FB\u08FC\u08FD"+
- "\u08FE\u08FF\u0900\u0901\u0902\u0903\u0904\u0905"+
- "\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D"+
- "\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915"+
- "\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D"+
- "\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925"+
- "\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D"+
- "\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935"+
- "\u0936\u0937\u0938\u0939\u093A\u093B\u093C\u093D"+
- "\u093E\u093F\u0940\u0941\u0942\u0943\u0944\u0945"+
- "\u0946\u0947\u0948\u0949\u094A\u094B\u094C\u094D"+
- "\u094E\u094F\u0950\u0951\u0952\u0953\u0954\u0955"+
- "\u0956\u0957\u0958\u0959\u095A\u095B\u095C\u095D"+
- "\u095E\u095F\u0960\u0961\u0962\u0963\u0964\u0965"+
- "\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D"+
- "\u096E\u096F\u0970\u0971\u0972\u0973\u0974\u0975"+
- "\u0976\u0977\u0978\u0979\u097A\u097B\u097C\u097D"+
- "\u097E\u097F\u0980\u0981\u0982\u0983\u0984\u0985"+
- "\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098D"+
- "\u098E\u098F\u0990\u0991\u0992\u0993\u0994\u0995"+
- "\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D"+
- "\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5"+
- "\u09A6\u09A7\u09A8\u09A9\u09AA\u09AB\u09AC\u09AD"+
- "\u09AE\u09AF\u09B0\u09B1\u09B2\u09B3\u09B4\u09B5"+
- "\u09B6\u09B7\u09B8\u09B9\u09BA\u09BB\u09BC\u09BD"+
- "\u09BE\u09BF\u09C0\u09C1\u09C2\u09C3\u09C4\u09C5"+
- "\u09C6\u09C7\u09C8\u09C9\u09CA\u09CB\u09CC\u09CD"+
- "\u09CE\u09CF\u09D0\u09D1\u09D2\u09D3\u09D4\u09D5"+
- "\u09D6\u09D7\u09D8\u09D9\u09DA\u09DB\u09DC\u09DD"+
- "\u09DE\u09DF\u09E0\u09E1\u09E2\u09E3\u09E4\u09E5"+
- "\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED"+
- "\u09EE\u09EF\u09F0\u09F1\u09F2\u09F3\u09F4\u09F5"+
- "\u09F6\u09F7\u09F8\u09F9\u09FA\u09FB\u09FC\u09FD"+
- "\u09FE\u09FF\u0A00\u0A01\u0A02\u0A03\u0A04\u0A05"+
- "\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0B\u0A0C\u0A0D"+
- "\u0A0E\u0A0F\u0A10\u0A11\u0A12\u0A13\u0A14\u0A15"+
- "\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D"+
- "\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25"+
- "\u0A26\u0A27\u0A28\u0A29\u0A2A\u0A2B\u0A2C\u0A2D"+
- "\u0A2E\u0A2F\u0A30\u0A31\u0A32\u0A33\u0A34\u0A35"+
- "\u0A36\u0A37\u0A38\u0A39\u0A3A\u0A3B\u0A3C\u0A3D"+
- "\u0A3E\u0A3F\u0A40\u0A41\u0A42\u0A43\u0A44\u0A45"+
- "\u0A46\u0A47\u0A48\u0A49\u0A4A\u0A4B\u0A4C\u0A4D"+
- "\u0A4E\u0A4F\u0A50\u0A51\u0A52\u0A53\u0A54\u0A55"+
- "\u0A56\u0A57\u0A58\u0A59\u0A5A\u0A5B\u0A5C\u0A5D"+
- "\u0A5E\u0A5F\u0A60\u0A61\u0A62\u0A63\u0A64\u0A65"+
- "\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D"+
- "\u0A6E\u0A6F\u0A70\u0A71\u0A72\u0A73\u0A74\u0A75"+
- "\u0A76\u0A77\u0A78\u0A79\u0A7A\u0A7B\u0A7C\u0A7D"+
- "\u0A7E\u0A7F\u0A80\u0A81\u0A82\u0A83\u0A84\u0A85"+
- "\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D"+
- "\u0A8E\u0A8F\u0A90\u0A91\u0A92\u0A93\u0A94\u0A95"+
- "\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D"+
- "\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5"+
- "\u0AA6\u0AA7\u0AA8\u0AA9\u0AAA\u0AAB\u0AAC\u0AAD"+
- "\u0AAE\u0AAF\u0AB0\u0AB1\u0AB2\u0AB3\u0AB4\u0AB5"+
- "\u0AB6\u0AB7\u0AB8\u0AB9\u0ABA\u0ABB\u0ABC\u0ABD"+
- "\u0ABE\u0ABF\u0AC0\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5"+
- "\u0AC6\u0AC7\u0AC8\u0AC9\u0ACA\u0ACB\u0ACC\u0ACD"+
- "\u0ACE\u0ACF\u0AD0\u0AD1\u0AD2\u0AD3\u0AD4\u0AD5"+
- "\u0AD6\u0AD7\u0AD8\u0AD9\u0ADA\u0ADB\u0ADC\u0ADD"+
- "\u0ADE\u0ADF\u0AE0\u0AE1\u0AE2\u0AE3\u0AE4\u0AE5"+
- "\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED"+
- "\u0AEE\u0AEF\u0AF0\u0AF1\u0AF2\u0AF3\u0AF4\u0AF5"+
- "\u0AF6\u0AF7\u0AF8\u0AF9\u0AFA\u0AFB\u0AFC\u0AFD"+
- "\u0AFE\u0AFF\u0B00\u0B01\u0B02\u0B03\u0B04\u0B05"+
- "\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0D"+
- "\u0B0E\u0B0F\u0B10\u0B11\u0B12\u0B13\u0B14\u0B15"+
- "\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D"+
- "\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25"+
- "\u0B26\u0B27\u0B28\u0B29\u0B2A\u0B2B\u0B2C\u0B2D"+
- "\u0B2E\u0B2F\u0B30\u0B31\u0B32\u0B33\u0B34\u0B35"+
- "\u0B36\u0B37\u0B38\u0B39\u0B3A\u0B3B\u0B3C\u0B3D"+
- "\u0B3E\u0B3F\u0B40\u0B41\u0B42\u0B43\u0B44\u0B45"+
- "\u0B46\u0B47\u0B48\u0B49\u0B4A\u0B4B\u0B4C\u0B4D"+
- "\u0B4E\u0B4F\u0B50\u0B51\u0B52\u0B53\u0B54\u0B55"+
- "\u0B56\u0B57\u0B58\u0B59\u0B5A\u0B5B\u0B5C\u0B5D"+
- "\u0B5E\u0B5F\u0B60\u0B61\u0B62\u0B63\u0B64\u0B65"+
- "\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D"+
- "\u0B6E\u0B6F\u0B70\u0B71\u0B72\u0B73\u0B74\u0B75"+
- "\u0B76\u0B77\u0B78\u0B79\u0B7A\u0B7B\u0B7C\u0B7D"+
- "\u0B7E\u0B7F\u0B80\u0B81\u0B82\u0B83\u0B84\u0B85"+
- "\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8B\u0B8C\u0B8D"+
- "\u0B8E\u0B8F\u0B90\u0B91\u0B92\u0B93\u0B94\u0B95"+
- "\u0B96\u0B97\u0B98\u0B99\u0B9A\u0B9B\u0B9C\u0B9D"+
- "\u0B9E\u0B9F\u0BA0\u0BA1\u0BA2\u0BA3\u0BA4\u0BA5"+
- "\u0BA6\u0BA7\u0BA8\u0BA9\u0BAA\u0BAB\u0BAC\u0BAD"+
- "\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5"+
- "\u0BB6\u0BB7\u0BB8\u0BB9\u0BBA\u0BBB\u0BBC\u0BBD"+
- "\u0BBE\u0BBF\u0BC0\u0BC1\u0BC2\u0BC3\u0BC4\u0BC5"+
- "\u0BC6\u0BC7\u0BC8\u0BC9\u0BCA\u0BCB\u0BCC\u0BCD"+
- "\u0BCE\u0BCF\u0BD0\u0BD1\u0BD2\u0BD3\u0BD4\u0BD5"+
- "\u0BD6\u0BD7\u0BD8\u0BD9\u0BDA\u0BDB\u0BDC\u0BDD"+
- "\u0BDE\u0BDF\u0BE0\u0BE1\u0BE2\u0BE3\u0BE4\u0BE5"+
- "\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED"+
- "\u0BEE\u0BEF\u0BF0\u0BF1\u0BF2\u0BF3\u0BF4\u0BF5"+
- "\u0BF6\u0BF7\u0BF8\u0BF9\u0BFA\u0BFB\u0BFC\u0BFD"+
- "\u0BFE\u0BFF\u0C00\u0C01\u0C02\u0C03\u0C04\u0C05"+
- "\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0D"+
- "\u0C0E\u0C0F\u0C10\u0C11\u0C12\u0C13\u0C14\u0C15"+
- "\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D"+
- "\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25"+
- "\u0C26\u0C27\u0C28\u0C29\u0C2A\u0C2B\u0C2C\u0C2D"+
- "\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C34\u0C35"+
- "\u0C36\u0C37\u0C38\u0C39\u0C3A\u0C3B\u0C3C\u0C3D"+
- "\u0C3E\u0C3F\u0C40\u0C41\u0C42\u0C43\u0C44\u0C45"+
- "\u0C46\u0C47\u0C48\u0C49\u0C4A\u0C4B\u0C4C\u0C4D"+
- "\u0C4E\u0C4F\u0C50\u0C51\u0C52\u0C53\u0C54\u0C55"+
- "\u0C56\u0C57\u0C58\u0C59\u0C5A\u0C5B\u0C5C\u0C5D"+
- "\u0C5E\u0C5F\u0C60\u0C61\u0C62\u0C63\u0C64\u0C65"+
- "\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D"+
- "\u0C6E\u0C6F\u0C70\u0C71\u0C72\u0C73\u0C74\u0C75"+
- "\u0C76\u0C77\u0C78\u0C79\u0C7A\u0C7B\u0C7C\u0C7D"+
- "\u0C7E\u0C7F\u0C80\u0C81\u0C82\u0C83\u0C84\u0C85"+
- "\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8D"+
- "\u0C8E\u0C8F\u0C90\u0C91\u0C92\u0C93\u0C94\u0C95"+
- "\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D"+
- "\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5"+
- "\u0CA6\u0CA7\u0CA8\u0CA9\u0CAA\u0CAB\u0CAC\u0CAD"+
- "\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB4\u0CB5"+
- "\u0CB6\u0CB7\u0CB8\u0CB9\u0CBA\u0CBB\u0CBC\u0CBD"+
- "\u0CBE\u0CBF\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC5"+
- "\u0CC6\u0CC7\u0CC8\u0CC9\u0CCA\u0CCB\u0CCC\u0CCD"+
- "\u0CCE\u0CCF\u0CD0\u0CD1\u0CD2\u0CD3\u0CD4\u0CD5"+
- "\u0CD6\u0CD7\u0CD8\u0CD9\u0CDA\u0CDB\u0CDC\u0CDD"+
- "\u0CDE\u0CDF\u0CE0\u0CE1\u0CE2\u0CE3\u0CE4\u0CE5"+
- "\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED"+
- "\u0CEE\u0CEF\u0CF0\u0CF1\u0CF2\u0CF3\u0CF4\u0CF5"+
- "\u0CF6\u0CF7\u0CF8\u0CF9\u0CFA\u0CFB\u0CFC\u0CFD"+
- "\u0CFE\u0CFF\u0D00\u0D01\u0D02\u0D03\u0D04\u0D05"+
- "\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0D"+
- "\u0D0E\u0D0F\u0D10\u0D11\u0D12\u0D13\u0D14\u0D15"+
- "\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D"+
- "\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25"+
- "\u0D26\u0D27\u0D28\u0D29\u0D2A\u0D2B\u0D2C\u0D2D"+
- "\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35"+
- "\u0D36\u0D37\u0D38\u0D39\u0D3A\u0D3B\u0D3C\u0D3D"+
- "\u0D3E\u0D3F\u0D40\u0D41\u0D42\u0D43\u0D44\u0D45"+
- "\u0D46\u0D47\u0D48\u0D49\u0D4A\u0D4B\u0D4C\u0D4D"+
- "\u0D4E\u0D4F\u0D50\u0D51\u0D52\u0D53\u0D54\u0D55"+
- "\u0D56\u0D57\u0D58\u0D59\u0D5A\u0D5B\u0D5C\u0D5D"+
- "\u0D5E\u0D5F\u0D60\u0D61\u0D62\u0D63\u0D64\u0D65"+
- "\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D"+
- "\u0D6E\u0D6F\u0D70\u0D71\u0D72\u0D73\u0D74\u0D75"+
- "\u0D76\u0D77\u0D78\u0D79\u0D7A\u0D7B\u0D7C\u0D7D"+
- "\u0D7E\u0D7F\u0D80\u0D81\u0D82\u0D83\u0D84\u0D85"+
- "\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D"+
- "\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95"+
- "\u0D96\u0D97\u0D98\u0D99\u0D9A\u0D9B\u0D9C\u0D9D"+
- "\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5"+
- "\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD"+
- "\u0DAE\u0DAF\u0DB0\u0DB1\u0DB2\u0DB3\u0DB4\u0DB5"+
- "\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBC\u0DBD"+
- "\u0DBE\u0DBF\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5"+
- "\u0DC6\u0DC7\u0DC8\u0DC9\u0DCA\u0DCB\u0DCC\u0DCD"+
- "\u0DCE\u0DCF\u0DD0\u0DD1\u0DD2\u0DD3\u0DD4\u0DD5"+
- "\u0DD6\u0DD7\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD"+
- "\u0DDE\u0DDF\u0DE0\u0DE1\u0DE2\u0DE3\u0DE4\u0DE5"+
- "\u0DE6\u0DE7\u0DE8\u0DE9\u0DEA\u0DEB\u0DEC\u0DED"+
- "\u0DEE\u0DEF\u0DF0\u0DF1\u0DF2\u0DF3\u0DF4\u0DF5"+
- "\u0DF6\u0DF7\u0DF8\u0DF9\u0DFA\u0DFB\u0DFC\u0DFD"+
- "\u0DFE\u0DFF\u0E00\u0E01\u0E02\u0E03\u0E04\u0E05"+
- "\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D"+
- "\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15"+
- "\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D"+
- "\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25"+
- "\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D"+
- "\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35"+
- "\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E3B\u0E3C\u0E3D"+
- "\u0E3E\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45"+
- "\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D"+
- "\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55"+
- "\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\u0E5C\u0E5D"+
- "\u0E5E\u0E5F\u0E60\u0E61\u0E62\u0E63\u0E64\u0E65"+
- "\u0E66\u0E67\u0E68\u0E69\u0E6A\u0E6B\u0E6C\u0E6D"+
- "\u0E6E\u0E6F\u0E70\u0E71\u0E72\u0E73\u0E74\u0E75"+
- "\u0E76\u0E77\u0E78\u0E79\u0E7A\u0E7B\u0E7C\u0E7D"+
- "\u0E7E\u0E7F\u0E80\u0E81\u0E82\u0E83\u0E84\u0E85"+
- "\u0E86\u0E87\u0E88\u0E89\u0E8A\u0E8B\u0E8C\u0E8D"+
- "\u0E8E\u0E8F\u0E90\u0E91\u0E92\u0E93\u0E94\u0E95"+
- "\u0E96\u0E97\u0E98\u0E99\u0E9A\u0E9B\u0E9C\u0E9D"+
- "\u0E9E\u0E9F\u0EA0\u0EA1\u0EA2\u0EA3\u0EA4\u0EA5"+
- "\u0EA6\u0EA7\u0EA8\u0EA9\u0EAA\u0EAB\u0EAC\u0EAD"+
- "\u0EAE\u0EAF\u0EB0\u0EB1\u0EB2\u0EB3\u0EB4\u0EB5"+
- "\u0EB6\u0EB7\u0EB8\u0EB9\u0EBA\u0EBB\u0EBC\u0EBD"+
- "\u0EBE\u0EBF\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC5"+
- "\u0EC6\u0EC7\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD"+
- "\u0ECE\u0ECF\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5"+
- "\u0ED6\u0ED7\u0ED8\u0ED9\u0EDA\u0EDB\u0EDC\u0EDD"+
- "\u0EDE\u0EDF\u0EE0\u0EE1\u0EE2\u0EE3\u0EE4\u0EE5"+
- "\u0EE6\u0EE7\u0EE8\u0EE9\u0EEA\u0EEB\u0EEC\u0EED"+
- "\u0EEE\u0EEF\u0EF0\u0EF1\u0EF2\u0EF3\u0EF4\u0EF5"+
- "\u0EF6\u0EF7\u0EF8\u0EF9\u0EFA\u0EFB\u0EFC\u0EFD"+
- "\u0EFE\u0EFF\u0F00\u0F01\u0F02\u0F03\u0F04\u0F05"+
- "\u0F06\u0F07\u0F08\u0F09\u0F0A\u0F0B\u0F0C\u0F0D"+
- "\u0F0E\u0F0F\u0F10\u0F11\u0F12\u0F13\u0F14\u0F15"+
- "\u0F16\u0F17\u0F18\u0F19\u0F1A\u0F1B\u0F1C\u0F1D"+
- "\u0F1E\u0F1F\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25"+
- "\u0F26\u0F27\u0F28\u0F29\u0F2A\u0F2B\u0F2C\u0F2D"+
- "\u0F2E\u0F2F\u0F30\u0F31\u0F32\u0F33\u0F34\u0F35"+
- "\u0F36\u0F37\u0F38\u0F39\u0F3A\u0F3B\u0F3C\u0F3D"+
- "\u0F3E\u0F3F\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45"+
- "\u0F46\u0F47\u0F48\u0F49\u0F4A\u0F4B\u0F4C\u0F4D"+
- "\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55"+
- "\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D"+
- "\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65"+
- "\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F6D"+
- "\u0F6E\u0F6F\u0F70\u0F71\u0F72\u0F73\u0F74\u0F75"+
- "\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D"+
- "\u0F7E\u0F7F\u0F80\u0F81\u0F82\u0F83\u0F84\u0F85"+
- "\u0F86\u0F87\u0F88\u0F89\u0F8A\u0F8B\u0F8C\u0F8D"+
- "\u0F8E\u0F8F\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95"+
- "\u0F96\u0F97\u0F98\u0F99\u0F9A\u0F9B\u0F9C\u0F9D"+
- "\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5"+
- "\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD"+
- "\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5"+
- "\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FBD"+
- "\u0FBE\u0FBF\u0FC0\u0FC1\u0FC2\u0FC3\u0FC4\u0FC5"+
- "\u0FC6\u0FC7\u0FC8\u0FC9\u0FCA\u0FCB\u0FCC\u0FCD"+
- "\u0FCE\u0FCF\u0FD0\u0FD1\u0FD2\u0FD3\u0FD4\u0FD5"+
- "\u0FD6\u0FD7\u0FD8\u0FD9\u0FDA\u0FDB\u0FDC\u0FDD"+
- "\u0FDE\u0FDF\u0FE0\u0FE1\u0FE2\u0FE3\u0FE4\u0FE5"+
- "\u0FE6\u0FE7\u0FE8\u0FE9\u0FEA\u0FEB\u0FEC\u0FED"+
- "\u0FEE\u0FEF\u0FF0\u0FF1\u0FF2\u0FF3\u0FF4\u0FF5"+
- "\u0FF6\u0FF7\u0FF8\u0FF9\u0FFA\u0FFB\u0FFC\u0FFD"+
- "\u0FFE\u0FFF\u1000\u1001\u1002\u1003\u1004\u1005"+
- "\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D"+
- "\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015"+
- "\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D"+
- "\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025"+
- "\u1026\u1027\u1028\u1029\u102A\u102B\u102C\u102D"+
- "\u102E\u102F\u1030\u1031\u1032\u1033\u1034\u1035"+
- "\u1036\u1037\u1038\u1039\u103A\u103B\u103C\u103D"+
- "\u103E\u103F\u1040\u1041\u1042\u1043\u1044\u1045"+
- "\u1046\u1047\u1048\u1049\u104A\u104B\u104C\u104D"+
- "\u104E\u104F\u1050\u1051\u1052\u1053\u1054\u1055"+
- "\u1056\u1057\u1058\u1059\u105A\u105B\u105C\u105D"+
- "\u105E\u105F\u1060\u1061\u1062\u1063\u1064\u1065"+
- "\u1066\u1067\u1068\u1069\u106A\u106B\u106C\u106D"+
- "\u106E\u106F\u1070\u1071\u1072\u1073\u1074\u1075"+
- "\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D"+
- "\u107E\u107F\u1080\u1081\u1082\u1083\u1084\u1085"+
- "\u1086\u1087\u1088\u1089\u108A\u108B\u108C\u108D"+
- "\u108E\u108F\u1090\u1091\u1092\u1093\u1094\u1095"+
- "\u1096\u1097\u1098\u1099\u109A\u109B\u109C\u109D"+
- "\u109E\u109F\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5"+
- "\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD"+
- "\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5"+
- "\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD"+
- "\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5"+
- "\u10C6\u10C7\u10C8\u10C9\u10CA\u10CB\u10CC\u10CD"+
- "\u10CE\u10CF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5"+
- "\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD"+
- "\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5"+
- "\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED"+
- "\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5"+
- "\u10F6\u10F7\u10F8\u10F9\u10FA\u10FB\u10FC\u10FD"+
- "\u10FE\u10FF\u1100\u1101\u1102\u1103\u1104\u1105"+
- "\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D"+
- "\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115"+
- "\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D";
-
- private final static String innerDecoderIndex1=
- "\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125"+
- "\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D"+
- "\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135"+
- "\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D"+
- "\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145"+
- "\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D"+
- "\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155"+
- "\u1156\u1157\u1158\u1159\u115A\u115B\u115C\u115D"+
- "\u115E\u115F\u1160\u1161\u1162\u1163\u1164\u1165"+
- "\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D"+
- "\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175"+
- "\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D"+
- "\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185"+
- "\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D"+
- "\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195"+
- "\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D"+
- "\u119E\u119F\u11A0\u11A1\u11A2\u11A3\u11A4\u11A5"+
- "\u11A6\u11A7\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD"+
- "\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5"+
- "\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD"+
- "\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5"+
- "\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD"+
- "\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5"+
- "\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD"+
- "\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5"+
- "\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED"+
- "\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5"+
- "\u11F6\u11F7\u11F8\u11F9\u11FA\u11FB\u11FC\u11FD"+
- "\u11FE\u11FF\u1200\u1201\u1202\u1203\u1204\u1205"+
- "\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D"+
- "\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215"+
- "\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D"+
- "\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225"+
- "\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D"+
- "\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235"+
- "\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D"+
- "\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245"+
- "\u1246\u1247\u1248\u1249\u124A\u124B\u124C\u124D"+
- "\u124E\u124F\u1250\u1251\u1252\u1253\u1254\u1255"+
- "\u1256\u1257\u1258\u1259\u125A\u125B\u125C\u125D"+
- "\u125E\u125F\u1260\u1261\u1262\u1263\u1264\u1265"+
- "\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D"+
- "\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275"+
- "\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D"+
- "\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285"+
- "\u1286\u1287\u1288\u1289\u128A\u128B\u128C\u128D"+
- "\u128E\u128F\u1290\u1291\u1292\u1293\u1294\u1295"+
- "\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D"+
- "\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5"+
- "\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD"+
- "\u12AE\u12AF\u12B0\u12B1\u12B2\u12B3\u12B4\u12B5"+
- "\u12B6\u12B7\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD"+
- "\u12BE\u12BF\u12C0\u12C1\u12C2\u12C3\u12C4\u12C5"+
- "\u12C6\u12C7\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD"+
- "\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5"+
- "\u12D6\u12D7\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD"+
- "\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5"+
- "\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED"+
- "\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5"+
- "\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD"+
- "\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305"+
- "\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D"+
- "\u130E\u130F\u1310\u1311\u1312\u1313\u1314\u1315"+
- "\u1316\u1317\u1318\u1319\u131A\u131B\u131C\u131D"+
- "\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325"+
- "\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D"+
- "\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335"+
- "\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D"+
- "\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345"+
- "\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D"+
- "\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355"+
- "\u1356\u1357\u1358\u1359\u135A\u135B\u135C\u135D"+
- "\u135E\u135F\u1360\u1361\u1362\u1363\u1364\u1365"+
- "\u1366\u1367\u1368\u1369\u136A\u136B\u136C\u136D"+
- "\u136E\u136F\u1370\u1371\u1372\u1373\u1374\u1375"+
- "\u1376\u1377\u1378\u1379\u137A\u137B\u137C\u137D"+
- "\u137E\u137F\u1380\u1381\u1382\u1383\u1384\u1385"+
- "\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D"+
- "\u138E\u138F\u1390\u1391\u1392\u1393\u1394\u1395"+
- "\u1396\u1397\u1398\u1399\u139A\u139B\u139C\u139D"+
- "\u139E\u139F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5"+
- "\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD"+
- "\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5"+
- "\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD"+
- "\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5"+
- "\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD"+
- "\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5"+
- "\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD"+
- "\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5"+
- "\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED"+
- "\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u13F5"+
- "\u13F6\u13F7\u13F8\u13F9\u13FA\u13FB\u13FC\u13FD"+
- "\u13FE\u13FF\u1400\u1401\u1402\u1403\u1404\u1405"+
- "\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D"+
- "\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415"+
- "\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D"+
- "\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425"+
- "\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D"+
- "\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435"+
- "\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D"+
- "\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445"+
- "\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D"+
- "\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455"+
- "\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D"+
- "\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465"+
- "\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D"+
- "\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475"+
- "\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D"+
- "\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485"+
- "\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D"+
- "\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495"+
- "\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D"+
- "\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5"+
- "\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD"+
- "\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5"+
- "\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD"+
- "\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5"+
- "\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD"+
- "\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5"+
- "\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD"+
- "\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5"+
- "\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED"+
- "\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5"+
- "\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD"+
- "\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505"+
- "\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D"+
- "\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515"+
- "\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D"+
- "\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525"+
- "\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D"+
- "\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535"+
- "\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D"+
- "\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545"+
- "\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D"+
- "\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555"+
- "\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D"+
- "\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565"+
- "\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D"+
- "\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575"+
- "\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D"+
- "\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585"+
- "\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D"+
- "\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595"+
- "\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D"+
- "\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5"+
- "\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD"+
- "\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5"+
- "\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD"+
- "\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5"+
- "\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD"+
- "\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5"+
- "\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD"+
- "\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5"+
- "\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED"+
- "\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5"+
- "\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD"+
- "\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605"+
- "\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D"+
- "\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615"+
- "\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D"+
- "\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625"+
- "\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D"+
- "\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635"+
- "\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D"+
- "\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645"+
- "\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D"+
- "\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655"+
- "\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D"+
- "\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665"+
- "\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166D"+
- "\u166E\u166F\u1670\u1671\u1672\u1673\u1674\u1675"+
- "\u1676\u1677\u1678\u1679\u167A\u167B\u167C\u167D"+
- "\u167E\u167F\u1680\u1681\u1682\u1683\u1684\u1685"+
- "\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D"+
- "\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695"+
- "\u1696\u1697\u1698\u1699\u169A\u169B\u169C\u169D"+
- "\u169E\u169F\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5"+
- "\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD"+
- "\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5"+
- "\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD"+
- "\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5"+
- "\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD"+
- "\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5"+
- "\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD"+
- "\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5"+
- "\u16E6\u16E7\u16E8\u16E9\u16EA\u16EB\u16EC\u16ED"+
- "\u16EE\u16EF\u16F0\u16F1\u16F2\u16F3\u16F4\u16F5"+
- "\u16F6\u16F7\u16F8\u16F9\u16FA\u16FB\u16FC\u16FD"+
- "\u16FE\u16FF\u1700\u1701\u1702\u1703\u1704\u1705"+
- "\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170D"+
- "\u170E\u170F\u1710\u1711\u1712\u1713\u1714\u1715"+
- "\u1716\u1717\u1718\u1719\u171A\u171B\u171C\u171D"+
- "\u171E\u171F\u1720\u1721\u1722\u1723\u1724\u1725"+
- "\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D"+
- "\u172E\u172F\u1730\u1731\u1732\u1733\u1734\u1735"+
- "\u1736\u1737\u1738\u1739\u173A\u173B\u173C\u173D"+
- "\u173E\u173F\u1740\u1741\u1742\u1743\u1744\u1745"+
- "\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D"+
- "\u174E\u174F\u1750\u1751\u1752\u1753\u1754\u1755"+
- "\u1756\u1757\u1758\u1759\u175A\u175B\u175C\u175D"+
- "\u175E\u175F\u1760\u1761\u1762\u1763\u1764\u1765"+
- "\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176D"+
- "\u176E\u176F\u1770\u1771\u1772\u1773\u1774\u1775"+
- "\u1776\u1777\u1778\u1779\u177A\u177B\u177C\u177D"+
- "\u177E\u177F\u1780\u1781\u1782\u1783\u1784\u1785"+
- "\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D"+
- "\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795"+
- "\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D"+
- "\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5"+
- "\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD"+
- "\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17B4\u17B5"+
- "\u17B6\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD"+
- "\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5"+
- "\u17C6\u17C7\u17C8\u17C9\u17CA\u17CB\u17CC\u17CD"+
- "\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17D4\u17D5"+
- "\u17D6\u17D7\u17D8\u17D9\u17DA\u17DB\u17DC\u17DD"+
- "\u17DE\u17DF\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5"+
- "\u17E6\u17E7\u17E8\u17E9\u17EA\u17EB\u17EC\u17ED"+
- "\u17EE\u17EF\u17F0\u17F1\u17F2\u17F3\u17F4\u17F5"+
- "\u17F6\u17F7\u17F8\u17F9\u17FA\u17FB\u17FC\u17FD"+
- "\u17FE\u17FF\u1800\u1801\u1802\u1803\u1804\u1805"+
- "\u1806\u1807\u1808\u1809\u180A\u180B\u180C\u180D"+
- "\u180E\u180F\u1810\u1811\u1812\u1813\u1814\u1815"+
- "\u1816\u1817\u1818\u1819\u181A\u181B\u181C\u181D"+
- "\u181E\u181F\u1820\u1821\u1822\u1823\u1824\u1825"+
- "\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D"+
- "\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835"+
- "\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D"+
- "\u183E\u183F\u1840\u1841\u1842\u1843\u1844\u1845"+
- "\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D"+
- "\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855"+
- "\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D"+
- "\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865"+
- "\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D"+
- "\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875"+
- "\u1876\u1877\u1878\u1879\u187A\u187B\u187C\u187D"+
- "\u187E\u187F\u1880\u1881\u1882\u1883\u1884\u1885"+
- "\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D"+
- "\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895"+
- "\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D"+
- "\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5"+
- "\u18A6\u18A7\u18A8\u18A9\u18AA\u18AB\u18AC\u18AD"+
- "\u18AE\u18AF\u18B0\u18B1\u18B2\u18B3\u18B4\u18B5"+
- "\u18B6\u18B7\u18B8\u18B9\u18BA\u18BB\u18BC\u18BD"+
- "\u18BE\u18BF\u18C0\u18C1\u18C2\u18C3\u18C4\u18C5"+
- "\u18C6\u18C7\u18C8\u18C9\u18CA\u18CB\u18CC\u18CD"+
- "\u18CE\u18CF\u18D0\u18D1\u18D2\u18D3\u18D4\u18D5"+
- "\u18D6\u18D7\u18D8\u18D9\u18DA\u18DB\u18DC\u18DD"+
- "\u18DE\u18DF\u18E0\u18E1\u18E2\u18E3\u18E4\u18E5"+
- "\u18E6\u18E7\u18E8\u18E9\u18EA\u18EB\u18EC\u18ED"+
- "\u18EE\u18EF\u18F0\u18F1\u18F2\u18F3\u18F4\u18F5"+
- "\u18F6\u18F7\u18F8\u18F9\u18FA\u18FB\u18FC\u18FD"+
- "\u18FE\u18FF\u1900\u1901\u1902\u1903\u1904\u1905"+
- "\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D"+
- "\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915"+
- "\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u191D"+
- "\u191E\u191F\u1920\u1921\u1922\u1923\u1924\u1925"+
- "\u1926\u1927\u1928\u1929\u192A\u192B\u192C\u192D"+
- "\u192E\u192F\u1930\u1931\u1932\u1933\u1934\u1935"+
- "\u1936\u1937\u1938\u1939\u193A\u193B\u193C\u193D"+
- "\u193E\u193F\u1940\u1941\u1942\u1943\u1944\u1945"+
- "\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D"+
- "\u194E\u194F\u1950\u1951\u1952\u1953\u1954\u1955"+
- "\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D"+
- "\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965"+
- "\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D"+
- "\u196E\u196F\u1970\u1971\u1972\u1973\u1974\u1975"+
- "\u1976\u1977\u1978\u1979\u197A\u197B\u197C\u197D"+
- "\u197E\u197F\u1980\u1981\u1982\u1983\u1984\u1985"+
- "\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D"+
- "\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995"+
- "\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D"+
- "\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5"+
- "\u19A6\u19A7\u19A8\u19A9\u19AA\u19AB\u19AC\u19AD"+
- "\u19AE\u19AF\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5"+
- "\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD"+
- "\u19BE\u19BF\u19C0\u19C1\u19C2\u19C3\u19C4\u19C5"+
- "\u19C6\u19C7\u19C8\u19C9\u19CA\u19CB\u19CC\u19CD"+
- "\u19CE\u19CF\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5"+
- "\u19D6\u19D7\u19D8\u19D9\u19DA\u19DB\u19DC\u19DD"+
- "\u19DE\u19DF\u19E0\u19E1\u19E2\u19E3\u19E4\u19E5"+
- "\u19E6\u19E7\u19E8\u19E9\u19EA\u19EB\u19EC\u19ED"+
- "\u19EE\u19EF\u19F0\u19F1\u19F2\u19F3\u19F4\u19F5"+
- "\u19F6\u19F7\u19F8\u19F9\u19FA\u19FB\u19FC\u19FD"+
- "\u19FE\u19FF\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05"+
- "\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D"+
- "\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15"+
- "\u1A16\u1A17\u1A18\u1A19\u1A1A\u1A1B\u1A1C\u1A1D"+
- "\u1A1E\u1A1F\u1A20\u1A21\u1A22\u1A23\u1A24\u1A25"+
- "\u1A26\u1A27\u1A28\u1A29\u1A2A\u1A2B\u1A2C\u1A2D"+
- "\u1A2E\u1A2F\u1A30\u1A31\u1A32\u1A33\u1A34\u1A35"+
- "\u1A36\u1A37\u1A38\u1A39\u1A3A\u1A3B\u1A3C\u1A3D"+
- "\u1A3E\u1A3F\u1A40\u1A41\u1A42\u1A43\u1A44\u1A45"+
- "\u1A46\u1A47\u1A48\u1A49\u1A4A\u1A4B\u1A4C\u1A4D"+
- "\u1A4E\u1A4F\u1A50\u1A51\u1A52\u1A53\u1A54\u1A55"+
- "\u1A56\u1A57\u1A58\u1A59\u1A5A\u1A5B\u1A5C\u1A5D"+
- "\u1A5E\u1A5F\u1A60\u1A61\u1A62\u1A63\u1A64\u1A65"+
- "\u1A66\u1A67\u1A68\u1A69\u1A6A\u1A6B\u1A6C\u1A6D"+
- "\u1A6E\u1A6F\u1A70\u1A71\u1A72\u1A73\u1A74\u1A75"+
- "\u1A76\u1A77\u1A78\u1A79\u1A7A\u1A7B\u1A7C\u1A7D"+
- "\u1A7E\u1A7F\u1A80\u1A81\u1A82\u1A83\u1A84\u1A85"+
- "\u1A86\u1A87\u1A88\u1A89\u1A8A\u1A8B\u1A8C\u1A8D"+
- "\u1A8E\u1A8F\u1A90\u1A91\u1A92\u1A93\u1A94\u1A95"+
- "\u1A96\u1A97\u1A98\u1A99\u1A9A\u1A9B\u1A9C\u1A9D"+
- "\u1A9E\u1A9F\u1AA0\u1AA1\u1AA2\u1AA3\u1AA4\u1AA5"+
- "\u1AA6\u1AA7\u1AA8\u1AA9\u1AAA\u1AAB\u1AAC\u1AAD"+
- "\u1AAE\u1AAF\u1AB0\u1AB1\u1AB2\u1AB3\u1AB4\u1AB5"+
- "\u1AB6\u1AB7\u1AB8\u1AB9\u1ABA\u1ABB\u1ABC\u1ABD"+
- "\u1ABE\u1ABF\u1AC0\u1AC1\u1AC2\u1AC3\u1AC4\u1AC5"+
- "\u1AC6\u1AC7\u1AC8\u1AC9\u1ACA\u1ACB\u1ACC\u1ACD"+
- "\u1ACE\u1ACF\u1AD0\u1AD1\u1AD2\u1AD3\u1AD4\u1AD5"+
- "\u1AD6\u1AD7\u1AD8\u1AD9\u1ADA\u1ADB\u1ADC\u1ADD"+
- "\u1ADE\u1ADF\u1AE0\u1AE1\u1AE2\u1AE3\u1AE4\u1AE5"+
- "\u1AE6\u1AE7\u1AE8\u1AE9\u1AEA\u1AEB\u1AEC\u1AED"+
- "\u1AEE\u1AEF\u1AF0\u1AF1\u1AF2\u1AF3\u1AF4\u1AF5"+
- "\u1AF6\u1AF7\u1AF8\u1AF9\u1AFA\u1AFB\u1AFC\u1AFD"+
- "\u1AFE\u1AFF\u1B00\u1B01\u1B02\u1B03\u1B04\u1B05"+
- "\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D"+
- "\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15"+
- "\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D"+
- "\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25"+
- "\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D"+
- "\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B34\u1B35"+
- "\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3B\u1B3C\u1B3D"+
- "\u1B3E\u1B3F\u1B40\u1B41\u1B42\u1B43\u1B44\u1B45"+
- "\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B4C\u1B4D"+
- "\u1B4E\u1B4F\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55"+
- "\u1B56\u1B57\u1B58\u1B59\u1B5A\u1B5B\u1B5C\u1B5D"+
- "\u1B5E\u1B5F\u1B60\u1B61\u1B62\u1B63\u1B64\u1B65"+
- "\u1B66\u1B67\u1B68\u1B69\u1B6A\u1B6B\u1B6C\u1B6D"+
- "\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B74\u1B75"+
- "\u1B76\u1B77\u1B78\u1B79\u1B7A\u1B7B\u1B7C\u1B7D"+
- "\u1B7E\u1B7F\u1B80\u1B81\u1B82\u1B83\u1B84\u1B85"+
- "\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D"+
- "\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95"+
- "\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D"+
- "\u1B9E\u1B9F\u1BA0\u1BA1\u1BA2\u1BA3\u1BA4\u1BA5"+
- "\u1BA6\u1BA7\u1BA8\u1BA9\u1BAA\u1BAB\u1BAC\u1BAD"+
- "\u1BAE\u1BAF\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5"+
- "\u1BB6\u1BB7\u1BB8\u1BB9\u1BBA\u1BBB\u1BBC\u1BBD"+
- "\u1BBE\u1BBF\u1BC0\u1BC1\u1BC2\u1BC3\u1BC4\u1BC5"+
- "\u1BC6\u1BC7\u1BC8\u1BC9\u1BCA\u1BCB\u1BCC\u1BCD"+
- "\u1BCE\u1BCF\u1BD0\u1BD1\u1BD2\u1BD3\u1BD4\u1BD5"+
- "\u1BD6\u1BD7\u1BD8\u1BD9\u1BDA\u1BDB\u1BDC\u1BDD"+
- "\u1BDE\u1BDF\u1BE0\u1BE1\u1BE2\u1BE3\u1BE4\u1BE5"+
- "\u1BE6\u1BE7\u1BE8\u1BE9\u1BEA\u1BEB\u1BEC\u1BED"+
- "\u1BEE\u1BEF\u1BF0\u1BF1\u1BF2\u1BF3\u1BF4\u1BF5"+
- "\u1BF6\u1BF7\u1BF8\u1BF9\u1BFA\u1BFB\u1BFC\u1BFD"+
- "\u1BFE\u1BFF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05"+
- "\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D"+
- "\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15"+
- "\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D"+
- "\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C24\u1C25"+
- "\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C2C\u1C2D"+
- "\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C34\u1C35"+
- "\u1C36\u1C37\u1C38\u1C39\u1C3A\u1C3B\u1C3C\u1C3D"+
- "\u1C3E\u1C3F\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45"+
- "\u1C46\u1C47\u1C48\u1C49\u1C4A\u1C4B\u1C4C\u1C4D"+
- "\u1C4E\u1C4F\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55"+
- "\u1C56\u1C57\u1C58\u1C59\u1C5A\u1C5B\u1C5C\u1C5D"+
- "\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65"+
- "\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D"+
- "\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75"+
- "\u1C76\u1C77\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D"+
- "\u1C7E\u1C7F\u1C80\u1C81\u1C82\u1C83\u1C84\u1C85"+
- "\u1C86\u1C87\u1C88\u1C89\u1C8A\u1C8B\u1C8C\u1C8D"+
- "\u1C8E\u1C8F\u1C90\u1C91\u1C92\u1C93\u1C94\u1C95"+
- "\u1C96\u1C97\u1C98\u1C99\u1C9A\u1C9B\u1C9C\u1C9D"+
- "\u1C9E\u1C9F\u1CA0\u1CA1\u1CA2\u1CA3\u1CA4\u1CA5"+
- "\u1CA6\u1CA7\u1CA8\u1CA9\u1CAA\u1CAB\u1CAC\u1CAD"+
- "\u1CAE\u1CAF\u1CB0\u1CB1\u1CB2\u1CB3\u1CB4\u1CB5"+
- "\u1CB6\u1CB7\u1CB8\u1CB9\u1CBA\u1CBB\u1CBC\u1CBD"+
- "\u1CBE\u1CBF\u1CC0\u1CC1\u1CC2\u1CC3\u1CC4\u1CC5"+
- "\u1CC6\u1CC7\u1CC8\u1CC9\u1CCA\u1CCB\u1CCC\u1CCD"+
- "\u1CCE\u1CCF\u1CD0\u1CD1\u1CD2\u1CD3\u1CD4\u1CD5"+
- "\u1CD6\u1CD7\u1CD8\u1CD9\u1CDA\u1CDB\u1CDC\u1CDD"+
- "\u1CDE\u1CDF\u1CE0\u1CE1\u1CE2\u1CE3\u1CE4\u1CE5"+
- "\u1CE6\u1CE7\u1CE8\u1CE9\u1CEA\u1CEB\u1CEC\u1CED"+
- "\u1CEE\u1CEF\u1CF0\u1CF1\u1CF2\u1CF3\u1CF4\u1CF5"+
- "\u1CF6\u1CF7\u1CF8\u1CF9\u1CFA\u1CFB\u1CFC\u1CFD"+
- "\u1CFE\u1CFF\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05"+
- "\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D"+
- "\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15"+
- "\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D"+
- "\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25"+
- "\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D2C\u1D2D"+
- "\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35"+
- "\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D"+
- "\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45"+
- "\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D"+
- "\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55"+
- "\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D"+
- "\u1D5E\u1D5F\u1D60\u1D61\u1D62\u1D63\u1D64\u1D65"+
- "\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D"+
- "\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75"+
- "\u1D76\u1D77\u1D78\u1D79\u1D7A\u1D7B\u1D7C\u1D7D"+
- "\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85"+
- "\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D"+
- "\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95"+
- "\u1D96\u1D97\u1D98\u1D99\u1D9A\u1D9B\u1D9C\u1D9D"+
- "\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5"+
- "\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD"+
- "\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5"+
- "\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD"+
- "\u1DBE\u1DBF\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5"+
- "\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD"+
- "\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5"+
- "\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD"+
- "\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5"+
- "\u1DE6\u1DE7\u1DE8\u1DE9\u1DEA\u1DEB\u1DEC\u1DED"+
- "\u1DEE\u1DEF\u1DF0\u1DF1\u1DF2\u1DF3\u1DF4\u1DF5"+
- "\u1DF6\u1DF7\u1DF8\u1DF9\u1DFA\u1DFB\u1DFC\u1DFD"+
- "\u1DFE\u1DFF\u1E00\u1E01\u1E02\u1E03\u1E04\u1E05"+
- "\u1E06\u1E07\u1E08\u1E09\u1E0A\u1E0B\u1E0C\u1E0D"+
- "\u1E0E\u1E0F\u1E10\u1E11\u1E12\u1E13\u1E14\u1E15"+
- "\u1E16\u1E17\u1E18\u1E19\u1E1A\u1E1B\u1E1C\u1E1D"+
- "\u1E1E\u1E1F\u1E20\u1E21\u1E22\u1E23\u1E24\u1E25"+
- "\u1E26\u1E27\u1E28\u1E29\u1E2A\u1E2B\u1E2C\u1E2D"+
- "\u1E2E\u1E2F\u1E30\u1E31\u1E32\u1E33\u1E34\u1E35"+
- "\u1E36\u1E37\u1E38\u1E39\u1E3A\u1E3B\u1E3C\u1E3D"+
- "\u1E3E\u1E3F\u1E40\u1E41\u1E42\u1E43\u1E44\u1E45"+
- "\u1E46\u1E47\u1E48\u1E49\u1E4A\u1E4B\u1E4C\u1E4D"+
- "\u1E4E\u1E4F\u1E50\u1E51\u1E52\u1E53\u1E54\u1E55"+
- "\u1E56\u1E57\u1E58\u1E59\u1E5A\u1E5B\u1E5C\u1E5D"+
- "\u1E5E\u1E5F\u1E60\u1E61\u1E62\u1E63\u1E64\u1E65"+
- "\u1E66\u1E67\u1E68\u1E69\u1E6A\u1E6B\u1E6C\u1E6D"+
- "\u1E6E\u1E6F\u1E70\u1E71\u1E72\u1E73\u1E74\u1E75"+
- "\u1E76\u1E77\u1E78\u1E79\u1E7A\u1E7B\u1E7C\u1E7D"+
- "\u1E7E\u1E7F\u1E80\u1E81\u1E82\u1E83\u1E84\u1E85"+
- "\u1E86\u1E87\u1E88\u1E89\u1E8A\u1E8B\u1E8C\u1E8D"+
- "\u1E8E\u1E8F\u1E90\u1E91\u1E92\u1E93\u1E94\u1E95"+
- "\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D"+
- "\u1E9E\u1E9F\u1EA0\u1EA1\u1EA2\u1EA3\u1EA4\u1EA5"+
- "\u1EA6\u1EA7\u1EA8\u1EA9\u1EAA\u1EAB\u1EAC\u1EAD"+
- "\u1EAE\u1EAF\u1EB0\u1EB1\u1EB2\u1EB3\u1EB4\u1EB5"+
- "\u1EB6\u1EB7\u1EB8\u1EB9\u1EBA\u1EBB\u1EBC\u1EBD"+
- "\u1EBE\u1EBF\u1EC0\u1EC1\u1EC2\u1EC3\u1EC4\u1EC5"+
- "\u1EC6\u1EC7\u1EC8\u1EC9\u1ECA\u1ECB\u1ECC\u1ECD"+
- "\u1ECE\u1ECF\u1ED0\u1ED1\u1ED2\u1ED3\u1ED4\u1ED5"+
- "\u1ED6\u1ED7\u1ED8\u1ED9\u1EDA\u1EDB\u1EDC\u1EDD"+
- "\u1EDE\u1EDF\u1EE0\u1EE1\u1EE2\u1EE3\u1EE4\u1EE5"+
- "\u1EE6\u1EE7\u1EE8\u1EE9\u1EEA\u1EEB\u1EEC\u1EED"+
- "\u1EEE\u1EEF\u1EF0\u1EF1\u1EF2\u1EF3\u1EF4\u1EF5"+
- "\u1EF6\u1EF7\u1EF8\u1EF9\u1EFA\u1EFB\u1EFC\u1EFD"+
- "\u1EFE\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05"+
- "\u1F06\u1F07\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D"+
- "\u1F0E\u1F0F\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15"+
- "\u1F16\u1F17\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D"+
- "\u1F1E\u1F1F\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25"+
- "\u1F26\u1F27\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D"+
- "\u1F2E\u1F2F\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35"+
- "\u1F36\u1F37\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D"+
- "\u1F3E\u1F3F\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45"+
- "\u1F46\u1F47\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D"+
- "\u1F4E\u1F4F\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55"+
- "\u1F56\u1F57\u1F58\u1F59\u1F5A\u1F5B\u1F5C\u1F5D"+
- "\u1F5E\u1F5F\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65"+
- "\u1F66\u1F67\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D"+
- "\u1F6E\u1F6F\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75"+
- "\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D"+
- "\u1F7E\u1F7F\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85"+
- "\u1F86\u1F87\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D"+
- "\u1F8E\u1F8F\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95"+
- "\u1F96\u1F97\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D"+
- "\u1F9E\u1F9F\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5"+
- "\u1FA6\u1FA7\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD"+
- "\u1FAE\u1FAF\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB5"+
- "\u1FB6\u1FB7\u1FB8\u1FB9\u1FBA\u1FBB\u1FBC\u1FBD"+
- "\u1FBE\u1FBF\u1FC0\u1FC1\u1FC2\u1FC3\u1FC4\u1FC5"+
- "\u1FC6\u1FC7\u1FC8\u1FC9\u1FCA\u1FCB\u1FCC\u1FCD"+
- "\u1FCE\u1FCF\u1FD0\u1FD1\u1FD2\u1FD3\u1FD4\u1FD5"+
- "\u1FD6\u1FD7\u1FD8\u1FD9\u1FDA\u1FDB\u1FDC\u1FDD"+
- "\u1FDE\u1FDF\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5"+
- "\u1FE6\u1FE7\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FED"+
- "\u1FEE\u1FEF\u1FF0\u1FF1\u1FF2\u1FF3\u1FF4\u1FF5"+
- "\u1FF6\u1FF7\u1FF8\u1FF9\u1FFA\u1FFB\u1FFC\u1FFD"+
- "\u1FFE\u1FFF\u2000\u2001\u2002\u2003\u2004\u2005"+
- "\u2006\u2007\u2008\u2009\u200A\u200B\u200C\u200D"+
- "\u200E\u200F\u2011\u2012\u2017\u201A\u201B\u201E"+
- "\u201F\u2020\u2021\u2022\u2023\u2024\u2027\u2028"+
- "\u2029\u202A\u202B\u202C\u202D\u202E\u202F\u2031"+
- "\u2034\u2036\u2037\u2038\u2039\u203A\u203C\u203D"+
- "\u203E\u203F\u2040\u2041\u2042\u2043\u2044\u2045"+
- "\u2046\u2047\u2048\u2049\u204A\u204B\u204C\u204D"+
- "\u204E\u204F\u2050\u2051\u2052\u2053\u2054\u2055"+
- "\u2056\u2057\u2058\u2059\u205A\u205B\u205C\u205D"+
- "\u205E\u205F\u2060\u2061\u2062\u2063\u2064\u2065"+
- "\u2066\u2067\u2068\u2069\u206A\u206B\u206C\u206D"+
- "\u206E\u206F\u2070\u2071\u2072\u2073\u2074\u2075"+
- "\u2076\u2077\u2078\u2079\u207A\u207B\u207C\u207D"+
- "\u207E\u207F\u2080\u2081\u2082\u2083\u2084\u2085"+
- "\u2086\u2087\u2088\u2089\u208A\u208B\u208C\u208D"+
- "\u208E\u208F\u2090\u2091\u2092\u2093\u2094\u2095"+
- "\u2096\u2097\u2098\u2099\u209A\u209B\u209C\u209D"+
- "\u209E\u209F\u20A0\u20A1\u20A2\u20A3\u20A4\u20A5"+
- "\u20A6\u20A7\u20A8\u20A9\u20AA\u20AB\u20AD\u20AE"+
- "\u20AF\u20B0\u20B1\u20B2\u20B3\u20B4\u20B5\u20B6"+
- "\u20B7\u20B8\u20B9\u20BA\u20BB\u20BC\u20BD\u20BE"+
- "\u20BF\u20C0\u20C1\u20C2\u20C3\u20C4\u20C5\u20C6"+
- "\u20C7\u20C8\u20C9\u20CA\u20CB\u20CC\u20CD\u20CE"+
- "\u20CF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6"+
- "\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20DD\u20DE"+
- "\u20DF\u20E0\u20E1\u20E2\u20E3\u20E4\u20E5\u20E6"+
- "\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE"+
- "\u20EF\u20F0\u20F1\u20F2\u20F3\u20F4\u20F5\u20F6"+
- "\u20F7\u20F8\u20F9\u20FA\u20FB\u20FC\u20FD\u20FE"+
- "\u20FF\u2100\u2101\u2102\u2104\u2106\u2107\u2108"+
- "\u210A\u210B\u210C\u210D\u210E\u210F\u2110\u2111"+
- "\u2112\u2113\u2114\u2115\u2117\u2118\u2119\u211A"+
- "\u211B\u211C\u211D\u211E\u211F\u2120\u2122\u2123"+
- "\u2124\u2125\u2126\u2127\u2128\u2129\u212A\u212B"+
- "\u212C\u212D\u212E\u212F\u2130\u2131\u2132\u2133";
-
- private final static String innerDecoderIndex2=
- "\u2134\u2135\u2136\u2137\u2138\u2139\u213A\u213B"+
- "\u213C\u213D\u213E\u213F\u2140\u2141\u2142\u2143"+
- "\u2144\u2145\u2146\u2147\u2148\u2149\u214A\u214B"+
- "\u214C\u214D\u214E\u214F\u2150\u2151\u2152\u2153"+
- "\u2154\u2155\u2156\u2157\u2158\u2159\u215A\u215B"+
- "\u215C\u215D\u215E\u215F\u216C\u216D\u216E\u216F"+
- "\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181"+
- "\u2182\u2183\u2184\u2185\u2186\u2187\u2188\u2189"+
- "\u218A\u218B\u218C\u218D\u218E\u218F\u2194\u2195"+
- "\u219A\u219B\u219C\u219D\u219E\u219F\u21A0\u21A1"+
- "\u21A2\u21A3\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9"+
- "\u21AA\u21AB\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1"+
- "\u21B2\u21B3\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9"+
- "\u21BA\u21BB\u21BC\u21BD\u21BE\u21BF\u21C0\u21C1"+
- "\u21C2\u21C3\u21C4\u21C5\u21C6\u21C7\u21C8\u21C9"+
- "\u21CA\u21CB\u21CC\u21CD\u21CE\u21CF\u21D0\u21D1"+
- "\u21D2\u21D3\u21D4\u21D5\u21D6\u21D7\u21D8\u21D9"+
- "\u21DA\u21DB\u21DC\u21DD\u21DE\u21DF\u21E0\u21E1"+
- "\u21E2\u21E3\u21E4\u21E5\u21E6\u21E7\u21E8\u21E9"+
- "\u21EA\u21EB\u21EC\u21ED\u21EE\u21EF\u21F0\u21F1"+
- "\u21F2\u21F3\u21F4\u21F5\u21F6\u21F7\u21F8\u21F9"+
- "\u21FA\u21FB\u21FC\u21FD\u21FE\u21FF\u2200\u2201"+
- "\u2202\u2203\u2204\u2205\u2206\u2207\u2209\u220A"+
- "\u220B\u220C\u220D\u220E\u2210\u2212\u2213\u2214"+
- "\u2216\u2217\u2218\u2219\u221B\u221C\u2221\u2222"+
- "\u2224\u2226\u222C\u222D\u222F\u2230\u2231\u2232"+
- "\u2233\u2238\u2239\u223A\u223B\u223C\u223E\u223F"+
- "\u2240\u2241\u2242\u2243\u2244\u2245\u2246\u2247"+
- "\u2249\u224A\u224B\u224D\u224E\u224F\u2250\u2251"+
- "\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225A"+
- "\u225B\u225C\u225D\u225E\u225F\u2262\u2263\u2268"+
- "\u2269\u226A\u226B\u226C\u226D\u2270\u2271\u2272"+
- "\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227A"+
- "\u227B\u227C\u227D\u227E\u227F\u2280\u2281\u2282"+
- "\u2283\u2284\u2285\u2286\u2287\u2288\u2289\u228A"+
- "\u228B\u228C\u228D\u228E\u228F\u2290\u2291\u2292"+
- "\u2293\u2294\u2296\u2297\u2298\u229A\u229B\u229C"+
- "\u229D\u229E\u229F\u22A0\u22A1\u22A2\u22A3\u22A4"+
- "\u22A6\u22A7\u22A8\u22A9\u22AA\u22AB\u22AC\u22AD"+
- "\u22AE\u22AF\u22B0\u22B1\u22B2\u22B3\u22B4\u22B5"+
- "\u22B6\u22B7\u22B8\u22B9\u22BA\u22BB\u22BC\u22BD"+
- "\u22BE\u22C0\u22C1\u22C2\u22C3\u22C4\u22C5\u22C6"+
- "\u22C7\u22C8\u22C9\u22CA\u22CB\u22CC\u22CD\u22CE"+
- "\u22CF\u22D0\u22D1\u22D2\u22D3\u22D4\u22D5\u22D6"+
- "\u22D7\u22D8\u22D9\u22DA\u22DB\u22DC\u22DD\u22DE"+
- "\u22DF\u22E0\u22E1\u22E2\u22E3\u22E4\u22E5\u22E6"+
- "\u22E7\u22E8\u22E9\u22EA\u22EB\u22EC\u22ED\u22EE"+
- "\u22EF\u22F0\u22F1\u22F2\u22F3\u22F4\u22F5\u22F6"+
- "\u22F7\u22F8\u22F9\u22FA\u22FB\u22FC\u22FD\u22FE"+
- "\u22FF\u2300\u2301\u2302\u2303\u2304\u2305\u2306"+
- "\u2307\u2308\u2309\u230A\u230B\u230C\u230D\u230E"+
- "\u230F\u2310\u2311\u2313\u2314\u2315\u2316\u2317"+
- "\u2318\u2319\u231A\u231B\u231C\u231D\u231E\u231F"+
- "\u2320\u2321\u2322\u2323\u2324\u2325\u2326\u2327"+
- "\u2328\u2329\u232A\u232B\u232C\u232D\u232E\u232F"+
- "\u2330\u2331\u2332\u2333\u2334\u2335\u2336\u2337"+
- "\u2338\u2339\u233A\u233B\u233C\u233D\u233E\u233F"+
- "\u2340\u2341\u2342\u2343\u2344\u2345\u2346\u2347"+
- "\u2348\u2349\u234A\u234B\u234C\u234D\u234E\u234F"+
- "\u2350\u2351\u2352\u2353\u2354\u2355\u2356\u2357"+
- "\u2358\u2359\u235A\u235B\u235C\u235D\u235E\u235F"+
- "\u2360\u2361\u2362\u2363\u2364\u2365\u2366\u2367"+
- "\u2368\u2369\u236A\u236B\u236C\u236D\u236E\u236F"+
- "\u2370\u2371\u2372\u2373\u2374\u2375\u2376\u2377"+
- "\u2378\u2379\u237A\u237B\u237C\u237D\u237E\u237F"+
- "\u2380\u2381\u2382\u2383\u2384\u2385\u2386\u2387"+
- "\u2388\u2389\u238A\u238B\u238C\u238D\u238E\u238F"+
- "\u2390\u2391\u2392\u2393\u2394\u2395\u2396\u2397"+
- "\u2398\u2399\u239A\u239B\u239C\u239D\u239E\u239F"+
- "\u23A0\u23A1\u23A2\u23A3\u23A4\u23A5\u23A6\u23A7"+
- "\u23A8\u23A9\u23AA\u23AB\u23AC\u23AD\u23AE\u23AF"+
- "\u23B0\u23B1\u23B2\u23B3\u23B4\u23B5\u23B6\u23B7"+
- "\u23B8\u23B9\u23BA\u23BB\u23BC\u23BD\u23BE\u23BF"+
- "\u23C0\u23C1\u23C2\u23C3\u23C4\u23C5\u23C6\u23C7"+
- "\u23C8\u23C9\u23CA\u23CB\u23CC\u23CD\u23CE\u23CF"+
- "\u23D0\u23D1\u23D2\u23D3\u23D4\u23D5\u23D6\u23D7"+
- "\u23D8\u23D9\u23DA\u23DB\u23DC\u23DD\u23DE\u23DF"+
- "\u23E0\u23E1\u23E2\u23E3\u23E4\u23E5\u23E6\u23E7"+
- "\u23E8\u23E9\u23EA\u23EB\u23EC\u23ED\u23EE\u23EF"+
- "\u23F0\u23F1\u23F2\u23F3\u23F4\u23F5\u23F6\u23F7"+
- "\u23F8\u23F9\u23FA\u23FB\u23FC\u23FD\u23FE\u23FF"+
- "\u2400\u2401\u2402\u2403\u2404\u2405\u2406\u2407"+
- "\u2408\u2409\u240A\u240B\u240C\u240D\u240E\u240F"+
- "\u2410\u2411\u2412\u2413\u2414\u2415\u2416\u2417"+
- "\u2418\u2419\u241A\u241B\u241C\u241D\u241E\u241F"+
- "\u2420\u2421\u2422\u2423\u2424\u2425\u2426\u2427"+
- "\u2428\u2429\u242A\u242B\u242C\u242D\u242E\u242F"+
- "\u2430\u2431\u2432\u2433\u2434\u2435\u2436\u2437"+
- "\u2438\u2439\u243A\u243B\u243C\u243D\u243E\u243F"+
- "\u2440\u2441\u2442\u2443\u2444\u2445\u2446\u2447"+
- "\u2448\u2449\u244A\u244B\u244C\u244D\u244E\u244F"+
- "\u2450\u2451\u2452\u2453\u2454\u2455\u2456\u2457"+
- "\u2458\u2459\u245A\u245B\u245C\u245D\u245E\u245F"+
- "\u246A\u246B\u246C\u246D\u246E\u246F\u2470\u2471"+
- "\u2472\u2473\u249C\u249D\u249E\u249F\u24A0\u24A1"+
- "\u24A2\u24A3\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9"+
- "\u24AA\u24AB\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1"+
- "\u24B2\u24B3\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9"+
- "\u24BA\u24BB\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1"+
- "\u24C2\u24C3\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9"+
- "\u24CA\u24CB\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1"+
- "\u24D2\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9"+
- "\u24DA\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1"+
- "\u24E2\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9"+
- "\u24EA\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1"+
- "\u24F2\u24F3\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9"+
- "\u24FA\u24FB\u24FC\u24FD\u24FE\u24FF\u254C\u254D"+
- "\u254E\u254F\u2574\u2575\u2576\u2577\u2578\u2579"+
- "\u257A\u257B\u257C\u257D\u257E\u257F\u2580\u2590"+
- "\u2591\u2592\u2596\u2597\u2598\u2599\u259A\u259B"+
- "\u259C\u259D\u259E\u259F\u25A2\u25A3\u25A4\u25A5"+
- "\u25A6\u25A7\u25A8\u25A9\u25AA\u25AB\u25AC\u25AD"+
- "\u25AE\u25AF\u25B0\u25B1\u25B4\u25B5\u25B6\u25B7"+
- "\u25B8\u25B9\u25BA\u25BB\u25BE\u25BF\u25C0\u25C1"+
- "\u25C2\u25C3\u25C4\u25C5\u25C8\u25C9\u25CA\u25CC"+
- "\u25CD\u25D0\u25D1\u25D2\u25D3\u25D4\u25D5\u25D6"+
- "\u25D7\u25D8\u25D9\u25DA\u25DB\u25DC\u25DD\u25DE"+
- "\u25DF\u25E0\u25E1\u25E6\u25E7\u25E8\u25E9\u25EA"+
- "\u25EB\u25EC\u25ED\u25EE\u25EF\u25F0\u25F1\u25F2"+
- "\u25F3\u25F4\u25F5\u25F6\u25F7\u25F8\u25F9\u25FA"+
- "\u25FB\u25FC\u25FD\u25FE\u25FF\u2600\u2601\u2602"+
- "\u2603\u2604\u2607\u2608\u260A\u260B\u260C\u260D"+
- "\u260E\u260F\u2610\u2611\u2612\u2613\u2614\u2615"+
- "\u2616\u2617\u2618\u2619\u261A\u261B\u261C\u261D"+
- "\u261E\u261F\u2620\u2621\u2622\u2623\u2624\u2625"+
- "\u2626\u2627\u2628\u2629\u262A\u262B\u262C\u262D"+
- "\u262E\u262F\u2630\u2631\u2632\u2633\u2634\u2635"+
- "\u2636\u2637\u2638\u2639\u263A\u263B\u263C\u263D"+
- "\u263E\u263F\u2641\u2643\u2644\u2645\u2646\u2647"+
- "\u2648\u2649\u264A\u264B\u264C\u264D\u264E\u264F"+
- "\u2650\u2651\u2652\u2653\u2654\u2655\u2656\u2657"+
- "\u2658\u2659\u265A\u265B\u265C\u265D\u265E\u265F"+
- "\u2660\u2661\u2662\u2663\u2664\u2665\u2666\u2667"+
- "\u2668\u2669\u266A\u266B\u266C\u266D\u266E\u266F"+
- "\u2670\u2671\u2672\u2673\u2674\u2675\u2676\u2677"+
- "\u2678\u2679\u267A\u267B\u267C\u267D\u267E\u267F"+
- "\u2680\u2681\u2682\u2683\u2684\u2685\u2686\u2687"+
- "\u2688\u2689\u268A\u268B\u268C\u268D\u268E\u268F"+
- "\u2690\u2691\u2692\u2693\u2694\u2695\u2696\u2697"+
- "\u2698\u2699\u269A\u269B\u269C\u269D\u269E\u269F"+
- "\u26A0\u26A1\u26A2\u26A3\u26A4\u26A5\u26A6\u26A7"+
- "\u26A8\u26A9\u26AA\u26AB\u26AC\u26AD\u26AE\u26AF"+
- "\u26B0\u26B1\u26B2\u26B3\u26B4\u26B5\u26B6\u26B7"+
- "\u26B8\u26B9\u26BA\u26BB\u26BC\u26BD\u26BE\u26BF"+
- "\u26C0\u26C1\u26C2\u26C3\u26C4\u26C5\u26C6\u26C7"+
- "\u26C8\u26C9\u26CA\u26CB\u26CC\u26CD\u26CE\u26CF"+
- "\u26D0\u26D1\u26D2\u26D3\u26D4\u26D5\u26D6\u26D7"+
- "\u26D8\u26D9\u26DA\u26DB\u26DC\u26DD\u26DE\u26DF"+
- "\u26E0\u26E1\u26E2\u26E3\u26E4\u26E5\u26E6\u26E7"+
- "\u26E8\u26E9\u26EA\u26EB\u26EC\u26ED\u26EE\u26EF"+
- "\u26F0\u26F1\u26F2\u26F3\u26F4\u26F5\u26F6\u26F7"+
- "\u26F8\u26F9\u26FA\u26FB\u26FC\u26FD\u26FE\u26FF"+
- "\u2700\u2701\u2702\u2703\u2704\u2705\u2706\u2707"+
- "\u2708\u2709\u270A\u270B\u270C\u270D\u270E\u270F"+
- "\u2710\u2711\u2712\u2713\u2714\u2715\u2716\u2717"+
- "\u2718\u2719\u271A\u271B\u271C\u271D\u271E\u271F"+
- "\u2720\u2721\u2722\u2723\u2724\u2725\u2726\u2727"+
- "\u2728\u2729\u272A\u272B\u272C\u272D\u272E\u272F"+
- "\u2730\u2731\u2732\u2733\u2734\u2735\u2736\u2737"+
- "\u2738\u2739\u273A\u273B\u273C\u273D\u273E\u273F"+
- "\u2740\u2741\u2742\u2743\u2744\u2745\u2746\u2747"+
- "\u2748\u2749\u274A\u274B\u274C\u274D\u274E\u274F"+
- "\u2750\u2751\u2752\u2753\u2754\u2755\u2756\u2757"+
- "\u2758\u2759\u275A\u275B\u275C\u275D\u275E\u275F"+
- "\u2760\u2761\u2762\u2763\u2764\u2765\u2766\u2767"+
- "\u2768\u2769\u276A\u276B\u276C\u276D\u276E\u276F"+
- "\u2770\u2771\u2772\u2773\u2774\u2775\u2776\u2777"+
- "\u2778\u2779\u277A\u277B\u277C\u277D\u277E\u277F"+
- "\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787"+
- "\u2788\u2789\u278A\u278B\u278C\u278D\u278E\u278F"+
- "\u2790\u2791\u2792\u2793\u2794\u2795\u2796\u2797"+
- "\u2798\u2799\u279A\u279B\u279C\u279D\u279E\u279F"+
- "\u27A0\u27A1\u27A2\u27A3\u27A4\u27A5\u27A6\u27A7"+
- "\u27A8\u27A9\u27AA\u27AB\u27AC\u27AD\u27AE\u27AF"+
- "\u27B0\u27B1\u27B2\u27B3\u27B4\u27B5\u27B6\u27B7"+
- "\u27B8\u27B9\u27BA\u27BB\u27BC\u27BD\u27BE\u27BF"+
- "\u27C0\u27C1\u27C2\u27C3\u27C4\u27C5\u27C6\u27C7"+
- "\u27C8\u27C9\u27CA\u27CB\u27CC\u27CD\u27CE\u27CF"+
- "\u27D0\u27D1\u27D2\u27D3\u27D4\u27D5\u27D6\u27D7"+
- "\u27D8\u27D9\u27DA\u27DB\u27DC\u27DD\u27DE\u27DF"+
- "\u27E0\u27E1\u27E2\u27E3\u27E4\u27E5\u27E6\u27E7"+
- "\u27E8\u27E9\u27EA\u27EB\u27EC\u27ED\u27EE\u27EF"+
- "\u27F0\u27F1\u27F2\u27F3\u27F4\u27F5\u27F6\u27F7"+
- "\u27F8\u27F9\u27FA\u27FB\u27FC\u27FD\u27FE\u27FF"+
- "\u2800\u2801\u2802\u2803\u2804\u2805\u2806\u2807"+
- "\u2808\u2809\u280A\u280B\u280C\u280D\u280E\u280F"+
- "\u2810\u2811\u2812\u2813\u2814\u2815\u2816\u2817"+
- "\u2818\u2819\u281A\u281B\u281C\u281D\u281E\u281F"+
- "\u2820\u2821\u2822\u2823\u2824\u2825\u2826\u2827"+
- "\u2828\u2829\u282A\u282B\u282C\u282D\u282E\u282F"+
- "\u2830\u2831\u2832\u2833\u2834\u2835\u2836\u2837"+
- "\u2838\u2839\u283A\u283B\u283C\u283D\u283E\u283F"+
- "\u2840\u2841\u2842\u2843\u2844\u2845\u2846\u2847"+
- "\u2848\u2849\u284A\u284B\u284C\u284D\u284E\u284F"+
- "\u2850\u2851\u2852\u2853\u2854\u2855\u2856\u2857"+
- "\u2858\u2859\u285A\u285B\u285C\u285D\u285E\u285F"+
- "\u2860\u2861\u2862\u2863\u2864\u2865\u2866\u2867"+
- "\u2868\u2869\u286A\u286B\u286C\u286D\u286E\u286F"+
- "\u2870\u2871\u2872\u2873\u2874\u2875\u2876\u2877"+
- "\u2878\u2879\u287A\u287B\u287C\u287D\u287E\u287F"+
- "\u2880\u2881\u2882\u2883\u2884\u2885\u2886\u2887"+
- "\u2888\u2889\u288A\u288B\u288C\u288D\u288E\u288F"+
- "\u2890\u2891\u2892\u2893\u2894\u2895\u2896\u2897"+
- "\u2898\u2899\u289A\u289B\u289C\u289D\u289E\u289F"+
- "\u28A0\u28A1\u28A2\u28A3\u28A4\u28A5\u28A6\u28A7"+
- "\u28A8\u28A9\u28AA\u28AB\u28AC\u28AD\u28AE\u28AF"+
- "\u28B0\u28B1\u28B2\u28B3\u28B4\u28B5\u28B6\u28B7"+
- "\u28B8\u28B9\u28BA\u28BB\u28BC\u28BD\u28BE\u28BF"+
- "\u28C0\u28C1\u28C2\u28C3\u28C4\u28C5\u28C6\u28C7"+
- "\u28C8\u28C9\u28CA\u28CB\u28CC\u28CD\u28CE\u28CF"+
- "\u28D0\u28D1\u28D2\u28D3\u28D4\u28D5\u28D6\u28D7"+
- "\u28D8\u28D9\u28DA\u28DB\u28DC\u28DD\u28DE\u28DF"+
- "\u28E0\u28E1\u28E2\u28E3\u28E4\u28E5\u28E6\u28E7"+
- "\u28E8\u28E9\u28EA\u28EB\u28EC\u28ED\u28EE\u28EF"+
- "\u28F0\u28F1\u28F2\u28F3\u28F4\u28F5\u28F6\u28F7"+
- "\u28F8\u28F9\u28FA\u28FB\u28FC\u28FD\u28FE\u28FF"+
- "\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907"+
- "\u2908\u2909\u290A\u290B\u290C\u290D\u290E\u290F"+
- "\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917"+
- "\u2918\u2919\u291A\u291B\u291C\u291D\u291E\u291F"+
- "\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927"+
- "\u2928\u2929\u292A\u292B\u292C\u292D\u292E\u292F"+
- "\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937"+
- "\u2938\u2939\u293A\u293B\u293C\u293D\u293E\u293F"+
- "\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947"+
- "\u2948\u2949\u294A\u294B\u294C\u294D\u294E\u294F"+
- "\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957"+
- "\u2958\u2959\u295A\u295B\u295C\u295D\u295E\u295F"+
- "\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967"+
- "\u2968\u2969\u296A\u296B\u296C\u296D\u296E\u296F"+
- "\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977"+
- "\u2978\u2979\u297A\u297B\u297C\u297D\u297E\u297F"+
- "\u2980\u2981\u2982\u2983\u2984\u2985\u2986\u2987"+
- "\u2988\u2989\u298A\u298B\u298C\u298D\u298E\u298F"+
- "\u2990\u2991\u2992\u2993\u2994\u2995\u2996\u2997"+
- "\u2998\u2999\u299A\u299B\u299C\u299D\u299E\u299F"+
- "\u29A0\u29A1\u29A2\u29A3\u29A4\u29A5\u29A6\u29A7"+
- "\u29A8\u29A9\u29AA\u29AB\u29AC\u29AD\u29AE\u29AF"+
- "\u29B0\u29B1\u29B2\u29B3\u29B4\u29B5\u29B6\u29B7"+
- "\u29B8\u29B9\u29BA\u29BB\u29BC\u29BD\u29BE\u29BF"+
- "\u29C0\u29C1\u29C2\u29C3\u29C4\u29C5\u29C6\u29C7"+
- "\u29C8\u29C9\u29CA\u29CB\u29CC\u29CD\u29CE\u29CF"+
- "\u29D0\u29D1\u29D2\u29D3\u29D4\u29D5\u29D6\u29D7"+
- "\u29D8\u29D9\u29DA\u29DB\u29DC\u29DD\u29DE\u29DF"+
- "\u29E0\u29E1\u29E2\u29E3\u29E4\u29E5\u29E6\u29E7"+
- "\u29E8\u29E9\u29EA\u29EB\u29EC\u29ED\u29EE\u29EF"+
- "\u29F0\u29F1\u29F2\u29F3\u29F4\u29F5\u29F6\u29F7"+
- "\u29F8\u29F9\u29FA\u29FB\u29FC\u29FD\u29FE\u29FF"+
- "\u2A00\u2A01\u2A02\u2A03\u2A04\u2A05\u2A06\u2A07"+
- "\u2A08\u2A09\u2A0A\u2A0B\u2A0C\u2A0D\u2A0E\u2A0F"+
- "\u2A10\u2A11\u2A12\u2A13\u2A14\u2A15\u2A16\u2A17"+
- "\u2A18\u2A19\u2A1A\u2A1B\u2A1C\u2A1D\u2A1E\u2A1F"+
- "\u2A20\u2A21\u2A22\u2A23\u2A24\u2A25\u2A26\u2A27"+
- "\u2A28\u2A29\u2A2A\u2A2B\u2A2C\u2A2D\u2A2E\u2A2F"+
- "\u2A30\u2A31\u2A32\u2A33\u2A34\u2A35\u2A36\u2A37"+
- "\u2A38\u2A39\u2A3A\u2A3B\u2A3C\u2A3D\u2A3E\u2A3F"+
- "\u2A40\u2A41\u2A42\u2A43\u2A44\u2A45\u2A46\u2A47"+
- "\u2A48\u2A49\u2A4A\u2A4B\u2A4C\u2A4D\u2A4E\u2A4F"+
- "\u2A50\u2A51\u2A52\u2A53\u2A54\u2A55\u2A56\u2A57"+
- "\u2A58\u2A59\u2A5A\u2A5B\u2A5C\u2A5D\u2A5E\u2A5F"+
- "\u2A60\u2A61\u2A62\u2A63\u2A64\u2A65\u2A66\u2A67"+
- "\u2A68\u2A69\u2A6A\u2A6B\u2A6C\u2A6D\u2A6E\u2A6F"+
- "\u2A70\u2A71\u2A72\u2A73\u2A74\u2A75\u2A76\u2A77"+
- "\u2A78\u2A79\u2A7A\u2A7B\u2A7C\u2A7D\u2A7E\u2A7F"+
- "\u2A80\u2A81\u2A82\u2A83\u2A84\u2A85\u2A86\u2A87"+
- "\u2A88\u2A89\u2A8A\u2A8B\u2A8C\u2A8D\u2A8E\u2A8F"+
- "\u2A90\u2A91\u2A92\u2A93\u2A94\u2A95\u2A96\u2A97"+
- "\u2A98\u2A99\u2A9A\u2A9B\u2A9C\u2A9D\u2A9E\u2A9F"+
- "\u2AA0\u2AA1\u2AA2\u2AA3\u2AA4\u2AA5\u2AA6\u2AA7"+
- "\u2AA8\u2AA9\u2AAA\u2AAB\u2AAC\u2AAD\u2AAE\u2AAF"+
- "\u2AB0\u2AB1\u2AB2\u2AB3\u2AB4\u2AB5\u2AB6\u2AB7"+
- "\u2AB8\u2AB9\u2ABA\u2ABB\u2ABC\u2ABD\u2ABE\u2ABF"+
- "\u2AC0\u2AC1\u2AC2\u2AC3\u2AC4\u2AC5\u2AC6\u2AC7"+
- "\u2AC8\u2AC9\u2ACA\u2ACB\u2ACC\u2ACD\u2ACE\u2ACF"+
- "\u2AD0\u2AD1\u2AD2\u2AD3\u2AD4\u2AD5\u2AD6\u2AD7"+
- "\u2AD8\u2AD9\u2ADA\u2ADB\u2ADC\u2ADD\u2ADE\u2ADF"+
- "\u2AE0\u2AE1\u2AE2\u2AE3\u2AE4\u2AE5\u2AE6\u2AE7"+
- "\u2AE8\u2AE9\u2AEA\u2AEB\u2AEC\u2AED\u2AEE\u2AEF"+
- "\u2AF0\u2AF1\u2AF2\u2AF3\u2AF4\u2AF5\u2AF6\u2AF7"+
- "\u2AF8\u2AF9\u2AFA\u2AFB\u2AFC\u2AFD\u2AFE\u2AFF"+
- "\u2B00\u2B01\u2B02\u2B03\u2B04\u2B05\u2B06\u2B07"+
- "\u2B08\u2B09\u2B0A\u2B0B\u2B0C\u2B0D\u2B0E\u2B0F"+
- "\u2B10\u2B11\u2B12\u2B13\u2B14\u2B15\u2B16\u2B17"+
- "\u2B18\u2B19\u2B1A\u2B1B\u2B1C\u2B1D\u2B1E\u2B1F"+
- "\u2B20\u2B21\u2B22\u2B23\u2B24\u2B25\u2B26\u2B27"+
- "\u2B28\u2B29\u2B2A\u2B2B\u2B2C\u2B2D\u2B2E\u2B2F"+
- "\u2B30\u2B31\u2B32\u2B33\u2B34\u2B35\u2B36\u2B37"+
- "\u2B38\u2B39\u2B3A\u2B3B\u2B3C\u2B3D\u2B3E\u2B3F"+
- "\u2B40\u2B41\u2B42\u2B43\u2B44\u2B45\u2B46\u2B47"+
- "\u2B48\u2B49\u2B4A\u2B4B\u2B4C\u2B4D\u2B4E\u2B4F"+
- "\u2B50\u2B51\u2B52\u2B53\u2B54\u2B55\u2B56\u2B57"+
- "\u2B58\u2B59\u2B5A\u2B5B\u2B5C\u2B5D\u2B5E\u2B5F"+
- "\u2B60\u2B61\u2B62\u2B63\u2B64\u2B65\u2B66\u2B67"+
- "\u2B68\u2B69\u2B6A\u2B6B\u2B6C\u2B6D\u2B6E\u2B6F"+
- "\u2B70\u2B71\u2B72\u2B73\u2B74\u2B75\u2B76\u2B77"+
- "\u2B78\u2B79\u2B7A\u2B7B\u2B7C\u2B7D\u2B7E\u2B7F"+
- "\u2B80\u2B81\u2B82\u2B83\u2B84\u2B85\u2B86\u2B87"+
- "\u2B88\u2B89\u2B8A\u2B8B\u2B8C\u2B8D\u2B8E\u2B8F"+
- "\u2B90\u2B91\u2B92\u2B93\u2B94\u2B95\u2B96\u2B97"+
- "\u2B98\u2B99\u2B9A\u2B9B\u2B9C\u2B9D\u2B9E\u2B9F"+
- "\u2BA0\u2BA1\u2BA2\u2BA3\u2BA4\u2BA5\u2BA6\u2BA7"+
- "\u2BA8\u2BA9\u2BAA\u2BAB\u2BAC\u2BAD\u2BAE\u2BAF"+
- "\u2BB0\u2BB1\u2BB2\u2BB3\u2BB4\u2BB5\u2BB6\u2BB7"+
- "\u2BB8\u2BB9\u2BBA\u2BBB\u2BBC\u2BBD\u2BBE\u2BBF"+
- "\u2BC0\u2BC1\u2BC2\u2BC3\u2BC4\u2BC5\u2BC6\u2BC7"+
- "\u2BC8\u2BC9\u2BCA\u2BCB\u2BCC\u2BCD\u2BCE\u2BCF"+
- "\u2BD0\u2BD1\u2BD2\u2BD3\u2BD4\u2BD5\u2BD6\u2BD7"+
- "\u2BD8\u2BD9\u2BDA\u2BDB\u2BDC\u2BDD\u2BDE\u2BDF"+
- "\u2BE0\u2BE1\u2BE2\u2BE3\u2BE4\u2BE5\u2BE6\u2BE7"+
- "\u2BE8\u2BE9\u2BEA\u2BEB\u2BEC\u2BED\u2BEE\u2BEF"+
- "\u2BF0\u2BF1\u2BF2\u2BF3\u2BF4\u2BF5\u2BF6\u2BF7"+
- "\u2BF8\u2BF9\u2BFA\u2BFB\u2BFC\u2BFD\u2BFE\u2BFF"+
- "\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07"+
- "\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F"+
- "\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17"+
- "\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F"+
- "\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27"+
- "\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C2F"+
- "\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37"+
- "\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F"+
- "\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47"+
- "\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F"+
- "\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57"+
- "\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C5F"+
- "\u2C60\u2C61\u2C62\u2C63\u2C64\u2C65\u2C66\u2C67"+
- "\u2C68\u2C69\u2C6A\u2C6B\u2C6C\u2C6D\u2C6E\u2C6F"+
- "\u2C70\u2C71\u2C72\u2C73\u2C74\u2C75\u2C76\u2C77"+
- "\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C7D\u2C7E\u2C7F"+
- "\u2C80\u2C81\u2C82\u2C83\u2C84\u2C85\u2C86\u2C87"+
- "\u2C88\u2C89\u2C8A\u2C8B\u2C8C\u2C8D\u2C8E\u2C8F"+
- "\u2C90\u2C91\u2C92\u2C93\u2C94\u2C95\u2C96\u2C97"+
- "\u2C98\u2C99\u2C9A\u2C9B\u2C9C\u2C9D\u2C9E\u2C9F"+
- "\u2CA0\u2CA1\u2CA2\u2CA3\u2CA4\u2CA5\u2CA6\u2CA7"+
- "\u2CA8\u2CA9\u2CAA\u2CAB\u2CAC\u2CAD\u2CAE\u2CAF"+
- "\u2CB0\u2CB1\u2CB2\u2CB3\u2CB4\u2CB5\u2CB6\u2CB7"+
- "\u2CB8\u2CB9\u2CBA\u2CBB\u2CBC\u2CBD\u2CBE\u2CBF"+
- "\u2CC0\u2CC1\u2CC2\u2CC3\u2CC4\u2CC5\u2CC6\u2CC7"+
- "\u2CC8\u2CC9\u2CCA\u2CCB\u2CCC\u2CCD\u2CCE\u2CCF"+
- "\u2CD0\u2CD1\u2CD2\u2CD3\u2CD4\u2CD5\u2CD6\u2CD7"+
- "\u2CD8\u2CD9\u2CDA\u2CDB\u2CDC\u2CDD\u2CDE\u2CDF"+
- "\u2CE0\u2CE1\u2CE2\u2CE3\u2CE4\u2CE5\u2CE6\u2CE7"+
- "\u2CE8\u2CE9\u2CEA\u2CEB\u2CEC\u2CED\u2CEE\u2CEF"+
- "\u2CF0\u2CF1\u2CF2\u2CF3\u2CF4\u2CF5\u2CF6\u2CF7"+
- "\u2CF8\u2CF9\u2CFA\u2CFB\u2CFC\u2CFD\u2CFE\u2CFF"+
- "\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07"+
- "\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F"+
- "\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17"+
- "\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F"+
- "\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\u2D26\u2D27"+
- "\u2D28\u2D29\u2D2A\u2D2B\u2D2C\u2D2D\u2D2E\u2D2F"+
- "\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37"+
- "\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F"+
- "\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47"+
- "\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F"+
- "\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57"+
- "\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F"+
- "\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D66\u2D67"+
- "\u2D68\u2D69\u2D6A\u2D6B\u2D6C\u2D6D\u2D6E\u2D6F"+
- "\u2D70\u2D71\u2D72\u2D73\u2D74\u2D75\u2D76\u2D77"+
- "\u2D78\u2D79\u2D7A\u2D7B\u2D7C\u2D7D\u2D7E\u2D7F"+
- "\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87"+
- "\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F"+
- "\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2D97"+
- "\u2D98\u2D99\u2D9A\u2D9B\u2D9C\u2D9D\u2D9E\u2D9F"+
- "\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA7"+
- "\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DAF"+
- "\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB7"+
- "\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DBF"+
- "\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC7"+
- "\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DCF"+
- "\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD7"+
- "\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u2DDF"+
- "\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7"+
- "\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF"+
- "\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7"+
- "\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF"+
- "\u2E00\u2E01\u2E02\u2E03\u2E04\u2E05\u2E06\u2E07"+
- "\u2E08\u2E09\u2E0A\u2E0B\u2E0C\u2E0D\u2E0E\u2E0F"+
- "\u2E10\u2E11\u2E12\u2E13\u2E14\u2E15\u2E16\u2E17"+
- "\u2E18\u2E19\u2E1A\u2E1B\u2E1C\u2E1D\u2E1E\u2E1F"+
- "\u2E20\u2E21\u2E22\u2E23\u2E24\u2E25\u2E26\u2E27"+
- "\u2E28\u2E29\u2E2A\u2E2B\u2E2C\u2E2D\u2E2E\u2E2F"+
- "\u2E30\u2E31\u2E32\u2E33\u2E34\u2E35\u2E36\u2E37"+
- "\u2E38\u2E39\u2E3A\u2E3B\u2E3C\u2E3D\u2E3E\u2E3F"+
- "\u2E40\u2E41\u2E42\u2E43\u2E44\u2E45\u2E46\u2E47"+
- "\u2E48\u2E49\u2E4A\u2E4B\u2E4C\u2E4D\u2E4E\u2E4F"+
- "\u2E50\u2E51\u2E52\u2E53\u2E54\u2E55\u2E56\u2E57"+
- "\u2E58\u2E59\u2E5A\u2E5B\u2E5C\u2E5D\u2E5E\u2E5F"+
- "\u2E60\u2E61\u2E62\u2E63\u2E64\u2E65\u2E66\u2E67"+
- "\u2E68\u2E69\u2E6A\u2E6B\u2E6C\u2E6D\u2E6E\u2E6F"+
- "\u2E70\u2E71\u2E72\u2E73\u2E74\u2E75\u2E76\u2E77"+
- "\u2E78\u2E79\u2E7A\u2E7B\u2E7C\u2E7D\u2E7E\u2E7F"+
- "\u2E80\u2E82\u2E83\u2E85\u2E86\u2E87\u2E89\u2E8A"+
- "\u2E8D\u2E8E\u2E8F\u2E90\u2E91\u2E92\u2E93\u2E94"+
- "\u2E95\u2E96\u2E98\u2E99\u2E9A\u2E9B\u2E9C\u2E9D"+
- "\u2E9E\u2E9F\u2EA0\u2EA1\u2EA2\u2EA3\u2EA4\u2EA5"+
- "\u2EA6\u2EA8\u2EA9\u2EAB\u2EAC\u2EAD\u2EAF\u2EB0"+
- "\u2EB1\u2EB2\u2EB4\u2EB5\u2EB8\u2EB9\u2EBA\u2EBC"+
- "\u2EBD\u2EBE\u2EBF\u2EC0\u2EC1\u2EC2\u2EC3\u2EC4"+
- "\u2EC5\u2EC6\u2EC7\u2EC8\u2EC9\u2ECB\u2ECC\u2ECD"+
- "\u2ECE\u2ECF\u2ED0\u2ED1\u2ED2\u2ED3\u2ED4\u2ED5"+
- "\u2ED6\u2ED7\u2ED8\u2ED9\u2EDA\u2EDB\u2EDC\u2EDD"+
- "\u2EDE\u2EDF\u2EE0\u2EE1\u2EE2\u2EE3\u2EE4\u2EE5"+
- "\u2EE6\u2EE7\u2EE8\u2EE9\u2EEA\u2EEB\u2EEC\u2EED"+
- "\u2EEE\u2EEF\u2EF0\u2EF1\u2EF2\u2EF3\u2EF4\u2EF5"+
- "\u2EF6\u2EF7\u2EF8\u2EF9\u2EFA\u2EFB\u2EFC\u2EFD"+
- "\u2EFE\u2EFF\u2F00\u2F01\u2F02\u2F03\u2F04\u2F05"+
- "\u2F06\u2F07\u2F08\u2F09\u2F0A\u2F0B\u2F0C\u2F0D"+
- "\u2F0E\u2F0F\u2F10\u2F11\u2F12\u2F13\u2F14\u2F15"+
- "\u2F16\u2F17\u2F18\u2F19\u2F1A\u2F1B\u2F1C\u2F1D"+
- "\u2F1E\u2F1F\u2F20\u2F21\u2F22\u2F23\u2F24\u2F25"+
- "\u2F26\u2F27\u2F28\u2F29\u2F2A\u2F2B\u2F2C\u2F2D"+
- "\u2F2E\u2F2F\u2F30\u2F31\u2F32\u2F33\u2F34\u2F35"+
- "\u2F36\u2F37\u2F38\u2F39\u2F3A\u2F3B\u2F3C\u2F3D"+
- "\u2F3E\u2F3F\u2F40\u2F41\u2F42\u2F43\u2F44\u2F45"+
- "\u2F46\u2F47\u2F48\u2F49\u2F4A\u2F4B\u2F4C\u2F4D"+
- "\u2F4E\u2F4F\u2F50\u2F51\u2F52\u2F53\u2F54\u2F55"+
- "\u2F56\u2F57\u2F58\u2F59\u2F5A\u2F5B\u2F5C\u2F5D"+
- "\u2F5E\u2F5F\u2F60\u2F61\u2F62\u2F63\u2F64\u2F65"+
- "\u2F66\u2F67\u2F68\u2F69\u2F6A\u2F6B\u2F6C\u2F6D"+
- "\u2F6E\u2F6F\u2F70\u2F71\u2F72\u2F73\u2F74\u2F75"+
- "\u2F76\u2F77\u2F78\u2F79\u2F7A\u2F7B\u2F7C\u2F7D"+
- "\u2F7E\u2F7F\u2F80\u2F81\u2F82\u2F83\u2F84\u2F85"+
- "\u2F86\u2F87\u2F88\u2F89\u2F8A\u2F8B\u2F8C\u2F8D"+
- "\u2F8E\u2F8F\u2F90\u2F91\u2F92\u2F93\u2F94\u2F95"+
- "\u2F96\u2F97\u2F98\u2F99\u2F9A\u2F9B\u2F9C\u2F9D"+
- "\u2F9E\u2F9F\u2FA0\u2FA1\u2FA2\u2FA3\u2FA4\u2FA5"+
- "\u2FA6\u2FA7\u2FA8\u2FA9\u2FAA\u2FAB\u2FAC\u2FAD"+
- "\u2FAE\u2FAF\u2FB0\u2FB1\u2FB2\u2FB3\u2FB4\u2FB5"+
- "\u2FB6\u2FB7\u2FB8\u2FB9\u2FBA\u2FBB\u2FBC\u2FBD"+
- "\u2FBE\u2FBF\u2FC0\u2FC1\u2FC2\u2FC3\u2FC4\u2FC5"+
- "\u2FC6\u2FC7\u2FC8\u2FC9\u2FCA\u2FCB\u2FCC\u2FCD"+
- "\u2FCE\u2FCF\u2FD0\u2FD1\u2FD2\u2FD3\u2FD4\u2FD5"+
- "\u2FD6\u2FD7\u2FD8\u2FD9\u2FDA\u2FDB\u2FDC\u2FDD"+
- "\u2FDE\u2FDF\u2FE0\u2FE1\u2FE2\u2FE3\u2FE4\u2FE5"+
- "\u2FE6\u2FE7\u2FE8\u2FE9\u2FEA\u2FEB\u2FEC\u2FED"+
- "\u2FEE\u2FEF\u2FFC\u2FFD\u2FFE\u2FFF\u3004\u3018"+
- "\u3019\u301A\u301B\u301C\u301F\u3020\u302A\u302B"+
- "\u302C\u302D\u302E\u302F\u3030\u3031\u3032\u3033"+
- "\u3034\u3035\u3036\u3037\u3038\u3039\u303A\u303B"+
- "\u303C\u303D\u303F\u3040\u3094\u3095\u3096\u3097"+
- "\u3098\u3099\u309A\u309F\u30A0\u30F7\u30F8\u30F9"+
- "\u30FA\u30FB\u30FF\u3100\u3101\u3102\u3103\u3104"+
- "\u312A\u312B\u312C\u312D\u312E\u312F\u3130\u3131"+
- "\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139"+
- "\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141"+
- "\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149"+
- "\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151"+
- "\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159"+
- "\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161"+
- "\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169"+
- "\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171"+
- "\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179"+
- "\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181"+
- "\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189"+
- "\u318A\u318B\u318C\u318D\u318E\u318F\u3190\u3191"+
- "\u3192\u3193\u3194\u3195\u3196\u3197\u3198\u3199"+
- "\u319A\u319B\u319C\u319D\u319E\u319F\u31A0\u31A1"+
- "\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9"+
- "\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1"+
- "\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31B8\u31B9"+
- "\u31BA\u31BB\u31BC\u31BD\u31BE\u31BF\u31C0\u31C1"+
- "\u31C2\u31C3\u31C4\u31C5\u31C6\u31C7\u31C8\u31C9"+
- "\u31CA\u31CB\u31CC\u31CD\u31CE\u31CF\u31D0\u31D1"+
- "\u31D2\u31D3\u31D4\u31D5\u31D6\u31D7\u31D8\u31D9"+
- "\u31DA\u31DB\u31DC\u31DD\u31DE\u31DF\u31E0\u31E1"+
- "\u31E2\u31E3\u31E4\u31E5\u31E6\u31E7\u31E8\u31E9"+
- "\u31EA\u31EB\u31EC\u31ED\u31EE\u31EF\u31F0\u31F1"+
- "\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9"+
- "\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3200\u3201"+
- "\u3202\u3203\u3204\u3205\u3206\u3207\u3208\u3209"+
- "\u320A\u320B\u320C\u320D\u320E\u320F\u3210\u3211"+
- "\u3212\u3213\u3214\u3215\u3216\u3217\u3218\u3219"+
- "\u321A\u321B\u321C\u321D\u321E\u321F\u322A\u322B"+
- "\u322C\u322D\u322E\u322F\u3230\u3232\u3233\u3234"+
- "\u3235\u3236\u3237\u3238\u3239\u323A\u323B\u323C"+
- "\u323D\u323E\u323F\u3240\u3241\u3242\u3243\u3244"+
- "\u3245\u3246\u3247\u3248\u3249\u324A\u324B\u324C"+
- "\u324D\u324E\u324F\u3250\u3251\u3252\u3253\u3254"+
- "\u3255\u3256\u3257\u3258\u3259\u325A\u325B\u325C"+
- "\u325D\u325E\u325F\u3260\u3261\u3262\u3263\u3264"+
- "\u3265\u3266\u3267\u3268\u3269\u326A\u326B\u326C"+
- "\u326D\u326E\u326F\u3270\u3271\u3272\u3273\u3274"+
- "\u3275\u3276\u3277\u3278\u3279\u327A\u327B\u327C"+
- "\u327D\u327E\u327F\u3280\u3281\u3282\u3283\u3284"+
- "\u3285\u3286\u3287\u3288\u3289\u328A\u328B\u328C"+
- "\u328D\u328E\u328F\u3290\u3291\u3292\u3293\u3294"+
- "\u3295\u3296\u3297\u3298\u3299\u329A\u329B\u329C"+
- "\u329D\u329E\u329F\u32A0\u32A1\u32A2\u32A4\u32A5"+
- "\u32A6\u32A7\u32A8\u32A9\u32AA\u32AB\u32AC\u32AD"+
- "\u32AE\u32AF\u32B0\u32B1\u32B2\u32B3\u32B4\u32B5"+
- "\u32B6\u32B7\u32B8\u32B9\u32BA\u32BB\u32BC\u32BD"+
- "\u32BE\u32BF\u32C0\u32C1\u32C2\u32C3\u32C4\u32C5"+
- "\u32C6\u32C7\u32C8\u32C9\u32CA\u32CB\u32CC\u32CD"+
- "\u32CE\u32CF\u32D0\u32D1\u32D2\u32D3\u32D4\u32D5"+
- "\u32D6\u32D7\u32D8\u32D9\u32DA\u32DB\u32DC\u32DD"+
- "\u32DE\u32DF\u32E0\u32E1\u32E2\u32E3\u32E4\u32E5"+
- "\u32E6\u32E7\u32E8\u32E9\u32EA\u32EB\u32EC\u32ED"+
- "\u32EE\u32EF\u32F0\u32F1\u32F2\u32F3\u32F4\u32F5"+
- "\u32F6\u32F7\u32F8\u32F9\u32FA\u32FB\u32FC\u32FD"+
- "\u32FE\u32FF\u3300\u3301\u3302\u3303\u3304\u3305"+
- "\u3306\u3307\u3308\u3309\u330A\u330B\u330C\u330D"+
- "\u330E\u330F\u3310\u3311\u3312\u3313\u3314\u3315"+
- "\u3316\u3317\u3318\u3319\u331A\u331B\u331C\u331D"+
- "\u331E\u331F\u3320\u3321\u3322\u3323\u3324\u3325"+
- "\u3326\u3327\u3328\u3329\u332A\u332B\u332C\u332D"+
- "\u332E\u332F\u3330\u3331\u3332\u3333\u3334\u3335"+
- "\u3336\u3337\u3338\u3339\u333A\u333B\u333C\u333D"+
- "\u333E\u333F\u3340\u3341\u3342\u3343\u3344\u3345"+
- "\u3346\u3347\u3348\u3349\u334A\u334B\u334C\u334D"+
- "\u334E\u334F\u3350\u3351\u3352\u3353\u3354\u3355"+
- "\u3356\u3357\u3358\u3359\u335A\u335B\u335C\u335D";
-
- private final static String innerDecoderIndex3=
- "\u335E\u335F\u3360\u3361\u3362\u3363\u3364\u3365"+
- "\u3366\u3367\u3368\u3369\u336A\u336B\u336C\u336D"+
- "\u336E\u336F\u3370\u3371\u3372\u3373\u3374\u3375"+
- "\u3376\u3377\u3378\u3379\u337A\u337B\u337C\u337D"+
- "\u337E\u337F\u3380\u3381\u3382\u3383\u3384\u3385"+
- "\u3386\u3387\u3388\u3389\u338A\u338B\u338C\u338D"+
- "\u3390\u3391\u3392\u3393\u3394\u3395\u3396\u3397"+
- "\u3398\u3399\u339A\u339B\u339F\u33A0\u33A2\u33A3"+
- "\u33A4\u33A5\u33A6\u33A7\u33A8\u33A9\u33AA\u33AB"+
- "\u33AC\u33AD\u33AE\u33AF\u33B0\u33B1\u33B2\u33B3"+
- "\u33B4\u33B5\u33B6\u33B7\u33B8\u33B9\u33BA\u33BB"+
- "\u33BC\u33BD\u33BE\u33BF\u33C0\u33C1\u33C2\u33C3"+
- "\u33C5\u33C6\u33C7\u33C8\u33C9\u33CA\u33CB\u33CC"+
- "\u33CD\u33CF\u33D0\u33D3\u33D4\u33D6\u33D7\u33D8"+
- "\u33D9\u33DA\u33DB\u33DC\u33DD\u33DE\u33DF\u33E0"+
- "\u33E1\u33E2\u33E3\u33E4\u33E5\u33E6\u33E7\u33E8"+
- "\u33E9\u33EA\u33EB\u33EC\u33ED\u33EE\u33EF\u33F0"+
- "\u33F1\u33F2\u33F3\u33F4\u33F5\u33F6\u33F7\u33F8"+
- "\u33F9\u33FA\u33FB\u33FC\u33FD\u33FE\u33FF\u3400"+
- "\u3401\u3402\u3403\u3404\u3405\u3406\u3407\u3408"+
- "\u3409\u340A\u340B\u340C\u340D\u340E\u340F\u3410"+
- "\u3411\u3412\u3413\u3414\u3415\u3416\u3417\u3418"+
- "\u3419\u341A\u341B\u341C\u341D\u341E\u341F\u3420"+
- "\u3421\u3422\u3423\u3424\u3425\u3426\u3427\u3428"+
- "\u3429\u342A\u342B\u342C\u342D\u342E\u342F\u3430"+
- "\u3431\u3432\u3433\u3434\u3435\u3436\u3437\u3438"+
- "\u3439\u343A\u343B\u343C\u343D\u343E\u343F\u3440"+
- "\u3441\u3442\u3443\u3444\u3445\u3446\u3448\u3449"+
- "\u344A\u344B\u344C\u344D\u344E\u344F\u3450\u3451"+
- "\u3452\u3453\u3454\u3455\u3456\u3457\u3458\u3459"+
- "\u345A\u345B\u345C\u345D\u345E\u345F\u3460\u3461"+
- "\u3462\u3463\u3464\u3465\u3466\u3467\u3468\u3469"+
- "\u346A\u346B\u346C\u346D\u346E\u346F\u3470\u3471"+
- "\u3472\u3474\u3475\u3476\u3477\u3478\u3479\u347A"+
- "\u347B\u347C\u347D\u347E\u347F\u3480\u3481\u3482"+
- "\u3483\u3484\u3485\u3486\u3487\u3488\u3489\u348A"+
- "\u348B\u348C\u348D\u348E\u348F\u3490\u3491\u3492"+
- "\u3493\u3494\u3495\u3496\u3497\u3498\u3499\u349A"+
- "\u349B\u349C\u349D\u349E\u349F\u34A0\u34A1\u34A2"+
- "\u34A3\u34A4\u34A5\u34A6\u34A7\u34A8\u34A9\u34AA"+
- "\u34AB\u34AC\u34AD\u34AE\u34AF\u34B0\u34B1\u34B2"+
- "\u34B3\u34B4\u34B5\u34B6\u34B7\u34B8\u34B9\u34BA"+
- "\u34BB\u34BC\u34BD\u34BE\u34BF\u34C0\u34C1\u34C2"+
- "\u34C3\u34C4\u34C5\u34C6\u34C7\u34C8\u34C9\u34CA"+
- "\u34CB\u34CC\u34CD\u34CE\u34CF\u34D0\u34D1\u34D2"+
- "\u34D3\u34D4\u34D5\u34D6\u34D7\u34D8\u34D9\u34DA"+
- "\u34DB\u34DC\u34DD\u34DE\u34DF\u34E0\u34E1\u34E2"+
- "\u34E3\u34E4\u34E5\u34E6\u34E7\u34E8\u34E9\u34EA"+
- "\u34EB\u34EC\u34ED\u34EE\u34EF\u34F0\u34F1\u34F2"+
- "\u34F3\u34F4\u34F5\u34F6\u34F7\u34F8\u34F9\u34FA"+
- "\u34FB\u34FC\u34FD\u34FE\u34FF\u3500\u3501\u3502"+
- "\u3503\u3504\u3505\u3506\u3507\u3508\u3509\u350A"+
- "\u350B\u350C\u350D\u350E\u350F\u3510\u3511\u3512"+
- "\u3513\u3514\u3515\u3516\u3517\u3518\u3519\u351A"+
- "\u351B\u351C\u351D\u351E\u351F\u3520\u3521\u3522"+
- "\u3523\u3524\u3525\u3526\u3527\u3528\u3529\u352A"+
- "\u352B\u352C\u352D\u352E\u352F\u3530\u3531\u3532"+
- "\u3533\u3534\u3535\u3536\u3537\u3538\u3539\u353A"+
- "\u353B\u353C\u353D\u353E\u353F\u3540\u3541\u3542"+
- "\u3543\u3544\u3545\u3546\u3547\u3548\u3549\u354A"+
- "\u354B\u354C\u354D\u354E\u354F\u3550\u3551\u3552"+
- "\u3553\u3554\u3555\u3556\u3557\u3558\u3559\u355A"+
- "\u355B\u355C\u355D\u355E\u355F\u3560\u3561\u3562"+
- "\u3563\u3564\u3565\u3566\u3567\u3568\u3569\u356A"+
- "\u356B\u356C\u356D\u356E\u356F\u3570\u3571\u3572"+
- "\u3573\u3574\u3575\u3576\u3577\u3578\u3579\u357A"+
- "\u357B\u357C\u357D\u357E\u357F\u3580\u3581\u3582"+
- "\u3583\u3584\u3585\u3586\u3587\u3588\u3589\u358A"+
- "\u358B\u358C\u358D\u358E\u358F\u3590\u3591\u3592"+
- "\u3593\u3594\u3595\u3596\u3597\u3598\u3599\u359A"+
- "\u359B\u359C\u359D\u359F\u35A0\u35A1\u35A2\u35A3"+
- "\u35A4\u35A5\u35A6\u35A7\u35A8\u35A9\u35AA\u35AB"+
- "\u35AC\u35AD\u35AE\u35AF\u35B0\u35B1\u35B2\u35B3"+
- "\u35B4\u35B5\u35B6\u35B7\u35B8\u35B9\u35BA\u35BB"+
- "\u35BC\u35BD\u35BE\u35BF\u35C0\u35C1\u35C2\u35C3"+
- "\u35C4\u35C5\u35C6\u35C7\u35C8\u35C9\u35CA\u35CB"+
- "\u35CC\u35CD\u35CE\u35CF\u35D0\u35D1\u35D2\u35D3"+
- "\u35D4\u35D5\u35D6\u35D7\u35D8\u35D9\u35DA\u35DB"+
- "\u35DC\u35DD\u35DE\u35DF\u35E0\u35E1\u35E2\u35E3"+
- "\u35E4\u35E5\u35E6\u35E7\u35E8\u35E9\u35EA\u35EB"+
- "\u35EC\u35ED\u35EE\u35EF\u35F0\u35F1\u35F2\u35F3"+
- "\u35F4\u35F5\u35F6\u35F7\u35F8\u35F9\u35FA\u35FB"+
- "\u35FC\u35FD\u35FE\u35FF\u3600\u3601\u3602\u3603"+
- "\u3604\u3605\u3606\u3607\u3608\u3609\u360A\u360B"+
- "\u360C\u360D\u360F\u3610\u3611\u3612\u3613\u3614"+
- "\u3615\u3616\u3617\u3618\u3619\u361B\u361C\u361D"+
- "\u361E\u361F\u3620\u3621\u3622\u3623\u3624\u3625"+
- "\u3626\u3627\u3628\u3629\u362A\u362B\u362C\u362D"+
- "\u362E\u362F\u3630\u3631\u3632\u3633\u3634\u3635"+
- "\u3636\u3637\u3638\u3639\u363A\u363B\u363C\u363D"+
- "\u363E\u363F\u3640\u3641\u3642\u3643\u3644\u3645"+
- "\u3646\u3647\u3648\u3649\u364A\u364B\u364C\u364D"+
- "\u364E\u364F\u3650\u3651\u3652\u3653\u3654\u3655"+
- "\u3656\u3657\u3658\u3659\u365A\u365B\u365C\u365D"+
- "\u365E\u365F\u3660\u3661\u3662\u3663\u3664\u3665"+
- "\u3666\u3667\u3668\u3669\u366A\u366B\u366C\u366D"+
- "\u366E\u366F\u3670\u3671\u3672\u3673\u3674\u3675"+
- "\u3676\u3677\u3678\u3679\u367A\u367B\u367C\u367D"+
- "\u367E\u367F\u3680\u3681\u3682\u3683\u3684\u3685"+
- "\u3686\u3687\u3688\u3689\u368A\u368B\u368C\u368D"+
- "\u368E\u368F\u3690\u3691\u3692\u3693\u3694\u3695"+
- "\u3696\u3697\u3698\u3699\u369A\u369B\u369C\u369D"+
- "\u369E\u369F\u36A0\u36A1\u36A2\u36A3\u36A4\u36A5"+
- "\u36A6\u36A7\u36A8\u36A9\u36AA\u36AB\u36AC\u36AD"+
- "\u36AE\u36AF\u36B0\u36B1\u36B2\u36B3\u36B4\u36B5"+
- "\u36B6\u36B7\u36B8\u36B9\u36BA\u36BB\u36BC\u36BD"+
- "\u36BE\u36BF\u36C0\u36C1\u36C2\u36C3\u36C4\u36C5"+
- "\u36C6\u36C7\u36C8\u36C9\u36CA\u36CB\u36CC\u36CD"+
- "\u36CE\u36CF\u36D0\u36D1\u36D2\u36D3\u36D4\u36D5"+
- "\u36D6\u36D7\u36D8\u36D9\u36DA\u36DB\u36DC\u36DD"+
- "\u36DE\u36DF\u36E0\u36E1\u36E2\u36E3\u36E4\u36E5"+
- "\u36E6\u36E7\u36E8\u36E9\u36EA\u36EB\u36EC\u36ED"+
- "\u36EE\u36EF\u36F0\u36F1\u36F2\u36F3\u36F4\u36F5"+
- "\u36F6\u36F7\u36F8\u36F9\u36FA\u36FB\u36FC\u36FD"+
- "\u36FE\u36FF\u3700\u3701\u3702\u3703\u3704\u3705"+
- "\u3706\u3707\u3708\u3709\u370A\u370B\u370C\u370D"+
- "\u370E\u370F\u3710\u3711\u3712\u3713\u3714\u3715"+
- "\u3716\u3717\u3718\u3719\u371A\u371B\u371C\u371D"+
- "\u371E\u371F\u3720\u3721\u3722\u3723\u3724\u3725"+
- "\u3726\u3727\u3728\u3729\u372A\u372B\u372C\u372D"+
- "\u372E\u372F\u3730\u3731\u3732\u3733\u3734\u3735"+
- "\u3736\u3737\u3738\u3739\u373A\u373B\u373C\u373D"+
- "\u373E\u373F\u3740\u3741\u3742\u3743\u3744\u3745"+
- "\u3746\u3747\u3748\u3749\u374A\u374B\u374C\u374D"+
- "\u374E\u374F\u3750\u3751\u3752\u3753\u3754\u3755"+
- "\u3756\u3757\u3758\u3759\u375A\u375B\u375C\u375D"+
- "\u375E\u375F\u3760\u3761\u3762\u3763\u3764\u3765"+
- "\u3766\u3767\u3768\u3769\u376A\u376B\u376C\u376D"+
- "\u376E\u376F\u3770\u3771\u3772\u3773\u3774\u3775"+
- "\u3776\u3777\u3778\u3779\u377A\u377B\u377C\u377D"+
- "\u377E\u377F\u3780\u3781\u3782\u3783\u3784\u3785"+
- "\u3786\u3787\u3788\u3789\u378A\u378B\u378C\u378D"+
- "\u378E\u378F\u3790\u3791\u3792\u3793\u3794\u3795"+
- "\u3796\u3797\u3798\u3799\u379A\u379B\u379C\u379D"+
- "\u379E\u379F\u37A0\u37A1\u37A2\u37A3\u37A4\u37A5"+
- "\u37A6\u37A7\u37A8\u37A9\u37AA\u37AB\u37AC\u37AD"+
- "\u37AE\u37AF\u37B0\u37B1\u37B2\u37B3\u37B4\u37B5"+
- "\u37B6\u37B7\u37B8\u37B9\u37BA\u37BB\u37BC\u37BD"+
- "\u37BE\u37BF\u37C0\u37C1\u37C2\u37C3\u37C4\u37C5"+
- "\u37C6\u37C7\u37C8\u37C9\u37CA\u37CB\u37CC\u37CD"+
- "\u37CE\u37CF\u37D0\u37D1\u37D2\u37D3\u37D4\u37D5"+
- "\u37D6\u37D7\u37D8\u37D9\u37DA\u37DB\u37DC\u37DD"+
- "\u37DE\u37DF\u37E0\u37E1\u37E2\u37E3\u37E4\u37E5"+
- "\u37E6\u37E7\u37E8\u37E9\u37EA\u37EB\u37EC\u37ED"+
- "\u37EE\u37EF\u37F0\u37F1\u37F2\u37F3\u37F4\u37F5"+
- "\u37F6\u37F7\u37F8\u37F9\u37FA\u37FB\u37FC\u37FD"+
- "\u37FE\u37FF\u3800\u3801\u3802\u3803\u3804\u3805"+
- "\u3806\u3807\u3808\u3809\u380A\u380B\u380C\u380D"+
- "\u380E\u380F\u3810\u3811\u3812\u3813\u3814\u3815"+
- "\u3816\u3817\u3818\u3819\u381A\u381B\u381C\u381D"+
- "\u381E\u381F\u3820\u3821\u3822\u3823\u3824\u3825"+
- "\u3826\u3827\u3828\u3829\u382A\u382B\u382C\u382D"+
- "\u382E\u382F\u3830\u3831\u3832\u3833\u3834\u3835"+
- "\u3836\u3837\u3838\u3839\u383A\u383B\u383C\u383D"+
- "\u383E\u383F\u3840\u3841\u3842\u3843\u3844\u3845"+
- "\u3846\u3847\u3848\u3849\u384A\u384B\u384C\u384D"+
- "\u384E\u384F\u3850\u3851\u3852\u3853\u3854\u3855"+
- "\u3856\u3857\u3858\u3859\u385A\u385B\u385C\u385D"+
- "\u385E\u385F\u3860\u3861\u3862\u3863\u3864\u3865"+
- "\u3866\u3867\u3868\u3869\u386A\u386B\u386C\u386D"+
- "\u386E\u386F\u3870\u3871\u3872\u3873\u3874\u3875"+
- "\u3876\u3877\u3878\u3879\u387A\u387B\u387C\u387D"+
- "\u387E\u387F\u3880\u3881\u3882\u3883\u3884\u3885"+
- "\u3886\u3887\u3888\u3889\u388A\u388B\u388C\u388D"+
- "\u388E\u388F\u3890\u3891\u3892\u3893\u3894\u3895"+
- "\u3896\u3897\u3898\u3899\u389A\u389B\u389C\u389D"+
- "\u389E\u389F\u38A0\u38A1\u38A2\u38A3\u38A4\u38A5"+
- "\u38A6\u38A7\u38A8\u38A9\u38AA\u38AB\u38AC\u38AD"+
- "\u38AE\u38AF\u38B0\u38B1\u38B2\u38B3\u38B4\u38B5"+
- "\u38B6\u38B7\u38B8\u38B9\u38BA\u38BB\u38BC\u38BD"+
- "\u38BE\u38BF\u38C0\u38C1\u38C2\u38C3\u38C4\u38C5"+
- "\u38C6\u38C7\u38C8\u38C9\u38CA\u38CB\u38CC\u38CD"+
- "\u38CE\u38CF\u38D0\u38D1\u38D2\u38D3\u38D4\u38D5"+
- "\u38D6\u38D7\u38D8\u38D9\u38DA\u38DB\u38DC\u38DD"+
- "\u38DE\u38DF\u38E0\u38E1\u38E2\u38E3\u38E4\u38E5"+
- "\u38E6\u38E7\u38E8\u38E9\u38EA\u38EB\u38EC\u38ED"+
- "\u38EE\u38EF\u38F0\u38F1\u38F2\u38F3\u38F4\u38F5"+
- "\u38F6\u38F7\u38F8\u38F9\u38FA\u38FB\u38FC\u38FD"+
- "\u38FE\u38FF\u3900\u3901\u3902\u3903\u3904\u3905"+
- "\u3906\u3907\u3908\u3909\u390A\u390B\u390C\u390D"+
- "\u390E\u390F\u3910\u3911\u3912\u3913\u3914\u3915"+
- "\u3916\u3917\u3919\u391A\u391B\u391C\u391D\u391E"+
- "\u391F\u3920\u3921\u3922\u3923\u3924\u3925\u3926"+
- "\u3927\u3928\u3929\u392A\u392B\u392C\u392D\u392E"+
- "\u392F\u3930\u3931\u3932\u3933\u3934\u3935\u3936"+
- "\u3937\u3938\u3939\u393A\u393B\u393C\u393D\u393E"+
- "\u393F\u3940\u3941\u3942\u3943\u3944\u3945\u3946"+
- "\u3947\u3948\u3949\u394A\u394B\u394C\u394D\u394E"+
- "\u394F\u3950\u3951\u3952\u3953\u3954\u3955\u3956"+
- "\u3957\u3958\u3959\u395A\u395B\u395C\u395D\u395E"+
- "\u395F\u3960\u3961\u3962\u3963\u3964\u3965\u3966"+
- "\u3967\u3968\u3969\u396A\u396B\u396C\u396D\u396F"+
- "\u3970\u3971\u3972\u3973\u3974\u3975\u3976\u3977"+
- "\u3978\u3979\u397A\u397B\u397C\u397D\u397E\u397F"+
- "\u3980\u3981\u3982\u3983\u3984\u3985\u3986\u3987"+
- "\u3988\u3989\u398A\u398B\u398C\u398D\u398E\u398F"+
- "\u3990\u3991\u3992\u3993\u3994\u3995\u3996\u3997"+
- "\u3998\u3999\u399A\u399B\u399C\u399D\u399E\u399F"+
- "\u39A0\u39A1\u39A2\u39A3\u39A4\u39A5\u39A6\u39A7"+
- "\u39A8\u39A9\u39AA\u39AB\u39AC\u39AD\u39AE\u39AF"+
- "\u39B0\u39B1\u39B2\u39B3\u39B4\u39B5\u39B6\u39B7"+
- "\u39B8\u39B9\u39BA\u39BB\u39BC\u39BD\u39BE\u39BF"+
- "\u39C0\u39C1\u39C2\u39C3\u39C4\u39C5\u39C6\u39C7"+
- "\u39C8\u39C9\u39CA\u39CB\u39CC\u39CD\u39CE\u39D1"+
- "\u39D2\u39D3\u39D4\u39D5\u39D6\u39D7\u39D8\u39D9"+
- "\u39DA\u39DB\u39DC\u39DD\u39DE\u39E0\u39E1\u39E2"+
- "\u39E3\u39E4\u39E5\u39E6\u39E7\u39E8\u39E9\u39EA"+
- "\u39EB\u39EC\u39ED\u39EE\u39EF\u39F0\u39F1\u39F2"+
- "\u39F3\u39F4\u39F5\u39F6\u39F7\u39F8\u39F9\u39FA"+
- "\u39FB\u39FC\u39FD\u39FE\u39FF\u3A00\u3A01\u3A02"+
- "\u3A03\u3A04\u3A05\u3A06\u3A07\u3A08\u3A09\u3A0A"+
- "\u3A0B\u3A0C\u3A0D\u3A0E\u3A0F\u3A10\u3A11\u3A12"+
- "\u3A13\u3A14\u3A15\u3A16\u3A17\u3A18\u3A19\u3A1A"+
- "\u3A1B\u3A1C\u3A1D\u3A1E\u3A1F\u3A20\u3A21\u3A22"+
- "\u3A23\u3A24\u3A25\u3A26\u3A27\u3A28\u3A29\u3A2A"+
- "\u3A2B\u3A2C\u3A2D\u3A2E\u3A2F\u3A30\u3A31\u3A32"+
- "\u3A33\u3A34\u3A35\u3A36\u3A37\u3A38\u3A39\u3A3A"+
- "\u3A3B\u3A3C\u3A3D\u3A3E\u3A3F\u3A40\u3A41\u3A42"+
- "\u3A43\u3A44\u3A45\u3A46\u3A47\u3A48\u3A49\u3A4A"+
- "\u3A4B\u3A4C\u3A4D\u3A4E\u3A4F\u3A50\u3A51\u3A52"+
- "\u3A53\u3A54\u3A55\u3A56\u3A57\u3A58\u3A59\u3A5A"+
- "\u3A5B\u3A5C\u3A5D\u3A5E\u3A5F\u3A60\u3A61\u3A62"+
- "\u3A63\u3A64\u3A65\u3A66\u3A67\u3A68\u3A69\u3A6A"+
- "\u3A6B\u3A6C\u3A6D\u3A6E\u3A6F\u3A70\u3A71\u3A72"+
- "\u3A74\u3A75\u3A76\u3A77\u3A78\u3A79\u3A7A\u3A7B"+
- "\u3A7C\u3A7D\u3A7E\u3A7F\u3A80\u3A81\u3A82\u3A83"+
- "\u3A84\u3A85\u3A86\u3A87\u3A88\u3A89\u3A8A\u3A8B"+
- "\u3A8C\u3A8D\u3A8E\u3A8F\u3A90\u3A91\u3A92\u3A93"+
- "\u3A94\u3A95\u3A96\u3A97\u3A98\u3A99\u3A9A\u3A9B"+
- "\u3A9C\u3A9D\u3A9E\u3A9F\u3AA0\u3AA1\u3AA2\u3AA3"+
- "\u3AA4\u3AA5\u3AA6\u3AA7\u3AA8\u3AA9\u3AAA\u3AAB"+
- "\u3AAC\u3AAD\u3AAE\u3AAF\u3AB0\u3AB1\u3AB2\u3AB3"+
- "\u3AB4\u3AB5\u3AB6\u3AB7\u3AB8\u3AB9\u3ABA\u3ABB"+
- "\u3ABC\u3ABD\u3ABE\u3ABF\u3AC0\u3AC1\u3AC2\u3AC3"+
- "\u3AC4\u3AC5\u3AC6\u3AC7\u3AC8\u3AC9\u3ACA\u3ACB"+
- "\u3ACC\u3ACD\u3ACE\u3ACF\u3AD0\u3AD1\u3AD2\u3AD3"+
- "\u3AD4\u3AD5\u3AD6\u3AD7\u3AD8\u3AD9\u3ADA\u3ADB"+
- "\u3ADC\u3ADD\u3ADE\u3ADF\u3AE0\u3AE1\u3AE2\u3AE3"+
- "\u3AE4\u3AE5\u3AE6\u3AE7\u3AE8\u3AE9\u3AEA\u3AEB"+
- "\u3AEC\u3AED\u3AEE\u3AEF\u3AF0\u3AF1\u3AF2\u3AF3"+
- "\u3AF4\u3AF5\u3AF6\u3AF7\u3AF8\u3AF9\u3AFA\u3AFB"+
- "\u3AFC\u3AFD\u3AFE\u3AFF\u3B00\u3B01\u3B02\u3B03"+
- "\u3B04\u3B05\u3B06\u3B07\u3B08\u3B09\u3B0A\u3B0B"+
- "\u3B0C\u3B0D\u3B0E\u3B0F\u3B10\u3B11\u3B12\u3B13"+
- "\u3B14\u3B15\u3B16\u3B17\u3B18\u3B19\u3B1A\u3B1B"+
- "\u3B1C\u3B1D\u3B1E\u3B1F\u3B20\u3B21\u3B22\u3B23"+
- "\u3B24\u3B25\u3B26\u3B27\u3B28\u3B29\u3B2A\u3B2B"+
- "\u3B2C\u3B2D\u3B2E\u3B2F\u3B30\u3B31\u3B32\u3B33"+
- "\u3B34\u3B35\u3B36\u3B37\u3B38\u3B39\u3B3A\u3B3B"+
- "\u3B3C\u3B3D\u3B3E\u3B3F\u3B40\u3B41\u3B42\u3B43"+
- "\u3B44\u3B45\u3B46\u3B47\u3B48\u3B49\u3B4A\u3B4B"+
- "\u3B4C\u3B4D\u3B4F\u3B50\u3B51\u3B52\u3B53\u3B54"+
- "\u3B55\u3B56\u3B57\u3B58\u3B59\u3B5A\u3B5B\u3B5C"+
- "\u3B5D\u3B5E\u3B5F\u3B60\u3B61\u3B62\u3B63\u3B64"+
- "\u3B65\u3B66\u3B67\u3B68\u3B69\u3B6A\u3B6B\u3B6C"+
- "\u3B6D\u3B6E\u3B6F\u3B70\u3B71\u3B72\u3B73\u3B74"+
- "\u3B75\u3B76\u3B77\u3B78\u3B79\u3B7A\u3B7B\u3B7C"+
- "\u3B7D\u3B7E\u3B7F\u3B80\u3B81\u3B82\u3B83\u3B84"+
- "\u3B85\u3B86\u3B87\u3B88\u3B89\u3B8A\u3B8B\u3B8C"+
- "\u3B8D\u3B8E\u3B8F\u3B90\u3B91\u3B92\u3B93\u3B94"+
- "\u3B95\u3B96\u3B97\u3B98\u3B99\u3B9A\u3B9B\u3B9C"+
- "\u3B9D\u3B9E\u3B9F\u3BA0\u3BA1\u3BA2\u3BA3\u3BA4"+
- "\u3BA5\u3BA6\u3BA7\u3BA8\u3BA9\u3BAA\u3BAB\u3BAC"+
- "\u3BAD\u3BAE\u3BAF\u3BB0\u3BB1\u3BB2\u3BB3\u3BB4"+
- "\u3BB5\u3BB6\u3BB7\u3BB8\u3BB9\u3BBA\u3BBB\u3BBC"+
- "\u3BBD\u3BBE\u3BBF\u3BC0\u3BC1\u3BC2\u3BC3\u3BC4"+
- "\u3BC5\u3BC6\u3BC7\u3BC8\u3BC9\u3BCA\u3BCB\u3BCC"+
- "\u3BCD\u3BCE\u3BCF\u3BD0\u3BD1\u3BD2\u3BD3\u3BD4"+
- "\u3BD5\u3BD6\u3BD7\u3BD8\u3BD9\u3BDA\u3BDB\u3BDC"+
- "\u3BDD\u3BDE\u3BDF\u3BE0\u3BE1\u3BE2\u3BE3\u3BE4"+
- "\u3BE5\u3BE6\u3BE7\u3BE8\u3BE9\u3BEA\u3BEB\u3BEC"+
- "\u3BED\u3BEE\u3BEF\u3BF0\u3BF1\u3BF2\u3BF3\u3BF4"+
- "\u3BF5\u3BF6\u3BF7\u3BF8\u3BF9\u3BFA\u3BFB\u3BFC"+
- "\u3BFD\u3BFE\u3BFF\u3C00\u3C01\u3C02\u3C03\u3C04"+
- "\u3C05\u3C06\u3C07\u3C08\u3C09\u3C0A\u3C0B\u3C0C"+
- "\u3C0D\u3C0E\u3C0F\u3C10\u3C11\u3C12\u3C13\u3C14"+
- "\u3C15\u3C16\u3C17\u3C18\u3C19\u3C1A\u3C1B\u3C1C"+
- "\u3C1D\u3C1E\u3C1F\u3C20\u3C21\u3C22\u3C23\u3C24"+
- "\u3C25\u3C26\u3C27\u3C28\u3C29\u3C2A\u3C2B\u3C2C"+
- "\u3C2D\u3C2E\u3C2F\u3C30\u3C31\u3C32\u3C33\u3C34"+
- "\u3C35\u3C36\u3C37\u3C38\u3C39\u3C3A\u3C3B\u3C3C"+
- "\u3C3D\u3C3E\u3C3F\u3C40\u3C41\u3C42\u3C43\u3C44"+
- "\u3C45\u3C46\u3C47\u3C48\u3C49\u3C4A\u3C4B\u3C4C"+
- "\u3C4D\u3C4E\u3C4F\u3C50\u3C51\u3C52\u3C53\u3C54"+
- "\u3C55\u3C56\u3C57\u3C58\u3C59\u3C5A\u3C5B\u3C5C"+
- "\u3C5D\u3C5E\u3C5F\u3C60\u3C61\u3C62\u3C63\u3C64"+
- "\u3C65\u3C66\u3C67\u3C68\u3C69\u3C6A\u3C6B\u3C6C"+
- "\u3C6D\u3C6F\u3C70\u3C71\u3C72\u3C73\u3C74\u3C75"+
- "\u3C76\u3C77\u3C78\u3C79\u3C7A\u3C7B\u3C7C\u3C7D"+
- "\u3C7E\u3C7F\u3C80\u3C81\u3C82\u3C83\u3C84\u3C85"+
- "\u3C86\u3C87\u3C88\u3C89\u3C8A\u3C8B\u3C8C\u3C8D"+
- "\u3C8E\u3C8F\u3C90\u3C91\u3C92\u3C93\u3C94\u3C95"+
- "\u3C96\u3C97\u3C98\u3C99\u3C9A\u3C9B\u3C9C\u3C9D"+
- "\u3C9E\u3C9F\u3CA0\u3CA1\u3CA2\u3CA3\u3CA4\u3CA5"+
- "\u3CA6\u3CA7\u3CA8\u3CA9\u3CAA\u3CAB\u3CAC\u3CAD"+
- "\u3CAE\u3CAF\u3CB0\u3CB1\u3CB2\u3CB3\u3CB4\u3CB5"+
- "\u3CB6\u3CB7\u3CB8\u3CB9\u3CBA\u3CBB\u3CBC\u3CBD"+
- "\u3CBE\u3CBF\u3CC0\u3CC1\u3CC2\u3CC3\u3CC4\u3CC5"+
- "\u3CC6\u3CC7\u3CC8\u3CC9\u3CCA\u3CCB\u3CCC\u3CCD"+
- "\u3CCE\u3CCF\u3CD0\u3CD1\u3CD2\u3CD3\u3CD4\u3CD5"+
- "\u3CD6\u3CD7\u3CD8\u3CD9\u3CDA\u3CDB\u3CDC\u3CDD"+
- "\u3CDE\u3CDF\u3CE1\u3CE2\u3CE3\u3CE4\u3CE5\u3CE6"+
- "\u3CE7\u3CE8\u3CE9\u3CEA\u3CEB\u3CEC\u3CED\u3CEE"+
- "\u3CEF\u3CF0\u3CF1\u3CF2\u3CF3\u3CF4\u3CF5\u3CF6"+
- "\u3CF7\u3CF8\u3CF9\u3CFA\u3CFB\u3CFC\u3CFD\u3CFE"+
- "\u3CFF\u3D00\u3D01\u3D02\u3D03\u3D04\u3D05\u3D06"+
- "\u3D07\u3D08\u3D09\u3D0A\u3D0B\u3D0C\u3D0D\u3D0E"+
- "\u3D0F\u3D10\u3D11\u3D12\u3D13\u3D14\u3D15\u3D16"+
- "\u3D17\u3D18\u3D19\u3D1A\u3D1B\u3D1C\u3D1D\u3D1E"+
- "\u3D1F\u3D20\u3D21\u3D22\u3D23\u3D24\u3D25\u3D26"+
- "\u3D27\u3D28\u3D29\u3D2A\u3D2B\u3D2C\u3D2D\u3D2E"+
- "\u3D2F\u3D30\u3D31\u3D32\u3D33\u3D34\u3D35\u3D36"+
- "\u3D37\u3D38\u3D39\u3D3A\u3D3B\u3D3C\u3D3D\u3D3E"+
- "\u3D3F\u3D40\u3D41\u3D42\u3D43\u3D44\u3D45\u3D46"+
- "\u3D47\u3D48\u3D49\u3D4A\u3D4B\u3D4C\u3D4D\u3D4E"+
- "\u3D4F\u3D50\u3D51\u3D52\u3D53\u3D54\u3D55\u3D56"+
- "\u3D57\u3D58\u3D59\u3D5A\u3D5B\u3D5C\u3D5D\u3D5E"+
- "\u3D5F\u3D60\u3D61\u3D62\u3D63\u3D64\u3D65\u3D66"+
- "\u3D67\u3D68\u3D69\u3D6A\u3D6B\u3D6C\u3D6D\u3D6E"+
- "\u3D6F\u3D70\u3D71\u3D72\u3D73\u3D74\u3D75\u3D76"+
- "\u3D77\u3D78\u3D79\u3D7A\u3D7B\u3D7C\u3D7D\u3D7E"+
- "\u3D7F\u3D80\u3D81\u3D82\u3D83\u3D84\u3D85\u3D86"+
- "\u3D87\u3D88\u3D89\u3D8A\u3D8B\u3D8C\u3D8D\u3D8E"+
- "\u3D8F\u3D90\u3D91\u3D92\u3D93\u3D94\u3D95\u3D96"+
- "\u3D97\u3D98\u3D99\u3D9A\u3D9B\u3D9C\u3D9D\u3D9E"+
- "\u3D9F\u3DA0\u3DA1\u3DA2\u3DA3\u3DA4\u3DA5\u3DA6"+
- "\u3DA7\u3DA8\u3DA9\u3DAA\u3DAB\u3DAC\u3DAD\u3DAE"+
- "\u3DAF\u3DB0\u3DB1\u3DB2\u3DB3\u3DB4\u3DB5\u3DB6"+
- "\u3DB7\u3DB8\u3DB9\u3DBA\u3DBB\u3DBC\u3DBD\u3DBE"+
- "\u3DBF\u3DC0\u3DC1\u3DC2\u3DC3\u3DC4\u3DC5\u3DC6"+
- "\u3DC7\u3DC8\u3DC9\u3DCA\u3DCB\u3DCC\u3DCD\u3DCE"+
- "\u3DCF\u3DD0\u3DD1\u3DD2\u3DD3\u3DD4\u3DD5\u3DD6"+
- "\u3DD7\u3DD8\u3DD9\u3DDA\u3DDB\u3DDC\u3DDD\u3DDE"+
- "\u3DDF\u3DE0\u3DE1\u3DE2\u3DE3\u3DE4\u3DE5\u3DE6"+
- "\u3DE7\u3DE8\u3DE9\u3DEA\u3DEB\u3DEC\u3DED\u3DEE"+
- "\u3DEF\u3DF0\u3DF1\u3DF2\u3DF3\u3DF4\u3DF5\u3DF6"+
- "\u3DF7\u3DF8\u3DF9\u3DFA\u3DFB\u3DFC\u3DFD\u3DFE"+
- "\u3DFF\u3E00\u3E01\u3E02\u3E03\u3E04\u3E05\u3E06"+
- "\u3E07\u3E08\u3E09\u3E0A\u3E0B\u3E0C\u3E0D\u3E0E"+
- "\u3E0F\u3E10\u3E11\u3E12\u3E13\u3E14\u3E15\u3E16"+
- "\u3E17\u3E18\u3E19\u3E1A\u3E1B\u3E1C\u3E1D\u3E1E"+
- "\u3E1F\u3E20\u3E21\u3E22\u3E23\u3E24\u3E25\u3E26"+
- "\u3E27\u3E28\u3E29\u3E2A\u3E2B\u3E2C\u3E2D\u3E2E"+
- "\u3E2F\u3E30\u3E31\u3E32\u3E33\u3E34\u3E35\u3E36"+
- "\u3E37\u3E38\u3E39\u3E3A\u3E3B\u3E3C\u3E3D\u3E3E"+
- "\u3E3F\u3E40\u3E41\u3E42\u3E43\u3E44\u3E45\u3E46"+
- "\u3E47\u3E48\u3E49\u3E4A\u3E4B\u3E4C\u3E4D\u3E4E"+
- "\u3E4F\u3E50\u3E51\u3E52\u3E53\u3E54\u3E55\u3E56"+
- "\u3E57\u3E58\u3E59\u3E5A\u3E5B\u3E5C\u3E5D\u3E5E"+
- "\u3E5F\u3E60\u3E61\u3E62\u3E63\u3E64\u3E65\u3E66"+
- "\u3E67\u3E68\u3E69\u3E6A\u3E6B\u3E6C\u3E6D\u3E6E"+
- "\u3E6F\u3E70\u3E71\u3E72\u3E73\u3E74\u3E75\u3E76"+
- "\u3E77\u3E78\u3E79\u3E7A\u3E7B\u3E7C\u3E7D\u3E7E"+
- "\u3E7F\u3E80\u3E81\u3E82\u3E83\u3E84\u3E85\u3E86"+
- "\u3E87\u3E88\u3E89\u3E8A\u3E8B\u3E8C\u3E8D\u3E8E"+
- "\u3E8F\u3E90\u3E91\u3E92\u3E93\u3E94\u3E95\u3E96"+
- "\u3E97\u3E98\u3E99\u3E9A\u3E9B\u3E9C\u3E9D\u3E9E"+
- "\u3E9F\u3EA0\u3EA1\u3EA2\u3EA3\u3EA4\u3EA5\u3EA6"+
- "\u3EA7\u3EA8\u3EA9\u3EAA\u3EAB\u3EAC\u3EAD\u3EAE"+
- "\u3EAF\u3EB0\u3EB1\u3EB2\u3EB3\u3EB4\u3EB5\u3EB6"+
- "\u3EB7\u3EB8\u3EB9\u3EBA\u3EBB\u3EBC\u3EBD\u3EBE"+
- "\u3EBF\u3EC0\u3EC1\u3EC2\u3EC3\u3EC4\u3EC5\u3EC6"+
- "\u3EC7\u3EC8\u3EC9\u3ECA\u3ECB\u3ECC\u3ECD\u3ECE"+
- "\u3ECF\u3ED0\u3ED1\u3ED2\u3ED3\u3ED4\u3ED5\u3ED6"+
- "\u3ED7\u3ED8\u3ED9\u3EDA\u3EDB\u3EDC\u3EDD\u3EDE"+
- "\u3EDF\u3EE0\u3EE1\u3EE2\u3EE3\u3EE4\u3EE5\u3EE6"+
- "\u3EE7\u3EE8\u3EE9\u3EEA\u3EEB\u3EEC\u3EED\u3EEE"+
- "\u3EEF\u3EF0\u3EF1\u3EF2\u3EF3\u3EF4\u3EF5\u3EF6"+
- "\u3EF7\u3EF8\u3EF9\u3EFA\u3EFB\u3EFC\u3EFD\u3EFE"+
- "\u3EFF\u3F00\u3F01\u3F02\u3F03\u3F04\u3F05\u3F06"+
- "\u3F07\u3F08\u3F09\u3F0A\u3F0B\u3F0C\u3F0D\u3F0E"+
- "\u3F0F\u3F10\u3F11\u3F12\u3F13\u3F14\u3F15\u3F16"+
- "\u3F17\u3F18\u3F19\u3F1A\u3F1B\u3F1C\u3F1D\u3F1E"+
- "\u3F1F\u3F20\u3F21\u3F22\u3F23\u3F24\u3F25\u3F26"+
- "\u3F27\u3F28\u3F29\u3F2A\u3F2B\u3F2C\u3F2D\u3F2E"+
- "\u3F2F\u3F30\u3F31\u3F32\u3F33\u3F34\u3F35\u3F36"+
- "\u3F37\u3F38\u3F39\u3F3A\u3F3B\u3F3C\u3F3D\u3F3E"+
- "\u3F3F\u3F40\u3F41\u3F42\u3F43\u3F44\u3F45\u3F46"+
- "\u3F47\u3F48\u3F49\u3F4A\u3F4B\u3F4C\u3F4D\u3F4E"+
- "\u3F4F\u3F50\u3F51\u3F52\u3F53\u3F54\u3F55\u3F56"+
- "\u3F57\u3F58\u3F59\u3F5A\u3F5B\u3F5C\u3F5D\u3F5E"+
- "\u3F5F\u3F60\u3F61\u3F62\u3F63\u3F64\u3F65\u3F66"+
- "\u3F67\u3F68\u3F69\u3F6A\u3F6B\u3F6C\u3F6D\u3F6E"+
- "\u3F6F\u3F70\u3F71\u3F72\u3F73\u3F74\u3F75\u3F76"+
- "\u3F77\u3F78\u3F79\u3F7A\u3F7B\u3F7C\u3F7D\u3F7E"+
- "\u3F7F\u3F80\u3F81\u3F82\u3F83\u3F84\u3F85\u3F86"+
- "\u3F87\u3F88\u3F89\u3F8A\u3F8B\u3F8C\u3F8D\u3F8E"+
- "\u3F8F\u3F90\u3F91\u3F92\u3F93\u3F94\u3F95\u3F96"+
- "\u3F97\u3F98\u3F99\u3F9A\u3F9B\u3F9C\u3F9D\u3F9E"+
- "\u3F9F\u3FA0\u3FA1\u3FA2\u3FA3\u3FA4\u3FA5\u3FA6"+
- "\u3FA7\u3FA8\u3FA9\u3FAA\u3FAB\u3FAC\u3FAD\u3FAE"+
- "\u3FAF\u3FB0\u3FB1\u3FB2\u3FB3\u3FB4\u3FB5\u3FB6"+
- "\u3FB7\u3FB8\u3FB9\u3FBA\u3FBB\u3FBC\u3FBD\u3FBE"+
- "\u3FBF\u3FC0\u3FC1\u3FC2\u3FC3\u3FC4\u3FC5\u3FC6"+
- "\u3FC7\u3FC8\u3FC9\u3FCA\u3FCB\u3FCC\u3FCD\u3FCE"+
- "\u3FCF\u3FD0\u3FD1\u3FD2\u3FD3\u3FD4\u3FD5\u3FD6"+
- "\u3FD7\u3FD8\u3FD9\u3FDA\u3FDB\u3FDC\u3FDD\u3FDE"+
- "\u3FDF\u3FE0\u3FE1\u3FE2\u3FE3\u3FE4\u3FE5\u3FE6"+
- "\u3FE7\u3FE8\u3FE9\u3FEA\u3FEB\u3FEC\u3FED\u3FEE"+
- "\u3FEF\u3FF0\u3FF1\u3FF2\u3FF3\u3FF4\u3FF5\u3FF6"+
- "\u3FF7\u3FF8\u3FF9\u3FFA\u3FFB\u3FFC\u3FFD\u3FFE"+
- "\u3FFF\u4000\u4001\u4002\u4003\u4004\u4005\u4006"+
- "\u4007\u4008\u4009\u400A\u400B\u400C\u400D\u400E"+
- "\u400F\u4010\u4011\u4012\u4013\u4014\u4015\u4016"+
- "\u4017\u4018\u4019\u401A\u401B\u401C\u401D\u401E"+
- "\u401F\u4020\u4021\u4022\u4023\u4024\u4025\u4026"+
- "\u4027\u4028\u4029\u402A\u402B\u402C\u402D\u402E"+
- "\u402F\u4030\u4031\u4032\u4033\u4034\u4035\u4036"+
- "\u4037\u4038\u4039\u403A\u403B\u403C\u403D\u403E"+
- "\u403F\u4040\u4041\u4042\u4043\u4044\u4045\u4046"+
- "\u4047\u4048\u4049\u404A\u404B\u404C\u404D\u404E"+
- "\u404F\u4050\u4051\u4052\u4053\u4054\u4055\u4057"+
- "\u4058\u4059\u405A\u405B\u405C\u405D\u405E\u405F"+
- "\u4060\u4061\u4062\u4063\u4064\u4065\u4066\u4067"+
- "\u4068\u4069\u406A\u406B\u406C\u406D\u406E\u406F"+
- "\u4070\u4071\u4072\u4073\u4074\u4075\u4076\u4077"+
- "\u4078\u4079\u407A\u407B\u407C\u407D\u407E\u407F"+
- "\u4080\u4081\u4082\u4083\u4084\u4085\u4086\u4087"+
- "\u4088\u4089\u408A\u408B\u408C\u408D\u408E\u408F"+
- "\u4090\u4091\u4092\u4093\u4094\u4095\u4096\u4097"+
- "\u4098\u4099\u409A\u409B\u409C\u409D\u409E\u409F"+
- "\u40A0\u40A1\u40A2\u40A3\u40A4\u40A5\u40A6\u40A7"+
- "\u40A8\u40A9\u40AA\u40AB\u40AC\u40AD\u40AE\u40AF"+
- "\u40B0\u40B1\u40B2\u40B3\u40B4\u40B5\u40B6\u40B7"+
- "\u40B8\u40B9\u40BA\u40BB\u40BC\u40BD\u40BE\u40BF"+
- "\u40C0\u40C1\u40C2\u40C3\u40C4\u40C5\u40C6\u40C7"+
- "\u40C8\u40C9\u40CA\u40CB\u40CC\u40CD\u40CE\u40CF"+
- "\u40D0\u40D1\u40D2\u40D3\u40D4\u40D5\u40D6\u40D7"+
- "\u40D8\u40D9\u40DA\u40DB\u40DC\u40DD\u40DE\u40DF"+
- "\u40E0\u40E1\u40E2\u40E3\u40E4\u40E5\u40E6\u40E7"+
- "\u40E8\u40E9\u40EA\u40EB\u40EC\u40ED\u40EE\u40EF"+
- "\u40F0\u40F1\u40F2\u40F3\u40F4\u40F5\u40F6\u40F7"+
- "\u40F8\u40F9\u40FA\u40FB\u40FC\u40FD\u40FE\u40FF"+
- "\u4100\u4101\u4102\u4103\u4104\u4105\u4106\u4107"+
- "\u4108\u4109\u410A\u410B\u410C\u410D\u410E\u410F"+
- "\u4110\u4111\u4112\u4113\u4114\u4115\u4116\u4117"+
- "\u4118\u4119\u411A\u411B\u411C\u411D\u411E\u411F"+
- "\u4120\u4121\u4122\u4123\u4124\u4125\u4126\u4127"+
- "\u4128\u4129\u412A\u412B\u412C\u412D\u412E\u412F"+
- "\u4130\u4131\u4132\u4133\u4134\u4135\u4136\u4137"+
- "\u4138\u4139\u413A\u413B\u413C\u413D\u413E\u413F"+
- "\u4140\u4141\u4142\u4143\u4144\u4145\u4146\u4147"+
- "\u4148\u4149\u414A\u414B\u414C\u414D\u414E\u414F"+
- "\u4150\u4151\u4152\u4153\u4154\u4155\u4156\u4157"+
- "\u4158\u4159\u415A\u415B\u415C\u415D\u415E\u4160"+
- "\u4161\u4162\u4163\u4164\u4165\u4166\u4167\u4168"+
- "\u4169\u416A\u416B\u416C\u416D\u416E\u416F\u4170"+
- "\u4171\u4172\u4173\u4174\u4175\u4176\u4177\u4178"+
- "\u4179\u417A\u417B\u417C\u417D\u417E\u417F\u4180"+
- "\u4181\u4182\u4183\u4184\u4185\u4186\u4187\u4188"+
- "\u4189\u418A\u418B\u418C\u418D\u418E\u418F\u4190"+
- "\u4191\u4192\u4193\u4194\u4195\u4196\u4197\u4198"+
- "\u4199\u419A\u419B\u419C\u419D\u419E\u419F\u41A0"+
- "\u41A1\u41A2\u41A3\u41A4\u41A5\u41A6\u41A7\u41A8"+
- "\u41A9\u41AA\u41AB\u41AC\u41AD\u41AE\u41AF\u41B0"+
- "\u41B1\u41B2\u41B3\u41B4\u41B5\u41B6\u41B7\u41B8"+
- "\u41B9\u41BA\u41BB\u41BC\u41BD\u41BE\u41BF\u41C0"+
- "\u41C1\u41C2\u41C3\u41C4\u41C5\u41C6\u41C7\u41C8"+
- "\u41C9\u41CA\u41CB\u41CC\u41CD\u41CE\u41CF\u41D0"+
- "\u41D1\u41D2\u41D3\u41D4\u41D5\u41D6\u41D7\u41D8"+
- "\u41D9\u41DA\u41DB\u41DC\u41DD\u41DE\u41DF\u41E0"+
- "\u41E1\u41E2\u41E3\u41E4\u41E5\u41E6\u41E7\u41E8"+
- "\u41E9\u41EA\u41EB\u41EC\u41ED\u41EE\u41EF\u41F0"+
- "\u41F1\u41F2\u41F3\u41F4\u41F5\u41F6\u41F7\u41F8"+
- "\u41F9\u41FA\u41FB\u41FC\u41FD\u41FE\u41FF\u4200"+
- "\u4201\u4202\u4203\u4204\u4205\u4206\u4207\u4208"+
- "\u4209\u420A\u420B\u420C\u420D\u420E\u420F\u4210"+
- "\u4211\u4212\u4213\u4214\u4215\u4216\u4217\u4218"+
- "\u4219\u421A\u421B\u421C\u421D\u421E\u421F\u4220"+
- "\u4221\u4222\u4223\u4224\u4225\u4226\u4227\u4228"+
- "\u4229\u422A\u422B\u422C\u422D\u422E\u422F\u4230"+
- "\u4231\u4232\u4233\u4234\u4235\u4236\u4237\u4238"+
- "\u4239\u423A\u423B\u423C\u423D\u423E\u423F\u4240"+
- "\u4241\u4242\u4243\u4244\u4245\u4246\u4247\u4248"+
- "\u4249\u424A\u424B\u424C\u424D\u424E\u424F\u4250"+
- "\u4251\u4252\u4253\u4254\u4255\u4256\u4257\u4258"+
- "\u4259\u425A\u425B\u425C\u425D\u425E\u425F\u4260"+
- "\u4261\u4262\u4263\u4264\u4265\u4266\u4267\u4268"+
- "\u4269\u426A\u426B\u426C\u426D\u426E\u426F\u4270"+
- "\u4271\u4272\u4273\u4274\u4275\u4276\u4277\u4278"+
- "\u4279\u427A\u427B\u427C\u427D\u427E\u427F\u4280"+
- "\u4281\u4282\u4283\u4284\u4285\u4286\u4287\u4288"+
- "\u4289\u428A\u428B\u428C\u428D\u428E\u428F\u4290"+
- "\u4291\u4292\u4293\u4294\u4295\u4296\u4297\u4298"+
- "\u4299\u429A\u429B\u429C\u429D\u429E\u429F\u42A0"+
- "\u42A1\u42A2\u42A3\u42A4\u42A5\u42A6\u42A7\u42A8"+
- "\u42A9\u42AA\u42AB\u42AC\u42AD\u42AE\u42AF\u42B0"+
- "\u42B1\u42B2\u42B3\u42B4\u42B5\u42B6\u42B7\u42B8"+
- "\u42B9\u42BA\u42BB\u42BC\u42BD\u42BE\u42BF\u42C0"+
- "\u42C1\u42C2\u42C3\u42C4\u42C5\u42C6\u42C7\u42C8"+
- "\u42C9\u42CA\u42CB\u42CC\u42CD\u42CE\u42CF\u42D0"+
- "\u42D1\u42D2\u42D3\u42D4\u42D5\u42D6\u42D7\u42D8"+
- "\u42D9\u42DA\u42DB\u42DC\u42DD\u42DE\u42DF\u42E0"+
- "\u42E1\u42E2\u42E3\u42E4\u42E5\u42E6\u42E7\u42E8"+
- "\u42E9\u42EA\u42EB\u42EC\u42ED\u42EE\u42EF\u42F0"+
- "\u42F1\u42F2\u42F3\u42F4\u42F5\u42F6\u42F7\u42F8"+
- "\u42F9\u42FA\u42FB\u42FC\u42FD\u42FE\u42FF\u4300"+
- "\u4301\u4302\u4303\u4304\u4305\u4306\u4307\u4308"+
- "\u4309\u430A\u430B\u430C\u430D\u430E\u430F\u4310"+
- "\u4311\u4312\u4313\u4314\u4315\u4316\u4317\u4318"+
- "\u4319\u431A\u431B\u431C\u431D\u431E\u431F\u4320"+
- "\u4321\u4322\u4323\u4324\u4325\u4326\u4327\u4328"+
- "\u4329\u432A\u432B\u432C\u432D\u432E\u432F\u4330"+
- "\u4331\u4332\u4333\u4334\u4335\u4336\u4338\u4339"+
- "\u433A\u433B\u433C\u433D\u433E\u433F\u4340\u4341"+
- "\u4342\u4343\u4344\u4345\u4346\u4347\u4348\u4349"+
- "\u434A\u434B\u434C\u434D\u434E\u434F\u4350\u4351"+
- "\u4352\u4353\u4354\u4355\u4356\u4357\u4358\u4359"+
- "\u435A\u435B\u435C\u435D\u435E\u435F\u4360\u4361"+
- "\u4362\u4363\u4364\u4365\u4366\u4367\u4368\u4369"+
- "\u436A\u436B\u436C\u436D\u436E\u436F\u4370\u4371"+
- "\u4372\u4373\u4374\u4375\u4376\u4377\u4378\u4379";
-
- private final static String innerDecoderIndex4=
- "\u437A\u437B\u437C\u437D\u437E\u437F\u4380\u4381"+
- "\u4382\u4383\u4384\u4385\u4386\u4387\u4388\u4389"+
- "\u438A\u438B\u438C\u438D\u438E\u438F\u4390\u4391"+
- "\u4392\u4393\u4394\u4395\u4396\u4397\u4398\u4399"+
- "\u439A\u439B\u439C\u439D\u439E\u439F\u43A0\u43A1"+
- "\u43A2\u43A3\u43A4\u43A5\u43A6\u43A7\u43A8\u43A9"+
- "\u43AA\u43AB\u43AD\u43AE\u43AF\u43B0\u43B2\u43B3"+
- "\u43B4\u43B5\u43B6\u43B7\u43B8\u43B9\u43BA\u43BB"+
- "\u43BC\u43BD\u43BE\u43BF\u43C0\u43C1\u43C2\u43C3"+
- "\u43C4\u43C5\u43C6\u43C7\u43C8\u43C9\u43CA\u43CB"+
- "\u43CC\u43CD\u43CE\u43CF\u43D0\u43D1\u43D2\u43D3"+
- "\u43D4\u43D5\u43D6\u43D7\u43D8\u43D9\u43DA\u43DB"+
- "\u43DC\u43DE\u43DF\u43E0\u43E1\u43E2\u43E3\u43E4"+
- "\u43E5\u43E6\u43E7\u43E8\u43E9\u43EA\u43EB\u43EC"+
- "\u43ED\u43EE\u43EF\u43F0\u43F1\u43F2\u43F3\u43F4"+
- "\u43F5\u43F6\u43F7\u43F8\u43F9\u43FA\u43FB\u43FC"+
- "\u43FD\u43FE\u43FF\u4400\u4401\u4402\u4403\u4404"+
- "\u4405\u4406\u4407\u4408\u4409\u440A\u440B\u440C"+
- "\u440D\u440E\u440F\u4410\u4411\u4412\u4413\u4414"+
- "\u4415\u4416\u4417\u4418\u4419\u441A\u441B\u441C"+
- "\u441D\u441E\u441F\u4420\u4421\u4422\u4423\u4424"+
- "\u4425\u4426\u4427\u4428\u4429\u442A\u442B\u442C"+
- "\u442D\u442E\u442F\u4430\u4431\u4432\u4433\u4434"+
- "\u4435\u4436\u4437\u4438\u4439\u443A\u443B\u443C"+
- "\u443D\u443E\u443F\u4440\u4441\u4442\u4443\u4444"+
- "\u4445\u4446\u4447\u4448\u4449\u444A\u444B\u444C"+
- "\u444D\u444E\u444F\u4450\u4451\u4452\u4453\u4454"+
- "\u4455\u4456\u4457\u4458\u4459\u445A\u445B\u445C"+
- "\u445D\u445E\u445F\u4460\u4461\u4462\u4463\u4464"+
- "\u4465\u4466\u4467\u4468\u4469\u446A\u446B\u446C"+
- "\u446D\u446E\u446F\u4470\u4471\u4472\u4473\u4474"+
- "\u4475\u4476\u4477\u4478\u4479\u447A\u447B\u447C"+
- "\u447D\u447E\u447F\u4480\u4481\u4482\u4483\u4484"+
- "\u4485\u4486\u4487\u4488\u4489\u448A\u448B\u448C"+
- "\u448D\u448E\u448F\u4490\u4491\u4492\u4493\u4494"+
- "\u4495\u4496\u4497\u4498\u4499\u449A\u449B\u449C"+
- "\u449D\u449E\u449F\u44A0\u44A1\u44A2\u44A3\u44A4"+
- "\u44A5\u44A6\u44A7\u44A8\u44A9\u44AA\u44AB\u44AC"+
- "\u44AD\u44AE\u44AF\u44B0\u44B1\u44B2\u44B3\u44B4"+
- "\u44B5\u44B6\u44B7\u44B8\u44B9\u44BA\u44BB\u44BC"+
- "\u44BD\u44BE\u44BF\u44C0\u44C1\u44C2\u44C3\u44C4"+
- "\u44C5\u44C6\u44C7\u44C8\u44C9\u44CA\u44CB\u44CC"+
- "\u44CD\u44CE\u44CF\u44D0\u44D1\u44D2\u44D3\u44D4"+
- "\u44D5\u44D7\u44D8\u44D9\u44DA\u44DB\u44DC\u44DD"+
- "\u44DE\u44DF\u44E0\u44E1\u44E2\u44E3\u44E4\u44E5"+
- "\u44E6\u44E7\u44E8\u44E9\u44EA\u44EB\u44EC\u44ED"+
- "\u44EE\u44EF\u44F0\u44F1\u44F2\u44F3\u44F4\u44F5"+
- "\u44F6\u44F7\u44F8\u44F9\u44FA\u44FB\u44FC\u44FD"+
- "\u44FE\u44FF\u4500\u4501\u4502\u4503\u4504\u4505"+
- "\u4506\u4507\u4508\u4509\u450A\u450B\u450C\u450D"+
- "\u450E\u450F\u4510\u4511\u4512\u4513\u4514\u4515"+
- "\u4516\u4517\u4518\u4519\u451A\u451B\u451C\u451D"+
- "\u451E\u451F\u4520\u4521\u4522\u4523\u4524\u4525"+
- "\u4526\u4527\u4528\u4529\u452A\u452B\u452C\u452D"+
- "\u452E\u452F\u4530\u4531\u4532\u4533\u4534\u4535"+
- "\u4536\u4537\u4538\u4539\u453A\u453B\u453C\u453D"+
- "\u453E\u453F\u4540\u4541\u4542\u4543\u4544\u4545"+
- "\u4546\u4547\u4548\u4549\u454A\u454B\u454C\u454D"+
- "\u454E\u454F\u4550\u4551\u4552\u4553\u4554\u4555"+
- "\u4556\u4557\u4558\u4559\u455A\u455B\u455C\u455D"+
- "\u455E\u455F\u4560\u4561\u4562\u4563\u4564\u4565"+
- "\u4566\u4567\u4568\u4569\u456A\u456B\u456C\u456D"+
- "\u456E\u456F\u4570\u4571\u4572\u4573\u4574\u4575"+
- "\u4576\u4577\u4578\u4579\u457A\u457B\u457C\u457D"+
- "\u457E\u457F\u4580\u4581\u4582\u4583\u4584\u4585"+
- "\u4586\u4587\u4588\u4589\u458A\u458B\u458C\u458D"+
- "\u458E\u458F\u4590\u4591\u4592\u4593\u4594\u4595"+
- "\u4596\u4597\u4598\u4599\u459A\u459B\u459C\u459D"+
- "\u459E\u459F\u45A0\u45A1\u45A2\u45A3\u45A4\u45A5"+
- "\u45A6\u45A7\u45A8\u45A9\u45AA\u45AB\u45AC\u45AD"+
- "\u45AE\u45AF\u45B0\u45B1\u45B2\u45B3\u45B4\u45B5"+
- "\u45B6\u45B7\u45B8\u45B9\u45BA\u45BB\u45BC\u45BD"+
- "\u45BE\u45BF\u45C0\u45C1\u45C2\u45C3\u45C4\u45C5"+
- "\u45C6\u45C7\u45C8\u45C9\u45CA\u45CB\u45CC\u45CD"+
- "\u45CE\u45CF\u45D0\u45D1\u45D2\u45D3\u45D4\u45D5"+
- "\u45D6\u45D7\u45D8\u45D9\u45DA\u45DB\u45DC\u45DD"+
- "\u45DE\u45DF\u45E0\u45E1\u45E2\u45E3\u45E4\u45E5"+
- "\u45E6\u45E7\u45E8\u45E9\u45EA\u45EB\u45EC\u45ED"+
- "\u45EE\u45EF\u45F0\u45F1\u45F2\u45F3\u45F4\u45F5"+
- "\u45F6\u45F7\u45F8\u45F9\u45FA\u45FB\u45FC\u45FD"+
- "\u45FE\u45FF\u4600\u4601\u4602\u4603\u4604\u4605"+
- "\u4606\u4607\u4608\u4609\u460A\u460B\u460C\u460D"+
- "\u460E\u460F\u4610\u4611\u4612\u4613\u4614\u4615"+
- "\u4616\u4617\u4618\u4619\u461A\u461B\u461C\u461D"+
- "\u461E\u461F\u4620\u4621\u4622\u4623\u4624\u4625"+
- "\u4626\u4627\u4628\u4629\u462A\u462B\u462C\u462D"+
- "\u462E\u462F\u4630\u4631\u4632\u4633\u4634\u4635"+
- "\u4636\u4637\u4638\u4639\u463A\u463B\u463C\u463D"+
- "\u463E\u463F\u4640\u4641\u4642\u4643\u4644\u4645"+
- "\u4646\u4647\u4648\u4649\u464A\u464B\u464D\u464E"+
- "\u464F\u4650\u4651\u4652\u4653\u4654\u4655\u4656"+
- "\u4657\u4658\u4659\u465A\u465B\u465C\u465D\u465E"+
- "\u465F\u4660\u4662\u4663\u4664\u4665\u4666\u4667"+
- "\u4668\u4669\u466A\u466B\u466C\u466D\u466E\u466F"+
- "\u4670\u4671\u4672\u4673\u4674\u4675\u4676\u4677"+
- "\u4678\u4679\u467A\u467B\u467C\u467D\u467E\u467F"+
- "\u4680\u4681\u4682\u4683\u4684\u4685\u4686\u4687"+
- "\u4688\u4689\u468A\u468B\u468C\u468D\u468E\u468F"+
- "\u4690\u4691\u4692\u4693\u4694\u4695\u4696\u4697"+
- "\u4698\u4699\u469A\u469B\u469C\u469D\u469E\u469F"+
- "\u46A0\u46A1\u46A2\u46A3\u46A4\u46A5\u46A6\u46A7"+
- "\u46A8\u46A9\u46AA\u46AB\u46AC\u46AD\u46AE\u46AF"+
- "\u46B0\u46B1\u46B2\u46B3\u46B4\u46B5\u46B6\u46B7"+
- "\u46B8\u46B9\u46BA\u46BB\u46BC\u46BD\u46BE\u46BF"+
- "\u46C0\u46C1\u46C2\u46C3\u46C4\u46C5\u46C6\u46C7"+
- "\u46C8\u46C9\u46CA\u46CB\u46CC\u46CD\u46CE\u46CF"+
- "\u46D0\u46D1\u46D2\u46D3\u46D4\u46D5\u46D6\u46D7"+
- "\u46D8\u46D9\u46DA\u46DB\u46DC\u46DD\u46DE\u46DF"+
- "\u46E0\u46E1\u46E2\u46E3\u46E4\u46E5\u46E6\u46E7"+
- "\u46E8\u46E9\u46EA\u46EB\u46EC\u46ED\u46EE\u46EF"+
- "\u46F0\u46F1\u46F2\u46F3\u46F4\u46F5\u46F6\u46F7"+
- "\u46F8\u46F9\u46FA\u46FB\u46FC\u46FD\u46FE\u46FF"+
- "\u4700\u4701\u4702\u4703\u4704\u4705\u4706\u4707"+
- "\u4708\u4709\u470A\u470B\u470C\u470D\u470E\u470F"+
- "\u4710\u4711\u4712\u4713\u4714\u4715\u4716\u4717"+
- "\u4718\u4719\u471A\u471B\u471C\u471D\u471E\u471F"+
- "\u4720\u4721\u4722\u4724\u4725\u4726\u4727\u4728"+
- "\u472A\u472B\u472C\u472D\u472E\u472F\u4730\u4731"+
- "\u4732\u4733\u4734\u4735\u4736\u4737\u4738\u4739"+
- "\u473A\u473B\u473C\u473D\u473E\u473F\u4740\u4741"+
- "\u4742\u4743\u4744\u4745\u4746\u4747\u4748\u4749"+
- "\u474A\u474B\u474C\u474D\u474E\u474F\u4750\u4751"+
- "\u4752\u4753\u4754\u4755\u4756\u4757\u4758\u4759"+
- "\u475A\u475B\u475C\u475D\u475E\u475F\u4760\u4761"+
- "\u4762\u4763\u4764\u4765\u4766\u4767\u4768\u4769"+
- "\u476A\u476B\u476C\u476D\u476E\u476F\u4770\u4771"+
- "\u4772\u4773\u4774\u4775\u4776\u4777\u4778\u4779"+
- "\u477A\u477B\u477D\u477E\u477F\u4780\u4781\u4782"+
- "\u4783\u4784\u4785\u4786\u4787\u4788\u4789\u478A"+
- "\u478B\u478C\u478E\u478F\u4790\u4791\u4792\u4793"+
- "\u4794\u4795\u4796\u4797\u4798\u4799\u479A\u479B"+
- "\u479C\u479D\u479E\u479F\u47A0\u47A1\u47A2\u47A3"+
- "\u47A4\u47A5\u47A6\u47A7\u47A8\u47A9\u47AA\u47AB"+
- "\u47AC\u47AD\u47AE\u47AF\u47B0\u47B1\u47B2\u47B3"+
- "\u47B4\u47B5\u47B6\u47B7\u47B8\u47B9\u47BA\u47BB"+
- "\u47BC\u47BD\u47BE\u47BF\u47C0\u47C1\u47C2\u47C3"+
- "\u47C4\u47C5\u47C6\u47C7\u47C8\u47C9\u47CA\u47CB"+
- "\u47CC\u47CD\u47CE\u47CF\u47D0\u47D1\u47D2\u47D3"+
- "\u47D4\u47D5\u47D6\u47D7\u47D8\u47D9\u47DA\u47DB"+
- "\u47DC\u47DD\u47DE\u47DF\u47E0\u47E1\u47E2\u47E3"+
- "\u47E4\u47E5\u47E6\u47E7\u47E8\u47E9\u47EA\u47EB"+
- "\u47EC\u47ED\u47EE\u47EF\u47F0\u47F1\u47F2\u47F3"+
- "\u47F4\u47F5\u47F6\u47F7\u47F8\u47F9\u47FA\u47FB"+
- "\u47FC\u47FD\u47FE\u47FF\u4800\u4801\u4802\u4803"+
- "\u4804\u4805\u4806\u4807\u4808\u4809\u480A\u480B"+
- "\u480C\u480D\u480E\u480F\u4810\u4811\u4812\u4813"+
- "\u4814\u4815\u4816\u4817\u4818\u4819\u481A\u481B"+
- "\u481C\u481D\u481E\u481F\u4820\u4821\u4822\u4823"+
- "\u4824\u4825\u4826\u4827\u4828\u4829\u482A\u482B"+
- "\u482C\u482D\u482E\u482F\u4830\u4831\u4832\u4833"+
- "\u4834\u4835\u4836\u4837\u4838\u4839\u483A\u483B"+
- "\u483C\u483D\u483E\u483F\u4840\u4841\u4842\u4843"+
- "\u4844\u4845\u4846\u4847\u4848\u4849\u484A\u484B"+
- "\u484C\u484D\u484E\u484F\u4850\u4851\u4852\u4853"+
- "\u4854\u4855\u4856\u4857\u4858\u4859\u485A\u485B"+
- "\u485C\u485D\u485E\u485F\u4860\u4861\u4862\u4863"+
- "\u4864\u4865\u4866\u4867\u4868\u4869\u486A\u486B"+
- "\u486C\u486D\u486E\u486F\u4870\u4871\u4872\u4873"+
- "\u4874\u4875\u4876\u4877\u4878\u4879\u487A\u487B"+
- "\u487C\u487D\u487E\u487F\u4880\u4881\u4882\u4883"+
- "\u4884\u4885\u4886\u4887\u4888\u4889\u488A\u488B"+
- "\u488C\u488D\u488E\u488F\u4890\u4891\u4892\u4893"+
- "\u4894\u4895\u4896\u4897\u4898\u4899\u489A\u489B"+
- "\u489C\u489D\u489E\u489F\u48A0\u48A1\u48A2\u48A3"+
- "\u48A4\u48A5\u48A6\u48A7\u48A8\u48A9\u48AA\u48AB"+
- "\u48AC\u48AD\u48AE\u48AF\u48B0\u48B1\u48B2\u48B3"+
- "\u48B4\u48B5\u48B6\u48B7\u48B8\u48B9\u48BA\u48BB"+
- "\u48BC\u48BD\u48BE\u48BF\u48C0\u48C1\u48C2\u48C3"+
- "\u48C4\u48C5\u48C6\u48C7\u48C8\u48C9\u48CA\u48CB"+
- "\u48CC\u48CD\u48CE\u48CF\u48D0\u48D1\u48D2\u48D3"+
- "\u48D4\u48D5\u48D6\u48D7\u48D8\u48D9\u48DA\u48DB"+
- "\u48DC\u48DD\u48DE\u48DF\u48E0\u48E1\u48E2\u48E3"+
- "\u48E4\u48E5\u48E6\u48E7\u48E8\u48E9\u48EA\u48EB"+
- "\u48EC\u48ED\u48EE\u48EF\u48F0\u48F1\u48F2\u48F3"+
- "\u48F4\u48F5\u48F6\u48F7\u48F8\u48F9\u48FA\u48FB"+
- "\u48FC\u48FD\u48FE\u48FF\u4900\u4901\u4902\u4903"+
- "\u4904\u4905\u4906\u4907\u4908\u4909\u490A\u490B"+
- "\u490C\u490D\u490E\u490F\u4910\u4911\u4912\u4913"+
- "\u4914\u4915\u4916\u4917\u4918\u4919\u491A\u491B"+
- "\u491C\u491D\u491E\u491F\u4920\u4921\u4922\u4923"+
- "\u4924\u4925\u4926\u4927\u4928\u4929\u492A\u492B"+
- "\u492C\u492D\u492E\u492F\u4930\u4931\u4932\u4933"+
- "\u4934\u4935\u4936\u4937\u4938\u4939\u493A\u493B"+
- "\u493C\u493D\u493E\u493F\u4940\u4941\u4942\u4943"+
- "\u4944\u4945\u4946\u4948\u4949\u494A\u494B\u494C"+
- "\u494D\u494E\u494F\u4950\u4951\u4952\u4953\u4954"+
- "\u4955\u4956\u4957\u4958\u4959\u495A\u495B\u495C"+
- "\u495D\u495E\u495F\u4960\u4961\u4962\u4963\u4964"+
- "\u4965\u4966\u4967\u4968\u4969\u496A\u496B\u496C"+
- "\u496D\u496E\u496F\u4970\u4971\u4972\u4973\u4974"+
- "\u4975\u4976\u4977\u4978\u4979\u497B\u497C\u497E"+
- "\u497F\u4980\u4981\u4984\u4987\u4988\u4989\u498A"+
- "\u498B\u498C\u498D\u498E\u498F\u4990\u4991\u4992"+
- "\u4993\u4994\u4995\u4996\u4997\u4998\u4999\u499A"+
- "\u499C\u499D\u499E\u49A0\u49A1\u49A2\u49A3\u49A4"+
- "\u49A5\u49A6\u49A7\u49A8\u49A9\u49AA\u49AB\u49AC"+
- "\u49AD\u49AE\u49AF\u49B0\u49B1\u49B2\u49B3\u49B4"+
- "\u49B5\u49B8\u49B9\u49BA\u49BB\u49BC\u49BD\u49BE"+
- "\u49BF\u49C0\u49C1\u49C2\u49C3\u49C4\u49C5\u49C6"+
- "\u49C7\u49C8\u49C9\u49CA\u49CB\u49CC\u49CD\u49CE"+
- "\u49CF\u49D0\u49D1\u49D2\u49D3\u49D4\u49D5\u49D6"+
- "\u49D7\u49D8\u49D9\u49DA\u49DB\u49DC\u49DD\u49DE"+
- "\u49DF\u49E0\u49E1\u49E2\u49E3\u49E4\u49E5\u49E6"+
- "\u49E7\u49E8\u49E9\u49EA\u49EB\u49EC\u49ED\u49EE"+
- "\u49EF\u49F0\u49F1\u49F2\u49F3\u49F4\u49F5\u49F6"+
- "\u49F7\u49F8\u49F9\u49FA\u49FB\u49FC\u49FD\u49FE"+
- "\u49FF\u4A00\u4A01\u4A02\u4A03\u4A04\u4A05\u4A06"+
- "\u4A07\u4A08\u4A09\u4A0A\u4A0B\u4A0C\u4A0D\u4A0E"+
- "\u4A0F\u4A10\u4A11\u4A12\u4A13\u4A14\u4A15\u4A16"+
- "\u4A17\u4A18\u4A19\u4A1A\u4A1B\u4A1C\u4A1D\u4A1E"+
- "\u4A1F\u4A20\u4A21\u4A22\u4A23\u4A24\u4A25\u4A26"+
- "\u4A27\u4A28\u4A29\u4A2A\u4A2B\u4A2C\u4A2D\u4A2E"+
- "\u4A2F\u4A30\u4A31\u4A32\u4A33\u4A34\u4A35\u4A36"+
- "\u4A37\u4A38\u4A39\u4A3A\u4A3B\u4A3C\u4A3D\u4A3E"+
- "\u4A3F\u4A40\u4A41\u4A42\u4A43\u4A44\u4A45\u4A46"+
- "\u4A47\u4A48\u4A49\u4A4A\u4A4B\u4A4C\u4A4D\u4A4E"+
- "\u4A4F\u4A50\u4A51\u4A52\u4A53\u4A54\u4A55\u4A56"+
- "\u4A57\u4A58\u4A59\u4A5A\u4A5B\u4A5C\u4A5D\u4A5E"+
- "\u4A5F\u4A60\u4A61\u4A62\u4A63\u4A64\u4A65\u4A66"+
- "\u4A67\u4A68\u4A69\u4A6A\u4A6B\u4A6C\u4A6D\u4A6E"+
- "\u4A6F\u4A70\u4A71\u4A72\u4A73\u4A74\u4A75\u4A76"+
- "\u4A77\u4A78\u4A79\u4A7A\u4A7B\u4A7C\u4A7D\u4A7E"+
- "\u4A7F\u4A80\u4A81\u4A82\u4A83\u4A84\u4A85\u4A86"+
- "\u4A87\u4A88\u4A89\u4A8A\u4A8B\u4A8C\u4A8D\u4A8E"+
- "\u4A8F\u4A90\u4A91\u4A92\u4A93\u4A94\u4A95\u4A96"+
- "\u4A97\u4A98\u4A99\u4A9A\u4A9B\u4A9C\u4A9D\u4A9E"+
- "\u4A9F\u4AA0\u4AA1\u4AA2\u4AA3\u4AA4\u4AA5\u4AA6"+
- "\u4AA7\u4AA8\u4AA9\u4AAA\u4AAB\u4AAC\u4AAD\u4AAE"+
- "\u4AAF\u4AB0\u4AB1\u4AB2\u4AB3\u4AB4\u4AB5\u4AB6"+
- "\u4AB7\u4AB8\u4AB9\u4ABA\u4ABB\u4ABC\u4ABD\u4ABE"+
- "\u4ABF\u4AC0\u4AC1\u4AC2\u4AC3\u4AC4\u4AC5\u4AC6"+
- "\u4AC7\u4AC8\u4AC9\u4ACA\u4ACB\u4ACC\u4ACD\u4ACE"+
- "\u4ACF\u4AD0\u4AD1\u4AD2\u4AD3\u4AD4\u4AD5\u4AD6"+
- "\u4AD7\u4AD8\u4AD9\u4ADA\u4ADB\u4ADC\u4ADD\u4ADE"+
- "\u4ADF\u4AE0\u4AE1\u4AE2\u4AE3\u4AE4\u4AE5\u4AE6"+
- "\u4AE7\u4AE8\u4AE9\u4AEA\u4AEB\u4AEC\u4AED\u4AEE"+
- "\u4AEF\u4AF0\u4AF1\u4AF2\u4AF3\u4AF4\u4AF5\u4AF6"+
- "\u4AF7\u4AF8\u4AF9\u4AFA\u4AFB\u4AFC\u4AFD\u4AFE"+
- "\u4AFF\u4B00\u4B01\u4B02\u4B03\u4B04\u4B05\u4B06"+
- "\u4B07\u4B08\u4B09\u4B0A\u4B0B\u4B0C\u4B0D\u4B0E"+
- "\u4B0F\u4B10\u4B11\u4B12\u4B13\u4B14\u4B15\u4B16"+
- "\u4B17\u4B18\u4B19\u4B1A\u4B1B\u4B1C\u4B1D\u4B1E"+
- "\u4B1F\u4B20\u4B21\u4B22\u4B23\u4B24\u4B25\u4B26"+
- "\u4B27\u4B28\u4B29\u4B2A\u4B2B\u4B2C\u4B2D\u4B2E"+
- "\u4B2F\u4B30\u4B31\u4B32\u4B33\u4B34\u4B35\u4B36"+
- "\u4B37\u4B38\u4B39\u4B3A\u4B3B\u4B3C\u4B3D\u4B3E"+
- "\u4B3F\u4B40\u4B41\u4B42\u4B43\u4B44\u4B45\u4B46"+
- "\u4B47\u4B48\u4B49\u4B4A\u4B4B\u4B4C\u4B4D\u4B4E"+
- "\u4B4F\u4B50\u4B51\u4B52\u4B53\u4B54\u4B55\u4B56"+
- "\u4B57\u4B58\u4B59\u4B5A\u4B5B\u4B5C\u4B5D\u4B5E"+
- "\u4B5F\u4B60\u4B61\u4B62\u4B63\u4B64\u4B65\u4B66"+
- "\u4B67\u4B68\u4B69\u4B6A\u4B6B\u4B6C\u4B6D\u4B6E"+
- "\u4B6F\u4B70\u4B71\u4B72\u4B73\u4B74\u4B75\u4B76"+
- "\u4B77\u4B78\u4B79\u4B7A\u4B7B\u4B7C\u4B7D\u4B7E"+
- "\u4B7F\u4B80\u4B81\u4B82\u4B83\u4B84\u4B85\u4B86"+
- "\u4B87\u4B88\u4B89\u4B8A\u4B8B\u4B8C\u4B8D\u4B8E"+
- "\u4B8F\u4B90\u4B91\u4B92\u4B93\u4B94\u4B95\u4B96"+
- "\u4B97\u4B98\u4B99\u4B9A\u4B9B\u4B9C\u4B9D\u4B9E"+
- "\u4B9F\u4BA0\u4BA1\u4BA2\u4BA3\u4BA4\u4BA5\u4BA6"+
- "\u4BA7\u4BA8\u4BA9\u4BAA\u4BAB\u4BAC\u4BAD\u4BAE"+
- "\u4BAF\u4BB0\u4BB1\u4BB2\u4BB3\u4BB4\u4BB5\u4BB6"+
- "\u4BB7\u4BB8\u4BB9\u4BBA\u4BBB\u4BBC\u4BBD\u4BBE"+
- "\u4BBF\u4BC0\u4BC1\u4BC2\u4BC3\u4BC4\u4BC5\u4BC6"+
- "\u4BC7\u4BC8\u4BC9\u4BCA\u4BCB\u4BCC\u4BCD\u4BCE"+
- "\u4BCF\u4BD0\u4BD1\u4BD2\u4BD3\u4BD4\u4BD5\u4BD6"+
- "\u4BD7\u4BD8\u4BD9\u4BDA\u4BDB\u4BDC\u4BDD\u4BDE"+
- "\u4BDF\u4BE0\u4BE1\u4BE2\u4BE3\u4BE4\u4BE5\u4BE6"+
- "\u4BE7\u4BE8\u4BE9\u4BEA\u4BEB\u4BEC\u4BED\u4BEE"+
- "\u4BEF\u4BF0\u4BF1\u4BF2\u4BF3\u4BF4\u4BF5\u4BF6"+
- "\u4BF7\u4BF8\u4BF9\u4BFA\u4BFB\u4BFC\u4BFD\u4BFE"+
- "\u4BFF\u4C00\u4C01\u4C02\u4C03\u4C04\u4C05\u4C06"+
- "\u4C07\u4C08\u4C09\u4C0A\u4C0B\u4C0C\u4C0D\u4C0E"+
- "\u4C0F\u4C10\u4C11\u4C12\u4C13\u4C14\u4C15\u4C16"+
- "\u4C17\u4C18\u4C19\u4C1A\u4C1B\u4C1C\u4C1D\u4C1E"+
- "\u4C1F\u4C20\u4C21\u4C22\u4C23\u4C24\u4C25\u4C26"+
- "\u4C27\u4C28\u4C29\u4C2A\u4C2B\u4C2C\u4C2D\u4C2E"+
- "\u4C2F\u4C30\u4C31\u4C32\u4C33\u4C34\u4C35\u4C36"+
- "\u4C37\u4C38\u4C39\u4C3A\u4C3B\u4C3C\u4C3D\u4C3E"+
- "\u4C3F\u4C40\u4C41\u4C42\u4C43\u4C44\u4C45\u4C46"+
- "\u4C47\u4C48\u4C49\u4C4A\u4C4B\u4C4C\u4C4D\u4C4E"+
- "\u4C4F\u4C50\u4C51\u4C52\u4C53\u4C54\u4C55\u4C56"+
- "\u4C57\u4C58\u4C59\u4C5A\u4C5B\u4C5C\u4C5D\u4C5E"+
- "\u4C5F\u4C60\u4C61\u4C62\u4C63\u4C64\u4C65\u4C66"+
- "\u4C67\u4C68\u4C69\u4C6A\u4C6B\u4C6C\u4C6D\u4C6E"+
- "\u4C6F\u4C70\u4C71\u4C72\u4C73\u4C74\u4C75\u4C76"+
- "\u4C78\u4C79\u4C7A\u4C7B\u4C7C\u4C7D\u4C7E\u4C7F"+
- "\u4C80\u4C81\u4C82\u4C83\u4C84\u4C85\u4C86\u4C87"+
- "\u4C88\u4C89\u4C8A\u4C8B\u4C8C\u4C8D\u4C8E\u4C8F"+
- "\u4C90\u4C91\u4C92\u4C93\u4C94\u4C95\u4C96\u4C97"+
- "\u4C98\u4C99\u4C9A\u4C9B\u4C9C\u4C9D\u4C9E\u4CA4"+
- "\u4CA5\u4CA6\u4CA7\u4CA8\u4CA9\u4CAA\u4CAB\u4CAC"+
- "\u4CAD\u4CAE\u4CAF\u4CB0\u4CB1\u4CB2\u4CB3\u4CB4"+
- "\u4CB5\u4CB6\u4CB7\u4CB8\u4CB9\u4CBA\u4CBB\u4CBC"+
- "\u4CBD\u4CBE\u4CBF\u4CC0\u4CC1\u4CC2\u4CC3\u4CC4"+
- "\u4CC5\u4CC6\u4CC7\u4CC8\u4CC9\u4CCA\u4CCB\u4CCC"+
- "\u4CCD\u4CCE\u4CCF\u4CD0\u4CD1\u4CD2\u4CD3\u4CD4"+
- "\u4CD5\u4CD6\u4CD7\u4CD8\u4CD9\u4CDA\u4CDB\u4CDC"+
- "\u4CDD\u4CDE\u4CDF\u4CE0\u4CE1\u4CE2\u4CE3\u4CE4"+
- "\u4CE5\u4CE6\u4CE7\u4CE8\u4CE9\u4CEA\u4CEB\u4CEC"+
- "\u4CED\u4CEE\u4CEF\u4CF0\u4CF1\u4CF2\u4CF3\u4CF4"+
- "\u4CF5\u4CF6\u4CF7\u4CF8\u4CF9\u4CFA\u4CFB\u4CFC"+
- "\u4CFD\u4CFE\u4CFF\u4D00\u4D01\u4D02\u4D03\u4D04"+
- "\u4D05\u4D06\u4D07\u4D08\u4D09\u4D0A\u4D0B\u4D0C"+
- "\u4D0D\u4D0E\u4D0F\u4D10\u4D11\u4D12\u4D1A\u4D1B"+
- "\u4D1C\u4D1D\u4D1E\u4D1F\u4D20\u4D21\u4D22\u4D23"+
- "\u4D24\u4D25\u4D26\u4D27\u4D28\u4D29\u4D2A\u4D2B"+
- "\u4D2C\u4D2D\u4D2E\u4D2F\u4D30\u4D31\u4D32\u4D33"+
- "\u4D34\u4D35\u4D36\u4D37\u4D38\u4D39\u4D3A\u4D3B"+
- "\u4D3C\u4D3D\u4D3E\u4D3F\u4D40\u4D41\u4D42\u4D43"+
- "\u4D44\u4D45\u4D46\u4D47\u4D48\u4D49\u4D4A\u4D4B"+
- "\u4D4C\u4D4D\u4D4E\u4D4F\u4D50\u4D51\u4D52\u4D53"+
- "\u4D54\u4D55\u4D56\u4D57\u4D58\u4D59\u4D5A\u4D5B"+
- "\u4D5C\u4D5D\u4D5E\u4D5F\u4D60\u4D61\u4D62\u4D63"+
- "\u4D64\u4D65\u4D66\u4D67\u4D68\u4D69\u4D6A\u4D6B"+
- "\u4D6C\u4D6D\u4D6E\u4D6F\u4D70\u4D71\u4D72\u4D73"+
- "\u4D74\u4D75\u4D76\u4D77\u4D78\u4D79\u4D7A\u4D7B"+
- "\u4D7C\u4D7D\u4D7E\u4D7F\u4D80\u4D81\u4D82\u4D83"+
- "\u4D84\u4D85\u4D86\u4D87\u4D88\u4D89\u4D8A\u4D8B"+
- "\u4D8C\u4D8D\u4D8E\u4D8F\u4D90\u4D91\u4D92\u4D93"+
- "\u4D94\u4D95\u4D96\u4D97\u4D98\u4D99\u4D9A\u4D9B"+
- "\u4D9C\u4D9D\u4D9E\u4D9F\u4DA0\u4DA1\u4DA2\u4DA3"+
- "\u4DA4\u4DA5\u4DA6\u4DA7\u4DA8\u4DA9\u4DAA\u4DAB"+
- "\u4DAC\u4DAD\u4DAF\u4DB0\u4DB1\u4DB2\u4DB3\u4DB4"+
- "\u4DB5\u4DB6\u4DB7\u4DB8\u4DB9\u4DBA\u4DBB\u4DBC"+
- "\u4DBD\u4DBE\u4DBF\u4DC0\u4DC1\u4DC2\u4DC3\u4DC4"+
- "\u4DC5\u4DC6\u4DC7\u4DC8\u4DC9\u4DCA\u4DCB\u4DCC"+
- "\u4DCD\u4DCE\u4DCF\u4DD0\u4DD1\u4DD2\u4DD3\u4DD4"+
- "\u4DD5\u4DD6\u4DD7\u4DD8\u4DD9\u4DDA\u4DDB\u4DDC"+
- "\u4DDD\u4DDE\u4DDF\u4DE0\u4DE1\u4DE2\u4DE3\u4DE4"+
- "\u4DE5\u4DE6\u4DE7\u4DE8\u4DE9\u4DEA\u4DEB\u4DEC"+
- "\u4DED\u4DEE\u4DEF\u4DF0\u4DF1\u4DF2\u4DF3\u4DF4"+
- "\u4DF5\u4DF6\u4DF7\u4DF8\u4DF9\u4DFA\u4DFB\u4DFC"+
- "\u4DFD\u4DFE\u4DFF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uE76C\uE7C8\uE7E7"+
- "\uE7E8\uE7E9\uE7EA\uE7EB\uE7EC\uE7ED\uE7EE\uE7EF"+
- "\uE7F0\uE7F1\uE7F2\uE7F3\uE815\uE819\uE81A\uE81B"+
- "\uE81C\uE81D\uE81F\uE820\uE821\uE822\uE823\uE824"+
- "\uE825\uE827\uE828\uE829\uE82A\uE82D\uE82E\uE82F"+
- "\uE830\uE833\uE834\uE835\uE836\uE837\uE838\uE839"+
- "\uE83A\uE83C\uE83D\uE83E\uE83F\uE840\uE841\uE842"+
- "\uE844\uE845\uE846\uE847\uE848\uE849\uE84A\uE84B"+
- "\uE84C\uE84D\uE84E\uE84F\uE850\uE851\uE852\uE853"+
- "\uE856\uE857\uE858\uE859\uE85A\uE85B\uE85C\uE85D"+
- "\uE85E\uE85F\uE860\uE861\uE862\uE863\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uF900\uF901\uF902\uF903\uF904\uF905\uF906"+
- "\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E"+
- "\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916"+
- "\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E"+
- "\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926"+
- "\uF927\uF928\uF929\uF92A\uF92B\uF92D\uF92E\uF92F"+
- "\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937"+
- "\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F"+
- "\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947"+
- "\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F"+
- "\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957"+
- "\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F"+
- "\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967"+
- "\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F"+
- "\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977"+
- "\uF978\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980"+
- "\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988"+
- "\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990"+
- "\uF991\uF992\uF993\uF994\uF996\uF997\uF998\uF999"+
- "\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1"+
- "\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9"+
- "\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1"+
- "\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9"+
- "\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1"+
- "\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9"+
- "\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1"+
- "\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9"+
- "\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1"+
- "\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E8\uF9E9\uF9EA"+
- "\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F2\uF9F3"+
- "\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB"+
- "\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03"+
- "\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B"+
- "\uFA10\uFA12\uFA15\uFA16\uFA17\uFA19\uFA1A\uFA1B"+
- "\uFA1C\uFA1D\uFA1E\uFA22\uFA25\uFA26\uFA2A\uFA2B"+
- "\uFA2C\uFA2D\uFA2E\uFA2F\uFA30\uFA31\uFA32\uFA33"+
- "\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B"+
- "\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43"+
- "\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B"+
- "\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53"+
- "\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B"+
- "\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63"+
- "\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA6B"+
- "\uFA6C\uFA6D\uFA6E\uFA6F\uFA70\uFA71\uFA72\uFA73"+
- "\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B"+
- "\uFA7C\uFA7D\uFA7E\uFA7F\uFA80\uFA81\uFA82\uFA83"+
- "\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B"+
- "\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93"+
- "\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B"+
- "\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3"+
- "\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB"+
- "\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3"+
- "\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB"+
- "\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3"+
- "\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB"+
- "\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3"+
- "\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFADA\uFADB"+
- "\uFADC\uFADD\uFADE\uFADF\uFAE0\uFAE1\uFAE2\uFAE3"+
- "\uFAE4\uFAE5\uFAE6\uFAE7\uFAE8\uFAE9\uFAEA\uFAEB"+
- "\uFAEC\uFAED\uFAEE\uFAEF\uFAF0\uFAF1\uFAF2\uFAF3"+
- "\uFAF4\uFAF5\uFAF6\uFAF7\uFAF8\uFAF9\uFAFA\uFAFB"+
- "\uFAFC\uFAFD\uFAFE\uFAFF\uFB00\uFB01\uFB02\uFB03"+
- "\uFB04\uFB05\uFB06\uFB07\uFB08\uFB09\uFB0A\uFB0B"+
- "\uFB0C\uFB0D\uFB0E\uFB0F\uFB10\uFB11\uFB12\uFB13"+
- "\uFB14\uFB15\uFB16\uFB17\uFB18\uFB19\uFB1A\uFB1B"+
- "\uFB1C\uFB1D\uFB1E\uFB1F\uFB20\uFB21\uFB22\uFB23"+
- "\uFB24\uFB25\uFB26\uFB27\uFB28\uFB29\uFB2A\uFB2B"+
- "\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33"+
- "\uFB34\uFB35\uFB36\uFB37\uFB38\uFB39\uFB3A\uFB3B"+
- "\uFB3C\uFB3D\uFB3E\uFB3F\uFB40\uFB41\uFB42\uFB43"+
- "\uFB44\uFB45\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B"+
- "\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53"+
- "\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B"+
- "\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63"+
- "\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B";
-
- private final static String innerDecoderIndex5=
- "\uFB6C\uFB6D\uFB6E\uFB6F\uFB70\uFB71\uFB72\uFB73"+
- "\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B"+
- "\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83"+
- "\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B"+
- "\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93"+
- "\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B"+
- "\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3"+
- "\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB"+
- "\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBB2\uFBB3"+
- "\uFBB4\uFBB5\uFBB6\uFBB7\uFBB8\uFBB9\uFBBA\uFBBB"+
- "\uFBBC\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2\uFBC3"+
- "\uFBC4\uFBC5\uFBC6\uFBC7\uFBC8\uFBC9\uFBCA\uFBCB"+
- "\uFBCC\uFBCD\uFBCE\uFBCF\uFBD0\uFBD1\uFBD2\uFBD3"+
- "\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB"+
- "\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3"+
- "\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB"+
- "\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3"+
- "\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB"+
- "\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03"+
- "\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B"+
- "\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13"+
- "\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B"+
- "\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23"+
- "\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B"+
- "\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33"+
- "\uFC34\uFC35\uFC36\uFC37\uFC38\uFC39\uFC3A\uFC3B"+
- "\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43"+
- "\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B"+
- "\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53"+
- "\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B"+
- "\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63"+
- "\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B"+
- "\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73"+
- "\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B"+
- "\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83"+
- "\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B"+
- "\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93"+
- "\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B"+
- "\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3"+
- "\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB"+
- "\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3"+
- "\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB"+
- "\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3"+
- "\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB"+
- "\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3"+
- "\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB"+
- "\uFCDC\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3"+
- "\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB"+
- "\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3"+
- "\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB"+
- "\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03"+
- "\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B"+
- "\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13"+
- "\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B"+
- "\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23"+
- "\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B"+
- "\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33"+
- "\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B"+
- "\uFD3C\uFD3D\uFD3E\uFD3F\uFD40\uFD41\uFD42\uFD43"+
- "\uFD44\uFD45\uFD46\uFD47\uFD48\uFD49\uFD4A\uFD4B"+
- "\uFD4C\uFD4D\uFD4E\uFD4F\uFD50\uFD51\uFD52\uFD53"+
- "\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B"+
- "\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63"+
- "\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B"+
- "\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73"+
- "\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B"+
- "\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83"+
- "\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B"+
- "\uFD8C\uFD8D\uFD8E\uFD8F\uFD90\uFD91\uFD92\uFD93"+
- "\uFD94\uFD95\uFD96\uFD97\uFD98\uFD99\uFD9A\uFD9B"+
- "\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3"+
- "\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB"+
- "\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3"+
- "\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB"+
- "\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3"+
- "\uFDC4\uFDC5\uFDC6\uFDC7\uFDC8\uFDC9\uFDCA\uFDCB"+
- "\uFDCC\uFDCD\uFDCE\uFDCF\uFDD0\uFDD1\uFDD2\uFDD3"+
- "\uFDD4\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA\uFDDB"+
- "\uFDDC\uFDDD\uFDDE\uFDDF\uFDE0\uFDE1\uFDE2\uFDE3"+
- "\uFDE4\uFDE5\uFDE6\uFDE7\uFDE8\uFDE9\uFDEA\uFDEB"+
- "\uFDEC\uFDED\uFDEE\uFDEF\uFDF0\uFDF1\uFDF2\uFDF3"+
- "\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB"+
- "\uFDFC\uFDFD\uFDFE\uFDFF\uFE00\uFE01\uFE02\uFE03"+
- "\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B"+
- "\uFE0C\uFE0D\uFE0E\uFE0F\uFE10\uFE11\uFE12\uFE13"+
- "\uFE14\uFE15\uFE16\uFE17\uFE18\uFE19\uFE1A\uFE1B"+
- "\uFE1C\uFE1D\uFE1E\uFE1F\uFE20\uFE21\uFE22\uFE23"+
- "\uFE24\uFE25\uFE26\uFE27\uFE28\uFE29\uFE2A\uFE2B"+
- "\uFE2C\uFE2D\uFE2E\uFE2F\uFE32\uFE45\uFE46\uFE47"+
- "\uFE48\uFE53\uFE58\uFE67\uFE6C\uFE6D\uFE6E\uFE6F"+
- "\uFE70\uFE71\uFE72\uFE73\uFE74\uFE75\uFE76\uFE77"+
- "\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F"+
- "\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87"+
- "\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F"+
- "\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97"+
- "\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F"+
- "\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7"+
- "\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF"+
- "\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7"+
- "\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF"+
- "\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7"+
- "\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF"+
- "\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7"+
- "\uFED8\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF"+
- "\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7"+
- "\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF"+
- "\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7"+
- "\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFEFD\uFEFE\uFEFF"+
- "\uFF00\uFF5F\uFF60\uFF61\uFF62\uFF63\uFF64\uFF65"+
- "\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D"+
- "\uFF6E\uFF6F\uFF70\uFF71\uFF72\uFF73\uFF74\uFF75"+
- "\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D"+
- "\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85"+
- "\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D"+
- "\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95"+
- "\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D"+
- "\uFF9E\uFF9F\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5"+
- "\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD"+
- "\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5"+
- "\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD"+
- "\uFFBE\uFFBF\uFFC0\uFFC1\uFFC2\uFFC3\uFFC4\uFFC5"+
- "\uFFC6\uFFC7\uFFC8\uFFC9\uFFCA\uFFCB\uFFCC\uFFCD"+
- "\uFFCE\uFFCF\uFFD0\uFFD1\uFFD2\uFFD3\uFFD4\uFFD5"+
- "\uFFD6\uFFD7\uFFD8\uFFD9\uFFDA\uFFDB\uFFDC\uFFDD"+
- "\uFFDE\uFFDF\uFFE6\uFFE7\uFFE8\uFFE9\uFFEA\uFFEB"+
- "\uFFEC\uFFED\uFFEE\uFFEF\uFFF0\uFFF1\uFFF2\uFFF3"+
- "\uFFF4\uFFF5\uFFF6\uFFF7\uFFF8\uFFF9\uFFFA\uFFFB"+
- "\uFFFC\uFFFD\uFFFE\uFFFF\uFFFD\uFFFD\uFFFD\uFFFD";
-
- private final static short decoderIndex1[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 77, 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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 String decoderIndex2[] = {
- innerDecoderIndex0,
- innerDecoderIndex1,
- innerDecoderIndex2,
- innerDecoderIndex3,
- innerDecoderIndex4,
- innerDecoderIndex5
- };
-
-/*
- *
- */
- private final static String innerIndex0=
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u4E02"+
- "\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20"+
- "\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33"+
- "\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46"+
- "\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63"+
- "\u4E64\u4E65\u4E67\u4E68\u4E6A\u4E6B\u4E6C\u4E6D"+
- "\u4E6E\u4E6F\u4E72\u4E74\u4E75\u4E76\u4E77\u4E78"+
- "\u4E79\u4E7A\u4E7B\u4E7C\u4E7D\u4E7F\u4E80\u4E81"+
- "\u4E82\u4E83\u4E84\u4E85\u4E87\u4E8A\uFFFD\u4E90"+
- "\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA"+
- "\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9"+
- "\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2"+
- "\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9"+
- "\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA"+
- "\u4EFC\u4EFE\u4F00\u4F02\u4F03\u4F04\u4F05\u4F06"+
- "\u4F07\u4F08\u4F0B\u4F0C\u4F12\u4F13\u4F14\u4F15"+
- "\u4F16\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C"+
- "\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B"+
- "\u4F3E\u4F3F\u4F40\u4F41\u4F42\u4F44\u4F45\u4F47"+
- "\u4F48\u4F49\u4F4A\u4F4B\u4F4C\u4F52\u4F54\u4F56"+
- "\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E"+
- "\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D"+
- "\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C"+
- "\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99"+
- "\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2\u4FA4\u4FAB"+
- "\u4FAD\u4FB0\u4FB1\u4FB2\u4FB3\u4FB4\u4FB6\u4FB7"+
- "\u4FB8\u4FB9\u4FBA\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0"+
- "\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC"+
- "\u4FCD\u4FD2\u4FD3\u4FD4\u4FD5\u4FD6\u4FD9\u4FDB"+
- "\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0"+
- "\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC"+
- "\u4FFD\u4FFF\u5000\u5001\u5002\u5003\u5004\u5005"+
- "\u5006\u5007\u5008\u5009\u500A\uFFFD\u500B\u500E"+
- "\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D"+
- "\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F"+
- "\u5030\u5031\u5032\u5033\u5034\u5035\u5036\u5037"+
- "\u5038\u5039\u503B\u503D\u503F\u5040\u5041\u5042"+
- "\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050"+
- "\u5051\u5052\u5053\u5054\u5056\u5057\u5058\u5059"+
- "\u505B\u505D\u505E\u505F\u5060\u5061\u5062\u5063"+
- "\u5064\u5066\u5067\u5068\u5069\u506A\u506B\u506D"+
- "\u506E\u506F\u5070\u5071\u5072\u5073\u5074\u5075"+
- "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083"+
- "\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E"+
- "\u508F\u5090\u5091\u5092\u5093\u5094\u5095\u5096"+
- "\u5097\u5098\u5099\u509A\u509B\u509C\u509D\u509E"+
- "\u509F\u50A0\u50A1\u50A2\u50A4\u50A6\u50AA\u50AB"+
- "\u50AD\u50AE\u50AF\u50B0\u50B1\u50B3\u50B4\u50B5"+
- "\u50B6\u50B7\u50B8\u50B9\u50BC\u50BD\u50BE\u50BF"+
- "\u50C0\u50C1\u50C2\u50C3\u50C4\u50C5\u50C6\u50C7"+
- "\u50C8\u50C9\u50CA\u50CB\u50CC\u50CD\u50CE\u50D0"+
- "\u50D1\u50D2\u50D3\u50D4\u50D5\u50D7\u50D8\u50D9"+
- "\u50DB\u50DC\u50DD\u50DE\u50DF\u50E0\u50E1\u50E2"+
- "\u50E3\u50E4\u50E5\u50E8\u50E9\u50EA\u50EB\u50EF"+
- "\u50F0\u50F1\u50F2\u50F4\u50F6\u50F7\u50F8\u50F9"+
- "\u50FA\u50FC\u50FD\u50FE\u50FF\u5100\u5101\u5102"+
- "\u5103\u5104\u5105\u5108\uFFFD\u5109\u510A\u510C"+
- "\u510D\u510E\u510F\u5110\u5111\u5113\u5114\u5115"+
- "\u5116\u5117\u5118\u5119\u511A\u511B\u511C\u511D"+
- "\u511E\u511F\u5120\u5122\u5123\u5124\u5125\u5126"+
- "\u5127\u5128\u5129\u512A\u512B\u512C\u512D\u512E"+
- "\u512F\u5130\u5131\u5132\u5133\u5134\u5135\u5136"+
- "\u5137\u5138\u5139\u513A\u513B\u513C\u513D\u513E"+
- "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152"+
- "\u5153\u5157\u5158\u5159\u515B\u515D\u515E\u515F"+
- "\u5160\u5161\u5163\u5164\u5166\u5167\u5169\u516A"+
- "\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186"+
- "\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193"+
- "\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3"+
- "\u51A6\u51A7\u51A8\u51A9\u51AA\u51AD\u51AE\u51B4"+
- "\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3"+
- "\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2\u51D3"+
- "\u51D4\u51D5\u51D6\u51D7\u51D8\u51D9\u51DA\u51DC"+
- "\u51DE\u51DF\u51E2\u51E3\u51E5\u51E6\u51E7\u51E8"+
- "\u51E9\u51EA\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7"+
- "\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210"+
- "\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222"+
- "\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231"+
- "\u5232\u5234\u5235\u523C\u523E\u5244\u5245\u5246"+
- "\u5247\u5248\u5249\u524B\u524E\u524F\u5252\u5253"+
- "\u5255\u5257\u5258\uFFFD\u5259\u525A\u525B\u525D"+
- "\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B"+
- "\u526C\u526D\u526E\u5270\u5271\u5273\u5274\u5275"+
- "\u5276\u5277\u5278\u5279\u527A\u527B\u527C\u527E"+
- "\u5280\u5283\u5284\u5285\u5286\u5287\u5289\u528A"+
- "\u528B\u528C\u528D\u528E\u528F\u5291\u5292\u5294"+
- "\u5295\u5296\u5297\u5298\u5299\u529A\u529C\u52A4"+
- "\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4\u52B5"+
- "\u52B6\u52B7\u52B8\u52B9\u52BA\u52BB\u52BC\u52BD"+
- "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA"+
- "\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5"+
- "\u52D7\u52D9\u52DA\u52DB\u52DC\u52DD\u52DE\u52E0"+
- "\u52E1\u52E2\u52E3\u52E5\u52E6\u52E7\u52E8\u52E9"+
- "\u52EA\u52EB\u52EC\u52ED\u52EE\u52EF\u52F1\u52F2"+
- "\u52F3\u52F4\u52F5\u52F6\u52F7\u52F8\u52FB\u52FC"+
- "\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A"+
- "\u530B\u530C\u530E\u5311\u5312\u5313\u5314\u5318"+
- "\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327"+
- "\u5328\u5329\u532B\u532C\u532D\u532F\u5330\u5331"+
- "\u5332\u5333\u5334\u5335\u5336\u5337\u5338\u533C"+
- "\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D"+
- "\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368"+
- "\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C"+
- "\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A"+
- "\u538E\u538F\uFFFD\u5390\u5391\u5392\u5393\u5394"+
- "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1"+
- "\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF\u53B0"+
- "\u53B1\u53B2\u53B3\u53B4\u53B5\u53B7\u53B8\u53B9"+
- "\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3\u53C4\u53C5"+
- "\u53C6\u53C7\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5"+
- "\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4"+
- "\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B"+
- "\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425"+
- "\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F"+
- "\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D"+
- "\u544E\u544F\u5451\u545A\u545D\u545E\u545F\u5460"+
- "\u5461\u5463\u5465\u5467\u5469\u546A\u546B\u546C"+
- "\u546D\u546E\u546F\u5470\u5474\u5479\u547A\u547E"+
- "\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A"+
- "\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F"+
- "\u54A0\u54A1\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5"+
- "\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5"+
- "\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0\u54E1\u54E2"+
- "\u54E3\u54E4\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4"+
- "\u54F5\u54F6\u54F7\u54F8\u54F9\u54FB\u54FE\u5500"+
- "\u5502\u5503\u5504\u5505\u5508\u550A\u550B\u550C"+
- "\u550D\u550E\u5512\u5513\u5515\u5516\u5517\u5518"+
- "\u5519\u551A\u551C\u551D\u551E\u551F\u5521\u5525"+
- "\u5526\uFFFD\u5528\u5529\u552B\u552D\u5532\u5534"+
- "\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540"+
- "\u5542\u5545\u5547\u5548\u554B\u554C\u554D\u554E"+
- "\u554F\u5551\u5552\u5553\u5554\u5557\u5558\u5559"+
- "\u555A\u555B\u555D\u555E\u555F\u5560\u5562\u5563"+
- "\u5568\u5569\u556B\u556F\u5570\u5571\u5572\u5573"+
- "\u5574\u5579\u557A\u557D\u557F\u5585\u5586\u558C"+
- "\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597"+
- "\u559A\u559B\u559E\u55A0\u55A1\u55A2\u55A3\u55A4"+
- "\u55A5\u55A6\u55A8\u55A9\u55AA\u55AB\u55AC\u55AD"+
- "\u55AE\u55AF\u55B0\u55B2\u55B4\u55B6\u55B8\u55BA"+
- "\u55BC\u55BF\u55C0\u55C1\u55C2\u55C3\u55C6\u55C7"+
- "\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7"+
- "\u55D8\u55D9\u55DA\u55DB\u55DE\u55E0\u55E2\u55E7"+
- "\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8"+
- "\u55F9\u55FA\u55FB\u55FC\u55FF\u5602\u5603\u5604"+
- "\u5605\u5606\u5607\u560A\u560B\u560D\u5610\u5611"+
- "\u5612\u5613\u5614\u5615\u5616\u5617\u5619\u561A"+
- "\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628"+
- "\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635"+
- "\u5637\u5638\u563A\u563C\u563D\u563E\u5640\u5641"+
- "\u5642\u5643\u5644\u5645\u5646\u5647\u5648\u5649"+
- "\u564A\u564B\u564F\u5650\u5651\u5652\u5653\u5655"+
- "\u5656\u565A\u565B\u565D\u565E\u565F\u5660\u5661"+
- "\uFFFD\u5663\u5665\u5666\u5667\u566D\u566E\u566F"+
- "\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679"+
- "\u567A\u567D\u567E\u567F\u5680\u5681\u5682\u5683"+
- "\u5684\u5687\u5688\u5689\u568A\u568B\u568C\u568D"+
- "\u5690\u5691\u5692\u5694\u5695\u5696\u5697\u5698"+
- "\u5699\u569A\u569B\u569C\u569D\u569E\u569F\u56A0"+
- "\u56A1\u56A2\u56A4\u56A5\u56A6\u56A7\u56A8\u56A9"+
- "\u56AA\u56AB\u56AC\u56AD\u56AE\u56B0\u56B1\u56B2"+
- "\u56B3\u56B4\u56B5\u56B6\u56B8\u56B9\u56BA\u56BB"+
- "\u56BD\u56BE\u56BF\u56C0\u56C1\u56C2\u56C3\u56C4"+
- "\u56C5\u56C6\u56C7\u56C8\u56C9\u56CB\u56CC\u56CD"+
- "\u56CE\u56CF\u56D0\u56D1\u56D2\u56D3\u56D5\u56D6"+
- "\u56D8\u56D9\u56DC\u56E3\u56E5\u56E6\u56E7\u56E8"+
- "\u56E9\u56EA\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6"+
- "\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705"+
- "\u5707\u570B\u570C\u570D\u570E\u570F\u5710\u5711"+
- "\u5712\u5713\u5714\u5715\u5716\u5717\u5718\u5719"+
- "\u571A\u571B\u571D\u571E\u5720\u5721\u5722\u5724"+
- "\u5725\u5726\u5727\u572B\u5731\u5732\u5734\u5735"+
- "\u5736\u5737\u5738\u573C\u573D\u573F\u5741\u5743"+
- "\u5744\u5745\u5746\u5748\u5749\u574B\u5752\u5753"+
- "\u5754\u5755\u5756\u5758\u5759\u5762\u5763\u5765"+
- "\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775"+
- "\u5778\u5779\u577A\u577D\u577E\u577F\u5780\uFFFD"+
- "\u5781\u5787\u5788\u5789\u578A\u578D\u578E\u578F"+
- "\u5790\u5791\u5794\u5795\u5796\u5797\u5798\u5799"+
- "\u579A\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA"+
- "\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7"+
- "\u57B9\u57BA\u57BB\u57BC\u57BD\u57BE\u57BF\u57C0"+
- "\u57C1\u57C4\u57C5\u57C6\u57C7\u57C8\u57C9\u57CA"+
- "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB"+
- "\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5\u57E6\u57E7"+
- "\u57E8\u57E9\u57EA\u57EB\u57EC\u57EE\u57F0\u57F1"+
- "\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE"+
- "\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A"+
- "\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816"+
- "\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822"+
- "\u5823\u5825\u5826\u5827\u5828\u5829\u582B\u582C"+
- "\u582D\u582E\u582F\u5831\u5832\u5833\u5834\u5836"+
- "\u5837\u5838\u5839\u583A\u583B\u583C\u583D\u583E"+
- "\u583F\u5840\u5841\u5842\u5843\u5845\u5846\u5847"+
- "\u5848\u5849\u584A\u584B\u584E\u584F\u5850\u5852"+
- "\u5853\u5855\u5856\u5857\u5859\u585A\u585B\u585C"+
- "\u585D\u585F\u5860\u5861\u5862\u5863\u5864\u5866"+
- "\u5867\u5868\u5869\u586A\u586D\u586E\u586F\u5870"+
- "\u5871\u5872\u5873\u5874\u5875\u5876\u5877\u5878"+
- "\u5879\u587A\u587B\u587C\u587D\u587F\u5882\u5884"+
- "\u5886\u5887\u5888\u588A\u588B\u588C\uFFFD\u588D"+
- "\u588E\u588F\u5890\u5891\u5894\u5895\u5896\u5897"+
- "\u5898\u589B\u589C\u589D\u58A0\u58A1\u58A2\u58A3"+
- "\u58A4\u58A5\u58A6\u58A7\u58AA\u58AB\u58AC\u58AD"+
- "\u58AE\u58AF\u58B0\u58B1\u58B2\u58B3\u58B4\u58B5"+
- "\u58B6\u58B7\u58B8\u58B9\u58BA\u58BB\u58BD\u58BE"+
- "\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6\u58C7\u58C8"+
- "\u58C9\u58CA\u58CB\u58CC\u58CD\u58CE\u58CF\u58D0"+
- "\u58D2\u58D3\u58D4\u58D6\u58D7\u58D8\u58D9\u58DA"+
- "\u58DB\u58DC\u58DD\u58DE\u58DF\u58E0\u58E1\u58E2"+
- "\u58E3\u58E5\u58E6\u58E7\u58E8\u58E9\u58EA\u58ED"+
- "\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA"+
- "\u58FB\u58FC\u58FD\u58FE\u58FF\u5900\u5901\u5903"+
- "\u5905\u5906\u5908\u5909\u590A\u590B\u590C\u590E"+
- "\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D"+
- "\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C"+
- "\u5930\u5932\u5933\u5935\u5936\u593B\u593D\u593E"+
- "\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D"+
- "\u5950\u5952\u5953\u5959\u595B\u595C\u595D\u595E"+
- "\u595F\u5961\u5963\u5964\u5966\u5967\u5968\u5969"+
- "\u596A\u596B\u596C\u596D\u596E\u596F\u5970\u5971"+
- "\u5972\u5975\u5977\u597A\u597B\u597C\u597E\u597F"+
- "\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990"+
- "\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D"+
- "\u599F\u59A0\u59A1\u59A2\u59A6\uFFFD\u59A7\u59AC"+
- "\u59AD\u59B0\u59B1\u59B3\u59B4\u59B5\u59B6\u59B7"+
- "\u59B8\u59BA\u59BC\u59BD\u59BF\u59C0\u59C1\u59C2"+
- "\u59C3\u59C4\u59C5\u59C7\u59C8\u59C9\u59CC\u59CD"+
- "\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE\u59DF"+
- "\u59E0\u59E1\u59E2\u59E4\u59E6\u59E7\u59E9\u59EA"+
- "\u59EB\u59ED\u59EE\u59EF\u59F0\u59F1\u59F2\u59F3"+
- "\u59F4\u59F5\u59F6\u59F7\u59F8\u59FA\u59FC\u59FD"+
- "\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F"+
- "\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A"+
- "\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27"+
- "\u5A28\u5A2A\u5A2B\u5A2C\u5A2D\u5A2E\u5A2F\u5A30"+
- "\u5A33\u5A35\u5A37\u5A38\u5A39\u5A3A\u5A3B\u5A3D"+
- "\u5A3E\u5A3F\u5A41\u5A42\u5A43\u5A44\u5A45\u5A47"+
- "\u5A48\u5A4B\u5A4C\u5A4D\u5A4E\u5A4F\u5A50\u5A51"+
- "\u5A52\u5A53\u5A54\u5A56\u5A57\u5A58\u5A59\u5A5B"+
- "\u5A5C\u5A5D\u5A5E\u5A5F\u5A60\u5A61\u5A63\u5A64"+
- "\u5A65\u5A66\u5A68\u5A69\u5A6B\u5A6C\u5A6D\u5A6E"+
- "\u5A6F\u5A70\u5A71\u5A72\u5A73\u5A78\u5A79\u5A7B"+
- "\u5A7C\u5A7D\u5A7E\u5A80\u5A81\u5A82\u5A83\u5A84"+
- "\u5A85\u5A86\u5A87\u5A88\u5A89\u5A8A\u5A8B\u5A8C"+
- "\u5A8D\u5A8E\u5A8F\u5A90\u5A91\u5A93\u5A94\u5A95"+
- "\u5A96\u5A97\u5A98\u5A99\u5A9C\u5A9D\u5A9E\u5A9F"+
- "\u5AA0\u5AA1\u5AA2\u5AA3\u5AA4\u5AA5\u5AA6\u5AA7"+
- "\u5AA8\u5AA9\u5AAB\u5AAC\uFFFD\u5AAD\u5AAE\u5AAF"+
- "\u5AB0\u5AB1\u5AB4\u5AB6\u5AB7\u5AB9\u5ABA\u5ABB"+
- "\u5ABC\u5ABD\u5ABF\u5AC0\u5AC3\u5AC4\u5AC5\u5AC6"+
- "\u5AC7\u5AC8\u5ACA\u5ACB\u5ACD\u5ACE\u5ACF\u5AD0"+
- "\u5AD1\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD"+
- "\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA"+
- "\u5AEC\u5AED\u5AEE\u5AEF\u5AF0\u5AF2\u5AF3\u5AF4"+
- "\u5AF5\u5AF6\u5AF7\u5AF8\u5AF9\u5AFA\u5AFB\u5AFC"+
- "\u5AFD\u5AFE\u5AFF\u5B00\u5B01\u5B02\u5B03\u5B04"+
- "\u5B05\u5B06\u5B07\u5B08\u5B0A\u5B0B\u5B0C\u5B0D"+
- "\u5B0E\u5B0F\u5B10\u5B11\u5B12\u5B13\u5B14\u5B15"+
- "\u5B18\u5B19\u5B1A\u5B1B\u5B1C\u5B1D\u5B1E\u5B1F"+
- "\u5B20\u5B21\u5B22\u5B23\u5B24\u5B25\u5B26\u5B27"+
- "\u5B28\u5B29\u5B2A\u5B2B\u5B2C\u5B2D\u5B2E\u5B2F"+
- "\u5B30\u5B31\u5B33\u5B35\u5B36\u5B38\u5B39\u5B3A"+
- "\u5B3B\u5B3C\u5B3D\u5B3E\u5B3F\u5B41\u5B42\u5B43"+
- "\u5B44\u5B45\u5B46\u5B47\u5B48\u5B49\u5B4A\u5B4B"+
- "\u5B4C\u5B4D\u5B4E\u5B4F\u5B52\u5B56\u5B5E\u5B60"+
- "\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72"+
- "\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E"+
- "\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91"+
- "\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC"+
- "\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB"+
- "\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB"+
- "\u5BCD\u5BCE\u5BCF\uFFFD\u5BD1\u5BD4\u5BD5\u5BD6"+
- "\u5BD7\u5BD8\u5BD9\u5BDA\u5BDB\u5BDC\u5BE0\u5BE2"+
- "\u5BE3\u5BE6\u5BE7\u5BE9\u5BEA\u5BEB\u5BEC\u5BED"+
- "\u5BEF\u5BF1\u5BF2\u5BF3\u5BF4\u5BF5\u5BF6\u5BF7"+
- "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08"+
- "\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17"+
- "\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26"+
- "\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30"+
- "\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46"+
- "\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57"+
- "\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64"+
- "\u5C67\u5C68\u5C69\u5C6A\u5C6B\u5C6C\u5C6D\u5C70"+
- "\u5C72\u5C73\u5C74\u5C75\u5C76\u5C77\u5C78\u5C7B"+
- "\u5C7C\u5C7D\u5C7E\u5C80\u5C83\u5C84\u5C85\u5C86"+
- "\u5C87\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93"+
- "\u5C95\u5C9D\u5C9E\u5C9F\u5CA0\u5CA1\u5CA4\u5CA5"+
- "\u5CA6\u5CA7\u5CA8\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2"+
- "\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0"+
- "\u5CC2\u5CC3\u5CC5\u5CC6\u5CC7\u5CC8\u5CC9\u5CCA"+
- "\u5CCC\u5CCD\u5CCE\u5CCF\u5CD0\u5CD1\u5CD3\u5CD4"+
- "\u5CD5\u5CD6\u5CD7\u5CD8\u5CDA\u5CDB\u5CDC\u5CDD"+
- "\u5CDE\u5CDF\u5CE0\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB"+
- "\u5CEC\u5CEE\u5CEF\u5CF1\u5CF2\u5CF3\u5CF4\u5CF5"+
- "\u5CF6\u5CF7\u5CF8\u5CF9\u5CFA\u5CFC\u5CFD\u5CFE"+
- "\u5CFF\u5D00\uFFFD\u5D01\u5D04\u5D05\u5D08\u5D09"+
- "\u5D0A\u5D0B\u5D0C\u5D0D\u5D0F\u5D10\u5D11\u5D12"+
- "\u5D13\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D"+
- "\u5D1F\u5D20\u5D21\u5D22\u5D23\u5D25\u5D28\u5D2A"+
- "\u5D2B\u5D2C\u5D2F\u5D30\u5D31\u5D32\u5D33\u5D35"+
- "\u5D36\u5D37\u5D38\u5D39\u5D3A\u5D3B\u5D3C\u5D3F"+
- "\u5D40\u5D41\u5D42\u5D43\u5D44\u5D45\u5D46\u5D48"+
- "\u5D49\u5D4D\u5D4E\u5D4F\u5D50\u5D51\u5D52\u5D53"+
- "\u5D54\u5D55\u5D56\u5D57\u5D59\u5D5A\u5D5C\u5D5E"+
- "\u5D5F\u5D60\u5D61\u5D62\u5D63\u5D64\u5D65\u5D66"+
- "\u5D67\u5D68\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72"+
- "\u5D73\u5D75\u5D76\u5D77\u5D78\u5D79\u5D7A\u5D7B"+
- "\u5D7C\u5D7D\u5D7E\u5D7F\u5D80\u5D81\u5D83\u5D84"+
- "\u5D85\u5D86\u5D87\u5D88\u5D89\u5D8A\u5D8B\u5D8C"+
- "\u5D8D\u5D8E\u5D8F\u5D90\u5D91\u5D92\u5D93\u5D94"+
- "\u5D95\u5D96\u5D97\u5D98\u5D9A\u5D9B\u5D9C\u5D9E"+
- "\u5D9F\u5DA0\u5DA1\u5DA2\u5DA3\u5DA4\u5DA5\u5DA6"+
- "\u5DA7\u5DA8\u5DA9\u5DAA\u5DAB\u5DAC\u5DAD\u5DAE"+
- "\u5DAF\u5DB0\u5DB1\u5DB2\u5DB3\u5DB4\u5DB5\u5DB6"+
- "\u5DB8\u5DB9\u5DBA\u5DBB\u5DBC\u5DBD\u5DBE\u5DBF"+
- "\u5DC0\u5DC1\u5DC2\u5DC3\u5DC4\u5DC6\u5DC7\u5DC8"+
- "\u5DC9\u5DCA\u5DCB\u5DCC\u5DCE\u5DCF\u5DD0\u5DD1"+
- "\u5DD2\u5DD3\u5DD4\u5DD5\u5DD6\u5DD7\u5DD8\u5DD9"+
- "\u5DDA\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC"+
- "\u5DED\uFFFD\u5DF0\u5DF5\u5DF6\u5DF8\u5DF9\u5DFA"+
- "\u5DFB\u5DFC\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A"+
- "\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E\u5E1F"+
- "\u5E20\u5E21\u5E22\u5E23\u5E24\u5E25\u5E28\u5E29"+
- "\u5E2A\u5E2B\u5E2C\u5E2F\u5E30\u5E32\u5E33\u5E34"+
- "\u5E35\u5E36\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41"+
- "\u5E43\u5E46\u5E47\u5E48\u5E49\u5E4A\u5E4B\u5E4D"+
- "\u5E4E\u5E4F\u5E50\u5E51\u5E52\u5E53\u5E56\u5E57"+
- "\u5E58\u5E59\u5E5A\u5E5C\u5E5D\u5E5F\u5E60\u5E63"+
- "\u5E64\u5E65\u5E66\u5E67\u5E68\u5E69\u5E6A\u5E6B"+
- "\u5E6C\u5E6D\u5E6E\u5E6F\u5E70\u5E71\u5E75\u5E77"+
- "\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89"+
- "\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1"+
- "\u5EA2\u5EA3\u5EA4\u5EA8\u5EA9\u5EAA\u5EAB\u5EAC"+
- "\u5EAE\u5EAF\u5EB0\u5EB1\u5EB2\u5EB4\u5EBA\u5EBB"+
- "\u5EBC\u5EBD\u5EBF\u5EC0\u5EC1\u5EC2\u5EC3\u5EC4"+
- "\u5EC5\u5EC6\u5EC7\u5EC8\u5ECB\u5ECC\u5ECD\u5ECE"+
- "\u5ECF\u5ED0\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA"+
- "\u5EDC\u5EDD\u5EDE\u5EDF\u5EE0\u5EE1\u5EE2\u5EE3"+
- "\u5EE4\u5EE5\u5EE6\u5EE7\u5EE9\u5EEB\u5EEC\u5EED"+
- "\u5EEE\u5EEF\u5EF0\u5EF1\u5EF2\u5EF3\u5EF5\u5EF8"+
- "\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09"+
- "\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19"+
- "\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"+
- "\uFFFD\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32\u5F33"+
- "\u5F34\u5F35\u5F36\u5F37\u5F38\u5F3B\u5F3D\u5F3E"+
- "\u5F3F\u5F41\u5F42\u5F43\u5F44\u5F45\u5F46\u5F47"+
- "\u5F48\u5F49\u5F4A\u5F4B\u5F4C\u5F4D\u5F4E\u5F4F"+
- "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F"+
- "\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F"+
- "\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E"+
- "\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93"+
- "\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0"+
- "\u5FA2\u5FA3\u5FA4\u5FA5\u5FA6\u5FA7\u5FA9\u5FAB"+
- "\u5FAC\u5FAF\u5FB0\u5FB1\u5FB2\u5FB3\u5FB4\u5FB6"+
- "\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE\u5FBF\u5FC0\u5FC1"+
- "\u5FC2\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4"+
- "\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3"+
- "\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2"+
- "\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007";
-
- private final static String innerIndex1=
- "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017"+
- "\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C"+
- "\u602D\u602E\u6030\u6031\u6032\u6033\u6034\u6036"+
- "\u6037\u6038\u6039\u603A\u603D\u603E\u6040\u6044"+
- "\u6045\u6046\u6047\u6048\u6049\u604A\u604C\u604E"+
- "\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B"+
- "\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E"+
- "\u6071\u6072\u6074\u6075\u6077\u607E\u6080\uFFFD"+
- "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B"+
- "\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098"+
- "\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7"+
- "\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7"+
- "\u60B9\u60BA\u60BD\u60BE\u60BF\u60C0\u60C1\u60C2"+
- "\u60C3\u60C4\u60C7\u60C8\u60C9\u60CC\u60CD\u60CE"+
- "\u60CF\u60D0\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9"+
- "\u60DB\u60DE\u60E1\u60E2\u60E3\u60E4\u60E5\u60EA"+
- "\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB\u60FC\u60FD"+
- "\u60FE\u60FF\u6102\u6103\u6104\u6105\u6107\u610A"+
- "\u610B\u610C\u6110\u6111\u6112\u6113\u6114\u6116"+
- "\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121"+
- "\u6122\u6125\u6128\u6129\u612A\u612C\u612D\u612E"+
- "\u612F\u6130\u6131\u6132\u6133\u6134\u6135\u6136"+
- "\u6137\u6138\u6139\u613A\u613B\u613C\u613D\u613E"+
- "\u6140\u6141\u6142\u6143\u6144\u6145\u6146\u6147"+
- "\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154"+
- "\u6156\u6157\u6158\u6159\u615A\u615B\u615C\u615E"+
- "\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169"+
- "\u616A\u616B\u616C\u616D\u616E\u616F\u6171\u6172"+
- "\u6173\u6174\u6176\u6178\u6179\u617A\u617B\u617C"+
- "\u617D\u617E\u617F\u6180\u6181\u6182\u6183\u6184"+
- "\u6185\u6186\u6187\u6188\u6189\u618A\u618C\u618D"+
- "\u618F\u6190\u6191\u6192\u6193\u6195\uFFFD\u6196"+
- "\u6197\u6198\u6199\u619A\u619B\u619C\u619E\u619F"+
- "\u61A0\u61A1\u61A2\u61A3\u61A4\u61A5\u61A6\u61AA"+
- "\u61AB\u61AD\u61AE\u61AF\u61B0\u61B1\u61B2\u61B3"+
- "\u61B4\u61B5\u61B6\u61B8\u61B9\u61BA\u61BB\u61BC"+
- "\u61BD\u61BF\u61C0\u61C1\u61C3\u61C4\u61C5\u61C6"+
- "\u61C7\u61C9\u61CC\u61CD\u61CE\u61CF\u61D0\u61D3"+
- "\u61D5\u61D6\u61D7\u61D8\u61D9\u61DA\u61DB\u61DC"+
- "\u61DD\u61DE\u61DF\u61E0\u61E1\u61E2\u61E3\u61E4"+
- "\u61E5\u61E7\u61E8\u61E9\u61EA\u61EB\u61EC\u61ED"+
- "\u61EE\u61EF\u61F0\u61F1\u61F2\u61F3\u61F4\u61F6"+
- "\u61F7\u61F8\u61F9\u61FA\u61FB\u61FC\u61FD\u61FE"+
- "\u6200\u6201\u6202\u6203\u6204\u6205\u6207\u6209"+
- "\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223"+
- "\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230"+
- "\u6231\u6232\u6235\u6236\u6238\u6239\u623A\u623B"+
- "\u623C\u6242\u6244\u6245\u6246\u624A\u624F\u6250"+
- "\u6255\u6256\u6257\u6259\u625A\u625C\u625D\u625E"+
- "\u625F\u6260\u6261\u6262\u6264\u6265\u6268\u6271"+
- "\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D"+
- "\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B"+
- "\u628C\u628D\u628E\u628F\u6290\u6294\u6299\u629C"+
- "\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD"+
- "\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7"+
- "\u62B8\u62BA\u62BE\u62C0\u62C1\uFFFD\u62C3\u62CB"+
- "\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4"+
- "\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA"+
- "\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B"+
- "\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315"+
- "\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C"+
- "\u632D\u632E\u6330\u6331\u6333\u6334\u6335\u6336"+
- "\u6337\u6338\u633B\u633C\u633E\u633F\u6340\u6341"+
- "\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354"+
- "\u6356\u6357\u6358\u6359\u635A\u635B\u635C\u635D"+
- "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C"+
- "\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379"+
- "\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385"+
- "\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397"+
- "\u6399\u639A\u639B\u639C\u639D\u639E\u639F\u63A1"+
- "\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6"+
- "\u63B9\u63BB\u63BD\u63BF\u63C0\u63C1\u63C2\u63C3"+
- "\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3"+
- "\u63D4\u63D5\u63D7\u63D8\u63D9\u63DA\u63DB\u63DC"+
- "\u63DD\u63DF\u63E2\u63E4\u63E5\u63E6\u63E7\u63E8"+
- "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5"+
- "\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404"+
- "\u6406\u6407\u6408\u6409\u640A\u640D\u640E\u6411"+
- "\u6412\u6415\u6416\u6417\u6418\u6419\u641A\u641D"+
- "\u641F\u6422\u6423\u6424\uFFFD\u6425\u6427\u6428"+
- "\u6429\u642B\u642E\u642F\u6430\u6431\u6432\u6433"+
- "\u6435\u6436\u6437\u6438\u6439\u643B\u643C\u643E"+
- "\u6440\u6442\u6443\u6449\u644B\u644C\u644D\u644E"+
- "\u644F\u6450\u6451\u6453\u6455\u6456\u6457\u6459"+
- "\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6462"+
- "\u6463\u6464\u6465\u6466\u6468\u646A\u646B\u646C"+
- "\u646E\u646F\u6470\u6471\u6472\u6473\u6474\u6475"+
- "\u6476\u6477\u647B\u647C\u647D\u647E\u647F\u6480"+
- "\u6481\u6483\u6486\u6488\u6489\u648A\u648B\u648C"+
- "\u648D\u648E\u648F\u6490\u6493\u6494\u6497\u6498"+
- "\u649A\u649B\u649C\u649D\u649F\u64A0\u64A1\u64A2"+
- "\u64A3\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF"+
- "\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD"+
- "\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6\u64C7\u64C8"+
- "\u64C9\u64CA\u64CB\u64CC\u64CF\u64D1\u64D3\u64D4"+
- "\u64D5\u64D6\u64D9\u64DA\u64DB\u64DC\u64DD\u64DF"+
- "\u64E0\u64E1\u64E3\u64E5\u64E7\u64E8\u64E9\u64EA"+
- "\u64EB\u64EC\u64ED\u64EE\u64EF\u64F0\u64F1\u64F2"+
- "\u64F3\u64F4\u64F5\u64F6\u64F7\u64F8\u64F9\u64FA"+
- "\u64FB\u64FC\u64FD\u64FE\u64FF\u6501\u6502\u6503"+
- "\u6504\u6505\u6506\u6507\u6508\u650A\u650B\u650C"+
- "\u650D\u650E\u650F\u6510\u6511\u6513\u6514\u6515"+
- "\u6516\u6517\u6519\u651A\u651B\u651C\u651D\u651E"+
- "\u651F\u6520\u6521\uFFFD\u6522\u6523\u6524\u6526"+
- "\u6527\u6528\u6529\u652A\u652C\u652D\u6530\u6531"+
- "\u6532\u6533\u6537\u653A\u653C\u653D\u6540\u6541"+
- "\u6542\u6543\u6544\u6546\u6547\u654A\u654B\u654D"+
- "\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A"+
- "\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568"+
- "\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575"+
- "\u6576\u6578\u6579\u657A\u657B\u657C\u657D\u657E"+
- "\u657F\u6580\u6581\u6582\u6583\u6584\u6585\u6586"+
- "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594"+
- "\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2"+
- "\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1\u65B2"+
- "\u65B3\u65B4\u65B5\u65B6\u65B7\u65B8\u65BA\u65BB"+
- "\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA"+
- "\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8\u65D9"+
- "\u65DA\u65DB\u65DC\u65DD\u65DE\u65DF\u65E1\u65E3"+
- "\u65E4\u65EA\u65EB\u65F2\u65F3\u65F4\u65F5\u65F8"+
- "\u65F9\u65FB\u65FC\u65FD\u65FE\u65FF\u6601\u6604"+
- "\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611"+
- "\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E"+
- "\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B"+
- "\u662C\u662E\u6630\u6632\u6633\u6637\u6638\u6639"+
- "\u663A\u663B\u663D\u663F\u6640\u6642\u6644\u6645"+
- "\u6646\u6647\u6648\u6649\u664A\u664D\u664E\u6650"+
- "\u6651\u6658\uFFFD\u6659\u665B\u665C\u665D\u665E"+
- "\u6660\u6662\u6663\u6665\u6667\u6669\u666A\u666B"+
- "\u666C\u666D\u6671\u6672\u6673\u6675\u6678\u6679"+
- "\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685"+
- "\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F"+
- "\u6690\u6692\u6693\u6694\u6695\u6698\u6699\u669A"+
- "\u669B\u669C\u669E\u669F\u66A0\u66A1\u66A2\u66A3"+
- "\u66A4\u66A5\u66A6\u66A9\u66AA\u66AB\u66AC\u66AD"+
- "\u66AF\u66B0\u66B1\u66B2\u66B3\u66B5\u66B6\u66B7"+
- "\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF\u66C0\u66C1"+
- "\u66C2\u66C3\u66C4\u66C5\u66C6\u66C7\u66C8\u66C9"+
- "\u66CA\u66CB\u66CC\u66CD\u66CE\u66CF\u66D0\u66D1"+
- "\u66D2\u66D3\u66D4\u66D5\u66D6\u66D7\u66D8\u66DA"+
- "\u66DE\u66DF\u66E0\u66E1\u66E2\u66E3\u66E4\u66E5"+
- "\u66E7\u66E8\u66EA\u66EB\u66EC\u66ED\u66EE\u66EF"+
- "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701"+
- "\u6702\u6703\u6704\u6705\u6706\u6707\u670C\u670E"+
- "\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A"+
- "\u671C\u671E\u6720\u6721\u6722\u6723\u6724\u6725"+
- "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737"+
- "\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744"+
- "\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755"+
- "\u6757\u6758\u6759\u675A\u675B\u675D\u6762\u6763"+
- "\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774"+
- "\u6776\uFFFD\u6778\u6779\u677A\u677B\u677D\u6780"+
- "\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D"+
- "\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799"+
- "\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC"+
- "\u67AE\u67B1\u67B2\u67B4\u67B9\u67BA\u67BB\u67BC"+
- "\u67BD\u67BE\u67BF\u67C0\u67C2\u67C5\u67C6\u67C7"+
- "\u67C8\u67C9\u67CA\u67CB\u67CC\u67CD\u67CE\u67D5"+
- "\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6"+
- "\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5"+
- "\u67F6\u67F7\u67F8\u67F9\u67FA\u67FB\u67FC\u67FE"+
- "\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812"+
- "\u6814\u6815\u6818\u6819\u681A\u681B\u681C\u681E"+
- "\u681F\u6820\u6822\u6823\u6824\u6825\u6826\u6827"+
- "\u6828\u682B\u682C\u682D\u682E\u682F\u6830\u6831"+
- "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B"+
- "\u684D\u684F\u6852\u6856\u6857\u6858\u6859\u685A"+
- "\u685B\u685C\u685D\u685E\u685F\u686A\u686C\u686D"+
- "\u686E\u686F\u6870\u6871\u6872\u6873\u6875\u6878"+
- "\u6879\u687A\u687B\u687C\u687D\u687E\u687F\u6880"+
- "\u6882\u6884\u6887\u6888\u6889\u688A\u688B\u688C"+
- "\u688D\u688E\u6890\u6891\u6892\u6894\u6895\u6896"+
- "\u6898\u6899\u689A\u689B\u689C\u689D\u689E\u689F"+
- "\u68A0\u68A1\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB"+
- "\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"+
- "\uFFFD\u68B9\u68BA\u68BB\u68BC\u68BD\u68BE\u68BF"+
- "\u68C1\u68C3\u68C4\u68C5\u68C6\u68C7\u68C8\u68CA"+
- "\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6"+
- "\u68D7\u68D9\u68DB\u68DC\u68DD\u68DE\u68DF\u68E1"+
- "\u68E2\u68E4\u68E5\u68E6\u68E7\u68E8\u68E9\u68EA"+
- "\u68EB\u68EC\u68ED\u68EF\u68F2\u68F3\u68F4\u68F6"+
- "\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902"+
- "\u6903\u6904\u6906\u6907\u6908\u6909\u690A\u690C"+
- "\u690F\u6911\u6913\u6914\u6915\u6916\u6917\u6918"+
- "\u6919\u691A\u691B\u691C\u691D\u691E\u6921\u6922"+
- "\u6923\u6925\u6926\u6927\u6928\u6929\u692A\u692B"+
- "\u692C\u692E\u692F\u6931\u6932\u6933\u6935\u6936"+
- "\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941"+
- "\u6943\u6944\u6945\u6946\u6947\u6948\u6949\u694A"+
- "\u694B\u694C\u694D\u694E\u694F\u6950\u6951\u6952"+
- "\u6953\u6955\u6956\u6958\u6959\u695B\u695C\u695F"+
- "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A"+
- "\u696C\u696D\u696F\u6970\u6972\u6973\u6974\u6975"+
- "\u6976\u697A\u697B\u697D\u697E\u697F\u6981\u6983"+
- "\u6985\u698A\u698B\u698C\u698E\u698F\u6990\u6991"+
- "\u6992\u6993\u6996\u6997\u6999\u699A\u699D\u699E"+
- "\u699F\u69A0\u69A1\u69A2\u69A3\u69A4\u69A5\u69A6"+
- "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3"+
- "\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD\uFFFD"+
- "\u69BE\u69BF\u69C0\u69C2\u69C3\u69C4\u69C5\u69C6"+
- "\u69C7\u69C8\u69C9\u69CB\u69CD\u69CF\u69D1\u69D2"+
- "\u69D3\u69D5\u69D6\u69D7\u69D8\u69D9\u69DA\u69DC"+
- "\u69DD\u69DE\u69E1\u69E2\u69E3\u69E4\u69E5\u69E6"+
- "\u69E7\u69E8\u69E9\u69EA\u69EB\u69EC\u69EE\u69EF"+
- "\u69F0\u69F1\u69F3\u69F4\u69F5\u69F6\u69F7\u69F8"+
- "\u69F9\u69FA\u69FB\u69FC\u69FE\u6A00\u6A01\u6A02"+
- "\u6A03\u6A04\u6A05\u6A06\u6A07\u6A08\u6A09\u6A0B"+
- "\u6A0C\u6A0D\u6A0E\u6A0F\u6A10\u6A11\u6A12\u6A13"+
- "\u6A14\u6A15\u6A16\u6A19\u6A1A\u6A1B\u6A1C\u6A1D"+
- "\u6A1E\u6A20\u6A22\u6A23\u6A24\u6A25\u6A26\u6A27"+
- "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33"+
- "\u6A34\u6A36\u6A37\u6A38\u6A39\u6A3A\u6A3B\u6A3C"+
- "\u6A3F\u6A40\u6A41\u6A42\u6A43\u6A45\u6A46\u6A48"+
- "\u6A49\u6A4A\u6A4B\u6A4C\u6A4D\u6A4E\u6A4F\u6A51"+
- "\u6A52\u6A53\u6A54\u6A55\u6A56\u6A57\u6A5A\u6A5C"+
- "\u6A5D\u6A5E\u6A5F\u6A60\u6A62\u6A63\u6A64\u6A66"+
- "\u6A67\u6A68\u6A69\u6A6A\u6A6B\u6A6C\u6A6D\u6A6E"+
- "\u6A6F\u6A70\u6A72\u6A73\u6A74\u6A75\u6A76\u6A77"+
- "\u6A78\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82"+
- "\u6A83\u6A85\u6A86\u6A87\u6A88\u6A89\u6A8A\u6A8B"+
- "\u6A8C\u6A8D\u6A8F\u6A92\u6A93\u6A94\u6A95\u6A96"+
- "\u6A98\u6A99\u6A9A\u6A9B\u6A9C\u6A9D\u6A9E\u6A9F"+
- "\u6AA1\u6AA2\u6AA3\u6AA4\u6AA5\u6AA6\uFFFD\u6AA7"+
- "\u6AA8\u6AAA\u6AAD\u6AAE\u6AAF\u6AB0\u6AB1\u6AB2"+
- "\u6AB3\u6AB4\u6AB5\u6AB6\u6AB7\u6AB8\u6AB9\u6ABA"+
- "\u6ABB\u6ABC\u6ABD\u6ABE\u6ABF\u6AC0\u6AC1\u6AC2"+
- "\u6AC3\u6AC4\u6AC5\u6AC6\u6AC7\u6AC8\u6AC9\u6ACA"+
- "\u6ACB\u6ACC\u6ACD\u6ACE\u6ACF\u6AD0\u6AD1\u6AD2"+
- "\u6AD3\u6AD4\u6AD5\u6AD6\u6AD7\u6AD8\u6AD9\u6ADA"+
- "\u6ADB\u6ADC\u6ADD\u6ADE\u6ADF\u6AE0\u6AE1\u6AE2"+
- "\u6AE3\u6AE4\u6AE5\u6AE6\u6AE7\u6AE8\u6AE9\u6AEA"+
- "\u6AEB\u6AEC\u6AED\u6AEE\u6AEF\u6AF0\u6AF1\u6AF2"+
- "\u6AF3\u6AF4\u6AF5\u6AF6\u6AF7\u6AF8\u6AF9\u6AFA"+
- "\u6AFB\u6AFC\u6AFD\u6AFE\u6AFF\u6B00\u6B01\u6B02"+
- "\u6B03\u6B04\u6B05\u6B06\u6B07\u6B08\u6B09\u6B0A"+
- "\u6B0B\u6B0C\u6B0D\u6B0E\u6B0F\u6B10\u6B11\u6B12"+
- "\u6B13\u6B14\u6B15\u6B16\u6B17\u6B18\u6B19\u6B1A"+
- "\u6B1B\u6B1C\u6B1D\u6B1E\u6B1F\u6B25\u6B26\u6B28"+
- "\u6B29\u6B2A\u6B2B\u6B2C\u6B2D\u6B2E\u6B2F\u6B30"+
- "\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C"+
- "\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48"+
- "\u6B4A\u6B4B\u6B4D\u6B4E\u6B4F\u6B50\u6B51\u6B52"+
- "\u6B53\u6B54\u6B55\u6B56\u6B57\u6B58\u6B5A\u6B5B"+
- "\u6B5C\u6B5D\u6B5E\u6B5F\u6B60\u6B61\u6B68\u6B69"+
- "\u6B6B\u6B6C\u6B6D\u6B6E\u6B6F\u6B70\u6B71\u6B72"+
- "\u6B73\u6B74\u6B75\u6B76\u6B77\u6B78\u6B7A\u6B7D"+
- "\u6B7E\u6B7F\u6B80\u6B85\u6B88\uFFFD\u6B8C\u6B8E"+
- "\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99"+
- "\u6B9C\u6B9D\u6B9E\u6B9F\u6BA0\u6BA2\u6BA3\u6BA4"+
- "\u6BA5\u6BA6\u6BA7\u6BA8\u6BA9\u6BAB\u6BAC\u6BAD"+
- "\u6BAE\u6BAF\u6BB0\u6BB1\u6BB2\u6BB6\u6BB8\u6BB9"+
- "\u6BBA\u6BBB\u6BBC\u6BBD\u6BBE\u6BC0\u6BC3\u6BC4"+
- "\u6BC6\u6BC7\u6BC8\u6BC9\u6BCA\u6BCC\u6BCE\u6BD0"+
- "\u6BD1\u6BD8\u6BDA\u6BDC\u6BDD\u6BDE\u6BDF\u6BE0"+
- "\u6BE2\u6BE3\u6BE4\u6BE5\u6BE6\u6BE7\u6BE8\u6BE9"+
- "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6"+
- "\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE\u6BFF\u6C00"+
- "\u6C01\u6C02\u6C03\u6C04\u6C08\u6C09\u6C0A\u6C0B"+
- "\u6C0C\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20"+
- "\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36"+
- "\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43"+
- "\u6C44\u6C45\u6C48\u6C4B\u6C4C\u6C4D\u6C4E\u6C4F"+
- "\u6C51\u6C52\u6C53\u6C56\u6C58\u6C59\u6C5A\u6C62"+
- "\u6C63\u6C65\u6C66\u6C67\u6C6B\u6C6C\u6C6D\u6C6E"+
- "\u6C6F\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B"+
- "\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D"+
- "\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A"+
- "\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF"+
- "\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1"+
- "\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE"+
- "\u6CCF\u6CD1\u6CD2\u6CD8\uFFFD\u6CD9\u6CDA\u6CDC"+
- "\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED"+
- "\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05"+
- "\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11"+
- "\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F"+
- "\u6D20\u6D21\u6D22\u6D23\u6D24\u6D26\u6D28\u6D29"+
- "\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38"+
- "\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50"+
- "\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61"+
- "\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D"+
- "\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A"+
- "\u6D7B\u6D7D\u6D7E\u6D7F\u6D80\u6D81\u6D83\u6D84"+
- "\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92"+
- "\u6D96\u6D97\u6D98\u6D99\u6D9A\u6D9C\u6DA2\u6DA5"+
- "\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7"+
- "\u6DB9\u6DBA\u6DBB\u6DBC\u6DBD\u6DBE\u6DC1\u6DC2"+
- "\u6DC3\u6DC8\u6DC9\u6DCA\u6DCD\u6DCE\u6DCF\u6DD0"+
- "\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC"+
- "\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA"+
- "\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8"+
- "\u6DFA\u6DFD\u6DFE\u6DFF\u6E00\u6E01\u6E02\u6E03"+
- "\u6E04\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12"+
- "\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F"+
- "\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30"+
- "\u6E31\u6E33\u6E35\uFFFD\u6E36\u6E37\u6E39\u6E3B"+
- "\u6E3C\u6E3D\u6E3E\u6E3F\u6E40\u6E41\u6E42\u6E45"+
- "\u6E46\u6E47\u6E48\u6E49\u6E4A\u6E4B\u6E4C\u6E4F"+
- "\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C"+
- "\u6E5D\u6E5E\u6E60\u6E61\u6E62\u6E63\u6E64\u6E65"+
- "\u6E66\u6E67\u6E68\u6E69\u6E6A\u6E6C\u6E6D\u6E6F"+
- "\u6E70\u6E71\u6E72\u6E73\u6E74\u6E75\u6E76\u6E77"+
- "\u6E78\u6E79\u6E7A\u6E7B\u6E7C\u6E7D\u6E80\u6E81"+
- "\u6E82\u6E84\u6E87\u6E88\u6E8A\u6E8B\u6E8C\u6E8D"+
- "\u6E8E\u6E91\u6E92\u6E93\u6E94\u6E95\u6E96\u6E97"+
- "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3"+
- "\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE"+
- "\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF"+
- "\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA"+
- "\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9"+
- "\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA\u6EEB\u6EEC"+
- "\u6EED\u6EEE\u6EEF\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5"+
- "\u6EF6\u6EF7\u6EF8\u6EFA\u6EFB\u6EFC\u6EFD\u6EFE"+
- "\u6EFF\u6F00\u6F01\u6F03\u6F04\u6F05\u6F07\u6F08"+
- "\u6F0A\u6F0B\u6F0C\u6F0D\u6F0E\u6F10\u6F11\u6F12"+
- "\u6F16\u6F17\u6F18\u6F19\u6F1A\u6F1B\u6F1C\u6F1D"+
- "\u6F1E\u6F1F\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27"+
- "\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37"+
- "\u6F38\u6F39\u6F3A\u6F3B\u6F3C\u6F3D\u6F3F\u6F40"+
- "\u6F41\u6F42\uFFFD\u6F43\u6F44\u6F45\u6F48\u6F49"+
- "\u6F4A\u6F4C\u6F4E\u6F4F\u6F50\u6F51\u6F52\u6F53"+
- "\u6F54\u6F55\u6F56\u6F57\u6F59\u6F5A\u6F5B\u6F5D"+
- "\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67\u6F68"+
- "\u6F69\u6F6A\u6F6B\u6F6C\u6F6F\u6F70\u6F71\u6F73"+
- "\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D\u6F7E\u6F7F"+
- "\u6F80\u6F81\u6F82\u6F83\u6F85\u6F86\u6F87\u6F8A"+
- "\u6F8B\u6F8F\u6F90\u6F91\u6F92\u6F93\u6F94\u6F95"+
- "\u6F96\u6F97\u6F98\u6F99\u6F9A\u6F9B\u6F9D\u6F9E"+
- "\u6F9F\u6FA0\u6FA2\u6FA3\u6FA4\u6FA5\u6FA6\u6FA8"+
- "\u6FA9\u6FAA\u6FAB\u6FAC\u6FAD\u6FAE\u6FAF\u6FB0"+
- "\u6FB1\u6FB2\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA\u6FBB"+
- "\u6FBC\u6FBD\u6FBE\u6FBF\u6FC1\u6FC3\u6FC4\u6FC5"+
- "\u6FC6\u6FC7\u6FC8\u6FCA\u6FCB\u6FCC\u6FCD\u6FCE"+
- "\u6FCF\u6FD0\u6FD3\u6FD4\u6FD5\u6FD6\u6FD7\u6FD8"+
- "\u6FD9\u6FDA\u6FDB\u6FDC\u6FDD\u6FDF\u6FE2\u6FE3"+
- "\u6FE4\u6FE5\u6FE6\u6FE7\u6FE8\u6FE9\u6FEA\u6FEB"+
- "\u6FEC\u6FED\u6FF0\u6FF1\u6FF2\u6FF3\u6FF4\u6FF5"+
- "\u6FF6\u6FF7\u6FF8\u6FF9\u6FFA\u6FFB\u6FFC\u6FFD"+
- "\u6FFE\u6FFF\u7000\u7001\u7002\u7003\u7004\u7005"+
- "\u7006\u7007\u7008\u7009\u700A\u700B\u700C\u700D"+
- "\u700E\u700F\u7010\u7012\u7013\u7014\u7015\u7016"+
- "\u7017\u7018\u7019\u701C\u701D\u701E\u701F\u7020"+
- "\u7021\u7022\u7024\u7025\u7026\u7027\u7028\u7029"+
- "\u702A\uFFFD\u702B\u702C\u702D\u702E\u702F\u7030"+
- "\u7031\u7032\u7033\u7034\u7036\u7037\u7038\u703A"+
- "\u703B\u703C\u703D\u703E\u703F\u7040\u7041\u7042"+
- "\u7043\u7044\u7045\u7046\u7047\u7048\u7049\u704A"+
- "\u704B\u704D\u704E\u7050\u7051\u7052\u7053\u7054"+
- "\u7055\u7056\u7057\u7058\u7059\u705A\u705B\u705C"+
- "\u705D\u705F\u7060\u7061\u7062\u7063\u7064\u7065"+
- "\u7066\u7067\u7068\u7069\u706A\u706E\u7071\u7072"+
- "\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081"+
- "\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C"+
- "\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A"+
- "\u709B\u709E\u709F\u70A0\u70A1\u70A2\u70A3\u70A4"+
- "\u70A5\u70A6\u70A7\u70A8\u70A9\u70AA\u70B0\u70B2"+
- "\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5"+
- "\u70C6\u70C7\u70C9\u70CB\u70CC\u70CD\u70CE\u70CF"+
- "\u70D0\u70D1\u70D2\u70D3\u70D4\u70D5\u70D6\u70D7"+
- "\u70DA\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3"+
- "\u70E5\u70EA\u70EE\u70F0\u70F1\u70F2\u70F3\u70F4"+
- "\u70F5\u70F6\u70F8\u70FA\u70FB\u70FC\u70FE\u70FF"+
- "\u7100\u7101\u7102\u7103\u7104\u7105\u7106\u7107"+
- "\u7108\u710B\u710C\u710D\u710E\u710F\u7111\u7112"+
- "\u7114\u7117\u711B\u711C\u711D\u711E\u711F\u7120"+
- "\u7121\u7122\u7123\u7124\u7125\u7127\u7128\u7129"+
- "\u712A\u712B\u712C\u712D\u712E\u7132\u7133\u7134"+
- "\uFFFD\u7135\u7137\u7138\u7139\u713A\u713B\u713C"+
- "\u713D\u713E\u713F\u7140\u7141\u7142\u7143\u7144"+
- "\u7146\u7147\u7148\u7149\u714B\u714D\u714F\u7150"+
- "\u7151\u7152\u7153\u7154\u7155\u7156\u7157\u7158"+
- "\u7159\u715A\u715B\u715D\u715F\u7160\u7161\u7162"+
- "\u7163\u7165\u7169\u716A\u716B\u716C\u716D\u716F"+
- "\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B"+
- "\u717C\u717E\u717F\u7180\u7181\u7182\u7183\u7185"+
- "\u7186\u7187\u7188\u7189\u718B\u718C\u718D\u718E"+
- "\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A"+
- "\u719B\u719C\u719D\u719E\u71A1\u71A2\u71A3\u71A4"+
- "\u71A5\u71A6\u71A7\u71A9\u71AA\u71AB\u71AD\u71AE"+
- "\u71AF\u71B0\u71B1\u71B2\u71B4\u71B6\u71B7\u71B8"+
- "\u71BA\u71BB\u71BC\u71BD\u71BE\u71BF\u71C0\u71C1"+
- "\u71C2\u71C4\u71C5\u71C6\u71C7\u71C8\u71C9\u71CA"+
- "\u71CB\u71CC\u71CD\u71CF\u71D0\u71D1\u71D2\u71D3";
-
- private final static String innerIndex2=
- "\u71D6\u71D7\u71D8\u71D9\u71DA\u71DB\u71DC\u71DD"+
- "\u71DE\u71DF\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8"+
- "\u71E9\u71EA\u71EB\u71EC\u71ED\u71EF\u71F0\u71F1"+
- "\u71F2\u71F3\u71F4\u71F5\u71F6\u71F7\u71F8\u71FA"+
- "\u71FB\u71FC\u71FD\u71FE\u71FF\u7200\u7201\u7202"+
- "\u7203\u7204\u7205\u7207\u7208\u7209\u720A\u720B"+
- "\u720C\u720D\u720E\u720F\u7210\u7211\u7212\u7213"+
- "\u7214\u7215\u7216\u7217\u7218\u7219\u721A\uFFFD"+
- "\u721B\u721C\u721E\u721F\u7220\u7221\u7222\u7223"+
- "\u7224\u7225\u7226\u7227\u7229\u722B\u722D\u722E"+
- "\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240"+
- "\u7241\u7242\u7243\u7244\u7245\u7246\u7249\u724A"+
- "\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255"+
- "\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264"+
- "\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271"+
- "\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D"+
- "\u7282\u7283\u7285\u7286\u7287\u7288\u7289\u728C"+
- "\u728E\u7290\u7291\u7293\u7294\u7295\u7296\u7297"+
- "\u7298\u7299\u729A\u729B\u729C\u729D\u729E\u72A0"+
- "\u72A1\u72A2\u72A3\u72A4\u72A5\u72A6\u72A7\u72A8"+
- "\u72A9\u72AA\u72AB\u72AE\u72B1\u72B2\u72B3\u72B5"+
- "\u72BA\u72BB\u72BC\u72BD\u72BE\u72BF\u72C0\u72C5"+
- "\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1"+
- "\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB\uE4C6"+
- "\uE4C7\uE4C8\uE4C9\uE4CA\uE4CB\uE4CC\uE4CD\uE4CE"+
- "\uE4CF\uE4D0\uE4D1\uE4D2\uE4D3\uE4D4\uE4D5\uE4D6"+
- "\uE4D7\uE4D8\uE4D9\uE4DA\uE4DB\uE4DC\uE4DD\uE4DE"+
- "\uE4DF\uE4E0\uE4E1\uE4E2\uE4E3\uE4E4\uE4E5\uE4E6"+
- "\uE4E7\uE4E8\uE4E9\uE4EA\uE4EB\uE4EC\uE4ED\uE4EE"+
- "\uE4EF\uE4F0\uE4F1\uE4F2\uE4F3\uE4F4\uE4F5\uE4F6"+
- "\uE4F7\uE4F8\uE4F9\uE4FA\uE4FB\uE4FC\uE4FD\uE4FE"+
- "\uE4FF\uE500\uE501\uE502\uE503\uE504\uFFFD\uE505"+
- "\uE506\uE507\uE508\uE509\uE50A\uE50B\uE50C\uE50D"+
- "\uE50E\uE50F\uE510\uE511\uE512\uE513\uE514\uE515"+
- "\uE516\uE517\uE518\uE519\uE51A\uE51B\uE51C\uE51D"+
- "\uE51E\uE51F\uE520\uE521\uE522\uE523\uE524\uE525"+
- "\u3000\u3001\u3002\u00B7\u02C9\u02C7\u00A8\u3003"+
- "\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C"+
- "\u201D\u3014\u3015\u3008\u3009\u300A\u300B\u300C"+
- "\u300D\u300E\u300F\u3016\u3017\u3010\u3011\u00B1"+
- "\u00D7\u00F7\u2236\u2227\u2228\u2211\u220F\u222A"+
- "\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312"+
- "\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D"+
- "\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234"+
- "\u2642\u2640\u00B0\u2032\u2033\u2103\uFF04\u00A4"+
- "\uFFE0\uFFE1\u2030\u00A7\u2116\u2606\u2605\u25CB"+
- "\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2"+
- "\u203B\u2192\u2190\u2191\u2193\u3013\uE526\uE527"+
- "\uE528\uE529\uE52A\uE52B\uE52C\uE52D\uE52E\uE52F"+
- "\uE530\uE531\uE532\uE533\uE534\uE535\uE536\uE537"+
- "\uE538\uE539\uE53A\uE53B\uE53C\uE53D\uE53E\uE53F"+
- "\uE540\uE541\uE542\uE543\uE544\uE545\uE546\uE547"+
- "\uE548\uE549\uE54A\uE54B\uE54C\uE54D\uE54E\uE54F"+
- "\uE550\uE551\uE552\uE553\uE554\uE555\uE556\uE557"+
- "\uE558\uE559\uE55A\uE55B\uE55C\uE55D\uE55E\uE55F"+
- "\uE560\uE561\uE562\uE563\uE564\uFFFD\uE565\uE566"+
- "\uE567\uE568\uE569\uE56A\uE56B\uE56C\uE56D\uE56E"+
- "\uE56F\uE570\uE571\uE572\uE573\uE574\uE575\uE576"+
- "\uE577\uE578\uE579\uE57A\uE57B\uE57C\uE57D\uE57E"+
- "\uE57F\uE580\uE581\uE582\uE583\uE584\uE585\u2170"+
- "\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178"+
- "\u2179\uE766\uE767\uE768\uE769\uE76A\uE76B\u2488"+
- "\u2489\u248A\u248B\u248C\u248D\u248E\u248F\u2490"+
- "\u2491\u2492\u2493\u2494\u2495\u2496\u2497\u2498"+
- "\u2499\u249A\u249B\u2474\u2475\u2476\u2477\u2478"+
- "\u2479\u247A\u247B\u247C\u247D\u247E\u247F\u2480"+
- "\u2481\u2482\u2483\u2484\u2485\u2486\u2487\u2460"+
- "\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468"+
- "\u2469\u20AC\uE76D\u3220\u3221\u3222\u3223\u3224"+
- "\u3225\u3226\u3227\u3228\u3229\uE76E\uE76F\u2160"+
- "\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168"+
- "\u2169\u216A\u216B\uE770\uE771\uE586\uE587\uE588"+
- "\uE589\uE58A\uE58B\uE58C\uE58D\uE58E\uE58F\uE590"+
- "\uE591\uE592\uE593\uE594\uE595\uE596\uE597\uE598"+
- "\uE599\uE59A\uE59B\uE59C\uE59D\uE59E\uE59F\uE5A0"+
- "\uE5A1\uE5A2\uE5A3\uE5A4\uE5A5\uE5A6\uE5A7\uE5A8"+
- "\uE5A9\uE5AA\uE5AB\uE5AC\uE5AD\uE5AE\uE5AF\uE5B0"+
- "\uE5B1\uE5B2\uE5B3\uE5B4\uE5B5\uE5B6\uE5B7\uE5B8"+
- "\uE5B9\uE5BA\uE5BB\uE5BC\uE5BD\uE5BE\uE5BF\uE5C0"+
- "\uE5C1\uE5C2\uE5C3\uE5C4\uFFFD\uE5C5\uE5C6\uE5C7"+
- "\uE5C8\uE5C9\uE5CA\uE5CB\uE5CC\uE5CD\uE5CE\uE5CF"+
- "\uE5D0\uE5D1\uE5D2\uE5D3\uE5D4\uE5D5\uE5D6\uE5D7"+
- "\uE5D8\uE5D9\uE5DA\uE5DB\uE5DC\uE5DD\uE5DE\uE5DF"+
- "\uE5E0\uE5E1\uE5E2\uE5E3\uE5E4\uE5E5\uFF01\uFF02"+
- "\uFF03\uFFE5\uFF05\uFF06\uFF07\uFF08\uFF09\uFF0A"+
- "\uFF0B\uFF0C\uFF0D\uFF0E\uFF0F\uFF10\uFF11\uFF12"+
- "\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19\uFF1A"+
- "\uFF1B\uFF1C\uFF1D\uFF1E\uFF1F\uFF20\uFF21\uFF22"+
- "\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A"+
- "\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32"+
- "\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A"+
- "\uFF3B\uFF3C\uFF3D\uFF3E\uFF3F\uFF40\uFF41\uFF42"+
- "\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A"+
- "\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52"+
- "\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A"+
- "\uFF5B\uFF5C\uFF5D\uFFE3\uE5E6\uE5E7\uE5E8\uE5E9"+
- "\uE5EA\uE5EB\uE5EC\uE5ED\uE5EE\uE5EF\uE5F0\uE5F1"+
- "\uE5F2\uE5F3\uE5F4\uE5F5\uE5F6\uE5F7\uE5F8\uE5F9"+
- "\uE5FA\uE5FB\uE5FC\uE5FD\uE5FE\uE5FF\uE600\uE601"+
- "\uE602\uE603\uE604\uE605\uE606\uE607\uE608\uE609"+
- "\uE60A\uE60B\uE60C\uE60D\uE60E\uE60F\uE610\uE611"+
- "\uE612\uE613\uE614\uE615\uE616\uE617\uE618\uE619"+
- "\uE61A\uE61B\uE61C\uE61D\uE61E\uE61F\uE620\uE621"+
- "\uE622\uE623\uE624\uFFFD\uE625\uE626\uE627\uE628"+
- "\uE629\uE62A\uE62B\uE62C\uE62D\uE62E\uE62F\uE630"+
- "\uE631\uE632\uE633\uE634\uE635\uE636\uE637\uE638"+
- "\uE639\uE63A\uE63B\uE63C\uE63D\uE63E\uE63F\uE640"+
- "\uE641\uE642\uE643\uE644\uE645\u3041\u3042\u3043"+
- "\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B"+
- "\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053"+
- "\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B"+
- "\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063"+
- "\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B"+
- "\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073"+
- "\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B"+
- "\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083"+
- "\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B"+
- "\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093"+
- "\uE772\uE773\uE774\uE775\uE776\uE777\uE778\uE779"+
- "\uE77A\uE77B\uE77C\uE646\uE647\uE648\uE649\uE64A"+
- "\uE64B\uE64C\uE64D\uE64E\uE64F\uE650\uE651\uE652"+
- "\uE653\uE654\uE655\uE656\uE657\uE658\uE659\uE65A"+
- "\uE65B\uE65C\uE65D\uE65E\uE65F\uE660\uE661\uE662"+
- "\uE663\uE664\uE665\uE666\uE667\uE668\uE669\uE66A"+
- "\uE66B\uE66C\uE66D\uE66E\uE66F\uE670\uE671\uE672"+
- "\uE673\uE674\uE675\uE676\uE677\uE678\uE679\uE67A"+
- "\uE67B\uE67C\uE67D\uE67E\uE67F\uE680\uE681\uE682"+
- "\uE683\uE684\uFFFD\uE685\uE686\uE687\uE688\uE689"+
- "\uE68A\uE68B\uE68C\uE68D\uE68E\uE68F\uE690\uE691"+
- "\uE692\uE693\uE694\uE695\uE696\uE697\uE698\uE699"+
- "\uE69A\uE69B\uE69C\uE69D\uE69E\uE69F\uE6A0\uE6A1"+
- "\uE6A2\uE6A3\uE6A4\uE6A5\u30A1\u30A2\u30A3\u30A4"+
- "\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC"+
- "\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4"+
- "\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC"+
- "\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4"+
- "\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC"+
- "\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4"+
- "\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC"+
- "\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4"+
- "\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC"+
- "\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4"+
- "\u30F5\u30F6\uE77D\uE77E\uE77F\uE780\uE781\uE782"+
- "\uE783\uE784\uE6A6\uE6A7\uE6A8\uE6A9\uE6AA\uE6AB"+
- "\uE6AC\uE6AD\uE6AE\uE6AF\uE6B0\uE6B1\uE6B2\uE6B3"+
- "\uE6B4\uE6B5\uE6B6\uE6B7\uE6B8\uE6B9\uE6BA\uE6BB"+
- "\uE6BC\uE6BD\uE6BE\uE6BF\uE6C0\uE6C1\uE6C2\uE6C3"+
- "\uE6C4\uE6C5\uE6C6\uE6C7\uE6C8\uE6C9\uE6CA\uE6CB"+
- "\uE6CC\uE6CD\uE6CE\uE6CF\uE6D0\uE6D1\uE6D2\uE6D3"+
- "\uE6D4\uE6D5\uE6D6\uE6D7\uE6D8\uE6D9\uE6DA\uE6DB"+
- "\uE6DC\uE6DD\uE6DE\uE6DF\uE6E0\uE6E1\uE6E2\uE6E3"+
- "\uE6E4\uFFFD\uE6E5\uE6E6\uE6E7\uE6E8\uE6E9\uE6EA"+
- "\uE6EB\uE6EC\uE6ED\uE6EE\uE6EF\uE6F0\uE6F1\uE6F2"+
- "\uE6F3\uE6F4\uE6F5\uE6F6\uE6F7\uE6F8\uE6F9\uE6FA"+
- "\uE6FB\uE6FC\uE6FD\uE6FE\uE6FF\uE700\uE701\uE702"+
- "\uE703\uE704\uE705\u0391\u0392\u0393\u0394\u0395"+
- "\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D"+
- "\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6"+
- "\u03A7\u03A8\u03A9\uE785\uE786\uE787\uE788\uE789"+
- "\uE78A\uE78B\uE78C\u03B1\u03B2\u03B3\u03B4\u03B5"+
- "\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD"+
- "\u03BE\u03BF\u03C0\u03C1\u03C3\u03C4\u03C5\u03C6"+
- "\u03C7\u03C8\u03C9\uE78D\uE78E\uE78F\uE790\uE791"+
- "\uE792\uE793\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40"+
- "\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44\uE794\uE795"+
- "\uFE3B\uFE3C\uFE37\uFE38\uFE31\uE796\uFE33\uFE34"+
- "\uE797\uE798\uE799\uE79A\uE79B\uE79C\uE79D\uE79E"+
- "\uE79F\uE706\uE707\uE708\uE709\uE70A\uE70B\uE70C"+
- "\uE70D\uE70E\uE70F\uE710\uE711\uE712\uE713\uE714"+
- "\uE715\uE716\uE717\uE718\uE719\uE71A\uE71B\uE71C"+
- "\uE71D\uE71E\uE71F\uE720\uE721\uE722\uE723\uE724"+
- "\uE725\uE726\uE727\uE728\uE729\uE72A\uE72B\uE72C"+
- "\uE72D\uE72E\uE72F\uE730\uE731\uE732\uE733\uE734"+
- "\uE735\uE736\uE737\uE738\uE739\uE73A\uE73B\uE73C"+
- "\uE73D\uE73E\uE73F\uE740\uE741\uE742\uE743\uE744"+
- "\uFFFD\uE745\uE746\uE747\uE748\uE749\uE74A\uE74B"+
- "\uE74C\uE74D\uE74E\uE74F\uE750\uE751\uE752\uE753"+
- "\uE754\uE755\uE756\uE757\uE758\uE759\uE75A\uE75B"+
- "\uE75C\uE75D\uE75E\uE75F\uE760\uE761\uE762\uE763"+
- "\uE764\uE765\u0410\u0411\u0412\u0413\u0414\u0415"+
- "\u0401\u0416\u0417\u0418\u0419\u041A\u041B\u041C"+
- "\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424"+
- "\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C"+
- "\u042D\u042E\u042F\uE7A0\uE7A1\uE7A2\uE7A3\uE7A4"+
- "\uE7A5\uE7A6\uE7A7\uE7A8\uE7A9\uE7AA\uE7AB\uE7AC"+
- "\uE7AD\uE7AE\u0430\u0431\u0432\u0433\u0434\u0435"+
- "\u0451\u0436\u0437\u0438\u0439\u043A\u043B\u043C"+
- "\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444"+
- "\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C"+
- "\u044D\u044E\u044F\uE7AF\uE7B0\uE7B1\uE7B2\uE7B3"+
- "\uE7B4\uE7B5\uE7B6\uE7B7\uE7B8\uE7B9\uE7BA\uE7BB"+
- "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105"+
- "\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223"+
- "\u2252\u2266\u2267\u22BF\u2550\u2551\u2552\u2553"+
- "\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B"+
- "\u255C\u255D\u255E\u255F\u2560\u2561\u2562\u2563"+
- "\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B"+
- "\u256C\u256D\u256E\u256F\u2570\u2571\u2572\u2573"+
- "\u2581\u2582\u2583\u2584\u2585\u2586\u2587\uFFFD"+
- "\u2588\u2589\u258A\u258B\u258C\u258D\u258E\u258F"+
- "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4"+
- "\u25E5\u2609\u2295\u3012\u301D\u301E\uE7BC\uE7BD"+
- "\uE7BE\uE7BF\uE7C0\uE7C1\uE7C2\uE7C3\uE7C4\uE7C5"+
- "\uE7C6\u0101\u00E1\u01CE\u00E0\u0113\u00E9\u011B"+
- "\u00E8\u012B\u00ED\u01D0\u00EC\u014D\u00F3\u01D2"+
- "\u00F2\u016B\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA"+
- "\u01DC\u00FC\u00EA\u0251\uE7C7\u0144\u0148\u01F9"+
- "\u0261\uE7C9\uE7CA\uE7CB\uE7CC\u3105\u3106\u3107"+
- "\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F"+
- "\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117"+
- "\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F"+
- "\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127"+
- "\u3128\u3129\uE7CD\uE7CE\uE7CF\uE7D0\uE7D1\uE7D2"+
- "\uE7D3\uE7D4\uE7D5\uE7D6\uE7D7\uE7D8\uE7D9\uE7DA"+
- "\uE7DB\uE7DC\uE7DD\uE7DE\uE7DF\uE7E0\uE7E1\u3021"+
- "\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029"+
- "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4"+
- "\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4\uE7E2"+
- "\u2121\u3231\uE7E3\u2010\uE7E4\uE7E5\uE7E6\u30FC"+
- "\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49"+
- "\uFE4A\uFE4B\uFE4C\uFE4D\uFE4E\uFE4F\uFE50\uFE51"+
- "\uFE52\uFE54\uFE55\uFE56\uFE57\uFE59\uFE5A\uFE5B"+
- "\uFE5C\uFE5D\uFE5E\uFE5F\uFE60\uFE61\uFFFD\uFE62"+
- "\uFE63\uFE64\uFE65\uFE66\uFE68\uFE69\uFE6A\uFE6B"+
- "\u303E\u2FF0\u2FF1\u2FF2\u2FF3\u2FF4\u2FF5\u2FF6"+
- "\u2FF7\u2FF8\u2FF9\u2FFA\u2FFB\u3007\uE7F4\uE7F5"+
- "\uE7F6\uE7F7\uE7F8\uE7F9\uE7FA\uE7FB\uE7FC\uE7FD"+
- "\uE7FE\uE7FF\uE800\u2500\u2501\u2502\u2503\u2504"+
- "\u2505\u2506\u2507\u2508\u2509\u250A\u250B\u250C"+
- "\u250D\u250E\u250F\u2510\u2511\u2512\u2513\u2514"+
- "\u2515\u2516\u2517\u2518\u2519\u251A\u251B\u251C"+
- "\u251D\u251E\u251F\u2520\u2521\u2522\u2523\u2524"+
- "\u2525\u2526\u2527\u2528\u2529\u252A\u252B\u252C"+
- "\u252D\u252E\u252F\u2530\u2531\u2532\u2533\u2534"+
- "\u2535\u2536\u2537\u2538\u2539\u253A\u253B\u253C"+
- "\u253D\u253E\u253F\u2540\u2541\u2542\u2543\u2544"+
- "\u2545\u2546\u2547\u2548\u2549\u254A\u254B\uE801"+
- "\uE802\uE803\uE804\uE805\uE806\uE807\uE808\uE809"+
- "\uE80A\uE80B\uE80C\uE80D\uE80E\uE80F\u72DC\u72DD"+
- "\u72DF\u72E2\u72E3\u72E4\u72E5\u72E6\u72E7\u72EA"+
- "\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300"+
- "\u7302\u7304\u7305\u7306\u7307\u7308\u7309\u730B"+
- "\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318"+
- "\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327"+
- "\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336"+
- "\u733A\u733B\u733C\u733D\u7340\u7341\u7342\u7343"+
- "\u7344\u7345\u7346\u7347\u7348\uFFFD\u7349\u734A"+
- "\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355"+
- "\u7356\u7358\u7359\u735A\u735B\u735C\u735D\u735E"+
- "\u735F\u7361\u7362\u7363\u7364\u7365\u7366\u7367"+
- "\u7368\u7369\u736A\u736B\u736E\u7370\u7371\uE000"+
- "\uE001\uE002\uE003\uE004\uE005\uE006\uE007\uE008"+
- "\uE009\uE00A\uE00B\uE00C\uE00D\uE00E\uE00F\uE010"+
- "\uE011\uE012\uE013\uE014\uE015\uE016\uE017\uE018"+
- "\uE019\uE01A\uE01B\uE01C\uE01D\uE01E\uE01F\uE020"+
- "\uE021\uE022\uE023\uE024\uE025\uE026\uE027\uE028"+
- "\uE029\uE02A\uE02B\uE02C\uE02D\uE02E\uE02F\uE030"+
- "\uE031\uE032\uE033\uE034\uE035\uE036\uE037\uE038"+
- "\uE039\uE03A\uE03B\uE03C\uE03D\uE03E\uE03F\uE040"+
- "\uE041\uE042\uE043\uE044\uE045\uE046\uE047\uE048"+
- "\uE049\uE04A\uE04B\uE04C\uE04D\uE04E\uE04F\uE050"+
- "\uE051\uE052\uE053\uE054\uE055\uE056\uE057\uE058"+
- "\uE059\uE05A\uE05B\uE05C\uE05D\u7372\u7373\u7374"+
- "\u7375\u7376\u7377\u7378\u7379\u737A\u737B\u737C"+
- "\u737D\u737F\u7380\u7381\u7382\u7383\u7385\u7386"+
- "\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393"+
- "\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D"+
- "\u739E\u73A0\u73A1\u73A3\u73A4\u73A5\u73A6\u73A7"+
- "\u73A8\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6"+
- "\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3"+
- "\u73C4\u73C5\u73C6\u73C7\uFFFD\u73CB\u73CC\u73CE"+
- "\u73D2\u73D3\u73D4\u73D5\u73D6\u73D7\u73D8\u73DA"+
- "\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4"+
- "\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0"+
- "\u73F1\u73F3\u73F4\u73F5\u73F6\u73F7\uE05E\uE05F"+
- "\uE060\uE061\uE062\uE063\uE064\uE065\uE066\uE067"+
- "\uE068\uE069\uE06A\uE06B\uE06C\uE06D\uE06E\uE06F"+
- "\uE070\uE071\uE072\uE073\uE074\uE075\uE076\uE077"+
- "\uE078\uE079\uE07A\uE07B\uE07C\uE07D\uE07E\uE07F"+
- "\uE080\uE081\uE082\uE083\uE084\uE085\uE086\uE087"+
- "\uE088\uE089\uE08A\uE08B\uE08C\uE08D\uE08E\uE08F"+
- "\uE090\uE091\uE092\uE093\uE094\uE095\uE096\uE097"+
- "\uE098\uE099\uE09A\uE09B\uE09C\uE09D\uE09E\uE09F"+
- "\uE0A0\uE0A1\uE0A2\uE0A3\uE0A4\uE0A5\uE0A6\uE0A7"+
- "\uE0A8\uE0A9\uE0AA\uE0AB\uE0AC\uE0AD\uE0AE\uE0AF"+
- "\uE0B0\uE0B1\uE0B2\uE0B3\uE0B4\uE0B5\uE0B6\uE0B7"+
- "\uE0B8\uE0B9\uE0BA\uE0BB\u73F8\u73F9\u73FA\u73FB"+
- "\u73FC\u73FD\u73FE\u73FF\u7400\u7401\u7402\u7404"+
- "\u7407\u7408\u740B\u740C\u740D\u740E\u7411\u7412"+
- "\u7413\u7414\u7415\u7416\u7417\u7418\u7419\u741C"+
- "\u741D\u741E\u741F\u7420\u7421\u7423\u7424\u7427"+
- "\u7429\u742B\u742D\u742F\u7431\u7432\u7437\u7438"+
- "\u7439\u743A\u743B\u743D\u743E\u743F\u7440\u7442"+
- "\u7443\u7444\u7445\u7446\u7447\u7448\u7449\u744A"+
- "\u744B\u744C\u744D\uFFFD\u744E\u744F\u7450\u7451"+
- "\u7452\u7453\u7454\u7456\u7458\u745D\u7460\u7461"+
- "\u7462\u7463\u7464\u7465\u7466\u7467\u7468\u7469"+
- "\u746A\u746B\u746C\u746E\u746F\u7471\u7472\u7473"+
- "\u7474\u7475\u7478\u7479\u747A\uE0BC\uE0BD\uE0BE"+
- "\uE0BF\uE0C0\uE0C1\uE0C2\uE0C3\uE0C4\uE0C5\uE0C6"+
- "\uE0C7\uE0C8\uE0C9\uE0CA\uE0CB\uE0CC\uE0CD\uE0CE"+
- "\uE0CF\uE0D0\uE0D1\uE0D2\uE0D3\uE0D4\uE0D5\uE0D6"+
- "\uE0D7\uE0D8\uE0D9\uE0DA\uE0DB\uE0DC\uE0DD\uE0DE"+
- "\uE0DF\uE0E0\uE0E1\uE0E2\uE0E3\uE0E4\uE0E5\uE0E6"+
- "\uE0E7\uE0E8\uE0E9\uE0EA\uE0EB\uE0EC\uE0ED\uE0EE"+
- "\uE0EF\uE0F0\uE0F1\uE0F2\uE0F3\uE0F4\uE0F5\uE0F6"+
- "\uE0F7\uE0F8\uE0F9\uE0FA\uE0FB\uE0FC\uE0FD\uE0FE"+
- "\uE0FF\uE100\uE101\uE102\uE103\uE104\uE105\uE106"+
- "\uE107\uE108\uE109\uE10A\uE10B\uE10C\uE10D\uE10E"+
- "\uE10F\uE110\uE111\uE112\uE113\uE114\uE115\uE116"+
- "\uE117\uE118\uE119\u747B\u747C\u747D\u747F\u7482"+
- "\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D"+
- "\u748F\u7491\u7492\u7493\u7494\u7495\u7496\u7497"+
- "\u7498\u7499\u749A\u749B\u749D\u749F\u74A0\u74A1"+
- "\u74A2\u74A3\u74A4\u74A5\u74A6\u74AA\u74AB\u74AC"+
- "\u74AD\u74AE\u74AF\u74B0\u74B1\u74B2\u74B3\u74B4"+
- "\u74B5\u74B6\u74B7\u74B8\u74B9\u74BB\u74BC\u74BD"+
- "\u74BE\u74BF\u74C0\u74C1\u74C2\u74C3\u74C4\u74C5"+
- "\u74C6\u74C7\uFFFD\u74C8\u74C9\u74CA\u74CB\u74CC"+
- "\u74CD\u74CE\u74CF\u74D0\u74D1\u74D3\u74D4\u74D5"+
- "\u74D6\u74D7\u74D8\u74D9\u74DA\u74DB\u74DD\u74DF"+
- "\u74E1\u74E5\u74E7\u74E8\u74E9\u74EA\u74EB\u74EC"+
- "\u74ED\u74F0\u74F1\u74F2\uE11A\uE11B\uE11C\uE11D"+
- "\uE11E\uE11F\uE120\uE121\uE122\uE123\uE124\uE125"+
- "\uE126\uE127\uE128\uE129\uE12A\uE12B\uE12C\uE12D"+
- "\uE12E\uE12F\uE130\uE131\uE132\uE133\uE134\uE135"+
- "\uE136\uE137\uE138\uE139\uE13A\uE13B\uE13C\uE13D"+
- "\uE13E\uE13F\uE140\uE141\uE142\uE143\uE144\uE145"+
- "\uE146\uE147\uE148\uE149\uE14A\uE14B\uE14C\uE14D"+
- "\uE14E\uE14F\uE150\uE151\uE152\uE153\uE154\uE155"+
- "\uE156\uE157\uE158\uE159\uE15A\uE15B\uE15C\uE15D"+
- "\uE15E\uE15F\uE160\uE161\uE162\uE163\uE164\uE165"+
- "\uE166\uE167\uE168\uE169\uE16A\uE16B\uE16C\uE16D"+
- "\uE16E\uE16F\uE170\uE171\uE172\uE173\uE174\uE175"+
- "\uE176\uE177\u74F3\u74F5\u74F8\u74F9\u74FA\u74FB"+
- "\u74FC\u74FD\u74FE\u7500\u7501\u7502\u7503\u7505"+
- "\u7506\u7507\u7508\u7509\u750A\u750B\u750C\u750E"+
- "\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D"+
- "\u751E\u7520\u7521\u7522\u7523\u7524\u7526\u7527"+
- "\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F"+
- "\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A"+
- "\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557"+
- "\u7558\uFFFD\u755D\u755E\u755F\u7560\u7561\u7562"+
- "\u7563\u7564\u7567\u7568\u7569\u756B\u756C\u756D"+
- "\u756E\u756F\u7570\u7571\u7573\u7575\u7576\u7577"+
- "\u757A\u757B\u757C\u757D\u757E\u7580\u7581\u7582"+
- "\u7584\u7585\u7587\uE178\uE179\uE17A\uE17B\uE17C"+
- "\uE17D\uE17E\uE17F\uE180\uE181\uE182\uE183\uE184"+
- "\uE185\uE186\uE187\uE188\uE189\uE18A\uE18B\uE18C"+
- "\uE18D\uE18E\uE18F\uE190\uE191\uE192\uE193\uE194"+
- "\uE195\uE196\uE197\uE198\uE199\uE19A\uE19B\uE19C"+
- "\uE19D\uE19E\uE19F\uE1A0\uE1A1\uE1A2\uE1A3\uE1A4"+
- "\uE1A5\uE1A6\uE1A7\uE1A8\uE1A9\uE1AA\uE1AB\uE1AC"+
- "\uE1AD\uE1AE\uE1AF\uE1B0\uE1B1\uE1B2\uE1B3\uE1B4"+
- "\uE1B5\uE1B6\uE1B7\uE1B8\uE1B9\uE1BA\uE1BB\uE1BC"+
- "\uE1BD\uE1BE\uE1BF\uE1C0\uE1C1\uE1C2\uE1C3\uE1C4"+
- "\uE1C5\uE1C6\uE1C7\uE1C8\uE1C9\uE1CA\uE1CB\uE1CC"+
- "\uE1CD\uE1CE\uE1CF\uE1D0\uE1D1\uE1D2\uE1D3\uE1D4"+
- "\uE1D5\u7588\u7589\u758A\u758C\u758D\u758E\u7590"+
- "\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6"+
- "\u75A7\u75A8\u75A9\u75AA\u75AD\u75B6\u75B7\u75BA"+
- "\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE"+
- "\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC"+
- "\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED"+
- "\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8"+
- "\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"+
- "\uFFFD\u7608\u7609\u760B\u760D\u760E\u760F\u7611"+
- "\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E"+
- "\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631"+
- "\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641"+
- "\u7642\u7644\uE1D6\uE1D7\uE1D8\uE1D9\uE1DA\uE1DB"+
- "\uE1DC\uE1DD\uE1DE\uE1DF\uE1E0\uE1E1\uE1E2\uE1E3"+
- "\uE1E4\uE1E5\uE1E6\uE1E7\uE1E8\uE1E9\uE1EA\uE1EB"+
- "\uE1EC\uE1ED\uE1EE\uE1EF\uE1F0\uE1F1\uE1F2\uE1F3"+
- "\uE1F4\uE1F5\uE1F6\uE1F7\uE1F8\uE1F9\uE1FA\uE1FB"+
- "\uE1FC\uE1FD\uE1FE\uE1FF\uE200\uE201\uE202\uE203"+
- "\uE204\uE205\uE206\uE207\uE208\uE209\uE20A\uE20B"+
- "\uE20C\uE20D\uE20E\uE20F\uE210\uE211\uE212\uE213"+
- "\uE214\uE215\uE216\uE217\uE218\uE219\uE21A\uE21B"+
- "\uE21C\uE21D\uE21E\uE21F\uE220\uE221\uE222\uE223"+
- "\uE224\uE225\uE226\uE227\uE228\uE229\uE22A\uE22B"+
- "\uE22C\uE22D\uE22E\uE22F\uE230\uE231\uE232\uE233";
-
- private final static String innerIndex3=
- "\u7645\u7646\u7647\u7648\u7649\u764A\u764B\u764E"+
- "\u764F\u7650\u7651\u7652\u7653\u7655\u7657\u7658"+
- "\u7659\u765A\u765B\u765D\u765F\u7660\u7661\u7662"+
- "\u7664\u7665\u7666\u7667\u7668\u7669\u766A\u766C"+
- "\u766D\u766E\u7670\u7671\u7672\u7673\u7674\u7675"+
- "\u7676\u7677\u7679\u767A\u767C\u767F\u7680\u7681"+
- "\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690"+
- "\u7692\u7694\u7695\u7697\u7698\u769A\u769B\uFFFD"+
- "\u769C\u769D\u769E\u769F\u76A0\u76A1\u76A2\u76A3"+
- "\u76A5\u76A6\u76A7\u76A8\u76A9\u76AA\u76AB\u76AC"+
- "\u76AD\u76AF\u76B0\u76B3\u76B5\u76B6\u76B7\u76B8"+
- "\u76B9\u76BA\u76BB\u76BC\u76BD\u76BE\u76C0\u76C1"+
- "\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0"+
- "\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698"+
- "\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA"+
- "\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1"+
- "\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252"+
- "\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB"+
- "\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D"+
- "\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591"+
- "\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E"+
- "\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E"+
- "\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551"+
- "\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265\u76C4"+
- "\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA"+
- "\u76DC\u76DD\u76DE\u76E0\u76E1\u76E2\u76E3\u76E4"+
- "\u76E6\u76E7\u76E8\u76E9\u76EA\u76EB\u76EC\u76ED"+
- "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD"+
- "\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C"+
- "\u770E\u770F\u7710\u7711\u7712\u7713\u7714\u7715"+
- "\u7716\u7717\u7718\u771B\u771C\u771D\u771E\u7721"+
- "\u7723\u7724\u7725\u7727\u772A\u772B\uFFFD\u772C"+
- "\u772E\u7730\u7731\u7732\u7733\u7734\u7739\u773B"+
- "\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748"+
- "\u7749\u774A\u774B\u774C\u774D\u774E\u774F\u7752"+
- "\u7753\u7754\u7755\u7756\u7757\u7758\u7759\u775C"+
- "\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5"+
- "\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351"+
- "\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907"+
- "\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29"+
- "\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4"+
- "\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9"+
- "\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5"+
- "\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16"+
- "\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB"+
- "\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B"+
- "\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175"+
- "\u51B0\u67C4\u4E19\u79C9\u997C\u70B3\u775D\u775E"+
- "\u775F\u7760\u7764\u7767\u7769\u776A\u776D\u776E"+
- "\u776F\u7770\u7771\u7772\u7773\u7774\u7775\u7776"+
- "\u7777\u7778\u777A\u777B\u777C\u7781\u7782\u7783"+
- "\u7786\u7787\u7788\u7789\u778A\u778B\u778F\u7790"+
- "\u7793\u7794\u7795\u7796\u7797\u7798\u7799\u779A"+
- "\u779B\u779C\u779D\u779E\u77A1\u77A3\u77A4\u77A6"+
- "\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4"+
- "\u77B6\u77B7\u77B8\u77B9\u77BA\uFFFD\u77BC\u77BE"+
- "\u77C0\u77C1\u77C2\u77C3\u77C4\u77C5\u77C6\u77C7"+
- "\u77C8\u77C9\u77CA\u77CB\u77CC\u77CE\u77CF\u77D0"+
- "\u77D1\u77D2\u77D3\u77D4\u77D5\u77D6\u77D8\u77D9"+
- "\u77DA\u77DD\u77DE\u77DF\u77E0\u77E1\u77E4\u75C5"+
- "\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A"+
- "\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116"+
- "\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865"+
- "\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6"+
- "\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7"+
- "\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED"+
- "\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD"+
- "\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C"+
- "\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5"+
- "\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4"+
- "\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2"+
- "\u4EA7\u9610\u98A4\u660C\u7316\u77E6\u77E8\u77EA"+
- "\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9"+
- "\u77FA\u77FB\u77FC\u7803\u7804\u7805\u7806\u7807"+
- "\u7808\u780A\u780B\u780E\u780F\u7810\u7813\u7815"+
- "\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828"+
- "\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835"+
- "\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846"+
- "\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853"+
- "\u7854\u7858\u7859\u785A\uFFFD\u785B\u785C\u785E"+
- "\u785F\u7860\u7861\u7862\u7863\u7864\u7865\u7866"+
- "\u7867\u7868\u7869\u786F\u7870\u7871\u7872\u7873"+
- "\u7874\u7875\u7876\u7878\u7879\u787A\u787B\u787D"+
- "\u787E\u787F\u7880\u7881\u7882\u7883\u573A\u5C1D"+
- "\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531"+
- "\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2"+
- "\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88"+
- "\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648"+
- "\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448"+
- "\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B"+
- "\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B"+
- "\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5"+
- "\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C"+
- "\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785"+
- "\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504"+
- "\u96CF\u6EC1\u9664\u695A\u7884\u7885\u7886\u7888"+
- "\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896"+
- "\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8"+
- "\u78A9\u78AA\u78AB\u78AC\u78AD\u78AE\u78AF\u78B5"+
- "\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF"+
- "\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC"+
- "\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7"+
- "\u78D8\u78DA\u78DB\u78DC\u78DD\u78DE\u78DF\u78E0"+
- "\u78E1\u78E2\u78E3\uFFFD\u78E4\u78E5\u78E6\u78E7"+
- "\u78E9\u78EA\u78EB\u78ED\u78EE\u78EF\u78F0\u78F1"+
- "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB\u78FC\u78FD"+
- "\u78FE\u78FF\u7900\u7902\u7903\u7904\u7906\u7907"+
- "\u7908\u7909\u790A\u790B\u790C\u7840\u50A8\u77D7"+
- "\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20"+
- "\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF"+
- "\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F"+
- "\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5"+
- "\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64"+
- "\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE"+
- "\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1"+
- "\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC"+
- "\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA"+
- "\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927"+
- "\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37"+
- "\u888B\u5F85\u902E\u790D\u790E\u790F\u7910\u7911"+
- "\u7912\u7914\u7915\u7916\u7917\u7918\u7919\u791A"+
- "\u791B\u791C\u791D\u791F\u7920\u7921\u7922\u7923"+
- "\u7925\u7926\u7927\u7928\u7929\u792A\u792B\u792C"+
- "\u792D\u792E\u792F\u7930\u7931\u7932\u7933\u7935"+
- "\u7936\u7937\u7938\u7939\u793D\u793F\u7942\u7943"+
- "\u7944\u7945\u7947\u794A\u794B\u794C\u794D\u794E"+
- "\u794F\u7950\u7951\u7952\u7954\u7955\u7958\u7959"+
- "\u7961\u7963\uFFFD\u7964\u7966\u7969\u796A\u796B"+
- "\u796C\u796E\u7970\u7971\u7972\u7973\u7974\u7975"+
- "\u7976\u7979\u797B\u797C\u797D\u797E\u797F\u7982"+
- "\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D"+
- "\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39"+
- "\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE"+
- "\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361"+
- "\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC"+
- "\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684"+
- "\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824"+
- "\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF"+
- "\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F"+
- "\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178"+
- "\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960"+
- "\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389"+
- "\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED"+
- "\u8C0D\u53E0\u7993\u7994\u7995\u7996\u7997\u7998"+
- "\u7999\u799B\u799C\u799D\u799E\u799F\u79A0\u79A1"+
- "\u79A2\u79A3\u79A4\u79A5\u79A6\u79A8\u79A9\u79AA"+
- "\u79AB\u79AC\u79AD\u79AE\u79AF\u79B0\u79B1\u79B2"+
- "\u79B4\u79B5\u79B6\u79B7\u79B8\u79BC\u79BF\u79C2"+
- "\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF"+
- "\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9\u79DA\u79DB"+
- "\u79DC\u79DD\u79DE\u79E0\u79E1\u79E2\u79E5\u79E8"+
- "\u79EA\uFFFD\u79EC\u79EE\u79F1\u79F2\u79F3\u79F4"+
- "\u79F5\u79F6\u79F7\u79F9\u79FA\u79FC\u79FE\u79FF"+
- "\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C"+
- "\u7A0F\u7A10\u7A11\u7A12\u7A13\u7A15\u7A16\u7A18"+
- "\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876"+
- "\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463"+
- "\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C"+
- "\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763"+
- "\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C"+
- "\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B"+
- "\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9"+
- "\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041"+
- "\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA"+
- "\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4"+
- "\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102"+
- "\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31"+
- "\u4E8C\u7A1D\u7A1F\u7A21\u7A22\u7A24\u7A25\u7A26"+
- "\u7A27\u7A28\u7A29\u7A2A\u7A2B\u7A2C\u7A2D\u7A2E"+
- "\u7A2F\u7A30\u7A31\u7A32\u7A34\u7A35\u7A36\u7A38"+
- "\u7A3A\u7A3E\u7A40\u7A41\u7A42\u7A43\u7A44\u7A45"+
- "\u7A47\u7A48\u7A49\u7A4A\u7A4B\u7A4C\u7A4D\u7A4E"+
- "\u7A4F\u7A50\u7A52\u7A53\u7A54\u7A55\u7A56\u7A58"+
- "\u7A59\u7A5A\u7A5B\u7A5C\u7A5D\u7A5E\u7A5F\u7A60"+
- "\u7A61\u7A62\u7A63\u7A64\u7A65\u7A66\u7A67\u7A68"+
- "\uFFFD\u7A69\u7A6A\u7A6B\u7A6C\u7A6D\u7A6E\u7A6F"+
- "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E"+
- "\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E"+
- "\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E"+
- "\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F"+
- "\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A"+
- "\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303"+
- "\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA"+
- "\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2"+
- "\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA"+
- "\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206"+
- "\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF"+
- "\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B"+
- "\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949"+
- "\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276"+
- "\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"+
- "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE\u7AAF"+
- "\u7AB0\u7AB1\u7AB2\u7AB4\u7AB5\u7AB6\u7AB7\u7AB8"+
- "\u7AB9\u7ABA\u7ABB\u7ABC\u7ABD\u7ABE\u7AC0\u7AC1"+
- "\u7AC2\u7AC3\u7AC4\u7AC5\u7AC6\u7AC7\u7AC8\u7AC9"+
- "\u7ACA\u7ACC\u7ACD\u7ACE\u7ACF\u7AD0\u7AD1\u7AD2"+
- "\u7AD3\u7AD4\u7AD5\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC"+
- "\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7\u7AE8\u7AE9\u7AEA"+
- "\u7AEB\u7AEC\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3\uFFFD"+
- "\u7AF4\u7AF5\u7AF6\u7AF7\u7AF8\u7AFB\u7AFC\u7AFE"+
- "\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D"+
- "\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A"+
- "\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29"+
- "\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A"+
- "\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150"+
- "\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C"+
- "\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A"+
- "\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6"+
- "\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76"+
- "\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38"+
- "\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8"+
- "\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5"+
- "\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769"+
- "\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404"+
- "\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9\u7B2F"+
- "\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B"+
- "\u7B3D\u7B3F\u7B40\u7B41\u7B42\u7B43\u7B44\u7B46"+
- "\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59"+
- "\u7B5C\u7B5E\u7B5F\u7B61\u7B63\u7B64\u7B65\u7B66"+
- "\u7B67\u7B68\u7B69\u7B6A\u7B6B\u7B6C\u7B6D\u7B6F"+
- "\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D"+
- "\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86\u7B87\u7B88"+
- "\u7B89\u7B8A\u7B8B\u7B8C\u7B8E\u7B8F\uFFFD\u7B91"+
- "\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E"+
- "\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0"+
- "\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9\u7BBA\u7BBB"+
- "\u7BBC\u7BBD\u7BBE\u7BBF\u7BC0\u7BC2\u7BC3\u7BC4"+
- "\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A"+
- "\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1"+
- "\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2"+
- "\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30"+
- "\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37"+
- "\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250"+
- "\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173"+
- "\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C"+
- "\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845"+
- "\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842"+
- "\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505"+
- "\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8\u7BC5\u7BC8"+
- "\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2"+
- "\u7BD4\u7BD5\u7BD6\u7BD7\u7BD8\u7BDB\u7BDC\u7BDE"+
- "\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9"+
- "\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2\u7BF3\u7BF4"+
- "\u7BF5\u7BF6\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF"+
- "\u7C00\u7C01\u7C02\u7C03\u7C04\u7C05\u7C06\u7C08"+
- "\u7C09\u7C0A\u7C0D\u7C0E\u7C10\u7C11\u7C12\u7C13"+
- "\u7C14\u7C15\u7C17\u7C18\u7C19\uFFFD\u7C1A\u7C1B"+
- "\u7C1C\u7C1D\u7C1E\u7C20\u7C21\u7C22\u7C23\u7C24"+
- "\u7C25\u7C28\u7C29\u7C2B\u7C2C\u7C2D\u7C2E\u7C2F"+
- "\u7C30\u7C31\u7C32\u7C33\u7C34\u7C35\u7C36\u7C37"+
- "\u7C39\u7C3A\u7C3B\u7C3C\u7C3D\u7C3E\u7C42\u9AB8"+
- "\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8"+
- "\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55"+
- "\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57"+
- "\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB"+
- "\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377"+
- "\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89"+
- "\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F"+
- "\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A"+
- "\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A"+
- "\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A"+
- "\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B"+
- "\u80E1\u8774\u72D0\u7CCA\u6E56\u7C43\u7C44\u7C45"+
- "\u7C46\u7C47\u7C48\u7C49\u7C4A\u7C4B\u7C4C\u7C4E"+
- "\u7C4F\u7C50\u7C51\u7C52\u7C53\u7C54\u7C55\u7C56"+
- "\u7C57\u7C58\u7C59\u7C5A\u7C5B\u7C5C\u7C5D\u7C5E"+
- "\u7C5F\u7C60\u7C61\u7C62\u7C63\u7C64\u7C65\u7C66"+
- "\u7C67\u7C68\u7C69\u7C6A\u7C6B\u7C6C\u7C6D\u7C6E"+
- "\u7C6F\u7C70\u7C71\u7C72\u7C75\u7C76\u7C77\u7C78"+
- "\u7C79\u7C7A\u7C7E\u7C7F\u7C80\u7C81\u7C82\u7C83"+
- "\u7C84\u7C85\u7C86\u7C87\uFFFD\u7C88\u7C8A\u7C8B"+
- "\u7C8C\u7C8D\u7C8E\u7C8F\u7C90\u7C93\u7C94\u7C96"+
- "\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7"+
- "\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4"+
- "\u7CB5\u7CB6\u7CB7\u7CB8\u7CBA\u7CBB\u5F27\u864E"+
- "\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E"+
- "\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A"+
- "\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13"+
- "\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6"+
- "\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687"+
- "\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070"+
- "\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094"+
- "\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9"+
- "\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42"+
- "\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216"+
- "\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A"+
- "\u7578\u7A3D\u79EF\u7B95\u7CBF\u7CC0\u7CC2\u7CC3"+
- "\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE\u7CCF\u7CD0\u7CD1"+
- "\u7CD2\u7CD3\u7CD4\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE"+
- "\u7CE1\u7CE2\u7CE3\u7CE4\u7CE5\u7CE6\u7CE7\u7CE9"+
- "\u7CEA\u7CEB\u7CEC\u7CED\u7CEE\u7CF0\u7CF1\u7CF2"+
- "\u7CF3\u7CF4\u7CF5\u7CF6\u7CF7\u7CF9\u7CFA\u7CFC"+
- "\u7CFD\u7CFE\u7CFF\u7D00\u7D01\u7D02\u7D03\u7D04"+
- "\u7D05\u7D06\u7D07\u7D08\u7D09\u7D0B\u7D0C\u7D0D"+
- "\u7D0E\u7D0F\u7D10\uFFFD\u7D11\u7D12\u7D13\u7D14"+
- "\u7D15\u7D16\u7D17\u7D18\u7D19\u7D1A\u7D1B\u7D1C"+
- "\u7D1D\u7D1E\u7D1F\u7D21\u7D23\u7D24\u7D25\u7D26"+
- "\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30\u7D31"+
- "\u7D32\u7D33\u7D34\u7D35\u7D36\u808C\u9965\u8FF9"+
- "\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781"+
- "\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72"+
- "\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF"+
- "\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E"+
- "\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993"+
- "\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0"+
- "\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7"+
- "\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A"+
- "\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327"+
- "\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED"+
- "\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1"+
- "\u952E\u7BAD\u4EF6\u7D37\u7D38\u7D39\u7D3A\u7D3B"+
- "\u7D3C\u7D3D\u7D3E\u7D3F\u7D40\u7D41\u7D42\u7D43"+
- "\u7D44\u7D45\u7D46\u7D47\u7D48\u7D49\u7D4A\u7D4B"+
- "\u7D4C\u7D4D\u7D4E\u7D4F\u7D50\u7D51\u7D52\u7D53"+
- "\u7D54\u7D55\u7D56\u7D57\u7D58\u7D59\u7D5A\u7D5B"+
- "\u7D5C\u7D5D\u7D5E\u7D5F\u7D60\u7D61\u7D62\u7D63"+
- "\u7D64\u7D65\u7D66\u7D67\u7D68\u7D69\u7D6A\u7D6B"+
- "\u7D6C\u7D6D\u7D6F\u7D70\u7D71\u7D72\u7D73\u7D74"+
- "\u7D75\u7D76\uFFFD\u7D78\u7D79\u7D7A\u7D7B\u7D7C"+
- "\u7D7D\u7D7E\u7D7F\u7D80\u7D81\u7D82\u7D83\u7D84"+
- "\u7D85\u7D86\u7D87\u7D88\u7D89\u7D8A\u7D8B\u7D8C"+
- "\u7D8D\u7D8E\u7D8F\u7D90\u7D91\u7D92\u7D93\u7D94"+
- "\u7D95\u7D96\u7D97\u7D98\u5065\u8230\u5251\u996F"+
- "\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46"+
- "\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171"+
- "\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA"+
- "\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5"+
- "\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559"+
- "\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686"+
- "\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770"+
- "\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212"+
- "\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A"+
- "\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27"+
- "\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1"+
- "\u70EC\u6D78\u7D99\u7D9A\u7D9B\u7D9C\u7D9D\u7D9E"+
- "\u7D9F\u7DA0\u7DA1\u7DA2\u7DA3\u7DA4\u7DA5\u7DA7"+
- "\u7DA8\u7DA9\u7DAA\u7DAB\u7DAC\u7DAD\u7DAF\u7DB0"+
- "\u7DB1\u7DB2\u7DB3\u7DB4\u7DB5\u7DB6\u7DB7\u7DB8"+
- "\u7DB9\u7DBA\u7DBB\u7DBC\u7DBD\u7DBE\u7DBF\u7DC0"+
- "\u7DC1\u7DC2\u7DC3\u7DC4\u7DC5\u7DC6\u7DC7\u7DC8"+
- "\u7DC9\u7DCA\u7DCB\u7DCC\u7DCD\u7DCE\u7DCF\u7DD0"+
- "\u7DD1\u7DD2\u7DD3\u7DD4\u7DD5\u7DD6\u7DD7\u7DD8"+
- "\u7DD9\uFFFD\u7DDA\u7DDB\u7DDC\u7DDD\u7DDE\u7DDF"+
- "\u7DE0\u7DE1\u7DE2\u7DE3\u7DE4\u7DE5\u7DE6\u7DE7"+
- "\u7DE8\u7DE9\u7DEA\u7DEB\u7DEC\u7DED\u7DEE\u7DEF"+
- "\u7DF0\u7DF1\u7DF2\u7DF3\u7DF4\u7DF5\u7DF6\u7DF7"+
- "\u7DF8\u7DF9\u7DFA\u5C3D\u52B2\u8346\u5162\u830E"+
- "\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF"+
- "\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C"+
- "\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98"+
- "\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D"+
- "\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31"+
- "\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA"+
- "\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E"+
- "\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7"+
- "\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377"+
- "\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9"+
- "\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B"+
- "\u5CFB\u7DFB\u7DFC\u7DFD\u7DFE\u7DFF\u7E00\u7E01"+
- "\u7E02\u7E03\u7E04\u7E05\u7E06\u7E07\u7E08\u7E09"+
- "\u7E0A\u7E0B\u7E0C\u7E0D\u7E0E\u7E0F\u7E10\u7E11"+
- "\u7E12\u7E13\u7E14\u7E15\u7E16\u7E17\u7E18\u7E19"+
- "\u7E1A\u7E1B\u7E1C\u7E1D\u7E1E\u7E1F\u7E20\u7E21"+
- "\u7E22\u7E23\u7E24\u7E25\u7E26\u7E27\u7E28\u7E29"+
- "\u7E2A\u7E2B\u7E2C\u7E2D\u7E2E\u7E2F\u7E30\u7E31"+
- "\u7E32\u7E33\u7E34\u7E35\u7E36\u7E37\u7E38\u7E39"+
- "\uFFFD\u7E3A\u7E3C\u7E3D\u7E3E\u7E3F\u7E40\u7E42"+
- "\u7E43\u7E44\u7E45\u7E46\u7E48\u7E49\u7E4A\u7E4B"+
- "\u7E4C\u7E4D\u7E4E\u7E4F\u7E50\u7E51\u7E52\u7E53"+
- "\u7E54\u7E55\u7E56\u7E57\u7E58\u7E59\u7E5A\u7E5B"+
- "\u7E5C\u7E5D\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580"+
- "\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168"+
- "\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177"+
- "\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4"+
- "\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1"+
- "\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE"+
- "\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050"+
- "\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED"+
- "\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E"+
- "\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E"+
- "\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5"+
- "\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080";
-
- private final static String innerIndex4=
- "\u7E5E\u7E5F\u7E60\u7E61\u7E62\u7E63\u7E64\u7E65"+
- "\u7E66\u7E67\u7E68\u7E69\u7E6A\u7E6B\u7E6C\u7E6D"+
- "\u7E6E\u7E6F\u7E70\u7E71\u7E72\u7E73\u7E74\u7E75"+
- "\u7E76\u7E77\u7E78\u7E79\u7E7A\u7E7B\u7E7C\u7E7D"+
- "\u7E7E\u7E7F\u7E80\u7E81\u7E83\u7E84\u7E85\u7E86"+
- "\u7E87\u7E88\u7E89\u7E8A\u7E8B\u7E8C\u7E8D\u7E8E"+
- "\u7E8F\u7E90\u7E91\u7E92\u7E93\u7E94\u7E95\u7E96"+
- "\u7E97\u7E98\u7E99\u7E9A\u7E9C\u7E9D\u7E9E\uFFFD"+
- "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9"+
- "\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B\u7F3C\u7F3D"+
- "\u7F3E\u7F3F\u7F40\u7F41\u7F43\u7F46\u7F47\u7F48"+
- "\u7F49\u7F4A\u7F4B\u7F4C\u7F4D\u7F4E\u7F4F\u7F52"+
- "\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0"+
- "\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721"+
- "\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A"+
- "\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD"+
- "\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC"+
- "\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001"+
- "\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7"+
- "\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B"+
- "\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281"+
- "\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC"+
- "\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389"+
- "\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0\u7F56"+
- "\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63\u7F64"+
- "\u7F65\u7F66\u7F67\u7F6B\u7F6C\u7F6D\u7F6F\u7F70"+
- "\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C"+
- "\u7F7D\u7F7F\u7F80\u7F82\u7F83\u7F84\u7F85\u7F86"+
- "\u7F87\u7F88\u7F89\u7F8B\u7F8D\u7F8F\u7F90\u7F91"+
- "\u7F92\u7F93\u7F95\u7F96\u7F97\u7F98\u7F99\u7F9B"+
- "\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8\u7FA9"+
- "\u7FAA\u7FAB\u7FAC\u7FAD\u7FAE\u7FB1\uFFFD\u7FB3"+
- "\u7FB4\u7FB5\u7FB6\u7FB7\u7FBA\u7FBB\u7FBE\u7FC0"+
- "\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB"+
- "\u7FCD\u7FCF\u7FD0\u7FD1\u7FD2\u7FD3\u7FD6\u7FD7"+
- "\u7FD9\u7FDA\u7FDB\u7FDC\u7FDD\u7FDE\u7FE2\u7FE3"+
- "\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9"+
- "\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F"+
- "\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE"+
- "\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E"+
- "\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5"+
- "\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217"+
- "\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716"+
- "\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE"+
- "\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC"+
- "\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409"+
- "\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3"+
- "\u516D\u9F99\u804B\u5499\u7B3C\u7ABF\u7FE4\u7FE7"+
- "\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4"+
- "\u7FF5\u7FF6\u7FF7\u7FF8\u7FF9\u7FFA\u7FFD\u7FFE"+
- "\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F"+
- "\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021"+
- "\u8023\u8024\u802B\u802C\u802D\u802E\u802F\u8030"+
- "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041"+
- "\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050"+
- "\u8051\u8053\u8055\u8056\u8057\uFFFD\u8059\u805B"+
- "\u805C\u805D\u805E\u805F\u8060\u8061\u8062\u8063"+
- "\u8064\u8065\u8066\u8067\u8068\u806B\u806C\u806D"+
- "\u806E\u806F\u8070\u8072\u8073\u8074\u8075\u8076"+
- "\u8077\u8078\u8079\u807A\u807B\u807C\u807D\u9686"+
- "\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F"+
- "\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364"+
- "\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F"+
- "\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD"+
- "\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B"+
- "\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375"+
- "\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6"+
- "\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9"+
- "\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB"+
- "\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB"+
- "\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE"+
- "\u6EE1\u8513\u66FC\u6162\u6F2B\u807E\u8081\u8082"+
- "\u8085\u8088\u808A\u808D\u808E\u808F\u8090\u8091"+
- "\u8092\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6"+
- "\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8"+
- "\u80B9\u80BB\u80C5\u80C7\u80C8\u80C9\u80CA\u80CB"+
- "\u80CF\u80D0\u80D1\u80D2\u80D3\u80D4\u80D5\u80D8"+
- "\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7"+
- "\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104"+
- "\u8105\u8107\u8108\u810B\uFFFD\u810C\u8115\u8117"+
- "\u8119\u811B\u811C\u811D\u811F\u8120\u8121\u8122"+
- "\u8123\u8124\u8125\u8126\u8127\u8128\u8129\u812A"+
- "\u812B\u812D\u812E\u8130\u8133\u8134\u8135\u8137"+
- "\u8139\u813A\u813B\u813C\u813D\u813F\u8C29\u8292"+
- "\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A"+
- "\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C"+
- "\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164"+
- "\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0"+
- "\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC"+
- "\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761"+
- "\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC"+
- "\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D"+
- "\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0"+
- "\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF"+
- "\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED"+
- "\u540D\u547D\u8C2C\u6478\u8140\u8141\u8142\u8143"+
- "\u8144\u8145\u8147\u8149\u814D\u814E\u814F\u8152"+
- "\u8156\u8157\u8158\u815B\u815C\u815D\u815E\u815F"+
- "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B"+
- "\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178"+
- "\u8181\u8183\u8184\u8185\u8186\u8187\u8189\u818B"+
- "\u818C\u818D\u818E\u8190\u8192\u8193\u8194\u8195"+
- "\u8196\u8197\u8199\u819A\u819E\u819F\u81A0\u81A1"+
- "\u81A2\u81A4\u81A5\uFFFD\u81A7\u81A9\u81AB\u81AC"+
- "\u81AD\u81AE\u81AF\u81B0\u81B1\u81B2\u81B4\u81B5"+
- "\u81B6\u81B7\u81B8\u81B9\u81BC\u81BD\u81BE\u81BF"+
- "\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD\u81CE"+
- "\u81CF\u81D0\u81D1\u81D2\u81D3\u6479\u8611\u6A21"+
- "\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8"+
- "\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0"+
- "\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55"+
- "\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF"+
- "\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43"+
- "\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320"+
- "\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9"+
- "\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60"+
- "\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE"+
- "\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F"+
- "\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0"+
- "\u72DE\u51DD\u5B81\u81D4\u81D5\u81D6\u81D7\u81D8"+
- "\u81D9\u81DA\u81DB\u81DC\u81DD\u81DE\u81DF\u81E0"+
- "\u81E1\u81E2\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB"+
- "\u81EE\u81EF\u81F0\u81F1\u81F2\u81F5\u81F6\u81F7"+
- "\u81F8\u81F9\u81FA\u81FD\u81FF\u8203\u8207\u8208"+
- "\u8209\u820A\u820B\u820E\u820F\u8211\u8213\u8215"+
- "\u8216\u8217\u8218\u8219\u821A\u821D\u8220\u8224"+
- "\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C"+
- "\u823D\u823F\uFFFD\u8240\u8241\u8242\u8243\u8245"+
- "\u8246\u8248\u824A\u824C\u824D\u824E\u8250\u8251"+
- "\u8252\u8253\u8254\u8255\u8256\u8257\u8259\u825B"+
- "\u825C\u825D\u825E\u8260\u8261\u8262\u8263\u8264"+
- "\u8265\u8266\u8267\u8269\u62E7\u6CDE\u725B\u626D"+
- "\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA"+
- "\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF"+
- "\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076"+
- "\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD"+
- "\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8"+
- "\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1"+
- "\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1"+
- "\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D"+
- "\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E"+
- "\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F"+
- "\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288"+
- "\u7435\u6BD7\u826A\u826B\u826C\u826D\u8271\u8275"+
- "\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283"+
- "\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294"+
- "\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3"+
- "\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF"+
- "\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6"+
- "\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA"+
- "\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6"+
- "\u82F8\uFFFD\u82FA\u82FC\u82FD\u82FE\u82FF\u8300"+
- "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318"+
- "\u8319\u831D\u831E\u831F\u8320\u8321\u8322\u8323"+
- "\u8324\u8325\u8326\u8329\u832A\u832E\u8330\u8332"+
- "\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339"+
- "\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97"+
- "\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891"+
- "\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73"+
- "\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46"+
- "\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6"+
- "\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E"+
- "\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A"+
- "\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB"+
- "\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948"+
- "\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951"+
- "\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB"+
- "\u6390\u833E\u833F\u8341\u8342\u8344\u8345\u8348"+
- "\u834A\u834B\u834C\u834D\u834E\u8353\u8355\u8356"+
- "\u8357\u8358\u8359\u835D\u8362\u8370\u8371\u8372"+
- "\u8373\u8374\u8375\u8376\u8379\u837A\u837E\u837F"+
- "\u8380\u8381\u8382\u8383\u8384\u8387\u8388\u838A"+
- "\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395"+
- "\u8396\u8397\u8399\u839A\u839D\u839F\u83A1\u83A2"+
- "\u83A3\u83A4\u83A5\u83A6\u83A7\u83AC\u83AD\u83AE"+
- "\uFFFD\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3"+
- "\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0"+
- "\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB"+
- "\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB"+
- "\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5"+
- "\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1"+
- "\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C"+
- "\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537"+
- "\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7"+
- "\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF"+
- "\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5"+
- "\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD"+
- "\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE"+
- "\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77"+
- "\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5"+
- "\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"+
- "\u83EE\u83EF\u83F3\u83F4\u83F5\u83F6\u83F7\u83FA"+
- "\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407"+
- "\u8408\u8409\u840A\u8410\u8412\u8413\u8414\u8415"+
- "\u8416\u8417\u8419\u841A\u841B\u841E\u841F\u8420"+
- "\u8421\u8422\u8423\u8429\u842A\u842B\u842C\u842D"+
- "\u842E\u842F\u8430\u8432\u8433\u8434\u8435\u8436"+
- "\u8437\u8439\u843A\u843B\u843E\u843F\u8440\u8441"+
- "\u8442\u8443\u8444\u8445\u8447\u8448\u8449\uFFFD"+
- "\u844A\u844B\u844C\u844D\u844E\u844F\u8450\u8452"+
- "\u8453\u8454\u8455\u8456\u8458\u845D\u845E\u845F"+
- "\u8460\u8462\u8464\u8465\u8466\u8467\u8468\u846A"+
- "\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B"+
- "\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7"+
- "\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238"+
- "\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E"+
- "\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4"+
- "\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9"+
- "\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4"+
- "\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338"+
- "\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197"+
- "\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982"+
- "\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A"+
- "\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12"+
- "\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1\u847D"+
- "\u847E\u847F\u8480\u8481\u8483\u8484\u8485\u8486"+
- "\u848A\u848D\u848F\u8490\u8491\u8492\u8493\u8494"+
- "\u8495\u8496\u8498\u849A\u849B\u849D\u849E\u849F"+
- "\u84A0\u84A2\u84A3\u84A4\u84A5\u84A6\u84A7\u84A8"+
- "\u84A9\u84AA\u84AB\u84AC\u84AD\u84AE\u84B0\u84B1"+
- "\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0"+
- "\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC"+
- "\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7\uFFFD\u84D8"+
- "\u84D9\u84DA\u84DB\u84DC\u84DE\u84E1\u84E2\u84E4"+
- "\u84E7\u84E8\u84E9\u84EA\u84EB\u84ED\u84EE\u84EF"+
- "\u84F1\u84F2\u84F3\u84F4\u84F5\u84F6\u84F7\u84F8"+
- "\u84F9\u84FA\u84FB\u84FD\u84FE\u8500\u8501\u8502"+
- "\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B"+
- "\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802"+
- "\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B"+
- "\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B"+
- "\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247"+
- "\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A"+
- "\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6"+
- "\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C"+
- "\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE"+
- "\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5"+
- "\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17"+
- "\u58F0\u751F\u7525\u7272\u5347\u7EF3\u8503\u8504"+
- "\u8505\u8506\u8507\u8508\u8509\u850A\u850B\u850D"+
- "\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518"+
- "\u8519\u851B\u851C\u851D\u851E\u8520\u8522\u8523"+
- "\u8524\u8525\u8526\u8527\u8528\u8529\u852A\u852D"+
- "\u852E\u852F\u8530\u8531\u8532\u8533\u8534\u8535"+
- "\u8536\u853E\u853F\u8540\u8541\u8542\u8544\u8545"+
- "\u8546\u8547\u854B\u854C\u854D\u854E\u854F\u8550"+
- "\u8551\u8552\u8553\u8554\u8555\uFFFD\u8557\u8558"+
- "\u855A\u855B\u855C\u855D\u855F\u8560\u8561\u8562"+
- "\u8563\u8565\u8566\u8567\u8569\u856A\u856B\u856C"+
- "\u856D\u856E\u856F\u8570\u8571\u8573\u8575\u8576"+
- "\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701"+
- "\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD"+
- "\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6"+
- "\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F"+
- "\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF"+
- "\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C"+
- "\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043"+
- "\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF"+
- "\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3"+
- "\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66"+
- "\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700"+
- "\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D"+
- "\u7AD6\u5885\u5EB6\u6570\u6F31\u8582\u8583\u8586"+
- "\u8588\u8589\u858A\u858B\u858C\u858D\u858E\u8590"+
- "\u8591\u8592\u8593\u8594\u8595\u8596\u8597\u8598"+
- "\u8599\u859A\u859D\u859E\u859F\u85A0\u85A1\u85A2"+
- "\u85A3\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD"+
- "\u85B1\u85B2\u85B3\u85B4\u85B5\u85B6\u85B8\u85BA"+
- "\u85BB\u85BC\u85BD\u85BE\u85BF\u85C0\u85C2\u85C3"+
- "\u85C4\u85C5\u85C6\u85C7\u85C8\u85CA\u85CB\u85CC"+
- "\u85CD\u85CE\u85D1\u85D2\uFFFD\u85D4\u85D6\u85D7"+
- "\u85D8\u85D9\u85DA\u85DB\u85DD\u85DE\u85DF\u85E0"+
- "\u85E1\u85E2\u85E3\u85E5\u85E6\u85E7\u85E8\u85EA"+
- "\u85EB\u85EC\u85ED\u85EE\u85EF\u85F0\u85F1\u85F2"+
- "\u85F3\u85F4\u85F5\u85F6\u85F7\u85F8\u6055\u5237"+
- "\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C"+
- "\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC"+
- "\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495"+
- "\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA"+
- "\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038"+
- "\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258"+
- "\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F"+
- "\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C"+
- "\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81"+
- "\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1"+
- "\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C"+
- "\u4ED6\u5B83\u5979\u5854\u85F9\u85FA\u85FC\u85FD"+
- "\u85FE\u8600\u8601\u8602\u8603\u8604\u8606\u8607"+
- "\u8608\u8609\u860A\u860B\u860C\u860D\u860E\u860F"+
- "\u8610\u8612\u8613\u8614\u8615\u8617\u8618\u8619"+
- "\u861A\u861B\u861C\u861D\u861E\u861F\u8620\u8621"+
- "\u8622\u8623\u8624\u8625\u8626\u8628\u862A\u862B"+
- "\u862C\u862D\u862E\u862F\u8630\u8631\u8632\u8633"+
- "\u8634\u8635\u8636\u8637\u8639\u863A\u863B\u863D"+
- "\u863E\u863F\u8640\uFFFD\u8641\u8642\u8643\u8644"+
- "\u8645\u8646\u8647\u8648\u8649\u864A\u864B\u864C"+
- "\u8652\u8653\u8655\u8656\u8657\u8658\u8659\u865B"+
- "\u865C\u865D\u865F\u8660\u8661\u8663\u8664\u8665"+
- "\u8666\u8667\u8668\u8669\u866A\u736D\u631E\u8E4B"+
- "\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A"+
- "\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B"+
- "\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892"+
- "\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802"+
- "\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F"+
- "\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003"+
- "\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC"+
- "\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44"+
- "\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49"+
- "\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146"+
- "\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16"+
- "\u5385\u542C\u70C3\u866D\u866F\u8670\u8672\u8673"+
- "\u8674\u8675\u8676\u8677\u8678\u8683\u8684\u8685"+
- "\u8686\u8687\u8688\u8689\u868E\u868F\u8690\u8691"+
- "\u8692\u8694\u8696\u8697\u8698\u8699\u869A\u869B"+
- "\u869E\u869F\u86A0\u86A1\u86A2\u86A5\u86A6\u86AB"+
- "\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB"+
- "\u86BC\u86BD\u86BE\u86BF\u86C1\u86C2\u86C3\u86C5"+
- "\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7"+
- "\u86DA\u86DC\uFFFD\u86DD\u86E0\u86E1\u86E2\u86E3"+
- "\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF"+
- "\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF"+
- "\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F"+
- "\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD"+
- "\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C"+
- "\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB"+
- "\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE"+
- "\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D"+
- "\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E"+
- "\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E"+
- "\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9"+
- "\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F"+
- "\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D"+
- "\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A"+
- "\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8"+
- "\u5984\u5A01\u8719\u871B\u871D\u871F\u8720\u8724"+
- "\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F"+
- "\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A"+
- "\u873C\u873D\u8740\u8741\u8742\u8743\u8744\u8745"+
- "\u8746\u874A\u874B\u874D\u874F\u8750\u8751\u8752"+
- "\u8754\u8755\u8756\u8758\u875A\u875B\u875C\u875D"+
- "\u875E\u875F\u8761\u8762\u8766\u8767\u8768\u8769"+
- "\u876A\u876B\u876C\u876D\u876F\u8771\u8772\u8773"+
- "\u8775\uFFFD\u8777\u8778\u8779\u877A\u877F\u8780"+
- "\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E"+
- "\u878F\u8790\u8791\u8792\u8794\u8795\u8796\u8798"+
- "\u8799\u879A\u879B\u879C\u879D\u879E\u87A0\u87A1"+
- "\u87A2\u87A3\u87A4\u5DCD\u5FAE\u5371\u97E6\u8FDD"+
- "\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7"+
- "\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A"+
- "\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13"+
- "\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB"+
- "\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE"+
- "\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1"+
- "\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B"+
- "\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94"+
- "\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE"+
- "\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199"+
- "\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521"+
- "\u727A\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0"+
- "\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB"+
- "\u87BC\u87BE\u87BF\u87C1\u87C2\u87C3\u87C4\u87C5"+
- "\u87C7\u87C8\u87C9\u87CC\u87CD\u87CE\u87CF\u87D0"+
- "\u87D4\u87D5\u87D6\u87D7\u87D8\u87D9\u87DA\u87DC"+
- "\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6"+
- "\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF\u87F0"+
- "\u87F1\u87F2\u87F3\u87F4\u87F5\u87F6\u87F7\u87F8"+
- "\uFFFD\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801"+
- "\u8802\u8804\u8805\u8806\u8807\u8808\u8809\u880B"+
- "\u880C\u880D\u880E\u880F\u8810\u8811\u8812\u8814"+
- "\u8817\u8818\u8819\u881A\u881C\u881D\u881E\u881F"+
- "\u8820\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915"+
- "\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD"+
- "\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699"+
- "\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687"+
- "\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380"+
- "\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854"+
- "\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0"+
- "\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650"+
- "\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58"+
- "\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879"+
- "\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704"+
- "\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653";
-
- private final static String innerIndex5=
- "\u8824\u8825\u8826\u8827\u8828\u8829\u882A\u882B"+
- "\u882C\u882D\u882E\u882F\u8830\u8831\u8833\u8834"+
- "\u8835\u8836\u8837\u8838\u883A\u883B\u883D\u883E"+
- "\u883F\u8841\u8842\u8843\u8846\u8847\u8848\u8849"+
- "\u884A\u884B\u884E\u884F\u8850\u8851\u8852\u8853"+
- "\u8855\u8856\u8858\u885A\u885B\u885C\u885D\u885E"+
- "\u885F\u8860\u8866\u8867\u886A\u886D\u886F\u8871"+
- "\u8873\u8874\u8875\u8876\u8878\u8879\u887A\uFFFD"+
- "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A"+
- "\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895"+
- "\u8897\u8898\u8899\u889A\u889B\u889D\u889E\u889F"+
- "\u88A0\u88A1\u88A3\u88A5\u88A6\u88A7\u88A8\u88A9"+
- "\u88AA\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548"+
- "\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A"+
- "\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9"+
- "\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C"+
- "\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F"+
- "\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2"+
- "\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6"+
- "\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E"+
- "\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C"+
- "\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157"+
- "\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA"+
- "\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384\u88AC"+
- "\u88AE\u88AF\u88B0\u88B2\u88B3\u88B4\u88B5\u88B6"+
- "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0"+
- "\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD"+
- "\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA\u88DB"+
- "\u88DC\u88DD\u88DE\u88E0\u88E1\u88E6\u88E7\u88E9"+
- "\u88EA\u88EB\u88EC\u88ED\u88EE\u88EF\u88F2\u88F5"+
- "\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901"+
- "\u8903\u8904\u8905\u8906\u8907\u8908\uFFFD\u8909"+
- "\u890B\u890C\u890D\u890E\u890F\u8911\u8914\u8915"+
- "\u8916\u8917\u8918\u891C\u891D\u891E\u891F\u8920"+
- "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C"+
- "\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937"+
- "\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74"+
- "\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB"+
- "\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5"+
- "\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259"+
- "\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6"+
- "\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814"+
- "\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF"+
- "\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5"+
- "\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A"+
- "\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F"+
- "\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B"+
- "\u6837\u6F3E\u9080\u8170\u5996\u7476\u8938\u8939"+
- "\u893A\u893B\u893C\u893D\u893E\u893F\u8940\u8942"+
- "\u8943\u8945\u8946\u8947\u8948\u8949\u894A\u894B"+
- "\u894C\u894D\u894E\u894F\u8950\u8951\u8952\u8953"+
- "\u8954\u8955\u8956\u8957\u8958\u8959\u895A\u895B"+
- "\u895C\u895D\u8960\u8961\u8962\u8963\u8964\u8965"+
- "\u8967\u8968\u8969\u896A\u896B\u896C\u896D\u896E"+
- "\u896F\u8970\u8971\u8972\u8973\u8974\u8975\u8976"+
- "\u8977\u8978\u8979\u897A\u897C\uFFFD\u897D\u897E"+
- "\u8980\u8982\u8984\u8985\u8987\u8988\u8989\u898A"+
- "\u898B\u898C\u898D\u898E\u898F\u8990\u8991\u8992"+
- "\u8993\u8994\u8995\u8996\u8997\u8998\u8999\u899A"+
- "\u899B\u899C\u899D\u899E\u899F\u89A0\u89A1\u6447"+
- "\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F"+
- "\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6"+
- "\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C"+
- "\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A"+
- "\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591"+
- "\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2"+
- "\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79"+
- "\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4"+
- "\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE"+
- "\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B"+
- "\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB"+
- "\u5BC5\u996E\u5C39\u5F15\u9690\u89A2\u89A3\u89A4"+
- "\u89A5\u89A6\u89A7\u89A8\u89A9\u89AA\u89AB\u89AC"+
- "\u89AD\u89AE\u89AF\u89B0\u89B1\u89B2\u89B3\u89B4"+
- "\u89B5\u89B6\u89B7\u89B8\u89B9\u89BA\u89BB\u89BC"+
- "\u89BD\u89BE\u89BF\u89C0\u89C3\u89CD\u89D3\u89D4"+
- "\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0"+
- "\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC"+
- "\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4\u89F5\u89F6"+
- "\u89F7\u89F8\u89F9\u89FA\uFFFD\u89FB\u89FC\u89FD"+
- "\u89FE\u89FF\u8A01\u8A02\u8A03\u8A04\u8A05\u8A06"+
- "\u8A08\u8A09\u8A0A\u8A0B\u8A0C\u8A0D\u8A0E\u8A0F"+
- "\u8A10\u8A11\u8A12\u8A13\u8A14\u8A15\u8A16\u8A17"+
- "\u8A18\u8A19\u8A1A\u8A1B\u8A1C\u8A1D\u5370\u82F1"+
- "\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425"+
- "\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C"+
- "\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD"+
- "\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7"+
- "\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE"+
- "\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3"+
- "\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E"+
- "\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E"+
- "\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8"+
- "\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF"+
- "\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108"+
- "\u6B32\u72F1\u80B2\u8A89\u8A1E\u8A1F\u8A20\u8A21"+
- "\u8A22\u8A23\u8A24\u8A25\u8A26\u8A27\u8A28\u8A29"+
- "\u8A2A\u8A2B\u8A2C\u8A2D\u8A2E\u8A2F\u8A30\u8A31"+
- "\u8A32\u8A33\u8A34\u8A35\u8A36\u8A37\u8A38\u8A39"+
- "\u8A3A\u8A3B\u8A3C\u8A3D\u8A3F\u8A40\u8A41\u8A42"+
- "\u8A43\u8A44\u8A45\u8A46\u8A47\u8A49\u8A4A\u8A4B"+
- "\u8A4C\u8A4D\u8A4E\u8A4F\u8A50\u8A51\u8A52\u8A53"+
- "\u8A54\u8A55\u8A56\u8A57\u8A58\u8A59\u8A5A\u8A5B"+
- "\u8A5C\u8A5D\u8A5E\uFFFD\u8A5F\u8A60\u8A61\u8A62"+
- "\u8A63\u8A64\u8A65\u8A66\u8A67\u8A68\u8A69\u8A6A"+
- "\u8A6B\u8A6C\u8A6D\u8A6E\u8A6F\u8A70\u8A71\u8A72"+
- "\u8A73\u8A74\u8A75\u8A76\u8A77\u8A78\u8A7A\u8A7B"+
- "\u8A7C\u8A7D\u8A7E\u8A7F\u8A80\u6D74\u5BD3\u88D5"+
- "\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3"+
- "\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F"+
- "\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0"+
- "\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6"+
- "\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0"+
- "\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742"+
- "\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1"+
- "\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF"+
- "\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A"+
- "\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD"+
- "\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3"+
- "\u6E23\u672D\u8F67\u8A81\u8A82\u8A83\u8A84\u8A85"+
- "\u8A86\u8A87\u8A88\u8A8B\u8A8C\u8A8D\u8A8E\u8A8F"+
- "\u8A90\u8A91\u8A92\u8A94\u8A95\u8A96\u8A97\u8A98"+
- "\u8A99\u8A9A\u8A9B\u8A9C\u8A9D\u8A9E\u8A9F\u8AA0"+
- "\u8AA1\u8AA2\u8AA3\u8AA4\u8AA5\u8AA6\u8AA7\u8AA8"+
- "\u8AA9\u8AAA\u8AAB\u8AAC\u8AAD\u8AAE\u8AAF\u8AB0"+
- "\u8AB1\u8AB2\u8AB3\u8AB4\u8AB5\u8AB6\u8AB7\u8AB8"+
- "\u8AB9\u8ABA\u8ABB\u8ABC\u8ABD\u8ABE\u8ABF\u8AC0"+
- "\u8AC1\u8AC2\uFFFD\u8AC3\u8AC4\u8AC5\u8AC6\u8AC7"+
- "\u8AC8\u8AC9\u8ACA\u8ACB\u8ACC\u8ACD\u8ACE\u8ACF"+
- "\u8AD0\u8AD1\u8AD2\u8AD3\u8AD4\u8AD5\u8AD6\u8AD7"+
- "\u8AD8\u8AD9\u8ADA\u8ADB\u8ADC\u8ADD\u8ADE\u8ADF"+
- "\u8AE0\u8AE1\u8AE2\u8AE3\u94E1\u95F8\u7728\u6805"+
- "\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85"+
- "\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE"+
- "\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360"+
- "\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33"+
- "\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7"+
- "\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75"+
- "\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2"+
- "\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD"+
- "\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6"+
- "\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8"+
- "\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF"+
- "\u6B63\u653F\u8AE4\u8AE5\u8AE6\u8AE7\u8AE8\u8AE9"+
- "\u8AEA\u8AEB\u8AEC\u8AED\u8AEE\u8AEF\u8AF0\u8AF1"+
- "\u8AF2\u8AF3\u8AF4\u8AF5\u8AF6\u8AF7\u8AF8\u8AF9"+
- "\u8AFA\u8AFB\u8AFC\u8AFD\u8AFE\u8AFF\u8B00\u8B01"+
- "\u8B02\u8B03\u8B04\u8B05\u8B06\u8B08\u8B09\u8B0A"+
- "\u8B0B\u8B0C\u8B0D\u8B0E\u8B0F\u8B10\u8B11\u8B12"+
- "\u8B13\u8B14\u8B15\u8B16\u8B17\u8B18\u8B19\u8B1A"+
- "\u8B1B\u8B1C\u8B1D\u8B1E\u8B1F\u8B20\u8B21\u8B22"+
- "\u8B23\uFFFD\u8B24\u8B25\u8B27\u8B28\u8B29\u8B2A"+
- "\u8B2B\u8B2C\u8B2D\u8B2E\u8B2F\u8B30\u8B31\u8B32"+
- "\u8B33\u8B34\u8B35\u8B36\u8B37\u8B38\u8B39\u8B3A"+
- "\u8B3B\u8B3C\u8B3D\u8B3E\u8B3F\u8B40\u8B41\u8B42"+
- "\u8B43\u8B44\u8B45\u5E27\u75C7\u90D1\u8BC1\u829D"+
- "\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41"+
- "\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C"+
- "\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8"+
- "\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9"+
- "\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE"+
- "\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8"+
- "\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE"+
- "\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1"+
- "\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A"+
- "\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9"+
- "\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8"+
- "\u7B51\u8B46\u8B47\u8B48\u8B49\u8B4A\u8B4B\u8B4C"+
- "\u8B4D\u8B4E\u8B4F\u8B50\u8B51\u8B52\u8B53\u8B54"+
- "\u8B55\u8B56\u8B57\u8B58\u8B59\u8B5A\u8B5B\u8B5C"+
- "\u8B5D\u8B5E\u8B5F\u8B60\u8B61\u8B62\u8B63\u8B64"+
- "\u8B65\u8B67\u8B68\u8B69\u8B6A\u8B6B\u8B6D\u8B6E"+
- "\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75\u8B76"+
- "\u8B77\u8B78\u8B79\u8B7A\u8B7B\u8B7C\u8B7D\u8B7E"+
- "\u8B7F\u8B80\u8B81\u8B82\u8B83\u8B84\u8B85\u8B86"+
- "\uFFFD\u8B87\u8B88\u8B89\u8B8A\u8B8B\u8B8C\u8B8D"+
- "\u8B8E\u8B8F\u8B90\u8B91\u8B92\u8B93\u8B94\u8B95"+
- "\u8B96\u8B97\u8B98\u8B99\u8B9A\u8B9B\u8B9C\u8B9D"+
- "\u8B9E\u8B9F\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA"+
- "\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A"+
- "\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869"+
- "\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525"+
- "\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9"+
- "\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C"+
- "\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C"+
- "\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57"+
- "\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9"+
- "\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956"+
- "\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700"+
- "\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A"+
- "\u4F5C\u5750\u5EA7\uE810\uE811\uE812\uE813\uE814"+
- "\u8C38\u8C39\u8C3A\u8C3B\u8C3C\u8C3D\u8C3E\u8C3F"+
- "\u8C40\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B"+
- "\u8C4D\u8C4E\u8C4F\u8C50\u8C51\u8C52\u8C53\u8C54"+
- "\u8C56\u8C57\u8C58\u8C59\u8C5B\u8C5C\u8C5D\u8C5E"+
- "\u8C5F\u8C60\u8C63\u8C64\u8C65\u8C66\u8C67\u8C68"+
- "\u8C69\u8C6C\u8C6D\u8C6E\u8C6F\u8C70\u8C71\u8C72"+
- "\u8C74\u8C75\u8C76\u8C77\u8C7B\u8C7C\u8C7D\u8C7E"+
- "\u8C7F\u8C80\u8C81\u8C83\u8C84\u8C86\u8C87\uFFFD"+
- "\u8C88\u8C8B\u8C8D\u8C8E\u8C8F\u8C90\u8C91\u8C92"+
- "\u8C93\u8C95\u8C96\u8C97\u8C99\u8C9A\u8C9B\u8C9C"+
- "\u8C9D\u8C9E\u8C9F\u8CA0\u8CA1\u8CA2\u8CA3\u8CA4"+
- "\u8CA5\u8CA6\u8CA7\u8CA8\u8CA9\u8CAA\u8CAB\u8CAC"+
- "\u8CAD\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15"+
- "\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F"+
- "\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4"+
- "\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C"+
- "\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D"+
- "\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5"+
- "\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208"+
- "\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261"+
- "\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182"+
- "\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB"+
- "\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27"+
- "\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D\u8CAE"+
- "\u8CAF\u8CB0\u8CB1\u8CB2\u8CB3\u8CB4\u8CB5\u8CB6"+
- "\u8CB7\u8CB8\u8CB9\u8CBA\u8CBB\u8CBC\u8CBD\u8CBE"+
- "\u8CBF\u8CC0\u8CC1\u8CC2\u8CC3\u8CC4\u8CC5\u8CC6"+
- "\u8CC7\u8CC8\u8CC9\u8CCA\u8CCB\u8CCC\u8CCD\u8CCE"+
- "\u8CCF\u8CD0\u8CD1\u8CD2\u8CD3\u8CD4\u8CD5\u8CD6"+
- "\u8CD7\u8CD8\u8CD9\u8CDA\u8CDB\u8CDC\u8CDD\u8CDE"+
- "\u8CDF\u8CE0\u8CE1\u8CE2\u8CE3\u8CE4\u8CE5\u8CE6"+
- "\u8CE7\u8CE8\u8CE9\u8CEA\u8CEB\u8CEC\uFFFD\u8CED"+
- "\u8CEE\u8CEF\u8CF0\u8CF1\u8CF2\u8CF3\u8CF4\u8CF5"+
- "\u8CF6\u8CF7\u8CF8\u8CF9\u8CFA\u8CFB\u8CFC\u8CFD"+
- "\u8CFE\u8CFF\u8D00\u8D01\u8D02\u8D03\u8D04\u8D05"+
- "\u8D06\u8D07\u8D08\u8D09\u8D0A\u8D0B\u8D0C\u8D0D"+
- "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89"+
- "\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94"+
- "\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1"+
- "\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E"+
- "\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043"+
- "\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9"+
- "\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107"+
- "\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46"+
- "\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9"+
- "\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156"+
- "\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34"+
- "\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC\u8D0E\u8D0F"+
- "\u8D10\u8D11\u8D12\u8D13\u8D14\u8D15\u8D16\u8D17"+
- "\u8D18\u8D19\u8D1A\u8D1B\u8D1C\u8D20\u8D51\u8D52"+
- "\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E"+
- "\u8D6F\u8D71\u8D72\u8D78\u8D79\u8D7A\u8D7B\u8D7C"+
- "\u8D7D\u8D7E\u8D7F\u8D80\u8D82\u8D83\u8D86\u8D87"+
- "\u8D88\u8D89\u8D8C\u8D8D\u8D8E\u8D8F\u8D90\u8D92"+
- "\u8D93\u8D95\u8D96\u8D97\u8D98\u8D99\u8D9A\u8D9B"+
- "\u8D9C\u8D9D\u8D9E\u8DA0\u8DA1\uFFFD\u8DA2\u8DA4"+
- "\u8DA5\u8DA6\u8DA7\u8DA8\u8DA9\u8DAA\u8DAB\u8DAC"+
- "\u8DAD\u8DAE\u8DAF\u8DB0\u8DB2\u8DB6\u8DB7\u8DB9"+
- "\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8"+
- "\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7"+
- "\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4"+
- "\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2"+
- "\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0"+
- "\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9"+
- "\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F"+
- "\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18"+
- "\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B"+
- "\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A"+
- "\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642"+
- "\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688"+
- "\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC"+
- "\u90A1\u90B4\u90B3\u90B6\u90BA\u8DD5\u8DD8\u8DD9"+
- "\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9"+
- "\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC"+
- "\u8DFE\u8DFF\u8E00\u8E01\u8E02\u8E03\u8E04\u8E06"+
- "\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12"+
- "\u8E13\u8E15\u8E16\u8E17\u8E18\u8E19\u8E1A\u8E1B"+
- "\u8E1C\u8E20\u8E21\u8E24\u8E25\u8E26\u8E27\u8E28"+
- "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37"+
- "\u8E38\u8E3B\u8E3C\u8E3E\uFFFD\u8E3F\u8E43\u8E45"+
- "\u8E46\u8E4C\u8E4D\u8E4E\u8E4F\u8E50\u8E53\u8E54"+
- "\u8E55\u8E56\u8E57\u8E58\u8E5A\u8E5B\u8E5C\u8E5D"+
- "\u8E5E\u8E5F\u8E60\u8E61\u8E62\u8E63\u8E64\u8E65"+
- "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0"+
- "\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6"+
- "\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104"+
- "\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146"+
- "\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0"+
- "\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC"+
- "\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1"+
- "\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733"+
- "\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785"+
- "\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773"+
- "\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793"+
- "\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4"+
- "\u57EF\u57F8\u57E4\u57DD\u8E73\u8E75\u8E77\u8E78"+
- "\u8E79\u8E7A\u8E7B\u8E7D\u8E7E\u8E80\u8E82\u8E83"+
- "\u8E84\u8E86\u8E88\u8E89\u8E8A\u8E8B\u8E8C\u8E8D"+
- "\u8E8E\u8E91\u8E92\u8E93\u8E95\u8E96\u8E97\u8E98"+
- "\u8E99\u8E9A\u8E9B\u8E9D\u8E9F\u8EA0\u8EA1\u8EA2"+
- "\u8EA3\u8EA4\u8EA5\u8EA6\u8EA7\u8EA8\u8EA9\u8EAA"+
- "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3\u8EB4\u8EB5\u8EB6"+
- "\u8EB7\u8EB8\u8EB9\u8EBB\u8EBC\u8EBD\u8EBE\u8EBF"+
- "\u8EC0\u8EC1\u8EC2\uFFFD\u8EC3\u8EC4\u8EC5\u8EC6"+
- "\u8EC7\u8EC8\u8EC9\u8ECA\u8ECB\u8ECC\u8ECD\u8ECF"+
- "\u8ED0\u8ED1\u8ED2\u8ED3\u8ED4\u8ED5\u8ED6\u8ED7"+
- "\u8ED8\u8ED9\u8EDA\u8EDB\u8EDC\u8EDD\u8EDE\u8EDF"+
- "\u8EE0\u8EE1\u8EE2\u8EE3\u8EE4\u580B\u580D\u57FD"+
- "\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C"+
- "\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279"+
- "\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291"+
- "\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA"+
- "\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9"+
- "\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1"+
- "\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2"+
- "\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314"+
- "\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308"+
- "\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F"+
- "\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A"+
- "\u8333\u8366\u8365\u8EE5\u8EE6\u8EE7\u8EE8\u8EE9"+
- "\u8EEA\u8EEB\u8EEC\u8EED\u8EEE\u8EEF\u8EF0\u8EF1"+
- "\u8EF2\u8EF3\u8EF4\u8EF5\u8EF6\u8EF7\u8EF8\u8EF9"+
- "\u8EFA\u8EFB\u8EFC\u8EFD\u8EFE\u8EFF\u8F00\u8F01"+
- "\u8F02\u8F03\u8F04\u8F05\u8F06\u8F07\u8F08\u8F09"+
- "\u8F0A\u8F0B\u8F0C\u8F0D\u8F0E\u8F0F\u8F10\u8F11"+
- "\u8F12\u8F13\u8F14\u8F15\u8F16\u8F17\u8F18\u8F19"+
- "\u8F1A\u8F1B\u8F1C\u8F1D\u8F1E\u8F1F\u8F20\u8F21"+
- "\u8F22\u8F23\uFFFD\u8F24\u8F25\u8F26\u8F27\u8F28"+
- "\u8F29\u8F2A\u8F2B\u8F2C\u8F2D\u8F2E\u8F2F\u8F30"+
- "\u8F31\u8F32\u8F33\u8F34\u8F35\u8F36\u8F37\u8F38"+
- "\u8F39\u8F3A\u8F3B\u8F3C\u8F3D\u8F3E\u8F3F\u8F40"+
- "\u8F41\u8F42\u8F43\u8F44\u8368\u831B\u8369\u836C"+
- "\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0"+
- "\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D"+
- "\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1"+
- "\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD"+
- "\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F"+
- "\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0"+
- "\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488"+
- "\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C"+
- "\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD"+
- "\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4"+
- "\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539"+
- "\u851F\u853A\u8F45\u8F46\u8F47\u8F48\u8F49\u8F4A"+
- "\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u8F50\u8F51\u8F52"+
- "\u8F53\u8F54\u8F55\u8F56\u8F57\u8F58\u8F59\u8F5A"+
- "\u8F5B\u8F5C\u8F5D\u8F5E\u8F5F\u8F60\u8F61\u8F62"+
- "\u8F63\u8F64\u8F65\u8F6A\u8F80\u8F8C\u8F92\u8F9D"+
- "\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA"+
- "\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5"+
- "\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3"+
- "\u8FC6\uFFFD\u8FC9\u8FCA\u8FCB\u8FCC\u8FCD\u8FCF"+
- "\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7"+
- "\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA"+
- "\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E"+
- "\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559"+
- "\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572"+
- "\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C"+
- "\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF"+
- "\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C"+
- "\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25"+
- "\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA"+
- "\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD"+
- "\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A"+
- "\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4"+
- "\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B"+
- "\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D"+
- "\u6496\u9019\u901C\u9023\u9024\u9025\u9027\u9028"+
- "\u9029\u902A\u902B\u902C\u9030\u9031\u9032\u9033"+
- "\u9034\u9037\u9039\u903A\u903D\u903F\u9040\u9043"+
- "\u9045\u9046\u9048\u9049\u904A\u904B\u904C\u904E"+
- "\u9054\u9055\u9056\u9059\u905A\u905C\u905D\u905E"+
- "\u905F\u9060\u9061\u9064\u9066\u9067\u9069\u906A"+
- "\u906B\u906C\u906F\u9070\u9071\u9072\u9073\u9076"+
- "\u9077\u9078\u9079\u907A\u907B\u907C\u907E\u9081"+
- "\uFFFD\u9084\u9085\u9086\u9087\u9089\u908A\u908C"+
- "\u908D\u908E\u908F\u9090\u9092\u9094\u9096\u9098"+
- "\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7"+
- "\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD"+
- "\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0"+
- "\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B"+
- "\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8"+
- "\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454"+
- "\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482"+
- "\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476"+
- "\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7"+
- "\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF"+
- "\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD"+
- "\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3"+
- "\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F"+
- "\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C";
-
- private final static String innerIndex6=
- "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD"+
- "\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE"+
- "\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC"+
- "\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7"+
- "\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103"+
- "\u9105\u9106\u9107\u9108\u9109\u910A\u910B\u910C"+
- "\u910D\u910E\u910F\u9110\u9111\u9112\u9113\u9114"+
- "\u9115\u9116\u9117\u9118\u911A\u911B\u911C\uFFFD"+
- "\u911D\u911F\u9120\u9121\u9124\u9125\u9126\u9127"+
- "\u9128\u9129\u912A\u912B\u912C\u912D\u912E\u9130"+
- "\u9132\u9133\u9134\u9135\u9136\u9137\u9138\u913A"+
- "\u913B\u913C\u913D\u913E\u913F\u9140\u9141\u9142"+
- "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530"+
- "\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581"+
- "\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE"+
- "\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB"+
- "\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2"+
- "\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E"+
- "\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627"+
- "\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659"+
- "\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B"+
- "\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1"+
- "\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C"+
- "\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C\u9145"+
- "\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158"+
- "\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168"+
- "\u916B\u916D\u9173\u917A\u917B\u917C\u9180\u9181"+
- "\u9182\u9183\u9184\u9186\u9188\u918A\u918E\u918F"+
- "\u9193\u9194\u9195\u9196\u9197\u9198\u9199\u919C"+
- "\u919D\u919E\u919F\u91A0\u91A1\u91A4\u91A5\u91A6"+
- "\u91A7\u91A8\u91A9\u91AB\u91AC\u91B0\u91B1\u91B2"+
- "\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB\uFFFD\u91BC"+
- "\u91BD\u91BE\u91BF\u91C0\u91C1\u91C2\u91C3\u91C4"+
- "\u91C5\u91C6\u91C8\u91CB\u91D0\u91D2\u91D3\u91D4"+
- "\u91D5\u91D6\u91D7\u91D8\u91D9\u91DA\u91DB\u91DD"+
- "\u91DE\u91DF\u91E0\u91E1\u91E2\u91E3\u91E4\u91E5"+
- "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A"+
- "\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A"+
- "\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3"+
- "\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02"+
- "\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B"+
- "\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D"+
- "\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D"+
- "\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89"+
- "\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC"+
- "\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3"+
- "\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2"+
- "\u72F4\u72F7\u7301\u72F3\u7303\u72FA\u91E6\u91E7"+
- "\u91E8\u91E9\u91EA\u91EB\u91EC\u91ED\u91EE\u91EF"+
- "\u91F0\u91F1\u91F2\u91F3\u91F4\u91F5\u91F6\u91F7"+
- "\u91F8\u91F9\u91FA\u91FB\u91FC\u91FD\u91FE\u91FF"+
- "\u9200\u9201\u9202\u9203\u9204\u9205\u9206\u9207"+
- "\u9208\u9209\u920A\u920B\u920C\u920D\u920E\u920F"+
- "\u9210\u9211\u9212\u9213\u9214\u9215\u9216\u9217"+
- "\u9218\u9219\u921A\u921B\u921C\u921D\u921E\u921F"+
- "\u9220\u9221\u9222\u9223\u9224\uFFFD\u9225\u9226"+
- "\u9227\u9228\u9229\u922A\u922B\u922C\u922D\u922E"+
- "\u922F\u9230\u9231\u9232\u9233\u9234\u9235\u9236"+
- "\u9237\u9238\u9239\u923A\u923B\u923C\u923D\u923E"+
- "\u923F\u9240\u9241\u9242\u9243\u9244\u9245\u72FB"+
- "\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322"+
- "\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357"+
- "\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924"+
- "\u5902\u9963\u9967\u9968\u9969\u996A\u996B\u996C"+
- "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D"+
- "\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B"+
- "\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53"+
- "\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9"+
- "\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE"+
- "\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026"+
- "\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021"+
- "\u6078\u6079\u607B\u607A\u6042\u9246\u9247\u9248"+
- "\u9249\u924A\u924B\u924C\u924D\u924E\u924F\u9250"+
- "\u9251\u9252\u9253\u9254\u9255\u9256\u9257\u9258"+
- "\u9259\u925A\u925B\u925C\u925D\u925E\u925F\u9260"+
- "\u9261\u9262\u9263\u9264\u9265\u9266\u9267\u9268"+
- "\u9269\u926A\u926B\u926C\u926D\u926E\u926F\u9270"+
- "\u9271\u9272\u9273\u9275\u9276\u9277\u9278\u9279"+
- "\u927A\u927B\u927C\u927D\u927E\u927F\u9280\u9281"+
- "\u9282\u9283\u9284\u9285\uFFFD\u9286\u9287\u9288"+
- "\u9289\u928A\u928B\u928C\u928D\u928F\u9290\u9291"+
- "\u9292\u9293\u9294\u9295\u9296\u9297\u9298\u9299"+
- "\u929A\u929B\u929C\u929D\u929E\u929F\u92A0\u92A1"+
- "\u92A2\u92A3\u92A4\u92A5\u92A6\u92A7\u606A\u607D"+
- "\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B"+
- "\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4"+
- "\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B"+
- "\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5"+
- "\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6"+
- "\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B"+
- "\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619"+
- "\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A"+
- "\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74"+
- "\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8"+
- "\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE"+
- "\u6CB1\u6CD3\u6CEF\u6CFE\u92A8\u92A9\u92AA\u92AB"+
- "\u92AC\u92AD\u92AF\u92B0\u92B1\u92B2\u92B3\u92B4"+
- "\u92B5\u92B6\u92B7\u92B8\u92B9\u92BA\u92BB\u92BC"+
- "\u92BD\u92BE\u92BF\u92C0\u92C1\u92C2\u92C3\u92C4"+
- "\u92C5\u92C6\u92C7\u92C9\u92CA\u92CB\u92CC\u92CD"+
- "\u92CE\u92CF\u92D0\u92D1\u92D2\u92D3\u92D4\u92D5"+
- "\u92D6\u92D7\u92D8\u92D9\u92DA\u92DB\u92DC\u92DD"+
- "\u92DE\u92DF\u92E0\u92E1\u92E2\u92E3\u92E4\u92E5"+
- "\u92E6\u92E7\u92E8\uFFFD\u92E9\u92EA\u92EB\u92EC"+
- "\u92ED\u92EE\u92EF\u92F0\u92F1\u92F2\u92F3\u92F4"+
- "\u92F5\u92F6\u92F7\u92F8\u92F9\u92FA\u92FB\u92FC"+
- "\u92FD\u92FE\u92FF\u9300\u9301\u9302\u9303\u9304"+
- "\u9305\u9306\u9307\u9308\u9309\u6D39\u6D27\u6D0C"+
- "\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D"+
- "\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91"+
- "\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60"+
- "\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF"+
- "\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C"+
- "\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86"+
- "\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98"+
- "\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7"+
- "\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46"+
- "\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74"+
- "\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72"+
- "\u6F7C\u6F7A\u6FD1\u930A\u930B\u930C\u930D\u930E"+
- "\u930F\u9310\u9311\u9312\u9313\u9314\u9315\u9316"+
- "\u9317\u9318\u9319\u931A\u931B\u931C\u931D\u931E"+
- "\u931F\u9320\u9321\u9322\u9323\u9324\u9325\u9326"+
- "\u9327\u9328\u9329\u932A\u932B\u932C\u932D\u932E"+
- "\u932F\u9330\u9331\u9332\u9333\u9334\u9335\u9336"+
- "\u9337\u9338\u9339\u933A\u933B\u933C\u933D\u933F"+
- "\u9340\u9341\u9342\u9343\u9344\u9345\u9346\u9347"+
- "\u9348\u9349\uFFFD\u934A\u934B\u934C\u934D\u934E"+
- "\u934F\u9350\u9351\u9352\u9353\u9354\u9355\u9356"+
- "\u9357\u9358\u9359\u935A\u935B\u935C\u935D\u935E"+
- "\u935F\u9360\u9361\u9362\u9363\u9364\u9365\u9366"+
- "\u9367\u9368\u9369\u936B\u6FC9\u6FA7\u6FB9\u6FB6"+
- "\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023"+
- "\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95"+
- "\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE"+
- "\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5"+
- "\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004"+
- "\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036"+
- "\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058"+
- "\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083"+
- "\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50"+
- "\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D"+
- "\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9"+
- "\u59AA\u59A3\u936C\u936D\u936E\u936F\u9370\u9371"+
- "\u9372\u9373\u9374\u9375\u9376\u9377\u9378\u9379"+
- "\u937A\u937B\u937C\u937D\u937E\u937F\u9380\u9381"+
- "\u9382\u9383\u9384\u9385\u9386\u9387\u9388\u9389"+
- "\u938A\u938B\u938C\u938D\u938E\u9390\u9391\u9392"+
- "\u9393\u9394\u9395\u9396\u9397\u9398\u9399\u939A"+
- "\u939B\u939C\u939D\u939E\u939F\u93A0\u93A1\u93A2"+
- "\u93A3\u93A4\u93A5\u93A6\u93A7\u93A8\u93A9\u93AA"+
- "\u93AB\uFFFD\u93AC\u93AD\u93AE\u93AF\u93B0\u93B1"+
- "\u93B2\u93B3\u93B4\u93B5\u93B6\u93B7\u93B8\u93B9"+
- "\u93BA\u93BB\u93BC\u93BD\u93BE\u93BF\u93C0\u93C1"+
- "\u93C2\u93C3\u93C4\u93C5\u93C6\u93C7\u93C8\u93C9"+
- "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4"+
- "\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD"+
- "\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34"+
- "\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C"+
- "\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE"+
- "\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1"+
- "\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32"+
- "\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51"+
- "\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D"+
- "\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93"+
- "\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2"+
- "\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8"+
- "\u7EA9\u93CE\u93CF\u93D0\u93D1\u93D2\u93D3\u93D4"+
- "\u93D5\u93D7\u93D8\u93D9\u93DA\u93DB\u93DC\u93DD"+
- "\u93DE\u93DF\u93E0\u93E1\u93E2\u93E3\u93E4\u93E5"+
- "\u93E6\u93E7\u93E8\u93E9\u93EA\u93EB\u93EC\u93ED"+
- "\u93EE\u93EF\u93F0\u93F1\u93F2\u93F3\u93F4\u93F5"+
- "\u93F6\u93F7\u93F8\u93F9\u93FA\u93FB\u93FC\u93FD"+
- "\u93FE\u93FF\u9400\u9401\u9402\u9403\u9404\u9405"+
- "\u9406\u9407\u9408\u9409\u940A\u940B\u940C\u940D"+
- "\uFFFD\u940E\u940F\u9410\u9411\u9412\u9413\u9414"+
- "\u9415\u9416\u9417\u9418\u9419\u941A\u941B\u941C"+
- "\u941D\u941E\u941F\u9420\u9421\u9422\u9423\u9424"+
- "\u9425\u9426\u9427\u9428\u9429\u942A\u942B\u942C"+
- "\u942D\u942E\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2"+
- "\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0"+
- "\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D"+
- "\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07"+
- "\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19"+
- "\u7F1C\u7F1B\u7F1F\u7F21\u7F22\u7F23\u7F24\u7F25"+
- "\u7F26\u7F27\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F\u7F30"+
- "\u7F31\u7F32\u7F33\u7F35\u5E7A\u757F\u5DDB\u753E"+
- "\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2"+
- "\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9"+
- "\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F"+
- "\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"+
- "\u942F\u9430\u9431\u9432\u9433\u9434\u9435\u9436"+
- "\u9437\u9438\u9439\u943A\u943B\u943C\u943D\u943F"+
- "\u9440\u9441\u9442\u9443\u9444\u9445\u9446\u9447"+
- "\u9448\u9449\u944A\u944B\u944C\u944D\u944E\u944F"+
- "\u9450\u9451\u9452\u9453\u9454\u9455\u9456\u9457"+
- "\u9458\u9459\u945A\u945B\u945C\u945D\u945E\u945F"+
- "\u9460\u9461\u9462\u9463\u9464\u9465\u9466\u9467"+
- "\u9468\u9469\u946A\u946C\u946D\u946E\u946F\uFFFD"+
- "\u9470\u9471\u9472\u9473\u9474\u9475\u9476\u9477"+
- "\u9478\u9479\u947A\u947B\u947C\u947D\u947E\u947F"+
- "\u9480\u9481\u9482\u9483\u9484\u9491\u9496\u9498"+
- "\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C"+
- "\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459"+
- "\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487"+
- "\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA"+
- "\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769"+
- "\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8"+
- "\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8"+
- "\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3"+
- "\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD"+
- "\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864"+
- "\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E"+
- "\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893"+
- "\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9\u9527"+
- "\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560"+
- "\u956E\u9574\u9575\u9577\u9578\u9579\u957A\u957B"+
- "\u957C\u957D\u957E\u9580\u9581\u9582\u9583\u9584"+
- "\u9585\u9586\u9587\u9588\u9589\u958A\u958B\u958C"+
- "\u958D\u958E\u958F\u9590\u9591\u9592\u9593\u9594"+
- "\u9595\u9596\u9597\u9598\u9599\u959A\u959B\u959C"+
- "\u959D\u959E\u959F\u95A0\u95A1\u95A2\u95A3\u95A4"+
- "\u95A5\u95A6\u95A7\u95A8\u95A9\u95AA\uFFFD\u95AB"+
- "\u95AC\u95AD\u95AE\u95AF\u95B0\u95B1\u95B2\u95B3"+
- "\u95B4\u95B5\u95B6\u95B7\u95B8\u95B9\u95BA\u95BB"+
- "\u95BC\u95BD\u95BE\u95BF\u95C0\u95C1\u95C2\u95C3"+
- "\u95C4\u95C5\u95C6\u95C7\u95C8\u95C9\u95CA\u95CB"+
- "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971"+
- "\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998"+
- "\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966"+
- "\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4"+
- "\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF"+
- "\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E"+
- "\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28"+
- "\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337"+
- "\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D"+
- "\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72"+
- "\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C"+
- "\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B\u95CC\u95CD"+
- "\u95CE\u95CF\u95D0\u95D1\u95D2\u95D3\u95D4\u95D5"+
- "\u95D6\u95D7\u95D8\u95D9\u95DA\u95DB\u95DC\u95DD"+
- "\u95DE\u95DF\u95E0\u95E1\u95E2\u95E3\u95E4\u95E5"+
- "\u95E6\u95E7\u95EC\u95FF\u9607\u9613\u9618\u961B"+
- "\u961E\u9620\u9623\u9624\u9625\u9626\u9627\u9628"+
- "\u9629\u962B\u962C\u962D\u962F\u9630\u9637\u9638"+
- "\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F"+
- "\u9651\u9652\u9653\u9656\u9657\uFFFD\u9658\u9659"+
- "\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666"+
- "\u966B\u966D\u966E\u966F\u9670\u9671\u9673\u9678"+
- "\u9679\u967A\u967B\u967C\u967D\u967E\u967F\u9680"+
- "\u9681\u9682\u9683\u9684\u9687\u9689\u968A\u8F8D"+
- "\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B"+
- "\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF"+
- "\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF"+
- "\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085"+
- "\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F"+
- "\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684"+
- "\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9"+
- "\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46"+
- "\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA"+
- "\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F"+
- "\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D"+
- "\u728F\u7292\u6308\u6332\u63B0\u968C\u968E\u9691"+
- "\u9692\u9693\u9695\u9696\u969A\u969B\u969D\u969E"+
- "\u969F\u96A0\u96A1\u96A2\u96A3\u96A4\u96A5\u96A6"+
- "\u96A8\u96A9\u96AA\u96AB\u96AC\u96AD\u96AE\u96AF"+
- "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB"+
- "\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1"+
- "\u96D3\u96D4\u96D6\u96D7\u96D8\u96D9\u96DA\u96DB"+
- "\u96DC\u96DD\u96DE\u96DF\u96E1\u96E2\u96E3\u96E4"+
- "\u96E5\u96E6\u96E7\u96EB\uFFFD\u96EC\u96ED\u96EE"+
- "\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB"+
- "\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B"+
- "\u970C\u9710\u9711\u9712\u9714\u9715\u9717\u9718"+
- "\u9719\u971A\u971B\u971D\u971F\u9720\u643F\u64D8"+
- "\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07"+
- "\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29"+
- "\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252"+
- "\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC"+
- "\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7"+
- "\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD"+
- "\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D"+
- "\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E"+
- "\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159"+
- "\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167"+
- "\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA"+
- "\u81CC\u6726\u81CA\u81BB\u9721\u9722\u9723\u9724"+
- "\u9725\u9726\u9727\u9728\u9729\u972B\u972C\u972E"+
- "\u972F\u9731\u9733\u9734\u9735\u9736\u9737\u973A"+
- "\u973B\u973C\u973D\u973F\u9740\u9741\u9742\u9743"+
- "\u9744\u9745\u9746\u9747\u9748\u9749\u974A\u974B"+
- "\u974C\u974D\u974E\u974F\u9750\u9751\u9754\u9755"+
- "\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764"+
- "\u9766\u9767\u9768\u976A\u976B\u976C\u976D\u976E"+
- "\u976F\u9770\u9771\uFFFD\u9772\u9775\u9777\u9778"+
- "\u9779\u977A\u977B\u977D\u977E\u977F\u9780\u9781"+
- "\u9782\u9783\u9784\u9786\u9787\u9788\u9789\u978A"+
- "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797"+
- "\u9799\u979A\u979B\u979C\u979D\u81C1\u81A6\u6B24"+
- "\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3"+
- "\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590"+
- "\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE"+
- "\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0"+
- "\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116"+
- "\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A"+
- "\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0"+
- "\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166"+
- "\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940"+
- "\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957"+
- "\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7"+
- "\u79B3\u5FD1\u5FD0\u979E\u979F\u97A1\u97A2\u97A4"+
- "\u97A5\u97A6\u97A7\u97A8\u97A9\u97AA\u97AC\u97AE"+
- "\u97B0\u97B1\u97B3\u97B5\u97B6\u97B7\u97B8\u97B9"+
- "\u97BA\u97BB\u97BC\u97BD\u97BE\u97BF\u97C0\u97C1"+
- "\u97C2\u97C3\u97C4\u97C5\u97C6\u97C7\u97C8\u97C9"+
- "\u97CA\u97CB\u97CC\u97CD\u97CE\u97CF\u97D0\u97D1"+
- "\u97D2\u97D3\u97D4\u97D5\u97D6\u97D7\u97D8\u97D9"+
- "\u97DA\u97DB\u97DC\u97DD\u97DE\u97DF\u97E0\u97E1"+
- "\u97E2\u97E3\uFFFD\u97E4\u97E5\u97E8\u97EE\u97EF"+
- "\u97F0\u97F1\u97F2\u97F4\u97F7\u97F8\u97F9\u97FA"+
- "\u97FB\u97FC\u97FD\u97FE\u97FF\u9800\u9801\u9802"+
- "\u9803\u9804\u9805\u9806\u9807\u9808\u9809\u980A"+
- "\u980B\u980C\u980D\u980E\u603C\u605D\u605A\u6067"+
- "\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9"+
- "\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6"+
- "\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811"+
- "\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F"+
- "\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856"+
- "\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893"+
- "\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5"+
- "\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913"+
- "\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1"+
- "\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719"+
- "\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743"+
- "\u775A\u7768\u980F\u9810\u9811\u9812\u9813\u9814"+
- "\u9815\u9816\u9817\u9818\u9819\u981A\u981B\u981C"+
- "\u981D\u981E\u981F\u9820\u9821\u9822\u9823\u9824"+
- "\u9825\u9826\u9827\u9828\u9829\u982A\u982B\u982C"+
- "\u982D\u982E\u982F\u9830\u9831\u9832\u9833\u9834"+
- "\u9835\u9836\u9837\u9838\u9839\u983A\u983B\u983C"+
- "\u983D\u983E\u983F\u9840\u9841\u9842\u9843\u9844"+
- "\u9845\u9846\u9847\u9848\u9849\u984A\u984B\u984C"+
- "\u984D\uFFFD\u984E\u984F\u9850\u9851\u9852\u9853"+
- "\u9854\u9855\u9856\u9857\u9858\u9859\u985A\u985B"+
- "\u985C\u985D\u985E\u985F\u9860\u9861\u9862\u9863"+
- "\u9864\u9865\u9866\u9867\u9868\u9869\u986A\u986B"+
- "\u986C\u986D\u986E\u7762\u7765\u777F\u778D\u777D"+
- "\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD"+
- "\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579"+
- "\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71"+
- "\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486"+
- "\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494"+
- "\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB"+
- "\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6"+
- "\u94B7\u94B8\u94B9\u94BA\u94BC\u94BD\u94BF\u94C4"+
- "\u94C8\u94C9\u94CA\u94CB\u94CC\u94CD\u94CE\u94D0"+
- "\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB"+
- "\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8"+
- "\u94EA\u986F\u9870\u9871\u9872\u9873\u9874\u988B"+
- "\u988E\u9892\u9895\u9899\u98A3\u98A8\u98A9\u98AA"+
- "\u98AB\u98AC\u98AD\u98AE\u98AF\u98B0\u98B1\u98B2"+
- "\u98B3\u98B4\u98B5\u98B6\u98B7\u98B8\u98B9\u98BA"+
- "\u98BB\u98BC\u98BD\u98BE\u98BF\u98C0\u98C1\u98C2"+
- "\u98C3\u98C4\u98C5\u98C6\u98C7\u98C8\u98C9\u98CA"+
- "\u98CB\u98CC\u98CD\u98CF\u98D0\u98D4\u98D6\u98D7"+
- "\u98DB\u98DC\u98DD\u98E0\u98E1\u98E2\u98E3\u98E4"+
- "\uFFFD\u98E5\u98E6\u98E9\u98EA\u98EB\u98EC\u98ED"+
- "\u98EE\u98EF\u98F0\u98F1\u98F2\u98F3\u98F4\u98F5"+
- "\u98F6\u98F7\u98F8\u98F9\u98FA\u98FB\u98FC\u98FD"+
- "\u98FE\u98FF\u9900\u9901\u9902\u9903\u9904\u9905"+
- "\u9906\u9907\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4"+
- "\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502"+
- "\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512"+
- "\u9513\u9514\u9515\u9516\u9518\u951B\u951D\u951E"+
- "\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532"+
- "\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542"+
- "\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F"+
- "\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B"+
- "\u955E\u955F\u955D\u9561\u9562\u9564\u9565\u9566"+
- "\u9567\u9568\u9569\u956A\u956B\u956C\u956F\u9571"+
- "\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED"+
- "\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14";
-
- private final static String innerIndex7=
- "\u9908\u9909\u990A\u990B\u990C\u990E\u990F\u9911"+
- "\u9912\u9913\u9914\u9915\u9916\u9917\u9918\u9919"+
- "\u991A\u991B\u991C\u991D\u991E\u991F\u9920\u9921"+
- "\u9922\u9923\u9924\u9925\u9926\u9927\u9928\u9929"+
- "\u992A\u992B\u992C\u992D\u992F\u9930\u9931\u9932"+
- "\u9933\u9934\u9935\u9936\u9937\u9938\u9939\u993A"+
- "\u993B\u993C\u993D\u993E\u993F\u9940\u9941\u9942"+
- "\u9943\u9944\u9945\u9946\u9947\u9948\u9949\uFFFD"+
- "\u994A\u994B\u994C\u994D\u994E\u994F\u9950\u9951"+
- "\u9952\u9953\u9956\u9957\u9958\u9959\u995A\u995B"+
- "\u995C\u995D\u995E\u995F\u9960\u9961\u9962\u9964"+
- "\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983"+
- "\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688"+
- "\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20"+
- "\u9E22\u9E28\u9E29\u9E2A\u9E2B\u9E2C\u9E32\u9E31"+
- "\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42"+
- "\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E"+
- "\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63"+
- "\u9E66\u9E67\u9E68\u9E69\u9E6A\u9E6B\u9E6C\u9E71"+
- "\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC"+
- "\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3"+
- "\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB"+
- "\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605"+
- "\u760C\u7617\u760A\u7625\u7618\u7615\u7619\u998C"+
- "\u998E\u999A\u999B\u999C\u999D\u999E\u999F\u99A0"+
- "\u99A1\u99A2\u99A3\u99A4\u99A6\u99A7\u99A9\u99AA"+
- "\u99AB\u99AC\u99AD\u99AE\u99AF\u99B0\u99B1\u99B2"+
- "\u99B3\u99B4\u99B5\u99B6\u99B7\u99B8\u99B9\u99BA"+
- "\u99BB\u99BC\u99BD\u99BE\u99BF\u99C0\u99C1\u99C2"+
- "\u99C3\u99C4\u99C5\u99C6\u99C7\u99C8\u99C9\u99CA"+
- "\u99CB\u99CC\u99CD\u99CE\u99CF\u99D0\u99D1\u99D2"+
- "\u99D3\u99D4\u99D5\u99D6\u99D7\u99D8\uFFFD\u99D9"+
- "\u99DA\u99DB\u99DC\u99DD\u99DE\u99DF\u99E0\u99E1"+
- "\u99E2\u99E3\u99E4\u99E5\u99E6\u99E7\u99E8\u99E9"+
- "\u99EA\u99EB\u99EC\u99ED\u99EE\u99EF\u99F0\u99F1"+
- "\u99F2\u99F3\u99F4\u99F5\u99F6\u99F7\u99F8\u99F9"+
- "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F"+
- "\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C"+
- "\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80"+
- "\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD"+
- "\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2"+
- "\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5"+
- "\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919"+
- "\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966"+
- "\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014"+
- "\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029"+
- "\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052"+
- "\u8069\u8071\u8983\u9878\u9880\u9883\u99FA\u99FB"+
- "\u99FC\u99FD\u99FE\u99FF\u9A00\u9A01\u9A02\u9A03"+
- "\u9A04\u9A05\u9A06\u9A07\u9A08\u9A09\u9A0A\u9A0B"+
- "\u9A0C\u9A0D\u9A0E\u9A0F\u9A10\u9A11\u9A12\u9A13"+
- "\u9A14\u9A15\u9A16\u9A17\u9A18\u9A19\u9A1A\u9A1B"+
- "\u9A1C\u9A1D\u9A1E\u9A1F\u9A20\u9A21\u9A22\u9A23"+
- "\u9A24\u9A25\u9A26\u9A27\u9A28\u9A29\u9A2A\u9A2B"+
- "\u9A2C\u9A2D\u9A2E\u9A2F\u9A30\u9A31\u9A32\u9A33"+
- "\u9A34\u9A35\u9A36\u9A37\u9A38\uFFFD\u9A39\u9A3A"+
- "\u9A3B\u9A3C\u9A3D\u9A3E\u9A3F\u9A40\u9A41\u9A42"+
- "\u9A43\u9A44\u9A45\u9A46\u9A47\u9A48\u9A49\u9A4A"+
- "\u9A4B\u9A4C\u9A4D\u9A4E\u9A4F\u9A50\u9A51\u9A52"+
- "\u9A53\u9A54\u9A55\u9A56\u9A57\u9A58\u9A59\u9889"+
- "\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F"+
- "\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E"+
- "\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC"+
- "\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4"+
- "\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF"+
- "\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713"+
- "\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8"+
- "\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725"+
- "\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737"+
- "\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770"+
- "\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759"+
- "\u8765\u8793\u87AF\u87A8\u87D2\u9A5A\u9A5B\u9A5C"+
- "\u9A5D\u9A5E\u9A5F\u9A60\u9A61\u9A62\u9A63\u9A64"+
- "\u9A65\u9A66\u9A67\u9A68\u9A69\u9A6A\u9A6B\u9A72"+
- "\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6"+
- "\u9AA9\u9AAA\u9AAB\u9AAC\u9AAD\u9AAE\u9AAF\u9AB2"+
- "\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF"+
- "\u9AC3\u9AC4\u9AC6\u9AC7\u9AC8\u9AC9\u9ACA\u9ACD"+
- "\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7"+
- "\u9AD9\u9ADA\u9ADB\u9ADC\uFFFD\u9ADD\u9ADE\u9AE0"+
- "\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA"+
- "\u9AEC\u9AEE\u9AF0\u9AF1\u9AF2\u9AF3\u9AF4\u9AF5"+
- "\u9AF6\u9AF7\u9AF8\u9AFA\u9AFC\u9AFD\u9AFE\u9AFF"+
- "\u9B00\u9B01\u9B02\u9B04\u9B05\u9B06\u87C6\u8788"+
- "\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5"+
- "\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB"+
- "\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B"+
- "\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210"+
- "\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B"+
- "\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20"+
- "\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45"+
- "\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72"+
- "\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8"+
- "\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1"+
- "\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE"+
- "\u7BFC\u7C0F\u7C16\u7C0B\u9B07\u9B09\u9B0A\u9B0B"+
- "\u9B0C\u9B0D\u9B0E\u9B10\u9B11\u9B12\u9B14\u9B15"+
- "\u9B16\u9B17\u9B18\u9B19\u9B1A\u9B1B\u9B1C\u9B1D"+
- "\u9B1E\u9B20\u9B21\u9B22\u9B24\u9B25\u9B26\u9B27"+
- "\u9B28\u9B29\u9B2A\u9B2B\u9B2C\u9B2D\u9B2E\u9B30"+
- "\u9B31\u9B33\u9B34\u9B35\u9B36\u9B37\u9B38\u9B39"+
- "\u9B3A\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B"+
- "\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55\u9B56\u9B57"+
- "\u9B58\u9B59\u9B5A\uFFFD\u9B5B\u9B5C\u9B5D\u9B5E"+
- "\u9B5F\u9B60\u9B61\u9B62\u9B63\u9B64\u9B65\u9B66"+
- "\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D\u9B6E"+
- "\u9B6F\u9B70\u9B71\u9B72\u9B73\u9B74\u9B75\u9B76"+
- "\u9B77\u9B78\u9B79\u9B7A\u9B7B\u7C1F\u7C2A\u7C26"+
- "\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC"+
- "\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B"+
- "\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B"+
- "\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8"+
- "\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2"+
- "\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2"+
- "\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5"+
- "\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5"+
- "\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6"+
- "\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94"+
- "\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150"+
- "\u914E\u914F\u9164\u9B7C\u9B7D\u9B7E\u9B7F\u9B80"+
- "\u9B81\u9B82\u9B83\u9B84\u9B85\u9B86\u9B87\u9B88"+
- "\u9B89\u9B8A\u9B8B\u9B8C\u9B8D\u9B8E\u9B8F\u9B90"+
- "\u9B91\u9B92\u9B93\u9B94\u9B95\u9B96\u9B97\u9B98"+
- "\u9B99\u9B9A\u9B9B\u9B9C\u9B9D\u9B9E\u9B9F\u9BA0"+
- "\u9BA1\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7\u9BA8"+
- "\u9BA9\u9BAA\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF\u9BB0"+
- "\u9BB1\u9BB2\u9BB3\u9BB4\u9BB5\u9BB6\u9BB7\u9BB8"+
- "\u9BB9\u9BBA\uFFFD\u9BBB\u9BBC\u9BBD\u9BBE\u9BBF"+
- "\u9BC0\u9BC1\u9BC2\u9BC3\u9BC4\u9BC5\u9BC6\u9BC7"+
- "\u9BC8\u9BC9\u9BCA\u9BCB\u9BCC\u9BCD\u9BCE\u9BCF"+
- "\u9BD0\u9BD1\u9BD2\u9BD3\u9BD4\u9BD5\u9BD6\u9BD7"+
- "\u9BD8\u9BD9\u9BDA\u9BDB\u9162\u9161\u9170\u9169"+
- "\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185"+
- "\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE"+
- "\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB"+
- "\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4"+
- "\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6"+
- "\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09"+
- "\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F"+
- "\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41"+
- "\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F"+
- "\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78"+
- "\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE"+
- "\u89DA\u89DC\u9BDC\u9BDD\u9BDE\u9BDF\u9BE0\u9BE1"+
- "\u9BE2\u9BE3\u9BE4\u9BE5\u9BE6\u9BE7\u9BE8\u9BE9"+
- "\u9BEA\u9BEB\u9BEC\u9BED\u9BEE\u9BEF\u9BF0\u9BF1"+
- "\u9BF2\u9BF3\u9BF4\u9BF5\u9BF6\u9BF7\u9BF8\u9BF9"+
- "\u9BFA\u9BFB\u9BFC\u9BFD\u9BFE\u9BFF\u9C00\u9C01"+
- "\u9C02\u9C03\u9C04\u9C05\u9C06\u9C07\u9C08\u9C09"+
- "\u9C0A\u9C0B\u9C0C\u9C0D\u9C0E\u9C0F\u9C10\u9C11"+
- "\u9C12\u9C13\u9C14\u9C15\u9C16\u9C17\u9C18\u9C19"+
- "\u9C1A\uFFFD\u9C1B\u9C1C\u9C1D\u9C1E\u9C1F\u9C20"+
- "\u9C21\u9C22\u9C23\u9C24\u9C25\u9C26\u9C27\u9C28"+
- "\u9C29\u9C2A\u9C2B\u9C2C\u9C2D\u9C2E\u9C2F\u9C30"+
- "\u9C31\u9C32\u9C33\u9C34\u9C35\u9C36\u9C37\u9C38"+
- "\u9C39\u9C3A\u9C3B\u89E5\u89EB\u89EF\u8A3E\u8B26"+
- "\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F"+
- "\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85"+
- "\u9F86\u9F87\u9F88\u9F89\u9F8A\u9F8C\u9EFE\u9F0B"+
- "\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0"+
- "\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E"+
- "\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23"+
- "\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A"+
- "\u9C9B\u9C9E\u9C9F\u9CA0\u9CA1\u9CA2\u9CA3\u9CA5"+
- "\u9CA6\u9CA7\u9CA8\u9CA9\u9CAB\u9CAD\u9CAE\u9CB0"+
- "\u9CB1\u9CB2\u9CB3\u9CB4\u9CB5\u9CB6\u9CB7\u9CBA"+
- "\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA"+
- "\u9CCB\u9C3C\u9C3D\u9C3E\u9C3F\u9C40\u9C41\u9C42"+
- "\u9C43\u9C44\u9C45\u9C46\u9C47\u9C48\u9C49\u9C4A"+
- "\u9C4B\u9C4C\u9C4D\u9C4E\u9C4F\u9C50\u9C51\u9C52"+
- "\u9C53\u9C54\u9C55\u9C56\u9C57\u9C58\u9C59\u9C5A"+
- "\u9C5B\u9C5C\u9C5D\u9C5E\u9C5F\u9C60\u9C61\u9C62"+
- "\u9C63\u9C64\u9C65\u9C66\u9C67\u9C68\u9C69\u9C6A"+
- "\u9C6B\u9C6C\u9C6D\u9C6E\u9C6F\u9C70\u9C71\u9C72"+
- "\u9C73\u9C74\u9C75\u9C76\u9C77\u9C78\u9C79\u9C7A"+
- "\uFFFD\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89"+
- "\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99"+
- "\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE\u9CBF\u9CC0"+
- "\u9CC1\u9CC2\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB"+
- "\u9CE0\u9CE1\u9CCC\u9CCD\u9CCE\u9CCF\u9CD0\u9CD3"+
- "\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF"+
- "\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB"+
- "\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6"+
- "\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC"+
- "\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51"+
- "\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6"+
- "\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13"+
- "\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88"+
- "\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD"+
- "\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF"+
- "\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"+
- "\u9CE3\u9CE4\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
- "\u9CEB\u9CEC\u9CED\u9CEE\u9CEF\u9CF0\u9CF1\u9CF2"+
- "\u9CF3\u9CF4\u9CF5\u9CF6\u9CF7\u9CF8\u9CF9\u9CFA"+
- "\u9CFB\u9CFC\u9CFD\u9CFE\u9CFF\u9D00\u9D01\u9D02"+
- "\u9D03\u9D04\u9D05\u9D06\u9D07\u9D08\u9D09\u9D0A"+
- "\u9D0B\u9D0C\u9D0D\u9D0E\u9D0F\u9D10\u9D11\u9D12"+
- "\u9D13\u9D14\u9D15\u9D16\u9D17\u9D18\u9D19\u9D1A"+
- "\u9D1B\u9D1C\u9D1D\u9D1E\u9D1F\u9D20\u9D21\uFFFD"+
- "\u9D22\u9D23\u9D24\u9D25\u9D26\u9D27\u9D28\u9D29"+
- "\u9D2A\u9D2B\u9D2C\u9D2D\u9D2E\u9D2F\u9D30\u9D31"+
- "\u9D32\u9D33\u9D34\u9D35\u9D36\u9D37\u9D38\u9D39"+
- "\u9D3A\u9D3B\u9D3C\u9D3D\u9D3E\u9D3F\u9D40\u9D41"+
- "\u9D42\uE234\uE235\uE236\uE237\uE238\uE239\uE23A"+
- "\uE23B\uE23C\uE23D\uE23E\uE23F\uE240\uE241\uE242"+
- "\uE243\uE244\uE245\uE246\uE247\uE248\uE249\uE24A"+
- "\uE24B\uE24C\uE24D\uE24E\uE24F\uE250\uE251\uE252"+
- "\uE253\uE254\uE255\uE256\uE257\uE258\uE259\uE25A"+
- "\uE25B\uE25C\uE25D\uE25E\uE25F\uE260\uE261\uE262"+
- "\uE263\uE264\uE265\uE266\uE267\uE268\uE269\uE26A"+
- "\uE26B\uE26C\uE26D\uE26E\uE26F\uE270\uE271\uE272"+
- "\uE273\uE274\uE275\uE276\uE277\uE278\uE279\uE27A"+
- "\uE27B\uE27C\uE27D\uE27E\uE27F\uE280\uE281\uE282"+
- "\uE283\uE284\uE285\uE286\uE287\uE288\uE289\uE28A"+
- "\uE28B\uE28C\uE28D\uE28E\uE28F\uE290\uE291\u9D43"+
- "\u9D44\u9D45\u9D46\u9D47\u9D48\u9D49\u9D4A\u9D4B"+
- "\u9D4C\u9D4D\u9D4E\u9D4F\u9D50\u9D51\u9D52\u9D53"+
- "\u9D54\u9D55\u9D56\u9D57\u9D58\u9D59\u9D5A\u9D5B"+
- "\u9D5C\u9D5D\u9D5E\u9D5F\u9D60\u9D61\u9D62\u9D63"+
- "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
- "\u9D6C\u9D6D\u9D6E\u9D6F\u9D70\u9D71\u9D72\u9D73"+
- "\u9D74\u9D75\u9D76\u9D77\u9D78\u9D79\u9D7A\u9D7B"+
- "\u9D7C\u9D7D\u9D7E\u9D7F\u9D80\u9D81\uFFFD\u9D82"+
- "\u9D83\u9D84\u9D85\u9D86\u9D87\u9D88\u9D89\u9D8A"+
- "\u9D8B\u9D8C\u9D8D\u9D8E\u9D8F\u9D90\u9D91\u9D92"+
- "\u9D93\u9D94\u9D95\u9D96\u9D97\u9D98\u9D99\u9D9A"+
- "\u9D9B\u9D9C\u9D9D\u9D9E\u9D9F\u9DA0\u9DA1\u9DA2"+
- "\uE292\uE293\uE294\uE295\uE296\uE297\uE298\uE299"+
- "\uE29A\uE29B\uE29C\uE29D\uE29E\uE29F\uE2A0\uE2A1"+
- "\uE2A2\uE2A3\uE2A4\uE2A5\uE2A6\uE2A7\uE2A8\uE2A9"+
- "\uE2AA\uE2AB\uE2AC\uE2AD\uE2AE\uE2AF\uE2B0\uE2B1"+
- "\uE2B2\uE2B3\uE2B4\uE2B5\uE2B6\uE2B7\uE2B8\uE2B9"+
- "\uE2BA\uE2BB\uE2BC\uE2BD\uE2BE\uE2BF\uE2C0\uE2C1"+
- "\uE2C2\uE2C3\uE2C4\uE2C5\uE2C6\uE2C7\uE2C8\uE2C9"+
- "\uE2CA\uE2CB\uE2CC\uE2CD\uE2CE\uE2CF\uE2D0\uE2D1"+
- "\uE2D2\uE2D3\uE2D4\uE2D5\uE2D6\uE2D7\uE2D8\uE2D9"+
- "\uE2DA\uE2DB\uE2DC\uE2DD\uE2DE\uE2DF\uE2E0\uE2E1"+
- "\uE2E2\uE2E3\uE2E4\uE2E5\uE2E6\uE2E7\uE2E8\uE2E9"+
- "\uE2EA\uE2EB\uE2EC\uE2ED\uE2EE\uE2EF\u9DA3\u9DA4"+
- "\u9DA5\u9DA6\u9DA7\u9DA8\u9DA9\u9DAA\u9DAB\u9DAC"+
- "\u9DAD\u9DAE\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4"+
- "\u9DB5\u9DB6\u9DB7\u9DB8\u9DB9\u9DBA\u9DBB\u9DBC"+
- "\u9DBD\u9DBE\u9DBF\u9DC0\u9DC1\u9DC2\u9DC3\u9DC4"+
- "\u9DC5\u9DC6\u9DC7\u9DC8\u9DC9\u9DCA\u9DCB\u9DCC"+
- "\u9DCD\u9DCE\u9DCF\u9DD0\u9DD1\u9DD2\u9DD3\u9DD4"+
- "\u9DD5\u9DD6\u9DD7\u9DD8\u9DD9\u9DDA\u9DDB\u9DDC"+
- "\u9DDD\u9DDE\u9DDF\u9DE0\u9DE1\uFFFD\u9DE2\u9DE3"+
- "\u9DE4\u9DE5\u9DE6\u9DE7\u9DE8\u9DE9\u9DEA\u9DEB"+
- "\u9DEC\u9DED\u9DEE\u9DEF\u9DF0\u9DF1\u9DF2\u9DF3"+
- "\u9DF4\u9DF5\u9DF6\u9DF7\u9DF8\u9DF9\u9DFA\u9DFB"+
- "\u9DFC\u9DFD\u9DFE\u9DFF\u9E00\u9E01\u9E02\uE2F0"+
- "\uE2F1\uE2F2\uE2F3\uE2F4\uE2F5\uE2F6\uE2F7\uE2F8"+
- "\uE2F9\uE2FA\uE2FB\uE2FC\uE2FD\uE2FE\uE2FF\uE300"+
- "\uE301\uE302\uE303\uE304\uE305\uE306\uE307\uE308"+
- "\uE309\uE30A\uE30B\uE30C\uE30D\uE30E\uE30F\uE310"+
- "\uE311\uE312\uE313\uE314\uE315\uE316\uE317\uE318"+
- "\uE319\uE31A\uE31B\uE31C\uE31D\uE31E\uE31F\uE320"+
- "\uE321\uE322\uE323\uE324\uE325\uE326\uE327\uE328"+
- "\uE329\uE32A\uE32B\uE32C\uE32D\uE32E\uE32F\uE330"+
- "\uE331\uE332\uE333\uE334\uE335\uE336\uE337\uE338"+
- "\uE339\uE33A\uE33B\uE33C\uE33D\uE33E\uE33F\uE340"+
- "\uE341\uE342\uE343\uE344\uE345\uE346\uE347\uE348"+
- "\uE349\uE34A\uE34B\uE34C\uE34D\u9E03\u9E04\u9E05"+
- "\u9E06\u9E07\u9E08\u9E09\u9E0A\u9E0B\u9E0C\u9E0D"+
- "\u9E0E\u9E0F\u9E10\u9E11\u9E12\u9E13\u9E14\u9E15"+
- "\u9E16\u9E17\u9E18\u9E19\u9E1A\u9E1B\u9E1C\u9E1D"+
- "\u9E1E\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C"+
- "\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59"+
- "\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F"+
- "\u9E72\u9E74\u9E75\u9E76\u9E77\u9E78\u9E79\u9E7A"+
- "\u9E7B\u9E7C\u9E7D\u9E80\uFFFD\u9E81\u9E83\u9E84"+
- "\u9E85\u9E86\u9E89\u9E8A\u9E8C\u9E8D\u9E8E\u9E8F"+
- "\u9E90\u9E91\u9E94\u9E95\u9E96\u9E97\u9E98\u9E99"+
- "\u9E9A\u9E9B\u9E9C\u9E9E\u9EA0\u9EA1\u9EA2\u9EA3"+
- "\u9EA4\u9EA5\u9EA7\u9EA8\u9EA9\u9EAA\uE34E\uE34F"+
- "\uE350\uE351\uE352\uE353\uE354\uE355\uE356\uE357"+
- "\uE358\uE359\uE35A\uE35B\uE35C\uE35D\uE35E\uE35F"+
- "\uE360\uE361\uE362\uE363\uE364\uE365\uE366\uE367"+
- "\uE368\uE369\uE36A\uE36B\uE36C\uE36D\uE36E\uE36F"+
- "\uE370\uE371\uE372\uE373\uE374\uE375\uE376\uE377"+
- "\uE378\uE379\uE37A\uE37B\uE37C\uE37D\uE37E\uE37F"+
- "\uE380\uE381\uE382\uE383\uE384\uE385\uE386\uE387"+
- "\uE388\uE389\uE38A\uE38B\uE38C\uE38D\uE38E\uE38F"+
- "\uE390\uE391\uE392\uE393\uE394\uE395\uE396\uE397"+
- "\uE398\uE399\uE39A\uE39B\uE39C\uE39D\uE39E\uE39F"+
- "\uE3A0\uE3A1\uE3A2\uE3A3\uE3A4\uE3A5\uE3A6\uE3A7"+
- "\uE3A8\uE3A9\uE3AA\uE3AB\u9EAB\u9EAC\u9EAD\u9EAE"+
- "\u9EAF\u9EB0\u9EB1\u9EB2\u9EB3\u9EB5\u9EB6\u9EB7"+
- "\u9EB9\u9EBA\u9EBC\u9EBF\u9EC0\u9EC1\u9EC2\u9EC3"+
- "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0"+
- "\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE"+
- "\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED"+
- "\u9EEE\u9EF0\u9EF1\u9EF2\u9EF3\u9EF4\u9EF5\u9EF6"+
- "\u9EF7\u9EF8\u9EFA\u9EFD\u9EFF\u9F00\u9F01\u9F02"+
- "\u9F03\u9F04\u9F05\uFFFD\u9F06\u9F07\u9F08\u9F09"+
- "\u9F0A\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16"+
- "\u9F18\u9F1A\u9F1B\u9F1C\u9F1D\u9F1E\u9F1F\u9F21"+
- "\u9F23\u9F24\u9F25\u9F26\u9F27\u9F28\u9F29\u9F2A"+
- "\u9F2B\u9F2D\u9F2E\u9F30\u9F31\uE3AC\uE3AD\uE3AE"+
- "\uE3AF\uE3B0\uE3B1\uE3B2\uE3B3\uE3B4\uE3B5\uE3B6"+
- "\uE3B7\uE3B8\uE3B9\uE3BA\uE3BB\uE3BC\uE3BD\uE3BE"+
- "\uE3BF\uE3C0\uE3C1\uE3C2\uE3C3\uE3C4\uE3C5\uE3C6"+
- "\uE3C7\uE3C8\uE3C9\uE3CA\uE3CB\uE3CC\uE3CD\uE3CE"+
- "\uE3CF\uE3D0\uE3D1\uE3D2\uE3D3\uE3D4\uE3D5\uE3D6"+
- "\uE3D7\uE3D8\uE3D9\uE3DA\uE3DB\uE3DC\uE3DD\uE3DE"+
- "\uE3DF\uE3E0\uE3E1\uE3E2\uE3E3\uE3E4\uE3E5\uE3E6"+
- "\uE3E7\uE3E8\uE3E9\uE3EA\uE3EB\uE3EC\uE3ED\uE3EE"+
- "\uE3EF\uE3F0\uE3F1\uE3F2\uE3F3\uE3F4\uE3F5\uE3F6"+
- "\uE3F7\uE3F8\uE3F9\uE3FA\uE3FB\uE3FC\uE3FD\uE3FE"+
- "\uE3FF\uE400\uE401\uE402\uE403\uE404\uE405\uE406"+
- "\uE407\uE408\uE409\u9F32\u9F33\u9F34\u9F35\u9F36"+
- "\u9F38\u9F3A\u9F3C\u9F3F\u9F40\u9F41\u9F42\u9F43"+
- "\u9F45\u9F46\u9F47\u9F48\u9F49\u9F4A\u9F4B\u9F4C"+
- "\u9F4D\u9F4E\u9F4F\u9F52\u9F53\u9F54\u9F55\u9F56"+
- "\u9F57\u9F58\u9F59\u9F5A\u9F5B\u9F5C\u9F5D\u9F5E"+
- "\u9F5F\u9F60\u9F61\u9F62\u9F63\u9F64\u9F65\u9F66"+
- "\u9F67\u9F68\u9F69\u9F6A\u9F6B\u9F6C\u9F6D\u9F6E"+
- "\u9F6F\u9F70\u9F71\u9F72\u9F73\u9F74\u9F75\u9F76"+
- "\u9F77\u9F78\uFFFD\u9F79\u9F7A\u9F7B\u9F7C\u9F7D"+
- "\u9F7E\u9F81\u9F82\u9F8D\u9F8E\u9F8F\u9F90\u9F91"+
- "\u9F92\u9F93\u9F94\u9F95\u9F96\u9F97\u9F98\u9F9C"+
- "\u9F9D\u9F9E\u9FA1\u9FA2\u9FA3\u9FA4\u9FA5\uF92C"+
- "\uF979\uF995\uF9E7\uF9F1\uE40A\uE40B\uE40C\uE40D"+
- "\uE40E\uE40F\uE410\uE411\uE412\uE413\uE414\uE415"+
- "\uE416\uE417\uE418\uE419\uE41A\uE41B\uE41C\uE41D"+
- "\uE41E\uE41F\uE420\uE421\uE422\uE423\uE424\uE425"+
- "\uE426\uE427\uE428\uE429\uE42A\uE42B\uE42C\uE42D"+
- "\uE42E\uE42F\uE430\uE431\uE432\uE433\uE434\uE435"+
- "\uE436\uE437\uE438\uE439\uE43A\uE43B\uE43C\uE43D"+
- "\uE43E\uE43F\uE440\uE441\uE442\uE443\uE444\uE445"+
- "\uE446\uE447\uE448\uE449\uE44A\uE44B\uE44C\uE44D"+
- "\uE44E\uE44F\uE450\uE451\uE452\uE453\uE454\uE455"+
- "\uE456\uE457\uE458\uE459\uE45A\uE45B\uE45C\uE45D"+
- "\uE45E\uE45F\uE460\uE461\uE462\uE463\uE464\uE465"+
- "\uE466\uE467\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13"+
- "\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27"+
- "\uFA28\uFA29\u2E81\uE816\uE817\uE818\u2E84\u3473"+
- "\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C"+
- "\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0"+
- "\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832"+
- "\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7"+
- "\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C"+
- "\uE843\uFFFD\u4723\u4729\u477C\u478D\u2ECA\u4947"+
- "\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B"+
- "\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1"+
- "\u4C77\u4CA2\u4D13\u4D14\u4D15\u4D16\u4D17\u4D18"+
- "\u4D19\u4DAE\uE864\uE468\uE469\uE46A\uE46B\uE46C"+
- "\uE46D\uE46E\uE46F\uE470\uE471\uE472\uE473\uE474"+
- "\uE475\uE476\uE477\uE478\uE479\uE47A\uE47B\uE47C"+
- "\uE47D\uE47E\uE47F\uE480\uE481\uE482\uE483\uE484"+
- "\uE485\uE486\uE487\uE488\uE489\uE48A\uE48B\uE48C"+
- "\uE48D\uE48E\uE48F\uE490\uE491\uE492\uE493\uE494"+
- "\uE495\uE496\uE497\uE498\uE499\uE49A\uE49B\uE49C"+
- "\uE49D\uE49E\uE49F\uE4A0\uE4A1\uE4A2\uE4A3\uE4A4"+
- "\uE4A5\uE4A6\uE4A7\uE4A8\uE4A9\uE4AA\uE4AB\uE4AC"+
- "\uE4AD\uE4AE\uE4AF\uE4B0\uE4B1\uE4B2\uE4B3\uE4B4"+
- "\uE4B5\uE4B6\uE4B7\uE4B8\uE4B9\uE4BA\uE4BB\uE4BC"+
- "\uE4BD\uE4BE\uE4BF\uE4C0\uE4C1\uE4C2\uE4C3\uE4C4"+
- "\uE4C5";
-
- final static short index1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 0
- };
-
- static String index2[] = {
- innerIndex0,
- innerIndex1,
- innerIndex2,
- innerIndex3,
- innerIndex4,
- innerIndex5,
- innerIndex6,
- innerIndex7
- };
-
-
-
-
-
- private final static String innerEncoderIndex0=
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007"+
- "\u2008\u2009\u200A\u200B\u200C\u200D\u200E\u200F"+
- "\u2010\u2011\u2012\u2013\u2014\u2015\u2016\u2017"+
- "\u2018\u2019\u201A\u201B\u201C\u201D\u201E\u201F"+
- "\u2020\u2021\u2022\u2023\uA1E8\u2024\u2025\uA1EC"+
- "\uA1A7\u2026\u2027\u2028\u2029\u202A\u202B\u202C"+
- "\uA1E3\uA1C0\u202D\u202E\u202F\u2030\u2031\uA1A4"+
- "\u2032\u2033\u2034\u2035\u2036\u2037\u2038\u2039"+
- "\u203A\u203B\u203C\u203D\u203E\u203F\u2040\u2041"+
- "\u2042\u2043\u2044\u2045\u2046\u2047\u2048\u2049"+
- "\u204A\u204B\u204C\u204D\u204E\u204F\u2050\uA1C1"+
- "\u2051\u2052\u2053\u2054\u2055\u2056\u2057\u2058"+
- "\uA8A4\uA8A2\u2059\u205A\u205B\u205C\u205D\u205E"+
- "\uA8A8\uA8A6\uA8BA\u205F\uA8AC\uA8AA\u2060\u2061"+
- "\u2062\u2063\uA8B0\uA8AE\u2064\u2065\u2066\uA1C2"+
- "\u2067\uA8B4\uA8B2\u2068\uA8B9\u2069\u206A\u206B"+
- "\u206C\uA8A1\u206D\u206E\u206F\u2070\u2071\u2072"+
- "\u2073\u2074\u2075\u2076\u2077\u2078\u2079\u207A"+
- "\u207B\u207C\u207D\uA8A5\u207E\u207F\u2080\u2081"+
- "\u2082\u2083\u2084\uA8A7\u2085\u2086\u2087\u2088"+
- "\u2089\u208A\u208B\u208C\u208D\u208E\u208F\u2090"+
- "\u2091\u2092\u2093\uA8A9\u2094\u2095\u2096\u2097"+
- "\u2098\u2099\u209A\u209B\u209C\u209D\u209E\u209F"+
- "\u20A0\u20A1\u20A2\u20A3\u20A4\u20A5\u20A6\u20A7"+
- "\u20A8\u20A9\u20AA\u20AB\uA8BD\u20AC\u20AD\u20AE"+
- "\uA8BE\u20AF\u20B0\u20B1\u20B2\uA8AD\u20B3\u20B4"+
- "\u20B5\u20B6\u20B7\u20B8\u20B9\u20BA\u20BB\u20BC"+
- "\u20BD\u20BE\u20BF\u20C0\u20C1\u20C2\u20C3\u20C4"+
- "\u20C5\u20C6\u20C7\u20C8\u20C9\u20CA\u20CB\u20CC"+
- "\u20CD\u20CE\u20CF\uA8B1\u20D0\u20D1\u20D2\u20D3"+
- "\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB"+
- "\u20DC\u20DD\u20DE\u20DF\u20E0\u20E1\u20E2\u20E3"+
- "\u20E4\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB"+
- "\u20EC\u20ED\u20EE\u20EF\u20F0\u20F1\u20F2\u20F3"+
- "\u20F4\u20F5\u20F6\u20F7\u20F8\u20F9\u20FA\u20FB"+
- "\u20FC\u20FD\u20FE\u20FF\u2100\u2101\u2102\u2103"+
- "\u2104\u2105\u2106\u2107\u2108\u2109\u210A\u210B"+
- "\u210C\u210D\u210E\u210F\u2110\u2111\u2112\u2113"+
- "\u2114\u2115\u2116\u2117\u2118\u2119\u211A\u211B"+
- "\u211C\u211D\u211E\u211F\u2120\u2121\u2122\u2123"+
- "\u2124\u2125\u2126\u2127\u2128\u2129\u212A\u212B"+
- "\u212C\u212D\u212E\u212F\u2130\u2131\uA8A3\u2132"+
- "\uA8AB\u2133\uA8AF\u2134\uA8B3\u2135\uA8B5\u2136"+
- "\uA8B6\u2137\uA8B7\u2138\uA8B8\u2139\u213A\u213B"+
- "\u213C\u213D\u213E\u213F\u2140\u2141\u2142\u2143"+
- "\u2144\u2145\u2146\u2147\u2148\u2149\u214A\u214B"+
- "\u214C\u214D\u214E\u214F\u2150\u2151\u2152\u2153"+
- "\u2154\uA8BF\u2155\u2156\u2157\u2158\u2159\u215A"+
- "\u215B\u215C\u215D\u215E\u215F\u2160\u2161\u2162"+
- "\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A"+
- "\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172"+
- "\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A"+
- "\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182"+
- "\u2183\u2184\u2185\u2186\u2187\u2188\u2189\u218A"+
- "\u218B\u218C\u218D\u218E\u218F\u2190\u2191\u2192"+
- "\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219A"+
- "\u219B\u219C\u219D\u219E\u219F\u21A0\u21A1\u21A2"+
- "\u21A3\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9\u21AA"+
- "\u21AB\uA8BB\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1"+
- "\u21B2\u21B3\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9"+
- "\u21BA\uA8C0\u21BB\u21BC\u21BD\u21BE\u21BF\u21C0"+
- "\u21C1\u21C2\u21C3\u21C4\u21C5\u21C6\u21C7\u21C8"+
- "\u21C9\u21CA\u21CB\u21CC\u21CD\u21CE\u21CF\u21D0"+
- "\u21D1\u21D2\u21D3\u21D4\u21D5\u21D6\u21D7\u21D8"+
- "\u21D9\u21DA\u21DB\u21DC\u21DD\u21DE\u21DF\u21E0"+
- "\u21E1\u21E2\u21E3\u21E4\u21E5\u21E6\u21E7\u21E8"+
- "\u21E9\u21EA\u21EB\u21EC\u21ED\u21EE\u21EF\u21F0"+
- "\u21F1\u21F2\u21F3\u21F4\u21F5\u21F6\u21F7\u21F8"+
- "\u21F9\u21FA\u21FB\u21FC\u21FD\u21FE\u21FF\u2200"+
- "\u2201\u2202\u2203\u2204\u2205\u2206\u2207\u2208"+
- "\u2209\u220A\u220B\u220C\u220D\u220E\u220F\u2210"+
- "\u2211\u2212\u2213\u2214\u2215\u2216\u2217\u2218"+
- "\u2219\u221A\u221B\u221C\u221D\u221E\u221F\uA1A6"+
- "\u2220\uA1A5\uA840\uA841\u2221\u2222\u2223\u2224"+
- "\u2225\u2226\u2227\u2228\u2229\u222A\u222B\u222C"+
- "\u222D\uA842\u222E\u222F\u2230\u2231\u2232\u2233"+
- "\u2234\u2235\u2236\u2237\u2238\u2239\u223A\u223B"+
- "\u223C\u223D\u223E\u223F\u2240\u2241\u2242\u2243"+
- "\u2244\u2245\u2246\u2247\u2248\u2249\u224A\u224B"+
- "\u224C\u224D\u224E\u224F\u2250\u2251\u2252\u2253"+
- "\u2254\u2255\u2256\u2257\u2258\u2259\u225A\u225B"+
- "\u225C\u225D\u225E\u225F\u2260\u2261\u2262\u2263"+
- "\u2264\u2265\u2266\u2267\u2268\u2269\u226A\u226B"+
- "\u226C\u226D\u226E\u226F\u2270\u2271\u2272\u2273"+
- "\u2274\u2275\u2276\u2277\u2278\u2279\u227A\u227B"+
- "\u227C\u227D\u227E\u227F\u2280\u2281\u2282\u2283"+
- "\u2284\u2285\u2286\u2287\u2288\u2289\u228A\u228B"+
- "\u228C\u228D\u228E\u228F\u2290\u2291\u2292\u2293"+
- "\u2294\u2295\u2296\u2297\u2298\u2299\u229A\u229B"+
- "\u229C\u229D\u229E\u229F\u22A0\u22A1\u22A2\u22A3"+
- "\u22A4\u22A5\u22A6\u22A7\u22A8\u22A9\u22AA\u22AB"+
- "\u22AC\u22AD\u22AE\u22AF\u22B0\u22B1\u22B2\u22B3"+
- "\u22B4\u22B5\u22B6\u22B7\u22B8\u22B9\u22BA\u22BB"+
- "\u22BC\u22BD\u22BE\u22BF\u22C0\u22C1\u22C2\u22C3"+
- "\u22C4\u22C5\u22C6\u22C7\u22C8\u22C9\u22CA\u22CB"+
- "\u22CC\u22CD\u22CE\u22CF\u22D0\u22D1\u22D2\u22D3"+
- "\u22D4\u22D5\u22D6\u22D7\u22D8\u22D9\u22DA\u22DB"+
- "\u22DC\u22DD\u22DE\u22DF\u22E0\u22E1\u22E2\u22E3"+
- "\u22E4\uA6A1\uA6A2\uA6A3\uA6A4\uA6A5\uA6A6\uA6A7"+
- "\uA6A8\uA6A9\uA6AA\uA6AB\uA6AC\uA6AD\uA6AE\uA6AF"+
- "\uA6B0\uA6B1\u22E5\uA6B2\uA6B3\uA6B4\uA6B5\uA6B6"+
- "\uA6B7\uA6B8\u22E6\u22E7\u22E8\u22E9\u22EA\u22EB"+
- "\u22EC\uA6C1\uA6C2\uA6C3\uA6C4\uA6C5\uA6C6\uA6C7"+
- "\uA6C8\uA6C9\uA6CA\uA6CB\uA6CC\uA6CD\uA6CE\uA6CF"+
- "\uA6D0\uA6D1\u22ED\uA6D2\uA6D3\uA6D4\uA6D5\uA6D6"+
- "\uA6D7\uA6D8\u22EE\u22EF\u22F0\u22F1\u22F2\u22F3"+
- "\u22F4\u22F5\u22F6\u22F7\u22F8\u22F9\u22FA\u22FB"+
- "\u22FC\u22FD\u22FE\u22FF\u2300\u2301\u2302\u2303"+
- "\u2304\u2305\u2306\u2307\u2308\u2309\u230A\u230B"+
- "\u230C\u230D\u230E\u230F\u2310\u2311\u2312\u2313"+
- "\u2314\u2315\u2316\u2317\u2318\u2319\u231A\u231B"+
- "\u231C\u231D\u231E\u231F\u2320\u2321\u2322\u2323"+
- "\u2324\uA7A7\u2325\u2326\u2327\u2328\u2329\u232A"+
- "\u232B\u232C\u232D\u232E\u232F\u2330\u2331\u2332"+
- "\uA7A1\uA7A2\uA7A3\uA7A4\uA7A5\uA7A6\uA7A8\uA7A9"+
- "\uA7AA\uA7AB\uA7AC\uA7AD\uA7AE\uA7AF\uA7B0\uA7B1"+
- "\uA7B2\uA7B3\uA7B4\uA7B5\uA7B6\uA7B7\uA7B8\uA7B9"+
- "\uA7BA\uA7BB\uA7BC\uA7BD\uA7BE\uA7BF\uA7C0\uA7C1"+
- "\uA7D1\uA7D2\uA7D3\uA7D4\uA7D5\uA7D6\uA7D8\uA7D9"+
- "\uA7DA\uA7DB\uA7DC\uA7DD\uA7DE\uA7DF\uA7E0\uA7E1"+
- "\uA7E2\uA7E3\uA7E4\uA7E5\uA7E6\uA7E7\uA7E8\uA7E9"+
- "\uA7EA\uA7EB\uA7EC\uA7ED\uA7EE\uA7EF\uA7F0\uA7F1"+
- "\u2333\uA7D7\u2334\u2335\u2336\u2337\u2338\u2339"+
- "\u233A\u233B\u233C\u233D\u233E\u233F\u2340\u2341"+
- "\u2342\u2343\u2344\u2345\u2346\u2347\u2348\u2349"+
- "\u234A\u234B\u234C\u234D\u234E\u234F\u2350\u2351"+
- "\u2352\u2353\u2354\u2355\u2356\u2357\u2358\u2359"+
- "\u235A\u235B\u235C\u235D\u235E\u235F\u2360\u2361"+
- "\u2362\u2363\u2364\u2365\u2366\u2367\u2368\u2369"+
- "\u236A\u236B\u236C\u236D\u236E\u236F\u2370\u2371"+
- "\u2372\u2373\u2374\u2375\u2376\u2377\u2378\u2379"+
- "\u237A\u237B\u237C\u237D\u237E\u237F\u2380\u2381"+
- "\u2382\u2383\u2384\u2385\u2386\u2387\u2388\u2389"+
- "\u238A\u238B\u238C\u238D\u238E\u238F\u2390\u2391"+
- "\u2392\u2393\u2394\u2395\u2396\u2397\u2398\u2399"+
- "\u239A\u239B\u239C\u239D\u239E\u239F\u23A0\u23A1"+
- "\u23A2\u23A3\u23A4\u23A5\u23A6\u23A7\u23A8\u23A9"+
- "\u23AA\u23AB\u23AC\u23AD\u23AE\u23AF\u23B0\u23B1"+
- "\u23B2\u23B3\u23B4\u23B5\u23B6\u23B7\u23B8\u23B9"+
- "\u23BA\u23BB\u23BC\u23BD\u23BE\u23BF\u23C0\u23C1"+
- "\u23C2\u23C3\u23C4\u23C5\u23C6\u23C7\u23C8\u23C9"+
- "\u23CA\u23CB\u23CC\u23CD\u23CE\u23CF\u23D0\u23D1"+
- "\u23D2\u23D3\u23D4\u23D5\u23D6\u23D7\u23D8\u23D9"+
- "\u23DA\u23DB\u23DC\u23DD\u23DE\u23DF\u23E0\u23E1"+
- "\u23E2\u23E3\u23E4\u23E5\u23E6\u23E7\u23E8\u23E9"+
- "\u23EA\u23EB\u23EC\u23ED\u23EE\u23EF\u23F0\u23F1"+
- "\u23F2\u23F3\u23F4\u23F5\u23F6\u23F7\u23F8\u23F9"+
- "\u23FA\u23FB\u23FC\u23FD\u23FE\u23FF\u2400\u2401"+
- "\u2402\u2403\u2404\u2405\u2406\u2407\u2408\u2409"+
- "\u240A\u240B\u240C\u240D\u240E\u240F\u2410\u2411"+
- "\u2412\u2413\u2414\u2415\u2416\u2417\u2418\u2419"+
- "\u241A\u241B\u241C\u241D\u241E\u241F\u2420\u2421"+
- "\u2422\u2423\u2424\u2425\u2426\u2427\u2428\u2429"+
- "\u242A\u242B\u242C\u242D\u242E\u242F\u2430\u2431"+
- "\u2432\u2433\u2434\u2435\u2436\u2437\u2438\u2439"+
- "\u243A\u243B\u243C\u243D\u243E\u243F\u2440\u2441"+
- "\u2442\u2443\u2444\u2445\u2446\u2447\u2448\u2449"+
- "\u244A\u244B\u244C\u244D\u244E\u244F\u2450\u2451"+
- "\u2452\u2453\u2454\u2455\u2456\u2457\u2458\u2459"+
- "\u245A\u245B\u245C\u245D\u245E\u245F\u2460\u2461"+
- "\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469"+
- "\u246A\u246B\u246C\u246D\u246E\u246F\u2470\u2471"+
- "\u2472\u2473\u2474\u2475\u2476\u2477\u2478\u2479"+
- "\u247A\u247B\u247C\u247D\u247E\u247F\u2480\u2481"+
- "\u2482\u2483\u2484\u2485\u2486\u2487\u2488\u2489"+
- "\u248A\u248B\u248C\u248D\u248E\u248F\u2490\u2491"+
- "\u2492\u2493\u2494\u2495\u2496\u2497\u2498\u2499"+
- "\u249A\u249B\u249C\u249D\u249E\u249F\u24A0\u24A1"+
- "\u24A2\u24A3\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9"+
- "\u24AA\u24AB\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1"+
- "\u24B2\u24B3\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9"+
- "\u24BA\u24BB\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1"+
- "\u24C2\u24C3\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9"+
- "\u24CA\u24CB\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1"+
- "\u24D2\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9"+
- "\u24DA\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1"+
- "\u24E2\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9"+
- "\u24EA\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1"+
- "\u24F2\u24F3\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9"+
- "\u24FA\u24FB\u24FC\u24FD\u24FE\u24FF\u2500\u2501"+
- "\u2502\u2503\u2504\u2505\u2506\u2507\u2508\u2509"+
- "\u250A\u250B\u250C\u250D\u250E\u250F\u2510\u2511"+
- "\u2512\u2513\u2514\u2515\u2516\u2517\u2518\u2519"+
- "\u251A\u251B\u251C\u251D\u251E\u251F\u2520\u2521"+
- "\u2522\u2523\u2524\u2525\u2526\u2527\u2528\u2529"+
- "\u252A\u252B\u252C\u252D\u252E\u252F\u2530\u2531"+
- "\u2532\u2533\u2534\u2535\u2536\u2537\u2538\u2539"+
- "\u253A\u253B\u253C\u253D\u253E\u253F\u2540\u2541"+
- "\u2542\u2543\u2544\u2545\u2546\u2547\u2548\u2549"+
- "\u254A\u254B\u254C\u254D\u254E\u254F\u2550\u2551"+
- "\u2552\u2553\u2554\u2555\u2556\u2557\u2558\u2559"+
- "\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561"+
- "\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569"+
- "\u256A\u256B\u256C\u256D\u256E\u256F\u2570\u2571"+
- "\u2572\u2573\u2574\u2575\u2576\u2577\u2578\u2579"+
- "\u257A\u257B\u257C\u257D\u257E\u257F\u2580\u2581"+
- "\u2582\u2583\u2584\u2585\u2586\u2587\u2588\u2589"+
- "\u258A\u258B\u258C\u258D\u258E\u258F\u2590\u2591"+
- "\u2592\u2593\u2594\u2595\u2596\u2597\u2598\u2599"+
- "\u259A\u259B\u259C\u259D\u259E\u259F\u25A0\u25A1"+
- "\u25A2\u25A3\u25A4\u25A5\u25A6\u25A7\u25A8\u25A9"+
- "\u25AA\u25AB\u25AC\u25AD\u25AE\u25AF\u25B0\u25B1"+
- "\u25B2\u25B3\u25B4\u25B5\u25B6\u25B7\u25B8\u25B9"+
- "\u25BA\u25BB\u25BC\u25BD\u25BE\u25BF\u25C0\u25C1"+
- "\u25C2\u25C3\u25C4\u25C5\u25C6\u25C7\u25C8\u25C9"+
- "\u25CA\u25CB\u25CC\u25CD\u25CE\u25CF\u25D0\u25D1"+
- "\u25D2\u25D3\u25D4\u25D5\u25D6\u25D7\u25D8\u25D9"+
- "\u25DA\u25DB\u25DC\u25DD\u25DE\u25DF\u25E0\u25E1"+
- "\u25E2\u25E3\u25E4\u25E5\u25E6\u25E7\u25E8\u25E9"+
- "\u25EA\u25EB\u25EC\u25ED\u25EE\u25EF\u25F0\u25F1"+
- "\u25F2\u25F3\u25F4\u25F5\u25F6\u25F7\u25F8\u25F9"+
- "\u25FA\u25FB\u25FC\u25FD\u25FE\u25FF\u2600\u2601"+
- "\u2602\u2603\u2604\u2605\u2606\u2607\u2608\u2609"+
- "\u260A\u260B\u260C\u260D\u260E\u260F\u2610\u2611"+
- "\u2612\u2613\u2614\u2615\u2616\u2617\u2618\u2619"+
- "\u261A\u261B\u261C\u261D\u261E\u261F\u2620\u2621"+
- "\u2622\u2623\u2624\u2625\u2626\u2627\u2628\u2629"+
- "\u262A\u262B\u262C\u262D\u262E\u262F\u2630\u2631"+
- "\u2632\u2633\u2634\u2635\u2636\u2637\u2638\u2639"+
- "\u263A\u263B\u263C\u263D\u263E\u263F\u2640\u2641"+
- "\u2642\u2643\u2644\u2645\u2646\u2647\u2648\u2649"+
- "\u264A\u264B\u264C\u264D\u264E\u264F\u2650\u2651"+
- "\u2652\u2653\u2654\u2655\u2656\u2657\u2658\u2659"+
- "\u265A\u265B\u265C\u265D\u265E\u265F\u2660\u2661"+
- "\u2662\u2663\u2664\u2665\u2666\u2667\u2668\u2669"+
- "\u266A\u266B\u266C\u266D\u266E\u266F\u2670\u2671"+
- "\u2672\u2673\u2674\u2675\u2676\u2677\u2678\u2679"+
- "\u267A\u267B\u267C\u267D\u267E\u267F\u2680\u2681"+
- "\u2682\u2683\u2684\u2685\u2686\u2687\u2688\u2689"+
- "\u268A\u268B\u268C\u268D\u268E\u268F\u2690\u2691"+
- "\u2692\u2693\u2694\u2695\u2696\u2697\u2698\u2699"+
- "\u269A\u269B\u269C\u269D\u269E\u269F\u26A0\u26A1"+
- "\u26A2\u26A3\u26A4\u26A5\u26A6\u26A7\u26A8\u26A9"+
- "\u26AA\u26AB\u26AC\u26AD\u26AE\u26AF\u26B0\u26B1"+
- "\u26B2\u26B3\u26B4\u26B5\u26B6\u26B7\u26B8\u26B9"+
- "\u26BA\u26BB\u26BC\u26BD\u26BE\u26BF\u26C0\u26C1"+
- "\u26C2\u26C3\u26C4\u26C5\u26C6\u26C7\u26C8\u26C9"+
- "\u26CA\u26CB\u26CC\u26CD\u26CE\u26CF\u26D0\u26D1"+
- "\u26D2\u26D3\u26D4\u26D5\u26D6\u26D7\u26D8\u26D9"+
- "\u26DA\u26DB\u26DC\u26DD\u26DE\u26DF\u26E0\u26E1"+
- "\u26E2\u26E3\u26E4\u26E5\u26E6\u26E7\u26E8\u26E9"+
- "\u26EA\u26EB\u26EC\u26ED\u26EE\u26EF\u26F0\u26F1"+
- "\u26F2\u26F3\u26F4\u26F5\u26F6\u26F7\u26F8\u26F9"+
- "\u26FA\u26FB\u26FC\u26FD\u26FE\u26FF\u2700\u2701"+
- "\u2702\u2703\u2704\u2705\u2706\u2707\u2708\u2709"+
- "\u270A\u270B\u270C\u270D\u270E\u270F\u2710\u2711"+
- "\u2712\u2713\u2714\u2715\u2716\u2717\u2718\u2719"+
- "\u271A\u271B\u271C\u271D\u271E\u271F\u2720\u2721"+
- "\u2722\u2723\u2724\u2725\u2726\u2727\u2728\u2729"+
- "\u272A\u272B\u272C\u272D\u272E\u272F\u2730\u2731"+
- "\u2732\u2733\u2734\u2735\u2736\u2737\u2738\u2739"+
- "\u273A\u273B\u273C\u273D\u273E\u273F\u2740\u2741"+
- "\u2742\u2743\u2744\u2745\u2746\u2747\u2748\u2749"+
- "\u274A\u274B\u274C\u274D\u274E\u274F\u2750\u2751"+
- "\u2752\u2753\u2754\u2755\u2756\u2757\u2758\u2759"+
- "\u275A\u275B\u275C\u275D\u275E\u275F\u2760\u2761"+
- "\u2762\u2763\u2764\u2765\u2766\u2767\u2768\u2769"+
- "\u276A\u276B\u276C\u276D\u276E\u276F\u2770\u2771"+
- "\u2772\u2773\u2774\u2775\u2776\u2777\u2778\u2779"+
- "\u277A\u277B\u277C\u277D\u277E\u277F\u2780\u2781"+
- "\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789"+
- "\u278A\u278B\u278C\u278D\u278E\u278F\u2790\u2791"+
- "\u2792\u2793\u2794\u2795\u2796\u2797\u2798\u2799"+
- "\u279A\u279B\u279C\u279D\u279E\u279F\u27A0\u27A1"+
- "\u27A2\u27A3\u27A4\u27A5\u27A6\u27A7\u27A8\u27A9"+
- "\u27AA\u27AB\u27AC\u27AD\u27AE\u27AF\u27B0\u27B1"+
- "\u27B2\u27B3\u27B4\u27B5\u27B6\u27B7\u27B8\u27B9"+
- "\u27BA\u27BB\u27BC\u27BD\u27BE\u27BF\u27C0\u27C1"+
- "\u27C2\u27C3\u27C4\u27C5\u27C6\u27C7\u27C8\u27C9"+
- "\u27CA\u27CB\u27CC\u27CD\u27CE\u27CF\u27D0\u27D1"+
- "\u27D2\u27D3\u27D4\u27D5\u27D6\u27D7\u27D8\u27D9"+
- "\u27DA\u27DB\u27DC\u27DD\u27DE\u27DF\u27E0\u27E1"+
- "\u27E2\u27E3\u27E4\u27E5\u27E6\u27E7\u27E8\u27E9"+
- "\u27EA\u27EB\u27EC\u27ED\u27EE\u27EF\u27F0\u27F1"+
- "\u27F2\u27F3\u27F4\u27F5\u27F6\u27F7\u27F8\u27F9"+
- "\u27FA\u27FB\u27FC\u27FD\u27FE\u27FF\u2800\u2801"+
- "\u2802\u2803\u2804\u2805\u2806\u2807\u2808\u2809"+
- "\u280A\u280B\u280C\u280D\u280E\u280F\u2810\u2811"+
- "\u2812\u2813\u2814\u2815\u2816\u2817\u2818\u2819"+
- "\u281A\u281B\u281C\u281D\u281E\u281F\u2820\u2821"+
- "\u2822\u2823\u2824\u2825\u2826\u2827\u2828\u2829"+
- "\u282A\u282B\u282C\u282D\u282E\u282F\u2830\u2831"+
- "\u2832\u2833\u2834\u2835\u2836\u2837\u2838\u2839"+
- "\u283A\u283B\u283C\u283D\u283E\u283F\u2840\u2841"+
- "\u2842\u2843\u2844\u2845\u2846\u2847\u2848\u2849"+
- "\u284A\u284B\u284C\u284D\u284E\u284F\u2850\u2851"+
- "\u2852\u2853\u2854\u2855\u2856\u2857\u2858\u2859"+
- "\u285A\u285B\u285C\u285D\u285E\u285F\u2860\u2861"+
- "\u2862\u2863\u2864\u2865\u2866\u2867\u2868\u2869"+
- "\u286A\u286B\u286C\u286D\u286E\u286F\u2870\u2871"+
- "\u2872\u2873\u2874\u2875\u2876\u2877\u2878\u2879"+
- "\u287A\u287B\u287C\u287D\u287E\u287F\u2880\u2881"+
- "\u2882\u2883\u2884\u2885\u2886\u2887\u2888\u2889"+
- "\u288A\u288B\u288C\u288D\u288E\u288F\u2890\u2891"+
- "\u2892\u2893\u2894\u2895\u2896\u2897\u2898\u2899"+
- "\u289A\u289B\u289C\u289D\u289E\u289F\u28A0\u28A1"+
- "\u28A2\u28A3\u28A4\u28A5\u28A6\u28A7\u28A8\u28A9"+
- "\u28AA\u28AB\u28AC\u28AD\u28AE\u28AF\u28B0\u28B1"+
- "\u28B2\u28B3\u28B4\u28B5\u28B6\u28B7\u28B8\u28B9"+
- "\u28BA\u28BB\u28BC\u28BD\u28BE\u28BF\u28C0\u28C1"+
- "\u28C2\u28C3\u28C4\u28C5\u28C6\u28C7\u28C8\u28C9"+
- "\u28CA\u28CB\u28CC\u28CD\u28CE\u28CF\u28D0\u28D1"+
- "\u28D2\u28D3\u28D4\u28D5\u28D6\u28D7\u28D8\u28D9"+
- "\u28DA\u28DB\u28DC\u28DD\u28DE\u28DF\u28E0\u28E1"+
- "\u28E2\u28E3\u28E4\u28E5\u28E6\u28E7\u28E8\u28E9"+
- "\u28EA\u28EB\u28EC\u28ED\u28EE\u28EF\u28F0\u28F1"+
- "\u28F2\u28F3\u28F4\u28F5\u28F6\u28F7\u28F8\u28F9"+
- "\u28FA\u28FB\u28FC\u28FD\u28FE\u28FF\u2900\u2901"+
- "\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909"+
- "\u290A\u290B\u290C\u290D\u290E\u290F\u2910\u2911"+
- "\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919"+
- "\u291A\u291B\u291C\u291D\u291E\u291F\u2920\u2921"+
- "\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929"+
- "\u292A\u292B\u292C\u292D\u292E\u292F\u2930\u2931"+
- "\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939"+
- "\u293A\u293B\u293C\u293D\u293E\u293F\u2940\u2941"+
- "\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949"+
- "\u294A\u294B\u294C\u294D\u294E\u294F\u2950\u2951"+
- "\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959"+
- "\u295A\u295B\u295C\u295D\u295E\u295F\u2960\u2961"+
- "\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969"+
- "\u296A\u296B\u296C\u296D\u296E\u296F\u2970\u2971"+
- "\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979"+
- "\u297A\u297B\u297C\u297D\u297E\u297F\u2980\u2981"+
- "\u2982\u2983\u2984\u2985\u2986\u2987\u2988\u2989"+
- "\u298A\u298B\u298C\u298D\u298E\u298F\u2990\u2991"+
- "\u2992\u2993\u2994\u2995\u2996\u2997\u2998\u2999"+
- "\u299A\u299B\u299C\u299D\u299E\u299F\u29A0\u29A1"+
- "\u29A2\u29A3\u29A4\u29A5\u29A6\u29A7\u29A8\u29A9"+
- "\u29AA\u29AB\u29AC\u29AD\u29AE\u29AF\u29B0\u29B1"+
- "\u29B2\u29B3\u29B4\u29B5\u29B6\u29B7\u29B8\u29B9"+
- "\u29BA\u29BB\u29BC\u29BD\u29BE\u29BF\u29C0\u29C1"+
- "\u29C2\u29C3\u29C4\u29C5\u29C6\u29C7\u29C8\u29C9"+
- "\u29CA\u29CB\u29CC\u29CD\u29CE\u29CF\u29D0\u29D1"+
- "\u29D2\u29D3\u29D4\u29D5\u29D6\u29D7\u29D8\u29D9"+
- "\u29DA\u29DB\u29DC\u29DD\u29DE\u29DF\u29E0\u29E1"+
- "\u29E2\u29E3\u29E4\u29E5\u29E6\u29E7\u29E8\u29E9"+
- "\u29EA\u29EB\u29EC\u29ED\u29EE\u29EF\u29F0\u29F1"+
- "\u29F2\u29F3\u29F4\u29F5\u29F6\u29F7\u29F8\u29F9"+
- "\u29FA\u29FB\u29FC\u29FD\u29FE\u29FF\u2A00\u2A01"+
- "\u2A02\u2A03\u2A04\u2A05\u2A06\u2A07\u2A08\u2A09"+
- "\u2A0A\u2A0B\u2A0C\u2A0D\u2A0E\u2A0F\u2A10\u2A11"+
- "\u2A12\u2A13\u2A14\u2A15\u2A16\u2A17\u2A18\u2A19"+
- "\u2A1A\u2A1B\u2A1C\u2A1D\u2A1E\u2A1F\u2A20\u2A21"+
- "\u2A22\u2A23\u2A24\u2A25\u2A26\u2A27\u2A28\u2A29"+
- "\u2A2A\u2A2B\u2A2C\u2A2D\u2A2E\u2A2F\u2A30\u2A31"+
- "\u2A32\u2A33\u2A34\u2A35\u2A36\u2A37\u2A38\u2A39"+
- "\u2A3A\u2A3B\u2A3C\u2A3D\u2A3E\u2A3F\u2A40\u2A41"+
- "\u2A42\u2A43\u2A44\u2A45\u2A46\u2A47\u2A48\u2A49"+
- "\u2A4A\u2A4B\u2A4C\u2A4D\u2A4E\u2A4F\u2A50\u2A51"+
- "\u2A52\u2A53\u2A54\u2A55\u2A56\u2A57\u2A58\u2A59"+
- "\u2A5A\u2A5B\u2A5C\u2A5D\u2A5E\u2A5F\u2A60\u2A61"+
- "\u2A62\u2A63\u2A64\u2A65\u2A66\u2A67\u2A68\u2A69"+
- "\u2A6A\u2A6B\u2A6C\u2A6D\u2A6E\u2A6F\u2A70\u2A71"+
- "\u2A72\u2A73\u2A74\u2A75\u2A76\u2A77\u2A78\u2A79"+
- "\u2A7A\u2A7B\u2A7C\u2A7D\u2A7E\u2A7F\u2A80\u2A81"+
- "\u2A82\u2A83\u2A84\u2A85\u2A86\u2A87\u2A88\u2A89"+
- "\u2A8A\u2A8B\u2A8C\u2A8D\u2A8E\u2A8F\u2A90\u2A91"+
- "\u2A92\u2A93\u2A94\u2A95\u2A96\u2A97\u2A98\u2A99"+
- "\u2A9A\u2A9B\u2A9C\u2A9D\u2A9E\u2A9F\u2AA0\u2AA1"+
- "\u2AA2\u2AA3\u2AA4\u2AA5\u2AA6\u2AA7\u2AA8\u2AA9"+
- "\u2AAA\u2AAB\u2AAC\u2AAD\u2AAE\u2AAF\u2AB0\u2AB1"+
- "\u2AB2\u2AB3\u2AB4\u2AB5\u2AB6\u2AB7\u2AB8\u2AB9"+
- "\u2ABA\u2ABB\u2ABC\u2ABD\u2ABE\u2ABF\u2AC0\u2AC1"+
- "\u2AC2\u2AC3\u2AC4\u2AC5\u2AC6\u2AC7\u2AC8\u2AC9"+
- "\u2ACA\u2ACB\u2ACC\u2ACD\u2ACE\u2ACF\u2AD0\u2AD1"+
- "\u2AD2\u2AD3\u2AD4\u2AD5\u2AD6\u2AD7\u2AD8\u2AD9"+
- "\u2ADA\u2ADB\u2ADC\u2ADD\u2ADE\u2ADF\u2AE0\u2AE1"+
- "\u2AE2\u2AE3\u2AE4\u2AE5\u2AE6\u2AE7\u2AE8\u2AE9"+
- "\u2AEA\u2AEB\u2AEC\u2AED\u2AEE\u2AEF\u2AF0\u2AF1"+
- "\u2AF2\u2AF3\u2AF4\u2AF5\u2AF6\u2AF7\u2AF8\u2AF9"+
- "\u2AFA\u2AFB\u2AFC\u2AFD\u2AFE\u2AFF\u2B00\u2B01"+
- "\u2B02\u2B03\u2B04\u2B05\u2B06\u2B07\u2B08\u2B09"+
- "\u2B0A\u2B0B\u2B0C\u2B0D\u2B0E\u2B0F\u2B10\u2B11"+
- "\u2B12\u2B13\u2B14\u2B15\u2B16\u2B17\u2B18\u2B19"+
- "\u2B1A\u2B1B\u2B1C\u2B1D\u2B1E\u2B1F\u2B20\u2B21"+
- "\u2B22\u2B23\u2B24\u2B25\u2B26\u2B27\u2B28\u2B29"+
- "\u2B2A\u2B2B\u2B2C\u2B2D\u2B2E\u2B2F\u2B30\u2B31"+
- "\u2B32\u2B33\u2B34\u2B35\u2B36\u2B37\u2B38\u2B39"+
- "\u2B3A\u2B3B\u2B3C\u2B3D\u2B3E\u2B3F\u2B40\u2B41"+
- "\u2B42\u2B43\u2B44\u2B45\u2B46\u2B47\u2B48\u2B49"+
- "\u2B4A\u2B4B\u2B4C\u2B4D\u2B4E\u2B4F\u2B50\u2B51"+
- "\u2B52\u2B53\u2B54\u2B55\u2B56\u2B57\u2B58\u2B59"+
- "\u2B5A\u2B5B\u2B5C\u2B5D\u2B5E\u2B5F\u2B60\u2B61"+
- "\u2B62\u2B63\u2B64\u2B65\u2B66\u2B67\u2B68\u2B69"+
- "\u2B6A\u2B6B\u2B6C\u2B6D\u2B6E\u2B6F\u2B70\u2B71"+
- "\u2B72\u2B73\u2B74\u2B75\u2B76\u2B77\u2B78\u2B79"+
- "\u2B7A\u2B7B\u2B7C\u2B7D\u2B7E\u2B7F\u2B80\u2B81"+
- "\u2B82\u2B83\u2B84\u2B85\u2B86\u2B87\u2B88\u2B89"+
- "\u2B8A\u2B8B\u2B8C\u2B8D\u2B8E\u2B8F\u2B90\u2B91"+
- "\u2B92\u2B93\u2B94\u2B95\u2B96\u2B97\u2B98\u2B99"+
- "\u2B9A\u2B9B\u2B9C\u2B9D\u2B9E\u2B9F\u2BA0\u2BA1"+
- "\u2BA2\u2BA3\u2BA4\u2BA5\u2BA6\u2BA7\u2BA8\u2BA9"+
- "\u2BAA\u2BAB\u2BAC\u2BAD\u2BAE\u2BAF\u2BB0\u2BB1"+
- "\u2BB2\u2BB3\u2BB4\u2BB5\u2BB6\u2BB7\u2BB8\u2BB9"+
- "\u2BBA\u2BBB\u2BBC\u2BBD\u2BBE\u2BBF\u2BC0\u2BC1"+
- "\u2BC2\u2BC3\u2BC4\u2BC5\u2BC6\u2BC7\u2BC8\u2BC9"+
- "\u2BCA\u2BCB\u2BCC\u2BCD\u2BCE\u2BCF\u2BD0\u2BD1"+
- "\u2BD2\u2BD3\u2BD4\u2BD5\u2BD6\u2BD7\u2BD8\u2BD9"+
- "\u2BDA\u2BDB\u2BDC\u2BDD\u2BDE\u2BDF\u2BE0\u2BE1"+
- "\u2BE2\u2BE3\u2BE4\u2BE5\u2BE6\u2BE7\u2BE8\u2BE9"+
- "\u2BEA\u2BEB\u2BEC\u2BED\u2BEE\u2BEF\u2BF0\u2BF1"+
- "\u2BF2\u2BF3\u2BF4\u2BF5\u2BF6\u2BF7\u2BF8\u2BF9"+
- "\u2BFA\u2BFB\u2BFC\u2BFD\u2BFE\u2BFF\u2C00\u2C01"+
- "\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09"+
- "\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11"+
- "\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19"+
- "\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21"+
- "\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29"+
- "\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C2F\u2C30\u2C31"+
- "\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39"+
- "\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41"+
- "\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49"+
- "\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51"+
- "\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59"+
- "\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C5F\u2C60\u2C61"+
- "\u2C62\u2C63\u2C64\u2C65\u2C66\u2C67\u2C68\u2C69"+
- "\u2C6A\u2C6B\u2C6C\u2C6D\u2C6E\u2C6F\u2C70\u2C71"+
- "\u2C72\u2C73\u2C74\u2C75\u2C76\u2C77\u2C78\u2C79"+
- "\u2C7A\u2C7B\u2C7C\u2C7D\u2C7E\u2C7F\u2C80\u2C81"+
- "\u2C82\u2C83\u2C84\u2C85\u2C86\u2C87\u2C88\u2C89"+
- "\u2C8A\u2C8B\u2C8C\u2C8D\u2C8E\u2C8F\u2C90\u2C91"+
- "\u2C92\u2C93\u2C94\u2C95\u2C96\u2C97\u2C98\u2C99"+
- "\u2C9A\u2C9B\u2C9C\u2C9D\u2C9E\u2C9F\u2CA0\u2CA1"+
- "\u2CA2\u2CA3\u2CA4\u2CA5\u2CA6\u2CA7\u2CA8\u2CA9"+
- "\u2CAA\u2CAB\u2CAC\u2CAD\u2CAE\u2CAF\u2CB0\u2CB1"+
- "\u2CB2\u2CB3\u2CB4\u2CB5\u2CB6\u2CB7\u2CB8\u2CB9"+
- "\u2CBA\u2CBB\u2CBC\u2CBD\u2CBE\u2CBF\u2CC0\u2CC1"+
- "\u2CC2\u2CC3\u2CC4\u2CC5\u2CC6\u2CC7\u2CC8\u2CC9"+
- "\u2CCA\u2CCB\u2CCC\u2CCD\u2CCE\u2CCF\u2CD0\u2CD1"+
- "\u2CD2\u2CD3\u2CD4\u2CD5\u2CD6\u2CD7\u2CD8\u2CD9"+
- "\u2CDA\u2CDB\u2CDC\u2CDD\u2CDE\u2CDF\u2CE0\u2CE1"+
- "\u2CE2\u2CE3\u2CE4\u2CE5\u2CE6\u2CE7\u2CE8\u2CE9"+
- "\u2CEA\u2CEB\u2CEC\u2CED\u2CEE\u2CEF\u2CF0\u2CF1"+
- "\u2CF2\u2CF3\u2CF4\u2CF5\u2CF6\u2CF7\u2CF8\u2CF9"+
- "\u2CFA\u2CFB\u2CFC\u2CFD\u2CFE\u2CFF\u2D00\u2D01"+
- "\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09"+
- "\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11"+
- "\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19"+
- "\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21"+
- "\u2D22\u2D23\u2D24\u2D25\u2D26\u2D27\u2D28\u2D29"+
- "\u2D2A\u2D2B\u2D2C\u2D2D\u2D2E\u2D2F\u2D30\u2D31"+
- "\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39"+
- "\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41"+
- "\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49"+
- "\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51"+
- "\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59"+
- "\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61"+
- "\u2D62\u2D63\u2D64\u2D65\u2D66\u2D67\u2D68\u2D69"+
- "\u2D6A\u2D6B\u2D6C\u2D6D\u2D6E\u2D6F\u2D70\u2D71"+
- "\u2D72\u2D73\u2D74\u2D75\u2D76\u2D77\u2D78\u2D79"+
- "\u2D7A\u2D7B\u2D7C\u2D7D\u2D7E\u2D7F\u2D80\u2D81"+
- "\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89"+
- "\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91"+
- "\u2D92\u2D93\u2D94\u2D95\u2D96\u2D97\u2D98\u2D99"+
- "\u2D9A\u2D9B\u2D9C\u2D9D\u2D9E\u2D9F\u2DA0\u2DA1"+
- "\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA7\u2DA8\u2DA9"+
- "\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DAF\u2DB0\u2DB1"+
- "\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB7\u2DB8\u2DB9"+
- "\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DBF\u2DC0\u2DC1"+
- "\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC7\u2DC8\u2DC9"+
- "\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DCF\u2DD0\u2DD1"+
- "\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD7\u2DD8\u2DD9"+
- "\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u2DDF\u2DE0\u2DE1"+
- "\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9"+
- "\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1"+
- "\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9"+
- "\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u2E00\u2E01"+
- "\u2E02\u2E03\u2E04\u2E05\u2E06\u2E07\u2E08\u2E09"+
- "\u2E0A\u2E0B\u2E0C\u2E0D\u2E0E\u2E0F\u2E10\u2E11"+
- "\u2E12\u2E13\u2E14\u2E15\u2E16\u2E17\u2E18\u2E19"+
- "\u2E1A\u2E1B\u2E1C\u2E1D\u2E1E\u2E1F\u2E20\u2E21"+
- "\u2E22\u2E23\u2E24\u2E25\u2E26\u2E27\u2E28\u2E29"+
- "\u2E2A\u2E2B\u2E2C\u2E2D\u2E2E\u2E2F\u2E30\u2E31"+
- "\u2E32\u2E33\u2E34\u2E35\u2E36\u2E37\u2E38\u2E39"+
- "\u2E3A\u2E3B\u2E3C\u2E3D\u2E3E\u2E3F\u2E40\u2E41"+
- "\u2E42\u2E43\u2E44\u2E45\u2E46\u2E47\u2E48\u2E49"+
- "\u2E4A\u2E4B\u2E4C\u2E4D\u2E4E\u2E4F\u2E50\u2E51"+
- "\u2E52\u2E53\u2E54\u2E55\u2E56\u2E57\u2E58\u2E59"+
- "\u2E5A\u2E5B\u2E5C\u2E5D\u2E5E\u2E5F\u2E60\u2E61"+
- "\u2E62\u2E63\u2E64\u2E65\u2E66\u2E67\u2E68\u2E69"+
- "\u2E6A\u2E6B\u2E6C\u2E6D\u2E6E\u2E6F\u2E70\u2E71"+
- "\u2E72\u2E73\u2E74\u2E75\u2E76\u2E77\u2E78\u2E79"+
- "\u2E7A\u2E7B\u2E7C\u2E7D\u2E7E\u2E7F\u2E80\u2E81"+
- "\u2E82\u2E83\u2E84\u2E85\u2E86\u2E87\u2E88\u2E89"+
- "\u2E8A\u2E8B\u2E8C\u2E8D\u2E8E\u2E8F\u2E90\u2E91"+
- "\u2E92\u2E93\u2E94\u2E95\u2E96\u2E97\u2E98\u2E99"+
- "\u2E9A\u2E9B\u2E9C\u2E9D\u2E9E\u2E9F\u2EA0\u2EA1"+
- "\u2EA2\u2EA3\u2EA4\u2EA5\u2EA6\u2EA7\u2EA8\u2EA9"+
- "\u2EAA\u2EAB\u2EAC\u2EAD\u2EAE\u2EAF\u2EB0\u2EB1"+
- "\u2EB2\u2EB3\u2EB4\u2EB5\u2EB6\u2EB7\u2EB8\u2EB9"+
- "\u2EBA\u2EBB\u2EBC\u2EBD\u2EBE\u2EBF\u2EC0\u2EC1"+
- "\u2EC2\u2EC3\u2EC4\u2EC5\u2EC6\u2EC7\u2EC8\u2EC9"+
- "\u2ECA\u2ECB\u2ECC\u2ECD\u2ECE\u2ECF\u2ED0\u2ED1"+
- "\u2ED2\u2ED3\u2ED4\u2ED5\u2ED6\u2ED7\u2ED8\u2ED9"+
- "\u2EDA\u2EDB\u2EDC\u2EDD\u2EDE\u2EDF\u2EE0\u2EE1";
-
- private final static String innerEncoderIndex1=
- "\u2EE2\u2EE3\u2EE4\u2EE5\u2EE6\u2EE7\u2EE8\u2EE9"+
- "\u2EEA\u2EEB\u2EEC\u2EED\u2EEE\u2EEF\u2EF0\u2EF1"+
- "\u2EF2\u2EF3\u2EF4\u2EF5\u2EF6\u2EF7\u2EF8\u2EF9"+
- "\u2EFA\u2EFB\u2EFC\u2EFD\u2EFE\u2EFF\u2F00\u2F01"+
- "\u2F02\u2F03\u2F04\u2F05\u2F06\u2F07\u2F08\u2F09"+
- "\u2F0A\u2F0B\u2F0C\u2F0D\u2F0E\u2F0F\u2F10\u2F11"+
- "\u2F12\u2F13\u2F14\u2F15\u2F16\u2F17\u2F18\u2F19"+
- "\u2F1A\u2F1B\u2F1C\u2F1D\u2F1E\u2F1F\u2F20\u2F21"+
- "\u2F22\u2F23\u2F24\u2F25\u2F26\u2F27\u2F28\u2F29"+
- "\u2F2A\u2F2B\u2F2C\u2F2D\u2F2E\u2F2F\u2F30\u2F31"+
- "\u2F32\u2F33\u2F34\u2F35\u2F36\u2F37\u2F38\u2F39"+
- "\u2F3A\u2F3B\u2F3C\u2F3D\u2F3E\u2F3F\u2F40\u2F41"+
- "\u2F42\u2F43\u2F44\u2F45\u2F46\u2F47\u2F48\u2F49"+
- "\u2F4A\u2F4B\u2F4C\u2F4D\u2F4E\u2F4F\u2F50\u2F51"+
- "\u2F52\u2F53\u2F54\u2F55\u2F56\u2F57\u2F58\u2F59"+
- "\u2F5A\u2F5B\u2F5C\u2F5D\u2F5E\u2F5F\u2F60\u2F61"+
- "\u2F62\u2F63\u2F64\u2F65\u2F66\u2F67\u2F68\u2F69"+
- "\u2F6A\u2F6B\u2F6C\u2F6D\u2F6E\u2F6F\u2F70\u2F71"+
- "\u2F72\u2F73\u2F74\u2F75\u2F76\u2F77\u2F78\u2F79"+
- "\u2F7A\u2F7B\u2F7C\u2F7D\u2F7E\u2F7F\u2F80\u2F81"+
- "\u2F82\u2F83\u2F84\u2F85\u2F86\u2F87\u2F88\u2F89"+
- "\u2F8A\u2F8B\u2F8C\u2F8D\u2F8E\u2F8F\u2F90\u2F91"+
- "\u2F92\u2F93\u2F94\u2F95\u2F96\u2F97\u2F98\u2F99"+
- "\u2F9A\u2F9B\u2F9C\u2F9D\u2F9E\u2F9F\u2FA0\u2FA1"+
- "\u2FA2\u2FA3\u2FA4\u2FA5\u2FA6\u2FA7\u2FA8\u2FA9"+
- "\u2FAA\u2FAB\u2FAC\u2FAD\u2FAE\u2FAF\u2FB0\u2FB1"+
- "\u2FB2\u2FB3\u2FB4\u2FB5\u2FB6\u2FB7\u2FB8\u2FB9"+
- "\u2FBA\u2FBB\u2FBC\u2FBD\u2FBE\u2FBF\u2FC0\u2FC1"+
- "\u2FC2\u2FC3\u2FC4\u2FC5\u2FC6\u2FC7\u2FC8\u2FC9"+
- "\u2FCA\u2FCB\u2FCC\u2FCD\u2FCE\u2FCF\u2FD0\u2FD1"+
- "\u2FD2\u2FD3\u2FD4\u2FD5\u2FD6\u2FD7\u2FD8\u2FD9"+
- "\u2FDA\u2FDB\u2FDC\u2FDD\u2FDE\u2FDF\u2FE0\u2FE1"+
- "\u2FE2\u2FE3\u2FE4\u2FE5\u2FE6\u2FE7\u2FE8\u2FE9"+
- "\u2FEA\u2FEB\u2FEC\u2FED\u2FEE\u2FEF\u2FF0\u2FF1"+
- "\u2FF2\u2FF3\u2FF4\u2FF5\u2FF6\u2FF7\u2FF8\u2FF9"+
- "\u2FFA\u2FFB\u2FFC\u2FFD\u2FFE\u2FFF\u3000\u3001"+
- "\u3002\u3003\u3004\u3005\u3006\u3007\u3008\u3009"+
- "\u300A\u300B\u300C\u300D\u300E\u300F\u3010\u3011"+
- "\u3012\u3013\u3014\u3015\u3016\u3017\u3018\u3019"+
- "\u301A\u301B\u301C\u301D\u301E\u301F\u3020\u3021"+
- "\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029"+
- "\u302A\u302B\u302C\u302D\u302E\u302F\u3030\u3031"+
- "\u3032\u3033\u3034\u3035\u3036\u3037\u3038\u3039"+
- "\u303A\u303B\u303C\u303D\u303E\u303F\u3040\u3041"+
- "\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049"+
- "\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051"+
- "\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059"+
- "\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061"+
- "\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069"+
- "\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071"+
- "\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079"+
- "\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081"+
- "\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089"+
- "\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091"+
- "\u3092\u3093\u3094\u3095\u3096\u3097\u3098\u3099"+
- "\u309A\u309B\u309C\u309D\u309E\u309F\u30A0\u30A1"+
- "\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9"+
- "\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1"+
- "\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9"+
- "\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1"+
- "\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9"+
- "\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1"+
- "\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9"+
- "\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1"+
- "\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9"+
- "\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1"+
- "\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9"+
- "\u30FA\u30FB\u30FC\u30FD\u30FE\u30FF\u3100\u3101"+
- "\u3102\u3103\u3104\u3105\u3106\u3107\u3108\u3109"+
- "\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111"+
- "\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119"+
- "\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121"+
- "\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129"+
- "\u312A\u312B\u312C\u312D\u312E\u312F\u3130\u3131"+
- "\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139"+
- "\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141"+
- "\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149"+
- "\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151"+
- "\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159"+
- "\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161"+
- "\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169"+
- "\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171"+
- "\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179"+
- "\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181"+
- "\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189"+
- "\u318A\u318B\u318C\u318D\u318E\u318F\u3190\u3191"+
- "\u3192\u3193\u3194\u3195\u3196\u3197\u3198\u3199"+
- "\u319A\u319B\u319C\u319D\u319E\u319F\u31A0\u31A1"+
- "\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9"+
- "\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1"+
- "\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31B8\u31B9"+
- "\u31BA\u31BB\u31BC\u31BD\u31BE\u31BF\u31C0\u31C1"+
- "\u31C2\u31C3\u31C4\u31C5\u31C6\u31C7\u31C8\u31C9"+
- "\u31CA\u31CB\u31CC\u31CD\u31CE\u31CF\u31D0\u31D1"+
- "\u31D2\u31D3\u31D4\u31D5\u31D6\u31D7\u31D8\u31D9"+
- "\u31DA\u31DB\u31DC\u31DD\u31DE\u31DF\u31E0\u31E1"+
- "\u31E2\u31E3\u31E4\u31E5\u31E6\u31E7\u31E8\u31E9"+
- "\u31EA\u31EB\u31EC\u31ED\u31EE\u31EF\u31F0\u31F1"+
- "\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9"+
- "\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3200\u3201"+
- "\u3202\u3203\u3204\u3205\u3206\u3207\u3208\u3209"+
- "\u320A\u320B\u320C\u320D\u320E\u320F\u3210\u3211"+
- "\u3212\u3213\u3214\u3215\u3216\u3217\u3218\u3219"+
- "\u321A\u321B\u321C\u321D\u321E\u321F\u3220\u3221"+
- "\u3222\u3223\u3224\u3225\u3226\u3227\u3228\u3229"+
- "\u322A\u322B\u322C\u322D\u322E\u322F\u3230\u3231"+
- "\u3232\u3233\u3234\u3235\u3236\u3237\u3238\u3239"+
- "\u323A\u323B\u323C\u323D\u323E\u323F\u3240\u3241"+
- "\u3242\u3243\u3244\u3245\u3246\u3247\u3248\u3249"+
- "\u324A\u324B\u324C\u324D\u324E\u324F\u3250\u3251"+
- "\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259"+
- "\u325A\u325B\u325C\u325D\u325E\u325F\u3260\u3261"+
- "\u3262\u3263\u3264\u3265\u3266\u3267\u3268\u3269"+
- "\u326A\u326B\u326C\u326D\u326E\u326F\u3270\u3271"+
- "\u3272\u3273\u3274\u3275\u3276\u3277\u3278\u3279"+
- "\u327A\u327B\u327C\u327D\u327E\u327F\u3280\u3281"+
- "\u3282\u3283\u3284\u3285\u3286\u3287\u3288\u3289"+
- "\u328A\u328B\u328C\u328D\u328E\u328F\u3290\u3291"+
- "\u3292\u3293\u3294\u3295\u3296\u3297\u3298\u3299"+
- "\u329A\u329B\u329C\u329D\u329E\u329F\u32A0\u32A1"+
- "\u32A2\u32A3\u32A4\u32A5\u32A6\u32A7\u32A8\u32A9"+
- "\u32AA\u32AB\u32AC\u32AD\u32AE\u32AF\u32B0\u32B1"+
- "\u32B2\u32B3\u32B4\u32B5\u32B6\u32B7\u32B8\u32B9"+
- "\u32BA\u32BB\u32BC\u32BD\u32BE\u32BF\u32C0\u32C1"+
- "\u32C2\u32C3\u32C4\u32C5\u32C6\u32C7\u32C8\u32C9"+
- "\u32CA\u32CB\u32CC\u32CD\u32CE\u32CF\u32D0\u32D1"+
- "\u32D2\u32D3\u32D4\u32D5\u32D6\u32D7\u32D8\u32D9"+
- "\u32DA\u32DB\u32DC\u32DD\u32DE\u32DF\u32E0\u32E1"+
- "\u32E2\u32E3\u32E4\u32E5\u32E6\u32E7\u32E8\u32E9"+
- "\u32EA\u32EB\u32EC\u32ED\u32EE\u32EF\u32F0\u32F1"+
- "\u32F2\u32F3\u32F4\u32F5\u32F6\u32F7\u32F8\u32F9"+
- "\u32FA\u32FB\u32FC\u32FD\u32FE\u32FF\u3300\u3301"+
- "\u3302\u3303\u3304\u3305\u3306\u3307\u3308\u3309"+
- "\u330A\u330B\u330C\u330D\u330E\u330F\u3310\u3311"+
- "\u3312\u3313\u3314\u3315\u3316\u3317\u3318\u3319"+
- "\u331A\u331B\u331C\u331D\u331E\u331F\u3320\u3321"+
- "\u3322\u3323\u3324\u3325\u3326\u3327\u3328\u3329"+
- "\u332A\u332B\u332C\u332D\u332E\u332F\u3330\u3331"+
- "\u3332\u3333\u3334\u3335\u3336\u3337\u3338\u3339"+
- "\u333A\u333B\u333C\u333D\u333E\u333F\u3340\u3341"+
- "\u3342\u3343\u3344\u3345\u3346\u3347\u3348\u3349"+
- "\u334A\u334B\u334C\u334D\u334E\u334F\u3350\u3351"+
- "\u3352\u3353\u3354\u3355\u3356\u3357\u3358\u3359"+
- "\u335A\u335B\u335C\u335D\u335E\u335F\u3360\u3361"+
- "\u3362\u3363\u3364\u3365\u3366\u3367\u3368\u3369"+
- "\u336A\u336B\u336C\u336D\u336E\u336F\u3370\u3371"+
- "\u3372\u3373\u3374\u3375\u3376\u3377\u3378\u3379"+
- "\u337A\u337B\u337C\u337D\u337E\u337F\u3380\u3381"+
- "\u3382\u3383\u3384\u3385\u3386\u3387\u3388\u3389"+
- "\u338A\u338B\u338C\u338D\u338E\u338F\u3390\u3391"+
- "\u3392\u3393\u3394\u3395\u3396\u3397\u3398\u3399"+
- "\u339A\u339B\u339C\u339D\u339E\u339F\u33A0\u33A1"+
- "\u33A2\u33A3\u33A4\u33A5\u33A6\u33A7\u33A8\u33A9"+
- "\u33AA\u33AB\u33AC\u33AD\u33AE\u33AF\u33B0\u33B1"+
- "\u33B2\u33B3\u33B4\u33B5\u33B6\u33B7\u33B8\u33B9"+
- "\u33BA\u33BB\u33BC\u33BD\u33BE\u33BF\u33C0\u33C1"+
- "\u33C2\u33C3\u33C4\u33C5\u33C6\u33C7\u33C8\u33C9"+
- "\u33CA\u33CB\u33CC\u33CD\u33CE\u33CF\u33D0\u33D1"+
- "\u33D2\u33D3\u33D4\u33D5\u33D6\u33D7\u33D8\u33D9"+
- "\u33DA\u33DB\u33DC\u33DD\u33DE\u33DF\u33E0\u33E1"+
- "\u33E2\u33E3\u33E4\u33E5\u33E6\u33E7\u33E8\u33E9"+
- "\u33EA\u33EB\u33EC\u33ED\u33EE\u33EF\u33F0\u33F1"+
- "\u33F2\u33F3\u33F4\u33F5\u33F6\u33F7\u33F8\u33F9"+
- "\u33FA\u33FB\u33FC\u33FD\u33FE\u33FF\u3400\u3401"+
- "\u3402\u3403\u3404\u3405\u3406\u3407\u3408\u3409"+
- "\u340A\u340B\u340C\u340D\u340E\u340F\u3410\u3411"+
- "\u3412\u3413\u3414\u3415\u3416\u3417\u3418\u3419"+
- "\u341A\u341B\u341C\u341D\u341E\u341F\u3420\u3421"+
- "\u3422\u3423\u3424\u3425\u3426\u3427\u3428\u3429"+
- "\u342A\u342B\u342C\u342D\u342E\u342F\u3430\u3431"+
- "\u3432\u3433\u3434\u3435\u3436\u3437\u3438\u3439"+
- "\u343A\u343B\u343C\u343D\u343E\u343F\u3440\u3441"+
- "\u3442\u3443\u3444\u3445\u3446\u3447\u3448\u3449"+
- "\u344A\u344B\u344C\u344D\u344E\u344F\u3450\u3451"+
- "\u3452\u3453\u3454\u3455\u3456\u3457\u3458\u3459"+
- "\u345A\u345B\u345C\u345D\u345E\u345F\u3460\u3461"+
- "\u3462\u3463\u3464\u3465\u3466\u3467\u3468\u3469"+
- "\u346A\u346B\u346C\u346D\u346E\u346F\u3470\u3471"+
- "\u3472\u3473\u3474\u3475\u3476\u3477\u3478\u3479"+
- "\u347A\u347B\u347C\u347D\u347E\u347F\u3480\u3481"+
- "\u3482\u3483\u3484\u3485\u3486\u3487\u3488\u3489"+
- "\u348A\u348B\u348C\u348D\u348E\u348F\u3490\u3491"+
- "\u3492\u3493\u3494\u3495\u3496\u3497\u3498\u3499"+
- "\u349A\u349B\u349C\u349D\u349E\u349F\u34A0\u34A1"+
- "\u34A2\u34A3\u34A4\u34A5\u34A6\u34A7\u34A8\u34A9"+
- "\u34AA\u34AB\u34AC\u34AD\u34AE\u34AF\u34B0\u34B1"+
- "\u34B2\u34B3\u34B4\u34B5\u34B6\u34B7\u34B8\u34B9"+
- "\u34BA\u34BB\u34BC\u34BD\u34BE\u34BF\u34C0\u34C1"+
- "\u34C2\u34C3\u34C4\u34C5\u34C6\u34C7\u34C8\u34C9"+
- "\u34CA\u34CB\u34CC\u34CD\u34CE\u34CF\u34D0\u34D1"+
- "\u34D2\u34D3\u34D4\u34D5\u34D6\u34D7\u34D8\u34D9"+
- "\u34DA\u34DB\u34DC\u34DD\u34DE\u34DF\u34E0\u34E1"+
- "\u34E2\u34E3\u34E4\u34E5\u34E6\u34E7\u34E8\u34E9"+
- "\u34EA\u34EB\u34EC\u34ED\u34EE\u34EF\u34F0\u34F1"+
- "\u34F2\u34F3\u34F4\u34F5\u34F6\u34F7\u34F8\u34F9"+
- "\u34FA\u34FB\u34FC\u34FD\u34FE\u34FF\u3500\u3501"+
- "\u3502\u3503\u3504\u3505\u3506\u3507\u3508\u3509"+
- "\u350A\u350B\u350C\u350D\u350E\u350F\u3510\u3511"+
- "\u3512\u3513\u3514\u3515\u3516\u3517\u3518\u3519"+
- "\u351A\u351B\u351C\u351D\u351E\u351F\u3520\u3521"+
- "\u3522\u3523\u3524\u3525\u3526\u3527\u3528\u3529"+
- "\u352A\u352B\u352C\u352D\u352E\u352F\u3530\u3531"+
- "\u3532\u3533\u3534\u3535\u3536\u3537\u3538\u3539"+
- "\u353A\u353B\u353C\u353D\u353E\u353F\u3540\u3541"+
- "\u3542\u3543\u3544\u3545\u3546\u3547\u3548\u3549"+
- "\u354A\u354B\u354C\u354D\u354E\u354F\u3550\u3551"+
- "\u3552\u3553\u3554\u3555\u3556\u3557\u3558\u3559"+
- "\u355A\u355B\u355C\u355D\u355E\u355F\u3560\u3561"+
- "\u3562\u3563\u3564\u3565\u3566\u3567\u3568\u3569"+
- "\u356A\u356B\u356C\u356D\u356E\u356F\u3570\u3571"+
- "\u3572\u3573\u3574\u3575\u3576\u3577\u3578\u3579"+
- "\u357A\u357B\u357C\u357D\u357E\u357F\u3580\u3581"+
- "\u3582\u3583\u3584\u3585\u3586\u3587\u3588\u3589"+
- "\u358A\u358B\u358C\u358D\u358E\u358F\u3590\u3591"+
- "\u3592\u3593\u3594\u3595\u3596\u3597\u3598\u3599"+
- "\u359A\u359B\u359C\u359D\u359E\u359F\u35A0\u35A1"+
- "\u35A2\u35A3\u35A4\u35A5\u35A6\u35A7\u35A8\u35A9"+
- "\u35AA\u35AB\u35AC\u35AD\u35AE\u35AF\u35B0\u35B1"+
- "\u35B2\u35B3\u35B4\u35B5\u35B6\u35B7\u35B8\u35B9"+
- "\u35BA\u35BB\u35BC\u35BD\u35BE\u35BF\u35C0\u35C1"+
- "\u35C2\u35C3\u35C4\u35C5\u35C6\u35C7\u35C8\u35C9"+
- "\u35CA\u35CB\u35CC\u35CD\u35CE\u35CF\u35D0\u35D1"+
- "\u35D2\u35D3\u35D4\u35D5\u35D6\u35D7\u35D8\u35D9"+
- "\u35DA\u35DB\u35DC\u35DD\u35DE\u35DF\u35E0\u35E1"+
- "\u35E2\u35E3\u35E4\u35E5\u35E6\u35E7\u35E8\u35E9"+
- "\u35EA\u35EB\u35EC\u35ED\u35EE\u35EF\u35F0\u35F1"+
- "\u35F2\u35F3\u35F4\u35F5\u35F6\u35F7\u35F8\u35F9"+
- "\u35FA\u35FB\u35FC\u35FD\u35FE\u35FF\u3600\u3601"+
- "\u3602\u3603\u3604\u3605\u3606\u3607\u3608\u3609"+
- "\u360A\u360B\u360C\u360D\u360E\u360F\u3610\u3611"+
- "\u3612\u3613\u3614\u3615\u3616\u3617\u3618\u3619"+
- "\u361A\u361B\u361C\u361D\u361E\u361F\u3620\u3621"+
- "\u3622\u3623\u3624\u3625\u3626\u3627\u3628\u3629"+
- "\u362A\u362B\u362C\u362D\u362E\u362F\u3630\u3631"+
- "\u3632\u3633\u3634\u3635\u3636\u3637\u3638\u3639"+
- "\u363A\u363B\u363C\u363D\u363E\u363F\u3640\u3641"+
- "\u3642\u3643\u3644\u3645\u3646\u3647\u3648\u3649"+
- "\u364A\u364B\u364C\u364D\u364E\u364F\u3650\u3651"+
- "\u3652\u3653\u3654\u3655\u3656\u3657\u3658\u3659"+
- "\u365A\u365B\u365C\u365D\u365E\u365F\u3660\u3661"+
- "\u3662\u3663\u3664\u3665\u3666\u3667\u3668\u3669"+
- "\u366A\u366B\u366C\u366D\u366E\u366F\u3670\u3671"+
- "\u3672\u3673\u3674\u3675\u3676\u3677\u3678\u3679"+
- "\u367A\u367B\u367C\u367D\u367E\u367F\u3680\u3681"+
- "\u3682\u3683\u3684\u3685\u3686\u3687\u3688\u3689"+
- "\u368A\u368B\u368C\u368D\u368E\u368F\u3690\u3691"+
- "\u3692\u3693\u3694\u3695\u3696\u3697\u3698\u3699"+
- "\u369A\u369B\u369C\u369D\u369E\u369F\u36A0\u36A1"+
- "\u36A2\u36A3\u36A4\u36A5\u36A6\u36A7\u36A8\u36A9"+
- "\u36AA\u36AB\u36AC\u36AD\u36AE\u36AF\u36B0\u36B1"+
- "\u36B2\u36B3\u36B4\u36B5\u36B6\u36B7\u36B8\u36B9"+
- "\u36BA\u36BB\u36BC\u36BD\u36BE\u36BF\u36C0\u36C1"+
- "\u36C2\u36C3\u36C4\u36C5\u36C6\u36C7\u36C8\u36C9"+
- "\u36CA\u36CB\u36CC\u36CD\u36CE\u36CF\u36D0\u36D1"+
- "\u36D2\u36D3\u36D4\u36D5\u36D6\u36D7\u36D8\u36D9"+
- "\u36DA\u36DB\u36DC\u36DD\u36DE\u36DF\u36E0\u36E1"+
- "\u36E2\u36E3\u36E4\u36E5\u36E6\u36E7\u36E8\u36E9"+
- "\u36EA\u36EB\u36EC\u36ED\u36EE\u36EF\u36F0\u36F1"+
- "\u36F2\u36F3\u36F4\u36F5\u36F6\u36F7\u36F8\u36F9"+
- "\u36FA\u36FB\u36FC\u36FD\u36FE\u36FF\u3700\u3701"+
- "\u3702\u3703\u3704\u3705\u3706\u3707\u3708\u3709"+
- "\u370A\u370B\u370C\u370D\u370E\u370F\u3710\u3711"+
- "\u3712\u3713\u3714\u3715\u3716\u3717\u3718\u3719"+
- "\u371A\u371B\u371C\u371D\u371E\u371F\u3720\u3721"+
- "\u3722\u3723\u3724\u3725\u3726\u3727\u3728\u3729"+
- "\u372A\u372B\u372C\u372D\u372E\u372F\u3730\u3731"+
- "\u3732\u3733\u3734\u3735\u3736\u3737\u3738\u3739"+
- "\u373A\u373B\u373C\u373D\u373E\u373F\u3740\u3741"+
- "\u3742\u3743\u3744\u3745\u3746\u3747\u3748\u3749"+
- "\u374A\u374B\u374C\u374D\u374E\u374F\u3750\u3751"+
- "\u3752\u3753\u3754\u3755\u3756\u3757\u3758\u3759"+
- "\u375A\u375B\u375C\u375D\u375E\u375F\u3760\u3761"+
- "\u3762\u3763\u3764\u3765\u3766\u3767\u3768\u3769"+
- "\u376A\u376B\u376C\u376D\u376E\u376F\u3770\u3771"+
- "\u3772\u3773\u3774\u3775\u3776\u3777\u3778\u3779"+
- "\u377A\u377B\u377C\u377D\u377E\u377F\u3780\u3781"+
- "\u3782\u3783\u3784\u3785\u3786\u3787\u3788\u3789"+
- "\u378A\u378B\u378C\u378D\u378E\u378F\u3790\u3791"+
- "\u3792\u3793\u3794\u3795\u3796\u3797\u3798\u3799"+
- "\u379A\u379B\u379C\u379D\u379E\u379F\u37A0\u37A1"+
- "\u37A2\u37A3\u37A4\u37A5\u37A6\u37A7\u37A8\u37A9"+
- "\u37AA\u37AB\u37AC\u37AD\u37AE\u37AF\u37B0\u37B1"+
- "\u37B2\u37B3\u37B4\u37B5\u37B6\u37B7\u37B8\u37B9"+
- "\u37BA\u37BB\u37BC\u37BD\u37BE\u37BF\u37C0\u37C1"+
- "\u37C2\u37C3\u37C4\u37C5\u37C6\u37C7\u37C8\u37C9"+
- "\u37CA\u37CB\u37CC\u37CD\u37CE\u37CF\u37D0\u37D1"+
- "\u37D2\u37D3\u37D4\u37D5\u37D6\u37D7\u37D8\u37D9"+
- "\u37DA\u37DB\u37DC\u37DD\u37DE\u37DF\u37E0\u37E1"+
- "\u37E2\u37E3\u37E4\u37E5\u37E6\u37E7\u37E8\u37E9"+
- "\u37EA\u37EB\u37EC\u37ED\u37EE\u37EF\u37F0\u37F1"+
- "\u37F2\u37F3\u37F4\u37F5\u37F6\u37F7\u37F8\u37F9"+
- "\u37FA\u37FB\u37FC\u37FD\u37FE\u37FF\u3800\u3801"+
- "\u3802\u3803\u3804\u3805\u3806\u3807\u3808\u3809"+
- "\u380A\u380B\u380C\u380D\u380E\u380F\u3810\u3811"+
- "\u3812\u3813\u3814\u3815\u3816\u3817\u3818\u3819"+
- "\u381A\u381B\u381C\u381D\u381E\u381F\u3820\u3821"+
- "\u3822\u3823\u3824\u3825\u3826\u3827\u3828\u3829"+
- "\u382A\u382B\u382C\u382D\u382E\u382F\u3830\u3831"+
- "\u3832\u3833\u3834\u3835\u3836\u3837\u3838\u3839"+
- "\u383A\u383B\u383C\u383D\u383E\u383F\u3840\u3841"+
- "\u3842\u3843\u3844\u3845\u3846\u3847\u3848\u3849"+
- "\u384A\u384B\u384C\u384D\u384E\u384F\u3850\u3851"+
- "\u3852\u3853\u3854\u3855\u3856\u3857\u3858\u3859"+
- "\u385A\u385B\u385C\u385D\u385E\u385F\u3860\u3861"+
- "\u3862\u3863\u3864\u3865\u3866\u3867\u3868\u3869"+
- "\u386A\u386B\u386C\u386D\u386E\u386F\u3870\u3871"+
- "\u3872\u3873\u3874\u3875\u3876\u3877\u3878\u3879"+
- "\u387A\u387B\u387C\u387D\u387E\u387F\u3880\u3881"+
- "\u3882\u3883\u3884\u3885\u3886\u3887\u3888\u3889"+
- "\u388A\u388B\u388C\u388D\u388E\u388F\u3890\u3891"+
- "\u3892\u3893\u3894\u3895\u3896\u3897\u3898\u3899"+
- "\u389A\u389B\u389C\u389D\u389E\u389F\u38A0\u38A1"+
- "\u38A2\u38A3\u38A4\u38A5\u38A6\u38A7\u38A8\u38A9"+
- "\u38AA\u38AB\u38AC\u38AD\u38AE\u38AF\u38B0\u38B1"+
- "\u38B2\u38B3\u38B4\u38B5\u38B6\u38B7\u38B8\u38B9"+
- "\u38BA\u38BB\u38BC\u38BD\u38BE\u38BF\u38C0\u38C1"+
- "\u38C2\u38C3\u38C4\u38C5\u38C6\u38C7\u38C8\u38C9"+
- "\u38CA\u38CB\u38CC\u38CD\u38CE\u38CF\u38D0\u38D1"+
- "\u38D2\u38D3\u38D4\u38D5\u38D6\u38D7\u38D8\u38D9"+
- "\u38DA\u38DB\u38DC\u38DD\u38DE\u38DF\u38E0\u38E1"+
- "\u38E2\u38E3\u38E4\u38E5\u38E6\u38E7\u38E8\u38E9"+
- "\u38EA\u38EB\u38EC\u38ED\u38EE\u38EF\u38F0\u38F1"+
- "\u38F2\u38F3\u38F4\u38F5\u38F6\u38F7\u38F8\u38F9"+
- "\u38FA\u38FB\u38FC\u38FD\u38FE\u38FF\u3900\u3901"+
- "\u3902\u3903\u3904\u3905\u3906\u3907\u3908\u3909"+
- "\u390A\u390B\u390C\u390D\u390E\u390F\u3910\u3911"+
- "\u3912\u3913\u3914\u3915\u3916\u3917\u3918\u3919"+
- "\u391A\u391B\u391C\u391D\u391E\u391F\u3920\u3921"+
- "\u3922\u3923\u3924\u3925\u3926\u3927\u3928\u3929"+
- "\u392A\u392B\u392C\u392D\u392E\u392F\u3930\u3931"+
- "\u3932\u3933\u3934\u3935\u3936\u3937\u3938\u3939"+
- "\u393A\u393B\u393C\u393D\u393E\u393F\u3940\u3941"+
- "\u3942\u3943\u3944\u3945\u3946\u3947\u3948\u3949"+
- "\u394A\u394B\u394C\u394D\u394E\u394F\u3950\u3951"+
- "\u3952\u3953\u3954\u3955\u3956\u3957\u3958\u3959"+
- "\u395A\u395B\u395C\u395D\u395E\u395F\u3960\u3961"+
- "\u3962\u3963\u3964\u3965\u3966\u3967\u3968\u3969"+
- "\u396A\u396B\u396C\u396D\u396E\u396F\u3970\u3971"+
- "\u3972\u3973\u3974\u3975\u3976\u3977\u3978\u3979"+
- "\u397A\u397B\u397C\u397D\u397E\u397F\u3980\u3981"+
- "\u3982\u3983\u3984\u3985\u3986\u3987\u3988\u3989"+
- "\u398A\u398B\u398C\u398D\u398E\u398F\u3990\u3991"+
- "\u3992\u3993\u3994\u3995\u3996\u3997\u3998\u3999"+
- "\u399A\u399B\u399C\u399D\u399E\u399F\u39A0\u39A1"+
- "\u39A2\u39A3\u39A4\u39A5\u39A6\u39A7\u39A8\u39A9"+
- "\u39AA\u39AB\u39AC\u39AD\u39AE\u39AF\u39B0\u39B1"+
- "\u39B2\u39B3\u39B4\u39B5\u39B6\u39B7\u39B8\u39B9"+
- "\u39BA\u39BB\u39BC\u39BD\u39BE\u39BF\u39C0\u39C1"+
- "\u39C2\u39C3\u39C4\u39C5\u39C6\u39C7\u39C8\u39C9"+
- "\u39CA\u39CB\u39CC\u39CD\u39CE\u39CF\u39D0\u39D1"+
- "\u39D2\u39D3\u39D4\u39D5\u39D6\u39D7\u39D8\u39D9"+
- "\u39DA\u39DB\u39DC\u39DD\u39DE\u39DF\u39E0\u39E1"+
- "\u39E2\u39E3\u39E4\u39E5\u39E6\u39E7\u39E8\u39E9"+
- "\u39EA\u39EB\u39EC\u39ED\u39EE\u39EF\u39F0\u39F1"+
- "\u39F2\u39F3\u39F4\u39F5\u39F6\u39F7\u39F8\u39F9"+
- "\u39FA\u39FB\u39FC\u39FD\u39FE\u39FF\u3A00\u3A01"+
- "\u3A02\u3A03\u3A04\u3A05\u3A06\u3A07\u3A08\u3A09"+
- "\u3A0A\u3A0B\u3A0C\u3A0D\u3A0E\u3A0F\u3A10\u3A11"+
- "\u3A12\u3A13\u3A14\u3A15\u3A16\u3A17\u3A18\u3A19"+
- "\u3A1A\u3A1B\u3A1C\u3A1D\u3A1E\u3A1F\u3A20\u3A21"+
- "\u3A22\u3A23\u3A24\u3A25\u3A26\u3A27\u3A28\u3A29"+
- "\u3A2A\u3A2B\u3A2C\u3A2D\u3A2E\u3A2F\u3A30\u3A31"+
- "\u3A32\u3A33\u3A34\u3A35\u3A36\u3A37\u3A38\u3A39"+
- "\u3A3A\u3A3B\u3A3C\u3A3D\u3A3E\u3A3F\u3A40\u3A41"+
- "\u3A42\u3A43\u3A44\u3A45\u3A46\u3A47\u3A48\u3A49"+
- "\u3A4A\u3A4B\u3A4C\u3A4D\u3A4E\u3A4F\u3A50\u3A51"+
- "\u3A52\u3A53\u3A54\u3A55\u3A56\u3A57\u3A58\u3A59"+
- "\u3A5A\u3A5B\u3A5C\u3A5D\u3A5E\u3A5F\u3A60\u3A61"+
- "\u3A62\u3A63\u3A64\u3A65\u3A66\u3A67\u3A68\u3A69"+
- "\u3A6A\u3A6B\u3A6C\u3A6D\u3A6E\u3A6F\u3A70\u3A71"+
- "\u3A72\u3A73\u3A74\u3A75\u3A76\u3A77\u3A78\u3A79"+
- "\u3A7A\u3A7B\u3A7C\u3A7D\u3A7E\u3A7F\u3A80\u3A81"+
- "\u3A82\u3A83\u3A84\u3A85\u3A86\u3A87\u3A88\u3A89"+
- "\u3A8A\u3A8B\u3A8C\u3A8D\u3A8E\u3A8F\u3A90\u3A91"+
- "\u3A92\u3A93\u3A94\u3A95\u3A96\u3A97\u3A98\u3A99"+
- "\u3A9A\u3A9B\u3A9C\u3A9D\u3A9E\u3A9F\u3AA0\u3AA1"+
- "\u3AA2\u3AA3\u3AA4\u3AA5\u3AA6\u3AA7\u3AA8\u3AA9"+
- "\u3AAA\u3AAB\u3AAC\u3AAD\u3AAE\u3AAF\u3AB0\u3AB1"+
- "\u3AB2\u3AB3\u3AB4\u3AB5\u3AB6\u3AB7\u3AB8\u3AB9"+
- "\u3ABA\u3ABB\u3ABC\u3ABD\u3ABE\u3ABF\u3AC0\u3AC1"+
- "\u3AC2\u3AC3\u3AC4\u3AC5\u3AC6\u3AC7\u3AC8\u3AC9"+
- "\u3ACA\u3ACB\u3ACC\u3ACD\u3ACE\u3ACF\u3AD0\u3AD1"+
- "\u3AD2\u3AD3\u3AD4\u3AD5\u3AD6\u3AD7\u3AD8\u3AD9"+
- "\u3ADA\u3ADB\u3ADC\u3ADD\u3ADE\u3ADF\u3AE0\u3AE1"+
- "\u3AE2\u3AE3\u3AE4\u3AE5\u3AE6\u3AE7\u3AE8\u3AE9"+
- "\u3AEA\u3AEB\u3AEC\u3AED\u3AEE\u3AEF\u3AF0\u3AF1"+
- "\u3AF2\u3AF3\u3AF4\u3AF5\u3AF6\u3AF7\u3AF8\u3AF9"+
- "\u3AFA\u3AFB\u3AFC\u3AFD\u3AFE\u3AFF\u3B00\u3B01"+
- "\u3B02\u3B03\u3B04\u3B05\u3B06\u3B07\u3B08\u3B09"+
- "\u3B0A\u3B0B\u3B0C\u3B0D\u3B0E\u3B0F\u3B10\u3B11"+
- "\u3B12\u3B13\u3B14\u3B15\u3B16\u3B17\u3B18\u3B19"+
- "\u3B1A\u3B1B\u3B1C\u3B1D\u3B1E\u3B1F\u3B20\u3B21"+
- "\u3B22\u3B23\u3B24\u3B25\u3B26\u3B27\u3B28\u3B29"+
- "\u3B2A\u3B2B\u3B2C\u3B2D\u3B2E\u3B2F\u3B30\u3B31"+
- "\u3B32\u3B33\u3B34\u3B35\u3B36\u3B37\u3B38\u3B39"+
- "\u3B3A\u3B3B\u3B3C\u3B3D\u3B3E\u3B3F\u3B40\u3B41"+
- "\u3B42\u3B43\u3B44\u3B45\u3B46\u3B47\u3B48\u3B49"+
- "\u3B4A\u3B4B\u3B4C\u3B4D\u3B4E\u3B4F\u3B50\u3B51"+
- "\u3B52\u3B53\u3B54\u3B55\u3B56\u3B57\u3B58\u3B59"+
- "\u3B5A\u3B5B\u3B5C\u3B5D\u3B5E\u3B5F\u3B60\u3B61"+
- "\u3B62\u3B63\u3B64\u3B65\u3B66\u3B67\u3B68\u3B69"+
- "\u3B6A\u3B6B\u3B6C\u3B6D\u3B6E\u3B6F\u3B70\u3B71"+
- "\u3B72\u3B73\u3B74\u3B75\u3B76\u3B77\u3B78\u3B79"+
- "\u3B7A\u3B7B\u3B7C\u3B7D\u3B7E\u3B7F\u3B80\u3B81"+
- "\u3B82\u3B83\u3B84\u3B85\u3B86\u3B87\u3B88\u3B89"+
- "\u3B8A\u3B8B\u3B8C\u3B8D\u3B8E\u3B8F\u3B90\u3B91"+
- "\u3B92\u3B93\u3B94\u3B95\u3B96\u3B97\u3B98\u3B99"+
- "\u3B9A\u3B9B\u3B9C\u3B9D\u3B9E\u3B9F\u3BA0\u3BA1"+
- "\u3BA2\u3BA3\u3BA4\u3BA5\u3BA6\u3BA7\u3BA8\u3BA9"+
- "\u3BAA\u3BAB\u3BAC\u3BAD\u3BAE\u3BAF\u3BB0\u3BB1"+
- "\u3BB2\u3BB3\u3BB4\u3BB5\u3BB6\u3BB7\u3BB8\u3BB9"+
- "\u3BBA\u3BBB\u3BBC\u3BBD\u3BBE\u3BBF\u3BC0\u3BC1"+
- "\u3BC2\u3BC3\u3BC4\u3BC5\u3BC6\u3BC7\u3BC8\u3BC9"+
- "\u3BCA\u3BCB\u3BCC\u3BCD\u3BCE\u3BCF\u3BD0\u3BD1"+
- "\u3BD2\u3BD3\u3BD4\u3BD5\u3BD6\u3BD7\u3BD8\u3BD9"+
- "\u3BDA\u3BDB\u3BDC\u3BDD\u3BDE\u3BDF\u3BE0\u3BE1"+
- "\u3BE2\u3BE3\u3BE4\u3BE5\u3BE6\u3BE7\u3BE8\u3BE9"+
- "\u3BEA\u3BEB\u3BEC\u3BED\u3BEE\u3BEF\u3BF0\u3BF1"+
- "\u3BF2\u3BF3\u3BF4\u3BF5\u3BF6\u3BF7\u3BF8\u3BF9"+
- "\u3BFA\u3BFB\u3BFC\u3BFD\u3BFE\u3BFF\u3C00\u3C01"+
- "\u3C02\u3C03\u3C04\u3C05\u3C06\u3C07\u3C08\u3C09"+
- "\u3C0A\u3C0B\u3C0C\u3C0D\u3C0E\u3C0F\u3C10\u3C11"+
- "\u3C12\u3C13\u3C14\u3C15\u3C16\u3C17\u3C18\u3C19"+
- "\u3C1A\u3C1B\u3C1C\u3C1D\u3C1E\u3C1F\u3C20\u3C21"+
- "\u3C22\u3C23\u3C24\u3C25\u3C26\u3C27\u3C28\u3C29"+
- "\u3C2A\u3C2B\u3C2C\u3C2D\u3C2E\u3C2F\u3C30\u3C31"+
- "\u3C32\u3C33\u3C34\u3C35\u3C36\u3C37\u3C38\u3C39"+
- "\u3C3A\u3C3B\u3C3C\u3C3D\u3C3E\u3C3F\u3C40\u3C41"+
- "\u3C42\u3C43\u3C44\u3C45\u3C46\u3C47\u3C48\u3C49"+
- "\u3C4A\u3C4B\u3C4C\u3C4D\u3C4E\u3C4F\u3C50\u3C51"+
- "\u3C52\u3C53\u3C54\u3C55\u3C56\u3C57\u3C58\u3C59"+
- "\u3C5A\u3C5B\u3C5C\u3C5D\u3C5E\u3C5F\u3C60\u3C61"+
- "\u3C62\u3C63\u3C64\u3C65\u3C66\u3C67\u3C68\u3C69"+
- "\u3C6A\u3C6B\u3C6C\u3C6D\u3C6E\u3C6F\u3C70\u3C71"+
- "\u3C72\u3C73\u3C74\u3C75\u3C76\u3C77\u3C78\u3C79"+
- "\u3C7A\u3C7B\u3C7C\u3C7D\u3C7E\u3C7F\u3C80\u3C81"+
- "\u3C82\u3C83\u3C84\u3C85\u3C86\u3C87\u3C88\u3C89"+
- "\u3C8A\u3C8B\u3C8C\u3C8D\u3C8E\u3C8F\u3C90\u3C91"+
- "\u3C92\u3C93\u3C94\u3C95\u3C96\u3C97\u3C98\u3C99"+
- "\u3C9A\u3C9B\u3C9C\u3C9D\u3C9E\u3C9F\u3CA0\u3CA1"+
- "\u3CA2\u3CA3\u3CA4\u3CA5\u3CA6\u3CA7\u3CA8\u3CA9"+
- "\u3CAA\u3CAB\u3CAC\u3CAD\u3CAE\u3CAF\u3CB0\u3CB1"+
- "\u3CB2\u3CB3\u3CB4\u3CB5\u3CB6\u3CB7\u3CB8\u3CB9"+
- "\u3CBA\u3CBB\u3CBC\u3CBD\u3CBE\u3CBF\u3CC0\u3CC1"+
- "\u3CC2\u3CC3\u3CC4\u3CC5\u3CC6\u3CC7\u3CC8\u3CC9"+
- "\u3CCA\u3CCB\u3CCC\u3CCD\u3CCE\u3CCF\u3CD0\u3CD1"+
- "\u3CD2\u3CD3\u3CD4\u3CD5\u3CD6\u3CD7\u3CD8\u3CD9"+
- "\u3CDA\u3CDB\u3CDC\u3CDD\u3CDE\u3CDF\u3CE0\u3CE1"+
- "\u3CE2\u3CE3\u3CE4\u3CE5\u3CE6\u3CE7\u3CE8\u3CE9"+
- "\u3CEA\u3CEB\u3CEC\u3CED\u3CEE\u3CEF\u3CF0\u3CF1"+
- "\u3CF2\u3CF3\u3CF4\u3CF5\u3CF6\u3CF7\u3CF8\u3CF9"+
- "\u3CFA\u3CFB\u3CFC\u3CFD\u3CFE\u3CFF\u3D00\u3D01"+
- "\u3D02\u3D03\u3D04\u3D05\u3D06\u3D07\u3D08\u3D09"+
- "\u3D0A\u3D0B\u3D0C\u3D0D\u3D0E\u3D0F\u3D10\u3D11"+
- "\u3D12\u3D13\u3D14\u3D15\u3D16\u3D17\u3D18\u3D19"+
- "\u3D1A\u3D1B\u3D1C\u3D1D\u3D1E\u3D1F\u3D20\u3D21"+
- "\u3D22\u3D23\u3D24\u3D25\u3D26\u3D27\u3D28\u3D29"+
- "\u3D2A\u3D2B\u3D2C\u3D2D\u3D2E\u3D2F\u3D30\u3D31"+
- "\u3D32\u3D33\u3D34\u3D35\u3D36\u3D37\u3D38\u3D39"+
- "\u3D3A\u3D3B\u3D3C\u3D3D\u3D3E\u3D3F\u3D40\u3D41"+
- "\u3D42\u3D43\u3D44\u3D45\u3D46\u3D47\u3D48\u3D49"+
- "\u3D4A\u3D4B\u3D4C\u3D4D\u3D4E\u3D4F\u3D50\u3D51"+
- "\u3D52\u3D53\u3D54\u3D55\u3D56\u3D57\u3D58\u3D59"+
- "\u3D5A\u3D5B\u3D5C\u3D5D\u3D5E\u3D5F\u3D60\u3D61"+
- "\u3D62\u3D63\u3D64\u3D65\u3D66\u3D67\u3D68\u3D69"+
- "\u3D6A\u3D6B\u3D6C\u3D6D\u3D6E\u3D6F\u3D70\u3D71"+
- "\u3D72\u3D73\u3D74\u3D75\u3D76\u3D77\u3D78\u3D79"+
- "\u3D7A\u3D7B\u3D7C\u3D7D\u3D7E\u3D7F\u3D80\u3D81"+
- "\u3D82\u3D83\u3D84\u3D85\u3D86\u3D87\u3D88\u3D89"+
- "\u3D8A\u3D8B\u3D8C\u3D8D\u3D8E\u3D8F\u3D90\u3D91"+
- "\u3D92\u3D93\u3D94\u3D95\u3D96\u3D97\u3D98\u3D99"+
- "\u3D9A\u3D9B\u3D9C\u3D9D\u3D9E\u3D9F\u3DA0\u3DA1"+
- "\u3DA2\u3DA3\u3DA4\u3DA5\u3DA6\u3DA7\u3DA8\u3DA9"+
- "\u3DAA\u3DAB\u3DAC\u3DAD\u3DAE\u3DAF\u3DB0\u3DB1"+
- "\u3DB2\u3DB3\u3DB4\u3DB5\u3DB6\u3DB7\u3DB8\u3DB9"+
- "\u3DBA\u3DBB\u3DBC\u3DBD\u3DBE\u3DBF\u3DC0\u3DC1"+
- "\u3DC2\u3DC3\u3DC4\u3DC5\u3DC6\u3DC7\u3DC8\u3DC9"+
- "\u3DCA\u3DCB\u3DCC\u3DCD\u3DCE\u3DCF\u3DD0\u3DD1"+
- "\u3DD2\u3DD3\u3DD4\u3DD5\u3DD6\u3DD7\u3DD8\u3DD9"+
- "\u3DDA\u3DDB\u3DDC\u3DDD\u3DDE\u3DDF\u3DE0\u3DE1"+
- "\u3DE2\u3DE3\u3DE4\u3DE5\u3DE6\u3DE7\u3DE8\u3DE9"+
- "\u3DEA\u3DEB\u3DEC\u3DED\u3DEE\u3DEF\u3DF0\u3DF1"+
- "\u3DF2\u3DF3\u3DF4\u3DF5\u3DF6\u3DF7\u3DF8\u3DF9"+
- "\u3DFA\u3DFB\u3DFC\u3DFD\u3DFE\u3DFF\u3E00\u3E01"+
- "\u3E02\u3E03\u3E04\u3E05\u3E06\u3E07\u3E08\u3E09"+
- "\u3E0A\u3E0B\u3E0C\u3E0D\u3E0E\u3E0F\u3E10\u3E11"+
- "\u3E12\u3E13\u3E14\u3E15\u3E16\u3E17\u3E18\u3E19"+
- "\u3E1A\u3E1B\u3E1C\u3E1D\u3E1E\u3E1F\u3E20\u3E21"+
- "\u3E22\u3E23\u3E24\u3E25\u3E26\u3E27\u3E28\u3E29"+
- "\u3E2A\u3E2B\u3E2C\u3E2D\u3E2E\u3E2F\u3E30\u3E31"+
- "\u3E32\u3E33\u3E34\u3E35\u3E36\u3E37\u3E38\u3E39"+
- "\u3E3A\u3E3B\u3E3C\u3E3D\u3E3E\u3E3F\u3E40\u3E41"+
- "\u3E42\u3E43\u3E44\u3E45\u3E46\u3E47\u3E48\u3E49"+
- "\u3E4A\u3E4B\u3E4C\u3E4D\u3E4E\u3E4F\u3E50\u3E51"+
- "\u3E52\u3E53\u3E54\u3E55\u3E56\u3E57\u3E58\u3E59"+
- "\u3E5A\u3E5B\u3E5C\u3E5D\u3E5E\u3E5F\u3E60\u3E61"+
- "\u3E62\u3E63\u3E64\u3E65\u3E66\u3E67\u3E68\u3E69"+
- "\u3E6A\u3E6B\u3E6C\u3E6D\u3E6E\u3E6F\u3E70\u3E71"+
- "\u3E72\u3E73\u3E74\u3E75\u3E76\u3E77\u3E78\u3E79"+
- "\u3E7A\u3E7B\u3E7C\u3E7D\u3E7E\u3E7F\u3E80\u3E81"+
- "\u3E82\u3E83\u3E84\u3E85\u3E86\u3E87\u3E88\u3E89"+
- "\u3E8A\u3E8B\u3E8C\u3E8D\u3E8E\u3E8F\u3E90\u3E91"+
- "\u3E92\u3E93\u3E94\u3E95\u3E96\u3E97\u3E98\u3E99"+
- "\u3E9A\u3E9B\u3E9C\u3E9D\u3E9E\u3E9F\u3EA0\u3EA1"+
- "\u3EA2\u3EA3\u3EA4\u3EA5\u3EA6\u3EA7\u3EA8\u3EA9"+
- "\u3EAA\u3EAB\u3EAC\u3EAD\u3EAE\u3EAF\u3EB0\u3EB1"+
- "\u3EB2\u3EB3\u3EB4\u3EB5\u3EB6\u3EB7\u3EB8\u3EB9"+
- "\u3EBA\u3EBB\u3EBC\u3EBD\u3EBE\u3EBF\u3EC0\u3EC1"+
- "\u3EC2\u3EC3\u3EC4\u3EC5\u3EC6\u3EC7\u3EC8\u3EC9"+
- "\u3ECA\u3ECB\u3ECC\u3ECD\u3ECE\u3ECF\u3ED0\u3ED1"+
- "\u3ED2\u3ED3\u3ED4\u3ED5\u3ED6\u3ED7\u3ED8\u3ED9"+
- "\u3EDA\u3EDB\u3EDC\u3EDD\u3EDE\u3EDF\u3EE0\u3EE1";
-
- private final static String innerEncoderIndex2=
- "\u3EE2\u3EE3\u3EE4\u3EE5\u3EE6\u3EE7\u3EE8\u3EE9"+
- "\u3EEA\u3EEB\u3EEC\u3EED\u3EEE\u3EEF\u3EF0\u3EF1"+
- "\uA95C\u3EF2\u3EF3\uA843\uA1AA\uA844\uA1AC\u3EF4"+
- "\uA1AE\uA1AF\u3EF5\u3EF6\uA1B0\uA1B1\u3EF7\u3EF8"+
- "\u3EF9\u3EFA\u3EFB\u3EFC\u3EFD\uA845\uA1AD\u3EFE"+
- "\u3EFF\u3F00\u3F01\u3F02\u3F03\u3F04\u3F05\u3F06"+
- "\uA1EB\u3F07\uA1E4\uA1E5\u3F08\uA846\u3F09\u3F0A"+
- "\u3F0B\u3F0C\u3F0D\uA1F9\u3F0E\u3F0F\u3F10\u3F11"+
- "\u3F12\u3F13\u3F14\u3F15\u3F16\u3F17\u3F18\u3F19"+
- "\u3F1A\u3F1B\u3F1C\u3F1D\u3F1E\u3F1F\u3F20\u3F21"+
- "\u3F22\u3F23\u3F24\u3F25\u3F26\u3F27\u3F28\u3F29"+
- "\u3F2A\u3F2B\u3F2C\u3F2D\u3F2E\u3F2F\u3F30\u3F31"+
- "\u3F32\u3F33\u3F34\u3F35\u3F36\u3F37\u3F38\u3F39"+
- "\u3F3A\u3F3B\u3F3C\u3F3D\u3F3E\u3F3F\u3F40\u3F41"+
- "\u3F42\u3F43\u3F44\u3F45\u3F46\u3F47\u3F48\u3F49"+
- "\u3F4A\u3F4B\u3F4C\u3F4D\u3F4E\u3F4F\u3F50\u3F51"+
- "\u3F52\u3F53\u3F54\u3F55\u3F56\u3F57\u3F58\u3F59"+
- "\u3F5A\u3F5B\u3F5C\u3F5D\u3F5E\u3F5F\u3F60\u3F61"+
- "\u3F62\u3F63\u3F64\u3F65\u3F66\u3F67\u3F68\u3F69"+
- "\u3F6A\u3F6B\u3F6C\u3F6D\u3F6E\u3F6F\u3F70\u3F71"+
- "\u3F72\u3F73\u3F74\u3F75\u3F76\u3F77\u3F78\u3F79"+
- "\u3F7A\u3F7B\u3F7C\u3F7D\uA2E3\u3F7E\u3F7F\u3F80"+
- "\u3F81\u3F82\u3F83\u3F84\u3F85\u3F86\u3F87\u3F88"+
- "\u3F89\u3F8A\u3F8B\u3F8C\u3F8D\u3F8E\u3F8F\u3F90"+
- "\u3F91\u3F92\u3F93\u3F94\u3F95\u3F96\u3F97\u3F98"+
- "\u3F99\u3F9A\u3F9B\u3F9C\u3F9D\u3F9E\u3F9F\u3FA0"+
- "\u3FA1\u3FA2\u3FA3\u3FA4\u3FA5\u3FA6\u3FA7\u3FA8"+
- "\u3FA9\u3FAA\u3FAB\u3FAC\u3FAD\u3FAE\u3FAF\u3FB0"+
- "\u3FB1\u3FB2\u3FB3\u3FB4\u3FB5\u3FB6\u3FB7\u3FB8"+
- "\u3FB9\u3FBA\u3FBB\u3FBC\u3FBD\u3FBE\u3FBF\u3FC0"+
- "\u3FC1\u3FC2\u3FC3\u3FC4\u3FC5\u3FC6\u3FC7\u3FC8"+
- "\u3FC9\u3FCA\u3FCB\u3FCC\u3FCD\u3FCE\u3FCF\u3FD0"+
- "\u3FD1\u3FD2\u3FD3\uA1E6\u3FD4\uA847\u3FD5\u3FD6"+
- "\u3FD7\uA848\u3FD8\u3FD9\u3FDA\u3FDB\u3FDC\u3FDD"+
- "\u3FDE\u3FDF\u3FE0\u3FE1\u3FE2\u3FE3\uA1ED\u3FE4"+
- "\u3FE5\u3FE6\u3FE7\u3FE8\u3FE9\u3FEA\u3FEB\u3FEC"+
- "\u3FED\uA959\u3FEE\u3FEF\u3FF0\u3FF1\u3FF2\u3FF3"+
- "\u3FF4\u3FF5\u3FF6\u3FF7\u3FF8\u3FF9\u3FFA\u3FFB"+
- "\u3FFC\u3FFD\u3FFE\u3FFF\u4000\u4001\u4002\u4003"+
- "\u4004\u4005\u4006\u4007\u4008\u4009\u400A\u400B"+
- "\u400C\u400D\u400E\u400F\u4010\u4011\u4012\u4013"+
- "\u4014\u4015\u4016\u4017\u4018\u4019\u401A\u401B"+
- "\u401C\u401D\u401E\u401F\u4020\u4021\u4022\u4023"+
- "\u4024\u4025\u4026\u4027\u4028\u4029\u402A\u402B"+
- "\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7\uA2F8"+
- "\uA2F9\uA2FA\uA2FB\uA2FC\u402C\u402D\u402E\u402F"+
- "\uA2A1\uA2A2\uA2A3\uA2A4\uA2A5\uA2A6\uA2A7\uA2A8"+
- "\uA2A9\uA2AA\u4030\u4031\u4032\u4033\u4034\u4035"+
- "\u4036\u4037\u4038\u4039\u403A\u403B\u403C\u403D"+
- "\u403E\u403F\u4040\u4041\u4042\u4043\u4044\u4045"+
- "\uA1FB\uA1FC\uA1FA\uA1FD\u4046\u4047\uA849\uA84A"+
- "\uA84B\uA84C\u4048\u4049\u404A\u404B\u404C\u404D"+
- "\u404E\u404F\u4050\u4051\u4052\u4053\u4054\u4055"+
- "\u4056\u4057\u4058\u4059\u405A\u405B\u405C\u405D"+
- "\u405E\u405F\u4060\u4061\u4062\u4063\u4064\u4065"+
- "\u4066\u4067\u4068\u4069\u406A\u406B\u406C\u406D"+
- "\u406E\u406F\u4070\u4071\u4072\u4073\u4074\u4075"+
- "\u4076\u4077\u4078\u4079\u407A\u407B\u407C\u407D"+
- "\u407E\u407F\u4080\u4081\u4082\u4083\u4084\u4085"+
- "\u4086\u4087\u4088\u4089\u408A\u408B\u408C\u408D"+
- "\u408E\u408F\u4090\u4091\u4092\u4093\u4094\u4095"+
- "\u4096\u4097\u4098\u4099\u409A\u409B\u409C\u409D"+
- "\u409E\u409F\u40A0\u40A1\u40A2\u40A3\u40A4\u40A5"+
- "\u40A6\u40A7\u40A8\u40A9\u40AA\u40AB\u40AC\u40AD"+
- "\u40AE\u40AF\u40B0\u40B1\u40B2\u40B3\u40B4\u40B5"+
- "\uA1CA\u40B6\u40B7\u40B8\u40B9\u40BA\u40BB\uA1C7"+
- "\u40BC\uA1C6\u40BD\u40BE\u40BF\uA84D\u40C0\u40C1"+
- "\u40C2\u40C3\uA1CC\u40C4\u40C5\uA1D8\uA1DE\uA84E"+
- "\uA1CF\u40C6\u40C7\uA84F\u40C8\uA1CE\u40C9\uA1C4"+
- "\uA1C5\uA1C9\uA1C8\uA1D2\u40CA\u40CB\uA1D3\u40CC"+
- "\u40CD\u40CE\u40CF\u40D0\uA1E0\uA1DF\uA1C3\uA1CB"+
- "\u40D1\u40D2\u40D3\u40D4\u40D5\uA1D7\u40D6\u40D7"+
- "\u40D8\u40D9\u40DA\u40DB\u40DC\u40DD\u40DE\u40DF"+
- "\uA1D6\u40E0\u40E1\u40E2\uA1D5\u40E3\u40E4\u40E5"+
- "\u40E6\u40E7\uA850\u40E8\u40E9\u40EA\u40EB\u40EC"+
- "\u40ED\u40EE\u40EF\u40F0\u40F1\u40F2\u40F3\u40F4"+
- "\uA1D9\uA1D4\u40F5\u40F6\uA1DC\uA1DD\uA851\uA852"+
- "\u40F7\u40F8\u40F9\u40FA\u40FB\u40FC\uA1DA\uA1DB"+
- "\u40FD\u40FE\u40FF\u4100\u4101\u4102\u4103\u4104"+
- "\u4105\u4106\u4107\u4108\u4109\u410A\u410B\u410C"+
- "\u410D\u410E\u410F\u4110\u4111\u4112\u4113\u4114"+
- "\u4115\u4116\u4117\u4118\u4119\u411A\u411B\u411C"+
- "\u411D\u411E\u411F\u4120\u4121\uA892\u4122\u4123"+
- "\u4124\uA1D1\u4125\u4126\u4127\u4128\u4129\u412A"+
- "\u412B\u412C\u412D\u412E\u412F\uA1CD\u4130\u4131"+
- "\u4132\u4133\u4134\u4135\u4136\u4137\u4138\u4139"+
- "\u413A\u413B\u413C\u413D\u413E\u413F\u4140\u4141"+
- "\u4142\u4143\u4144\u4145\u4146\u4147\u4148\uA853"+
- "\u4149\u414A\u414B\u414C\u414D\u414E\u414F\u4150"+
- "\u4151\u4152\u4153\u4154\u4155\u4156\u4157\u4158"+
- "\u4159\u415A\u415B\u415C\u415D\u415E\u415F\u4160"+
- "\u4161\u4162\u4163\u4164\u4165\u4166\u4167\u4168"+
- "\u4169\u416A\u416B\u416C\u416D\u416E\u416F\u4170"+
- "\u4171\u4172\u4173\u4174\u4175\u4176\u4177\u4178"+
- "\u4179\u417A\u417B\u417C\u417D\u417E\u417F\u4180"+
- "\u4181\u4182\u4183\u4184\u4185\u4186\u4187\u4188"+
- "\u4189\u418A\u418B\u418C\u418D\u418E\u418F\u4190"+
- "\u4191\u4192\u4193\u4194\u4195\u4196\u4197\u4198"+
- "\u4199\u419A\uA1D0\u419B\u419C\u419D\u419E\u419F"+
- "\u41A0\u41A1\u41A2\u41A3\u41A4\u41A5\u41A6\u41A7"+
- "\u41A8\u41A9\u41AA\u41AB\u41AC\u41AD\u41AE\u41AF"+
- "\u41B0\u41B1\u41B2\u41B3\u41B4\u41B5\u41B6\u41B7"+
- "\u41B8\u41B9\u41BA\u41BB\u41BC\u41BD\u41BE\u41BF"+
- "\u41C0\u41C1\u41C2\u41C3\u41C4\u41C5\u41C6\u41C7"+
- "\u41C8\u41C9\u41CA\u41CB\u41CC\u41CD\u41CE\u41CF"+
- "\u41D0\u41D1\u41D2\u41D3\u41D4\u41D5\u41D6\u41D7"+
- "\u41D8\u41D9\u41DA\u41DB\u41DC\u41DD\u41DE\u41DF"+
- "\u41E0\u41E1\u41E2\u41E3\u41E4\u41E5\u41E6\u41E7"+
- "\u41E8\u41E9\u41EA\u41EB\u41EC\u41ED\u41EE\u41EF"+
- "\u41F0\u41F1\u41F2\u41F3\u41F4\u41F5\u41F6\u41F7"+
- "\u41F8\u41F9\u41FA\u41FB\u41FC\u41FD\u41FE\u41FF"+
- "\u4200\u4201\u4202\u4203\u4204\u4205\u4206\u4207"+
- "\u4208\u4209\u420A\u420B\u420C\u420D\u420E\u420F"+
- "\u4210\u4211\u4212\u4213\u4214\u4215\u4216\u4217"+
- "\u4218\u4219\u421A\u421B\u421C\u421D\u421E\u421F"+
- "\u4220\u4221\u4222\u4223\u4224\u4225\u4226\u4227"+
- "\u4228\u4229\u422A\u422B\u422C\u422D\u422E\u422F"+
- "\u4230\u4231\u4232\u4233\u4234\u4235\u4236\u4237"+
- "\u4238\u4239\u423A\u423B\u423C\u423D\u423E\u423F"+
- "\u4240\u4241\u4242\u4243\u4244\u4245\u4246\u4247"+
- "\u4248\u4249\u424A\u424B\u424C\u424D\u424E\u424F"+
- "\u4250\u4251\u4252\u4253\u4254\u4255\u4256\u4257"+
- "\u4258\u4259\u425A\u425B\u425C\u425D\u425E\u425F"+
- "\u4260\u4261\u4262\u4263\u4264\u4265\u4266\u4267"+
- "\u4268\u4269\u426A\u426B\u426C\u426D\u426E\u426F"+
- "\u4270\u4271\u4272\u4273\u4274\u4275\u4276\u4277"+
- "\u4278\u4279\u427A\u427B\u427C\u427D\u427E\u427F"+
- "\u4280\u4281\u4282\u4283\u4284\u4285\u4286\u4287"+
- "\u4288\u4289\u428A\u428B\u428C\u428D\u428E\u428F"+
- "\u4290\u4291\u4292\u4293\u4294\u4295\u4296\u4297"+
- "\u4298\u4299\u429A\u429B\u429C\u429D\u429E\u429F"+
- "\u42A0\u42A1\u42A2\u42A3\u42A4\u42A5\u42A6\u42A7"+
- "\u42A8\u42A9\u42AA\u42AB\u42AC\u42AD\u42AE\u42AF"+
- "\u42B0\u42B1\u42B2\u42B3\u42B4\u42B5\u42B6\u42B7"+
- "\u42B8\u42B9\u42BA\u42BB\u42BC\u42BD\u42BE\u42BF"+
- "\u42C0\u42C1\u42C2\u42C3\u42C4\u42C5\u42C6\u42C7"+
- "\u42C8\u42C9\u42CA\u42CB\u42CC\u42CD\u42CE\u42CF"+
- "\u42D0\u42D1\u42D2\u42D3\u42D4\u42D5\u42D6\u42D7"+
- "\u42D8\u42D9\u42DA\u42DB\u42DC\u42DD\u42DE\u42DF"+
- "\u42E0\u42E1\u42E2\u42E3\u42E4\u42E5\u42E6\u42E7"+
- "\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD\uA2DE\uA2DF\uA2E0"+
- "\uA2E1\uA2E2\u42E8\u42E9\u42EA\u42EB\u42EC\u42ED"+
- "\u42EE\u42EF\u42F0\u42F1\uA2C5\uA2C6\uA2C7\uA2C8"+
- "\uA2C9\uA2CA\uA2CB\uA2CC\uA2CD\uA2CE\uA2CF\uA2D0"+
- "\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5\uA2D6\uA2D7\uA2D8"+
- "\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6\uA2B7\uA2B8"+
- "\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0"+
- "\uA2C1\uA2C2\uA2C3\uA2C4\u42F2\u42F3\u42F4\u42F5"+
- "\u42F6\u42F7\u42F8\u42F9\u42FA\u42FB\u42FC\u42FD"+
- "\u42FE\u42FF\u4300\u4301\u4302\u4303\u4304\u4305"+
- "\u4306\u4307\u4308\u4309\u430A\u430B\u430C\u430D"+
- "\u430E\u430F\u4310\u4311\u4312\u4313\u4314\u4315"+
- "\u4316\u4317\u4318\u4319\u431A\u431B\u431C\u431D"+
- "\u431E\u431F\u4320\u4321\u4322\u4323\u4324\u4325"+
- "\u4326\u4327\u4328\u4329\u432A\u432B\u432C\u432D"+
- "\u432E\u432F\u4330\u4331\u4332\u4333\u4334\u4335"+
- "\u4336\u4337\u4338\u4339\u433A\u433B\u433C\u433D"+
- "\u433E\u433F\u4340\u4341\u4342\u4343\u4344\u4345"+
- "\u4346\u4347\u4348\u4349\u434A\u434B\u434C\u434D"+
- "\u434E\u434F\u4350\u4351\u4352\u4353\u4354\u4355"+
- "\uA9A4\uA9A5\uA9A6\uA9A7\uA9A8\uA9A9\uA9AA\uA9AB"+
- "\uA9AC\uA9AD\uA9AE\uA9AF\uA9B0\uA9B1\uA9B2\uA9B3"+
- "\uA9B4\uA9B5\uA9B6\uA9B7\uA9B8\uA9B9\uA9BA\uA9BB"+
- "\uA9BC\uA9BD\uA9BE\uA9BF\uA9C0\uA9C1\uA9C2\uA9C3"+
- "\uA9C4\uA9C5\uA9C6\uA9C7\uA9C8\uA9C9\uA9CA\uA9CB"+
- "\uA9CC\uA9CD\uA9CE\uA9CF\uA9D0\uA9D1\uA9D2\uA9D3"+
- "\uA9D4\uA9D5\uA9D6\uA9D7\uA9D8\uA9D9\uA9DA\uA9DB"+
- "\uA9DC\uA9DD\uA9DE\uA9DF\uA9E0\uA9E1\uA9E2\uA9E3"+
- "\uA9E4\uA9E5\uA9E6\uA9E7\uA9E8\uA9E9\uA9EA\uA9EB"+
- "\uA9EC\uA9ED\uA9EE\uA9EF\u4356\u4357\u4358\u4359"+
- "\uA854\uA855\uA856\uA857\uA858\uA859\uA85A\uA85B"+
- "\uA85C\uA85D\uA85E\uA85F\uA860\uA861\uA862\uA863"+
- "\uA864\uA865\uA866\uA867\uA868\uA869\uA86A\uA86B"+
- "\uA86C\uA86D\uA86E\uA86F\uA870\uA871\uA872\uA873"+
- "\uA874\uA875\uA876\uA877\u435A\u435B\u435C\u435D"+
- "\u435E\u435F\u4360\u4361\u4362\u4363\u4364\u4365"+
- "\u4366\uA878\uA879\uA87A\uA87B\uA87C\uA87D\uA87E"+
- "\uA880\uA881\uA882\uA883\uA884\uA885\uA886\uA887"+
- "\u4367\u4368\u4369\uA888\uA889\uA88A\u436A\u436B"+
- "\u436C\u436D\u436E\u436F\u4370\u4371\u4372\u4373"+
- "\uA1F6\uA1F5\u4374\u4375\u4376\u4377\u4378\u4379"+
- "\u437A\u437B\u437C\u437D\u437E\u437F\u4380\u4381"+
- "\u4382\u4383\uA1F8\uA1F7\u4384\u4385\u4386\u4387"+
- "\u4388\u4389\u438A\u438B\uA88B\uA88C\u438C\u438D"+
- "\u438E\u438F\u4390\u4391\u4392\u4393\uA1F4\uA1F3"+
- "\u4394\u4395\u4396\uA1F0\u4397\u4398\uA1F2\uA1F1"+
- "\u4399\u439A\u439B\u439C\u439D\u439E\u439F\u43A0"+
- "\u43A1\u43A2\u43A3\u43A4\u43A5\u43A6\u43A7\u43A8"+
- "\u43A9\u43AA\uA88D\uA88E\uA88F\uA890\u43AB\u43AC"+
- "\u43AD\u43AE\u43AF\u43B0\u43B1\u43B2\u43B3\u43B4"+
- "\u43B5\u43B6\u43B7\u43B8\u43B9\u43BA\u43BB\u43BC"+
- "\u43BD\u43BE\u43BF\u43C0\u43C1\u43C2\u43C3\u43C4"+
- "\u43C5\u43C6\u43C7\u43C8\u43C9\uA1EF\uA1EE\u43CA"+
- "\u43CB\uA891\u43CC\u43CD\u43CE\u43CF\u43D0\u43D1"+
- "\u43D2\u43D3\u43D4\u43D5\u43D6\u43D7\u43D8\u43D9"+
- "\u43DA\u43DB\u43DC\u43DD\u43DE\u43DF\u43E0\u43E1"+
- "\u43E2\u43E3\u43E4\u43E5\u43E6\u43E7\u43E8\u43E9"+
- "\u43EA\u43EB\u43EC\u43ED\u43EE\u43EF\u43F0\u43F1"+
- "\u43F2\u43F3\u43F4\u43F5\u43F6\u43F7\u43F8\u43F9"+
- "\u43FA\u43FB\u43FC\u43FD\u43FE\u43FF\u4400\u4401"+
- "\uA1E2\u4402\uA1E1\u4403\u4404\u4405\u4406\u4407"+
- "\u4408\u4409\u440A\u440B\u440C\u440D\u440E\u440F"+
- "\u4410\u4411\u4412\u4413\u4414\u4415\u4416\u4417"+
- "\u4418\u4419\u441A\u441B\u441C\u441D\u441E\u441F"+
- "\u4420\u4421\u4422\u4423\u4424\u4425\u4426\u4427"+
- "\u4428\u4429\u442A\u442B\u442C\u442D\u442E\u442F"+
- "\u4430\u4431\u4432\u4433\u4434\u4435\u4436\u4437"+
- "\u4438\u4439\u443A\u443B\u443C\u443D\u443E\u443F"+
- "\u4440\u4441\u4442\u4443\u4444\u4445\u4446\u4447"+
- "\u4448\u4449\u444A\u444B\u444C\u444D\u444E\u444F"+
- "\u4450\u4451\u4452\u4453\u4454\u4455\u4456\u4457"+
- "\u4458\u4459\u445A\u445B\u445C\u445D\u445E\u445F"+
- "\u4460\u4461\u4462\u4463\u4464\u4465\u4466\u4467"+
- "\u4468\u4469\u446A\u446B\u446C\u446D\u446E\u446F"+
- "\u4470\u4471\u4472\u4473\u4474\u4475\u4476\u4477"+
- "\u4478\u4479\u447A\u447B\u447C\u447D\u447E\u447F"+
- "\u4480\u4481\u4482\u4483\u4484\u4485\u4486\u4487"+
- "\u4488\u4489\u448A\u448B\u448C\u448D\u448E\u448F"+
- "\u4490\u4491\u4492\u4493\u4494\u4495\u4496\u4497"+
- "\u4498\u4499\u449A\u449B\u449C\u449D\u449E\u449F"+
- "\u44A0\u44A1\u44A2\u44A3\u44A4\u44A5\u44A6\u44A7"+
- "\u44A8\u44A9\u44AA\u44AB\u44AC\u44AD\u44AE\u44AF"+
- "\u44B0\u44B1\u44B2\u44B3\u44B4\u44B5\u44B6\u44B7"+
- "\u44B8\u44B9\u44BA\u44BB\u44BC\u44BD\u44BE\u44BF"+
- "\u44C0\u44C1\u44C2\u44C3\u44C4\u44C5\u44C6\u44C7"+
- "\u44C8\u44C9\u44CA\u44CB\u44CC\u44CD\u44CE\u44CF"+
- "\u44D0\u44D1\u44D2\u44D3\u44D4\u44D5\u44D6\u44D7"+
- "\u44D8\u44D9\u44DA\u44DB\u44DC\u44DD\u44DE\u44DF"+
- "\u44E0\u44E1\u44E2\u44E3\u44E4\u44E5\u44E6\u44E7"+
- "\u44E8\u44E9\u44EA\u44EB\u44EC\u44ED\u44EE\u44EF"+
- "\u44F0\u44F1\u44F2\u44F3\u44F4\u44F5\u44F6\u44F7"+
- "\u44F8\u44F9\u44FA\u44FB\u44FC\u44FD\u44FE\u44FF"+
- "\u4500\u4501\u4502\u4503\u4504\u4505\u4506\u4507"+
- "\u4508\u4509\u450A\u450B\u450C\u450D\u450E\u450F"+
- "\u4510\u4511\u4512\u4513\u4514\u4515\u4516\u4517"+
- "\u4518\u4519\u451A\u451B\u451C\u451D\u451E\u451F"+
- "\u4520\u4521\u4522\u4523\u4524\u4525\u4526\u4527"+
- "\u4528\u4529\u452A\u452B\u452C\u452D\u452E\u452F"+
- "\u4530\u4531\u4532\u4533\u4534\u4535\u4536\u4537"+
- "\u4538\u4539\u453A\u453B\u453C\u453D\u453E\u453F"+
- "\u4540\u4541\u4542\u4543\u4544\u4545\u4546\u4547"+
- "\u4548\u4549\u454A\u454B\u454C\u454D\u454E\u454F"+
- "\u4550\u4551\u4552\u4553\u4554\u4555\u4556\u4557"+
- "\u4558\u4559\u455A\u455B\u455C\u455D\u455E\u455F"+
- "\u4560\u4561\u4562\u4563\u4564\u4565\u4566\u4567"+
- "\u4568\u4569\u456A\u456B\u456C\u456D\u456E\u456F"+
- "\u4570\u4571\u4572\u4573\u4574\u4575\u4576\u4577"+
- "\u4578\u4579\u457A\u457B\u457C\u457D\u457E\u457F"+
- "\u4580\u4581\u4582\u4583\u4584\u4585\u4586\u4587"+
- "\u4588\u4589\u458A\u458B\u458C\u458D\u458E\u458F"+
- "\u4590\u4591\u4592\u4593\u4594\u4595\u4596\u4597"+
- "\u4598\u4599\u459A\u459B\u459C\u459D\u459E\u459F"+
- "\u45A0\u45A1\u45A2\u45A3\u45A4\u45A5\u45A6\u45A7"+
- "\u45A8\u45A9\u45AA\u45AB\u45AC\u45AD\u45AE\u45AF"+
- "\u45B0\u45B1\u45B2\u45B3\u45B4\u45B5\u45B6\u45B7"+
- "\u45B8\u45B9\u45BA\u45BB\u45BC\u45BD\u45BE\u45BF"+
- "\u45C0\u45C1\u45C2\u45C3\u45C4\u45C5\u45C6\u45C7"+
- "\u45C8\u45C9\u45CA\u45CB\u45CC\u45CD\u45CE\u45CF"+
- "\u45D0\u45D1\u45D2\u45D3\u45D4\u45D5\u45D6\u45D7"+
- "\u45D8\u45D9\u45DA\u45DB\u45DC\u45DD\u45DE\u45DF"+
- "\u45E0\u45E1\u45E2\u45E3\u45E4\u45E5\u45E6\u45E7"+
- "\u45E8\u45E9\u45EA\u45EB\u45EC\u45ED\u45EE\u45EF"+
- "\u45F0\u45F1\u45F2\u45F3\u45F4\u45F5\u45F6\u45F7"+
- "\u45F8\u45F9\u45FA\u45FB\u45FC\u45FD\u45FE\u45FF"+
- "\u4600\u4601\u4602\u4603\u4604\u4605\u4606\u4607"+
- "\u4608\u4609\u460A\u460B\u460C\u460D\u460E\u460F"+
- "\u4610\u4611\u4612\u4613\u4614\u4615\u4616\u4617"+
- "\u4618\u4619\u461A\u461B\u461C\u461D\u461E\u461F"+
- "\u4620\u4621\u4622\u4623\u4624\u4625\u4626\u4627"+
- "\u4628\u4629\u462A\u462B\u462C\u462D\u462E\u462F"+
- "\u4630\u4631\u4632\u4633\u4634\u4635\u4636\u4637"+
- "\u4638\u4639\u463A\u463B\u463C\u463D\u463E\u463F"+
- "\u4640\u4641\u4642\u4643\u4644\u4645\u4646\u4647"+
- "\u4648\u4649\u464A\u464B\u464C\u464D\u464E\u464F"+
- "\u4650\u4651\u4652\u4653\u4654\u4655\u4656\u4657"+
- "\u4658\u4659\u465A\u465B\u465C\u465D\u465E\u465F"+
- "\u4660\u4661\u4662\u4663\u4664\u4665\u4666\u4667"+
- "\u4668\u4669\u466A\u466B\u466C\u466D\u466E\u466F"+
- "\u4670\u4671\u4672\u4673\u4674\u4675\u4676\u4677"+
- "\u4678\u4679\u467A\u467B\u467C\u467D\u467E\u467F"+
- "\u4680\u4681\u4682\u4683\u4684\u4685\u4686\u4687"+
- "\u4688\u4689\u468A\u468B\u468C\u468D\u468E\u468F"+
- "\u4690\u4691\u4692\u4693\u4694\u4695\u4696\u4697"+
- "\u4698\u4699\u469A\u469B\u469C\u469D\u469E\u469F"+
- "\u46A0\u46A1\u46A2\u46A3\u46A4\u46A5\u46A6\u46A7"+
- "\u46A8\u46A9\u46AA\u46AB\u46AC\u46AD\u46AE\u46AF"+
- "\u46B0\u46B1\u46B2\u46B3\u46B4\u46B5\u46B6\u46B7"+
- "\u46B8\u46B9\u46BA\u46BB\u46BC\u46BD\u46BE\u46BF"+
- "\u46C0\u46C1\u46C2\u46C3\u46C4\u46C5\u46C6\u46C7"+
- "\u46C8\u46C9\u46CA\u46CB\u46CC\u46CD\u46CE\u46CF"+
- "\u46D0\u46D1\u46D2\u46D3\u46D4\u46D5\u46D6\u46D7"+
- "\u46D8\u46D9\u46DA\u46DB\u46DC\u46DD\u46DE\u46DF"+
- "\u46E0\u46E1\u46E2\u46E3\u46E4\u46E5\u46E6\u46E7"+
- "\u46E8\u46E9\u46EA\u46EB\u46EC\u46ED\u46EE\u46EF"+
- "\u46F0\u46F1\u46F2\u46F3\u46F4\u46F5\u46F6\u46F7"+
- "\u46F8\u46F9\u46FA\u46FB\u46FC\u46FD\u46FE\u46FF"+
- "\u4700\u4701\u4702\u4703\u4704\u4705\u4706\u4707"+
- "\u4708\u4709\u470A\u470B\u470C\u470D\u470E\u470F"+
- "\u4710\u4711\u4712\u4713\u4714\u4715\u4716\u4717"+
- "\u4718\u4719\u471A\u471B\u471C\u471D\u471E\u471F"+
- "\u4720\u4721\u4722\u4723\u4724\u4725\u4726\u4727"+
- "\u4728\u4729\u472A\u472B\u472C\u472D\u472E\u472F"+
- "\u4730\u4731\u4732\u4733\u4734\u4735\u4736\u4737"+
- "\u4738\u4739\u473A\u473B\u473C\u473D\u473E\u473F"+
- "\u4740\u4741\u4742\u4743\u4744\u4745\u4746\u4747"+
- "\u4748\u4749\u474A\u474B\u474C\u474D\u474E\u474F"+
- "\u4750\u4751\u4752\u4753\u4754\u4755\u4756\u4757"+
- "\u4758\u4759\u475A\u475B\u475C\u475D\u475E\u475F"+
- "\u4760\u4761\u4762\u4763\u4764\u4765\u4766\u4767"+
- "\u4768\u4769\u476A\u476B\u476C\u476D\u476E\u476F"+
- "\u4770\u4771\u4772\u4773\u4774\u4775\u4776\u4777"+
- "\u4778\u4779\u477A\u477B\u477C\u477D\u477E\u477F"+
- "\u4780\u4781\u4782\u4783\u4784\u4785\u4786\u4787"+
- "\u4788\u4789\u478A\u478B\u478C\u478D\u478E\u478F"+
- "\u4790\u4791\u4792\u4793\u4794\u4795\u4796\u4797"+
- "\u4798\u4799\u479A\u479B\u479C\u479D\u479E\u479F"+
- "\u47A0\u47A1\u47A2\u47A3\u47A4\u47A5\u47A6\u47A7"+
- "\u47A8\u47A9\u47AA\u47AB\u47AC\u47AD\u47AE\u47AF"+
- "\u47B0\u47B1\u47B2\u47B3\u47B4\u47B5\u47B6\u47B7"+
- "\u47B8\u47B9\u47BA\u47BB\u47BC\u47BD\u47BE\u47BF"+
- "\u47C0\u47C1\u47C2\u47C3\u47C4\u47C5\u47C6\u47C7"+
- "\u47C8\u47C9\u47CA\u47CB\u47CC\u47CD\u47CE\u47CF"+
- "\u47D0\u47D1\u47D2\u47D3\u47D4\u47D5\u47D6\u47D7"+
- "\u47D8\u47D9\u47DA\u47DB\u47DC\u47DD\u47DE\u47DF"+
- "\u47E0\u47E1\u47E2\u47E3\u47E4\u47E5\u47E6\u47E7"+
- "\u47E8\u47E9\u47EA\u47EB\u47EC\u47ED\u47EE\u47EF"+
- "\u47F0\u47F1\u47F2\u47F3\u47F4\u47F5\u47F6\u47F7"+
- "\u47F8\u47F9\u47FA\u47FB\u47FC\u47FD\u47FE\u47FF"+
- "\u4800\u4801\u4802\u4803\u4804\u4805\u4806\u4807"+
- "\u4808\u4809\u480A\u480B\u480C\u480D\u480E\u480F"+
- "\u4810\u4811\u4812\u4813\u4814\u4815\u4816\u4817"+
- "\u4818\u4819\u481A\u481B\u481C\u481D\u481E\u481F"+
- "\u4820\u4821\u4822\u4823\u4824\u4825\u4826\u4827"+
- "\u4828\u4829\u482A\u482B\u482C\u482D\u482E\u482F"+
- "\u4830\u4831\u4832\u4833\u4834\u4835\u4836\u4837"+
- "\u4838\u4839\u483A\u483B\u483C\u483D\u483E\u483F"+
- "\u4840\u4841\u4842\u4843\u4844\u4845\u4846\u4847"+
- "\u4848\u4849\u484A\u484B\u484C\u484D\u484E\u484F"+
- "\u4850\u4851\u4852\u4853\u4854\u4855\u4856\u4857"+
- "\u4858\u4859\u485A\u485B\u485C\u485D\u485E\u485F"+
- "\u4860\u4861\u4862\u4863\u4864\u4865\u4866\u4867"+
- "\u4868\u4869\u486A\u486B\u486C\u486D\u486E\u486F"+
- "\u4870\u4871\u4872\u4873\u4874\u4875\u4876\u4877"+
- "\u4878\u4879\u487A\u487B\u487C\u487D\u487E\u487F"+
- "\u4880\u4881\u4882\u4883\u4884\u4885\u4886\u4887"+
- "\u4888\u4889\u488A\u488B\u488C\u488D\u488E\u488F"+
- "\u4890\u4891\u4892\u4893\u4894\u4895\u4896\u4897"+
- "\u4898\u4899\u489A\u489B\u489C\u489D\u489E\u489F"+
- "\u48A0\u48A1\u48A2\u48A3\u48A4\u48A5\u48A6\u48A7"+
- "\u48A8\u48A9\u48AA\u48AB\u48AC\u48AD\u48AE\u48AF"+
- "\u48B0\u48B1\u48B2\u48B3\u48B4\u48B5\u48B6\u48B7"+
- "\u48B8\u48B9\u48BA\u48BB\u48BC\u48BD\u48BE\u48BF"+
- "\u48C0\u48C1\u48C2\u48C3\u48C4\u48C5\u48C6\u48C7"+
- "\u48C8\u48C9\u48CA\u48CB\u48CC\u48CD\u48CE\u48CF"+
- "\u48D0\u48D1\u48D2\u48D3\u48D4\u48D5\u48D6\u48D7"+
- "\u48D8\u48D9\u48DA\u48DB\u48DC\u48DD\u48DE\u48DF"+
- "\u48E0\u48E1\u48E2\u48E3\u48E4\u48E5\u48E6\u48E7"+
- "\u48E8\u48E9\u48EA\u48EB\u48EC\u48ED\u48EE\u48EF"+
- "\u48F0\u48F1\u48F2\u48F3\u48F4\u48F5\u48F6\u48F7"+
- "\u48F8\u48F9\u48FA\u48FB\u48FC\u48FD\u48FE\u48FF"+
- "\u4900\u4901\u4902\u4903\u4904\u4905\u4906\u4907"+
- "\u4908\u4909\u490A\u490B\u490C\u490D\u490E\u490F"+
- "\u4910\u4911\u4912\u4913\u4914\u4915\u4916\u4917"+
- "\u4918\u4919\u491A\u491B\u491C\u491D\u491E\u491F"+
- "\u4920\u4921\u4922\u4923\u4924\u4925\u4926\u4927"+
- "\u4928\u4929\u492A\u492B\u492C\u492D\u492E\u492F"+
- "\u4930\u4931\u4932\u4933\u4934\u4935\u4936\u4937"+
- "\u4938\u4939\u493A\u493B\u493C\u493D\u493E\u493F"+
- "\u4940\u4941\u4942\u4943\u4944\u4945\u4946\u4947"+
- "\u4948\u4949\u494A\u494B\u494C\u494D\u494E\u494F"+
- "\u4950\u4951\u4952\u4953\u4954\u4955\u4956\u4957"+
- "\u4958\u4959\u495A\u495B\u495C\u495D\u495E\u495F"+
- "\u4960\u4961\u4962\u4963\u4964\u4965\u4966\u4967"+
- "\u4968\u4969\u496A\u496B\u496C\u496D\u496E\u496F"+
- "\u4970\u4971\u4972\u4973\u4974\u4975\u4976\u4977"+
- "\u4978\u4979\u497A\u497B\u497C\u497D\u497E\u497F"+
- "\u4980\u4981\u4982\u4983\u4984\u4985\u4986\u4987"+
- "\u4988\u4989\u498A\u498B\u498C\u498D\u498E\u498F"+
- "\u4990\u4991\u4992\u4993\u4994\u4995\u4996\u4997"+
- "\u4998\u4999\u499A\u499B\u499C\u499D\u499E\u499F"+
- "\u49A0\u49A1\u49A2\u49A3\u49A4\u49A5\u49A6\u49A7"+
- "\u49A8\u49A9\u49AA\u49AB\u49AC\u49AD\u49AE\u49AF"+
- "\u49B0\u49B1\u49B2\u49B3\u49B4\u49B5\u49B6\u49B7"+
- "\u49B8\u49B9\u49BA\u49BB\u49BC\u49BD\u49BE\u49BF"+
- "\u49C0\u49C1\u49C2\u49C3\u49C4\u49C5\u49C6\u49C7"+
- "\u49C8\u49C9\u49CA\u49CB\u49CC\u49CD\u49CE\u49CF"+
- "\u49D0\u49D1\u49D2\u49D3\u49D4\u49D5\u49D6\u49D7"+
- "\u49D8\u49D9\u49DA\u49DB\u49DC\u49DD\u49DE\u49DF"+
- "\u49E0\u49E1\u49E2\u49E3\u49E4\u49E5\u49E6\u49E7"+
- "\u49E8\u49E9\u49EA\u49EB\u49EC\u49ED\u49EE\u49EF"+
- "\u49F0\u49F1\u49F2\u49F3\u49F4\u49F5\u49F6\u49F7"+
- "\u49F8\u49F9\u49FA\u49FB\u49FC\u49FD\u49FE\u49FF"+
- "\u4A00\u4A01\u4A02\u4A03\u4A04\u4A05\u4A06\u4A07"+
- "\u4A08\u4A09\u4A0A\u4A0B\u4A0C\u4A0D\u4A0E\u4A0F"+
- "\u4A10\u4A11\u4A12\u4A13\u4A14\u4A15\u4A16\u4A17"+
- "\u4A18\u4A19\u4A1A\u4A1B\u4A1C\u4A1D\u4A1E\u4A1F"+
- "\u4A20\u4A21\u4A22\u4A23\u4A24\u4A25\u4A26\u4A27"+
- "\u4A28\u4A29\u4A2A\u4A2B\u4A2C\u4A2D\u4A2E\u4A2F"+
- "\u4A30\u4A31\u4A32\u4A33\u4A34\u4A35\u4A36\u4A37"+
- "\u4A38\u4A39\u4A3A\u4A3B\u4A3C\u4A3D\u4A3E\u4A3F"+
- "\u4A40\u4A41\u4A42\u4A43\u4A44\u4A45\u4A46\u4A47"+
- "\u4A48\u4A49\u4A4A\u4A4B\u4A4C\u4A4D\u4A4E\u4A4F"+
- "\u4A50\u4A51\u4A52\u4A53\u4A54\u4A55\u4A56\u4A57"+
- "\u4A58\u4A59\u4A5A\u4A5B\u4A5C\u4A5D\u4A5E\u4A5F"+
- "\u4A60\u4A61\u4A62\u4A63\u4A64\u4A65\u4A66\u4A67"+
- "\u4A68\u4A69\u4A6A\u4A6B\u4A6C\u4A6D\u4A6E\u4A6F"+
- "\u4A70\u4A71\u4A72\u4A73\u4A74\u4A75\u4A76\u4A77"+
- "\u4A78\u4A79\u4A7A\u4A7B\u4A7C\u4A7D\u4A7E\u4A7F"+
- "\u4A80\u4A81\u4A82\u4A83\u4A84\u4A85\u4A86\u4A87"+
- "\u4A88\u4A89\u4A8A\u4A8B\u4A8C\u4A8D\u4A8E\u4A8F"+
- "\u4A90\u4A91\u4A92\u4A93\u4A94\u4A95\u4A96\u4A97"+
- "\u4A98\u4A99\u4A9A\u4A9B\u4A9C\u4A9D\u4A9E\u4A9F"+
- "\u4AA0\u4AA1\u4AA2\u4AA3\u4AA4\u4AA5\u4AA6\u4AA7"+
- "\u4AA8\u4AA9\u4AAA\u4AAB\u4AAC\u4AAD\u4AAE\u4AAF"+
- "\u4AB0\u4AB1\u4AB2\u4AB3\u4AB4\u4AB5\u4AB6\u4AB7"+
- "\u4AB8\u4AB9\u4ABA\u4ABB\u4ABC\u4ABD\u4ABE\u4ABF"+
- "\u4AC0\u4AC1\u4AC2\u4AC3\u4AC4\u4AC5\u4AC6\u4AC7"+
- "\u4AC8\u4AC9\u4ACA\u4ACB\u4ACC\u4ACD\u4ACE\u4ACF"+
- "\u4AD0\u4AD1\u4AD2\u4AD3\u4AD4\u4AD5\u4AD6\u4AD7"+
- "\u4AD8\u4AD9\u4ADA\u4ADB\u4ADC\u4ADD\u4ADE\u4ADF"+
- "\u4AE0\u4AE1\u4AE2\u4AE3\u4AE4\u4AE5\u4AE6\u4AE7"+
- "\u4AE8\u4AE9\u4AEA\u4AEB\u4AEC\u4AED\u4AEE\u4AEF"+
- "\u4AF0\u4AF1\u4AF2\u4AF3\u4AF4\u4AF5\u4AF6\u4AF7"+
- "\u4AF8\u4AF9\u4AFA\u4AFB\u4AFC\u4AFD\u4AFE\u4AFF"+
- "\u4B00\u4B01\u4B02\u4B03\u4B04\u4B05\u4B06\u4B07"+
- "\u4B08\u4B09\u4B0A\u4B0B\u4B0C\u4B0D\u4B0E\u4B0F"+
- "\u4B10\u4B11\u4B12\u4B13\u4B14\u4B15\u4B16\u4B17"+
- "\u4B18\u4B19\u4B1A\u4B1B\u4B1C\u4B1D\u4B1E\u4B1F"+
- "\u4B20\u4B21\u4B22\u4B23\u4B24\u4B25\u4B26\u4B27"+
- "\u4B28\u4B29\u4B2A\u4B2B\u4B2C\u4B2D\u4B2E\u4B2F"+
- "\u4B30\u4B31\u4B32\u4B33\u4B34\u4B35\u4B36\u4B37"+
- "\u4B38\u4B39\u4B3A\u4B3B\u4B3C\u4B3D\u4B3E\u4B3F"+
- "\u4B40\u4B41\u4B42\u4B43\u4B44\u4B45\u4B46\u4B47"+
- "\u4B48\u4B49\u4B4A\u4B4B\u4B4C\u4B4D\u4B4E\u4B4F"+
- "\u4B50\u4B51\u4B52\u4B53\u4B54\u4B55\u4B56\u4B57"+
- "\u4B58\u4B59\u4B5A\u4B5B\u4B5C\u4B5D\u4B5E\u4B5F"+
- "\u4B60\u4B61\u4B62\u4B63\u4B64\u4B65\u4B66\u4B67"+
- "\u4B68\u4B69\u4B6A\u4B6B\u4B6C\u4B6D\u4B6E\u4B6F"+
- "\u4B70\u4B71\u4B72\u4B73\u4B74\u4B75\u4B76\u4B77"+
- "\u4B78\u4B79\u4B7A\u4B7B\u4B7C\u4B7D\u4B7E\u4B7F"+
- "\u4B80\u4B81\u4B82\u4B83\u4B84\u4B85\u4B86\u4B87"+
- "\u4B88\u4B89\u4B8A\u4B8B\u4B8C\u4B8D\u4B8E\u4B8F"+
- "\u4B90\u4B91\u4B92\u4B93\u4B94\u4B95\u4B96\u4B97"+
- "\u4B98\u4B99\u4B9A\u4B9B\u4B9C\u4B9D\u4B9E\u4B9F"+
- "\u4BA0\u4BA1\u4BA2\u4BA3\u4BA4\u4BA5\u4BA6\u4BA7"+
- "\u4BA8\u4BA9\u4BAA\u4BAB\u4BAC\u4BAD\u4BAE\u4BAF"+
- "\u4BB0\u4BB1\u4BB2\u4BB3\u4BB4\u4BB5\u4BB6\u4BB7"+
- "\u4BB8\u4BB9\u4BBA\u4BBB\u4BBC\u4BBD\u4BBE\u4BBF"+
- "\u4BC0\u4BC1\u4BC2\u4BC3\u4BC4\u4BC5\u4BC6\u4BC7"+
- "\u4BC8\u4BC9\u4BCA\u4BCB\u4BCC\u4BCD\u4BCE\u4BCF"+
- "\u4BD0\u4BD1\u4BD2\u4BD3\u4BD4\u4BD5\u4BD6\u4BD7"+
- "\u4BD8\u4BD9\u4BDA\u4BDB\u4BDC\u4BDD\u4BDE\u4BDF"+
- "\u4BE0\u4BE1\u4BE2\u4BE3\u4BE4\u4BE5\u4BE6\u4BE7"+
- "\u4BE8\u4BE9\u4BEA\u4BEB\u4BEC\u4BED\u4BEE\u4BEF"+
- "\u4BF0\u4BF1\u4BF2\u4BF3\u4BF4\u4BF5\u4BF6\u4BF7"+
- "\u4BF8\u4BF9\u4BFA\u4BFB\u4BFC\u4BFD\u4BFE\u4BFF"+
- "\u4C00\u4C01\u4C02\u4C03\u4C04\u4C05\u4C06\u4C07"+
- "\u4C08\u4C09\u4C0A\u4C0B\u4C0C\u4C0D\u4C0E\u4C0F"+
- "\u4C10\u4C11\u4C12\u4C13\u4C14\u4C15\u4C16\u4C17"+
- "\u4C18\u4C19\u4C1A\u4C1B\u4C1C\u4C1D\u4C1E\u4C1F"+
- "\u4C20\u4C21\u4C22\u4C23\u4C24\u4C25\u4C26\u4C27"+
- "\u4C28\u4C29\u4C2A\u4C2B\u4C2C\u4C2D\u4C2E\u4C2F"+
- "\u4C30\u4C31\u4C32\u4C33\u4C34\u4C35\u4C36\u4C37"+
- "\u4C38\u4C39\u4C3A\u4C3B\u4C3C\u4C3D\u4C3E\u4C3F"+
- "\u4C40\uFE50\u4C41\u4C42\uFE54\u4C43\u4C44\u4C45"+
- "\uFE57\u4C46\u4C47\uFE58\uFE5D\u4C48\u4C49\u4C4A"+
- "\u4C4B\u4C4C\u4C4D\u4C4E\u4C4F\u4C50\u4C51\uFE5E"+
- "\u4C52\u4C53\u4C54\u4C55\u4C56\u4C57\u4C58\u4C59"+
- "\u4C5A\u4C5B\u4C5C\u4C5D\u4C5E\u4C5F\u4C60\uFE6B"+
- "\u4C61\u4C62\uFE6E\u4C63\u4C64\u4C65\uFE71\u4C66"+
- "\u4C67\u4C68\u4C69\uFE73\u4C6A\u4C6B\uFE74\uFE75"+
- "\u4C6C\u4C6D\u4C6E\uFE79\u4C6F\u4C70\u4C71\u4C72"+
- "\u4C73\u4C74\u4C75\u4C76\u4C77\u4C78\u4C79\u4C7A"+
- "\u4C7B\u4C7C\uFE84\u4C7D\u4C7E\u4C7F\u4C80\u4C81"+
- "\u4C82\u4C83\u4C84\u4C85\u4C86\u4C87\u4C88\u4C89"+
- "\u4C8A\u4C8B\u4C8C\u4C8D\u4C8E\u4C8F\u4C90\u4C91"+
- "\u4C92\u4C93\u4C94\u4C95\u4C96\u4C97\u4C98\u4C99"+
- "\u4C9A\u4C9B\u4C9C\u4C9D\u4C9E\u4C9F\u4CA0\u4CA1"+
- "\u4CA2\u4CA3\u4CA4\u4CA5\u4CA6\u4CA7\u4CA8\u4CA9"+
- "\u4CAA\u4CAB\u4CAC\u4CAD\u4CAE\u4CAF\u4CB0\u4CB1"+
- "\u4CB2\u4CB3\u4CB4\u4CB5\u4CB6\u4CB7\u4CB8\u4CB9"+
- "\u4CBA\u4CBB\u4CBC\u4CBD\u4CBE\u4CBF\u4CC0\u4CC1"+
- "\u4CC2\u4CC3\u4CC4\u4CC5\u4CC6\u4CC7\u4CC8\u4CC9"+
- "\u4CCA\u4CCB\u4CCC\u4CCD\u4CCE\u4CCF\u4CD0\u4CD1"+
- "\u4CD2\u4CD3\u4CD4\u4CD5\u4CD6\u4CD7\u4CD8\u4CD9"+
- "\u4CDA\u4CDB\u4CDC\u4CDD\u4CDE\u4CDF\u4CE0\u4CE1"+
- "\u4CE2\u4CE3\u4CE4\u4CE5\u4CE6\u4CE7\u4CE8\u4CE9"+
- "\u4CEA\u4CEB\u4CEC\u4CED\u4CEE\u4CEF\u4CF0\u4CF1"+
- "\u4CF2\u4CF3\u4CF4\u4CF5\u4CF6\u4CF7\u4CF8\u4CF9"+
- "\u4CFA\u4CFB\u4CFC\u4CFD\u4CFE\u4CFF\u4D00\u4D01"+
- "\u4D02\u4D03\u4D04\u4D05\u4D06\u4D07\u4D08\u4D09"+
- "\u4D0A\u4D0B\u4D0C\u4D0D\u4D0E\u4D0F\u4D10\u4D11"+
- "\u4D12\u4D13\u4D14\u4D15\u4D16\u4D17\u4D18\u4D19"+
- "\u4D1A\u4D1B\u4D1C\u4D1D\u4D1E\u4D1F\u4D20\u4D21"+
- "\u4D22\u4D23\u4D24\u4D25\u4D26\u4D27\u4D28\u4D29"+
- "\u4D2A\u4D2B\u4D2C\u4D2D\u4D2E\u4D2F\u4D30\u4D31"+
- "\u4D32\u4D33\u4D34\u4D35\u4D36\u4D37\u4D38\u4D39"+
- "\u4D3A\u4D3B\u4D3C\u4D3D\u4D3E\u4D3F\u4D40\u4D41"+
- "\u4D42\u4D43\u4D44\u4D45\u4D46\u4D47\u4D48\u4D49"+
- "\u4D4A\u4D4B\u4D4C\u4D4D\u4D4E\u4D4F\u4D50\u4D51"+
- "\u4D52\u4D53\u4D54\u4D55\u4D56\u4D57\u4D58\u4D59"+
- "\u4D5A\u4D5B\u4D5C\u4D5D\u4D5E\u4D5F\u4D60\u4D61"+
- "\u4D62\u4D63\u4D64\u4D65\u4D66\u4D67\u4D68\u4D69"+
- "\u4D6A\u4D6B\u4D6C\u4D6D\u4D6E\u4D6F\u4D70\u4D71"+
- "\u4D72\u4D73\u4D74\u4D75\u4D76\u4D77\u4D78\u4D79"+
- "\u4D7A\u4D7B\u4D7C\u4D7D\u4D7E\u4D7F\u4D80\u4D81"+
- "\u4D82\u4D83\u4D84\u4D85\u4D86\u4D87\u4D88\u4D89"+
- "\u4D8A\u4D8B\u4D8C\u4D8D\u4D8E\u4D8F\u4D90\u4D91"+
- "\u4D92\u4D93\u4D94\u4D95\u4D96\u4D97\u4D98\u4D99"+
- "\u4D9A\u4D9B\u4D9C\u4D9D\u4D9E\u4D9F\u4DA0\u4DA1"+
- "\uA98A\uA98B\uA98C\uA98D\uA98E\uA98F\uA990\uA991"+
- "\uA992\uA993\uA994\uA995\u4DA2\u4DA3\u4DA4\u4DA5";
-
- private final static String innerEncoderIndex3=
- "\uA1A1\uA1A2\uA1A3\uA1A8\u4DA6\uA1A9\uA965\uA996"+
- "\uA1B4\uA1B5\uA1B6\uA1B7\uA1B8\uA1B9\uA1BA\uA1BB"+
- "\uA1BE\uA1BF\uA893\uA1FE\uA1B2\uA1B3\uA1BC\uA1BD"+
- "\u4DA7\u4DA8\u4DA9\u4DAA\u4DAB\uA894\uA895\u4DAC"+
- "\u4DAD\uA940\uA941\uA942\uA943\uA944\uA945\uA946"+
- "\uA947\uA948\u4DAE\u4DAF\u4DB0\u4DB1\u4DB2\u4DB3"+
- "\u4DB4\u4DB5\u4DB6\u4DB7\u4DB8\u4DB9\u4DBA\u4DBB"+
- "\u4DBC\u4DBD\u4DBE\u4DBF\u4DC0\u4DC1\uA989\u4DC2"+
- "\u4DC3\uA4A1\uA4A2\uA4A3\uA4A4\uA4A5\uA4A6\uA4A7"+
- "\uA4A8\uA4A9\uA4AA\uA4AB\uA4AC\uA4AD\uA4AE\uA4AF"+
- "\uA4B0\uA4B1\uA4B2\uA4B3\uA4B4\uA4B5\uA4B6\uA4B7"+
- "\uA4B8\uA4B9\uA4BA\uA4BB\uA4BC\uA4BD\uA4BE\uA4BF"+
- "\uA4C0\uA4C1\uA4C2\uA4C3\uA4C4\uA4C5\uA4C6\uA4C7"+
- "\uA4C8\uA4C9\uA4CA\uA4CB\uA4CC\uA4CD\uA4CE\uA4CF"+
- "\uA4D0\uA4D1\uA4D2\uA4D3\uA4D4\uA4D5\uA4D6\uA4D7"+
- "\uA4D8\uA4D9\uA4DA\uA4DB\uA4DC\uA4DD\uA4DE\uA4DF"+
- "\uA4E0\uA4E1\uA4E2\uA4E3\uA4E4\uA4E5\uA4E6\uA4E7"+
- "\uA4E8\uA4E9\uA4EA\uA4EB\uA4EC\uA4ED\uA4EE\uA4EF"+
- "\uA4F0\uA4F1\uA4F2\uA4F3\u4DC4\u4DC5\u4DC6\u4DC7"+
- "\u4DC8\u4DC9\u4DCA\uA961\uA962\uA966\uA967\u4DCB"+
- "\u4DCC\uA5A1\uA5A2\uA5A3\uA5A4\uA5A5\uA5A6\uA5A7"+
- "\uA5A8\uA5A9\uA5AA\uA5AB\uA5AC\uA5AD\uA5AE\uA5AF"+
- "\uA5B0\uA5B1\uA5B2\uA5B3\uA5B4\uA5B5\uA5B6\uA5B7"+
- "\uA5B8\uA5B9\uA5BA\uA5BB\uA5BC\uA5BD\uA5BE\uA5BF"+
- "\uA5C0\uA5C1\uA5C2\uA5C3\uA5C4\uA5C5\uA5C6\uA5C7"+
- "\uA5C8\uA5C9\uA5CA\uA5CB\uA5CC\uA5CD\uA5CE\uA5CF"+
- "\uA5D0\uA5D1\uA5D2\uA5D3\uA5D4\uA5D5\uA5D6\uA5D7"+
- "\uA5D8\uA5D9\uA5DA\uA5DB\uA5DC\uA5DD\uA5DE\uA5DF"+
- "\uA5E0\uA5E1\uA5E2\uA5E3\uA5E4\uA5E5\uA5E6\uA5E7"+
- "\uA5E8\uA5E9\uA5EA\uA5EB\uA5EC\uA5ED\uA5EE\uA5EF"+
- "\uA5F0\uA5F1\uA5F2\uA5F3\uA5F4\uA5F5\uA5F6\u4DCD"+
- "\u4DCE\u4DCF\u4DD0\u4DD1\uA960\uA963\uA964\u4DD2"+
- "\u4DD3\u4DD4\u4DD5\u4DD6\u4DD7\uA8C5\uA8C6\uA8C7"+
- "\uA8C8\uA8C9\uA8CA\uA8CB\uA8CC\uA8CD\uA8CE\uA8CF"+
- "\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7"+
- "\uA8D8\uA8D9\uA8DA\uA8DB\uA8DC\uA8DD\uA8DE\uA8DF"+
- "\uA8E0\uA8E1\uA8E2\uA8E3\uA8E4\uA8E5\uA8E6\uA8E7"+
- "\uA8E8\uA8E9\u4DD8\u4DD9\u4DDA\u4DDB\u4DDC\u4DDD"+
- "\u4DDE\u4DDF\u4DE0\u4DE1\u4DE2\u4DE3\u4DE4\u4DE5"+
- "\u4DE6\u4DE7\u4DE8\u4DE9\u4DEA\u4DEB\u4DEC\u4DED"+
- "\u4DEE\u4DEF\u4DF0\u4DF1\u4DF2\u4DF3\u4DF4\u4DF5"+
- "\u4DF6\u4DF7\u4DF8\u4DF9\u4DFA\u4DFB\u4DFC\u4DFD"+
- "\u4DFE\u4DFF\u4E00\u4E01\u4E02\u4E03\u4E04\u4E05"+
- "\u4E06\u4E07\u4E08\u4E09\u4E0A\u4E0B\u4E0C\u4E0D"+
- "\u4E0E\u4E0F\u4E10\u4E11\u4E12\u4E13\u4E14\u4E15"+
- "\u4E16\u4E17\u4E18\u4E19\u4E1A\u4E1B\u4E1C\u4E1D"+
- "\u4E1E\u4E1F\u4E20\u4E21\u4E22\u4E23\u4E24\u4E25"+
- "\u4E26\u4E27\u4E28\u4E29\u4E2A\u4E2B\u4E2C\u4E2D"+
- "\u4E2E\u4E2F\u4E30\u4E31\u4E32\u4E33\u4E34\u4E35"+
- "\u4E36\u4E37\u4E38\u4E39\u4E3A\u4E3B\u4E3C\u4E3D"+
- "\u4E3E\u4E3F\u4E40\u4E41\u4E42\u4E43\u4E44\u4E45"+
- "\u4E46\u4E47\u4E48\u4E49\u4E4A\u4E4B\u4E4C\u4E4D"+
- "\u4E4E\u4E4F\u4E50\u4E51\u4E52\u4E53\u4E54\u4E55"+
- "\u4E56\u4E57\u4E58\u4E59\u4E5A\u4E5B\u4E5C\u4E5D"+
- "\u4E5E\u4E5F\u4E60\u4E61\u4E62\u4E63\u4E64\u4E65"+
- "\u4E66\u4E67\u4E68\u4E69\u4E6A\u4E6B\u4E6C\u4E6D"+
- "\u4E6E\u4E6F\u4E70\u4E71\u4E72\u4E73\u4E74\u4E75"+
- "\u4E76\u4E77\u4E78\u4E79\u4E7A\u4E7B\u4E7C\u4E7D"+
- "\u4E7E\u4E7F\u4E80\u4E81\u4E82\u4E83\u4E84\u4E85"+
- "\u4E86\u4E87\u4E88\u4E89\u4E8A\u4E8B\u4E8C\u4E8D"+
- "\u4E8E\u4E8F\u4E90\u4E91\u4E92\u4E93\u4E94\u4E95"+
- "\u4E96\u4E97\u4E98\u4E99\u4E9A\u4E9B\u4E9C\u4E9D"+
- "\u4E9E\u4E9F\u4EA0\u4EA1\u4EA2\u4EA3\u4EA4\u4EA5"+
- "\u4EA6\u4EA7\u4EA8\u4EA9\u4EAA\u4EAB\u4EAC\u4EAD"+
- "\u4EAE\u4EAF\u4EB0\u4EB1\u4EB2\u4EB3\u4EB4\u4EB5"+
- "\u4EB6\u4EB7\u4EB8\u4EB9\u4EBA\u4EBB\u4EBC\u4EBD"+
- "\u4EBE\u4EBF\u4EC0\u4EC1\u4EC2\u4EC3\u4EC4\u4EC5"+
- "\u4EC6\u4EC7\u4EC8\u4EC9\u4ECA\u4ECB\u4ECC\u4ECD"+
- "\uA2E5\uA2E6\uA2E7\uA2E8\uA2E9\uA2EA\uA2EB\uA2EC"+
- "\uA2ED\uA2EE\u4ECE\u4ECF\u4ED0\u4ED1\u4ED2\u4ED3"+
- "\u4ED4\uA95A\u4ED5\u4ED6\u4ED7\u4ED8\u4ED9\u4EDA"+
- "\u4EDB\u4EDC\u4EDD\u4EDE\u4EDF\u4EE0\u4EE1\u4EE2"+
- "\u4EE3\u4EE4\u4EE5\u4EE6\u4EE7\u4EE8\u4EE9\u4EEA"+
- "\u4EEB\u4EEC\u4EED\u4EEE\u4EEF\u4EF0\u4EF1\u4EF2"+
- "\u4EF3\u4EF4\u4EF5\u4EF6\u4EF7\u4EF8\u4EF9\u4EFA"+
- "\u4EFB\u4EFC\u4EFD\u4EFE\u4EFF\u4F00\u4F01\u4F02"+
- "\u4F03\u4F04\u4F05\u4F06\u4F07\u4F08\u4F09\u4F0A"+
- "\u4F0B\u4F0C\u4F0D\u4F0E\u4F0F\u4F10\u4F11\u4F12"+
- "\u4F13\u4F14\u4F15\u4F16\u4F17\u4F18\u4F19\u4F1A"+
- "\u4F1B\u4F1C\u4F1D\u4F1E\u4F1F\u4F20\u4F21\u4F22"+
- "\u4F23\u4F24\u4F25\u4F26\u4F27\u4F28\u4F29\u4F2A"+
- "\u4F2B\u4F2C\u4F2D\u4F2E\u4F2F\u4F30\u4F31\u4F32"+
- "\u4F33\u4F34\u4F35\u4F36\u4F37\u4F38\u4F39\u4F3A"+
- "\u4F3B\u4F3C\u4F3D\u4F3E\u4F3F\u4F40\u4F41\u4F42"+
- "\u4F43\u4F44\u4F45\uA949\u4F46\u4F47\u4F48\u4F49"+
- "\u4F4A\u4F4B\u4F4C\u4F4D\u4F4E\u4F4F\u4F50\u4F51"+
- "\u4F52\u4F53\u4F54\u4F55\u4F56\u4F57\u4F58\u4F59"+
- "\u4F5A\u4F5B\u4F5C\u4F5D\u4F5E\u4F5F\u4F60\u4F61"+
- "\u4F62\u4F63\u4F64\u4F65\u4F66\u4F67\u4F68\u4F69"+
- "\u4F6A\u4F6B\u4F6C\u4F6D\u4F6E\u4F6F\u4F70\u4F71"+
- "\u4F72\u4F73\u4F74\u4F75\u4F76\u4F77\u4F78\u4F79"+
- "\u4F7A\u4F7B\u4F7C\u4F7D\u4F7E\u4F7F\u4F80\u4F81"+
- "\u4F82\u4F83\u4F84\u4F85\u4F86\u4F87\u4F88\u4F89"+
- "\u4F8A\u4F8B\u4F8C\u4F8D\u4F8E\u4F8F\u4F90\u4F91"+
- "\u4F92\u4F93\u4F94\u4F95\u4F96\u4F97\u4F98\u4F99"+
- "\u4F9A\u4F9B\u4F9C\u4F9D\u4F9E\u4F9F\u4FA0\u4FA1"+
- "\u4FA2\u4FA3\u4FA4\u4FA5\u4FA6\u4FA7\u4FA8\u4FA9"+
- "\u4FAA\u4FAB\u4FAC\u4FAD\u4FAE\u4FAF\u4FB0\u4FB1"+
- "\u4FB2\u4FB3\u4FB4\u4FB5\u4FB6\u4FB7\u4FB8\u4FB9"+
- "\u4FBA\u4FBB\u4FBC\u4FBD\u4FBE\u4FBF\u4FC0\u4FC1"+
- "\u4FC2\u4FC3\u4FC4\u4FC5\u4FC6\u4FC7\u4FC8\u4FC9"+
- "\u4FCA\u4FCB\u4FCC\u4FCD\u4FCE\u4FCF\u4FD0\u4FD1"+
- "\u4FD2\u4FD3\u4FD4\u4FD5\u4FD6\u4FD7\u4FD8\u4FD9"+
- "\u4FDA\u4FDB\u4FDC\u4FDD\u4FDE\u4FDF\u4FE0\u4FE1"+
- "\u4FE2\u4FE3\u4FE4\u4FE5\u4FE6\u4FE7\u4FE8\u4FE9"+
- "\u4FEA\u4FEB\u4FEC\u4FED\u4FEE\u4FEF\u4FF0\u4FF1"+
- "\u4FF2\u4FF3\u4FF4\u4FF5\u4FF6\u4FF7\u4FF8\u4FF9"+
- "\u4FFA\u4FFB\u4FFC\u4FFD\u4FFE\u4FFF\u5000\u5001"+
- "\u5002\u5003\u5004\u5005\u5006\u5007\u5008\u5009"+
- "\u500A\u500B\u500C\u500D\u500E\u500F\u5010\u5011"+
- "\u5012\u5013\u5014\u5015\u5016\u5017\u5018\u5019"+
- "\u501A\u501B\u501C\u501D\u501E\u501F\u5020\u5021"+
- "\u5022\u5023\u5024\u5025\u5026\u5027\u5028\u5029"+
- "\u502A\u502B\u502C\u502D\u502E\u502F\uA94A\uA94B"+
- "\u5030\u5031\u5032\u5033\u5034\u5035\u5036\u5037"+
- "\u5038\u5039\u503A\u503B\uA94C\uA94D\uA94E\u503C"+
- "\u503D\uA94F\u503E\u503F\u5040\u5041\u5042\u5043"+
- "\u5044\u5045\u5046\u5047\u5048\u5049\u504A\u504B"+
- "\u504C\u504D\u504E\u504F\u5050\u5051\u5052\u5053"+
- "\u5054\u5055\u5056\u5057\u5058\u5059\u505A\u505B"+
- "\u505C\u505D\u505E\u505F\uA950\u5060\u5061\u5062"+
- "\u5063\u5064\u5065\u5066\u5067\u5068\uA951\u5069"+
- "\u506A\uA952\uA953\u506B\u506C\uA954\u506D\u506E"+
- "\u506F\u5070\u5071\u5072\u5073\u5074\u5075\u5076"+
- "\u5077\u5078\u5079\u507A\u507B\u507C\u507D\u507E"+
- "\u507F\u5080\u5081\u5082\u5083\u5084\u5085\u5086"+
- "\u5087\u5088\u5089\u508A\u508B\u508C\u508D\u508E"+
- "\u508F\u5090\u5091\u5092\u5093\u5094\u5095\u5096"+
- "\u5097\u5098\u5099\u509A\u509B\u509C\u509D\u509E"+
- "\u509F\u50A0\u50A1\u50A2\u50A3\u50A4\u50A5\u50A6"+
- "\u50A7\u50A8\u50A9\u50AA\u50AB\u50AC\u50AD\u50AE"+
- "\u50AF\u50B0\u50B1\u50B2\u50B3\u50B4\u50B5\u50B6"+
- "\u50B7\u50B8\u50B9\u50BA\u50BB\u50BC\u50BD\u50BE"+
- "\u50BF\u50C0\u50C1\u50C2\u50C3\u50C4\u50C5\u50C6"+
- "\u50C7\u50C8\u50C9\u50CA\u50CB\u50CC\u50CD\u50CE"+
- "\u50CF\u50D0\u50D1\u50D2\u50D3\u50D4\u50D5\u50D6"+
- "\u50D7\u50D8\u50D9\u50DA\u50DB\u50DC\u50DD\uFE56"+
- "\u50DE\u50DF\u50E0\u50E1\u50E2\u50E3\u50E4\u50E5"+
- "\u50E6\u50E7\u50E8\u50E9\u50EA\u50EB\u50EC\u50ED"+
- "\u50EE\u50EF\u50F0\u50F1\u50F2\u50F3\u50F4\u50F5"+
- "\u50F6\u50F7\u50F8\u50F9\u50FA\u50FB\u50FC\u50FD"+
- "\u50FE\u50FF\u5100\u5101\u5102\u5103\u5104\u5105"+
- "\u5106\u5107\u5108\uFE55\u5109\u510A\u510B\u510C"+
- "\u510D\u510E\u510F\u5110\u5111\u5112\u5113\u5114"+
- "\u5115\u5116\u5117\u5118\u5119\u511A\u511B\u511C"+
- "\u511D\u511E\u511F\u5120\u5121\u5122\u5123\u5124"+
- "\u5125\u5126\u5127\u5128\u5129\u512A\u512B\u512C"+
- "\u512D\u512E\u512F\u5130\u5131\u5132\u5133\u5134"+
- "\u5135\u5136\u5137\u5138\u5139\u513A\u513B\u513C"+
- "\u513D\u513E\u513F\u5140\u5141\u5142\u5143\u5144"+
- "\u5145\u5146\u5147\u5148\u5149\u514A\u514B\u514C"+
- "\u514D\u514E\u514F\u5150\u5151\u5152\u5153\u5154"+
- "\u5155\u5156\u5157\u5158\u5159\u515A\u515B\u515C"+
- "\u515D\u515E\u515F\u5160\u5161\u5162\u5163\u5164"+
- "\u5165\u5166\u5167\u5168\u5169\u516A\u516B\u516C"+
- "\u516D\u516E\u516F\u5170\u5171\u5172\u5173\u5174"+
- "\u5175\u5176\u5177\u5178\u5179\u517A\u517B\u517C"+
- "\u517D\u517E\u517F\u5180\u5181\u5182\u5183\u5184"+
- "\u5185\u5186\u5187\u5188\u5189\u518A\u518B\u518C"+
- "\u518D\u518E\u518F\u5190\u5191\u5192\u5193\u5194"+
- "\u5195\u5196\u5197\u5198\u5199\u519A\u519B\u519C"+
- "\u519D\u519E\u519F\u51A0\u51A1\u51A2\u51A3\u51A4"+
- "\u51A5\u51A6\u51A7\u51A8\u51A9\u51AA\u51AB\u51AC"+
- "\u51AD\u51AE\u51AF\u51B0\u51B1\u51B2\u51B3\u51B4"+
- "\u51B5\u51B6\u51B7\u51B8\u51B9\u51BA\u51BB\u51BC"+
- "\u51BD\u51BE\u51BF\u51C0\u51C1\u51C2\u51C3\u51C4"+
- "\u51C5\u51C6\u51C7\u51C8\u51C9\u51CA\u51CB\u51CC"+
- "\u51CD\u51CE\u51CF\u51D0\u51D1\u51D2\u51D3\u51D4"+
- "\u51D5\u51D6\u51D7\u51D8\u51D9\u51DA\u51DB\u51DC"+
- "\u51DD\u51DE\u51DF\u51E0\u51E1\u51E2\u51E3\u51E4"+
- "\u51E5\u51E6\u51E7\u51E8\u51E9\u51EA\u51EB\u51EC"+
- "\u51ED\u51EE\u51EF\u51F0\u51F1\u51F2\u51F3\u51F4"+
- "\u51F5\u51F6\u51F7\u51F8\u51F9\u51FA\u51FB\u51FC"+
- "\u51FD\u51FE\u51FF\u5200\u5201\u5202\u5203\u5204"+
- "\u5205\u5206\u5207\u5208\u5209\u520A\u520B\u520C"+
- "\u520D\u520E\u520F\u5210\u5211\u5212\u5213\u5214"+
- "\u5215\u5216\u5217\u5218\u5219\u521A\u521B\u521C"+
- "\u521D\u521E\u521F\u5220\u5221\u5222\u5223\u5224"+
- "\u5225\u5226\u5227\u5228\u5229\u522A\u522B\u522C"+
- "\u522D\u522E\u522F\u5230\u5231\u5232\uFE5A\u5233"+
- "\u5234\u5235\u5236\u5237\u5238\u5239\u523A\u523B"+
- "\u523C\u523D\u523E\u523F\u5240\u5241\u5242\u5243"+
- "\u5244\u5245\u5246\u5247\u5248\u5249\u524A\u524B"+
- "\u524C\u524D\u524E\u524F\u5250\u5251\u5252\u5253"+
- "\u5254\u5255\u5256\u5257\u5258\u5259\u525A\u525B"+
- "\u525C\u525D\u525E\u525F\u5260\u5261\u5262\u5263"+
- "\u5264\u5265\u5266\u5267\u5268\u5269\u526A\u526B"+
- "\u526C\u526D\u526E\u526F\u5270\u5271\u5272\u5273"+
- "\u5274\u5275\u5276\u5277\u5278\u5279\u527A\u527B"+
- "\u527C\u527D\u527E\u527F\u5280\u5281\u5282\u5283"+
- "\u5284\u5285\u5286\u5287\u5288\u5289\u528A\u528B"+
- "\u528C\u528D\u528E\u528F\u5290\u5291\u5292\u5293"+
- "\u5294\u5295\u5296\u5297\u5298\u5299\u529A\u529B"+
- "\u529C\u529D\u529E\u529F\u52A0\u52A1\uFE5C\u52A2"+
- "\u52A3\u52A4\u52A5\u52A6\u52A7\u52A8\u52A9\u52AA"+
- "\u52AB\u52AC\uFE5B\u52AD\u52AE\u52AF\u52B0\u52B1"+
- "\u52B2\u52B3\u52B4\u52B5\u52B6\u52B7\u52B8\u52B9"+
- "\u52BA\u52BB\u52BC\u52BD\u52BE\u52BF\u52C0\u52C1"+
- "\u52C2\u52C3\u52C4\u52C5\u52C6\u52C7\u52C8\u52C9"+
- "\u52CA\u52CB\u52CC\u52CD\u52CE\u52CF\u52D0\u52D1"+
- "\u52D2\u52D3\u52D4\u52D5\u52D6\u52D7\u52D8\u52D9"+
- "\u52DA\u52DB\u52DC\u52DD\u52DE\u52DF\u52E0\u52E1"+
- "\u52E2\u52E3\u52E4\u52E5\u52E6\u52E7\u52E8\u52E9"+
- "\u52EA\u52EB\u52EC\u52ED\u52EE\u52EF\u52F0\u52F1"+
- "\u52F2\u52F3\u52F4\u52F5\u52F6\u52F7\u52F8\u52F9"+
- "\u52FA\u52FB\u52FC\u52FD\u52FE\u52FF\u5300\u5301"+
- "\u5302\u5303\u5304\u5305\u5306\u5307\u5308\u5309"+
- "\u530A\u530B\u530C\u530D\u530E\u530F\u5310\u5311"+
- "\u5312\u5313\u5314\u5315\u5316\u5317\u5318\u5319"+
- "\u531A\u531B\u531C\u531D\u531E\u531F\u5320\u5321"+
- "\u5322\u5323\u5324\u5325\u5326\u5327\u5328\u5329"+
- "\u532A\u532B\u532C\u532D\u532E\u532F\u5330\u5331"+
- "\u5332\u5333\u5334\u5335\u5336\u5337\u5338\u5339"+
- "\u533A\u533B\u533C\u533D\u533E\u533F\u5340\u5341"+
- "\u5342\u5343\u5344\u5345\u5346\u5347\u5348\u5349"+
- "\u534A\u534B\u534C\u534D\u534E\u534F\u5350\u5351"+
- "\u5352\u5353\u5354\u5355\u5356\u5357\u5358\u5359"+
- "\u535A\u535B\u535C\u535D\u535E\u535F\u5360\u5361"+
- "\u5362\u5363\u5364\u5365\u5366\u5367\u5368\u5369"+
- "\u536A\u536B\u536C\u536D\u536E\u536F\u5370\u5371"+
- "\u5372\u5373\u5374\u5375\u5376\u5377\u5378\u5379"+
- "\u537A\u537B\u537C\u537D\u537E\u537F\u5380\u5381"+
- "\u5382\u5383\u5384\u5385\u5386\u5387\u5388\u5389"+
- "\u538A\u538B\u538C\u538D\u538E\u538F\u5390\u5391"+
- "\u5392\u5393\u5394\u5395\u5396\u5397\u5398\u5399"+
- "\u539A\u539B\u539C\u539D\u539E\u539F\u53A0\u53A1"+
- "\u53A2\u53A3\u53A4\u53A5\u53A6\u53A7\u53A8\u53A9"+
- "\u53AA\u53AB\u53AC\u53AD\u53AE\u53AF\u53B0\u53B1"+
- "\u53B2\u53B3\u53B4\u53B5\u53B6\u53B7\u53B8\u53B9"+
- "\u53BA\u53BB\u53BC\u53BD\u53BE\u53BF\u53C0\u53C1"+
- "\u53C2\u53C3\u53C4\u53C5\u53C6\u53C7\u53C8\u53C9"+
- "\u53CA\u53CB\u53CC\u53CD\u53CE\u53CF\u53D0\u53D1"+
- "\u53D2\u53D3\u53D4\u53D5\u53D6\u53D7\u53D8\u53D9"+
- "\u53DA\u53DB\u53DC\u53DD\u53DE\u53DF\u53E0\u53E1"+
- "\u53E2\u53E3\u53E4\u53E5\u53E6\u53E7\u53E8\u53E9"+
- "\u53EA\u53EB\u53EC\u53ED\u53EE\u53EF\u53F0\u53F1"+
- "\u53F2\u53F3\u53F4\u53F5\u53F6\u53F7\u53F8\u53F9"+
- "\u53FA\u53FB\u53FC\u53FD\u53FE\u53FF\u5400\u5401"+
- "\u5402\u5403\u5404\u5405\u5406\u5407\u5408\u5409"+
- "\u540A\u540B\u540C\u540D\u540E\u540F\u5410\u5411"+
- "\u5412\u5413\u5414\u5415\u5416\u5417\u5418\u5419"+
- "\u541A\u541B\u541C\u541D\u541E\u541F\u5420\u5421"+
- "\u5422\u5423\u5424\u5425\u5426\u5427\u5428\u5429"+
- "\u542A\u542B\u542C\u542D\u542E\u542F\u5430\u5431"+
- "\u5432\u5433\u5434\u5435\u5436\u5437\u5438\u5439"+
- "\u543A\u543B\u543C\u543D\u543E\u543F\u5440\u5441"+
- "\u5442\u5443\u5444\u5445\u5446\u5447\u5448\u5449"+
- "\u544A\u544B\u544C\u544D\u544E\u544F\u5450\u5451"+
- "\u5452\u5453\u5454\u5455\u5456\u5457\u5458\u5459"+
- "\u545A\u545B\u545C\u545D\u545E\u545F\u5460\u5461"+
- "\u5462\u5463\u5464\u5465\u5466\u5467\u5468\u5469"+
- "\u546A\u546B\u546C\u546D\u546E\u546F\u5470\u5471"+
- "\u5472\u5473\u5474\u5475\u5476\u5477\u5478\u5479"+
- "\u547A\u547B\u547C\u547D\u547E\u547F\u5480\u5481"+
- "\u5482\u5483\u5484\u5485\u5486\u5487\u5488\u5489"+
- "\u548A\u548B\u548C\u548D\u548E\u548F\u5490\u5491"+
- "\u5492\u5493\u5494\u5495\u5496\u5497\u5498\u5499"+
- "\u549A\u549B\u549C\u549D\u549E\u549F\u54A0\u54A1"+
- "\u54A2\u54A3\u54A4\u54A5\u54A6\u54A7\u54A8\u54A9"+
- "\u54AA\u54AB\u54AC\u54AD\u54AE\u54AF\u54B0\u54B1"+
- "\u54B2\u54B3\u54B4\u54B5\u54B6\u54B7\u54B8\u54B9"+
- "\u54BA\u54BB\u54BC\u54BD\u54BE\u54BF\u54C0\u54C1"+
- "\u54C2\u54C3\u54C4\u54C5\u54C6\u54C7\u54C8\u54C9"+
- "\u54CA\u54CB\u54CC\u54CD\u54CE\u54CF\u54D0\u54D1"+
- "\u54D2\u54D3\u54D4\u54D5\u54D6\u54D7\u54D8\u54D9"+
- "\u54DA\u54DB\u54DC\u54DD\u54DE\u54DF\u54E0\u54E1"+
- "\u54E2\u54E3\u54E4\u54E5\u54E6\u54E7\u54E8\u54E9"+
- "\u54EA\u54EB\u54EC\u54ED\u54EE\u54EF\u54F0\u54F1"+
- "\u54F2\u54F3\u54F4\u54F5\u54F6\u54F7\u54F8\u54F9"+
- "\u54FA\u54FB\u54FC\u54FD\u54FE\u54FF\u5500\u5501"+
- "\u5502\u5503\u5504\u5505\u5506\u5507\u5508\u5509"+
- "\u550A\u550B\u550C\u550D\u550E\u550F\u5510\u5511"+
- "\u5512\u5513\u5514\u5515\u5516\u5517\u5518\u5519"+
- "\u551A\u551B\u551C\u551D\u551E\u551F\u5520\u5521"+
- "\u5522\u5523\u5524\u5525\u5526\u5527\u5528\u5529"+
- "\u552A\u552B\u552C\u552D\u552E\u552F\u5530\u5531"+
- "\u5532\u5533\u5534\u5535\u5536\u5537\u5538\u5539"+
- "\u553A\u553B\u553C\u553D\u553E\u553F\u5540\u5541"+
- "\u5542\u5543\u5544\u5545\u5546\u5547\u5548\u5549"+
- "\u554A\u554B\u554C\u554D\u554E\u554F\u5550\u5551"+
- "\u5552\u5553\u5554\u5555\u5556\u5557\u5558\u5559"+
- "\u555A\u555B\u555C\u555D\u555E\u555F\u5560\u5561"+
- "\u5562\u5563\u5564\u5565\u5566\u5567\u5568\u5569"+
- "\u556A\u556B\u556C\u556D\u556E\u556F\u5570\u5571"+
- "\u5572\u5573\u5574\u5575\u5576\u5577\u5578\u5579"+
- "\u557A\u557B\u557C\u557D\u557E\u557F\u5580\u5581"+
- "\u5582\u5583\u5584\u5585\u5586\u5587\u5588\u5589"+
- "\u558A\u558B\u558C\u558D\u558E\u558F\u5590\u5591"+
- "\u5592\u5593\u5594\u5595\u5596\u5597\u5598\u5599"+
- "\u559A\u559B\u559C\u559D\u559E\u559F\u55A0\u55A1"+
- "\u55A2\u55A3\u55A4\u55A5\u55A6\u55A7\u55A8\u55A9"+
- "\uFE60\u55AA\u55AB\u55AC\u55AD\u55AE\u55AF\u55B0"+
- "\u55B1\u55B2\u55B3\u55B4\u55B5\u55B6\u55B7\u55B8"+
- "\u55B9\u55BA\u55BB\u55BC\u55BD\u55BE\u55BF\u55C0"+
- "\u55C1\u55C2\u55C3\u55C4\u55C5\u55C6\u55C7\u55C8"+
- "\u55C9\u55CA\u55CB\u55CC\u55CD\u55CE\u55CF\u55D0"+
- "\u55D1\u55D2\u55D3\u55D4\u55D5\u55D6\u55D7\u55D8"+
- "\u55D9\u55DA\u55DB\u55DC\u55DD\u55DE\u55DF\u55E0"+
- "\u55E1\u55E2\u55E3\u55E4\u55E5\u55E6\u55E7\u55E8"+
- "\u55E9\u55EA\u55EB\u55EC\u55ED\u55EE\u55EF\u55F0"+
- "\u55F1\u55F2\u55F3\u55F4\u55F5\u55F6\u55F7\u55F8"+
- "\u55F9\u55FA\u55FB\u55FC\u55FD\u55FE\uFE5F\u55FF"+
- "\u5600\u5601\u5602\u5603\u5604\u5605\u5606\u5607"+
- "\u5608\u5609\u560A\u560B\u560C\u560D\u560E\u560F"+
- "\u5610\u5611\u5612\u5613\u5614\u5615\u5616\u5617"+
- "\u5618\u5619\u561A\u561B\u561C\u561D\u561E\u561F"+
- "\u5620\u5621\u5622\u5623\u5624\u5625\u5626\u5627"+
- "\u5628\u5629\u562A\u562B\u562C\u562D\u562E\u562F"+
- "\u5630\u5631\u5632\u5633\u5634\u5635\u5636\u5637"+
- "\u5638\u5639\u563A\u563B\u563C\u563D\u563E\u563F"+
- "\u5640\u5641\u5642\u5643\u5644\u5645\u5646\u5647"+
- "\u5648\u5649\u564A\u564B\u564C\u564D\u564E\u564F"+
- "\u5650\u5651\u5652\u5653\u5654\u5655\u5656\u5657"+
- "\u5658\u5659\u565A\u565B\u565C\u565D\u565E\uFE62"+
- "\uFE65\u565F\u5660\u5661\u5662\u5663\u5664\u5665"+
- "\u5666\u5667\u5668\u5669\u566A\u566B\u566C\uFE63"+
- "\u566D\u566E\u566F\u5670\u5671\u5672\u5673\u5674"+
- "\u5675\u5676\u5677\u5678\u5679\u567A\u567B\u567C"+
- "\u567D\u567E\u567F\u5680\u5681\u5682\u5683\u5684"+
- "\u5685\u5686\u5687\u5688\u5689\u568A\u568B\u568C"+
- "\u568D\u568E\u568F\u5690\u5691\u5692\u5693\u5694"+
- "\u5695\u5696\u5697\u5698\u5699\u569A\u569B\u569C"+
- "\u569D\u569E\u569F\u56A0\u56A1\u56A2\u56A3\u56A4"+
- "\u56A5\u56A6\u56A7\u56A8\u56A9\u56AA\u56AB\u56AC"+
- "\u56AD\u56AE\u56AF\u56B0\u56B1\u56B2\u56B3\u56B4"+
- "\u56B5\u56B6\u56B7\u56B8\u56B9\u56BA\u56BB\u56BC"+
- "\u56BD\u56BE\u56BF\u56C0\u56C1\u56C2\u56C3\u56C4"+
- "\u56C5\u56C6\u56C7\u56C8\u56C9\u56CA\u56CB\u56CC"+
- "\u56CD\u56CE\u56CF\u56D0\u56D1\u56D2\u56D3\u56D4"+
- "\u56D5\u56D6\u56D7\u56D8\u56D9\u56DA\u56DB\u56DC"+
- "\u56DD\u56DE\u56DF\u56E0\u56E1\u56E2\u56E3\u56E4"+
- "\u56E5\u56E6\u56E7\u56E8\u56E9\u56EA\u56EB\u56EC"+
- "\u56ED\u56EE\u56EF\u56F0\u56F1\u56F2\u56F3\u56F4"+
- "\u56F5\u56F6\u56F7\u56F8\u56F9\u56FA\u56FB\u56FC"+
- "\u56FD\u56FE\u56FF\uFE64\u5700\u5701\u5702\u5703"+
- "\u5704\u5705\u5706\u5707\u5708\u5709\u570A\u570B"+
- "\u570C\u570D\u570E\u570F\u5710\u5711\u5712\u5713"+
- "\u5714\u5715\u5716\u5717\u5718\u5719\u571A\u571B"+
- "\u571C\u571D\u571E\u571F\u5720\u5721\u5722\u5723"+
- "\u5724\u5725\u5726\u5727\u5728\u5729\u572A\u572B"+
- "\u572C\u572D\u572E\u572F\u5730\u5731\u5732\u5733"+
- "\u5734\u5735\u5736\u5737\u5738\u5739\u573A\u573B"+
- "\u573C\u573D\u573E\u573F\u5740\u5741\u5742\u5743"+
- "\u5744\u5745\u5746\u5747\u5748\u5749\u574A\u574B"+
- "\u574C\u574D\u574E\u574F\u5750\u5751\u5752\u5753"+
- "\u5754\u5755\u5756\u5757\u5758\u5759\u575A\u575B"+
- "\u575C\u575D\u575E\u575F\u5760\u5761\u5762\u5763"+
- "\u5764\u5765\u5766\u5767\u5768\u5769\u576A\u576B"+
- "\u576C\u576D\u576E\u576F\u5770\u5771\u5772\u5773"+
- "\u5774\u5775\u5776\u5777\u5778\u5779\u577A\u577B"+
- "\u577C\u577D\u577E\u577F\u5780\u5781\u5782\u5783"+
- "\u5784\u5785\u5786\u5787\u5788\u5789\u578A\u578B"+
- "\u578C\u578D\u578E\u578F\u5790\u5791\u5792\u5793"+
- "\u5794\u5795\u5796\u5797\u5798\u5799\u579A\u579B"+
- "\u579C\u579D\u579E\u579F\u57A0\u57A1\u57A2\u57A3"+
- "\u57A4\u57A5\u57A6\u57A7\u57A8\u57A9\u57AA\u57AB"+
- "\u57AC\u57AD\u57AE\u57AF\u57B0\u57B1\u57B2\u57B3"+
- "\u57B4\u57B5\u57B6\u57B7\u57B8\u57B9\u57BA\u57BB"+
- "\u57BC\u57BD\u57BE\u57BF\u57C0\u57C1\u57C2\u57C3"+
- "\u57C4\u57C5\u57C6\u57C7\u57C8\u57C9\u57CA\u57CB"+
- "\u57CC\u57CD\u57CE\u57CF\u57D0\u57D1\u57D2\u57D3"+
- "\u57D4\u57D5\u57D6\u57D7\u57D8\u57D9\uFE68\u57DA"+
- "\u57DB\u57DC\u57DD\u57DE\u57DF\u57E0\u57E1\u57E2"+
- "\u57E3\u57E4\u57E5\u57E6\u57E7\u57E8\u57E9\u57EA"+
- "\u57EB\u57EC\u57ED\u57EE\u57EF\u57F0\u57F1\u57F2"+
- "\u57F3\u57F4\u57F5\u57F6\u57F7\u57F8\u57F9\u57FA"+
- "\u57FB\u57FC\u57FD\u57FE\u57FF\u5800\u5801\u5802"+
- "\u5803\u5804\u5805\u5806\u5807\u5808\u5809\u580A"+
- "\u580B\u580C\u580D\u580E\u580F\u5810\u5811\u5812"+
- "\u5813\u5814\u5815\u5816\u5817\u5818\u5819\u581A"+
- "\u581B\u581C\u581D\u581E\u581F\u5820\u5821\u5822"+
- "\u5823\u5824\u5825\u5826\u5827\u5828\u5829\u582A"+
- "\u582B\u582C\u582D\u582E\u582F\u5830\u5831\u5832"+
- "\u5833\u5834\u5835\u5836\u5837\u5838\u5839\u583A"+
- "\u583B\u583C\u583D\u583E\u583F\u5840\u5841\u5842"+
- "\u5843\u5844\u5845\u5846\u5847\u5848\u5849\u584A"+
- "\u584B\u584C\u584D\u584E\u584F\u5850\u5851\u5852"+
- "\u5853\u5854\u5855\u5856\u5857\u5858\u5859\u585A"+
- "\u585B\u585C\u585D\u585E\u585F\u5860\u5861\u5862"+
- "\u5863\u5864\u5865\u5866\u5867\u5868\u5869\u586A"+
- "\u586B\u586C\u586D\u586E\u586F\u5870\u5871\u5872"+
- "\u5873\u5874\u5875\u5876\u5877\u5878\u5879\u587A"+
- "\u587B\u587C\u587D\u587E\u587F\u5880\u5881\u5882"+
- "\u5883\u5884\u5885\u5886\u5887\u5888\u5889\u588A"+
- "\u588B\u588C\u588D\u588E\u588F\u5890\u5891\u5892"+
- "\u5893\u5894\u5895\u5896\u5897\u5898\u5899\u589A"+
- "\u589B\u589C\u589D\u589E\u589F\u58A0\u58A1\u58A2"+
- "\u58A3\u58A4\u58A5\u58A6\u58A7\u58A8\u58A9\u58AA"+
- "\u58AB\u58AC\u58AD\u58AE\u58AF\u58B0\u58B1\u58B2"+
- "\u58B3\u58B4\u58B5\u58B6\u58B7\u58B8\u58B9\u58BA"+
- "\u58BB\u58BC\u58BD\u58BE\u58BF\u58C0\u58C1\u58C2"+
- "\u58C3\u58C4\u58C5\u58C6\u58C7\u58C8\u58C9\u58CA"+
- "\u58CB\u58CC\u58CD\u58CE\u58CF\u58D0\u58D1\u58D2"+
- "\u58D3\u58D4\u58D5\u58D6\u58D7\u58D8\u58D9\u58DA"+
- "\u58DB\u58DC\u58DD\u58DE\u58DF\u58E0\u58E1\u58E2"+
- "\u58E3\u58E4\u58E5\u58E6\u58E7\u58E8\u58E9\u58EA"+
- "\u58EB\u58EC\u58ED\u58EE\u58EF\u58F0\u58F1\u58F2"+
- "\u58F3\u58F4\u58F5\u58F6\u58F7\u58F8\uFE69\u58F9"+
- "\u58FA\u58FB\u58FC\u58FD\u58FE\u58FF\u5900\u5901"+
- "\u5902\u5903\u5904\u5905\u5906\u5907\u5908\u5909"+
- "\u590A\u590B\u590C\u590D\u590E\u590F\u5910\u5911"+
- "\u5912\u5913\u5914\u5915\u5916\u5917\u5918\u5919"+
- "\u591A\u591B\u591C\u591D\u591E\u591F\u5920\u5921"+
- "\u5922\u5923\u5924\u5925\u5926\u5927\u5928\u5929"+
- "\u592A\u592B\u592C\u592D\u592E\u592F\u5930\u5931"+
- "\u5932\u5933\u5934\u5935\u5936\u5937\u5938\u5939"+
- "\u593A\u593B\u593C\u593D\u593E\u593F\u5940\u5941"+
- "\u5942\u5943\u5944\u5945\u5946\u5947\u5948\u5949"+
- "\u594A\u594B\u594C\u594D\u594E\u594F\u5950\u5951"+
- "\u5952\u5953\u5954\u5955\u5956\u5957\u5958\u5959"+
- "\u595A\u595B\u595C\u595D\u595E\u595F\u5960\u5961"+
- "\u5962\u5963\u5964\u5965\u5966\u5967\u5968\u5969"+
- "\uFE6A\u596A\u596B\u596C\u596D\u596E\u596F\u5970"+
- "\u5971\u5972\u5973\u5974\u5975\u5976\u5977\u5978"+
- "\u5979\u597A\u597B\u597C\u597D\u597E\u597F\u5980"+
- "\u5981\u5982\u5983\u5984\u5985\u5986\u5987\u5988"+
- "\u5989\u598A\u598B\u598C\u598D\u598E\u598F\u5990"+
- "\u5991\u5992\u5993\u5994\u5995\u5996\u5997\u5998"+
- "\u5999\u599A\u599B\u599C\u599D\u599E\u599F\u59A0"+
- "\u59A1\u59A2\u59A3\u59A4\u59A5\u59A6\u59A7\u59A8"+
- "\u59A9\u59AA\u59AB\u59AC\u59AD\u59AE\u59AF\u59B0"+
- "\u59B1\u59B2\u59B3\u59B4\u59B5\u59B6\u59B7\u59B8"+
- "\u59B9\u59BA\u59BB\u59BC\u59BD\u59BE\u59BF\u59C0"+
- "\u59C1\u59C2\u59C3\u59C4\u59C5\u59C6\u59C7\u59C8"+
- "\u59C9\u59CA\u59CB\u59CC\u59CD\u59CE\u59CF\u59D0"+
- "\u59D1\u59D2\u59D3\u59D4\u59D5\u59D6\u59D7\u59D8"+
- "\u59D9\u59DA\u59DB\u59DC\u59DD\u59DE\u59DF\u59E0"+
- "\u59E1\u59E2\u59E3\u59E4\u59E5\u59E6\u59E7\u59E8"+
- "\u59E9\u59EA\u59EB\u59EC\u59ED\u59EE\u59EF\u59F0"+
- "\u59F1\u59F2\u59F3\u59F4\u59F5\u59F6\u59F7\u59F8"+
- "\u59F9\u59FA\u59FB\u59FC\u59FD\u59FE\u59FF\u5A00"+
- "\u5A01\u5A02\u5A03\u5A04\u5A05\u5A06\u5A07\u5A08"+
- "\u5A09\u5A0A\u5A0B\u5A0C\u5A0D\u5A0E\u5A0F\u5A10"+
- "\u5A11\u5A12\u5A13\u5A14\u5A15\u5A16\u5A17\u5A18"+
- "\u5A19\u5A1A\u5A1B\u5A1C\u5A1D\u5A1E\u5A1F\u5A20"+
- "\u5A21\u5A22\u5A23\u5A24\u5A25\u5A26\u5A27\u5A28"+
- "\u5A29\u5A2A\u5A2B\u5A2C\u5A2D\u5A2E\u5A2F\u5A30"+
- "\u5A31\u5A32\u5A33\u5A34\u5A35\u5A36\u5A37\u5A38"+
- "\u5A39\u5A3A\u5A3B\u5A3C\u5A3D\u5A3E\u5A3F\u5A40"+
- "\u5A41\u5A42\u5A43\u5A44\u5A45\u5A46\u5A47\u5A48"+
- "\u5A49\u5A4A\u5A4B\u5A4C\u5A4D\u5A4E\u5A4F\u5A50"+
- "\u5A51\u5A52\u5A53\u5A54\u5A55\u5A56\u5A57\u5A58"+
- "\u5A59\u5A5A\u5A5B\u5A5C\u5A5D\u5A5E\u5A5F\u5A60"+
- "\u5A61\u5A62\u5A63\u5A64\u5A65\u5A66\u5A67\u5A68"+
- "\u5A69\u5A6A\u5A6B\u5A6C\u5A6D\u5A6E\u5A6F\u5A70"+
- "\u5A71\u5A72\u5A73\u5A74\u5A75\u5A76\u5A77\u5A78"+
- "\u5A79\u5A7A\u5A7B\u5A7C\u5A7D\u5A7E\u5A7F\u5A80"+
- "\u5A81\u5A82\u5A83\u5A84\u5A85\u5A86\u5A87\u5A88"+
- "\u5A89\u5A8A\u5A8B\u5A8C\u5A8D\u5A8E\u5A8F\u5A90"+
- "\u5A91\u5A92\u5A93\u5A94\u5A95\u5A96\u5A97\u5A98"+
- "\u5A99\u5A9A\u5A9B\u5A9C\u5A9D\u5A9E\u5A9F\u5AA0"+
- "\u5AA1\u5AA2\u5AA3\u5AA4\u5AA5\u5AA6\u5AA7\u5AA8"+
- "\u5AA9\u5AAA\u5AAB\u5AAC\u5AAD\u5AAE\u5AAF\u5AB0"+
- "\u5AB1\u5AB2\u5AB3\u5AB4\u5AB5\u5AB6\u5AB7\u5AB8"+
- "\u5AB9\u5ABA\u5ABB\u5ABC\u5ABD\u5ABE\u5ABF\u5AC0"+
- "\u5AC1\u5AC2\u5AC3\u5AC4\u5AC5\u5AC6\u5AC7\u5AC8"+
- "\u5AC9\u5ACA\u5ACB\u5ACC\u5ACD\u5ACE\u5ACF\u5AD0"+
- "\u5AD1\u5AD2\u5AD3\u5AD4\u5AD5\u5AD6\u5AD7\u5AD8"+
- "\u5AD9\u5ADA\u5ADB\u5ADC\u5ADD\u5ADE\u5ADF\u5AE0"+
- "\u5AE1\u5AE2\u5AE3\u5AE4\u5AE5\u5AE6\u5AE7\u5AE8"+
- "\u5AE9\u5AEA\u5AEB\u5AEC\u5AED\u5AEE\u5AEF\u5AF0"+
- "\u5AF1\u5AF2\u5AF3\u5AF4\u5AF5\u5AF6\u5AF7\u5AF8"+
- "\u5AF9\u5AFA\u5AFB\u5AFC\u5AFD\u5AFE\u5AFF\u5B00"+
- "\u5B01\u5B02\u5B03\u5B04\u5B05\u5B06\u5B07\u5B08"+
- "\u5B09\u5B0A\u5B0B\u5B0C\u5B0D\u5B0E\u5B0F\u5B10"+
- "\u5B11\u5B12\u5B13\u5B14\u5B15\u5B16\u5B17\u5B18"+
- "\u5B19\u5B1A\u5B1B\u5B1C\u5B1D\u5B1E\u5B1F\u5B20"+
- "\u5B21\u5B22\u5B23\u5B24\u5B25\u5B26\u5B27\u5B28"+
- "\u5B29\u5B2A\u5B2B\u5B2C\u5B2D\u5B2E\u5B2F\u5B30"+
- "\u5B31\u5B32\u5B33\u5B34\u5B35\u5B36\u5B37\u5B38"+
- "\u5B39\u5B3A\u5B3B\u5B3C\u5B3D\u5B3E\u5B3F\u5B40"+
- "\u5B41\u5B42\u5B43\u5B44\u5B45\u5B46\u5B47\u5B48"+
- "\u5B49\u5B4A\u5B4B\u5B4C\u5B4D\u5B4E\u5B4F\u5B50"+
- "\u5B51\u5B52\u5B53\u5B54\u5B55\u5B56\u5B57\u5B58"+
- "\u5B59\u5B5A\u5B5B\u5B5C\u5B5D\u5B5E\u5B5F\u5B60"+
- "\u5B61\u5B62\u5B63\u5B64\u5B65\u5B66\u5B67\u5B68"+
- "\u5B69\u5B6A\u5B6B\u5B6C\u5B6D\u5B6E\u5B6F\u5B70"+
- "\u5B71\u5B72\u5B73\u5B74\u5B75\u5B76\u5B77\u5B78"+
- "\u5B79\u5B7A\u5B7B\u5B7C\u5B7D\u5B7E\u5B7F\u5B80"+
- "\u5B81\u5B82\u5B83\u5B84\u5B85\u5B86\u5B87\u5B88"+
- "\u5B89\u5B8A\u5B8B\u5B8C\u5B8D\u5B8E\u5B8F\u5B90"+
- "\u5B91\u5B92\u5B93\u5B94\u5B95\u5B96\u5B97\u5B98"+
- "\u5B99\u5B9A\u5B9B\u5B9C\u5B9D\u5B9E\u5B9F\u5BA0"+
- "\u5BA1\u5BA2\u5BA3\u5BA4\u5BA5\u5BA6\u5BA7\u5BA8"+
- "\u5BA9\u5BAA\u5BAB\u5BAC\u5BAD\u5BAE\u5BAF\u5BB0"+
- "\u5BB1\u5BB2\u5BB3\u5BB4\u5BB5\u5BB6\u5BB7\u5BB8"+
- "\u5BB9\u5BBA\u5BBB\u5BBC\u5BBD\u5BBE\u5BBF\u5BC0"+
- "\u5BC1\u5BC2\u5BC3\u5BC4\u5BC5\u5BC6\u5BC7\u5BC8"+
- "\u5BC9\u5BCA\u5BCB\u5BCC\u5BCD\u5BCE\u5BCF\u5BD0"+
- "\u5BD1\u5BD2\u5BD3\u5BD4\u5BD5\u5BD6\u5BD7\u5BD8"+
- "\u5BD9\u5BDA\u5BDB\u5BDC\u5BDD\u5BDE\u5BDF\u5BE0"+
- "\u5BE1\u5BE2\u5BE3\u5BE4\u5BE5\u5BE6\u5BE7\u5BE8"+
- "\u5BE9\u5BEA\u5BEB\u5BEC\u5BED\u5BEE\u5BEF\u5BF0"+
- "\u5BF1\u5BF2\u5BF3\u5BF4\u5BF5\u5BF6\u5BF7\u5BF8"+
- "\u5BF9\u5BFA\u5BFB\u5BFC\u5BFD\u5BFE\u5BFF\u5C00"+
- "\u5C01\u5C02\u5C03\u5C04\u5C05\u5C06\u5C07\u5C08"+
- "\u5C09\u5C0A\u5C0B\u5C0C\u5C0D\u5C0E\u5C0F\u5C10"+
- "\u5C11\u5C12\u5C13\u5C14\u5C15\u5C16\u5C17\u5C18"+
- "\u5C19\u5C1A\u5C1B\u5C1C\u5C1D\u5C1E\u5C1F\u5C20"+
- "\u5C21\u5C22\u5C23\u5C24\u5C25\u5C26\u5C27\u5C28"+
- "\u5C29\u5C2A\u5C2B\u5C2C\u5C2D\u5C2E\u5C2F\u5C30"+
- "\u5C31\u5C32\u5C33\u5C34\u5C35\u5C36\u5C37\u5C38"+
- "\u5C39\u5C3A\u5C3B\u5C3C\u5C3D\u5C3E\u5C3F\u5C40"+
- "\u5C41\u5C42\u5C43\u5C44\u5C45\u5C46\u5C47\u5C48"+
- "\u5C49\u5C4A\u5C4B\u5C4C\u5C4D\u5C4E\u5C4F\u5C50"+
- "\u5C51\u5C52\u5C53\u5C54\u5C55\u5C56\u5C57\u5C58"+
- "\u5C59\u5C5A\u5C5B\u5C5C\u5C5D\u5C5E\u5C5F\u5C60"+
- "\u5C61\u5C62\u5C63\u5C64\u5C65\u5C66\u5C67\u5C68"+
- "\u5C69\u5C6A\u5C6B\u5C6C\u5C6D\u5C6E\u5C6F\u5C70"+
- "\u5C71\u5C72\u5C73\u5C74\u5C75\u5C76\u5C77\u5C78"+
- "\u5C79\u5C7A\u5C7B\u5C7C\u5C7D\u5C7E\u5C7F\u5C80"+
- "\u5C81\u5C82\u5C83\u5C84\u5C85\u5C86\u5C87\u5C88";
-
- private final static String innerEncoderIndex4=
- "\u5C89\u5C8A\u5C8B\u5C8C\u5C8D\u5C8E\u5C8F\u5C90"+
- "\u5C91\u5C92\u5C93\u5C94\u5C95\u5C96\u5C97\u5C98"+
- "\u5C99\u5C9A\u5C9B\u5C9C\u5C9D\u5C9E\u5C9F\u5CA0"+
- "\u5CA1\u5CA2\u5CA3\u5CA4\u5CA5\u5CA6\u5CA7\u5CA8"+
- "\u5CA9\u5CAA\u5CAB\u5CAC\u5CAD\u5CAE\u5CAF\u5CB0"+
- "\u5CB1\u5CB2\u5CB3\u5CB4\u5CB5\u5CB6\u5CB7\u5CB8"+
- "\u5CB9\u5CBA\u5CBB\u5CBC\u5CBD\u5CBE\u5CBF\u5CC0"+
- "\u5CC1\u5CC2\u5CC3\u5CC4\u5CC5\u5CC6\u5CC7\u5CC8"+
- "\u5CC9\u5CCA\u5CCB\u5CCC\u5CCD\u5CCE\u5CCF\u5CD0"+
- "\u5CD1\u5CD2\u5CD3\u5CD4\u5CD5\u5CD6\u5CD7\u5CD8"+
- "\u5CD9\u5CDA\u5CDB\u5CDC\u5CDD\u5CDE\uFE6F\u5CDF"+
- "\u5CE0\u5CE1\u5CE2\u5CE3\u5CE4\u5CE5\u5CE6\u5CE7"+
- "\u5CE8\u5CE9\u5CEA\u5CEB\u5CEC\u5CED\u5CEE\u5CEF"+
- "\u5CF0\u5CF1\u5CF2\u5CF3\u5CF4\u5CF5\u5CF6\u5CF7"+
- "\u5CF8\u5CF9\u5CFA\u5CFB\u5CFC\u5CFD\u5CFE\u5CFF"+
- "\u5D00\u5D01\u5D02\u5D03\u5D04\u5D05\u5D06\u5D07"+
- "\u5D08\u5D09\u5D0A\u5D0B\u5D0C\u5D0D\u5D0E\u5D0F"+
- "\u5D10\u5D11\u5D12\u5D13\u5D14\u5D15\u5D16\u5D17"+
- "\u5D18\u5D19\u5D1A\u5D1B\u5D1C\u5D1D\u5D1E\u5D1F"+
- "\u5D20\u5D21\u5D22\u5D23\u5D24\u5D25\u5D26\u5D27"+
- "\u5D28\u5D29\u5D2A\u5D2B\u5D2C\u5D2D\u5D2E\u5D2F"+
- "\u5D30\u5D31\u5D32\u5D33\u5D34\u5D35\u5D36\u5D37"+
- "\u5D38\u5D39\u5D3A\u5D3B\u5D3C\u5D3D\u5D3E\u5D3F"+
- "\u5D40\u5D41\u5D42\u5D43\u5D44\u5D45\u5D46\u5D47"+
- "\u5D48\u5D49\u5D4A\u5D4B\u5D4C\u5D4D\u5D4E\u5D4F"+
- "\u5D50\u5D51\u5D52\u5D53\u5D54\u5D55\u5D56\u5D57"+
- "\u5D58\u5D59\u5D5A\u5D5B\u5D5C\u5D5D\u5D5E\u5D5F"+
- "\u5D60\u5D61\u5D62\u5D63\u5D64\u5D65\u5D66\u5D67"+
- "\u5D68\u5D69\u5D6A\u5D6B\u5D6C\u5D6D\u5D6E\u5D6F"+
- "\u5D70\u5D71\u5D72\u5D73\u5D74\u5D75\u5D76\u5D77"+
- "\u5D78\u5D79\u5D7A\u5D7B\u5D7C\u5D7D\u5D7E\u5D7F"+
- "\u5D80\u5D81\u5D82\u5D83\u5D84\u5D85\u5D86\u5D87"+
- "\u5D88\u5D89\u5D8A\u5D8B\u5D8C\u5D8D\u5D8E\u5D8F"+
- "\u5D90\u5D91\u5D92\u5D93\u5D94\u5D95\u5D96\u5D97"+
- "\u5D98\u5D99\u5D9A\u5D9B\u5D9C\u5D9D\u5D9E\u5D9F"+
- "\u5DA0\u5DA1\u5DA2\u5DA3\u5DA4\u5DA5\u5DA6\u5DA7"+
- "\u5DA8\u5DA9\u5DAA\u5DAB\u5DAC\u5DAD\u5DAE\u5DAF"+
- "\u5DB0\u5DB1\u5DB2\u5DB3\u5DB4\u5DB5\u5DB6\u5DB7"+
- "\u5DB8\u5DB9\u5DBA\u5DBB\u5DBC\u5DBD\u5DBE\u5DBF"+
- "\u5DC0\u5DC1\u5DC2\u5DC3\u5DC4\u5DC5\u5DC6\u5DC7"+
- "\u5DC8\u5DC9\u5DCA\u5DCB\u5DCC\u5DCD\u5DCE\u5DCF"+
- "\u5DD0\u5DD1\u5DD2\u5DD3\u5DD4\u5DD5\u5DD6\u5DD7"+
- "\u5DD8\u5DD9\u5DDA\u5DDB\u5DDC\u5DDD\u5DDE\u5DDF"+
- "\u5DE0\u5DE1\u5DE2\u5DE3\u5DE4\u5DE5\u5DE6\uFE70"+
- "\u5DE7\u5DE8\u5DE9\u5DEA\u5DEB\u5DEC\u5DED\u5DEE"+
- "\u5DEF\u5DF0\u5DF1\u5DF2\u5DF3\u5DF4\u5DF5\u5DF6"+
- "\u5DF7\u5DF8\u5DF9\u5DFA\u5DFB\u5DFC\u5DFD\u5DFE"+
- "\u5DFF\u5E00\u5E01\u5E02\u5E03\u5E04\u5E05\u5E06"+
- "\u5E07\u5E08\u5E09\u5E0A\u5E0B\u5E0C\u5E0D\u5E0E"+
- "\u5E0F\u5E10\u5E11\u5E12\u5E13\u5E14\u5E15\u5E16"+
- "\u5E17\u5E18\u5E19\u5E1A\u5E1B\u5E1C\u5E1D\u5E1E"+
- "\u5E1F\u5E20\u5E21\u5E22\u5E23\u5E24\u5E25\u5E26"+
- "\u5E27\u5E28\u5E29\u5E2A\u5E2B\u5E2C\u5E2D\u5E2E"+
- "\u5E2F\u5E30\u5E31\u5E32\u5E33\u5E34\u5E35\u5E36"+
- "\u5E37\u5E38\u5E39\u5E3A\u5E3B\u5E3C\u5E3D\u5E3E"+
- "\u5E3F\u5E40\u5E41\u5E42\u5E43\u5E44\u5E45\u5E46"+
- "\u5E47\u5E48\u5E49\u5E4A\u5E4B\u5E4C\u5E4D\u5E4E"+
- "\u5E4F\u5E50\u5E51\u5E52\u5E53\u5E54\u5E55\u5E56"+
- "\u5E57\u5E58\u5E59\u5E5A\u5E5B\u5E5C\u5E5D\u5E5E"+
- "\u5E5F\u5E60\u5E61\u5E62\u5E63\u5E64\u5E65\u5E66"+
- "\u5E67\u5E68\u5E69\u5E6A\u5E6B\u5E6C\u5E6D\u5E6E"+
- "\u5E6F\u5E70\u5E71\u5E72\u5E73\u5E74\u5E75\u5E76"+
- "\u5E77\u5E78\u5E79\u5E7A\u5E7B\u5E7C\u5E7D\u5E7E"+
- "\u5E7F\u5E80\u5E81\u5E82\u5E83\u5E84\u5E85\u5E86"+
- "\u5E87\u5E88\u5E89\u5E8A\u5E8B\u5E8C\u5E8D\u5E8E"+
- "\u5E8F\u5E90\u5E91\u5E92\u5E93\u5E94\u5E95\u5E96"+
- "\u5E97\u5E98\u5E99\u5E9A\u5E9B\u5E9C\u5E9D\u5E9E"+
- "\u5E9F\u5EA0\u5EA1\u5EA2\u5EA3\u5EA4\u5EA5\u5EA6"+
- "\u5EA7\u5EA8\u5EA9\u5EAA\u5EAB\u5EAC\u5EAD\u5EAE"+
- "\u5EAF\u5EB0\u5EB1\u5EB2\u5EB3\u5EB4\u5EB5\u5EB6"+
- "\u5EB7\u5EB8\u5EB9\u5EBA\u5EBB\u5EBC\u5EBD\u5EBE"+
- "\u5EBF\u5EC0\u5EC1\u5EC2\u5EC3\u5EC4\u5EC5\u5EC6"+
- "\u5EC7\u5EC8\u5EC9\u5ECA\u5ECB\u5ECC\u5ECD\u5ECE"+
- "\u5ECF\u5ED0\u5ED1\u5ED2\u5ED3\u5ED4\u5ED5\u5ED6"+
- "\u5ED7\u5ED8\u5ED9\u5EDA\u5EDB\u5EDC\u5EDD\u5EDE"+
- "\u5EDF\u5EE0\u5EE1\u5EE2\u5EE3\u5EE4\u5EE5\u5EE6"+
- "\u5EE7\u5EE8\u5EE9\u5EEA\u5EEB\u5EEC\u5EED\u5EEE"+
- "\u5EEF\u5EF0\u5EF1\u5EF2\u5EF3\u5EF4\u5EF5\u5EF6"+
- "\u5EF7\u5EF8\u5EF9\u5EFA\u5EFB\u5EFC\u5EFD\u5EFE"+
- "\u5EFF\u5F00\u5F01\u5F02\u5F03\u5F04\u5F05\u5F06"+
- "\u5F07\u5F08\u5F09\u5F0A\u5F0B\u5F0C\u5F0D\u5F0E"+
- "\u5F0F\u5F10\u5F11\u5F12\u5F13\u5F14\u5F15\u5F16"+
- "\u5F17\u5F18\u5F19\u5F1A\u5F1B\u5F1C\u5F1D\u5F1E"+
- "\u5F1F\u5F20\u5F21\u5F22\u5F23\u5F24\u5F25\u5F26"+
- "\u5F27\u5F28\u5F29\u5F2A\u5F2B\u5F2C\u5F2D\u5F2E"+
- "\u5F2F\u5F30\u5F31\u5F32\u5F33\u5F34\u5F35\u5F36"+
- "\u5F37\u5F38\u5F39\u5F3A\u5F3B\u5F3C\u5F3D\u5F3E"+
- "\u5F3F\u5F40\u5F41\u5F42\u5F43\u5F44\u5F45\u5F46"+
- "\u5F47\u5F48\u5F49\u5F4A\u5F4B\u5F4C\u5F4D\u5F4E"+
- "\u5F4F\u5F50\u5F51\u5F52\u5F53\u5F54\u5F55\u5F56"+
- "\u5F57\u5F58\u5F59\u5F5A\u5F5B\u5F5C\u5F5D\u5F5E"+
- "\u5F5F\u5F60\u5F61\u5F62\u5F63\u5F64\u5F65\u5F66"+
- "\u5F67\u5F68\u5F69\u5F6A\u5F6B\u5F6C\u5F6D\u5F6E"+
- "\u5F6F\u5F70\u5F71\u5F72\u5F73\u5F74\u5F75\u5F76"+
- "\u5F77\u5F78\u5F79\u5F7A\u5F7B\u5F7C\u5F7D\u5F7E"+
- "\u5F7F\u5F80\u5F81\u5F82\u5F83\u5F84\u5F85\u5F86"+
- "\u5F87\u5F88\u5F89\u5F8A\u5F8B\u5F8C\u5F8D\u5F8E"+
- "\u5F8F\u5F90\u5F91\u5F92\u5F93\u5F94\u5F95\u5F96"+
- "\u5F97\u5F98\u5F99\u5F9A\u5F9B\u5F9C\u5F9D\u5F9E"+
- "\u5F9F\u5FA0\u5FA1\u5FA2\u5FA3\u5FA4\u5FA5\u5FA6"+
- "\u5FA7\u5FA8\u5FA9\u5FAA\u5FAB\u5FAC\u5FAD\u5FAE"+
- "\u5FAF\u5FB0\u5FB1\u5FB2\u5FB3\u5FB4\u5FB5\u5FB6"+
- "\u5FB7\u5FB8\u5FB9\u5FBA\u5FBB\u5FBC\u5FBD\uFE72"+
- "\u5FBE\u5FBF\u5FC0\u5FC1\u5FC2\u5FC3\u5FC4\u5FC5"+
- "\u5FC6\u5FC7\u5FC8\u5FC9\u5FCA\u5FCB\u5FCC\u5FCD"+
- "\u5FCE\u5FCF\u5FD0\u5FD1\u5FD2\u5FD3\u5FD4\u5FD5"+
- "\u5FD6\u5FD7\u5FD8\u5FD9\u5FDA\u5FDB\u5FDC\u5FDD"+
- "\u5FDE\u5FDF\u5FE0\u5FE1\u5FE2\u5FE3\u5FE4\u5FE5"+
- "\u5FE6\u5FE7\u5FE8\u5FE9\u5FEA\u5FEB\u5FEC\u5FED"+
- "\u5FEE\u5FEF\u5FF0\u5FF1\u5FF2\u5FF3\u5FF4\u5FF5"+
- "\u5FF6\u5FF7\u5FF8\u5FF9\u5FFA\u5FFB\u5FFC\u5FFD"+
- "\u5FFE\u5FFF\u6000\u6001\u6002\u6003\u6004\u6005"+
- "\u6006\u6007\u6008\u6009\u600A\u600B\u600C\u600D"+
- "\u600E\u600F\u6010\u6011\u6012\u6013\u6014\u6015"+
- "\u6016\u6017\u6018\u6019\u601A\u601B\u601C\u601D"+
- "\u601E\u601F\u6020\u6021\u6022\u6023\u6024\u6025"+
- "\u6026\u6027\u6028\u6029\u602A\u602B\u602C\u602D"+
- "\u602E\u602F\u6030\u6031\uFE78\u6032\u6033\u6034"+
- "\u6035\uFE77\u6036\u6037\u6038\u6039\u603A\u603B"+
- "\u603C\u603D\u603E\u603F\u6040\u6041\u6042\u6043"+
- "\u6044\u6045\u6046\u6047\u6048\u6049\u604A\u604B"+
- "\u604C\u604D\u604E\u604F\u6050\u6051\u6052\u6053"+
- "\u6054\u6055\u6056\u6057\u6058\u6059\u605A\u605B"+
- "\u605C\u605D\u605E\u605F\u6060\uFE7A\u6061\u6062"+
- "\u6063\u6064\u6065\u6066\u6067\u6068\u6069\u606A"+
- "\u606B\u606C\u606D\u606E\u606F\u6070\u6071\u6072"+
- "\u6073\u6074\u6075\u6076\u6077\u6078\u6079\u607A"+
- "\u607B\u607C\u607D\u607E\u607F\u6080\u6081\u6082"+
- "\u6083\u6084\u6085\u6086\u6087\u6088\u6089\u608A"+
- "\u608B\u608C\u608D\u608E\u608F\u6090\u6091\u6092"+
- "\u6093\u6094\u6095\u6096\u6097\u6098\u6099\u609A"+
- "\u609B\u609C\u609D\u609E\u609F\u60A0\u60A1\u60A2"+
- "\u60A3\u60A4\u60A5\u60A6\u60A7\u60A8\u60A9\u60AA"+
- "\u60AB\u60AC\u60AD\u60AE\u60AF\u60B0\u60B1\u60B2"+
- "\u60B3\u60B4\u60B5\u60B6\u60B7\u60B8\u60B9\u60BA"+
- "\u60BB\u60BC\u60BD\u60BE\u60BF\u60C0\u60C1\u60C2"+
- "\u60C3\u60C4\u60C5\u60C6\u60C7\u60C8\u60C9\u60CA"+
- "\u60CB\u60CC\u60CD\u60CE\u60CF\u60D0\u60D1\u60D2"+
- "\u60D3\u60D4\u60D5\u60D6\u60D7\u60D8\u60D9\u60DA"+
- "\u60DB\u60DC\u60DD\u60DE\u60DF\u60E0\u60E1\u60E2"+
- "\u60E3\u60E4\u60E5\u60E6\u60E7\u60E8\u60E9\u60EA"+
- "\u60EB\u60EC\u60ED\u60EE\u60EF\u60F0\u60F1\u60F2"+
- "\u60F3\u60F4\u60F5\u60F6\u60F7\u60F8\u60F9\u60FA"+
- "\u60FB\u60FC\u60FD\u60FE\u60FF\u6100\u6101\u6102"+
- "\u6103\u6104\u6105\u6106\u6107\u6108\u6109\u610A"+
- "\u610B\u610C\u610D\u610E\u610F\u6110\u6111\u6112"+
- "\u6113\u6114\u6115\u6116\u6117\u6118\u6119\u611A"+
- "\u611B\u611C\u611D\u611E\u611F\u6120\u6121\u6122"+
- "\u6123\u6124\u6125\u6126\u6127\u6128\u6129\u612A"+
- "\u612B\u612C\u612D\u612E\u612F\u6130\u6131\u6132"+
- "\u6133\u6134\u6135\u6136\u6137\u6138\u6139\u613A"+
- "\u613B\u613C\u613D\u613E\u613F\u6140\u6141\u6142"+
- "\u6143\u6144\u6145\u6146\u6147\u6148\u6149\u614A"+
- "\u614B\u614C\u614D\u614E\u614F\u6150\u6151\u6152"+
- "\u6153\u6154\u6155\u6156\u6157\u6158\uFE7B\u6159"+
- "\u615A\u615B\u615C\u615D\u615E\u615F\u6160\u6161"+
- "\u6162\u6163\u6164\u6165\u6166\u6167\u6168\u6169"+
- "\u616A\u616B\u616C\u616D\u616E\u616F\u6170\u6171"+
- "\u6172\u6173\u6174\u6175\u6176\u6177\u6178\u6179"+
- "\u617A\u617B\u617C\u617D\u617E\u617F\u6180\u6181"+
- "\u6182\u6183\u6184\u6185\u6186\u6187\u6188\u6189"+
- "\u618A\u618B\u618C\u618D\u618E\u618F\u6190\u6191"+
- "\u6192\u6193\u6194\u6195\u6196\u6197\u6198\u6199"+
- "\u619A\u619B\u619C\u619D\u619E\u619F\u61A0\u61A1"+
- "\u61A2\u61A3\u61A4\u61A5\u61A6\u61A7\u61A8\u61A9"+
- "\u61AA\u61AB\u61AC\u61AD\u61AE\u61AF\u61B0\u61B1"+
- "\u61B2\u61B3\u61B4\u61B5\u61B6\u61B7\u61B8\u61B9"+
- "\u61BA\u61BB\u61BC\u61BD\u61BE\u61BF\u61C0\u61C1"+
- "\u61C2\u61C3\u61C4\u61C5\u61C6\u61C7\u61C8\u61C9"+
- "\u61CA\u61CB\u61CC\u61CD\u61CE\u61CF\u61D0\u61D1"+
- "\u61D2\u61D3\u61D4\u61D5\u61D6\u61D7\u61D8\u61D9"+
- "\u61DA\u61DB\u61DC\u61DD\u61DE\u61DF\u61E0\u61E1"+
- "\u61E2\u61E3\u61E4\u61E5\u61E6\u61E7\u61E8\u61E9"+
- "\u61EA\u61EB\u61EC\u61ED\u61EE\u61EF\u61F0\u61F1"+
- "\u61F2\u61F3\u61F4\u61F5\u61F6\u61F7\u61F8\u61F9"+
- "\u61FA\u61FB\u61FC\u61FD\u61FE\u61FF\u6200\u6201"+
- "\u6202\u6203\u6204\u6205\u6206\u6207\u6208\u6209"+
- "\u620A\u620B\u620C\u620D\u620E\u620F\u6210\u6211"+
- "\u6212\u6213\u6214\u6215\u6216\u6217\u6218\u6219"+
- "\u621A\u621B\u621C\u621D\u621E\u621F\u6220\u6221"+
- "\u6222\u6223\u6224\u6225\u6226\u6227\u6228\u6229"+
- "\u622A\u622B\u622C\u622D\u622E\u622F\u6230\u6231"+
- "\u6232\u6233\u6234\u6235\u6236\u6237\u6238\u6239"+
- "\u623A\u623B\u623C\u623D\u623E\u623F\u6240\u6241"+
- "\u6242\u6243\u6244\u6245\u6246\u6247\u6248\u6249"+
- "\u624A\u624B\u624C\u624D\u624E\u624F\u6250\u6251"+
- "\u6252\u6253\u6254\u6255\u6256\u6257\u6258\u6259"+
- "\u625A\u625B\u625C\u625D\u625E\u625F\u6260\u6261"+
- "\u6262\u6263\u6264\u6265\u6266\u6267\u6268\u6269"+
- "\u626A\u626B\u626C\u626D\u626E\u626F\u6270\u6271"+
- "\u6272\u6273\u6274\u6275\u6276\u6277\u6278\u6279"+
- "\u627A\u627B\u627C\u627D\u627E\u627F\u6280\u6281"+
- "\u6282\u6283\u6284\u6285\u6286\u6287\u6288\u6289"+
- "\u628A\u628B\u628C\u628D\u628E\u628F\u6290\u6291"+
- "\u6292\u6293\u6294\u6295\u6296\u6297\u6298\u6299"+
- "\u629A\u629B\u629C\u629D\u629E\u629F\u62A0\u62A1"+
- "\u62A2\u62A3\u62A4\u62A5\u62A6\u62A7\u62A8\u62A9"+
- "\u62AA\u62AB\u62AC\u62AD\u62AE\u62AF\u62B0\u62B1"+
- "\u62B2\u62B3\u62B4\u62B5\u62B6\u62B7\u62B8\u62B9"+
- "\u62BA\u62BB\u62BC\u62BD\u62BE\u62BF\u62C0\u62C1"+
- "\u62C2\u62C3\u62C4\u62C5\u62C6\u62C7\u62C8\u62C9"+
- "\u62CA\u62CB\u62CC\u62CD\uFE7D\u62CE\u62CF\u62D0"+
- "\u62D1\u62D2\u62D3\u62D4\u62D5\u62D6\u62D7\u62D8"+
- "\u62D9\u62DA\u62DB\u62DC\u62DD\u62DE\u62DF\u62E0"+
- "\u62E1\uFE7C\u62E2\u62E3\u62E4\u62E5\u62E6\u62E7"+
- "\u62E8\u62E9\u62EA\u62EB\u62EC\u62ED\u62EE\u62EF"+
- "\u62F0\u62F1\u62F2\u62F3\u62F4\u62F5\u62F6\u62F7"+
- "\u62F8\u62F9\u62FA\u62FB\u62FC\u62FD\u62FE\u62FF"+
- "\u6300\u6301\u6302\u6303\u6304\u6305\u6306\u6307"+
- "\u6308\u6309\u630A\u630B\u630C\u630D\u630E\u630F"+
- "\u6310\u6311\u6312\u6313\u6314\u6315\u6316\u6317"+
- "\u6318\u6319\u631A\u631B\u631C\u631D\u631E\u631F"+
- "\u6320\u6321\u6322\u6323\u6324\u6325\u6326\u6327"+
- "\u6328\u6329\u632A\u632B\u632C\u632D\u632E\u632F"+
- "\u6330\u6331\u6332\u6333\u6334\u6335\u6336\u6337"+
- "\u6338\u6339\u633A\u633B\u633C\u633D\u633E\u633F"+
- "\u6340\u6341\u6342\u6343\u6344\u6345\u6346\u6347"+
- "\u6348\u6349\u634A\u634B\u634C\u634D\u634E\u634F"+
- "\u6350\u6351\u6352\u6353\u6354\u6355\u6356\u6357"+
- "\u6358\u6359\u635A\u635B\u635C\u635D\u635E\u635F"+
- "\u6360\u6361\u6362\u6363\u6364\u6365\u6366\u6367"+
- "\u6368\u6369\u636A\u636B\u636C\u636D\u636E\u636F"+
- "\u6370\u6371\u6372\u6373\u6374\u6375\u6376\u6377"+
- "\u6378\u6379\u637A\u637B\u637C\u637D\u637E\u637F"+
- "\u6380\u6381\u6382\u6383\u6384\u6385\u6386\u6387"+
- "\u6388\u6389\u638A\u638B\u638C\u638D\u638E\u638F"+
- "\u6390\u6391\u6392\u6393\u6394\u6395\u6396\u6397"+
- "\u6398\u6399\u639A\u639B\u639C\u639D\u639E\u639F"+
- "\u63A0\u63A1\u63A2\uFE80\u63A3\u63A4\u63A5\u63A6"+
- "\u63A7\uFE81\u63A8\u63A9\u63AA\u63AB\u63AC\u63AD"+
- "\u63AE\u63AF\u63B0\u63B1\u63B2\u63B3\u63B4\u63B5"+
- "\u63B6\u63B7\u63B8\u63B9\u63BA\u63BB\u63BC\u63BD"+
- "\u63BE\u63BF\u63C0\u63C1\u63C2\u63C3\u63C4\u63C5"+
- "\u63C6\u63C7\u63C8\u63C9\u63CA\u63CB\u63CC\u63CD"+
- "\u63CE\u63CF\u63D0\u63D1\u63D2\u63D3\u63D4\u63D5"+
- "\u63D6\u63D7\u63D8\u63D9\u63DA\u63DB\u63DC\u63DD"+
- "\u63DE\u63DF\u63E0\u63E1\u63E2\u63E3\u63E4\u63E5"+
- "\u63E6\u63E7\u63E8\u63E9\u63EA\u63EB\u63EC\u63ED"+
- "\u63EE\u63EF\u63F0\u63F1\u63F2\u63F3\u63F4\u63F5"+
- "\u63F6\u63F7\u63F8\u63F9\uFE82\u63FA\u63FB\u63FC"+
- "\u63FD\u63FE\u63FF\u6400\u6401\u6402\u6403\u6404"+
- "\u6405\u6406\u6407\u6408\u6409\uFE83\u640A\u640B"+
- "\u640C\u640D\u640E\u640F\u6410\u6411\u6412\u6413"+
- "\u6414\u6415\u6416\u6417\u6418\u6419\u641A\u641B"+
- "\u641C\u641D\u641E\u641F\u6420\u6421\u6422\u6423"+
- "\u6424\u6425\u6426\u6427\u6428\u6429\u642A\u642B"+
- "\u642C\u642D\u642E\u642F\u6430\u6431\u6432\u6433"+
- "\u6434\u6435\u6436\u6437\u6438\u6439\u643A\u643B"+
- "\u643C\u643D\u643E\u643F\u6440\u6441\u6442\u6443"+
- "\u6444\u6445\u6446\u6447\u6448\u6449\u644A\u644B"+
- "\u644C\u644D\u644E\u644F\u6450\u6451\u6452\u6453"+
- "\u6454\u6455\u6456\u6457\u6458\u6459\u645A\u645B"+
- "\u645C\u645D\u645E\u645F\u6460\u6461\u6462\u6463"+
- "\u6464\u6465\u6466\u6467\u6468\u6469\u646A\u646B"+
- "\u646C\u646D\u646E\u646F\u6470\u6471\u6472\u6473"+
- "\u6474\u6475\u6476\u6477\u6478\u6479\u647A\u647B"+
- "\u647C\u647D\u647E\u647F\u6480\u6481\u6482\u6483"+
- "\u6484\u6485\u6486\u6487\u6488\u6489\u648A\u648B"+
- "\u648C\u648D\u648E\u648F\u6490\u6491\u6492\u6493"+
- "\u6494\u6495\u6496\u6497\u6498\u6499\u649A\u649B"+
- "\u649C\u649D\u649E\u649F\u64A0\u64A1\u64A2\u64A3"+
- "\u64A4\u64A5\u64A6\u64A7\u64A8\u64A9\u64AA\u64AB"+
- "\u64AC\u64AD\u64AE\u64AF\u64B0\u64B1\u64B2\u64B3"+
- "\u64B4\u64B5\u64B6\u64B7\u64B8\u64B9\u64BA\u64BB"+
- "\u64BC\u64BD\u64BE\u64BF\u64C0\u64C1\u64C2\u64C3"+
- "\u64C4\u64C5\u64C6\u64C7\u64C8\u64C9\u64CA\u64CB"+
- "\u64CC\u64CD\u64CE\u64CF\u64D0\u64D1\u64D2\u64D3"+
- "\u64D4\u64D5\u64D6\u64D7\u64D8\u64D9\u64DA\u64DB"+
- "\u64DC\u64DD\u64DE\u64DF\u64E0\u64E1\u64E2\u64E3"+
- "\u64E4\u64E5\u64E6\u64E7\u64E8\u64E9\u64EA\u64EB"+
- "\u64EC\u64ED\u64EE\u64EF\u64F0\u64F1\u64F2\u64F3"+
- "\u64F4\u64F5\u64F6\u64F7\u64F8\u64F9\u64FA\u64FB"+
- "\u64FC\u64FD\u64FE\u64FF\u6500\u6501\u6502\u6503"+
- "\u6504\u6505\u6506\u6507\u6508\u6509\u650A\u650B"+
- "\u650C\u650D\u650E\u650F\u6510\u6511\u6512\u6513"+
- "\u6514\u6515\u6516\u6517\u6518\u6519\u651A\u651B"+
- "\u651C\u651D\u651E\u651F\u6520\u6521\u6522\u6523"+
- "\u6524\u6525\u6526\u6527\u6528\u6529\u652A\u652B"+
- "\u652C\u652D\u652E\u652F\u6530\u6531\u6532\u6533"+
- "\u6534\u6535\u6536\u6537\u6538\u6539\u653A\u653B"+
- "\u653C\u653D\u653E\u653F\u6540\u6541\u6542\u6543"+
- "\u6544\u6545\u6546\u6547\u6548\u6549\u654A\u654B"+
- "\u654C\u654D\u654E\u654F\u6550\u6551\u6552\u6553"+
- "\u6554\u6555\u6556\u6557\u6558\u6559\u655A\u655B"+
- "\u655C\u655D\u655E\u655F\u6560\u6561\u6562\u6563"+
- "\u6564\u6565\u6566\u6567\u6568\u6569\u656A\u656B"+
- "\u656C\u656D\u656E\u656F\u6570\u6571\u6572\u6573"+
- "\u6574\u6575\u6576\u6577\u6578\u6579\u657A\u657B"+
- "\u657C\u657D\u657E\u657F\u6580\u6581\u6582\u6583"+
- "\u6584\u6585\u6586\u6587\u6588\u6589\u658A\u658B"+
- "\u658C\u658D\u658E\u658F\u6590\u6591\u6592\u6593"+
- "\u6594\u6595\u6596\u6597\u6598\u6599\u659A\u659B"+
- "\u659C\u659D\u659E\u659F\u65A0\u65A1\u65A2\u65A3"+
- "\u65A4\u65A5\u65A6\u65A7\u65A8\u65A9\u65AA\u65AB"+
- "\u65AC\u65AD\u65AE\u65AF\u65B0\u65B1\u65B2\u65B3"+
- "\u65B4\u65B5\u65B6\u65B7\u65B8\u65B9\u65BA\u65BB"+
- "\u65BC\u65BD\u65BE\u65BF\u65C0\u65C1\u65C2\uFE85"+
- "\u65C3\u65C4\u65C5\u65C6\u65C7\u65C8\u65C9\u65CA"+
- "\u65CB\u65CC\u65CD\u65CE\u65CF\u65D0\u65D1\u65D2"+
- "\u65D3\u65D4\u65D5\u65D6\u65D7\u65D8\u65D9\u65DA"+
- "\u65DB\u65DC\u65DD\u65DE\u65DF\u65E0\u65E1\u65E2"+
- "\u65E3\u65E4\u65E5\u65E6\u65E7\u65E8\u65E9\u65EA"+
- "\u65EB\u65EC\u65ED\u65EE\u65EF\u65F0\u65F1\u65F2"+
- "\u65F3\u65F4\uFE86\u65F5\u65F6\uFE87\u65F7\u65F8"+
- "\u65F9\u65FA\uFE88\uFE89\u65FB\uFE8A\uFE8B\u65FC"+
- "\u65FD\u65FE\u65FF\u6600\u6601\u6602\u6603\u6604"+
- "\u6605\u6606\u6607\u6608\u6609\u660A\u660B\u660C"+
- "\u660D\u660E\u660F\uFE8D\u6610\u6611\u6612\uFE8C"+
- "\u6613\u6614\u6615\u6616\u6617\u6618\u6619\u661A"+
- "\u661B\u661C\u661D\u661E\u661F\u6620\u6621\u6622"+
- "\u6623\u6624\u6625\u6626\u6627\u6628\uFE8F\uFE8E"+
- "\u6629\u662A\u662B\u662C\u662D\u662E\u662F\u6630"+
- "\u6631\u6632\u6633\u6634\u6635\u6636\u6637\u6638"+
- "\u6639\u663A\u663B\u663C\u663D\u663E\u663F\u6640"+
- "\u6641\u6642\u6643\u6644\u6645\u6646\u6647\u6648"+
- "\u6649\u664A\u664B\u664C\u664D\u664E\u664F\u6650"+
- "\u6651\u6652\u6653\u6654\u6655\u6656\u6657\u6658"+
- "\u6659\u665A\u665B\u665C\u665D\u665E\u665F\u6660"+
- "\u6661\u6662\u6663\u6664\u6665\u6666\u6667\u6668"+
- "\u6669\u666A\u666B\u666C\u666D\u666E\u666F\u6670"+
- "\u6671\u6672\u6673\u6674\u6675\u6676\u6677\u6678"+
- "\u6679\u667A\u667B\u667C\u667D\u667E\u667F\u6680"+
- "\u6681\u6682\u6683\u6684\u6685\u6686\u6687\u6688"+
- "\u6689\u668A\u668B\u668C\u668D\u668E\u668F\u6690"+
- "\u6691\u6692\u6693\u6694\u6695\u6696\u6697\u6698"+
- "\u6699\u669A\u669B\u669C\u669D\u669E\u669F\u66A0"+
- "\u66A1\u66A2\u66A3\u66A4\u66A5\u66A6\u66A7\u66A8"+
- "\u66A9\u66AA\u66AB\u66AC\u66AD\u66AE\u66AF\u66B0"+
- "\u66B1\u66B2\u66B3\u66B4\u66B5\u66B6\u66B7\u66B8"+
- "\u66B9\u66BA\u66BB\u66BC\u66BD\u66BE\u66BF\u66C0"+
- "\u66C1\u66C2\u66C3\u66C4\u66C5\u66C6\u66C7\u66C8"+
- "\u66C9\u66CA\u66CB\u66CC\u66CD\u66CE\u66CF\u66D0"+
- "\u66D1\u66D2\u66D3\u66D4\u66D5\u66D6\u66D7\u66D8"+
- "\u66D9\u66DA\u66DB\u66DC\u66DD\u66DE\u66DF\u66E0"+
- "\u66E1\u66E2\u66E3\u66E4\u66E5\u66E6\u66E7\u66E8"+
- "\u66E9\u66EA\u66EB\u66EC\u66ED\u66EE\u66EF\u66F0"+
- "\u66F1\u66F2\u66F3\u66F4\u66F5\u66F6\u66F7\u66F8"+
- "\u66F9\u66FA\u66FB\u66FC\u66FD\u66FE\u66FF\u6700"+
- "\u6701\u6702\u6703\u6704\u6705\u6706\u6707\u6708"+
- "\u6709\u670A\u670B\u670C\u670D\u670E\u670F\u6710"+
- "\u6711\u6712\u6713\u6714\u6715\u6716\u6717\u6718"+
- "\u6719\u671A\u671B\u671C\u671D\u671E\u671F\u6720"+
- "\u6721\u6722\u6723\u6724\u6725\u6726\u6727\u6728"+
- "\u6729\u672A\u672B\u672C\u672D\u672E\u672F\u6730"+
- "\u6731\u6732\u6733\u6734\u6735\u6736\u6737\u6738"+
- "\u6739\u673A\u673B\u673C\u673D\u673E\u673F\u6740"+
- "\u6741\u6742\u6743\u6744\u6745\u6746\u6747\u6748"+
- "\u6749\u674A\u674B\u674C\u674D\u674E\u674F\u6750"+
- "\u6751\u6752\u6753\u6754\u6755\u6756\u6757\u6758"+
- "\u6759\u675A\u675B\u675C\u675D\u675E\u675F\u6760"+
- "\u6761\u6762\u6763\u6764\u6765\u6766\u6767\u6768"+
- "\u6769\u676A\u676B\u676C\u676D\u676E\u676F\u6770"+
- "\u6771\u6772\u6773\u6774\u6775\u6776\u6777\u6778"+
- "\u6779\u677A\u677B\u677C\u677D\u677E\u677F\u6780"+
- "\u6781\u6782\u6783\u6784\u6785\u6786\u6787\u6788"+
- "\u6789\u678A\u678B\u678C\u678D\u678E\u678F\u6790"+
- "\u6791\u6792\u6793\u6794\u6795\u6796\u6797\u6798"+
- "\u6799\u679A\u679B\u679C\u679D\u679E\u679F\u67A0"+
- "\u67A1\u67A2\u67A3\u67A4\u67A5\u67A6\u67A7\u67A8"+
- "\u67A9\u67AA\u67AB\u67AC\u67AD\u67AE\u67AF\u67B0"+
- "\u67B1\u67B2\u67B3\u67B4\u67B5\u67B6\u67B7\u67B8"+
- "\u67B9\u67BA\u67BB\u67BC\u67BD\u67BE\u67BF\u67C0"+
- "\u67C1\u67C2\u67C3\u67C4\u67C5\u67C6\u67C7\u67C8"+
- "\u67C9\u67CA\u67CB\u67CC\u67CD\u67CE\u67CF\u67D0"+
- "\u67D1\u67D2\u67D3\u67D4\u67D5\u67D6\u67D7\u67D8"+
- "\u67D9\u67DA\u67DB\u67DC\u67DD\u67DE\u67DF\u67E0"+
- "\u67E1\u67E2\u67E3\u67E4\u67E5\u67E6\u67E7\u67E8"+
- "\u67E9\u67EA\u67EB\u67EC\u67ED\u67EE\u67EF\u67F0"+
- "\u67F1\u67F2\u67F3\u67F4\u67F5\u67F6\u67F7\u67F8"+
- "\u67F9\u67FA\u67FB\u67FC\u67FD\u67FE\u67FF\u6800"+
- "\u6801\u6802\u6803\u6804\u6805\u6806\u6807\u6808"+
- "\u6809\u680A\u680B\u680C\u680D\u680E\u680F\u6810"+
- "\u6811\u6812\u6813\u6814\u6815\u6816\u6817\u6818"+
- "\u6819\u681A\u681B\u681C\u681D\u681E\u681F\u6820"+
- "\u6821\u6822\u6823\u6824\u6825\u6826\u6827\u6828"+
- "\u6829\u682A\u682B\u682C\u682D\u682E\u682F\u6830"+
- "\u6831\u6832\u6833\u6834\u6835\u6836\u6837\u6838"+
- "\u6839\u683A\u683B\u683C\u683D\u683E\u683F\u6840"+
- "\u6841\u6842\u6843\u6844\u6845\u6846\u6847\u6848"+
- "\u6849\u684A\u684B\u684C\u684D\u684E\u684F\u6850"+
- "\u6851\u6852\u6853\u6854\u6855\u6856\u6857\u6858"+
- "\u6859\u685A\u685B\u685C\u685D\u685E\u685F\u6860"+
- "\u6861\u6862\u6863\u6864\u6865\u6866\u6867\u6868"+
- "\u6869\u686A\u686B\u686C\u686D\u686E\u686F\u6870"+
- "\u6871\u6872\u6873\u6874\u6875\u6876\u6877\u6878"+
- "\u6879\u687A\u687B\u687C\u687D\u687E\u687F\u6880"+
- "\u6881\u6882\u6883\u6884\u6885\u6886\u6887\u6888"+
- "\u6889\u688A\u688B\u688C\u688D\u688E\u688F\u6890"+
- "\u6891\u6892\u6893\u6894\u6895\u6896\u6897\u6898"+
- "\u6899\u689A\u689B\u689C\u689D\u689E\u689F\u68A0"+
- "\u68A1\u68A2\u68A3\u68A4\u68A5\u68A6\u68A7\u68A8"+
- "\u68A9\u68AA\u68AB\u68AC\u68AD\u68AE\u68AF\u68B0"+
- "\u68B1\u68B2\u68B3\u68B4\u68B5\u68B6\u68B7\u68B8"+
- "\u68B9\u68BA\u68BB\u68BC\u68BD\u68BE\u68BF\u68C0"+
- "\u68C1\u68C2\u68C3\u68C4\u68C5\u68C6\u68C7\u68C8"+
- "\u68C9\u68CA\u68CB\u68CC\u68CD\u68CE\u68CF\u68D0"+
- "\u68D1\u68D2\u68D3\u68D4\u68D5\u68D6\u68D7\u68D8"+
- "\u68D9\u68DA\u68DB\u68DC\u68DD\u68DE\u68DF\u68E0"+
- "\u68E1\u68E2\u68E3\u68E4\u68E5\u68E6\u68E7\uFE96"+
- "\u68E8\u68E9\u68EA\u68EB\u68EC\u68ED\u68EE\u68EF"+
- "\u68F0\u68F1\u68F2\u68F3\u68F4\u68F5\u68F6\u68F7"+
- "\u68F8\u68F9\u68FA\u68FB\u68FC\u68FD\u68FE\u68FF"+
- "\u6900\u6901\u6902\u6903\u6904\u6905\u6906\u6907"+
- "\u6908\u6909\u690A\u690B\u690C\u690D\u690E\uFE93"+
- "\uFE94\uFE95\uFE97\uFE92\u690F\u6910\u6911\u6912"+
- "\u6913\u6914\u6915\u6916\u6917\u6918\u6919\u691A"+
- "\u691B\u691C\u691D\u691E\u691F\u6920\u6921\u6922"+
- "\u6923\u6924\u6925\u6926\u6927\u6928\u6929\u692A"+
- "\u692B\u692C\u692D\u692E\u692F\u6930\u6931\u6932"+
- "\u6933\u6934\u6935\u6936\u6937\u6938\u6939\u693A"+
- "\u693B\u693C\u693D\u693E\u693F\u6940\u6941\u6942"+
- "\u6943\u6944\u6945\u6946\u6947\u6948\u6949\u694A"+
- "\u694B\u694C\u694D\u694E\u694F\u6950\u6951\u6952"+
- "\u6953\u6954\u6955\u6956\u6957\u6958\u6959\u695A"+
- "\u695B\u695C\u695D\u695E\u695F\u6960\u6961\u6962"+
- "\u6963\u6964\u6965\u6966\u6967\u6968\u6969\u696A"+
- "\u696B\u696C\u696D\u696E\u696F\u6970\u6971\u6972"+
- "\u6973\u6974\u6975\u6976\u6977\u6978\u6979\u697A"+
- "\u697B\u697C\u697D\uFE98\uFE99\uFE9A\uFE9B\uFE9C"+
- "\uFE9D\uFE9E\u697E\u697F\u6980\u6981\u6982\u6983"+
- "\u6984\u6985\u6986\u6987\u6988\u6989\u698A\u698B"+
- "\u698C\u698D\u698E\u698F\u6990\u6991\u6992\u6993"+
- "\u6994\u6995\u6996\u6997\u6998\u6999\u699A\u699B"+
- "\u699C\u699D\u699E\u699F\u69A0\u69A1\u69A2\u69A3"+
- "\u69A4\u69A5\u69A6\u69A7\u69A8\u69A9\u69AA\u69AB"+
- "\u69AC\u69AD\u69AE\u69AF\u69B0\u69B1\u69B2\u69B3"+
- "\u69B4\u69B5\u69B6\u69B7\u69B8\u69B9\u69BA\u69BB"+
- "\u69BC\u69BD\u69BE\u69BF\u69C0\u69C1\u69C2\u69C3"+
- "\u69C4\u69C5\u69C6\u69C7\u69C8\u69C9\u69CA\u69CB"+
- "\u69CC\u69CD\u69CE\u69CF\u69D0\u69D1\u69D2\u69D3"+
- "\u69D4\u69D5\u69D6\u69D7\u69D8\u69D9\u69DA\u69DB"+
- "\u69DC\u69DD\u69DE\u69DF\u69E0\u69E1\u69E2\u69E3"+
- "\u69E4\u69E5\u69E6\u69E7\u69E8\u69E9\u69EA\u69EB"+
- "\u69EC\u69ED\u69EE\u69EF\u69F0\u69F1\u69F2\u69F3"+
- "\u69F4\u69F5\u69F6\u69F7\u69F8\u69F9\u69FA\u69FB"+
- "\u69FC\u69FD\u69FE\u69FF\u6A00\u6A01\u6A02\u6A03"+
- "\u6A04\u6A05\u6A06\u6A07\u6A08\u6A09\u6A0A\u6A0B"+
- "\u6A0C\u6A0D\u6A0E\u6A0F\u6A10\u6A11\uFE9F\u6A12"+
- "\u6A13\u6A14\u6A15\u6A16\u6A17\u6A18\u6A19\u6A1A"+
- "\u6A1B\u6A1C\u6A1D\u6A1E\u6A1F\u6A20\u6A21\u6A22"+
- "\u6A23\u6A24\u6A25\u6A26\u6A27\u6A28\u6A29\u6A2A"+
- "\u6A2B\u6A2C\u6A2D\u6A2E\u6A2F\u6A30\u6A31\u6A32"+
- "\u6A33\u6A34\u6A35\u6A36\u6A37\u6A38\u6A39\u6A3A"+
- "\u6A3B\u6A3C\u6A3D\u6A3E\u6A3F\u6A40\u6A41\u6A42"+
- "\u6A43\u6A44\u6A45\u6A46\u6A47\u6A48\u6A49\u6A4A"+
- "\u6A4B\u6A4C\u6A4D\u6A4E\u6A4F\u6A50\u6A51\u6A52"+
- "\u6A53\u6A54\u6A55\u6A56\u6A57\u6A58\u6A59\u6A5A"+
- "\u6A5B\u6A5C\u6A5D\u6A5E\u6A5F\u6A60\u6A61\u6A62"+
- "\uD2BB\uB6A1\u8140\uC6DF\u8141\u8142\u8143\uCDF2"+
- "\uD5C9\uC8FD\uC9CF\uCFC2\uD8A2\uB2BB\uD3EB\u8144"+
- "\uD8A4\uB3F3\u8145\uD7A8\uC7D2\uD8A7\uCAC0\u8146"+
- "\uC7F0\uB1FB\uD2B5\uB4D4\uB6AB\uCBBF\uD8A9\u8147"+
- "\u8148\u8149\uB6AA\u814A\uC1BD\uD1CF\u814B\uC9A5"+
- "\uD8AD\u814C\uB8F6\uD1BE\uE3DC\uD6D0\u814D\u814E"+
- "\uB7E1\u814F\uB4AE\u8150\uC1D9\u8151\uD8BC\u8152"+
- "\uCDE8\uB5A4\uCEAA\uD6F7\u8153\uC0F6\uBED9\uD8AF"+
- "\u8154\u8155\u8156\uC4CB\u8157\uBEC3\u8158\uD8B1"+
- "\uC3B4\uD2E5\u8159\uD6AE\uCEDA\uD5A7\uBAF5\uB7A6"+
- "\uC0D6\u815A\uC6B9\uC5D2\uC7C7\u815B\uB9D4\u815C"+
- "\uB3CB\uD2D2\u815D\u815E\uD8BF\uBEC5\uC6F2\uD2B2"+
- "\uCFB0\uCFE7\u815F\u8160\u8161\u8162\uCAE9\u8163"+
- "\u8164\uD8C0\u8165\u8166\u8167\u8168\u8169\u816A"+
- "\uC2F2\uC2D2\u816B\uC8E9\u816C\u816D\u816E\u816F"+
- "\u8170\u8171\u8172\u8173\u8174\u8175\uC7AC\u8176"+
- "\u8177\u8178\u8179\u817A\u817B\u817C\uC1CB\u817D"+
- "\uD3E8\uD5F9\u817E\uCAC2\uB6FE\uD8A1\uD3DA\uBFF7"+
- "\u8180\uD4C6\uBBA5\uD8C1\uCEE5\uBEAE\u8181\u8182"+
- "\uD8A8\u8183\uD1C7\uD0A9\u8184\u8185\u8186\uD8BD"+
- "\uD9EF\uCDF6\uBFBA\u8187\uBDBB\uBAA5\uD2E0\uB2FA"+
- "\uBAE0\uC4B6\u8188\uCFED\uBEA9\uCDA4\uC1C1\u8189"+
- "\u818A\u818B\uC7D7\uD9F1\u818C\uD9F4\u818D\u818E"+
- "\u818F\u8190\uC8CB\uD8E9\u8191\u8192\u8193\uD2DA"+
- "\uCAB2\uC8CA\uD8EC\uD8EA\uD8C6\uBDF6\uC6CD\uB3F0"+
- "\u8194\uD8EB\uBDF1\uBDE9\u8195\uC8D4\uB4D3\u8196"+
- "\u8197\uC2D8\u8198\uB2D6\uD7D0\uCACB\uCBFB\uD5CC"+
- "\uB8B6\uCFC9\u8199\u819A\u819B\uD9DA\uD8F0\uC7AA"+
- "\u819C\uD8EE\u819D\uB4FA\uC1EE\uD2D4\u819E\u819F"+
- "\uD8ED\u81A0\uD2C7\uD8EF\uC3C7\u81A1\u81A2\u81A3"+
- "\uD1F6\u81A4\uD6D9\uD8F2\u81A5\uD8F5\uBCFE\uBCDB"+
- "\u81A6\u81A7\u81A8\uC8CE\u81A9\uB7DD\u81AA\uB7C2"+
- "\u81AB\uC6F3\u81AC\u81AD\u81AE\u81AF\u81B0\u81B1"+
- "\u81B2\uD8F8\uD2C1\u81B3\u81B4\uCEE9\uBCBF\uB7FC"+
- "\uB7A5\uD0DD\u81B5\u81B6\u81B7\u81B8\u81B9\uD6DA"+
- "\uD3C5\uBBEF\uBBE1\uD8F1\u81BA\u81BB\uC9A1\uCEB0"+
- "\uB4AB\u81BC\uD8F3\u81BD\uC9CB\uD8F6\uC2D7\uD8F7"+
- "\u81BE\u81BF\uCEB1\uD8F9\u81C0\u81C1\u81C2\uB2AE"+
- "\uB9C0\u81C3\uD9A3\u81C4\uB0E9\u81C5\uC1E6\u81C6"+
- "\uC9EC\u81C7\uCBC5\u81C8\uCBC6\uD9A4\u81C9\u81CA"+
- "\u81CB\u81CC\u81CD\uB5E8\u81CE\u81CF\uB5AB\u81D0"+
- "\u81D1\u81D2\u81D3\u81D4\u81D5\uCEBB\uB5CD\uD7A1"+
- "\uD7F4\uD3D3\u81D6\uCCE5\u81D7\uBACE\u81D8\uD9A2"+
- "\uD9DC\uD3E0\uD8FD\uB7F0\uD7F7\uD8FE\uD8FA\uD9A1"+
- "\uC4E3\u81D9\u81DA\uD3B6\uD8F4\uD9DD\u81DB\uD8FB"+
- "\u81DC\uC5E5\u81DD\u81DE\uC0D0\u81DF\u81E0\uD1F0"+
- "\uB0DB\u81E1\u81E2\uBCD1\uD9A6\u81E3\uD9A5\u81E4"+
- "\u81E5\u81E6\u81E7\uD9AC\uD9AE\u81E8\uD9AB\uCAB9"+
- "\u81E9\u81EA\u81EB\uD9A9\uD6B6\u81EC\u81ED\u81EE"+
- "\uB3DE\uD9A8\u81EF\uC0FD\u81F0\uCACC\u81F1\uD9AA"+
- "\u81F2\uD9A7\u81F3\u81F4\uD9B0\u81F5\u81F6\uB6B1"+
- "\u81F7\u81F8\u81F9\uB9A9\u81FA\uD2C0\u81FB\u81FC"+
- "\uCFC0\u81FD\u81FE\uC2C2\u8240\uBDC4\uD5EC\uB2E0"+
- "\uC7C8\uBFEB\uD9AD\u8241\uD9AF\u8242\uCEEA\uBAEE"+
- "\u8243\u8244\u8245\u8246\u8247\uC7D6\u8248\u8249"+
- "\u824A\u824B\u824C\u824D\u824E\u824F\u8250\uB1E3"+
- "\u8251\u8252\u8253\uB4D9\uB6ED\uD9B4\u8254\u8255"+
- "\u8256\u8257\uBFA1\u8258\u8259\u825A\uD9DE\uC7CE"+
- "\uC0FE\uD9B8\u825B\u825C\u825D\u825E\u825F\uCBD7"+
- "\uB7FD\u8260\uD9B5\u8261\uD9B7\uB1A3\uD3E1\uD9B9"+
- "\u8262\uD0C5\u8263\uD9B6\u8264\u8265\uD9B1\u8266"+
- "\uD9B2\uC1A9\uD9B3\u8267\u8268\uBCF3\uD0DE\uB8A9"+
- "\u8269\uBEE3\u826A\uD9BD\u826B\u826C\u826D\u826E"+
- "\uD9BA\u826F\uB0B3\u8270\u8271\u8272\uD9C2\u8273";
-
- private final static String innerEncoderIndex5=
- "\u8274\u8275\u8276\u8277\u8278\u8279\u827A\u827B"+
- "\u827C\u827D\u827E\u8280\uD9C4\uB1B6\u8281\uD9BF"+
- "\u8282\u8283\uB5B9\u8284\uBEF3\u8285\u8286\u8287"+
- "\uCCC8\uBAF2\uD2D0\u8288\uD9C3\u8289\u828A\uBDE8"+
- "\u828B\uB3AB\u828C\u828D\u828E\uD9C5\uBEEB\u828F"+
- "\uD9C6\uD9BB\uC4DF\u8290\uD9BE\uD9C1\uD9C0\u8291"+
- "\u8292\u8293\u8294\u8295\u8296\u8297\u8298\u8299"+
- "\u829A\u829B\uD5AE\u829C\uD6B5\u829D\uC7E3\u829E"+
- "\u829F\u82A0\u82A1\uD9C8\u82A2\u82A3\u82A4\uBCD9"+
- "\uD9CA\u82A5\u82A6\u82A7\uD9BC\u82A8\uD9CB\uC6AB"+
- "\u82A9\u82AA\u82AB\u82AC\u82AD\uD9C9\u82AE\u82AF"+
- "\u82B0\u82B1\uD7F6\u82B2\uCDA3\u82B3\u82B4\u82B5"+
- "\u82B6\u82B7\u82B8\u82B9\u82BA\uBDA1\u82BB\u82BC"+
- "\u82BD\u82BE\u82BF\u82C0\uD9CC\u82C1\u82C2\u82C3"+
- "\u82C4\u82C5\u82C6\u82C7\u82C8\u82C9\uC5BC\uCDB5"+
- "\u82CA\u82CB\u82CC\uD9CD\u82CD\u82CE\uD9C7\uB3A5"+
- "\uBFFE\u82CF\u82D0\u82D1\u82D2\uB8B5\u82D3\u82D4"+
- "\uC0FC\u82D5\u82D6\u82D7\u82D8\uB0F8\u82D9\u82DA"+
- "\u82DB\u82DC\u82DD\u82DE\u82DF\u82E0\u82E1\u82E2"+
- "\u82E3\u82E4\u82E5\u82E6\u82E7\u82E8\u82E9\u82EA"+
- "\u82EB\u82EC\u82ED\uB4F6\u82EE\uD9CE\u82EF\uD9CF"+
- "\uB4A2\uD9D0\u82F0\u82F1\uB4DF\u82F2\u82F3\u82F4"+
- "\u82F5\u82F6\uB0C1\u82F7\u82F8\u82F9\u82FA\u82FB"+
- "\u82FC\u82FD\uD9D1\uC9B5\u82FE\u8340\u8341\u8342"+
- "\u8343\u8344\u8345\u8346\u8347\u8348\u8349\u834A"+
- "\u834B\u834C\u834D\u834E\u834F\u8350\u8351\uCFF1"+
- "\u8352\u8353\u8354\u8355\u8356\u8357\uD9D2\u8358"+
- "\u8359\u835A\uC1C5\u835B\u835C\u835D\u835E\u835F"+
- "\u8360\u8361\u8362\u8363\u8364\u8365\uD9D6\uC9AE"+
- "\u8366\u8367\u8368\u8369\uD9D5\uD9D4\uD9D7\u836A"+
- "\u836B\u836C\u836D\uCBDB\u836E\uBDA9\u836F\u8370"+
- "\u8371\u8372\u8373\uC6A7\u8374\u8375\u8376\u8377"+
- "\u8378\u8379\u837A\u837B\u837C\u837D\uD9D3\uD9D8"+
- "\u837E\u8380\u8381\uD9D9\u8382\u8383\u8384\u8385"+
- "\u8386\u8387\uC8E5\u8388\u8389\u838A\u838B\u838C"+
- "\u838D\u838E\u838F\u8390\u8391\u8392\u8393\u8394"+
- "\u8395\uC0DC\u8396\u8397\u8398\u8399\u839A\u839B"+
- "\u839C\u839D\u839E\u839F\u83A0\u83A1\u83A2\u83A3"+
- "\u83A4\u83A5\u83A6\u83A7\u83A8\u83A9\u83AA\u83AB"+
- "\u83AC\u83AD\u83AE\u83AF\u83B0\u83B1\u83B2\uB6F9"+
- "\uD8A3\uD4CA\u83B3\uD4AA\uD0D6\uB3E4\uD5D7\u83B4"+
- "\uCFC8\uB9E2\u83B5\uBFCB\u83B6\uC3E2\u83B7\u83B8"+
- "\u83B9\uB6D2\u83BA\u83BB\uCDC3\uD9EE\uD9F0\u83BC"+
- "\u83BD\u83BE\uB5B3\u83BF\uB6B5\u83C0\u83C1\u83C2"+
- "\u83C3\u83C4\uBEA4\u83C5\u83C6\uC8EB\u83C7\u83C8"+
- "\uC8AB\u83C9\u83CA\uB0CB\uB9AB\uC1F9\uD9E2\u83CB"+
- "\uC0BC\uB9B2\u83CC\uB9D8\uD0CB\uB1F8\uC6E4\uBEDF"+
- "\uB5E4\uD7C8\u83CD\uD1F8\uBCE6\uCADE\u83CE\u83CF"+
- "\uBCBD\uD9E6\uD8E7\u83D0\u83D1\uC4DA\u83D2\u83D3"+
- "\uB8D4\uC8BD\u83D4\u83D5\uB2E1\uD4D9\u83D6\u83D7"+
- "\u83D8\u83D9\uC3B0\u83DA\u83DB\uC3E1\uDAA2\uC8DF"+
- "\u83DC\uD0B4\u83DD\uBEFC\uC5A9\u83DE\u83DF\u83E0"+
- "\uB9DA\u83E1\uDAA3\u83E2\uD4A9\uDAA4\u83E3\u83E4"+
- "\u83E5\u83E6\u83E7\uD9FB\uB6AC\u83E8\u83E9\uB7EB"+
- "\uB1F9\uD9FC\uB3E5\uBEF6\u83EA\uBFF6\uD2B1\uC0E4"+
- "\u83EB\u83EC\u83ED\uB6B3\uD9FE\uD9FD\u83EE\u83EF"+
- "\uBEBB\u83F0\u83F1\u83F2\uC6E0\u83F3\uD7BC\uDAA1"+
- "\u83F4\uC1B9\u83F5\uB5F2\uC1E8\u83F6\u83F7\uBCF5"+
- "\u83F8\uB4D5\u83F9\u83FA\u83FB\u83FC\u83FD\u83FE"+
- "\u8440\u8441\u8442\uC1DD\u8443\uC4FD\u8444\u8445"+
- "\uBCB8\uB7B2\u8446\u8447\uB7EF\u8448\u8449\u844A"+
- "\u844B\u844C\u844D\uD9EC\u844E\uC6BE\u844F\uBFAD"+
- "\uBBCB\u8450\u8451\uB5CA\u8452\uDBC9\uD0D7\u8453"+
- "\uCDB9\uB0BC\uB3F6\uBBF7\uDBCA\uBAAF\u8454\uD4E4"+
- "\uB5B6\uB5F3\uD8D6\uC8D0\u8455\u8456\uB7D6\uC7D0"+
- "\uD8D7\u8457\uBFAF\u8458\u8459\uDBBB\uD8D8\u845A"+
- "\u845B\uD0CC\uBBAE\u845C\u845D\u845E\uEBBE\uC1D0"+
- "\uC1F5\uD4F2\uB8D5\uB4B4\u845F\uB3F5\u8460\u8461"+
- "\uC9BE\u8462\u8463\u8464\uC5D0\u8465\u8466\u8467"+
- "\uC5D9\uC0FB\u8468\uB1F0\u8469\uD8D9\uB9CE\u846A"+
- "\uB5BD\u846B\u846C\uD8DA\u846D\u846E\uD6C6\uCBA2"+
- "\uC8AF\uC9B2\uB4CC\uBFCC\u846F\uB9F4\u8470\uD8DB"+
- "\uD8DC\uB6E7\uBCC1\uCCEA\u8471\u8472\u8473\u8474"+
- "\u8475\u8476\uCFF7\u8477\uD8DD\uC7B0\u8478\u8479"+
- "\uB9D0\uBDA3\u847A\u847B\uCCDE\u847C\uC6CA\u847D"+
- "\u847E\u8480\u8481\u8482\uD8E0\u8483\uD8DE\u8484"+
- "\u8485\uD8DF\u8486\u8487\u8488\uB0FE\u8489\uBEE7"+
- "\u848A\uCAA3\uBCF4\u848B\u848C\u848D\u848E\uB8B1"+
- "\u848F\u8490\uB8EE\u8491\u8492\u8493\u8494\u8495"+
- "\u8496\u8497\u8498\u8499\u849A\uD8E2\u849B\uBDCB"+
- "\u849C\uD8E4\uD8E3\u849D\u849E\u849F\u84A0\u84A1"+
- "\uC5FC\u84A2\u84A3\u84A4\u84A5\u84A6\u84A7\u84A8"+
- "\uD8E5\u84A9\u84AA\uD8E6\u84AB\u84AC\u84AD\u84AE"+
- "\u84AF\u84B0\u84B1\uC1A6\u84B2\uC8B0\uB0EC\uB9A6"+
- "\uBCD3\uCEF1\uDBBD\uC1D3\u84B3\u84B4\u84B5\u84B6"+
- "\uB6AF\uD6FA\uC5AC\uBDD9\uDBBE\uDBBF\u84B7\u84B8"+
- "\u84B9\uC0F8\uBEA2\uC0CD\u84BA\u84BB\u84BC\u84BD"+
- "\u84BE\u84BF\u84C0\u84C1\u84C2\u84C3\uDBC0\uCAC6"+
- "\u84C4\u84C5\u84C6\uB2AA\u84C7\u84C8\u84C9\uD3C2"+
- "\u84CA\uC3E3\u84CB\uD1AB\u84CC\u84CD\u84CE\u84CF"+
- "\uDBC2\u84D0\uC0D5\u84D1\u84D2\u84D3\uDBC3\u84D4"+
- "\uBFB1\u84D5\u84D6\u84D7\u84D8\u84D9\u84DA\uC4BC"+
- "\u84DB\u84DC\u84DD\u84DE\uC7DA\u84DF\u84E0\u84E1"+
- "\u84E2\u84E3\u84E4\u84E5\u84E6\u84E7\u84E8\u84E9"+
- "\uDBC4\u84EA\u84EB\u84EC\u84ED\u84EE\u84EF\u84F0"+
- "\u84F1\uD9E8\uC9D7\u84F2\u84F3\u84F4\uB9B4\uCEF0"+
- "\uD4C8\u84F5\u84F6\u84F7\u84F8\uB0FC\uB4D2\u84F9"+
- "\uD0D9\u84FA\u84FB\u84FC\u84FD\uD9E9\u84FE\uDECB"+
- "\uD9EB\u8540\u8541\u8542\u8543\uD8B0\uBBAF\uB1B1"+
- "\u8544\uB3D7\uD8CE\u8545\u8546\uD4D1\u8547\u8548"+
- "\uBDB3\uBFEF\u8549\uCFBB\u854A\u854B\uD8D0\u854C"+
- "\u854D\u854E\uB7CB\u854F\u8550\u8551\uD8D1\u8552"+
- "\u8553\u8554\u8555\u8556\u8557\u8558\u8559\u855A"+
- "\u855B\uC6A5\uC7F8\uD2BD\u855C\u855D\uD8D2\uC4E4"+
- "\u855E\uCAAE\u855F\uC7A7\u8560\uD8A6\u8561\uC9FD"+
- "\uCEE7\uBBDC\uB0EB\u8562\u8563\u8564\uBBAA\uD0AD"+
- "\u8565\uB1B0\uD7E4\uD7BF\u8566\uB5A5\uC2F4\uC4CF"+
- "\u8567\u8568\uB2A9\u8569\uB2B7\u856A\uB1E5\uDFB2"+
- "\uD5BC\uBFA8\uC2AC\uD8D5\uC2B1\u856B\uD8D4\uCED4"+
- "\u856C\uDAE0\u856D\uCEC0\u856E\u856F\uD8B4\uC3AE"+
- "\uD3A1\uCEA3\u8570\uBCB4\uC8B4\uC2D1\u8571\uBEED"+
- "\uD0B6\u8572\uDAE1\u8573\u8574\u8575\u8576\uC7E4"+
- "\u8577\u8578\uB3A7\u8579\uB6F2\uCCFC\uC0FA\u857A"+
- "\u857B\uC0F7\u857C\uD1B9\uD1E1\uD8C7\u857D\u857E"+
- "\u8580\u8581\u8582\u8583\u8584\uB2DE\u8585\u8586"+
- "\uC0E5\u8587\uBAF1\u8588\u8589\uD8C8\u858A\uD4AD"+
- "\u858B\u858C\uCFE1\uD8C9\u858D\uD8CA\uCFC3\u858E"+
- "\uB3F8\uBEC7\u858F\u8590\u8591\u8592\uD8CB\u8593"+
- "\u8594\u8595\u8596\u8597\u8598\u8599\uDBCC\u859A"+
- "\u859B\u859C\u859D\uC8A5\u859E\u859F\u85A0\uCFD8"+
- "\u85A1\uC8FE\uB2CE\u85A2\u85A3\u85A4\u85A5\u85A6"+
- "\uD3D6\uB2E6\uBCB0\uD3D1\uCBAB\uB7B4\u85A7\u85A8"+
- "\u85A9\uB7A2\u85AA\u85AB\uCAE5\u85AC\uC8A1\uCADC"+
- "\uB1E4\uD0F0\u85AD\uC5D1\u85AE\u85AF\u85B0\uDBC5"+
- "\uB5FE\u85B1\u85B2\uBFDA\uB9C5\uBEE4\uC1ED\u85B3"+
- "\uDFB6\uDFB5\uD6BB\uBDD0\uD5D9\uB0C8\uB6A3\uBFC9"+
- "\uCCA8\uDFB3\uCAB7\uD3D2\u85B4\uD8CF\uD2B6\uBAC5"+
- "\uCBBE\uCCBE\u85B5\uDFB7\uB5F0\uDFB4\u85B6\u85B7"+
- "\u85B8\uD3F5\u85B9\uB3D4\uB8F7\u85BA\uDFBA\u85BB"+
- "\uBACF\uBCAA\uB5F5\u85BC\uCDAC\uC3FB\uBAF3\uC0F4"+
- "\uCDC2\uCFF2\uDFB8\uCFC5\u85BD\uC2C0\uDFB9\uC2F0"+
- "\u85BE\u85BF\u85C0\uBEFD\u85C1\uC1DF\uCDCC\uD2F7"+
- "\uB7CD\uDFC1\u85C2\uDFC4\u85C3\u85C4\uB7F1\uB0C9"+
- "\uB6D6\uB7D4\u85C5\uBAAC\uCCFD\uBFD4\uCBB1\uC6F4"+
- "\u85C6\uD6A8\uDFC5\u85C7\uCEE2\uB3B3\u85C8\u85C9"+
- "\uCEFC\uB4B5\u85CA\uCEC7\uBAF0\u85CB\uCEE1\u85CC"+
- "\uD1BD\u85CD\u85CE\uDFC0\u85CF\u85D0\uB4F4\u85D1"+
- "\uB3CA\u85D2\uB8E6\uDFBB\u85D3\u85D4\u85D5\u85D6"+
- "\uC4C5\u85D7\uDFBC\uDFBD\uDFBE\uC5BB\uDFBF\uDFC2"+
- "\uD4B1\uDFC3\u85D8\uC7BA\uCED8\u85D9\u85DA\u85DB"+
- "\u85DC\u85DD\uC4D8\u85DE\uDFCA\u85DF\uDFCF\u85E0"+
- "\uD6DC\u85E1\u85E2\u85E3\u85E4\u85E5\u85E6\u85E7"+
- "\u85E8\uDFC9\uDFDA\uCEB6\u85E9\uBAC7\uDFCE\uDFC8"+
- "\uC5DE\u85EA\u85EB\uC9EB\uBAF4\uC3FC\u85EC\u85ED"+
- "\uBED7\u85EE\uDFC6\u85EF\uDFCD\u85F0\uC5D8\u85F1"+
- "\u85F2\u85F3\u85F4\uD5A6\uBACD\u85F5\uBECC\uD3BD"+
- "\uB8C0\u85F6\uD6E4\u85F7\uDFC7\uB9BE\uBFA7\u85F8"+
- "\u85F9\uC1FC\uDFCB\uDFCC\u85FA\uDFD0\u85FB\u85FC"+
- "\u85FD\u85FE\u8640\uDFDB\uDFE5\u8641\uDFD7\uDFD6"+
- "\uD7C9\uDFE3\uDFE4\uE5EB\uD2A7\uDFD2\u8642\uBFA9"+
- "\u8643\uD4DB\u8644\uBFC8\uDFD4\u8645\u8646\u8647"+
- "\uCFCC\u8648\u8649\uDFDD\u864A\uD1CA\u864B\uDFDE"+
- "\uB0A7\uC6B7\uDFD3\u864C\uBAE5\u864D\uB6DF\uCDDB"+
- "\uB9FE\uD4D5\u864E\u864F\uDFDF\uCFEC\uB0A5\uDFE7"+
- "\uDFD1\uD1C6\uDFD5\uDFD8\uDFD9\uDFDC\u8650\uBBA9"+
- "\u8651\uDFE0\uDFE1\u8652\uDFE2\uDFE6\uDFE8\uD3B4"+
- "\u8653\u8654\u8655\u8656\u8657\uB8E7\uC5B6\uDFEA"+
- "\uC9DA\uC1A8\uC4C4\u8658\u8659\uBFDE\uCFF8\u865A"+
- "\u865B\u865C\uD5DC\uDFEE\u865D\u865E\u865F\u8660"+
- "\u8661\u8662\uB2B8\u8663\uBADF\uDFEC\u8664\uDBC1"+
- "\u8665\uD1E4\u8666\u8667\u8668\u8669\uCBF4\uB4BD"+
- "\u866A\uB0A6\u866B\u866C\u866D\u866E\u866F\uDFF1"+
- "\uCCC6\uDFF2\u8670\u8671\uDFED\u8672\u8673\u8674"+
- "\u8675\u8676\u8677\uDFE9\u8678\u8679\u867A\u867B"+
- "\uDFEB\u867C\uDFEF\uDFF0\uBBBD\u867D\u867E\uDFF3"+
- "\u8680\u8681\uDFF4\u8682\uBBA3\u8683\uCADB\uCEA8"+
- "\uE0A7\uB3AA\u8684\uE0A6\u8685\u8686\u8687\uE0A1"+
- "\u8688\u8689\u868A\u868B\uDFFE\u868C\uCDD9\uDFFC"+
- "\u868D\uDFFA\u868E\uBFD0\uD7C4\u868F\uC9CC\u8690"+
- "\u8691\uDFF8\uB0A1\u8692\u8693\u8694\u8695\u8696"+
- "\uDFFD\u8697\u8698\u8699\u869A\uDFFB\uE0A2\u869B"+
- "\u869C\u869D\u869E\u869F\uE0A8\u86A0\u86A1\u86A2"+
- "\u86A3\uB7C8\u86A4\u86A5\uC6A1\uC9B6\uC0B2\uDFF5"+
- "\u86A6\u86A7\uC5BE\u86A8\uD8C4\uDFF9\uC4F6\u86A9"+
- "\u86AA\u86AB\u86AC\u86AD\u86AE\uE0A3\uE0A4\uE0A5"+
- "\uD0A5\u86AF\u86B0\uE0B4\uCCE4\u86B1\uE0B1\u86B2"+
- "\uBFA6\uE0AF\uCEB9\uE0AB\uC9C6\u86B3\u86B4\uC0AE"+
- "\uE0AE\uBAED\uBAB0\uE0A9\u86B5\u86B6\u86B7\uDFF6"+
- "\u86B8\uE0B3\u86B9\u86BA\uE0B8\u86BB\u86BC\u86BD"+
- "\uB4AD\uE0B9\u86BE\u86BF\uCFB2\uBAC8\u86C0\uE0B0"+
- "\u86C1\u86C2\u86C3\u86C4\u86C5\u86C6\u86C7\uD0FA"+
- "\u86C8\u86C9\u86CA\u86CB\u86CC\u86CD\u86CE\u86CF"+
- "\u86D0\uE0AC\u86D1\uD4FB\u86D2\uDFF7\u86D3\uC5E7"+
- "\u86D4\uE0AD\u86D5\uD3F7\u86D6\uE0B6\uE0B7\u86D7"+
- "\u86D8\u86D9\u86DA\u86DB\uE0C4\uD0E1\u86DC\u86DD"+
- "\u86DE\uE0BC\u86DF\u86E0\uE0C9\uE0CA\u86E1\u86E2"+
- "\u86E3\uE0BE\uE0AA\uC9A4\uE0C1\u86E4\uE0B2\u86E5"+
- "\u86E6\u86E7\u86E8\u86E9\uCAC8\uE0C3\u86EA\uE0B5"+
- "\u86EB\uCECB\u86EC\uCBC3\uE0CD\uE0C6\uE0C2\u86ED"+
- "\uE0CB\u86EE\uE0BA\uE0BF\uE0C0\u86EF\u86F0\uE0C5"+
- "\u86F1\u86F2\uE0C7\uE0C8\u86F3\uE0CC\u86F4\uE0BB"+
- "\u86F5\u86F6\u86F7\u86F8\u86F9\uCBD4\uE0D5\u86FA"+
- "\uE0D6\uE0D2\u86FB\u86FC\u86FD\u86FE\u8740\u8741"+
- "\uE0D0\uBCCE\u8742\u8743\uE0D1\u8744\uB8C2\uD8C5"+
- "\u8745\u8746\u8747\u8748\u8749\u874A\u874B\u874C"+
- "\uD0EA\u874D\u874E\uC2EF\u874F\u8750\uE0CF\uE0BD"+
- "\u8751\u8752\u8753\uE0D4\uE0D3\u8754\u8755\uE0D7"+
- "\u8756\u8757\u8758\u8759\uE0DC\uE0D8\u875A\u875B"+
- "\u875C\uD6F6\uB3B0\u875D\uD7EC\u875E\uCBBB\u875F"+
- "\u8760\uE0DA\u8761\uCEFB\u8762\u8763\u8764\uBAD9"+
- "\u8765\u8766\u8767\u8768\u8769\u876A\u876B\u876C"+
- "\u876D\u876E\u876F\u8770\uE0E1\uE0DD\uD2AD\u8771"+
- "\u8772\u8773\u8774\u8775\uE0E2\u8776\u8777\uE0DB"+
- "\uE0D9\uE0DF\u8778\u8779\uE0E0\u877A\u877B\u877C"+
- "\u877D\u877E\uE0DE\u8780\uE0E4\u8781\u8782\u8783"+
- "\uC6F7\uD8AC\uD4EB\uE0E6\uCAC9\u8784\u8785\u8786"+
- "\u8787\uE0E5\u8788\u8789\u878A\u878B\uB8C1\u878C"+
- "\u878D\u878E\u878F\uE0E7\uE0E8\u8790\u8791\u8792"+
- "\u8793\u8794\u8795\u8796\u8797\uE0E9\uE0E3\u8798"+
- "\u8799\u879A\u879B\u879C\u879D\u879E\uBABF\uCCE7"+
- "\u879F\u87A0\u87A1\uE0EA\u87A2\u87A3\u87A4\u87A5"+
- "\u87A6\u87A7\u87A8\u87A9\u87AA\u87AB\u87AC\u87AD"+
- "\u87AE\u87AF\u87B0\uCFF9\u87B1\u87B2\u87B3\u87B4"+
- "\u87B5\u87B6\u87B7\u87B8\u87B9\u87BA\u87BB\uE0EB"+
- "\u87BC\u87BD\u87BE\u87BF\u87C0\u87C1\u87C2\uC8C2"+
- "\u87C3\u87C4\u87C5\u87C6\uBDC0\u87C7\u87C8\u87C9"+
- "\u87CA\u87CB\u87CC\u87CD\u87CE\u87CF\u87D0\u87D1"+
- "\u87D2\u87D3\uC4D2\u87D4\u87D5\u87D6\u87D7\u87D8"+
- "\u87D9\u87DA\u87DB\u87DC\uE0EC\u87DD\u87DE\uE0ED"+
- "\u87DF\u87E0\uC7F4\uCBC4\u87E1\uE0EE\uBBD8\uD8B6"+
- "\uD2F2\uE0EF\uCDC5\u87E2\uB6DA\u87E3\u87E4\u87E5"+
- "\u87E6\u87E7\u87E8\uE0F1\u87E9\uD4B0\u87EA\u87EB"+
- "\uC0A7\uB4D1\u87EC\u87ED\uCEA7\uE0F0\u87EE\u87EF"+
- "\u87F0\uE0F2\uB9CC\u87F1\u87F2\uB9FA\uCDBC\uE0F3"+
- "\u87F3\u87F4\u87F5\uC6D4\uE0F4\u87F6\uD4B2\u87F7"+
- "\uC8A6\uE0F6\uE0F5\u87F8\u87F9\u87FA\u87FB\u87FC"+
- "\u87FD\u87FE\u8840\u8841\u8842\u8843\u8844\u8845"+
- "\u8846\u8847\u8848\u8849\uE0F7\u884A\u884B\uCDC1"+
- "\u884C\u884D\u884E\uCAA5\u884F\u8850\u8851\u8852"+
- "\uD4DA\uDBD7\uDBD9\u8853\uDBD8\uB9E7\uDBDC\uDBDD"+
- "\uB5D8\u8854\u8855\uDBDA\u8856\u8857\u8858\u8859"+
- "\u885A\uDBDB\uB3A1\uDBDF\u885B\u885C\uBBF8\u885D"+
- "\uD6B7\u885E\uDBE0\u885F\u8860\u8861\u8862\uBEF9"+
- "\u8863\u8864\uB7BB\u8865\uDBD0\uCCAE\uBFB2\uBBB5"+
- "\uD7F8\uBFD3\u8866\u8867\u8868\u8869\u886A\uBFE9"+
- "\u886B\u886C\uBCE1\uCCB3\uDBDE\uB0D3\uCEEB\uB7D8"+
- "\uD7B9\uC6C2\u886D\u886E\uC0A4\u886F\uCCB9\u8870"+
- "\uDBE7\uDBE1\uC6BA\uDBE3\u8871\uDBE8\u8872\uC5F7"+
- "\u8873\u8874\u8875\uDBEA\u8876\u8877\uDBE9\uBFC0"+
- "\u8878\u8879\u887A\uDBE6\uDBE5\u887B\u887C\u887D"+
- "\u887E\u8880\uB4B9\uC0AC\uC2A2\uDBE2\uDBE4\u8881"+
- "\u8882\u8883\u8884\uD0CD\uDBED\u8885\u8886\u8887"+
- "\u8888\u8889\uC0DD\uDBF2\u888A\u888B\u888C\u888D"+
- "\u888E\u888F\u8890\uB6E2\u8891\u8892\u8893\u8894"+
- "\uDBF3\uDBD2\uB9B8\uD4AB\uDBEC\u8895\uBFD1\uDBF0"+
- "\u8896\uDBD1\u8897\uB5E6\u8898\uDBEB\uBFE5\u8899"+
- "\u889A\u889B\uDBEE\u889C\uDBF1\u889D\u889E\u889F"+
- "\uDBF9\u88A0\u88A1\u88A2\u88A3\u88A4\u88A5\u88A6"+
- "\u88A7\u88A8\uB9A1\uB0A3\u88A9\u88AA\u88AB\u88AC"+
- "\u88AD\u88AE\u88AF\uC2F1\u88B0\u88B1\uB3C7\uDBEF"+
- "\u88B2\u88B3\uDBF8\u88B4\uC6D2\uDBF4\u88B5\u88B6"+
- "\uDBF5\uDBF7\uDBF6\u88B7\u88B8\uDBFE\u88B9\uD3F2"+
- "\uB2BA\u88BA\u88BB\u88BC\uDBFD\u88BD\u88BE\u88BF"+
- "\u88C0\u88C1\u88C2\u88C3\u88C4\uDCA4\u88C5\uDBFB"+
- "\u88C6\u88C7\u88C8\u88C9\uDBFA\u88CA\u88CB\u88CC"+
- "\uDBFC\uC5E0\uBBF9\u88CD\u88CE\uDCA3\u88CF\u88D0"+
- "\uDCA5\u88D1\uCCC3\u88D2\u88D3\u88D4\uB6D1\uDDC0"+
- "\u88D5\u88D6\u88D7\uDCA1\u88D8\uDCA2\u88D9\u88DA"+
- "\u88DB\uC7B5\u88DC\u88DD\u88DE\uB6E9\u88DF\u88E0"+
- "\u88E1\uDCA7\u88E2\u88E3\u88E4\u88E5\uDCA6\u88E6"+
- "\uDCA9\uB1A4\u88E7\u88E8\uB5CC\u88E9\u88EA\u88EB"+
- "\u88EC\u88ED\uBFB0\u88EE\u88EF\u88F0\u88F1\u88F2"+
- "\uD1DF\u88F3\u88F4\u88F5\u88F6\uB6C2\u88F7\u88F8"+
- "\u88F9\u88FA\u88FB\u88FC\u88FD\u88FE\u8940\u8941"+
- "\u8942\u8943\u8944\u8945\uDCA8\u8946\u8947\u8948"+
- "\u8949\u894A\u894B\u894C\uCBFA\uEBF3\u894D\u894E"+
- "\u894F\uCBDC\u8950\u8951\uCBFE\u8952\u8953\u8954"+
- "\uCCC1\u8955\u8956\u8957\u8958\u8959\uC8FB\u895A"+
- "\u895B\u895C\u895D\u895E\u895F\uDCAA\u8960\u8961"+
- "\u8962\u8963\u8964\uCCEE\uDCAB\u8965\u8966\u8967"+
- "\u8968\u8969\u896A\u896B\u896C\u896D\u896E\u896F"+
- "\u8970\u8971\u8972\u8973\u8974\u8975\uDBD3\u8976"+
- "\uDCAF\uDCAC\u8977\uBEB3\u8978\uCAFB\u8979\u897A"+
- "\u897B\uDCAD\u897C\u897D\u897E\u8980\u8981\u8982"+
- "\u8983\u8984\uC9CA\uC4B9\u8985\u8986\u8987\u8988"+
- "\u8989\uC7BD\uDCAE\u898A\u898B\u898C\uD4F6\uD0E6"+
- "\u898D\u898E\u898F\u8990\u8991\u8992\u8993\u8994"+
- "\uC4AB\uB6D5\u8995\u8996\u8997\u8998\u8999\u899A"+
- "\u899B\u899C\u899D\u899E\u899F\u89A0\u89A1\u89A2"+
- "\u89A3\u89A4\u89A5\u89A6\uDBD4\u89A7\u89A8\u89A9"+
- "\u89AA\uB1DA\u89AB\u89AC\u89AD\uDBD5\u89AE\u89AF"+
- "\u89B0\u89B1\u89B2\u89B3\u89B4\u89B5\u89B6\u89B7"+
- "\u89B8\uDBD6\u89B9\u89BA\u89BB\uBABE\u89BC\u89BD"+
- "\u89BE\u89BF\u89C0\u89C1\u89C2\u89C3\u89C4\u89C5"+
- "\u89C6\u89C7\u89C8\u89C9\uC8C0\u89CA\u89CB\u89CC"+
- "\u89CD\u89CE\u89CF\uCABF\uC8C9\u89D0\uD7B3\u89D1"+
- "\uC9F9\u89D2\u89D3\uBFC7\u89D4\u89D5\uBAF8\u89D6"+
- "\u89D7\uD2BC\u89D8\u89D9\u89DA\u89DB\u89DC\u89DD"+
- "\u89DE\u89DF\uE2BA\u89E0\uB4A6\u89E1\u89E2\uB1B8"+
- "\u89E3\u89E4\u89E5\u89E6\u89E7\uB8B4\u89E8\uCFC4"+
- "\u89E9\u89EA\u89EB\u89EC\uD9E7\uCFA6\uCDE2\u89ED"+
- "\u89EE\uD9ED\uB6E0\u89EF\uD2B9\u89F0\u89F1\uB9BB"+
- "\u89F2\u89F3\u89F4\u89F5\uE2B9\uE2B7\u89F6\uB4F3"+
- "\u89F7\uCCEC\uCCAB\uB7F2\u89F8\uD8B2\uD1EB\uBABB"+
- "\u89F9\uCAA7\u89FA\u89FB\uCDB7\u89FC\u89FD\uD2C4"+
- "\uBFE4\uBCD0\uB6E1\u89FE\uDEC5\u8A40\u8A41\u8A42"+
- "\u8A43\uDEC6\uDBBC\u8A44\uD1D9\u8A45\u8A46\uC6E6"+
- "\uC4CE\uB7EE\u8A47\uB7DC\u8A48\u8A49\uBFFC\uD7E0"+
- "\u8A4A\uC6F5\u8A4B\u8A4C\uB1BC\uDEC8\uBDB1\uCCD7"+
- "\uDECA\u8A4D\uDEC9\u8A4E\u8A4F\u8A50\u8A51\u8A52"+
- "\uB5EC\u8A53\uC9DD\u8A54\u8A55\uB0C2\u8A56\u8A57"+
- "\u8A58\u8A59\u8A5A\u8A5B\u8A5C\u8A5D\u8A5E\u8A5F"+
- "\u8A60\u8A61\u8A62\uC5AE\uC5AB\u8A63\uC4CC\u8A64"+
- "\uBCE9\uCBFD\u8A65\u8A66\u8A67\uBAC3\u8A68\u8A69"+
- "\u8A6A\uE5F9\uC8E7\uE5FA\uCDFD\u8A6B\uD7B1\uB8BE"+
- "\uC2E8\u8A6C\uC8D1\u8A6D\u8A6E\uE5FB\u8A6F\u8A70"+
- "\u8A71\u8A72\uB6CA\uBCCB\u8A73\u8A74\uD1FD\uE6A1"+
- "\u8A75\uC3EE\u8A76\u8A77\u8A78\u8A79\uE6A4\u8A7A"+
- "\u8A7B\u8A7C\u8A7D\uE5FE\uE6A5\uCDD7\u8A7E\u8A80"+
- "\uB7C1\uE5FC\uE5FD\uE6A3\u8A81\u8A82\uC4DD\uE6A8"+
- "\u8A83\u8A84\uE6A7\u8A85\u8A86\u8A87\u8A88\u8A89"+
- "\u8A8A\uC3C3\u8A8B\uC6DE\u8A8C\u8A8D\uE6AA\u8A8E"+
- "\u8A8F\u8A90\u8A91\u8A92\u8A93\u8A94\uC4B7\u8A95"+
- "\u8A96\u8A97\uE6A2\uCABC\u8A98\u8A99\u8A9A\u8A9B"+
- "\uBDE3\uB9C3\uE6A6\uD0D5\uCEAF\u8A9C\u8A9D\uE6A9"+
- "\uE6B0\u8A9E\uD2A6\u8A9F\uBDAA\uE6AD\u8AA0\u8AA1"+
- "\u8AA2\u8AA3\u8AA4\uE6AF\u8AA5\uC0D1\u8AA6\u8AA7"+
- "\uD2CC\u8AA8\u8AA9\u8AAA\uBCA7\u8AAB\u8AAC\u8AAD"+
- "\u8AAE\u8AAF\u8AB0\u8AB1\u8AB2\u8AB3\u8AB4\u8AB5"+
- "\u8AB6\uE6B1\u8AB7\uD2F6\u8AB8\u8AB9\u8ABA\uD7CB"+
- "\u8ABB\uCDFE\u8ABC\uCDDE\uC2A6\uE6AB\uE6AC\uBDBF"+
- "\uE6AE\uE6B3\u8ABD\u8ABE\uE6B2\u8ABF\u8AC0\u8AC1"+
- "\u8AC2\uE6B6\u8AC3\uE6B8\u8AC4\u8AC5\u8AC6\u8AC7"+
- "\uC4EF\u8AC8\u8AC9\u8ACA\uC4C8\u8ACB\u8ACC\uBEEA"+
- "\uC9EF\u8ACD\u8ACE\uE6B7\u8ACF\uB6F0\u8AD0\u8AD1"+
- "\u8AD2\uC3E4\u8AD3\u8AD4\u8AD5\u8AD6\u8AD7\u8AD8"+
- "\u8AD9\uD3E9\uE6B4\u8ADA\uE6B5\u8ADB\uC8A2\u8ADC"+
- "\u8ADD\u8ADE\u8ADF\u8AE0\uE6BD\u8AE1\u8AE2\u8AE3"+
- "\uE6B9\u8AE4\u8AE5\u8AE6\u8AE7\u8AE8\uC6C5\u8AE9"+
- "\u8AEA\uCDF1\uE6BB\u8AEB\u8AEC\u8AED\u8AEE\u8AEF"+
- "\u8AF0\u8AF1\u8AF2\u8AF3\u8AF4\uE6BC\u8AF5\u8AF6"+
- "\u8AF7\u8AF8\uBBE9\u8AF9\u8AFA\u8AFB\u8AFC\u8AFD"+
- "\u8AFE\u8B40\uE6BE\u8B41\u8B42\u8B43\u8B44\uE6BA"+
- "\u8B45\u8B46\uC0B7\u8B47\u8B48\u8B49\u8B4A\u8B4B"+
- "\u8B4C\u8B4D\u8B4E\u8B4F\uD3A4\uE6BF\uC9F4\uE6C3"+
- "\u8B50\u8B51\uE6C4\u8B52\u8B53\u8B54\u8B55\uD0F6"+
- "\u8B56\u8B57\u8B58\u8B59\u8B5A\u8B5B\u8B5C\u8B5D"+
- "\u8B5E\u8B5F\u8B60\u8B61\u8B62\u8B63\u8B64\u8B65"+
- "\u8B66\u8B67\uC3BD\u8B68\u8B69\u8B6A\u8B6B\u8B6C"+
- "\u8B6D\u8B6E\uC3C4\uE6C2\u8B6F\u8B70\u8B71\u8B72"+
- "\u8B73\u8B74\u8B75\u8B76\u8B77\u8B78\u8B79\u8B7A"+
- "\u8B7B\u8B7C\uE6C1\u8B7D\u8B7E\u8B80\u8B81\u8B82"+
- "\u8B83\u8B84\uE6C7\uCFB1\u8B85\uEBF4\u8B86\u8B87"+
- "\uE6CA\u8B88\u8B89\u8B8A\u8B8B\u8B8C\uE6C5\u8B8D"+
- "\u8B8E\uBCDE\uC9A9\u8B8F\u8B90\u8B91\u8B92\u8B93"+
- "\u8B94\uBCB5\u8B95\u8B96\uCFD3\u8B97\u8B98\u8B99"+
- "\u8B9A\u8B9B\uE6C8\u8B9C\uE6C9\u8B9D\uE6CE\u8B9E"+
- "\uE6D0\u8B9F\u8BA0\u8BA1\uE6D1\u8BA2\u8BA3\u8BA4"+
- "\uE6CB\uB5D5\u8BA5\uE6CC\u8BA6\u8BA7\uE6CF\u8BA8"+
- "\u8BA9\uC4DB\u8BAA\uE6C6\u8BAB\u8BAC\u8BAD\u8BAE"+
- "\u8BAF\uE6CD\u8BB0\u8BB1\u8BB2\u8BB3\u8BB4\u8BB5"+
- "\u8BB6\u8BB7\u8BB8\u8BB9\u8BBA\u8BBB\u8BBC\u8BBD"+
- "\u8BBE\u8BBF\u8BC0\u8BC1\u8BC2\u8BC3\u8BC4\u8BC5"+
- "\u8BC6\uE6D2\u8BC7\u8BC8\u8BC9\u8BCA\u8BCB\u8BCC"+
- "\u8BCD\u8BCE\u8BCF\u8BD0\u8BD1\u8BD2\uE6D4\uE6D3"+
- "\u8BD3\u8BD4\u8BD5\u8BD6\u8BD7\u8BD8\u8BD9\u8BDA"+
- "\u8BDB\u8BDC\u8BDD\u8BDE\u8BDF\u8BE0\u8BE1\u8BE2"+
- "\u8BE3\u8BE4\u8BE5\u8BE6\u8BE7\u8BE8\u8BE9\u8BEA"+
- "\u8BEB\u8BEC\uE6D5\u8BED\uD9F8\u8BEE\u8BEF\uE6D6"+
- "\u8BF0\u8BF1\u8BF2\u8BF3\u8BF4\u8BF5\u8BF6\u8BF7"+
- "\uE6D7\u8BF8\u8BF9\u8BFA\u8BFB\u8BFC\u8BFD\u8BFE"+
- "\u8C40\u8C41\u8C42\u8C43\u8C44\u8C45\u8C46\u8C47"+
- "\uD7D3\uE6DD\u8C48\uE6DE\uBFD7\uD4D0\u8C49\uD7D6"+
- "\uB4E6\uCBEF\uE6DA\uD8C3\uD7CE\uD0A2\u8C4A\uC3CF"+
- "\u8C4B\u8C4C\uE6DF\uBCBE\uB9C2\uE6DB\uD1A7\u8C4D"+
- "\u8C4E\uBAA2\uC2CF\u8C4F\uD8AB\u8C50\u8C51\u8C52"+
- "\uCAEB\uE5EE\u8C53\uE6DC\u8C54\uB7F5\u8C55\u8C56"+
- "\u8C57\u8C58\uC8E6\u8C59\u8C5A\uC4F5\u8C5B\u8C5C"+
- "\uE5B2\uC4FE\u8C5D\uCBFC\uE5B3\uD5AC\u8C5E\uD3EE"+
- "\uCAD8\uB0B2\u8C5F\uCBCE\uCDEA\u8C60\u8C61\uBAEA"+
- "\u8C62\u8C63\u8C64\uE5B5\u8C65\uE5B4\u8C66\uD7DA"+
- "\uB9D9\uD6E6\uB6A8\uCDF0\uD2CB\uB1A6\uCAB5\u8C67"+
- "\uB3E8\uC9F3\uBFCD\uD0FB\uCAD2\uE5B6\uBBC2\u8C68"+
- "\u8C69\u8C6A\uCFDC\uB9AC\u8C6B\u8C6C\u8C6D\u8C6E"+
- "\uD4D7\u8C6F\u8C70\uBAA6\uD1E7\uCFFC\uBCD2\u8C71"+
- "\uE5B7\uC8DD\u8C72\u8C73\u8C74\uBFED\uB1F6\uCBDE"+
- "\u8C75\u8C76\uBCC5\u8C77\uBCC4\uD2FA\uC3DC\uBFDC"+
- "\u8C78\u8C79\u8C7A\u8C7B\uB8BB\u8C7C\u8C7D\u8C7E"+
- "\uC3C2\u8C80\uBAAE\uD4A2\u8C81\u8C82\u8C83\u8C84"+
- "\u8C85\u8C86\u8C87\u8C88\u8C89\uC7DE\uC4AF\uB2EC"+
- "\u8C8A\uB9D1\u8C8B\u8C8C\uE5BB\uC1C8\u8C8D\u8C8E"+
- "\uD5AF\u8C8F\u8C90\u8C91\u8C92\u8C93\uE5BC\u8C94"+
- "\uE5BE\u8C95\u8C96\u8C97\u8C98\u8C99\u8C9A\u8C9B"+
- "\uB4E7\uB6D4\uCBC2\uD1B0\uB5BC\u8C9C\u8C9D\uCAD9"+
- "\u8C9E\uB7E2\u8C9F\u8CA0\uC9E4\u8CA1\uBDAB\u8CA2"+
- "\u8CA3\uCEBE\uD7F0\u8CA4\u8CA5\u8CA6\u8CA7\uD0A1"+
- "\u8CA8\uC9D9\u8CA9\u8CAA\uB6FB\uE6D8\uBCE2\u8CAB"+
- "\uB3BE\u8CAC\uC9D0\u8CAD\uE6D9\uB3A2\u8CAE\u8CAF"+
- "\u8CB0\u8CB1\uDECC\u8CB2\uD3C8\uDECD\u8CB3\uD2A2"+
- "\u8CB4\u8CB5\u8CB6\u8CB7\uDECE\u8CB8\u8CB9\u8CBA"+
- "\u8CBB\uBECD\u8CBC\u8CBD\uDECF\u8CBE\u8CBF\u8CC0"+
- "\uCAAC\uD2FC\uB3DF\uE5EA\uC4E1\uBEA1\uCEB2\uC4F2"+
- "\uBED6\uC6A8\uB2E3\u8CC1\u8CC2\uBED3\u8CC3\u8CC4"+
- "\uC7FC\uCCEB\uBDEC\uCEDD\u8CC5\u8CC6\uCABA\uC6C1"+
- "\uE5EC\uD0BC\u8CC7\u8CC8\u8CC9\uD5B9\u8CCA\u8CCB"+
- "\u8CCC\uE5ED\u8CCD\u8CCE\u8CCF\u8CD0\uCAF4\u8CD1"+
- "\uCDC0\uC2C5\u8CD2\uE5EF\u8CD3\uC2C4\uE5F0\u8CD4"+
- "\u8CD5\u8CD6\u8CD7\u8CD8\u8CD9\u8CDA\uE5F8\uCDCD"+
- "\u8CDB\uC9BD\u8CDC\u8CDD\u8CDE\u8CDF\u8CE0\u8CE1"+
- "\u8CE2\uD2D9\uE1A8\u8CE3\u8CE4\u8CE5\u8CE6\uD3EC"+
- "\u8CE7\uCBEA\uC6F1\u8CE8\u8CE9\u8CEA\u8CEB\u8CEC"+
- "\uE1AC\u8CED\u8CEE\u8CEF\uE1A7\uE1A9\u8CF0\u8CF1"+
- "\uE1AA\uE1AF\u8CF2\u8CF3\uB2ED\u8CF4\uE1AB\uB8DA"+
- "\uE1AD\uE1AE\uE1B0\uB5BA\uE1B1\u8CF5\u8CF6\u8CF7"+
- "\u8CF8\u8CF9\uE1B3\uE1B8\u8CFA\u8CFB\u8CFC\u8CFD"+
- "\u8CFE\uD1D2\u8D40\uE1B6\uE1B5\uC1EB\u8D41\u8D42"+
- "\u8D43\uE1B7\u8D44\uD4C0\u8D45\uE1B2\u8D46\uE1BA"+
- "\uB0B6\u8D47\u8D48\u8D49\u8D4A\uE1B4\u8D4B\uBFF9"+
- "\u8D4C\uE1B9\u8D4D\u8D4E\uE1BB\u8D4F\u8D50\u8D51"+
- "\u8D52\u8D53\u8D54\uE1BE\u8D55\u8D56\u8D57\u8D58"+
- "\u8D59\u8D5A\uE1BC\u8D5B\u8D5C\u8D5D\u8D5E\u8D5F"+
- "\u8D60\uD6C5\u8D61\u8D62\u8D63\u8D64\u8D65\u8D66"+
- "\u8D67\uCFBF\u8D68\u8D69\uE1BD\uE1BF\uC2CD\u8D6A"+
- "\uB6EB\u8D6B\uD3F8\u8D6C\u8D6D\uC7CD\u8D6E\u8D6F"+
- "\uB7E5\u8D70\u8D71\u8D72\u8D73\u8D74\u8D75\u8D76"+
- "\u8D77\u8D78\u8D79\uBEFE\u8D7A\u8D7B\u8D7C\u8D7D"+
- "\u8D7E\u8D80\uE1C0\uE1C1\u8D81\u8D82\uE1C7\uB3E7"+
- "\u8D83\u8D84\u8D85\u8D86\u8D87\u8D88\uC6E9\u8D89"+
- "\u8D8A\u8D8B\u8D8C\u8D8D\uB4DE\u8D8E\uD1C2\u8D8F"+
- "\u8D90\u8D91\u8D92\uE1C8\u8D93\u8D94\uE1C6\u8D95"+
- "\u8D96\u8D97\u8D98\u8D99\uE1C5\u8D9A\uE1C3\uE1C2"+
- "\u8D9B\uB1C0\u8D9C\u8D9D\u8D9E\uD5B8\uE1C4\u8D9F"+
- "\u8DA0\u8DA1\u8DA2\u8DA3\uE1CB\u8DA4\u8DA5\u8DA6"+
- "\u8DA7\u8DA8\u8DA9\u8DAA\u8DAB\uE1CC\uE1CA\u8DAC"+
- "\u8DAD\u8DAE\u8DAF\u8DB0\u8DB1\u8DB2\u8DB3\uEFFA"+
- "\u8DB4\u8DB5\uE1D3\uE1D2\uC7B6\u8DB6\u8DB7\u8DB8"+
- "\u8DB9\u8DBA\u8DBB\u8DBC\u8DBD\u8DBE\u8DBF\u8DC0"+
- "\uE1C9\u8DC1\u8DC2\uE1CE\u8DC3\uE1D0\u8DC4\u8DC5"+
- "\u8DC6\u8DC7\u8DC8\u8DC9\u8DCA\u8DCB\u8DCC\u8DCD"+
- "\u8DCE\uE1D4\u8DCF\uE1D1\uE1CD\u8DD0\u8DD1\uE1CF"+
- "\u8DD2\u8DD3\u8DD4\u8DD5\uE1D5\u8DD6\u8DD7\u8DD8"+
- "\u8DD9\u8DDA\u8DDB\u8DDC\u8DDD\u8DDE\u8DDF\u8DE0"+
- "\u8DE1\u8DE2\uE1D6\u8DE3\u8DE4\u8DE5\u8DE6\u8DE7"+
- "\u8DE8\u8DE9\u8DEA\u8DEB\u8DEC\u8DED\u8DEE\u8DEF"+
- "\u8DF0\u8DF1\u8DF2\u8DF3\u8DF4\u8DF5\u8DF6\u8DF7"+
- "\u8DF8\uE1D7\u8DF9\u8DFA\u8DFB\uE1D8\u8DFC\u8DFD"+
- "\u8DFE\u8E40\u8E41\u8E42\u8E43\u8E44\u8E45\u8E46"+
- "\u8E47\u8E48\u8E49\u8E4A\u8E4B\u8E4C\u8E4D\u8E4E"+
- "\u8E4F\u8E50\u8E51\u8E52\u8E53\u8E54\u8E55\uE1DA"+
- "\u8E56\u8E57\u8E58\u8E59\u8E5A\u8E5B\u8E5C\u8E5D"+
- "\u8E5E\u8E5F\u8E60\u8E61\u8E62\uE1DB\u8E63\u8E64"+
- "\u8E65\u8E66\u8E67\u8E68\u8E69\uCEA1\u8E6A\u8E6B"+
- "\u8E6C\u8E6D\u8E6E\u8E6F\u8E70\u8E71\u8E72\u8E73"+
- "\u8E74\u8E75\u8E76\uE7DD\u8E77\uB4A8\uD6DD\u8E78"+
- "\u8E79\uD1B2\uB3B2\u8E7A\u8E7B\uB9A4\uD7F3\uC7C9"+
- "\uBEDE\uB9AE\u8E7C\uCED7\u8E7D\u8E7E\uB2EE\uDBCF"+
- "\u8E80\uBCBA\uD2D1\uCBC8\uB0CD\u8E81\u8E82\uCFEF"+
- "\u8E83\u8E84\u8E85\u8E86\u8E87\uD9E3\uBDED\u8E88"+
- "\u8E89\uB1D2\uCAD0\uB2BC\u8E8A\uCBA7\uB7AB\u8E8B"+
- "\uCAA6\u8E8C\u8E8D\u8E8E\uCFA3\u8E8F\u8E90\uE0F8"+
- "\uD5CA\uE0FB\u8E91\u8E92\uE0FA\uC5C1\uCCFB\u8E93"+
- "\uC1B1\uE0F9\uD6E3\uB2AF\uD6C4\uB5DB\u8E94\u8E95"+
- "\u8E96\u8E97\u8E98\u8E99\u8E9A\u8E9B\uB4F8\uD6A1"+
- "\u8E9C\u8E9D\u8E9E\u8E9F\u8EA0\uCFAF\uB0EF\u8EA1"+
- "\u8EA2\uE0FC\u8EA3\u8EA4\u8EA5\u8EA6\u8EA7\uE1A1"+
- "\uB3A3\u8EA8\u8EA9\uE0FD\uE0FE\uC3B1\u8EAA\u8EAB"+
- "\u8EAC\u8EAD\uC3DD\u8EAE\uE1A2\uB7F9\u8EAF\u8EB0"+
- "\u8EB1\u8EB2\u8EB3\u8EB4\uBBCF\u8EB5\u8EB6\u8EB7"+
- "\u8EB8\u8EB9\u8EBA\u8EBB\uE1A3\uC4BB\u8EBC\u8EBD"+
- "\u8EBE\u8EBF\u8EC0\uE1A4\u8EC1\u8EC2\uE1A5\u8EC3"+
- "\u8EC4\uE1A6\uB4B1\u8EC5\u8EC6\u8EC7\u8EC8\u8EC9"+
- "\u8ECA\u8ECB\u8ECC\u8ECD\u8ECE\u8ECF\u8ED0\u8ED1"+
- "\u8ED2\u8ED3\uB8C9\uC6BD\uC4EA\u8ED4\uB2A2\u8ED5"+
- "\uD0D2\u8ED6\uE7DB\uBBC3\uD3D7\uD3C4\u8ED7\uB9E3"+
- "\uE2CF\u8ED8\u8ED9\u8EDA\uD7AF\u8EDB\uC7EC\uB1D3"+
- "\u8EDC\u8EDD\uB4B2\uE2D1\u8EDE\u8EDF\u8EE0\uD0F2"+
- "\uC2AE\uE2D0\u8EE1\uBFE2\uD3A6\uB5D7\uE2D2\uB5EA"+
- "\u8EE2\uC3ED\uB8FD\u8EE3\uB8AE\u8EE4\uC5D3\uB7CF"+
- "\uE2D4\u8EE5\u8EE6\u8EE7\u8EE8\uE2D3\uB6C8\uD7F9"+
- "\u8EE9\u8EEA\u8EEB\u8EEC\u8EED\uCDA5\u8EEE\u8EEF"+
- "\u8EF0\u8EF1\u8EF2\uE2D8\u8EF3\uE2D6\uCAFC\uBFB5"+
- "\uD3B9\uE2D5\u8EF4\u8EF5\u8EF6\u8EF7\uE2D7\u8EF8"+
- "\u8EF9\u8EFA\u8EFB\u8EFC\u8EFD\u8EFE\u8F40\u8F41"+
- "\u8F42\uC1AE\uC0C8\u8F43\u8F44\u8F45\u8F46\u8F47"+
- "\u8F48\uE2DB\uE2DA\uC0AA\u8F49\u8F4A\uC1CE\u8F4B"+
- "\u8F4C\u8F4D\u8F4E\uE2DC\u8F4F\u8F50\u8F51\u8F52"+
- "\u8F53\u8F54\u8F55\u8F56\u8F57\u8F58\u8F59\u8F5A"+
- "\uE2DD\u8F5B\uE2DE\u8F5C\u8F5D\u8F5E\u8F5F\u8F60"+
- "\u8F61\u8F62\u8F63\u8F64\uDBC8\u8F65\uD1D3\uCDA2"+
- "\u8F66\u8F67\uBDA8\u8F68\u8F69\u8F6A\uDEC3\uD8A5"+
- "\uBFAA\uDBCD\uD2EC\uC6FA\uC5AA\u8F6B\u8F6C\u8F6D"+
- "\uDEC4\u8F6E\uB1D7\uDFAE\u8F6F\u8F70\u8F71\uCABD"+
- "\u8F72\uDFB1\u8F73\uB9AD\u8F74\uD2FD\u8F75\uB8A5"+
- "\uBAEB\u8F76\u8F77\uB3DA\u8F78\u8F79\u8F7A\uB5DC"+
- "\uD5C5\u8F7B\u8F7C\u8F7D\u8F7E\uC3D6\uCFD2\uBBA1"+
- "\u8F80\uE5F3\uE5F2\u8F81\u8F82\uE5F4\u8F83\uCDE4"+
- "\u8F84\uC8F5\u8F85\u8F86\u8F87\u8F88\u8F89\u8F8A"+
- "\u8F8B\uB5AF\uC7BF\u8F8C\uE5F6\u8F8D\u8F8E\u8F8F"+
- "\uECB0\u8F90\u8F91\u8F92\u8F93\u8F94\u8F95\u8F96"+
- "\u8F97\u8F98\u8F99\u8F9A\u8F9B\u8F9C\u8F9D\u8F9E"+
- "\uE5E6\u8F9F\uB9E9\uB5B1\u8FA0\uC2BC\uE5E8\uE5E7"+
- "\uE5E9\u8FA1\u8FA2\u8FA3\u8FA4\uD2CD\u8FA5\u8FA6"+
- "\u8FA7\uE1EA\uD0CE\u8FA8\uCDAE\u8FA9\uD1E5\u8FAA"+
- "\u8FAB\uB2CA\uB1EB\u8FAC\uB1F2\uC5ED\u8FAD\u8FAE"+
- "\uD5C3\uD3B0\u8FAF\uE1DC\u8FB0\u8FB1\u8FB2\uE1DD"+
- "\u8FB3\uD2DB\u8FB4\uB3B9\uB1CB\u8FB5\u8FB6\u8FB7"+
- "\uCDF9\uD5F7\uE1DE\u8FB8\uBEB6\uB4FD\u8FB9\uE1DF"+
- "\uBADC\uE1E0\uBBB2\uC2C9\uE1E1\u8FBA\u8FBB\u8FBC"+
- "\uD0EC\u8FBD\uCDBD\u8FBE\u8FBF\uE1E2\u8FC0\uB5C3"+
- "\uC5C7\uE1E3\u8FC1\u8FC2\uE1E4\u8FC3\u8FC4\u8FC5"+
- "\u8FC6\uD3F9\u8FC7\u8FC8\u8FC9\u8FCA\u8FCB\u8FCC"+
- "\uE1E5\u8FCD\uD1AD\u8FCE\u8FCF\uE1E6\uCEA2\u8FD0"+
- "\u8FD1\u8FD2\u8FD3\u8FD4\u8FD5\uE1E7\u8FD6\uB5C2"+
- "\u8FD7\u8FD8\u8FD9\u8FDA\uE1E8\uBBD5\u8FDB\u8FDC"+
- "\u8FDD\u8FDE\u8FDF\uD0C4\uE2E0\uB1D8\uD2E4\u8FE0"+
- "\u8FE1\uE2E1\u8FE2\u8FE3\uBCC9\uC8CC\u8FE4\uE2E3"+
- "\uECFE\uECFD\uDFAF\u8FE5\u8FE6\u8FE7\uE2E2\uD6BE"+
- "\uCDFC\uC3A6\u8FE8\u8FE9\u8FEA\uE3C3\u8FEB\u8FEC"+
- "\uD6D2\uE2E7\u8FED\u8FEE\uE2E8\u8FEF\u8FF0\uD3C7"+
- "\u8FF1\u8FF2\uE2EC\uBFEC\u8FF3\uE2ED\uE2E5\u8FF4"+
- "\u8FF5\uB3C0\u8FF6\u8FF7\u8FF8\uC4EE\u8FF9\u8FFA"+
- "\uE2EE\u8FFB\u8FFC\uD0C3\u8FFD\uBAF6\uE2E9\uB7DE";
-
- private final static String innerEncoderIndex6=
- "\uBBB3\uCCAC\uCBCB\uE2E4\uE2E6\uE2EA\uE2EB\u8FFE"+
- "\u9040\u9041\uE2F7\u9042\u9043\uE2F4\uD4F5\uE2F3"+
- "\u9044\u9045\uC5AD\u9046\uD5FA\uC5C2\uB2C0\u9047"+
- "\u9048\uE2EF\u9049\uE2F2\uC1AF\uCBBC\u904A\u904B"+
- "\uB5A1\uE2F9\u904C\u904D\u904E\uBCB1\uE2F1\uD0D4"+
- "\uD4B9\uE2F5\uB9D6\uE2F6\u904F\u9050\u9051\uC7D3"+
- "\u9052\u9053\u9054\u9055\u9056\uE2F0\u9057\u9058"+
- "\u9059\u905A\u905B\uD7DC\uEDA1\u905C\u905D\uE2F8"+
- "\u905E\uEDA5\uE2FE\uCAD1\u905F\u9060\u9061\u9062"+
- "\u9063\u9064\u9065\uC1B5\u9066\uBBD0\u9067\u9068"+
- "\uBFD6\u9069\uBAE3\u906A\u906B\uCBA1\u906C\u906D"+
- "\u906E\uEDA6\uEDA3\u906F\u9070\uEDA2\u9071\u9072"+
- "\u9073\u9074\uBBD6\uEDA7\uD0F4\u9075\u9076\uEDA4"+
- "\uBADE\uB6F7\uE3A1\uB6B2\uCCF1\uB9A7\u9077\uCFA2"+
- "\uC7A1\u9078\u9079\uBFD2\u907A\u907B\uB6F1\u907C"+
- "\uE2FA\uE2FB\uE2FD\uE2FC\uC4D5\uE3A2\u907D\uD3C1"+
- "\u907E\u9080\u9081\uE3A7\uC7C4\u9082\u9083\u9084"+
- "\u9085\uCFA4\u9086\u9087\uE3A9\uBAB7\u9088\u9089"+
- "\u908A\u908B\uE3A8\u908C\uBBDA\u908D\uE3A3\u908E"+
- "\u908F\u9090\uE3A4\uE3AA\u9091\uE3A6\u9092\uCEF2"+
- "\uD3C6\u9093\u9094\uBBBC\u9095\u9096\uD4C3\u9097"+
- "\uC4FA\u9098\u9099\uEDA8\uD0FC\uE3A5\u909A\uC3F5"+
- "\u909B\uE3AD\uB1AF\u909C\uE3B2\u909D\u909E\u909F"+
- "\uBCC2\u90A0\u90A1\uE3AC\uB5BF\u90A2\u90A3\u90A4"+
- "\u90A5\u90A6\u90A7\u90A8\u90A9\uC7E9\uE3B0\u90AA"+
- "\u90AB\u90AC\uBEAA\uCDEF\u90AD\u90AE\u90AF\u90B0"+
- "\u90B1\uBBF3\u90B2\u90B3\u90B4\uCCE8\u90B5\u90B6"+
- "\uE3AF\u90B7\uE3B1\u90B8\uCFA7\uE3AE\u90B9\uCEA9"+
- "\uBBDD\u90BA\u90BB\u90BC\u90BD\u90BE\uB5EB\uBEE5"+
- "\uB2D2\uB3CD\u90BF\uB1B9\uE3AB\uB2D1\uB5AC\uB9DF"+
- "\uB6E8\u90C0\u90C1\uCFEB\uE3B7\u90C2\uBBCC\u90C3"+
- "\u90C4\uC8C7\uD0CA\u90C5\u90C6\u90C7\u90C8\u90C9"+
- "\uE3B8\uB3EE\u90CA\u90CB\u90CC\u90CD\uEDA9\u90CE"+
- "\uD3FA\uD3E4\u90CF\u90D0\u90D1\uEDAA\uE3B9\uD2E2"+
- "\u90D2\u90D3\u90D4\u90D5\u90D6\uE3B5\u90D7\u90D8"+
- "\u90D9\u90DA\uD3DE\u90DB\u90DC\u90DD\u90DE\uB8D0"+
- "\uE3B3\u90DF\u90E0\uE3B6\uB7DF\u90E1\uE3B4\uC0A2"+
- "\u90E2\u90E3\u90E4\uE3BA\u90E5\u90E6\u90E7\u90E8"+
- "\u90E9\u90EA\u90EB\u90EC\u90ED\u90EE\u90EF\u90F0"+
- "\u90F1\u90F2\u90F3\u90F4\u90F5\u90F6\u90F7\uD4B8"+
- "\u90F8\u90F9\u90FA\u90FB\u90FC\u90FD\u90FE\u9140"+
- "\uB4C8\u9141\uE3BB\u9142\uBBC5\u9143\uC9F7\u9144"+
- "\u9145\uC9E5\u9146\u9147\u9148\uC4BD\u9149\u914A"+
- "\u914B\u914C\u914D\u914E\u914F\uEDAB\u9150\u9151"+
- "\u9152\u9153\uC2FD\u9154\u9155\u9156\u9157\uBBDB"+
- "\uBFAE\u9158\u9159\u915A\u915B\u915C\u915D\u915E"+
- "\uCEBF\u915F\u9160\u9161\u9162\uE3BC\u9163\uBFB6"+
- "\u9164\u9165\u9166\u9167\u9168\u9169\u916A\u916B"+
- "\u916C\u916D\u916E\u916F\u9170\u9171\u9172\u9173"+
- "\u9174\u9175\u9176\uB1EF\u9177\u9178\uD4F7\u9179"+
- "\u917A\u917B\u917C\u917D\uE3BE\u917E\u9180\u9181"+
- "\u9182\u9183\u9184\u9185\u9186\uEDAD\u9187\u9188"+
- "\u9189\u918A\u918B\u918C\u918D\u918E\u918F\uE3BF"+
- "\uBAA9\uEDAC\u9190\u9191\uE3BD\u9192\u9193\u9194"+
- "\u9195\u9196\u9197\u9198\u9199\u919A\u919B\uE3C0"+
- "\u919C\u919D\u919E\u919F\u91A0\u91A1\uBAB6\u91A2"+
- "\u91A3\u91A4\uB6AE\u91A5\u91A6\u91A7\u91A8\u91A9"+
- "\uD0B8\u91AA\uB0C3\uEDAE\u91AB\u91AC\u91AD\u91AE"+
- "\u91AF\uEDAF\uC0C1\u91B0\uE3C1\u91B1\u91B2\u91B3"+
- "\u91B4\u91B5\u91B6\u91B7\u91B8\u91B9\u91BA\u91BB"+
- "\u91BC\u91BD\u91BE\u91BF\u91C0\u91C1\uC5B3\u91C2"+
- "\u91C3\u91C4\u91C5\u91C6\u91C7\u91C8\u91C9\u91CA"+
- "\u91CB\u91CC\u91CD\u91CE\u91CF\uE3C2\u91D0\u91D1"+
- "\u91D2\u91D3\u91D4\u91D5\u91D6\u91D7\u91D8\uDCB2"+
- "\u91D9\u91DA\u91DB\u91DC\u91DD\u91DE\uEDB0\u91DF"+
- "\uB8EA\u91E0\uCEEC\uEAA7\uD0E7\uCAF9\uC8D6\uCFB7"+
- "\uB3C9\uCED2\uBDE4\u91E1\u91E2\uE3DE\uBBF2\uEAA8"+
- "\uD5BD\u91E3\uC6DD\uEAA9\u91E4\u91E5\u91E6\uEAAA"+
- "\u91E7\uEAAC\uEAAB\u91E8\uEAAE\uEAAD\u91E9\u91EA"+
- "\u91EB\u91EC\uBDD8\u91ED\uEAAF\u91EE\uC2BE\u91EF"+
- "\u91F0\u91F1\u91F2\uB4C1\uB4F7\u91F3\u91F4\uBBA7"+
- "\u91F5\u91F6\u91F7\u91F8\u91F9\uECE6\uECE5\uB7BF"+
- "\uCBF9\uB1E2\u91FA\uECE7\u91FB\u91FC\u91FD\uC9C8"+
- "\uECE8\uECE9\u91FE\uCAD6\uDED0\uB2C5\uD4FA\u9240"+
- "\u9241\uC6CB\uB0C7\uB4F2\uC8D3\u9242\u9243\u9244"+
- "\uCDD0\u9245\u9246\uBFB8\u9247\u9248\u9249\u924A"+
- "\u924B\u924C\u924D\uBFDB\u924E\u924F\uC7A4\uD6B4"+
- "\u9250\uC0A9\uDED1\uC9A8\uD1EF\uC5A4\uB0E7\uB3B6"+
- "\uC8C5\u9251\u9252\uB0E2\u9253\u9254\uB7F6\u9255"+
- "\u9256\uC5FA\u9257\u9258\uB6F3\u9259\uD5D2\uB3D0"+
- "\uBCBC\u925A\u925B\u925C\uB3AD\u925D\u925E\u925F"+
- "\u9260\uBEF1\uB0D1\u9261\u9262\u9263\u9264\u9265"+
- "\u9266\uD2D6\uCAE3\uD7A5\u9267\uCDB6\uB6B6\uBFB9"+
- "\uD5DB\u9268\uB8A7\uC5D7\u9269\u926A\u926B\uDED2"+
- "\uBFD9\uC2D5\uC7C0\u926C\uBBA4\uB1A8\u926D\u926E"+
- "\uC5EA\u926F\u9270\uC5FB\uCCA7\u9271\u9272\u9273"+
- "\u9274\uB1A7\u9275\u9276\u9277\uB5D6\u9278\u9279"+
- "\u927A\uC4A8\u927B\uDED3\uD1BA\uB3E9\u927C\uC3F2"+
- "\u927D\u927E\uB7F7\u9280\uD6F4\uB5A3\uB2F0\uC4B4"+
- "\uC4E9\uC0AD\uDED4\u9281\uB0E8\uC5C4\uC1E0\u9282"+
- "\uB9D5\u9283\uBEDC\uCDD8\uB0CE\u9284\uCDCF\uDED6"+
- "\uBED0\uD7BE\uDED5\uD5D0\uB0DD\u9285\u9286\uC4E2"+
- "\u9287\u9288\uC2A3\uBCF0\u9289\uD3B5\uC0B9\uC5A1"+
- "\uB2A6\uD4F1\u928A\u928B\uC0A8\uCAC3\uDED7\uD5FC"+
- "\u928C\uB9B0\u928D\uC8AD\uCBA9\u928E\uDED9\uBFBD"+
- "\u928F\u9290\u9291\u9292\uC6B4\uD7A7\uCAB0\uC4C3"+
- "\u9293\uB3D6\uB9D2\u9294\u9295\u9296\u9297\uD6B8"+
- "\uEAFC\uB0B4\u9298\u9299\u929A\u929B\uBFE6\u929C"+
- "\u929D\uCCF4\u929E\u929F\u92A0\u92A1\uCDDA\u92A2"+
- "\u92A3\u92A4\uD6BF\uC2CE\u92A5\uCECE\uCCA2\uD0AE"+
- "\uC4D3\uB5B2\uDED8\uD5F5\uBCB7\uBBD3\u92A6\u92A7"+
- "\uB0A4\u92A8\uC5B2\uB4EC\u92A9\u92AA\u92AB\uD5F1"+
- "\u92AC\u92AD\uEAFD\u92AE\u92AF\u92B0\u92B1\u92B2"+
- "\u92B3\uDEDA\uCDA6\u92B4\u92B5\uCDEC\u92B6\u92B7"+
- "\u92B8\u92B9\uCEE6\uDEDC\u92BA\uCDB1\uC0A6\u92BB"+
- "\u92BC\uD7BD\u92BD\uDEDB\uB0C6\uBAB4\uC9D3\uC4F3"+
- "\uBEE8\u92BE\u92BF\u92C0\u92C1\uB2B6\u92C2\u92C3"+
- "\u92C4\u92C5\u92C6\u92C7\u92C8\u92C9\uC0CC\uCBF0"+
- "\u92CA\uBCF1\uBBBB\uB5B7\u92CB\u92CC\u92CD\uC5F5"+
- "\u92CE\uDEE6\u92CF\u92D0\u92D1\uDEE3\uBEDD\u92D2"+
- "\u92D3\uDEDF\u92D4\u92D5\u92D6\u92D7\uB4B7\uBDDD"+
- "\u92D8\u92D9\uDEE0\uC4ED\u92DA\u92DB\u92DC\u92DD"+
- "\uCFC6\u92DE\uB5E0\u92DF\u92E0\u92E1\u92E2\uB6DE"+
- "\uCADA\uB5F4\uDEE5\u92E3\uD5C6\u92E4\uDEE1\uCCCD"+
- "\uC6FE\u92E5\uC5C5\u92E6\u92E7\u92E8\uD2B4\u92E9"+
- "\uBEF2\u92EA\u92EB\u92EC\u92ED\u92EE\u92EF\u92F0"+
- "\uC2D3\u92F1\uCCBD\uB3B8\u92F2\uBDD3\u92F3\uBFD8"+
- "\uCDC6\uD1DA\uB4EB\u92F4\uDEE4\uDEDD\uDEE7\u92F5"+
- "\uEAFE\u92F6\u92F7\uC2B0\uDEE2\u92F8\u92F9\uD6C0"+
- "\uB5A7\u92FA\uB2F4\u92FB\uDEE8\u92FC\uDEF2\u92FD"+
- "\u92FE\u9340\u9341\u9342\uDEED\u9343\uDEF1\u9344"+
- "\u9345\uC8E0\u9346\u9347\u9348\uD7E1\uDEEF\uC3E8"+
- "\uCCE1\u9349\uB2E5\u934A\u934B\u934C\uD2BE\u934D"+
- "\u934E\u934F\u9350\u9351\u9352\u9353\uDEEE\u9354"+
- "\uDEEB\uCED5\u9355\uB4A7\u9356\u9357\u9358\u9359"+
- "\u935A\uBFAB\uBEBE\u935B\u935C\uBDD2\u935D\u935E"+
- "\u935F\u9360\uDEE9\u9361\uD4AE\u9362\uDEDE\u9363"+
- "\uDEEA\u9364\u9365\u9366\u9367\uC0BF\u9368\uDEEC"+
- "\uB2F3\uB8E9\uC2A7\u9369\u936A\uBDC1\u936B\u936C"+
- "\u936D\u936E\u936F\uDEF5\uDEF8\u9370\u9371\uB2AB"+
- "\uB4A4\u9372\u9373\uB4EA\uC9A6\u9374\u9375\u9376"+
- "\u9377\u9378\u9379\uDEF6\uCBD1\u937A\uB8E3\u937B"+
- "\uDEF7\uDEFA\u937C\u937D\u937E\u9380\uDEF9\u9381"+
- "\u9382\u9383\uCCC2\u9384\uB0E1\uB4EE\u9385\u9386"+
- "\u9387\u9388\u9389\u938A\uE5BA\u938B\u938C\u938D"+
- "\u938E\u938F\uD0AF\u9390\u9391\uB2EB\u9392\uEBA1"+
- "\u9393\uDEF4\u9394\u9395\uC9E3\uDEF3\uB0DA\uD2A1"+
- "\uB1F7\u9396\uCCAF\u9397\u9398\u9399\u939A\u939B"+
- "\u939C\u939D\uDEF0\u939E\uCBA4\u939F\u93A0\u93A1"+
- "\uD5AA\u93A2\u93A3\u93A4\u93A5\u93A6\uDEFB\u93A7"+
- "\u93A8\u93A9\u93AA\u93AB\u93AC\u93AD\u93AE\uB4DD"+
- "\u93AF\uC4A6\u93B0\u93B1\u93B2\uDEFD\u93B3\u93B4"+
- "\u93B5\u93B6\u93B7\u93B8\u93B9\u93BA\u93BB\u93BC"+
- "\uC3FE\uC4A1\uDFA1\u93BD\u93BE\u93BF\u93C0\u93C1"+
- "\u93C2\u93C3\uC1CC\u93C4\uDEFC\uBEEF\u93C5\uC6B2"+
- "\u93C6\u93C7\u93C8\u93C9\u93CA\u93CB\u93CC\u93CD"+
- "\u93CE\uB3C5\uC8F6\u93CF\u93D0\uCBBA\uDEFE\u93D1"+
- "\u93D2\uDFA4\u93D3\u93D4\u93D5\u93D6\uD7B2\u93D7"+
- "\u93D8\u93D9\u93DA\u93DB\uB3B7\u93DC\u93DD\u93DE"+
- "\u93DF\uC1C3\u93E0\u93E1\uC7CB\uB2A5\uB4E9\u93E2"+
- "\uD7AB\u93E3\u93E4\u93E5\u93E6\uC4EC\u93E7\uDFA2"+
- "\uDFA3\u93E8\uDFA5\u93E9\uBAB3\u93EA\u93EB\u93EC"+
- "\uDFA6\u93ED\uC0DE\u93EE\u93EF\uC9C3\u93F0\u93F1"+
- "\u93F2\u93F3\u93F4\u93F5\u93F6\uB2D9\uC7E6\u93F7"+
- "\uDFA7\u93F8\uC7DC\u93F9\u93FA\u93FB\u93FC\uDFA8"+
- "\uEBA2\u93FD\u93FE\u9440\u9441\u9442\uCBD3\u9443"+
- "\u9444\u9445\uDFAA\u9446\uDFA9\u9447\uB2C1\u9448"+
- "\u9449\u944A\u944B\u944C\u944D\u944E\u944F\u9450"+
- "\u9451\u9452\u9453\u9454\u9455\u9456\u9457\u9458"+
- "\u9459\u945A\u945B\u945C\u945D\u945E\u945F\u9460"+
- "\uC5CA\u9461\u9462\u9463\u9464\u9465\u9466\u9467"+
- "\u9468\uDFAB\u9469\u946A\u946B\u946C\u946D\u946E"+
- "\u946F\u9470\uD4DC\u9471\u9472\u9473\u9474\u9475"+
- "\uC8C1\u9476\u9477\u9478\u9479\u947A\u947B\u947C"+
- "\u947D\u947E\u9480\u9481\u9482\uDFAC\u9483\u9484"+
- "\u9485\u9486\u9487\uBEF0\u9488\u9489\uDFAD\uD6A7"+
- "\u948A\u948B\u948C\u948D\uEAB7\uEBB6\uCAD5\u948E"+
- "\uD8FC\uB8C4\u948F\uB9A5\u9490\u9491\uB7C5\uD5FE"+
- "\u9492\u9493\u9494\u9495\u9496\uB9CA\u9497\u9498"+
- "\uD0A7\uF4CD\u9499\u949A\uB5D0\u949B\u949C\uC3F4"+
- "\u949D\uBEC8\u949E\u949F\u94A0\uEBB7\uB0BD\u94A1"+
- "\u94A2\uBDCC\u94A3\uC1B2\u94A4\uB1D6\uB3A8\u94A5"+
- "\u94A6\u94A7\uB8D2\uC9A2\u94A8\u94A9\uB6D8\u94AA"+
- "\u94AB\u94AC\u94AD\uEBB8\uBEB4\u94AE\u94AF\u94B0"+
- "\uCAFD\u94B1\uC7C3\u94B2\uD5FB\u94B3\u94B4\uB7F3"+
- "\u94B5\u94B6\u94B7\u94B8\u94B9\u94BA\u94BB\u94BC"+
- "\u94BD\u94BE\u94BF\u94C0\u94C1\u94C2\u94C3\uCEC4"+
- "\u94C4\u94C5\u94C6\uD5AB\uB1F3\u94C7\u94C8\u94C9"+
- "\uECB3\uB0DF\u94CA\uECB5\u94CB\u94CC\u94CD\uB6B7"+
- "\u94CE\uC1CF\u94CF\uF5FA\uD0B1\u94D0\u94D1\uD5E5"+
- "\u94D2\uCED3\u94D3\u94D4\uBDEF\uB3E2\u94D5\uB8AB"+
- "\u94D6\uD5B6\u94D7\uEDBD\u94D8\uB6CF\u94D9\uCBB9"+
- "\uD0C2\u94DA\u94DB\u94DC\u94DD\u94DE\u94DF\u94E0"+
- "\u94E1\uB7BD\u94E2\u94E3\uECB6\uCAA9\u94E4\u94E5"+
- "\u94E6\uC5D4\u94E7\uECB9\uECB8\uC2C3\uECB7\u94E8"+
- "\u94E9\u94EA\u94EB\uD0FD\uECBA\u94EC\uECBB\uD7E5"+
- "\u94ED\u94EE\uECBC\u94EF\u94F0\u94F1\uECBD\uC6EC"+
- "\u94F2\u94F3\u94F4\u94F5\u94F6\u94F7\u94F8\u94F9"+
- "\uCEDE\u94FA\uBCC8\u94FB\u94FC\uC8D5\uB5A9\uBEC9"+
- "\uD6BC\uD4E7\u94FD\u94FE\uD1AE\uD0F1\uEAB8\uEAB9"+
- "\uEABA\uBAB5\u9540\u9541\u9542\u9543\uCAB1\uBFF5"+
- "\u9544\u9545\uCDFA\u9546\u9547\u9548\u9549\u954A"+
- "\uEAC0\u954B\uB0BA\uEABE\u954C\u954D\uC0A5\u954E"+
- "\u954F\u9550\uEABB\u9551\uB2FD\u9552\uC3F7\uBBE8"+
- "\u9553\u9554\u9555\uD2D7\uCEF4\uEABF\u9556\u9557"+
- "\u9558\uEABC\u9559\u955A\u955B\uEAC3\u955C\uD0C7"+
- "\uD3B3\u955D\u955E\u955F\u9560\uB4BA\u9561\uC3C1"+
- "\uD7F2\u9562\u9563\u9564\u9565\uD5D1\u9566\uCAC7"+
- "\u9567\uEAC5\u9568\u9569\uEAC4\uEAC7\uEAC6\u956A"+
- "\u956B\u956C\u956D\u956E\uD6E7\u956F\uCFD4\u9570"+
- "\u9571\uEACB\u9572\uBBCE\u9573\u9574\u9575\u9576"+
- "\u9577\u9578\u9579\uBDFA\uC9CE\u957A\u957B\uEACC"+
- "\u957C\u957D\uC9B9\uCFFE\uEACA\uD4CE\uEACD\uEACF"+
- "\u957E\u9580\uCDED\u9581\u9582\u9583\u9584\uEAC9"+
- "\u9585\uEACE\u9586\u9587\uCEEE\u9588\uBBDE\u9589"+
- "\uB3BF\u958A\u958B\u958C\u958D\u958E\uC6D5\uBEB0"+
- "\uCEFA\u958F\u9590\u9591\uC7E7\u9592\uBEA7\uEAD0"+
- "\u9593\u9594\uD6C7\u9595\u9596\u9597\uC1C0\u9598"+
- "\u9599\u959A\uD4DD\u959B\uEAD1\u959C\u959D\uCFBE"+
- "\u959E\u959F\u95A0\u95A1\uEAD2\u95A2\u95A3\u95A4"+
- "\u95A5\uCAEE\u95A6\u95A7\u95A8\u95A9\uC5AF\uB0B5"+
- "\u95AA\u95AB\u95AC\u95AD\u95AE\uEAD4\u95AF\u95B0"+
- "\u95B1\u95B2\u95B3\u95B4\u95B5\u95B6\u95B7\uEAD3"+
- "\uF4DF\u95B8\u95B9\u95BA\u95BB\u95BC\uC4BA\u95BD"+
- "\u95BE\u95BF\u95C0\u95C1\uB1A9\u95C2\u95C3\u95C4"+
- "\u95C5\uE5DF\u95C6\u95C7\u95C8\u95C9\uEAD5\u95CA"+
- "\u95CB\u95CC\u95CD\u95CE\u95CF\u95D0\u95D1\u95D2"+
- "\u95D3\u95D4\u95D5\u95D6\u95D7\u95D8\u95D9\u95DA"+
- "\u95DB\u95DC\u95DD\u95DE\u95DF\u95E0\u95E1\u95E2"+
- "\u95E3\uCAEF\u95E4\uEAD6\uEAD7\uC6D8\u95E5\u95E6"+
- "\u95E7\u95E8\u95E9\u95EA\u95EB\u95EC\uEAD8\u95ED"+
- "\u95EE\uEAD9\u95EF\u95F0\u95F1\u95F2\u95F3\u95F4"+
- "\uD4BB\u95F5\uC7FA\uD2B7\uB8FC\u95F6\u95F7\uEAC2"+
- "\u95F8\uB2DC\u95F9\u95FA\uC2FC\u95FB\uD4F8\uCCE6"+
- "\uD7EE\u95FC\u95FD\u95FE\u9640\u9641\u9642\u9643"+
- "\uD4C2\uD3D0\uEBC3\uC5F3\u9644\uB7FE\u9645\u9646"+
- "\uEBD4\u9647\u9648\u9649\uCBB7\uEBDE\u964A\uC0CA"+
- "\u964B\u964C\u964D\uCDFB\u964E\uB3AF\u964F\uC6DA"+
- "\u9650\u9651\u9652\u9653\u9654\u9655\uEBFC\u9656"+
- "\uC4BE\u9657\uCEB4\uC4A9\uB1BE\uD4FD\u9658\uCAF5"+
- "\u9659\uD6EC\u965A\u965B\uC6D3\uB6E4\u965C\u965D"+
- "\u965E\u965F\uBBFA\u9660\u9661\uD0E0\u9662\u9663"+
- "\uC9B1\u9664\uD4D3\uC8A8\u9665\u9666\uB8CB\u9667"+
- "\uE8BE\uC9BC\u9668\u9669\uE8BB\u966A\uC0EE\uD0D3"+
- "\uB2C4\uB4E5\u966B\uE8BC\u966C\u966D\uD5C8\u966E"+
- "\u966F\u9670\u9671\u9672\uB6C5\u9673\uE8BD\uCAF8"+
- "\uB8DC\uCCF5\u9674\u9675\u9676\uC0B4\u9677\u9678"+
- "\uD1EE\uE8BF\uE8C2\u9679\u967A\uBABC\u967B\uB1AD"+
- "\uBDDC\u967C\uEABD\uE8C3\u967D\uE8C6\u967E\uE8CB"+
- "\u9680\u9681\u9682\u9683\uE8CC\u9684\uCBC9\uB0E5"+
- "\u9685\uBCAB\u9686\u9687\uB9B9\u9688\u9689\uE8C1"+
- "\u968A\uCDF7\u968B\uE8CA\u968C\u968D\u968E\u968F"+
- "\uCEF6\u9690\u9691\u9692\u9693\uD5ED\u9694\uC1D6"+
- "\uE8C4\u9695\uC3B6\u9696\uB9FB\uD6A6\uE8C8\u9697"+
- "\u9698\u9699\uCAE0\uD4E6\u969A\uE8C0\u969B\uE8C5"+
- "\uE8C7\u969C\uC7B9\uB7E3\u969D\uE8C9\u969E\uBFDD"+
- "\uE8D2\u969F\u96A0\uE8D7\u96A1\uE8D5\uBCDC\uBCCF"+
- "\uE8DB\u96A2\u96A3\u96A4\u96A5\u96A6\u96A7\u96A8"+
- "\u96A9\uE8DE\u96AA\uE8DA\uB1FA\u96AB\u96AC\u96AD"+
- "\u96AE\u96AF\u96B0\u96B1\u96B2\u96B3\u96B4\uB0D8"+
- "\uC4B3\uB8CC\uC6E2\uC8BE\uC8E1\u96B5\u96B6\u96B7"+
- "\uE8CF\uE8D4\uE8D6\u96B8\uB9F1\uE8D8\uD7F5\u96B9"+
- "\uC4FB\u96BA\uE8DC\u96BB\u96BC\uB2E9\u96BD\u96BE"+
- "\u96BF\uE8D1\u96C0\u96C1\uBCED\u96C2\u96C3\uBFC2"+
- "\uE8CD\uD6F9\u96C4\uC1F8\uB2F1\u96C5\u96C6\u96C7"+
- "\u96C8\u96C9\u96CA\u96CB\u96CC\uE8DF\u96CD\uCAC1"+
- "\uE8D9\u96CE\u96CF\u96D0\u96D1\uD5A4\u96D2\uB1EA"+
- "\uD5BB\uE8CE\uE8D0\uB6B0\uE8D3\u96D3\uE8DD\uC0B8"+
- "\u96D4\uCAF7\u96D5\uCBA8\u96D6\u96D7\uC6DC\uC0F5"+
- "\u96D8\u96D9\u96DA\u96DB\u96DC\uE8E9\u96DD\u96DE"+
- "\u96DF\uD0A3\u96E0\u96E1\u96E2\u96E3\u96E4\u96E5"+
- "\u96E6\uE8F2\uD6EA\u96E7\u96E8\u96E9\u96EA\u96EB"+
- "\u96EC\u96ED\uE8E0\uE8E1\u96EE\u96EF\u96F0\uD1F9"+
- "\uBACB\uB8F9\u96F1\u96F2\uB8F1\uD4D4\uE8EF\u96F3"+
- "\uE8EE\uE8EC\uB9F0\uCCD2\uE8E6\uCEA6\uBFF2\u96F4"+
- "\uB0B8\uE8F1\uE8F0\u96F5\uD7C0\u96F6\uE8E4\u96F7"+
- "\uCDA9\uC9A3\u96F8\uBBB8\uBDDB\uE8EA\u96F9\u96FA"+
- "\u96FB\u96FC\u96FD\u96FE\u9740\u9741\u9742\u9743"+
- "\uE8E2\uE8E3\uE8E5\uB5B5\uE8E7\uC7C5\uE8EB\uE8ED"+
- "\uBDB0\uD7AE\u9744\uE8F8\u9745\u9746\u9747\u9748"+
- "\u9749\u974A\u974B\u974C\uE8F5\u974D\uCDB0\uE8F6"+
- "\u974E\u974F\u9750\u9751\u9752\u9753\u9754\u9755"+
- "\u9756\uC1BA\u9757\uE8E8\u9758\uC3B7\uB0F0\u9759"+
- "\u975A\u975B\u975C\u975D\u975E\u975F\u9760\uE8F4"+
- "\u9761\u9762\u9763\uE8F7\u9764\u9765\u9766\uB9A3"+
- "\u9767\u9768\u9769\u976A\u976B\u976C\u976D\u976E"+
- "\u976F\u9770\uC9D2\u9771\u9772\u9773\uC3CE\uCEE0"+
- "\uC0E6\u9774\u9775\u9776\u9777\uCBF3\u9778\uCCDD"+
- "\uD0B5\u9779\u977A\uCAE1\u977B\uE8F3\u977C\u977D"+
- "\u977E\u9780\u9781\u9782\u9783\u9784\u9785\u9786"+
- "\uBCEC\u9787\uE8F9\u9788\u9789\u978A\u978B\u978C"+
- "\u978D\uC3DE\u978E\uC6E5\u978F\uB9F7\u9790\u9791"+
- "\u9792\u9793\uB0F4\u9794\u9795\uD7D8\u9796\u9797"+
- "\uBCAC\u9798\uC5EF\u9799\u979A\u979B\u979C\u979D"+
- "\uCCC4\u979E\u979F\uE9A6\u97A0\u97A1\u97A2\u97A3"+
- "\u97A4\u97A5\u97A6\u97A7\u97A8\u97A9\uC9AD\u97AA"+
- "\uE9A2\uC0E2\u97AB\u97AC\u97AD\uBFC3\u97AE\u97AF"+
- "\u97B0\uE8FE\uB9D7\u97B1\uE8FB\u97B2\u97B3\u97B4"+
- "\u97B5\uE9A4\u97B6\u97B7\u97B8\uD2CE\u97B9\u97BA"+
- "\u97BB\u97BC\u97BD\uE9A3\u97BE\uD6B2\uD7B5\u97BF"+
- "\uE9A7\u97C0\uBDB7\u97C1\u97C2\u97C3\u97C4\u97C5"+
- "\u97C6\u97C7\u97C8\u97C9\u97CA\u97CB\u97CC\uE8FC"+
- "\uE8FD\u97CD\u97CE\u97CF\uE9A1\u97D0\u97D1\u97D2"+
- "\u97D3\u97D4\u97D5\u97D6\u97D7\uCDD6\u97D8\u97D9"+
- "\uD2AC\u97DA\u97DB\u97DC\uE9B2\u97DD\u97DE\u97DF"+
- "\u97E0\uE9A9\u97E1\u97E2\u97E3\uB4AA\u97E4\uB4BB"+
- "\u97E5\u97E6\uE9AB\u97E7\u97E8\u97E9\u97EA\u97EB"+
- "\u97EC\u97ED\u97EE\u97EF\u97F0\u97F1\u97F2\u97F3"+
- "\u97F4\u97F5\u97F6\u97F7\uD0A8\u97F8\u97F9\uE9A5"+
- "\u97FA\u97FB\uB3FE\u97FC\u97FD\uE9AC\uC0E3\u97FE"+
- "\uE9AA\u9840\u9841\uE9B9\u9842\u9843\uE9B8\u9844"+
- "\u9845\u9846\u9847\uE9AE\u9848\u9849\uE8FA\u984A"+
- "\u984B\uE9A8\u984C\u984D\u984E\u984F\u9850\uBFAC"+
- "\uE9B1\uE9BA\u9851\u9852\uC2A5\u9853\u9854\u9855"+
- "\uE9AF\u9856\uB8C5\u9857\uE9AD\u9858\uD3DC\uE9B4"+
- "\uE9B5\uE9B7\u9859\u985A\u985B\uE9C7\u985C\u985D"+
- "\u985E\u985F\u9860\u9861\uC0C6\uE9C5\u9862\u9863"+
- "\uE9B0\u9864\u9865\uE9BB\uB0F1\u9866\u9867\u9868"+
- "\u9869\u986A\u986B\u986C\u986D\u986E\u986F\uE9BC"+
- "\uD5A5\u9870\u9871\uE9BE\u9872\uE9BF\u9873\u9874"+
- "\u9875\uE9C1\u9876\u9877\uC1F1\u9878\u9879\uC8B6"+
- "\u987A\u987B\u987C\uE9BD\u987D\u987E\u9880\u9881"+
- "\u9882\uE9C2\u9883\u9884\u9885\u9886\u9887\u9888"+
- "\u9889\u988A\uE9C3\u988B\uE9B3\u988C\uE9B6\u988D"+
- "\uBBB1\u988E\u988F\u9890\uE9C0\u9891\u9892\u9893"+
- "\u9894\u9895\u9896\uBCF7\u9897\u9898\u9899\uE9C4"+
- "\uE9C6\u989A\u989B\u989C\u989D\u989E\u989F\u98A0"+
- "\u98A1\u98A2\u98A3\u98A4\u98A5\uE9CA\u98A6\u98A7"+
- "\u98A8\u98A9\uE9CE\u98AA\u98AB\u98AC\u98AD\u98AE"+
- "\u98AF\u98B0\u98B1\u98B2\u98B3\uB2DB\u98B4\uE9C8"+
- "\u98B5\u98B6\u98B7\u98B8\u98B9\u98BA\u98BB\u98BC"+
- "\u98BD\u98BE\uB7AE\u98BF\u98C0\u98C1\u98C2\u98C3"+
- "\u98C4\u98C5\u98C6\u98C7\u98C8\u98C9\u98CA\uE9CB"+
- "\uE9CC\u98CB\u98CC\u98CD\u98CE\u98CF\u98D0\uD5C1"+
- "\u98D1\uC4A3\u98D2\u98D3\u98D4\u98D5\u98D6\u98D7"+
- "\uE9D8\u98D8\uBAE1\u98D9\u98DA\u98DB\u98DC\uE9C9"+
- "\u98DD\uD3A3\u98DE\u98DF\u98E0\uE9D4\u98E1\u98E2"+
- "\u98E3\u98E4\u98E5\u98E6\u98E7\uE9D7\uE9D0\u98E8"+
- "\u98E9\u98EA\u98EB\u98EC\uE9CF\u98ED\u98EE\uC7C1"+
- "\u98EF\u98F0\u98F1\u98F2\u98F3\u98F4\u98F5\u98F6"+
- "\uE9D2\u98F7\u98F8\u98F9\u98FA\u98FB\u98FC\u98FD"+
- "\uE9D9\uB3C8\u98FE\uE9D3\u9940\u9941\u9942\u9943"+
- "\u9944\uCFF0\u9945\u9946\u9947\uE9CD\u9948\u9949"+
- "\u994A\u994B\u994C\u994D\u994E\u994F\u9950\u9951"+
- "\u9952\uB3F7\u9953\u9954\u9955\u9956\u9957\u9958"+
- "\u9959\uE9D6\u995A\u995B\uE9DA\u995C\u995D\u995E"+
- "\uCCB4\u995F\u9960\u9961\uCFAD\u9962\u9963\u9964"+
- "\u9965\u9966\u9967\u9968\u9969\u996A\uE9D5\u996B"+
- "\uE9DC\uE9DB\u996C\u996D\u996E\u996F\u9970\uE9DE"+
- "\u9971\u9972\u9973\u9974\u9975\u9976\u9977\u9978"+
- "\uE9D1\u9979\u997A\u997B\u997C\u997D\u997E\u9980"+
- "\u9981\uE9DD\u9982\uE9DF\uC3CA\u9983\u9984\u9985"+
- "\u9986\u9987\u9988\u9989\u998A\u998B\u998C\u998D"+
- "\u998E\u998F\u9990\u9991\u9992\u9993\u9994\u9995"+
- "\u9996\u9997\u9998\u9999\u999A\u999B\u999C\u999D"+
- "\u999E\u999F\u99A0\u99A1\u99A2\u99A3\u99A4\u99A5"+
- "\u99A6\u99A7\u99A8\u99A9\u99AA\u99AB\u99AC\u99AD"+
- "\u99AE\u99AF\u99B0\u99B1\u99B2\u99B3\u99B4\u99B5"+
- "\u99B6\u99B7\u99B8\u99B9\u99BA\u99BB\u99BC\u99BD"+
- "\u99BE\u99BF\u99C0\u99C1\u99C2\u99C3\u99C4\u99C5"+
- "\u99C6\u99C7\u99C8\u99C9\u99CA\u99CB\u99CC\u99CD"+
- "\u99CE\u99CF\u99D0\u99D1\u99D2\u99D3\u99D4\u99D5"+
- "\u99D6\u99D7\u99D8\u99D9\u99DA\u99DB\u99DC\u99DD"+
- "\u99DE\u99DF\u99E0\u99E1\u99E2\u99E3\u99E4\u99E5"+
- "\u99E6\u99E7\u99E8\u99E9\u99EA\u99EB\u99EC\u99ED"+
- "\u99EE\u99EF\u99F0\u99F1\u99F2\u99F3\u99F4\u99F5"+
- "\uC7B7\uB4CE\uBBB6\uD0C0\uECA3\u99F6\u99F7\uC5B7"+
- "\u99F8\u99F9\u99FA\u99FB\u99FC\u99FD\u99FE\u9A40"+
- "\u9A41\u9A42\uD3FB\u9A43\u9A44\u9A45\u9A46\uECA4"+
- "\u9A47\uECA5\uC6DB\u9A48\u9A49\u9A4A\uBFEE\u9A4B"+
- "\u9A4C\u9A4D\u9A4E\uECA6\u9A4F\u9A50\uECA7\uD0AA"+
- "\u9A51\uC7B8\u9A52\u9A53\uB8E8\u9A54\u9A55\u9A56"+
- "\u9A57\u9A58\u9A59\u9A5A\u9A5B\u9A5C\u9A5D\u9A5E"+
- "\u9A5F\uECA8\u9A60\u9A61\u9A62\u9A63\u9A64\u9A65"+
- "\u9A66\u9A67\uD6B9\uD5FD\uB4CB\uB2BD\uCEE4\uC6E7"+
- "\u9A68\u9A69\uCDE1\u9A6A\u9A6B\u9A6C\u9A6D\u9A6E"+
- "\u9A6F\u9A70\u9A71\u9A72\u9A73\u9A74\u9A75\u9A76"+
- "\u9A77\uB4F5\u9A78\uCBC0\uBCDF\u9A79\u9A7A\u9A7B"+
- "\u9A7C\uE9E2\uE9E3\uD1EA\uE9E5\u9A7D\uB4F9\uE9E4"+
- "\u9A7E\uD1B3\uCAE2\uB2D0\u9A80\uE9E8\u9A81\u9A82"+
- "\u9A83\u9A84\uE9E6\uE9E7\u9A85\u9A86\uD6B3\u9A87"+
- "\u9A88\u9A89\uE9E9\uE9EA\u9A8A\u9A8B\u9A8C\u9A8D"+
- "\u9A8E\uE9EB\u9A8F\u9A90\u9A91\u9A92\u9A93\u9A94"+
- "\u9A95\u9A96\uE9EC\u9A97\u9A98\u9A99\u9A9A\u9A9B"+
- "\u9A9C\u9A9D\u9A9E\uECAF\uC5B9\uB6CE\u9A9F\uD2F3"+
- "\u9AA0\u9AA1\u9AA2\u9AA3\u9AA4\u9AA5\u9AA6\uB5EE"+
- "\u9AA7\uBBD9\uECB1\u9AA8\u9AA9\uD2E3\u9AAA\u9AAB"+
- "\u9AAC\u9AAD\u9AAE\uCEE3\u9AAF\uC4B8\u9AB0\uC3BF"+
- "\u9AB1\u9AB2\uB6BE\uD8B9\uB1C8\uB1CF\uB1D1\uC5FE"+
- "\u9AB3\uB1D0\u9AB4\uC3AB\u9AB5\u9AB6\u9AB7\u9AB8"+
- "\u9AB9\uD5B1\u9ABA\u9ABB\u9ABC\u9ABD\u9ABE\u9ABF"+
- "\u9AC0\u9AC1\uEBA4\uBAC1\u9AC2\u9AC3\u9AC4\uCCBA"+
- "\u9AC5\u9AC6\u9AC7\uEBA5\u9AC8\uEBA7\u9AC9\u9ACA"+
- "\u9ACB\uEBA8\u9ACC\u9ACD\u9ACE\uEBA6\u9ACF\u9AD0"+
- "\u9AD1\u9AD2\u9AD3\u9AD4\u9AD5\uEBA9\uEBAB\uEBAA"+
- "\u9AD6\u9AD7\u9AD8\u9AD9\u9ADA\uEBAC\u9ADB\uCACF"+
- "\uD8B5\uC3F1\u9ADC\uC3A5\uC6F8\uEBAD\uC4CA\u9ADD"+
- "\uEBAE\uEBAF\uEBB0\uB7D5\u9ADE\u9ADF\u9AE0\uB7FA"+
- "\u9AE1\uEBB1\uC7E2\u9AE2\uEBB3\u9AE3\uBAA4\uD1F5"+
- "\uB0B1\uEBB2\uEBB4\u9AE4\u9AE5\u9AE6\uB5AA\uC2C8"+
- "\uC7E8\u9AE7\uEBB5\u9AE8\uCBAE\uE3DF\u9AE9\u9AEA"+
- "\uD3C0\u9AEB\u9AEC\u9AED\u9AEE\uD9DB\u9AEF\u9AF0"+
- "\uCDA1\uD6AD\uC7F3\u9AF1\u9AF2\u9AF3\uD9E0\uBBE3"+
- "\u9AF4\uBABA\uE3E2\u9AF5\u9AF6\u9AF7\u9AF8\u9AF9"+
- "\uCFAB\u9AFA\u9AFB\u9AFC\uE3E0\uC9C7\u9AFD\uBAB9"+
- "\u9AFE\u9B40\u9B41\uD1B4\uE3E1\uC8EA\uB9AF\uBDAD"+
- "\uB3D8\uCEDB\u9B42\u9B43\uCCC0\u9B44\u9B45\u9B46"+
- "\uE3E8\uE3E9\uCDF4\u9B47\u9B48\u9B49\u9B4A\u9B4B"+
- "\uCCAD\u9B4C\uBCB3\u9B4D\uE3EA\u9B4E\uE3EB\u9B4F"+
- "\u9B50\uD0DA\u9B51\u9B52\u9B53\uC6FB\uB7DA\u9B54"+
- "\u9B55\uC7DF\uD2CA\uCED6\u9B56\uE3E4\uE3EC\u9B57"+
- "\uC9F2\uB3C1\u9B58\u9B59\uE3E7\u9B5A\u9B5B\uC6E3"+
- "\uE3E5\u9B5C\u9B5D\uEDB3\uE3E6\u9B5E\u9B5F\u9B60"+
- "\u9B61\uC9B3\u9B62\uC5E6\u9B63\u9B64\u9B65\uB9B5"+
- "\u9B66\uC3BB\u9B67\uE3E3\uC5BD\uC1A4\uC2D9\uB2D7"+
- "\u9B68\uE3ED\uBBA6\uC4AD\u9B69\uE3F0\uBEDA\u9B6A"+
- "\u9B6B\uE3FB\uE3F5\uBAD3\u9B6C\u9B6D\u9B6E\u9B6F"+
- "\uB7D0\uD3CD\u9B70\uD6CE\uD5D3\uB9C1\uD5B4\uD1D8"+
- "\u9B71\u9B72\u9B73\u9B74\uD0B9\uC7F6\u9B75\u9B76"+
- "\u9B77\uC8AA\uB2B4\u9B78\uC3DA\u9B79\u9B7A\u9B7B"+
- "\uE3EE\u9B7C\u9B7D\uE3FC\uE3EF\uB7A8\uE3F7\uE3F4"+
- "\u9B7E\u9B80\u9B81\uB7BA\u9B82\u9B83\uC5A2\u9B84"+
- "\uE3F6\uC5DD\uB2A8\uC6FC\u9B85\uC4E0\u9B86\u9B87"+
- "\uD7A2\u9B88\uC0E1\uE3F9\u9B89\u9B8A\uE3FA\uE3FD"+
- "\uCCA9\uE3F3\u9B8B\uD3BE\u9B8C\uB1C3\uEDB4\uE3F1"+
- "\uE3F2\u9B8D\uE3F8\uD0BA\uC6C3\uD4F3\uE3FE\u9B8E"+
- "\u9B8F\uBDE0\u9B90\u9B91\uE4A7\u9B92\u9B93\uE4A6"+
- "\u9B94\u9B95\u9B96\uD1F3\uE4A3\u9B97\uE4A9\u9B98"+
- "\u9B99\u9B9A\uC8F7\u9B9B\u9B9C\u9B9D\u9B9E\uCFB4"+
- "\u9B9F\uE4A8\uE4AE\uC2E5\u9BA0\u9BA1\uB6B4\u9BA2"+
- "\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7\uBDF2\u9BA8\uE4A2"+
- "\u9BA9\u9BAA\uBAE9\uE4AA\u9BAB\u9BAC\uE4AC\u9BAD"+
- "\u9BAE\uB6FD\uD6DE\uE4B2\u9BAF\uE4AD\u9BB0\u9BB1"+
- "\u9BB2\uE4A1\u9BB3\uBBEE\uCDDD\uC7A2\uC5C9\u9BB4"+
- "\u9BB5\uC1F7\u9BB6\uE4A4\u9BB7\uC7B3\uBDAC\uBDBD"+
- "\uE4A5\u9BB8\uD7C7\uB2E2\u9BB9\uE4AB\uBCC3\uE4AF"+
- "\u9BBA\uBBEB\uE4B0\uC5A8\uE4B1\u9BBB\u9BBC\u9BBD"+
- "\u9BBE\uD5E3\uBFA3\u9BBF\uE4BA\u9BC0\uE4B7\u9BC1"+
- "\uE4BB\u9BC2\u9BC3\uE4BD\u9BC4\u9BC5\uC6D6\u9BC6"+
- "\u9BC7\uBAC6\uC0CB\u9BC8\u9BC9\u9BCA\uB8A1\uE4B4"+
- "\u9BCB\u9BCC\u9BCD\u9BCE\uD4A1\u9BCF\u9BD0\uBAA3"+
- "\uBDFE\u9BD1\u9BD2\u9BD3\uE4BC\u9BD4\u9BD5\u9BD6"+
- "\u9BD7\u9BD8\uCDBF\u9BD9\u9BDA\uC4F9\u9BDB\u9BDC"+
- "\uCFFB\uC9E6\u9BDD\u9BDE\uD3BF\u9BDF\uCFD1\u9BE0"+
- "\u9BE1\uE4B3\u9BE2\uE4B8\uE4B9\uCCE9\u9BE3\u9BE4"+
- "\u9BE5\u9BE6\u9BE7\uCCCE\u9BE8\uC0D4\uE4B5\uC1B0"+
- "\uE4B6\uCED0\u9BE9\uBBC1\uB5D3\u9BEA\uC8F3\uBDA7"+
- "\uD5C7\uC9AC\uB8A2\uE4CA\u9BEB\u9BEC\uE4CC\uD1C4"+
- "\u9BED\u9BEE\uD2BA\u9BEF\u9BF0\uBAAD\u9BF1\u9BF2"+
- "\uBAD4\u9BF3\u9BF4\u9BF5\u9BF6\u9BF7\u9BF8\uE4C3"+
- "\uB5ED\u9BF9\u9BFA\u9BFB\uD7CD\uE4C0\uCFFD\uE4BF"+
- "\u9BFC\u9BFD\u9BFE\uC1DC\uCCCA\u9C40\u9C41\u9C42"+
- "\u9C43\uCAE7\u9C44\u9C45\u9C46\u9C47\uC4D7\u9C48"+
- "\uCCD4\uE4C8\u9C49\u9C4A\u9C4B\uE4C7\uE4C1\u9C4C"+
- "\uE4C4\uB5AD\u9C4D\u9C4E\uD3D9\u9C4F\uE4C6\u9C50"+
- "\u9C51\u9C52\u9C53\uD2F9\uB4E3\u9C54\uBBB4\u9C55"+
- "\u9C56\uC9EE\u9C57\uB4BE\u9C58\u9C59\u9C5A\uBBEC"+
- "\u9C5B\uD1CD\u9C5C\uCCED\uEDB5\u9C5D\u9C5E\u9C5F"+
- "\u9C60\u9C61\u9C62\u9C63\u9C64\uC7E5\u9C65\u9C66"+
- "\u9C67\u9C68\uD4A8\u9C69\uE4CB\uD7D5\uE4C2\u9C6A"+
- "\uBDA5\uE4C5\u9C6B\u9C6C\uD3E6\u9C6D\uE4C9\uC9F8"+
- "\u9C6E\u9C6F\uE4BE\u9C70\u9C71\uD3E5\u9C72\u9C73"+
- "\uC7FE\uB6C9\u9C74\uD4FC\uB2B3\uE4D7\u9C75\u9C76"+
- "\u9C77\uCEC2\u9C78\uE4CD\u9C79\uCEBC\u9C7A\uB8DB"+
- "\u9C7B\u9C7C\uE4D6\u9C7D\uBFCA\u9C7E\u9C80\u9C81"+
- "\uD3CE\u9C82\uC3EC\u9C83\u9C84\u9C85\u9C86\u9C87"+
- "\u9C88\u9C89\u9C8A\uC5C8\uE4D8\u9C8B\u9C8C\u9C8D"+
- "\u9C8E\u9C8F\u9C90\u9C91\u9C92\uCDC4\uE4CF\u9C93"+
- "\u9C94\u9C95\u9C96\uE4D4\uE4D5\u9C97\uBAFE\u9C98"+
- "\uCFE6\u9C99\u9C9A\uD5BF\u9C9B\u9C9C\u9C9D\uE4D2"+
- "\u9C9E\u9C9F\u9CA0\u9CA1\u9CA2\u9CA3\u9CA4\u9CA5"+
- "\u9CA6\u9CA7\u9CA8\uE4D0\u9CA9\u9CAA\uE4CE\u9CAB"+
- "\u9CAC\u9CAD\u9CAE\u9CAF\u9CB0\u9CB1\u9CB2\u9CB3"+
- "\u9CB4\u9CB5\u9CB6\u9CB7\u9CB8\u9CB9\uCDE5\uCAAA"+
- "\u9CBA\u9CBB\u9CBC\uC0A3\u9CBD\uBDA6\uE4D3\u9CBE"+
- "\u9CBF\uB8C8\u9CC0\u9CC1\u9CC2\u9CC3\u9CC4\uE4E7"+
- "\uD4B4\u9CC5\u9CC6\u9CC7\u9CC8\u9CC9\u9CCA\u9CCB"+
- "\uE4DB\u9CCC\u9CCD\u9CCE\uC1EF\u9CCF\u9CD0\uE4E9"+
- "\u9CD1\u9CD2\uD2E7\u9CD3\u9CD4\uE4DF\u9CD5\uE4E0"+
- "\u9CD6\u9CD7\uCFAA\u9CD8\u9CD9\u9CDA\u9CDB\uCBDD"+
- "\u9CDC\uE4DA\uE4D1\u9CDD\uE4E5\u9CDE\uC8DC\uE4E3"+
- "\u9CDF\u9CE0\uC4E7\uE4E2\u9CE1\uE4E1\u9CE2\u9CE3"+
- "\u9CE4\uB3FC\uE4E8\u9CE5\u9CE6\u9CE7\u9CE8\uB5E1"+
- "\u9CE9\u9CEA\u9CEB\uD7CC\u9CEC\u9CED\u9CEE\uE4E6"+
- "\u9CEF\uBBAC\u9CF0\uD7D2\uCCCF\uEBF8\u9CF1\uE4E4"+
- "\u9CF2\u9CF3\uB9F6\u9CF4\u9CF5\u9CF6\uD6CD\uE4D9"+
- "\uE4DC\uC2FA\uE4DE\u9CF7\uC2CB\uC0C4\uC2D0\u9CF8"+
- "\uB1F5\uCCB2\u9CF9\u9CFA\u9CFB\u9CFC\u9CFD\u9CFE"+
- "\u9D40\u9D41\u9D42\u9D43\uB5CE\u9D44\u9D45\u9D46"+
- "\u9D47\uE4EF\u9D48\u9D49\u9D4A\u9D4B\u9D4C\u9D4D"+
- "\u9D4E\u9D4F\uC6AF\u9D50\u9D51\u9D52\uC6E1\u9D53"+
- "\u9D54\uE4F5\u9D55\u9D56\u9D57\u9D58\u9D59\uC2A9"+
- "\u9D5A\u9D5B\u9D5C\uC0EC\uD1DD\uE4EE\u9D5D\u9D5E"+
- "\u9D5F\u9D60\u9D61\u9D62\u9D63\u9D64\u9D65\u9D66"+
- "\uC4AE\u9D67\u9D68\u9D69\uE4ED\u9D6A\u9D6B\u9D6C"+
- "\u9D6D\uE4F6\uE4F4\uC2FE\u9D6E\uE4DD\u9D6F\uE4F0"+
- "\u9D70\uCAFE\u9D71\uD5C4\u9D72\u9D73\uE4F1\u9D74"+
- "\u9D75\u9D76\u9D77\u9D78\u9D79\u9D7A\uD1FA\u9D7B"+
- "\u9D7C\u9D7D\u9D7E\u9D80\u9D81\u9D82\uE4EB\uE4EC"+
- "\u9D83\u9D84\u9D85\uE4F2\u9D86\uCEAB\u9D87\u9D88"+
- "\u9D89\u9D8A\u9D8B\u9D8C\u9D8D\u9D8E\u9D8F\u9D90"+
- "\uC5CB\u9D91\u9D92\u9D93\uC7B1\u9D94\uC2BA\u9D95"+
- "\u9D96\u9D97\uE4EA\u9D98\u9D99\u9D9A\uC1CA\u9D9B"+
- "\u9D9C\u9D9D\u9D9E\u9D9F\u9DA0\uCCB6\uB3B1\u9DA1"+
- "\u9DA2\u9DA3\uE4FB\u9DA4\uE4F3\u9DA5\u9DA6\u9DA7"+
- "\uE4FA\u9DA8\uE4FD\u9DA9\uE4FC\u9DAA\u9DAB\u9DAC"+
- "\u9DAD\u9DAE\u9DAF\u9DB0\uB3CE\u9DB1\u9DB2\u9DB3"+
- "\uB3BA\uE4F7\u9DB4\u9DB5\uE4F9\uE4F8\uC5EC\u9DB6"+
- "\u9DB7\u9DB8\u9DB9\u9DBA\u9DBB\u9DBC\u9DBD\u9DBE"+
- "\u9DBF\u9DC0\u9DC1\u9DC2\uC0BD\u9DC3\u9DC4\u9DC5"+
- "\u9DC6\uD4E8\u9DC7\u9DC8\u9DC9\u9DCA\u9DCB\uE5A2"+
- "\u9DCC\u9DCD\u9DCE\u9DCF\u9DD0\u9DD1\u9DD2\u9DD3"+
- "\u9DD4\u9DD5\u9DD6\uB0C4\u9DD7\u9DD8\uE5A4\u9DD9"+
- "\u9DDA\uE5A3\u9DDB\u9DDC\u9DDD\u9DDE\u9DDF\u9DE0"+
- "\uBCA4\u9DE1\uE5A5\u9DE2\u9DE3\u9DE4\u9DE5\u9DE6"+
- "\u9DE7\uE5A1\u9DE8\u9DE9\u9DEA\u9DEB\u9DEC\u9DED"+
- "\u9DEE\uE4FE\uB1F4\u9DEF\u9DF0\u9DF1\u9DF2\u9DF3"+
- "\u9DF4\u9DF5\u9DF6\u9DF7\u9DF8\u9DF9\uE5A8\u9DFA"+
- "\uE5A9\uE5A6\u9DFB\u9DFC\u9DFD\u9DFE\u9E40\u9E41"+
- "\u9E42\u9E43\u9E44\u9E45\u9E46\u9E47\uE5A7\uE5AA"+
- "\u9E48\u9E49\u9E4A\u9E4B\u9E4C\u9E4D\u9E4E\u9E4F"+
- "\u9E50\u9E51\u9E52\u9E53\u9E54\u9E55\u9E56\u9E57";
-
- private final static String innerEncoderIndex7=
- "\u9E58\u9E59\u9E5A\u9E5B\u9E5C\u9E5D\u9E5E\u9E5F"+
- "\u9E60\u9E61\u9E62\u9E63\u9E64\u9E65\u9E66\u9E67"+
- "\u9E68\uC6D9\u9E69\u9E6A\u9E6B\u9E6C\u9E6D\u9E6E"+
- "\u9E6F\u9E70\uE5AB\uE5AD\u9E71\u9E72\u9E73\u9E74"+
- "\u9E75\u9E76\u9E77\uE5AC\u9E78\u9E79\u9E7A\u9E7B"+
- "\u9E7C\u9E7D\u9E7E\u9E80\u9E81\u9E82\u9E83\u9E84"+
- "\u9E85\u9E86\u9E87\u9E88\u9E89\uE5AF\u9E8A\u9E8B"+
- "\u9E8C\uE5AE\u9E8D\u9E8E\u9E8F\u9E90\u9E91\u9E92"+
- "\u9E93\u9E94\u9E95\u9E96\u9E97\u9E98\u9E99\u9E9A"+
- "\u9E9B\u9E9C\u9E9D\u9E9E\uB9E0\u9E9F\u9EA0\uE5B0"+
- "\u9EA1\u9EA2\u9EA3\u9EA4\u9EA5\u9EA6\u9EA7\u9EA8"+
- "\u9EA9\u9EAA\u9EAB\u9EAC\u9EAD\u9EAE\uE5B1\u9EAF"+
- "\u9EB0\u9EB1\u9EB2\u9EB3\u9EB4\u9EB5\u9EB6\u9EB7"+
- "\u9EB8\u9EB9\u9EBA\uBBF0\uECE1\uC3F0\u9EBB\uB5C6"+
- "\uBBD2\u9EBC\u9EBD\u9EBE\u9EBF\uC1E9\uD4EE\u9EC0"+
- "\uBEC4\u9EC1\u9EC2\u9EC3\uD7C6\u9EC4\uD4D6\uB2D3"+
- "\uECBE\u9EC5\u9EC6\u9EC7\u9EC8\uEAC1\u9EC9\u9ECA"+
- "\u9ECB\uC2AF\uB4B6\u9ECC\u9ECD\u9ECE\uD1D7\u9ECF"+
- "\u9ED0\u9ED1\uB3B4\u9ED2\uC8B2\uBFBB\uECC0\u9ED3"+
- "\u9ED4\uD6CB\u9ED5\u9ED6\uECBF\uECC1\u9ED7\u9ED8"+
- "\u9ED9\u9EDA\u9EDB\u9EDC\u9EDD\u9EDE\u9EDF\u9EE0"+
- "\u9EE1\u9EE2\u9EE3\uECC5\uBEE6\uCCBF\uC5DA\uBEBC"+
- "\u9EE4\uECC6\u9EE5\uB1FE\u9EE6\u9EE7\u9EE8\uECC4"+
- "\uD5A8\uB5E3\u9EE9\uECC2\uC1B6\uB3E3\u9EEA\u9EEB"+
- "\uECC3\uCBB8\uC0C3\uCCFE\u9EEC\u9EED\u9EEE\u9EEF"+
- "\uC1D2\u9EF0\uECC8\u9EF1\u9EF2\u9EF3\u9EF4\u9EF5"+
- "\u9EF6\u9EF7\u9EF8\u9EF9\u9EFA\u9EFB\u9EFC\u9EFD"+
- "\uBAE6\uC0D3\u9EFE\uD6F2\u9F40\u9F41\u9F42\uD1CC"+
- "\u9F43\u9F44\u9F45\u9F46\uBFBE\u9F47\uB7B3\uC9D5"+
- "\uECC7\uBBE2\u9F48\uCCCC\uBDFD\uC8C8\u9F49\uCFA9"+
- "\u9F4A\u9F4B\u9F4C\u9F4D\u9F4E\u9F4F\u9F50\uCDE9"+
- "\u9F51\uC5EB\u9F52\u9F53\u9F54\uB7E9\u9F55\u9F56"+
- "\u9F57\u9F58\u9F59\u9F5A\u9F5B\u9F5C\u9F5D\u9F5E"+
- "\u9F5F\uD1C9\uBAB8\u9F60\u9F61\u9F62\u9F63\u9F64"+
- "\uECC9\u9F65\u9F66\uECCA\u9F67\uBBC0\uECCB\u9F68"+
- "\uECE2\uB1BA\uB7D9\u9F69\u9F6A\u9F6B\u9F6C\u9F6D"+
- "\u9F6E\u9F6F\u9F70\u9F71\u9F72\u9F73\uBDB9\u9F74"+
- "\u9F75\u9F76\u9F77\u9F78\u9F79\u9F7A\u9F7B\uECCC"+
- "\uD1E6\uECCD\u9F7C\u9F7D\u9F7E\u9F80\uC8BB\u9F81"+
- "\u9F82\u9F83\u9F84\u9F85\u9F86\u9F87\u9F88\u9F89"+
- "\u9F8A\u9F8B\u9F8C\u9F8D\u9F8E\uECD1\u9F8F\u9F90"+
- "\u9F91\u9F92\uECD3\u9F93\uBBCD\u9F94\uBCE5\u9F95"+
- "\u9F96\u9F97\u9F98\u9F99\u9F9A\u9F9B\u9F9C\u9F9D"+
- "\u9F9E\u9F9F\u9FA0\u9FA1\uECCF\u9FA2\uC9B7\u9FA3"+
- "\u9FA4\u9FA5\u9FA6\u9FA7\uC3BA\u9FA8\uECE3\uD5D5"+
- "\uECD0\u9FA9\u9FAA\u9FAB\u9FAC\u9FAD\uD6F3\u9FAE"+
- "\u9FAF\u9FB0\uECD2\uECCE\u9FB1\u9FB2\u9FB3\u9FB4"+
- "\uECD4\u9FB5\uECD5\u9FB6\u9FB7\uC9BF\u9FB8\u9FB9"+
- "\u9FBA\u9FBB\u9FBC\u9FBD\uCFA8\u9FBE\u9FBF\u9FC0"+
- "\u9FC1\u9FC2\uD0DC\u9FC3\u9FC4\u9FC5\u9FC6\uD1AC"+
- "\u9FC7\u9FC8\u9FC9\u9FCA\uC8DB\u9FCB\u9FCC\u9FCD"+
- "\uECD6\uCEF5\u9FCE\u9FCF\u9FD0\u9FD1\u9FD2\uCAEC"+
- "\uECDA\u9FD3\u9FD4\u9FD5\u9FD6\u9FD7\u9FD8\u9FD9"+
- "\uECD9\u9FDA\u9FDB\u9FDC\uB0BE\u9FDD\u9FDE\u9FDF"+
- "\u9FE0\u9FE1\u9FE2\uECD7\u9FE3\uECD8\u9FE4\u9FE5"+
- "\u9FE6\uECE4\u9FE7\u9FE8\u9FE9\u9FEA\u9FEB\u9FEC"+
- "\u9FED\u9FEE\u9FEF\uC8BC\u9FF0\u9FF1\u9FF2\u9FF3"+
- "\u9FF4\u9FF5\u9FF6\u9FF7\u9FF8\u9FF9\uC1C7\u9FFA"+
- "\u9FFB\u9FFC\u9FFD\u9FFE\uECDC\uD1E0\uA040\uA041"+
- "\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049"+
- "\uECDB\uA04A\uA04B\uA04C\uA04D\uD4EF\uA04E\uECDD"+
- "\uA04F\uA050\uA051\uA052\uA053\uA054\uDBC6\uA055"+
- "\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D"+
- "\uA05E\uECDE\uA05F\uA060\uA061\uA062\uA063\uA064"+
- "\uA065\uA066\uA067\uA068\uA069\uA06A\uB1AC\uA06B"+
- "\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073"+
- "\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B"+
- "\uA07C\uA07D\uA07E\uA080\uA081\uECDF\uA082\uA083"+
- "\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B"+
- "\uECE0\uA08C\uD7A6\uA08D\uC5C0\uA08E\uA08F\uA090"+
- "\uEBBC\uB0AE\uA091\uA092\uA093\uBEF4\uB8B8\uD2AF"+
- "\uB0D6\uB5F9\uA094\uD8B3\uA095\uCBAC\uA096\uE3DD"+
- "\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uC6AC"+
- "\uB0E6\uA09E\uA09F\uA0A0\uC5C6\uEBB9\uA0A1\uA0A2"+
- "\uA0A3\uA0A4\uEBBA\uA0A5\uA0A6\uA0A7\uEBBB\uA0A8"+
- "\uA0A9\uD1C0\uA0AA\uC5A3\uA0AB\uEAF2\uA0AC\uC4B2"+
- "\uA0AD\uC4B5\uC0CE\uA0AE\uA0AF\uA0B0\uEAF3\uC4C1"+
- "\uA0B1\uCEEF\uA0B2\uA0B3\uA0B4\uA0B5\uEAF0\uEAF4"+
- "\uA0B6\uA0B7\uC9FC\uA0B8\uA0B9\uC7A3\uA0BA\uA0BB"+
- "\uA0BC\uCCD8\uCEFE\uA0BD\uA0BE\uA0BF\uEAF5\uEAF6"+
- "\uCFAC\uC0E7\uA0C0\uA0C1\uEAF7\uA0C2\uA0C3\uA0C4"+
- "\uA0C5\uA0C6\uB6BF\uEAF8\uA0C7\uEAF9\uA0C8\uEAFA"+
- "\uA0C9\uA0CA\uEAFB\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF"+
- "\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uEAF1"+
- "\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE"+
- "\uA0DF\uA0E0\uA0E1\uA0E2\uC8AE\uE1EB\uA0E3\uB7B8"+
- "\uE1EC\uA0E4\uA0E5\uA0E6\uE1ED\uA0E7\uD7B4\uE1EE"+
- "\uE1EF\uD3CC\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED"+
- "\uA0EE\uE1F1\uBFF1\uE1F0\uB5D2\uA0EF\uA0F0\uA0F1"+
- "\uB1B7\uA0F2\uA0F3\uA0F4\uA0F5\uE1F3\uE1F2\uA0F6"+
- "\uBAFC\uA0F7\uE1F4\uA0F8\uA0F9\uA0FA\uA0FB\uB9B7"+
- "\uA0FC\uBED1\uA0FD\uA0FE\uAA40\uAA41\uC4FC\uAA42"+
- "\uBADD\uBDC6\uAA43\uAA44\uAA45\uAA46\uAA47\uAA48"+
- "\uE1F5\uE1F7\uAA49\uAA4A\uB6C0\uCFC1\uCAA8\uE1F6"+
- "\uD5F8\uD3FC\uE1F8\uE1FC\uE1F9\uAA4B\uAA4C\uE1FA"+
- "\uC0EA\uAA4D\uE1FE\uE2A1\uC0C7\uAA4E\uAA4F\uAA50"+
- "\uAA51\uE1FB\uAA52\uE1FD\uAA53\uAA54\uAA55\uAA56"+
- "\uAA57\uAA58\uE2A5\uAA59\uAA5A\uAA5B\uC1D4\uAA5C"+
- "\uAA5D\uAA5E\uAA5F\uE2A3\uAA60\uE2A8\uB2FE\uE2A2"+
- "\uAA61\uAA62\uAA63\uC3CD\uB2C2\uE2A7\uE2A6\uAA64"+
- "\uAA65\uE2A4\uE2A9\uAA66\uAA67\uE2AB\uAA68\uAA69"+
- "\uAA6A\uD0C9\uD6ED\uC3A8\uE2AC\uAA6B\uCFD7\uAA6C"+
- "\uAA6D\uE2AE\uAA6E\uAA6F\uBAEF\uAA70\uAA71\uE9E0"+
- "\uE2AD\uE2AA\uAA72\uAA73\uAA74\uAA75\uBBAB\uD4B3"+
- "\uAA76\uAA77\uAA78\uAA79\uAA7A\uAA7B\uAA7C\uAA7D"+
- "\uAA7E\uAA80\uAA81\uAA82\uAA83\uE2B0\uAA84\uAA85"+
- "\uE2AF\uAA86\uE9E1\uAA87\uAA88\uAA89\uAA8A\uE2B1"+
- "\uAA8B\uAA8C\uAA8D\uAA8E\uAA8F\uAA90\uAA91\uAA92"+
- "\uE2B2\uAA93\uAA94\uAA95\uAA96\uAA97\uAA98\uAA99"+
- "\uAA9A\uAA9B\uAA9C\uAA9D\uE2B3\uCCA1\uAA9E\uE2B4"+
- "\uAA9F\uAAA0\uAB40\uAB41\uAB42\uAB43\uAB44\uAB45"+
- "\uAB46\uAB47\uAB48\uAB49\uAB4A\uAB4B\uE2B5\uAB4C"+
- "\uAB4D\uAB4E\uAB4F\uAB50\uD0FE\uAB51\uAB52\uC2CA"+
- "\uAB53\uD3F1\uAB54\uCDF5\uAB55\uAB56\uE7E0\uAB57"+
- "\uAB58\uE7E1\uAB59\uAB5A\uAB5B\uAB5C\uBEC1\uAB5D"+
- "\uAB5E\uAB5F\uAB60\uC2EA\uAB61\uAB62\uAB63\uE7E4"+
- "\uAB64\uAB65\uE7E3\uAB66\uAB67\uAB68\uAB69\uAB6A"+
- "\uAB6B\uCDE6\uAB6C\uC3B5\uAB6D\uAB6E\uE7E2\uBBB7"+
- "\uCFD6\uAB6F\uC1E1\uE7E9\uAB70\uAB71\uAB72\uE7E8"+
- "\uAB73\uAB74\uE7F4\uB2A3\uAB75\uAB76\uAB77\uAB78"+
- "\uE7EA\uAB79\uE7E6\uAB7A\uAB7B\uAB7C\uAB7D\uAB7E"+
- "\uE7EC\uE7EB\uC9BA\uAB80\uAB81\uD5E4\uAB82\uE7E5"+
- "\uB7A9\uE7E7\uAB83\uAB84\uAB85\uAB86\uAB87\uAB88"+
- "\uAB89\uE7EE\uAB8A\uAB8B\uAB8C\uAB8D\uE7F3\uAB8E"+
- "\uD6E9\uAB8F\uAB90\uAB91\uAB92\uE7ED\uAB93\uE7F2"+
- "\uAB94\uE7F1\uAB95\uAB96\uAB97\uB0E0\uAB98\uAB99"+
- "\uAB9A\uAB9B\uE7F5\uAB9C\uAB9D\uAB9E\uAB9F\uABA0"+
- "\uAC40\uAC41\uAC42\uAC43\uAC44\uAC45\uAC46\uAC47"+
- "\uAC48\uAC49\uAC4A\uC7F2\uAC4B\uC0C5\uC0ED\uAC4C"+
- "\uAC4D\uC1F0\uE7F0\uAC4E\uAC4F\uAC50\uAC51\uE7F6"+
- "\uCBF6\uAC52\uAC53\uAC54\uAC55\uAC56\uAC57\uAC58"+
- "\uAC59\uAC5A\uE8A2\uE8A1\uAC5B\uAC5C\uAC5D\uAC5E"+
- "\uAC5F\uAC60\uD7C1\uAC61\uAC62\uE7FA\uE7F9\uAC63"+
- "\uE7FB\uAC64\uE7F7\uAC65\uE7FE\uAC66\uE7FD\uAC67"+
- "\uE7FC\uAC68\uAC69\uC1D5\uC7D9\uC5FD\uC5C3\uAC6A"+
- "\uAC6B\uAC6C\uAC6D\uAC6E\uC7ED\uAC6F\uAC70\uAC71"+
- "\uAC72\uE8A3\uAC73\uAC74\uAC75\uAC76\uAC77\uAC78"+
- "\uAC79\uAC7A\uAC7B\uAC7C\uAC7D\uAC7E\uAC80\uAC81"+
- "\uAC82\uAC83\uAC84\uAC85\uAC86\uE8A6\uAC87\uE8A5"+
- "\uAC88\uE8A7\uBAF7\uE7F8\uE8A4\uAC89\uC8F0\uC9AA"+
- "\uAC8A\uAC8B\uAC8C\uAC8D\uAC8E\uAC8F\uAC90\uAC91"+
- "\uAC92\uAC93\uAC94\uAC95\uAC96\uE8A9\uAC97\uAC98"+
- "\uB9E5\uAC99\uAC9A\uAC9B\uAC9C\uAC9D\uD1FE\uE8A8"+
- "\uAC9E\uAC9F\uACA0\uAD40\uAD41\uAD42\uE8AA\uAD43"+
- "\uE8AD\uE8AE\uAD44\uC1A7\uAD45\uAD46\uAD47\uE8AF"+
- "\uAD48\uAD49\uAD4A\uE8B0\uAD4B\uAD4C\uE8AC\uAD4D"+
- "\uE8B4\uAD4E\uAD4F\uAD50\uAD51\uAD52\uAD53\uAD54"+
- "\uAD55\uAD56\uAD57\uAD58\uE8AB\uAD59\uE8B1\uAD5A"+
- "\uAD5B\uAD5C\uAD5D\uAD5E\uAD5F\uAD60\uAD61\uE8B5"+
- "\uE8B2\uE8B3\uAD62\uAD63\uAD64\uAD65\uAD66\uAD67"+
- "\uAD68\uAD69\uAD6A\uAD6B\uAD6C\uAD6D\uAD6E\uAD6F"+
- "\uAD70\uAD71\uE8B7\uAD72\uAD73\uAD74\uAD75\uAD76"+
- "\uAD77\uAD78\uAD79\uAD7A\uAD7B\uAD7C\uAD7D\uAD7E"+
- "\uAD80\uAD81\uAD82\uAD83\uAD84\uAD85\uAD86\uAD87"+
- "\uAD88\uAD89\uE8B6\uAD8A\uAD8B\uAD8C\uAD8D\uAD8E"+
- "\uAD8F\uAD90\uAD91\uAD92\uB9CF\uAD93\uF0AC\uAD94"+
- "\uF0AD\uAD95\uC6B0\uB0EA\uC8BF\uAD96\uCDDF\uAD97"+
- "\uAD98\uAD99\uAD9A\uAD9B\uAD9C\uAD9D\uCECD\uEAB1"+
- "\uAD9E\uAD9F\uADA0\uAE40\uEAB2\uAE41\uC6BF\uB4C9"+
- "\uAE42\uAE43\uAE44\uAE45\uAE46\uAE47\uAE48\uEAB3"+
- "\uAE49\uAE4A\uAE4B\uAE4C\uD5E7\uAE4D\uAE4E\uAE4F"+
- "\uAE50\uAE51\uAE52\uAE53\uAE54\uDDF9\uAE55\uEAB4"+
- "\uAE56\uEAB5\uAE57\uEAB6\uAE58\uAE59\uAE5A\uAE5B"+
- "\uB8CA\uDFB0\uC9F5\uAE5C\uCCF0\uAE5D\uAE5E\uC9FA"+
- "\uAE5F\uAE60\uAE61\uAE62\uAE63\uC9FB\uAE64\uAE65"+
- "\uD3C3\uCBA6\uAE66\uB8A6\uF0AE\uB1C2\uAE67\uE5B8"+
- "\uCCEF\uD3C9\uBCD7\uC9EA\uAE68\uB5E7\uAE69\uC4D0"+
- "\uB5E9\uAE6A\uEEAE\uBBAD\uAE6B\uAE6C\uE7DE\uAE6D"+
- "\uEEAF\uAE6E\uAE6F\uAE70\uAE71\uB3A9\uAE72\uAE73"+
- "\uEEB2\uAE74\uAE75\uEEB1\uBDE7\uAE76\uEEB0\uCEB7"+
- "\uAE77\uAE78\uAE79\uAE7A\uC5CF\uAE7B\uAE7C\uAE7D"+
- "\uAE7E\uC1F4\uDBCE\uEEB3\uD0F3\uAE80\uAE81\uAE82"+
- "\uAE83\uAE84\uAE85\uAE86\uAE87\uC2D4\uC6E8\uAE88"+
- "\uAE89\uAE8A\uB7AC\uAE8B\uAE8C\uAE8D\uAE8E\uAE8F"+
- "\uAE90\uAE91\uEEB4\uAE92\uB3EB\uAE93\uAE94\uAE95"+
- "\uBBFB\uEEB5\uAE96\uAE97\uAE98\uAE99\uAE9A\uE7DC"+
- "\uAE9B\uAE9C\uAE9D\uEEB6\uAE9E\uAE9F\uBDAE\uAEA0"+
- "\uAF40\uAF41\uAF42\uF1E2\uAF43\uAF44\uAF45\uCAE8"+
- "\uAF46\uD2C9\uF0DA\uAF47\uF0DB\uAF48\uF0DC\uC1C6"+
- "\uAF49\uB8ED\uBECE\uAF4A\uAF4B\uF0DE\uAF4C\uC5B1"+
- "\uF0DD\uD1F1\uAF4D\uF0E0\uB0CC\uBDEA\uAF4E\uAF4F"+
- "\uAF50\uAF51\uAF52\uD2DF\uF0DF\uAF53\uB4AF\uB7E8"+
- "\uF0E6\uF0E5\uC6A3\uF0E1\uF0E2\uB4C3\uAF54\uAF55"+
- "\uF0E3\uD5EE\uAF56\uAF57\uCCDB\uBED2\uBCB2\uAF58"+
- "\uAF59\uAF5A\uF0E8\uF0E7\uF0E4\uB2A1\uAF5B\uD6A2"+
- "\uD3B8\uBEB7\uC8AC\uAF5C\uAF5D\uF0EA\uAF5E\uAF5F"+
- "\uAF60\uAF61\uD1F7\uAF62\uD6CC\uBADB\uF0E9\uAF63"+
- "\uB6BB\uAF64\uAF65\uCDB4\uAF66\uAF67\uC6A6\uAF68"+
- "\uAF69\uAF6A\uC1A1\uF0EB\uF0EE\uAF6B\uF0ED\uF0F0"+
- "\uF0EC\uAF6C\uBBBE\uF0EF\uAF6D\uAF6E\uAF6F\uAF70"+
- "\uCCB5\uF0F2\uAF71\uAF72\uB3D5\uAF73\uAF74\uAF75"+
- "\uAF76\uB1D4\uAF77\uAF78\uF0F3\uAF79\uAF7A\uF0F4"+
- "\uF0F6\uB4E1\uAF7B\uF0F1\uAF7C\uF0F7\uAF7D\uAF7E"+
- "\uAF80\uAF81\uF0FA\uAF82\uF0F8\uAF83\uAF84\uAF85"+
- "\uF0F5\uAF86\uAF87\uAF88\uAF89\uF0FD\uAF8A\uF0F9"+
- "\uF0FC\uF0FE\uAF8B\uF1A1\uAF8C\uAF8D\uAF8E\uCEC1"+
- "\uF1A4\uAF8F\uF1A3\uAF90\uC1F6\uF0FB\uCADD\uAF91"+
- "\uAF92\uB4F1\uB1F1\uCCB1\uAF93\uF1A6\uAF94\uAF95"+
- "\uF1A7\uAF96\uAF97\uF1AC\uD5CE\uF1A9\uAF98\uAF99"+
- "\uC8B3\uAF9A\uAF9B\uAF9C\uF1A2\uAF9D\uF1AB\uF1A8"+
- "\uF1A5\uAF9E\uAF9F\uF1AA\uAFA0\uB040\uB041\uB042"+
- "\uB043\uB044\uB045\uB046\uB0A9\uF1AD\uB047\uB048"+
- "\uB049\uB04A\uB04B\uB04C\uF1AF\uB04D\uF1B1\uB04E"+
- "\uB04F\uB050\uB051\uB052\uF1B0\uB053\uF1AE\uB054"+
- "\uB055\uB056\uB057\uD1A2\uB058\uB059\uB05A\uB05B"+
- "\uB05C\uB05D\uB05E\uF1B2\uB05F\uB060\uB061\uF1B3"+
- "\uB062\uB063\uB064\uB065\uB066\uB067\uB068\uB069"+
- "\uB9EF\uB06A\uB06B\uB5C7\uB06C\uB0D7\uB0D9\uB06D"+
- "\uB06E\uB06F\uD4ED\uB070\uB5C4\uB071\uBDD4\uBBCA"+
- "\uF0A7\uB072\uB073\uB8DE\uB074\uB075\uF0A8\uB076"+
- "\uB077\uB0A8\uB078\uF0A9\uB079\uB07A\uCDEE\uB07B"+
- "\uB07C\uF0AA\uB07D\uB07E\uB080\uB081\uB082\uB083"+
- "\uB084\uB085\uB086\uB087\uF0AB\uB088\uB089\uB08A"+
- "\uB08B\uB08C\uB08D\uB08E\uB08F\uB090\uC6A4\uB091"+
- "\uB092\uD6E5\uF1E4\uB093\uF1E5\uB094\uB095\uB096"+
- "\uB097\uB098\uB099\uB09A\uB09B\uB09C\uB09D\uC3F3"+
- "\uB09E\uB09F\uD3DB\uB0A0\uB140\uD6D1\uC5E8\uB141"+
- "\uD3AF\uB142\uD2E6\uB143\uB144\uEEC1\uB0BB\uD5B5"+
- "\uD1CE\uBCE0\uBAD0\uB145\uBFF8\uB146\uB8C7\uB5C1"+
- "\uC5CC\uB147\uB148\uCAA2\uB149\uB14A\uB14B\uC3CB"+
- "\uB14C\uB14D\uB14E\uB14F\uB150\uEEC2\uB151\uB152"+
- "\uB153\uB154\uB155\uB156\uB157\uB158\uC4BF\uB6A2"+
- "\uB159\uEDEC\uC3A4\uB15A\uD6B1\uB15B\uB15C\uB15D"+
- "\uCFE0\uEDEF\uB15E\uB15F\uC5CE\uB160\uB6DC\uB161"+
- "\uB162\uCAA1\uB163\uB164\uEDED\uB165\uB166\uEDF0"+
- "\uEDF1\uC3BC\uB167\uBFB4\uB168\uEDEE\uB169\uB16A"+
- "\uB16B\uB16C\uB16D\uB16E\uB16F\uB170\uB171\uB172"+
- "\uB173\uEDF4\uEDF2\uB174\uB175\uB176\uB177\uD5E6"+
- "\uC3DF\uB178\uEDF3\uB179\uB17A\uB17B\uEDF6\uB17C"+
- "\uD5A3\uD1A3\uB17D\uB17E\uB180\uEDF5\uB181\uC3D0"+
- "\uB182\uB183\uB184\uB185\uB186\uEDF7\uBFF4\uBEEC"+
- "\uEDF8\uB187\uCCF7\uB188\uD1DB\uB189\uB18A\uB18B"+
- "\uD7C5\uD5F6\uB18C\uEDFC\uB18D\uB18E\uB18F\uEDFB"+
- "\uB190\uB191\uB192\uB193\uB194\uB195\uB196\uB197"+
- "\uEDF9\uEDFA\uB198\uB199\uB19A\uB19B\uB19C\uB19D"+
- "\uB19E\uB19F\uEDFD\uBEA6\uB1A0\uB240\uB241\uB242"+
- "\uB243\uCBAF\uEEA1\uB6BD\uB244\uEEA2\uC4C0\uB245"+
- "\uEDFE\uB246\uB247\uBDDE\uB2C7\uB248\uB249\uB24A"+
- "\uB24B\uB24C\uB24D\uB24E\uB24F\uB250\uB251\uB252"+
- "\uB253\uB6C3\uB254\uB255\uB256\uEEA5\uD8BA\uEEA3"+
- "\uEEA6\uB257\uB258\uB259\uC3E9\uB3F2\uB25A\uB25B"+
- "\uB25C\uB25D\uB25E\uB25F\uEEA7\uEEA4\uCFB9\uB260"+
- "\uB261\uEEA8\uC2F7\uB262\uB263\uB264\uB265\uB266"+
- "\uB267\uB268\uB269\uB26A\uB26B\uB26C\uB26D\uEEA9"+
- "\uEEAA\uB26E\uDEAB\uB26F\uB270\uC6B3\uB271\uC7C6"+
- "\uB272\uD6F5\uB5C9\uB273\uCBB2\uB274\uB275\uB276"+
- "\uEEAB\uB277\uB278\uCDAB\uB279\uEEAC\uB27A\uB27B"+
- "\uB27C\uB27D\uB27E\uD5B0\uB280\uEEAD\uB281\uF6C4"+
- "\uB282\uB283\uB284\uB285\uB286\uB287\uB288\uB289"+
- "\uB28A\uB28B\uB28C\uB28D\uB28E\uDBC7\uB28F\uB290"+
- "\uB291\uB292\uB293\uB294\uB295\uB296\uB297\uB4A3"+
- "\uB298\uB299\uB29A\uC3AC\uF1E6\uB29B\uB29C\uB29D"+
- "\uB29E\uB29F\uCAB8\uD2D3\uB2A0\uD6AA\uB340\uEFF2"+
- "\uB341\uBED8\uB342\uBDC3\uEFF3\uB6CC\uB0AB\uB343"+
- "\uB344\uB345\uB346\uCAAF\uB347\uB348\uEDB6\uB349"+
- "\uEDB7\uB34A\uB34B\uB34C\uB34D\uCEF9\uB7AF\uBFF3"+
- "\uEDB8\uC2EB\uC9B0\uB34E\uB34F\uB350\uB351\uB352"+
- "\uB353\uEDB9\uB354\uB355\uC6F6\uBFB3\uB356\uB357"+
- "\uB358\uEDBC\uC5F8\uB359\uD1D0\uB35A\uD7A9\uEDBA"+
- "\uEDBB\uB35B\uD1E2\uB35C\uEDBF\uEDC0\uB35D\uEDC4"+
- "\uB35E\uB35F\uB360\uEDC8\uB361\uEDC6\uEDCE\uD5E8"+
- "\uB362\uEDC9\uB363\uB364\uEDC7\uEDBE\uB365\uB366"+
- "\uC5E9\uB367\uB368\uB369\uC6C6\uB36A\uB36B\uC9E9"+
- "\uD4D2\uEDC1\uEDC2\uEDC3\uEDC5\uB36C\uC0F9\uB36D"+
- "\uB4A1\uB36E\uB36F\uB370\uB371\uB9E8\uB372\uEDD0"+
- "\uB373\uB374\uB375\uB376\uEDD1\uB377\uEDCA\uB378"+
- "\uEDCF\uB379\uCEF8\uB37A\uB37B\uCBB6\uEDCC\uEDCD"+
- "\uB37C\uB37D\uB37E\uB380\uB381\uCFF5\uB382\uB383"+
- "\uB384\uB385\uB386\uB387\uB388\uB389\uB38A\uB38B"+
- "\uB38C\uB38D\uEDD2\uC1F2\uD3B2\uEDCB\uC8B7\uB38E"+
- "\uB38F\uB390\uB391\uB392\uB393\uB394\uB395\uBCEF"+
- "\uB396\uB397\uB398\uB399\uC5F0\uB39A\uB39B\uB39C"+
- "\uB39D\uB39E\uB39F\uB3A0\uB440\uB441\uB442\uEDD6"+
- "\uB443\uB5EF\uB444\uB445\uC2B5\uB0AD\uCBE9\uB446"+
- "\uB447\uB1AE\uB448\uEDD4\uB449\uB44A\uB44B\uCDEB"+
- "\uB5E2\uB44C\uEDD5\uEDD3\uEDD7\uB44D\uB44E\uB5FA"+
- "\uB44F\uEDD8\uB450\uEDD9\uB451\uEDDC\uB452\uB1CC"+
- "\uB453\uB454\uB455\uB456\uB457\uB458\uB459\uB45A"+
- "\uC5F6\uBCEE\uEDDA\uCCBC\uB2EA\uB45B\uB45C\uB45D"+
- "\uB45E\uEDDB\uB45F\uB460\uB461\uB462\uC4EB\uB463"+
- "\uB464\uB4C5\uB465\uB466\uB467\uB0F5\uB468\uB469"+
- "\uB46A\uEDDF\uC0DA\uB4E8\uB46B\uB46C\uB46D\uB46E"+
- "\uC5CD\uB46F\uB470\uB471\uEDDD\uBFC4\uB472\uB473"+
- "\uB474\uEDDE\uB475\uB476\uB477\uB478\uB479\uB47A"+
- "\uB47B\uB47C\uB47D\uB47E\uB480\uB481\uB482\uB483"+
- "\uC4A5\uB484\uB485\uB486\uEDE0\uB487\uB488\uB489"+
- "\uB48A\uB48B\uEDE1\uB48C\uEDE3\uB48D\uB48E\uC1D7"+
- "\uB48F\uB490\uBBC7\uB491\uB492\uB493\uB494\uB495"+
- "\uB496\uBDB8\uB497\uB498\uB499\uEDE2\uB49A\uB49B"+
- "\uB49C\uB49D\uB49E\uB49F\uB4A0\uB540\uB541\uB542"+
- "\uB543\uB544\uB545\uEDE4\uB546\uB547\uB548\uB549"+
- "\uB54A\uB54B\uB54C\uB54D\uB54E\uB54F\uEDE6\uB550"+
- "\uB551\uB552\uB553\uB554\uEDE5\uB555\uB556\uB557"+
- "\uB558\uB559\uB55A\uB55B\uB55C\uB55D\uB55E\uB55F"+
- "\uB560\uB561\uB562\uB563\uEDE7\uB564\uB565\uB566"+
- "\uB567\uB568\uCABE\uECEA\uC0F1\uB569\uC9E7\uB56A"+
- "\uECEB\uC6EE\uB56B\uB56C\uB56D\uB56E\uECEC\uB56F"+
- "\uC6ED\uECED\uB570\uB571\uB572\uB573\uB574\uB575"+
- "\uB576\uB577\uB578\uECF0\uB579\uB57A\uD7E6\uECF3"+
- "\uB57B\uB57C\uECF1\uECEE\uECEF\uD7A3\uC9F1\uCBEE"+
- "\uECF4\uB57D\uECF2\uB57E\uB580\uCFE9\uB581\uECF6"+
- "\uC6B1\uB582\uB583\uB584\uB585\uBCC0\uB586\uECF5"+
- "\uB587\uB588\uB589\uB58A\uB58B\uB58C\uB58D\uB5BB"+
- "\uBBF6\uB58E\uECF7\uB58F\uB590\uB591\uB592\uB593"+
- "\uD9F7\uBDFB\uB594\uB595\uC2BB\uECF8\uB596\uB597"+
- "\uB598\uB599\uECF9\uB59A\uB59B\uB59C\uB59D\uB8A3"+
- "\uB59E\uB59F\uB5A0\uB640\uB641\uB642\uB643\uB644"+
- "\uB645\uB646\uECFA\uB647\uB648\uB649\uB64A\uB64B"+
- "\uB64C\uB64D\uB64E\uB64F\uB650\uB651\uB652\uECFB"+
- "\uB653\uB654\uB655\uB656\uB657\uB658\uB659\uB65A"+
- "\uB65B\uB65C\uB65D\uECFC\uB65E\uB65F\uB660\uB661"+
- "\uB662\uD3ED\uD8AE\uC0EB\uB663\uC7DD\uBACC\uB664"+
- "\uD0E3\uCBBD\uB665\uCDBA\uB666\uB667\uB8D1\uB668"+
- "\uB669\uB1FC\uB66A\uC7EF\uB66B\uD6D6\uB66C\uB66D"+
- "\uB66E\uBFC6\uC3EB\uB66F\uB670\uEFF5\uB671\uB672"+
- "\uC3D8\uB673\uB674\uB675\uB676\uB677\uB678\uD7E2"+
- "\uB679\uB67A\uB67B\uEFF7\uB3D3\uB67C\uC7D8\uD1ED"+
- "\uB67D\uD6C8\uB67E\uEFF8\uB680\uEFF6\uB681\uBBFD"+
- "\uB3C6\uB682\uB683\uB684\uB685\uB686\uB687\uB688"+
- "\uBDD5\uB689\uB68A\uD2C6\uB68B\uBBE0\uB68C\uB68D"+
- "\uCFA1\uB68E\uEFFC\uEFFB\uB68F\uB690\uEFF9\uB691"+
- "\uB692\uB693\uB694\uB3CC\uB695\uC9D4\uCBB0\uB696"+
- "\uB697\uB698\uB699\uB69A\uEFFE\uB69B\uB69C\uB0DE"+
- "\uB69D\uB69E\uD6C9\uB69F\uB6A0\uB740\uEFFD\uB741"+
- "\uB3ED\uB742\uB743\uF6D5\uB744\uB745\uB746\uB747"+
- "\uB748\uB749\uB74A\uB74B\uB74C\uB74D\uB74E\uB74F"+
- "\uB750\uB751\uB752\uCEC8\uB753\uB754\uB755\uF0A2"+
- "\uB756\uF0A1\uB757\uB5BE\uBCDA\uBBFC\uB758\uB8E5"+
- "\uB759\uB75A\uB75B\uB75C\uB75D\uB75E\uC4C2\uB75F"+
- "\uB760\uB761\uB762\uB763\uB764\uB765\uB766\uB767"+
- "\uB768\uF0A3\uB769\uB76A\uB76B\uB76C\uB76D\uCBEB"+
- "\uB76E\uB76F\uB770\uB771\uB772\uB773\uB774\uB775"+
- "\uB776\uB777\uB778\uB779\uB77A\uB77B\uB77C\uB77D"+
- "\uB77E\uB780\uB781\uB782\uB783\uB784\uB785\uB786"+
- "\uF0A6\uB787\uB788\uB789\uD1A8\uB78A\uBEBF\uC7EE"+
- "\uF1B6\uF1B7\uBFD5\uB78B\uB78C\uB78D\uB78E\uB4A9"+
- "\uF1B8\uCDBB\uB78F\uC7D4\uD5AD\uB790\uF1B9\uB791"+
- "\uF1BA\uB792\uB793\uB794\uB795\uC7CF\uB796\uB797"+
- "\uB798\uD2A4\uD6CF\uB799\uB79A\uF1BB\uBDD1\uB4B0"+
- "\uBEBD\uB79B\uB79C\uB79D\uB4DC\uCED1\uB79E\uBFDF"+
- "\uF1BD\uB79F\uB7A0\uB840\uB841\uBFFA\uF1BC\uB842"+
- "\uF1BF\uB843\uB844\uB845\uF1BE\uF1C0\uB846\uB847"+
- "\uB848\uB849\uB84A\uF1C1\uB84B\uB84C\uB84D\uB84E"+
- "\uB84F\uB850\uB851\uB852\uB853\uB854\uB855\uC1FE"+
- "\uB856\uB857\uB858\uB859\uB85A\uB85B\uB85C\uB85D"+
- "\uB85E\uB85F\uB860\uC1A2\uB861\uB862\uB863\uB864"+
- "\uB865\uB866\uB867\uB868\uB869\uB86A\uCAFA\uB86B"+
- "\uB86C\uD5BE\uB86D\uB86E\uB86F\uB870\uBEBA\uBEB9"+
- "\uD5C2\uB871\uB872\uBFA2\uB873\uCDAF\uF1B5\uB874"+
- "\uB875\uB876\uB877\uB878\uB879\uBDDF\uB87A\uB6CB"+
- "\uB87B\uB87C\uB87D\uB87E\uB880\uB881\uB882\uB883"+
- "\uB884\uD6F1\uF3C3\uB885\uB886\uF3C4\uB887\uB8CD"+
- "\uB888\uB889\uB88A\uF3C6\uF3C7\uB88B\uB0CA\uB88C"+
- "\uF3C5\uB88D\uF3C9\uCBF1\uB88E\uB88F\uB890\uF3CB"+
- "\uB891\uD0A6\uB892\uB893\uB1CA\uF3C8\uB894\uB895"+
- "\uB896\uF3CF\uB897\uB5D1\uB898\uB899\uF3D7\uB89A"+
- "\uF3D2\uB89B\uB89C\uB89D\uF3D4\uF3D3\uB7FB\uB89E"+
- "\uB1BF\uB89F\uF3CE\uF3CA\uB5DA\uB8A0\uF3D0\uB940"+
- "\uB941\uF3D1\uB942\uF3D5\uB943\uB944\uB945\uB946"+
- "\uF3CD\uB947\uBCE3\uB948\uC1FD\uB949\uF3D6\uB94A"+
- "\uB94B\uB94C\uB94D\uB94E\uB94F\uF3DA\uB950\uF3CC"+
- "\uB951\uB5C8\uB952\uBDEE\uF3DC\uB953\uB954\uB7A4"+
- "\uBFF0\uD6FE\uCDB2\uB955\uB4F0\uB956\uB2DF\uB957"+
- "\uF3D8\uB958\uF3D9\uC9B8\uB959\uF3DD\uB95A\uB95B"+
- "\uF3DE\uB95C\uF3E1\uB95D\uB95E\uB95F\uB960\uB961"+
- "\uB962\uB963\uB964\uB965\uB966\uB967\uF3DF\uB968"+
- "\uB969\uF3E3\uF3E2\uB96A\uB96B\uF3DB\uB96C\uBFEA"+
- "\uB96D\uB3EF\uB96E\uF3E0\uB96F\uB970\uC7A9\uB971"+
- "\uBCF2\uB972\uB973\uB974\uB975\uF3EB\uB976\uB977"+
- "\uB978\uB979\uB97A\uB97B\uB97C\uB9BF\uB97D\uB97E"+
- "\uF3E4\uB980\uB981\uB982\uB2AD\uBBFE\uB983\uCBE3"+
- "\uB984\uB985\uB986\uB987\uF3ED\uF3E9\uB988\uB989"+
- "\uB98A\uB9DC\uF3EE\uB98B\uB98C\uB98D\uF3E5\uF3E6"+
- "\uF3EA\uC2E1\uF3EC\uF3EF\uF3E8\uBCFD\uB98E\uB98F"+
- "\uB990\uCFE4\uB991\uB992\uF3F0\uB993\uB994\uB995"+
- "\uF3E7\uB996\uB997\uB998\uB999\uB99A\uB99B\uB99C"+
- "\uB99D\uF3F2\uB99E\uB99F\uB9A0\uBA40\uD7AD\uC6AA"+
- "\uBA41\uBA42\uBA43\uBA44\uF3F3\uBA45\uBA46\uBA47"+
- "\uBA48\uF3F1\uBA49\uC2A8\uBA4A\uBA4B\uBA4C\uBA4D"+
- "\uBA4E\uB8DD\uF3F5\uBA4F\uBA50\uF3F4\uBA51\uBA52"+
- "\uBA53\uB4DB\uBA54\uBA55\uBA56\uF3F6\uF3F7\uBA57"+
- "\uBA58\uBA59\uF3F8\uBA5A\uBA5B\uBA5C\uC0BA\uBA5D"+
- "\uBA5E\uC0E9\uBA5F\uBA60\uBA61\uBA62\uBA63\uC5F1"+
- "\uBA64\uBA65\uBA66\uBA67\uF3FB\uBA68\uF3FA\uBA69"+
- "\uBA6A\uBA6B\uBA6C\uBA6D\uBA6E\uBA6F\uBA70\uB4D8"+
- "\uBA71\uBA72\uBA73\uF3FE\uF3F9\uBA74\uBA75\uF3FC"+
- "\uBA76\uBA77\uBA78\uBA79\uBA7A\uBA7B\uF3FD\uBA7C"+
- "\uBA7D\uBA7E\uBA80\uBA81\uBA82\uBA83\uBA84\uF4A1"+
- "\uBA85\uBA86\uBA87\uBA88\uBA89\uBA8A\uF4A3\uBBC9"+
- "\uBA8B\uBA8C\uF4A2\uBA8D\uBA8E\uBA8F\uBA90\uBA91"+
- "\uBA92\uBA93\uBA94\uBA95\uBA96\uBA97\uBA98\uBA99"+
- "\uF4A4\uBA9A\uBA9B\uBA9C\uBA9D\uBA9E\uBA9F\uB2BE"+
- "\uF4A6\uF4A5\uBAA0\uBB40\uBB41\uBB42\uBB43\uBB44"+
- "\uBB45\uBB46\uBB47\uBB48\uBB49\uBCAE\uBB4A\uBB4B"+
- "\uBB4C\uBB4D\uBB4E\uBB4F\uBB50\uBB51\uBB52\uBB53"+
- "\uBB54\uBB55\uBB56\uBB57\uBB58\uBB59\uBB5A\uBB5B"+
- "\uBB5C\uBB5D\uBB5E\uBB5F\uBB60\uBB61\uBB62\uBB63"+
- "\uBB64\uBB65\uBB66\uBB67\uBB68\uBB69\uBB6A\uBB6B"+
- "\uBB6C\uBB6D\uBB6E\uC3D7\uD9E1\uBB6F\uBB70\uBB71"+
- "\uBB72\uBB73\uBB74\uC0E0\uF4CC\uD7D1\uBB75\uBB76"+
- "\uBB77\uBB78\uBB79\uBB7A\uBB7B\uBB7C\uBB7D\uBB7E"+
- "\uBB80\uB7DB\uBB81\uBB82\uBB83\uBB84\uBB85\uBB86"+
- "\uBB87\uF4CE\uC1A3\uBB88\uBB89\uC6C9\uBB8A\uB4D6"+
- "\uD5B3\uBB8B\uBB8C\uBB8D\uF4D0\uF4CF\uF4D1\uCBDA"+
- "\uBB8E\uBB8F\uF4D2\uBB90\uD4C1\uD6E0\uBB91\uBB92"+
- "\uBB93\uBB94\uB7E0\uBB95\uBB96\uBB97\uC1B8\uBB98"+
- "\uBB99\uC1BB\uF4D3\uBEAC\uBB9A\uBB9B\uBB9C\uBB9D"+
- "\uBB9E\uB4E2\uBB9F\uBBA0\uF4D4\uF4D5\uBEAB\uBC40"+
- "\uBC41\uF4D6\uBC42\uBC43\uBC44\uF4DB\uBC45\uF4D7"+
- "\uF4DA\uBC46\uBAFD\uBC47\uF4D8\uF4D9\uBC48\uBC49"+
- "\uBC4A\uBC4B\uBC4C\uBC4D\uBC4E\uB8E2\uCCC7\uF4DC"+
- "\uBC4F\uB2DA\uBC50\uBC51\uC3D3\uBC52\uBC53\uD4E3"+
- "\uBFB7\uBC54\uBC55\uBC56\uBC57\uBC58\uBC59\uBC5A"+
- "\uF4DD\uBC5B\uBC5C\uBC5D\uBC5E\uBC5F\uBC60\uC5B4"+
- "\uBC61\uBC62\uBC63\uBC64\uBC65\uBC66\uBC67\uBC68"+
- "\uF4E9\uBC69\uBC6A\uCFB5\uBC6B\uBC6C\uBC6D\uBC6E"+
- "\uBC6F\uBC70\uBC71\uBC72\uBC73\uBC74\uBC75\uBC76"+
- "\uBC77\uBC78\uCEC9\uBC79\uBC7A\uBC7B\uBC7C\uBC7D"+
- "\uBC7E\uBC80\uBC81\uBC82\uBC83\uBC84\uBC85\uBC86"+
- "\uBC87\uBC88\uBC89\uBC8A\uBC8B\uBC8C\uBC8D\uBC8E"+
- "\uCBD8\uBC8F\uCBF7\uBC90\uBC91\uBC92\uBC93\uBDF4"+
- "\uBC94\uBC95\uBC96\uD7CF\uBC97\uBC98\uBC99\uC0DB"+
- "\uBC9A\uBC9B\uBC9C\uBC9D\uBC9E\uBC9F\uBCA0\uBD40"+
- "\uBD41\uBD42\uBD43\uBD44\uBD45\uBD46\uBD47\uBD48"+
- "\uBD49\uBD4A\uBD4B\uBD4C\uBD4D\uBD4E\uBD4F\uBD50"+
- "\uBD51\uBD52\uBD53\uBD54\uBD55\uBD56\uBD57\uBD58"+
- "\uBD59\uBD5A\uBD5B\uBD5C\uBD5D\uBD5E\uBD5F\uBD60"+
- "\uBD61\uBD62\uBD63\uBD64\uBD65\uBD66\uBD67\uBD68"+
- "\uBD69\uBD6A\uBD6B\uBD6C\uBD6D\uBD6E\uBD6F\uBD70"+
- "\uBD71\uBD72\uBD73\uBD74\uBD75\uBD76\uD0F5\uBD77"+
- "\uBD78\uBD79\uBD7A\uBD7B\uBD7C\uBD7D\uBD7E\uF4EA"+
- "\uBD80\uBD81\uBD82\uBD83\uBD84\uBD85\uBD86\uBD87"+
- "\uBD88\uBD89\uBD8A\uBD8B\uBD8C\uBD8D\uBD8E\uBD8F"+
- "\uBD90\uBD91\uBD92\uBD93\uBD94\uBD95\uBD96\uBD97"+
- "\uBD98\uBD99\uBD9A\uBD9B\uBD9C\uBD9D\uBD9E\uBD9F"+
- "\uBDA0\uBE40\uBE41\uBE42\uBE43\uBE44\uBE45\uBE46"+
- "\uBE47\uBE48\uBE49\uBE4A\uBE4B\uBE4C\uF4EB\uBE4D"+
- "\uBE4E\uBE4F\uBE50\uBE51\uBE52\uBE53\uF4EC\uBE54"+
- "\uBE55\uBE56\uBE57\uBE58\uBE59\uBE5A\uBE5B\uBE5C"+
- "\uBE5D\uBE5E\uBE5F\uBE60\uBE61\uBE62\uBE63\uBE64"+
- "\uBE65\uBE66\uBE67\uBE68\uBE69\uBE6A\uBE6B\uBE6C"+
- "\uBE6D\uBE6E\uBE6F\uBE70\uBE71\uBE72\uBE73\uBE74"+
- "\uBE75\uBE76\uBE77\uBE78\uBE79\uBE7A\uBE7B\uBE7C"+
- "\uBE7D\uBE7E\uBE80\uBE81\uBE82\uBE83\uBE84\uBE85"+
- "\uBE86\uBE87\uBE88\uBE89\uBE8A\uBE8B\uBE8C\uBE8D"+
- "\uBE8E\uBE8F\uBE90\uBE91\uBE92\uBE93\uBE94\uBE95"+
- "\uBE96\uBE97\uBE98\uBE99\uBE9A\uBE9B\uBE9C\uBE9D"+
- "\uBE9E\uBE9F\uBEA0\uBF40\uBF41\uBF42\uBF43\uBF44"+
- "\uBF45\uBF46\uBF47\uBF48\uBF49\uBF4A\uBF4B\uBF4C"+
- "\uBF4D\uBF4E\uBF4F\uBF50\uBF51\uBF52\uBF53\uBF54"+
- "\uBF55\uBF56\uBF57\uBF58\uBF59\uBF5A\uBF5B\uBF5C"+
- "\uBF5D\uBF5E\uBF5F\uBF60\uBF61\uBF62\uBF63\uBF64"+
- "\uBF65\uBF66\uBF67\uBF68\uBF69\uBF6A\uBF6B\uBF6C"+
- "\uBF6D\uBF6E\uBF6F\uBF70\uBF71\uBF72\uBF73\uBF74"+
- "\uBF75\uBF76\uBF77\uBF78\uBF79\uBF7A\uBF7B\uBF7C"+
- "\uBF7D\uBF7E\uBF80\uF7E3\uBF81\uBF82\uBF83\uBF84"+
- "\uBF85\uB7B1\uBF86\uBF87\uBF88\uBF89\uBF8A\uF4ED"+
- "\uBF8B\uBF8C\uBF8D\uBF8E\uBF8F\uBF90\uBF91\uBF92"+
- "\uBF93\uBF94\uBF95\uBF96\uBF97\uBF98\uBF99\uBF9A"+
- "\uBF9B\uBF9C\uBF9D\uBF9E\uBF9F\uBFA0\uC040\uC041"+
- "\uC042\uC043\uC044\uC045\uC046\uC047\uC048\uC049"+
- "\uC04A\uC04B\uC04C\uC04D\uC04E\uC04F\uC050\uC051"+
- "\uC052\uC053\uC054\uC055\uC056\uC057\uC058\uC059"+
- "\uC05A\uC05B\uC05C\uC05D\uC05E\uC05F\uC060\uC061"+
- "\uC062\uC063\uD7EB\uC064\uC065\uC066\uC067\uC068"+
- "\uC069\uC06A\uC06B\uC06C\uC06D\uC06E\uC06F\uC070"+
- "\uC071\uC072\uC073\uC074\uC075\uC076\uC077\uC078"+
- "\uC079\uC07A\uC07B\uF4EE\uC07C\uC07D\uC07E\uE6F9"+
- "\uBEC0\uE6FA\uBAEC\uE6FB\uCFCB\uE6FC\uD4BC\uBCB6"+
- "\uE6FD\uE6FE\uBCCD\uC8D2\uCEB3\uE7A1\uC080\uB4BF"+
- "\uE7A2\uC9B4\uB8D9\uC4C9\uC081\uD7DD\uC2DA\uB7D7"+
- "\uD6BD\uCEC6\uB7C4\uC082\uC083\uC5A6\uE7A3\uCFDF"+
- "\uE7A4\uE7A5\uE7A6\uC1B7\uD7E9\uC9F0\uCFB8\uD6AF"+
- "\uD6D5\uE7A7\uB0ED\uE7A8\uE7A9\uC9DC\uD2EF\uBEAD"+
- "\uE7AA\uB0F3\uC8DE\uBDE1\uE7AB\uC8C6\uC084\uE7AC"+
- "\uBBE6\uB8F8\uD1A4\uE7AD\uC2E7\uBEF8\uBDCA\uCDB3"+
- "\uE7AE\uE7AF\uBEEE\uD0E5\uC085\uCBE7\uCCD0\uBCCC"+
- "\uE7B0\uBCA8\uD0F7\uE7B1\uC086\uD0F8\uE7B2\uE7B3"+
- "\uB4C2\uE7B4\uE7B5\uC9FE\uCEAC\uC3E0\uE7B7\uB1C1"+
- "\uB3F1\uC087\uE7B8\uE7B9\uD7DB\uD5C0\uE7BA\uC2CC"+
- "\uD7BA\uE7BB\uE7BC\uE7BD\uBCEA\uC3E5\uC0C2\uE7BE"+
- "\uE7BF\uBCA9\uC088\uE7C0\uE7C1\uE7B6\uB6D0\uE7C2"+
- "\uC089\uE7C3\uE7C4\uBBBA\uB5DE\uC2C6\uB1E0\uE7C5"+
- "\uD4B5\uE7C6\uB8BF\uE7C8\uE7C7\uB7EC\uC08A\uE7C9"+
- "\uB2F8\uE7CA\uE7CB\uE7CC\uE7CD\uE7CE\uE7CF\uE7D0"+
- "\uD3A7\uCBF5\uE7D1\uE7D2\uE7D3\uE7D4\uC9C9\uE7D5"+
- "\uE7D6\uE7D7\uE7D8\uE7D9\uBDC9\uE7DA\uF3BE\uC08B"+
- "\uB8D7\uC08C\uC8B1\uC08D\uC08E\uC08F\uC090\uC091"+
- "\uC092\uC093\uF3BF\uC094\uF3C0\uF3C1\uC095\uC096"+
- "\uC097\uC098\uC099\uC09A\uC09B\uC09C\uC09D\uC09E"+
- "\uB9DE\uCDF8\uC09F\uC0A0\uD8E8\uBAB1\uC140\uC2DE"+
- "\uEEB7\uC141\uB7A3\uC142\uC143\uC144\uC145\uEEB9"+
- "\uC146\uEEB8\uB0D5\uC147\uC148\uC149\uC14A\uC14B"+
- "\uEEBB\uD5D6\uD7EF\uC14C\uC14D\uC14E\uD6C3\uC14F"+
- "\uC150\uEEBD\uCAF0\uC151\uEEBC\uC152\uC153\uC154"+
- "\uC155\uEEBE\uC156\uC157\uC158\uC159\uEEC0\uC15A"+
- "\uC15B\uEEBF\uC15C\uC15D\uC15E\uC15F\uC160\uC161"+
- "\uC162\uC163\uD1F2\uC164\uC7BC\uC165\uC3C0\uC166"+
- "\uC167\uC168\uC169\uC16A\uB8E1\uC16B\uC16C\uC16D"+
- "\uC16E\uC16F\uC1E7\uC170\uC171\uF4C6\uD0DF\uF4C7"+
- "\uC172\uCFDB\uC173\uC174\uC8BA\uC175\uC176\uF4C8"+
- "\uC177\uC178\uC179\uC17A\uC17B\uC17C\uC17D\uF4C9"+
- "\uF4CA\uC17E\uF4CB\uC180\uC181\uC182\uC183\uC184"+
- "\uD9FA\uB8FE\uC185\uC186\uE5F1\uD3F0\uC187\uF4E0"+
- "\uC188\uCECC\uC189\uC18A\uC18B\uB3E1\uC18C\uC18D"+
- "\uC18E\uC18F\uF1B4\uC190\uD2EE\uC191\uF4E1\uC192"+
- "\uC193\uC194\uC195\uC196\uCFE8\uF4E2\uC197\uC198"+
- "\uC7CC\uC199\uC19A\uC19B\uC19C\uC19D\uC19E\uB5D4"+
- "\uB4E4\uF4E4\uC19F\uC1A0\uC240\uF4E3\uF4E5\uC241"+
- "\uC242\uF4E6\uC243\uC244\uC245\uC246\uF4E7\uC247"+
- "\uBAB2\uB0BF\uC248\uF4E8\uC249\uC24A\uC24B\uC24C"+
- "\uC24D\uC24E\uC24F\uB7AD\uD2ED\uC250\uC251\uC252";
-
- private final static String innerEncoderIndex8=
- "\uD2AB\uC0CF\uC253\uBFBC\uEBA3\uD5DF\uEAC8\uC254"+
- "\uC255\uC256\uC257\uF1F3\uB6F8\uCBA3\uC258\uC259"+
- "\uC4CD\uC25A\uF1E7\uC25B\uF1E8\uB8FB\uF1E9\uBAC4"+
- "\uD4C5\uB0D2\uC25C\uC25D\uF1EA\uC25E\uC25F\uC260"+
- "\uF1EB\uC261\uF1EC\uC262\uC263\uF1ED\uF1EE\uF1EF"+
- "\uF1F1\uF1F0\uC5D5\uC264\uC265\uC266\uC267\uC268"+
- "\uC269\uF1F2\uC26A\uB6FA\uC26B\uF1F4\uD2AE\uDEC7"+
- "\uCBCA\uC26C\uC26D\uB3DC\uC26E\uB5A2\uC26F\uB9A2"+
- "\uC270\uC271\uC4F4\uF1F5\uC272\uC273\uF1F6\uC274"+
- "\uC275\uC276\uC1C4\uC1FB\uD6B0\uF1F7\uC277\uC278"+
- "\uC279\uC27A\uF1F8\uC27B\uC1AA\uC27C\uC27D\uC27E"+
- "\uC6B8\uC280\uBEDB\uC281\uC282\uC283\uC284\uC285"+
- "\uC286\uC287\uC288\uC289\uC28A\uC28B\uC28C\uC28D"+
- "\uC28E\uF1F9\uB4CF\uC28F\uC290\uC291\uC292\uC293"+
- "\uC294\uF1FA\uC295\uC296\uC297\uC298\uC299\uC29A"+
- "\uC29B\uC29C\uC29D\uC29E\uC29F\uC2A0\uC340\uEDB2"+
- "\uEDB1\uC341\uC342\uCBE0\uD2DE\uC343\uCBC1\uD5D8"+
- "\uC344\uC8E2\uC345\uC0DF\uBCA1\uC346\uC347\uC348"+
- "\uC349\uC34A\uC34B\uEBC1\uC34C\uC34D\uD0A4\uC34E"+
- "\uD6E2\uC34F\uB6C7\uB8D8\uEBC0\uB8CE\uC350\uEBBF"+
- "\uB3A6\uB9C9\uD6AB\uC351\uB7F4\uB7CA\uC352\uC353"+
- "\uC354\uBCE7\uB7BE\uEBC6\uC355\uEBC7\uB0B9\uBFCF"+
- "\uC356\uEBC5\uD3FD\uC357\uEBC8\uC358\uC359\uEBC9"+
- "\uC35A\uC35B\uB7CE\uC35C\uEBC2\uEBC4\uC9F6\uD6D7"+
- "\uD5CD\uD0B2\uEBCF\uCEB8\uEBD0\uC35D\uB5A8\uC35E"+
- "\uC35F\uC360\uC361\uC362\uB1B3\uEBD2\uCCA5\uC363"+
- "\uC364\uC365\uC366\uC367\uC368\uC369\uC5D6\uEBD3"+
- "\uC36A\uEBD1\uC5DF\uEBCE\uCAA4\uEBD5\uB0FB\uC36B"+
- "\uC36C\uBAFA\uC36D\uC36E\uD8B7\uF1E3\uC36F\uEBCA"+
- "\uEBCB\uEBCC\uEBCD\uEBD6\uE6C0\uEBD9\uC370\uBFE8"+
- "\uD2C8\uEBD7\uEBDC\uB8EC\uEBD8\uC371\uBDBA\uC372"+
- "\uD0D8\uC373\uB0B7\uC374\uEBDD\uC4DC\uC375\uC376"+
- "\uC377\uC378\uD6AC\uC379\uC37A\uC37B\uB4E0\uC37C"+
- "\uC37D\uC2F6\uBCB9\uC37E\uC380\uEBDA\uEBDB\uD4E0"+
- "\uC6EA\uC4D4\uEBDF\uC5A7\uD9F5\uC381\uB2B1\uC382"+
- "\uEBE4\uC383\uBDC5\uC384\uC385\uC386\uEBE2\uC387"+
- "\uC388\uC389\uC38A\uC38B\uC38C\uC38D\uC38E\uC38F"+
- "\uC390\uC391\uC392\uC393\uEBE3\uC394\uC395\uB8AC"+
- "\uC396\uCDD1\uEBE5\uC397\uC398\uC399\uEBE1\uC39A"+
- "\uC1B3\uC39B\uC39C\uC39D\uC39E\uC39F\uC6A2\uC3A0"+
- "\uC440\uC441\uC442\uC443\uC444\uC445\uCCF3\uC446"+
- "\uEBE6\uC447\uC0B0\uD2B8\uEBE7\uC448\uC449\uC44A"+
- "\uB8AF\uB8AD\uC44B\uEBE8\uC7BB\uCDF3\uC44C\uC44D"+
- "\uC44E\uEBEA\uEBEB\uC44F\uC450\uC451\uC452\uC453"+
- "\uEBED\uC454\uC455\uC456\uC457\uD0C8\uC458\uEBF2"+
- "\uC459\uEBEE\uC45A\uC45B\uC45C\uEBF1\uC8F9\uC45D"+
- "\uD1FC\uEBEC\uC45E\uC45F\uEBE9\uC460\uC461\uC462"+
- "\uC463\uB8B9\uCFD9\uC4E5\uEBEF\uEBF0\uCCDA\uCDC8"+
- "\uB0F2\uC464\uEBF6\uC465\uC466\uC467\uC468\uC469"+
- "\uEBF5\uC46A\uB2B2\uC46B\uC46C\uC46D\uC46E\uB8E0"+
- "\uC46F\uEBF7\uC470\uC471\uC472\uC473\uC474\uC475"+
- "\uB1EC\uC476\uC477\uCCC5\uC4A4\uCFA5\uC478\uC479"+
- "\uC47A\uC47B\uC47C\uEBF9\uC47D\uC47E\uECA2\uC480"+
- "\uC5F2\uC481\uEBFA\uC482\uC483\uC484\uC485\uC486"+
- "\uC487\uC488\uC489\uC9C5\uC48A\uC48B\uC48C\uC48D"+
- "\uC48E\uC48F\uE2DF\uEBFE\uC490\uC491\uC492\uC493"+
- "\uCDCE\uECA1\uB1DB\uD3B7\uC494\uC495\uD2DC\uC496"+
- "\uC497\uC498\uEBFD\uC499\uEBFB\uC49A\uC49B\uC49C"+
- "\uC49D\uC49E\uC49F\uC4A0\uC540\uC541\uC542\uC543"+
- "\uC544\uC545\uC546\uC547\uC548\uC549\uC54A\uC54B"+
- "\uC54C\uC54D\uC54E\uB3BC\uC54F\uC550\uC551\uEAB0"+
- "\uC552\uC553\uD7D4\uC554\uF4AB\uB3F4\uC555\uC556"+
- "\uC557\uC558\uC559\uD6C1\uD6C2\uC55A\uC55B\uC55C"+
- "\uC55D\uC55E\uC55F\uD5E9\uBECA\uC560\uF4A7\uC561"+
- "\uD2A8\uF4A8\uF4A9\uC562\uF4AA\uBECB\uD3DF\uC563"+
- "\uC564\uC565\uC566\uC567\uC9E0\uC9E1\uC568\uC569"+
- "\uF3C2\uC56A\uCAE6\uC56B\uCCF2\uC56C\uC56D\uC56E"+
- "\uC56F\uC570\uC571\uE2B6\uCBB4\uC572\uCEE8\uD6DB"+
- "\uC573\uF4AD\uF4AE\uF4AF\uC574\uC575\uC576\uC577"+
- "\uF4B2\uC578\uBABD\uF4B3\uB0E3\uF4B0\uC579\uF4B1"+
- "\uBDA2\uB2D5\uC57A\uF4B6\uF4B7\uB6E6\uB2B0\uCFCF"+
- "\uF4B4\uB4AC\uC57B\uF4B5\uC57C\uC57D\uF4B8\uC57E"+
- "\uC580\uC581\uC582\uC583\uF4B9\uC584\uC585\uCDA7"+
- "\uC586\uF4BA\uC587\uF4BB\uC588\uC589\uC58A\uF4BC"+
- "\uC58B\uC58C\uC58D\uC58E\uC58F\uC590\uC591\uC592"+
- "\uCBD2\uC593\uF4BD\uC594\uC595\uC596\uC597\uF4BE"+
- "\uC598\uC599\uC59A\uC59B\uC59C\uC59D\uC59E\uC59F"+
- "\uF4BF\uC5A0\uC640\uC641\uC642\uC643\uF4DE\uC1BC"+
- "\uBCE8\uC644\uC9AB\uD1DE\uE5F5\uC645\uC646\uC647"+
- "\uC648\uDCB3\uD2D5\uC649\uC64A\uDCB4\uB0AC\uDCB5"+
- "\uC64B\uC64C\uBDDA\uC64D\uDCB9\uC64E\uC64F\uC650"+
- "\uD8C2\uC651\uDCB7\uD3F3\uC652\uC9D6\uDCBA\uDCB6"+
- "\uC653\uDCBB\uC3A2\uC654\uC655\uC656\uC657\uDCBC"+
- "\uDCC5\uDCBD\uC658\uC659\uCEDF\uD6A5\uC65A\uDCCF"+
- "\uC65B\uDCCD\uC65C\uC65D\uDCD2\uBDE6\uC2AB\uC65E"+
- "\uDCB8\uDCCB\uDCCE\uDCBE\uB7D2\uB0C5\uDCC7\uD0BE"+
- "\uDCC1\uBBA8\uC65F\uB7BC\uDCCC\uC660\uC661\uDCC6"+
- "\uDCBF\uC7DB\uC662\uC663\uC664\uD1BF\uDCC0\uC665"+
- "\uC666\uDCCA\uC667\uC668\uDCD0\uC669\uC66A\uCEAD"+
- "\uDCC2\uC66B\uDCC3\uDCC8\uDCC9\uB2D4\uDCD1\uCBD5"+
- "\uC66C\uD4B7\uDCDB\uDCDF\uCCA6\uDCE6\uC66D\uC3E7"+
- "\uDCDC\uC66E\uC66F\uBFC1\uDCD9\uC670\uB0FA\uB9B6"+
- "\uDCE5\uDCD3\uC671\uDCC4\uDCD6\uC8F4\uBFE0\uC672"+
- "\uC673\uC674\uC675\uC9BB\uC676\uC677\uC678\uB1BD"+
- "\uC679\uD3A2\uC67A\uC67B\uDCDA\uC67C\uC67D\uDCD5"+
- "\uC67E\uC6BB\uC680\uDCDE\uC681\uC682\uC683\uC684"+
- "\uC685\uD7C2\uC3AF\uB7B6\uC7D1\uC3A9\uDCE2\uDCD8"+
- "\uDCEB\uDCD4\uC686\uC687\uDCDD\uC688\uBEA5\uDCD7"+
- "\uC689\uDCE0\uC68A\uC68B\uDCE3\uDCE4\uC68C\uDCF8"+
- "\uC68D\uC68E\uDCE1\uDDA2\uDCE7\uC68F\uC690\uC691"+
- "\uC692\uC693\uC694\uC695\uC696\uC697\uC698\uBCEB"+
- "\uB4C4\uC699\uC69A\uC3A3\uB2E7\uDCFA\uC69B\uDCF2"+
- "\uC69C\uDCEF\uC69D\uDCFC\uDCEE\uD2F0\uB2E8\uC69E"+
- "\uC8D7\uC8E3\uDCFB\uC69F\uDCED\uC6A0\uC740\uC741"+
- "\uDCF7\uC742\uC743\uDCF5\uC744\uC745\uBEA3\uDCF4"+
- "\uC746\uB2DD\uC747\uC748\uC749\uC74A\uC74B\uDCF3"+
- "\uBCF6\uDCE8\uBBC4\uC74C\uC0F3\uC74D\uC74E\uC74F"+
- "\uC750\uC751\uBCD4\uDCE9\uDCEA\uC752\uDCF1\uDCF6"+
- "\uDCF9\uB5B4\uC753\uC8D9\uBBE7\uDCFE\uDCFD\uD3AB"+
- "\uDDA1\uDDA3\uDDA5\uD2F1\uDDA4\uDDA6\uDDA7\uD2A9"+
- "\uC754\uC755\uC756\uC757\uC758\uC759\uC75A\uBAC9"+
- "\uDDA9\uC75B\uC75C\uDDB6\uDDB1\uDDB4\uC75D\uC75E"+
- "\uC75F\uC760\uC761\uC762\uC763\uDDB0\uC6CE\uC764"+
- "\uC765\uC0F2\uC766\uC767\uC768\uC769\uC9AF\uC76A"+
- "\uC76B\uC76C\uDCEC\uDDAE\uC76D\uC76E\uC76F\uC770"+
- "\uDDB7\uC771\uC772\uDCF0\uDDAF\uC773\uDDB8\uC774"+
- "\uDDAC\uC775\uC776\uC777\uC778\uC779\uC77A\uC77B"+
- "\uDDB9\uDDB3\uDDAD\uC4AA\uC77C\uC77D\uC77E\uC780"+
- "\uDDA8\uC0B3\uC1AB\uDDAA\uDDAB\uC781\uDDB2\uBBF1"+
- "\uDDB5\uD3A8\uDDBA\uC782\uDDBB\uC3A7\uC783\uC784"+
- "\uDDD2\uDDBC\uC785\uC786\uC787\uDDD1\uC788\uB9BD"+
- "\uC789\uC78A\uBED5\uC78B\uBEFA\uC78C\uC78D\uBACA"+
- "\uC78E\uC78F\uC790\uC791\uDDCA\uC792\uDDC5\uC793"+
- "\uDDBF\uC794\uC795\uC796\uB2CB\uDDC3\uC797\uDDCB"+
- "\uB2A4\uDDD5\uC798\uC799\uC79A\uDDBE\uC79B\uC79C"+
- "\uC79D\uC6D0\uDDD0\uC79E\uC79F\uC7A0\uC840\uC841"+
- "\uDDD4\uC1E2\uB7C6\uC842\uC843\uC844\uC845\uC846"+
- "\uDDCE\uDDCF\uC847\uC848\uC849\uDDC4\uC84A\uC84B"+
- "\uC84C\uDDBD\uC84D\uDDCD\uCCD1\uC84E\uDDC9\uC84F"+
- "\uC850\uC851\uC852\uDDC2\uC3C8\uC6BC\uCEAE\uDDCC"+
- "\uC853\uDDC8\uC854\uC855\uC856\uC857\uC858\uC859"+
- "\uDDC1\uC85A\uC85B\uC85C\uDDC6\uC2DC\uC85D\uC85E"+
- "\uC85F\uC860\uC861\uC862\uD3A9\uD3AA\uDDD3\uCFF4"+
- "\uC8F8\uC863\uC864\uC865\uC866\uC867\uC868\uC869"+
- "\uC86A\uDDE6\uC86B\uC86C\uC86D\uC86E\uC86F\uC870"+
- "\uDDC7\uC871\uC872\uC873\uDDE0\uC2E4\uC874\uC875"+
- "\uC876\uC877\uC878\uC879\uC87A\uC87B\uDDE1\uC87C"+
- "\uC87D\uC87E\uC880\uC881\uC882\uC883\uC884\uC885"+
- "\uC886\uDDD7\uC887\uC888\uC889\uC88A\uC88B\uD6F8"+
- "\uC88C\uDDD9\uDDD8\uB8F0\uDDD6\uC88D\uC88E\uC88F"+
- "\uC890\uC6CF\uC891\uB6AD\uC892\uC893\uC894\uC895"+
- "\uC896\uDDE2\uC897\uBAF9\uD4E1\uDDE7\uC898\uC899"+
- "\uC89A\uB4D0\uC89B\uDDDA\uC89C\uBFFB\uDDE3\uC89D"+
- "\uDDDF\uC89E\uDDDD\uC89F\uC8A0\uC940\uC941\uC942"+
- "\uC943\uC944\uB5D9\uC945\uC946\uC947\uC948\uDDDB"+
- "\uDDDC\uDDDE\uC949\uBDAF\uDDE4\uC94A\uDDE5\uC94B"+
- "\uC94C\uC94D\uC94E\uC94F\uC950\uC951\uC952\uDDF5"+
- "\uC953\uC3C9\uC954\uC955\uCBE2\uC956\uC957\uC958"+
- "\uC959\uDDF2\uC95A\uC95B\uC95C\uC95D\uC95E\uC95F"+
- "\uC960\uC961\uC962\uC963\uC964\uC965\uC966\uD8E1"+
- "\uC967\uC968\uC6D1\uC969\uDDF4\uC96A\uC96B\uC96C"+
- "\uD5F4\uDDF3\uDDF0\uC96D\uC96E\uDDEC\uC96F\uDDEF"+
- "\uC970\uDDE8\uC971\uC972\uD0EE\uC973\uC974\uC975"+
- "\uC976\uC8D8\uDDEE\uC977\uC978\uDDE9\uC979\uC97A"+
- "\uDDEA\uCBF2\uC97B\uDDED\uC97C\uC97D\uB1CD\uC97E"+
- "\uC980\uC981\uC982\uC983\uC984\uC0B6\uC985\uBCBB"+
- "\uDDF1\uC986\uC987\uDDF7\uC988\uDDF6\uDDEB\uC989"+
- "\uC98A\uC98B\uC98C\uC98D\uC5EE\uC98E\uC98F\uC990"+
- "\uDDFB\uC991\uC992\uC993\uC994\uC995\uC996\uC997"+
- "\uC998\uC999\uC99A\uC99B\uDEA4\uC99C\uC99D\uDEA3"+
- "\uC99E\uC99F\uC9A0\uCA40\uCA41\uCA42\uCA43\uCA44"+
- "\uCA45\uCA46\uCA47\uCA48\uDDF8\uCA49\uCA4A\uCA4B"+
- "\uCA4C\uC3EF\uCA4D\uC2FB\uCA4E\uCA4F\uCA50\uD5E1"+
- "\uCA51\uCA52\uCEB5\uCA53\uCA54\uCA55\uCA56\uDDFD"+
- "\uCA57\uB2CC\uCA58\uCA59\uCA5A\uCA5B\uCA5C\uCA5D"+
- "\uCA5E\uCA5F\uCA60\uC4E8\uCADF\uCA61\uCA62\uCA63"+
- "\uCA64\uCA65\uCA66\uCA67\uCA68\uCA69\uCA6A\uC7BE"+
- "\uDDFA\uDDFC\uDDFE\uDEA2\uB0AA\uB1CE\uCA6B\uCA6C"+
- "\uCA6D\uCA6E\uCA6F\uDEAC\uCA70\uCA71\uCA72\uCA73"+
- "\uDEA6\uBDB6\uC8EF\uCA74\uCA75\uCA76\uCA77\uCA78"+
- "\uCA79\uCA7A\uCA7B\uCA7C\uCA7D\uCA7E\uDEA1\uCA80"+
- "\uCA81\uDEA5\uCA82\uCA83\uCA84\uCA85\uDEA9\uCA86"+
- "\uCA87\uCA88\uCA89\uCA8A\uDEA8\uCA8B\uCA8C\uCA8D"+
- "\uDEA7\uCA8E\uCA8F\uCA90\uCA91\uCA92\uCA93\uCA94"+
- "\uCA95\uCA96\uDEAD\uCA97\uD4CC\uCA98\uCA99\uCA9A"+
- "\uCA9B\uDEB3\uDEAA\uDEAE\uCA9C\uCA9D\uC0D9\uCA9E"+
- "\uCA9F\uCAA0\uCB40\uCB41\uB1A1\uDEB6\uCB42\uDEB1"+
- "\uCB43\uCB44\uCB45\uCB46\uCB47\uCB48\uCB49\uDEB2"+
- "\uCB4A\uCB4B\uCB4C\uCB4D\uCB4E\uCB4F\uCB50\uCB51"+
- "\uCB52\uCB53\uCB54\uD1A6\uDEB5\uCB55\uCB56\uCB57"+
- "\uCB58\uCB59\uCB5A\uCB5B\uDEAF\uCB5C\uCB5D\uCB5E"+
- "\uDEB0\uCB5F\uD0BD\uCB60\uCB61\uCB62\uDEB4\uCAED"+
- "\uDEB9\uCB63\uCB64\uCB65\uCB66\uCB67\uCB68\uDEB8"+
- "\uCB69\uDEB7\uCB6A\uCB6B\uCB6C\uCB6D\uCB6E\uCB6F"+
- "\uCB70\uDEBB\uCB71\uCB72\uCB73\uCB74\uCB75\uCB76"+
- "\uCB77\uBDE5\uCB78\uCB79\uCB7A\uCB7B\uCB7C\uB2D8"+
- "\uC3EA\uCB7D\uCB7E\uDEBA\uCB80\uC5BA\uCB81\uCB82"+
- "\uCB83\uCB84\uCB85\uCB86\uDEBC\uCB87\uCB88\uCB89"+
- "\uCB8A\uCB8B\uCB8C\uCB8D\uCCD9\uCB8E\uCB8F\uCB90"+
- "\uCB91\uB7AA\uCB92\uCB93\uCB94\uCB95\uCB96\uCB97"+
- "\uCB98\uCB99\uCB9A\uCB9B\uCB9C\uCB9D\uCB9E\uCB9F"+
- "\uCBA0\uCC40\uCC41\uD4E5\uCC42\uCC43\uCC44\uDEBD"+
- "\uCC45\uCC46\uCC47\uCC48\uCC49\uDEBF\uCC4A\uCC4B"+
- "\uCC4C\uCC4D\uCC4E\uCC4F\uCC50\uCC51\uCC52\uCC53"+
- "\uCC54\uC4A2\uCC55\uCC56\uCC57\uCC58\uDEC1\uCC59"+
- "\uCC5A\uCC5B\uCC5C\uCC5D\uCC5E\uCC5F\uCC60\uCC61"+
- "\uCC62\uCC63\uCC64\uCC65\uCC66\uCC67\uCC68\uDEBE"+
- "\uCC69\uDEC0\uCC6A\uCC6B\uCC6C\uCC6D\uCC6E\uCC6F"+
- "\uCC70\uCC71\uCC72\uCC73\uCC74\uCC75\uCC76\uCC77"+
- "\uD5BA\uCC78\uCC79\uCC7A\uDEC2\uCC7B\uCC7C\uCC7D"+
- "\uCC7E\uCC80\uCC81\uCC82\uCC83\uCC84\uCC85\uCC86"+
- "\uCC87\uCC88\uCC89\uCC8A\uCC8B\uF2AE\uBBA2\uC2B2"+
- "\uC5B0\uC2C7\uCC8C\uCC8D\uF2AF\uCC8E\uCC8F\uCC90"+
- "\uCC91\uCC92\uD0E9\uCC93\uCC94\uCC95\uD3DD\uCC96"+
- "\uCC97\uCC98\uEBBD\uCC99\uCC9A\uCC9B\uCC9C\uCC9D"+
- "\uCC9E\uCC9F\uCCA0\uB3E6\uF2B0\uCD40\uF2B1\uCD41"+
- "\uCD42\uCAAD\uCD43\uCD44\uCD45\uCD46\uCD47\uCD48"+
- "\uCD49\uBAE7\uF2B3\uF2B5\uF2B4\uCBE4\uCFBA\uF2B2"+
- "\uCAB4\uD2CF\uC2EC\uCD4A\uCD4B\uCD4C\uCD4D\uCD4E"+
- "\uCD4F\uCD50\uCEC3\uF2B8\uB0F6\uF2B7\uCD51\uCD52"+
- "\uCD53\uCD54\uCD55\uF2BE\uCD56\uB2CF\uCD57\uCD58"+
- "\uCD59\uCD5A\uCD5B\uCD5C\uD1C1\uF2BA\uCD5D\uCD5E"+
- "\uCD5F\uCD60\uCD61\uF2BC\uD4E9\uCD62\uCD63\uF2BB"+
- "\uF2B6\uF2BF\uF2BD\uCD64\uF2B9\uCD65\uCD66\uF2C7"+
- "\uF2C4\uF2C6\uCD67\uCD68\uF2CA\uF2C2\uF2C0\uCD69"+
- "\uCD6A\uCD6B\uF2C5\uCD6C\uCD6D\uCD6E\uCD6F\uCD70"+
- "\uD6FB\uCD71\uCD72\uCD73\uF2C1\uCD74\uC7F9\uC9DF"+
- "\uCD75\uF2C8\uB9C6\uB5B0\uCD76\uCD77\uF2C3\uF2C9"+
- "\uF2D0\uF2D6\uCD78\uCD79\uBBD7\uCD7A\uCD7B\uCD7C"+
- "\uF2D5\uCDDC\uCD7D\uD6EB\uCD7E\uCD80\uF2D2\uF2D4"+
- "\uCD81\uCD82\uCD83\uCD84\uB8F2\uCD85\uCD86\uCD87"+
- "\uCD88\uF2CB\uCD89\uCD8A\uCD8B\uF2CE\uC2F9\uCD8C"+
- "\uD5DD\uF2CC\uF2CD\uF2CF\uF2D3\uCD8D\uCD8E\uCD8F"+
- "\uF2D9\uD3BC\uCD90\uCD91\uCD92\uCD93\uB6EA\uCD94"+
- "\uCAF1\uCD95\uB7E4\uF2D7\uCD96\uCD97\uCD98\uF2D8"+
- "\uF2DA\uF2DD\uF2DB\uCD99\uCD9A\uF2DC\uCD9B\uCD9C"+
- "\uCD9D\uCD9E\uD1D1\uF2D1\uCD9F\uCDC9\uCDA0\uCECF"+
- "\uD6A9\uCE40\uF2E3\uCE41\uC3DB\uCE42\uF2E0\uCE43"+
- "\uCE44\uC0AF\uF2EC\uF2DE\uCE45\uF2E1\uCE46\uCE47"+
- "\uCE48\uF2E8\uCE49\uCE4A\uCE4B\uCE4C\uF2E2\uCE4D"+
- "\uCE4E\uF2E7\uCE4F\uCE50\uF2E6\uCE51\uCE52\uF2E9"+
- "\uCE53\uCE54\uCE55\uF2DF\uCE56\uCE57\uF2E4\uF2EA"+
- "\uCE58\uCE59\uCE5A\uCE5B\uCE5C\uCE5D\uCE5E\uD3AC"+
- "\uF2E5\uB2F5\uCE5F\uCE60\uF2F2\uCE61\uD0AB\uCE62"+
- "\uCE63\uCE64\uCE65\uF2F5\uCE66\uCE67\uCE68\uBBC8"+
- "\uCE69\uF2F9\uCE6A\uCE6B\uCE6C\uCE6D\uCE6E\uCE6F"+
- "\uF2F0\uCE70\uCE71\uF2F6\uF2F8\uF2FA\uCE72\uCE73"+
- "\uCE74\uCE75\uCE76\uCE77\uCE78\uCE79\uF2F3\uCE7A"+
- "\uF2F1\uCE7B\uCE7C\uCE7D\uBAFB\uCE7E\uB5FB\uCE80"+
- "\uCE81\uCE82\uCE83\uF2EF\uF2F7\uF2ED\uF2EE\uCE84"+
- "\uCE85\uCE86\uF2EB\uF3A6\uCE87\uF3A3\uCE88\uCE89"+
- "\uF3A2\uCE8A\uCE8B\uF2F4\uCE8C\uC8DA\uCE8D\uCE8E"+
- "\uCE8F\uCE90\uCE91\uF2FB\uCE92\uCE93\uCE94\uF3A5"+
- "\uCE95\uCE96\uCE97\uCE98\uCE99\uCE9A\uCE9B\uC3F8"+
- "\uCE9C\uCE9D\uCE9E\uCE9F\uCEA0\uCF40\uCF41\uCF42"+
- "\uF2FD\uCF43\uCF44\uF3A7\uF3A9\uF3A4\uCF45\uF2FC"+
- "\uCF46\uCF47\uCF48\uF3AB\uCF49\uF3AA\uCF4A\uCF4B"+
- "\uCF4C\uCF4D\uC2DD\uCF4E\uCF4F\uF3AE\uCF50\uCF51"+
- "\uF3B0\uCF52\uCF53\uCF54\uCF55\uCF56\uF3A1\uCF57"+
- "\uCF58\uCF59\uF3B1\uF3AC\uCF5A\uCF5B\uCF5C\uCF5D"+
- "\uCF5E\uF3AF\uF2FE\uF3AD\uCF5F\uCF60\uCF61\uCF62"+
- "\uCF63\uCF64\uCF65\uF3B2\uCF66\uCF67\uCF68\uCF69"+
- "\uF3B4\uCF6A\uCF6B\uCF6C\uCF6D\uF3A8\uCF6E\uCF6F"+
- "\uCF70\uCF71\uF3B3\uCF72\uCF73\uCF74\uF3B5\uCF75"+
- "\uCF76\uCF77\uCF78\uCF79\uCF7A\uCF7B\uCF7C\uCF7D"+
- "\uCF7E\uD0B7\uCF80\uCF81\uCF82\uCF83\uF3B8\uCF84"+
- "\uCF85\uCF86\uCF87\uD9F9\uCF88\uCF89\uCF8A\uCF8B"+
- "\uCF8C\uCF8D\uF3B9\uCF8E\uCF8F\uCF90\uCF91\uCF92"+
- "\uCF93\uCF94\uCF95\uF3B7\uCF96\uC8E4\uF3B6\uCF97"+
- "\uCF98\uCF99\uCF9A\uF3BA\uCF9B\uCF9C\uCF9D\uCF9E"+
- "\uCF9F\uF3BB\uB4C0\uCFA0\uD040\uD041\uD042\uD043"+
- "\uD044\uD045\uD046\uD047\uD048\uD049\uD04A\uD04B"+
- "\uD04C\uD04D\uEEC3\uD04E\uD04F\uD050\uD051\uD052"+
- "\uD053\uF3BC\uD054\uD055\uF3BD\uD056\uD057\uD058"+
- "\uD1AA\uD059\uD05A\uD05B\uF4AC\uD0C6\uD05C\uD05D"+
- "\uD05E\uD05F\uD060\uD061\uD0D0\uD1DC\uD062\uD063"+
- "\uD064\uD065\uD066\uD067\uCFCE\uD068\uD069\uBDD6"+
- "\uD06A\uD1C3\uD06B\uD06C\uD06D\uD06E\uD06F\uD070"+
- "\uD071\uBAE2\uE1E9\uD2C2\uF1C2\uB2B9\uD072\uD073"+
- "\uB1ED\uF1C3\uD074\uC9C0\uB3C4\uD075\uD9F2\uD076"+
- "\uCBA5\uD077\uF1C4\uD078\uD079\uD07A\uD07B\uD6D4"+
- "\uD07C\uD07D\uD07E\uD080\uD081\uF1C5\uF4C0\uF1C6"+
- "\uD082\uD4AC\uF1C7\uD083\uB0C0\uF4C1\uD084\uD085"+
- "\uF4C2\uD086\uD087\uB4FC\uD088\uC5DB\uD089\uD08A"+
- "\uD08B\uD08C\uCCBB\uD08D\uD08E\uD08F\uD0E4\uD090"+
- "\uD091\uD092\uD093\uD094\uCDE0\uD095\uD096\uD097"+
- "\uD098\uD099\uF1C8\uD09A\uD9F3\uD09B\uD09C\uD09D"+
- "\uD09E\uD09F\uD0A0\uB1BB\uD140\uCFAE\uD141\uD142"+
- "\uD143\uB8A4\uD144\uD145\uD146\uD147\uD148\uF1CA"+
- "\uD149\uD14A\uD14B\uD14C\uF1CB\uD14D\uD14E\uD14F"+
- "\uD150\uB2C3\uC1D1\uD151\uD152\uD7B0\uF1C9\uD153"+
- "\uD154\uF1CC\uD155\uD156\uD157\uD158\uF1CE\uD159"+
- "\uD15A\uD15B\uD9F6\uD15C\uD2E1\uD4A3\uD15D\uD15E"+
- "\uF4C3\uC8B9\uD15F\uD160\uD161\uD162\uD163\uF4C4"+
- "\uD164\uD165\uF1CD\uF1CF\uBFE3\uF1D0\uD166\uD167"+
- "\uF1D4\uD168\uD169\uD16A\uD16B\uD16C\uD16D\uD16E"+
- "\uF1D6\uF1D1\uD16F\uC9D1\uC5E1\uD170\uD171\uD172"+
- "\uC2E3\uB9FC\uD173\uD174\uF1D3\uD175\uF1D5\uD176"+
- "\uD177\uD178\uB9D3\uD179\uD17A\uD17B\uD17C\uD17D"+
- "\uD17E\uD180\uF1DB\uD181\uD182\uD183\uD184\uD185"+
- "\uBAD6\uD186\uB0FD\uF1D9\uD187\uD188\uD189\uD18A"+
- "\uD18B\uF1D8\uF1D2\uF1DA\uD18C\uD18D\uD18E\uD18F"+
- "\uD190\uF1D7\uD191\uD192\uD193\uC8EC\uD194\uD195"+
- "\uD196\uD197\uCDCA\uF1DD\uD198\uD199\uD19A\uD19B"+
- "\uE5BD\uD19C\uD19D\uD19E\uF1DC\uD19F\uF1DE\uD1A0"+
- "\uD240\uD241\uD242\uD243\uD244\uD245\uD246\uD247"+
- "\uD248\uF1DF\uD249\uD24A\uCFE5\uD24B\uD24C\uD24D"+
- "\uD24E\uD24F\uD250\uD251\uD252\uD253\uD254\uD255"+
- "\uD256\uD257\uD258\uD259\uD25A\uD25B\uD25C\uD25D"+
- "\uD25E\uD25F\uD260\uD261\uD262\uD263\uF4C5\uBDF3"+
- "\uD264\uD265\uD266\uD267\uD268\uD269\uF1E0\uD26A"+
- "\uD26B\uD26C\uD26D\uD26E\uD26F\uD270\uD271\uD272"+
- "\uD273\uD274\uD275\uD276\uD277\uD278\uD279\uD27A"+
- "\uD27B\uD27C\uD27D\uF1E1\uD27E\uD280\uD281\uCEF7"+
- "\uD282\uD2AA\uD283\uF1FB\uD284\uD285\uB8B2\uD286"+
- "\uD287\uD288\uD289\uD28A\uD28B\uD28C\uD28D\uD28E"+
- "\uD28F\uD290\uD291\uD292\uD293\uD294\uD295\uD296"+
- "\uD297\uD298\uD299\uD29A\uD29B\uD29C\uD29D\uD29E"+
- "\uD29F\uD2A0\uD340\uD341\uD342\uD343\uD344\uD345"+
- "\uD346\uD347\uD348\uD349\uD34A\uD34B\uD34C\uD34D"+
- "\uD34E\uD34F\uD350\uD351\uD352\uD353\uD354\uD355"+
- "\uD356\uD357\uD358\uD359\uD35A\uD35B\uD35C\uD35D"+
- "\uD35E\uBCFB\uB9DB\uD35F\uB9E6\uC3D9\uCAD3\uEAE8"+
- "\uC0C0\uBEF5\uEAE9\uEAEA\uEAEB\uD360\uEAEC\uEAED"+
- "\uEAEE\uEAEF\uBDC7\uD361\uD362\uD363\uF5FB\uD364"+
- "\uD365\uD366\uF5FD\uD367\uF5FE\uD368\uF5FC\uD369"+
- "\uD36A\uD36B\uD36C\uBDE2\uD36D\uF6A1\uB4A5\uD36E"+
- "\uD36F\uD370\uD371\uF6A2\uD372\uD373\uD374\uF6A3"+
- "\uD375\uD376\uD377\uECB2\uD378\uD379\uD37A\uD37B"+
- "\uD37C\uD37D\uD37E\uD380\uD381\uD382\uD383\uD384"+
- "\uD1D4\uD385\uD386\uD387\uD388\uD389\uD38A\uD9EA"+
- "\uD38B\uD38C\uD38D\uD38E\uD38F\uD390\uD391\uD392"+
- "\uD393\uD394\uD395\uD396\uD397\uD398\uD399\uD39A"+
- "\uD39B\uD39C\uD39D\uD39E\uD39F\uD3A0\uD440\uD441"+
- "\uD442\uD443\uD444\uD445\uD446\uD447\uD448\uD449"+
- "\uD44A\uD44B\uD44C\uD44D\uD44E\uD44F\uD450\uD451"+
- "\uD452\uD453\uD454\uD455\uD456\uD457\uD458\uD459"+
- "\uD45A\uD45B\uD45C\uD45D\uD45E\uD45F\uF6A4\uD460"+
- "\uD461\uD462\uD463\uD464\uD465\uD466\uD467\uD468"+
- "\uEEBA\uD469\uD46A\uD46B\uD46C\uD46D\uD46E\uD46F"+
- "\uD470\uD471\uD472\uD473\uD474\uD475\uD476\uD477"+
- "\uD478\uD479\uD47A\uD47B\uD47C\uD47D\uD47E\uD480"+
- "\uD481\uD482\uD483\uD484\uD485\uD486\uD487\uD488"+
- "\uD489\uD48A\uD48B\uD48C\uD48D\uD48E\uD48F\uD490"+
- "\uD491\uD492\uD493\uD494\uD495\uD496\uD497\uD498"+
- "\uD499\uD5B2\uD49A\uD49B\uD49C\uD49D\uD49E\uD49F"+
- "\uD4A0\uD540\uD541\uD542\uD543\uD544\uD545\uD546"+
- "\uD547\uD3FE\uCCDC\uD548\uD549\uD54A\uD54B\uD54C"+
- "\uD54D\uD54E\uD54F\uCAC4\uD550\uD551\uD552\uD553"+
- "\uD554\uD555\uD556\uD557\uD558\uD559\uD55A\uD55B"+
- "\uD55C\uD55D\uD55E\uD55F\uD560\uD561\uD562\uD563"+
- "\uD564\uD565\uD566\uD567\uD568\uD569\uD56A\uD56B"+
- "\uD56C\uD56D\uD56E\uD56F\uD570\uD571\uD572\uD573"+
- "\uD574\uD575\uD576\uD577\uD578\uD579\uD57A\uD57B"+
- "\uD57C\uD57D\uD57E\uD580\uD581\uD582\uD583\uD584"+
- "\uD585\uD586\uD587\uD588\uD589\uD58A\uD58B\uD58C"+
- "\uD58D\uD58E\uD58F\uD590\uD591\uD592\uD593\uD594"+
- "\uD595\uD596\uD597\uD598\uD599\uD59A\uD59B\uD59C"+
- "\uD59D\uD59E\uD59F\uD5A0\uD640\uD641\uD642\uD643"+
- "\uD644\uD645\uD646\uD647\uD648\uD649\uD64A\uD64B"+
- "\uD64C\uD64D\uD64E\uD64F\uD650\uD651\uD652\uD653"+
- "\uD654\uD655\uD656\uD657\uD658\uD659\uD65A\uD65B"+
- "\uD65C\uD65D\uD65E\uD65F\uD660\uD661\uD662\uE5C0"+
- "\uD663\uD664\uD665\uD666\uD667\uD668\uD669\uD66A"+
- "\uD66B\uD66C\uD66D\uD66E\uD66F\uD670\uD671\uD672"+
- "\uD673\uD674\uD675\uD676\uD677\uD678\uD679\uD67A"+
- "\uD67B\uD67C\uD67D\uD67E\uD680\uD681\uF6A5\uD682"+
- "\uD683\uD684\uD685\uD686\uD687\uD688\uD689\uD68A"+
- "\uD68B\uD68C\uD68D\uD68E\uD68F\uD690\uD691\uD692"+
- "\uD693\uD694\uD695\uD696\uD697\uD698\uD699\uD69A"+
- "\uD69B\uD69C\uD69D\uD69E\uD69F\uD6A0\uD740\uD741"+
- "\uD742\uD743\uD744\uD745\uD746\uD747\uD748\uD749"+
- "\uD74A\uD74B\uD74C\uD74D\uD74E\uD74F\uD750\uD751"+
- "\uD752\uD753\uD754\uD755\uD756\uD757\uD758\uD759"+
- "\uD75A\uD75B\uD75C\uD75D\uD75E\uD75F\uBEAF\uD760"+
- "\uD761\uD762\uD763\uD764\uC6A9\uD765\uD766\uD767"+
- "\uD768\uD769\uD76A\uD76B\uD76C\uD76D\uD76E\uD76F"+
- "\uD770\uD771\uD772\uD773\uD774\uD775\uD776\uD777"+
- "\uD778\uD779\uD77A\uD77B\uD77C\uD77D\uD77E\uD780"+
- "\uD781\uD782\uD783\uD784\uD785\uD786\uD787\uD788"+
- "\uD789\uD78A\uD78B\uD78C\uD78D\uD78E\uD78F\uD790"+
- "\uD791\uD792\uD793\uD794\uD795\uD796\uD797\uD798"+
- "\uDAA5\uBCC6\uB6A9\uB8BC\uC8CF\uBCA5\uDAA6\uDAA7"+
- "\uCCD6\uC8C3\uDAA8\uC6FD\uD799\uD1B5\uD2E9\uD1B6"+
- "\uBCC7\uD79A\uBDB2\uBBE4\uDAA9\uDAAA\uD1C8\uDAAB"+
- "\uD0ED\uB6EF\uC2DB\uD79B\uCBCF\uB7ED\uC9E8\uB7C3"+
- "\uBEF7\uD6A4\uDAAC\uDAAD\uC6C0\uD7E7\uCAB6\uD79C"+
- "\uD5A9\uCBDF\uD5EF\uDAAE\uD6DF\uB4CA\uDAB0\uDAAF"+
- "\uD79D\uD2EB\uDAB1\uDAB2\uDAB3\uCAD4\uDAB4\uCAAB"+
- "\uDAB5\uDAB6\uB3CF\uD6EF\uDAB7\uBBB0\uB5AE\uDAB8"+
- "\uDAB9\uB9EE\uD1AF\uD2E8\uDABA\uB8C3\uCFEA\uB2EF"+
- "\uDABB\uDABC\uD79E\uBDEB\uCEDC\uD3EF\uDABD\uCEF3"+
- "\uDABE\uD3D5\uBBE5\uDABF\uCBB5\uCBD0\uDAC0\uC7EB"+
- "\uD6EE\uDAC1\uC5B5\uB6C1\uDAC2\uB7CC\uBFCE\uDAC3"+
- "\uDAC4\uCBAD\uDAC5\uB5F7\uDAC6\uC1C2\uD7BB\uDAC7"+
- "\uCCB8\uD79F\uD2EA\uC4B1\uDAC8\uB5FD\uBBD1\uDAC9"+
- "\uD0B3\uDACA\uDACB\uCEBD\uDACC\uDACD\uDACE\uB2F7"+
- "\uDAD1\uDACF\uD1E8\uDAD0\uC3D5\uDAD2\uD7A0\uDAD3"+
- "\uDAD4\uDAD5\uD0BB\uD2A5\uB0F9\uDAD6\uC7AB\uDAD7"+
- "\uBDF7\uC3A1\uDAD8\uDAD9\uC3FD\uCCB7\uDADA\uDADB"+
- "\uC0BE\uC6D7\uDADC\uDADD\uC7B4\uDADE\uDADF\uB9C8"+
- "\uD840\uD841\uD842\uD843\uD844\uD845\uD846\uD847"+
- "\uD848\uBBED\uD849\uD84A\uD84B\uD84C\uB6B9\uF4F8"+
- "\uD84D\uF4F9\uD84E\uD84F\uCDE3\uD850\uD851\uD852"+
- "\uD853\uD854\uD855\uD856\uD857\uF5B9\uD858\uD859"+
- "\uD85A\uD85B\uEBE0\uD85C\uD85D\uD85E\uD85F\uD860"+
- "\uD861\uCFF3\uBBBF\uD862\uD863\uD864\uD865\uD866"+
- "\uD867\uD868\uBAC0\uD4A5\uD869\uD86A\uD86B\uD86C"+
- "\uD86D\uD86E\uD86F\uE1D9\uD870\uD871\uD872\uD873"+
- "\uF5F4\uB1AA\uB2F2\uD874\uD875\uD876\uD877\uD878"+
- "\uD879\uD87A\uF5F5\uD87B\uD87C\uF5F7\uD87D\uD87E"+
- "\uD880\uBAD1\uF5F6\uD881\uC3B2\uD882\uD883\uD884"+
- "\uD885\uD886\uD887\uD888\uF5F9\uD889\uD88A\uD88B"+
- "\uF5F8\uD88C\uD88D\uD88E\uD88F\uD890\uD891\uD892"+
- "\uD893\uD894\uD895\uD896\uD897\uD898\uD899\uD89A"+
- "\uD89B\uD89C\uD89D\uD89E\uD89F\uD8A0\uD940\uD941"+
- "\uD942\uD943\uD944\uD945\uD946\uD947\uD948\uD949"+
- "\uD94A\uD94B\uD94C\uD94D\uD94E\uD94F\uD950\uD951"+
- "\uD952\uD953\uD954\uD955\uD956\uD957\uD958\uD959"+
- "\uD95A\uD95B\uD95C\uD95D\uD95E\uD95F\uD960\uD961"+
- "\uD962\uD963\uD964\uD965\uD966\uD967\uD968\uD969"+
- "\uD96A\uD96B\uD96C\uD96D\uD96E\uD96F\uD970\uD971"+
- "\uD972\uD973\uD974\uD975\uD976\uD977\uD978\uD979"+
- "\uD97A\uD97B\uD97C\uD97D\uD97E\uD980\uD981\uD982"+
- "\uD983\uD984\uD985\uD986\uD987\uD988\uD989\uD98A"+
- "\uD98B\uD98C\uD98D\uD98E\uD98F\uD990\uD991\uD992"+
- "\uD993\uD994\uD995\uD996\uD997\uD998\uD999\uD99A"+
- "\uD99B\uD99C\uD99D\uD99E\uD99F\uD9A0\uDA40\uDA41"+
- "\uDA42\uDA43\uDA44\uDA45\uDA46\uDA47\uDA48\uDA49"+
- "\uDA4A\uDA4B\uDA4C\uDA4D\uDA4E\uB1B4\uD5EA\uB8BA"+
- "\uDA4F\uB9B1\uB2C6\uD4F0\uCFCD\uB0DC\uD5CB\uBBF5"+
- "\uD6CA\uB7B7\uCCB0\uC6B6\uB1E1\uB9BA\uD6FC\uB9E1"+
- "\uB7A1\uBCFA\uEADA\uEADB\uCCF9\uB9F3\uEADC\uB4FB"+
- "\uC3B3\uB7D1\uBAD8\uEADD\uD4F4\uEADE\uBCD6\uBBDF"+
- "\uEADF\uC1DE\uC2B8\uD4DF\uD7CA\uEAE0\uEAE1\uEAE4"+
- "\uEAE2\uEAE3\uC9DE\uB8B3\uB6C4\uEAE5\uCAEA\uC9CD"+
- "\uB4CD\uDA50\uDA51\uE2D9\uC5E2\uEAE6\uC0B5\uDA52"+
- "\uD7B8\uEAE7\uD7AC\uC8FC\uD8D3\uD8CD\uD4DE\uDA53"+
- "\uD4F9\uC9C4\uD3AE\uB8D3\uB3E0\uDA54\uC9E2\uF4F6"+
- "\uDA55\uDA56\uDA57\uBAD5\uDA58\uF4F7\uDA59\uDA5A"+
- "\uD7DF\uDA5B\uDA5C\uF4F1\uB8B0\uD5D4\uB8CF\uC6F0"+
- "\uDA5D\uDA5E\uDA5F\uDA60\uDA61\uDA62\uDA63\uDA64"+
- "\uDA65\uB3C3\uDA66\uDA67\uF4F2\uB3AC\uDA68\uDA69"+
- "\uDA6A\uDA6B\uD4BD\uC7F7\uDA6C\uDA6D\uDA6E\uDA6F"+
- "\uDA70\uF4F4\uDA71\uDA72\uF4F3\uDA73\uDA74\uDA75"+
- "\uDA76\uDA77\uDA78\uDA79\uDA7A\uDA7B\uDA7C\uCCCB"+
- "\uDA7D\uDA7E\uDA80\uC8A4\uDA81\uDA82\uDA83\uDA84"+
- "\uDA85\uDA86\uDA87\uDA88\uDA89\uDA8A\uDA8B\uDA8C"+
- "\uDA8D\uF4F5\uDA8E\uD7E3\uC5BF\uF5C0\uDA8F\uDA90"+
- "\uF5BB\uDA91\uF5C3\uDA92\uF5C2\uDA93\uD6BA\uF5C1"+
- "\uDA94\uDA95\uDA96\uD4BE\uF5C4\uDA97\uF5CC\uDA98"+
- "\uDA99\uDA9A\uDA9B\uB0CF\uB5F8\uDA9C\uF5C9\uF5CA"+
- "\uDA9D\uC5DC\uDA9E\uDA9F\uDAA0\uDB40\uF5C5\uF5C6"+
- "\uDB41\uDB42\uF5C7\uF5CB\uDB43\uBEE0\uF5C8\uB8FA"+
- "\uDB44\uDB45\uDB46\uF5D0\uF5D3\uDB47\uDB48\uDB49"+
- "\uBFE7\uDB4A\uB9F2\uF5BC\uF5CD\uDB4B\uDB4C\uC2B7"+
- "\uDB4D\uDB4E\uDB4F\uCCF8\uDB50\uBCF9\uDB51\uF5CE"+
- "\uF5CF\uF5D1\uB6E5\uF5D2\uDB52\uF5D5\uDB53\uDB54"+
- "\uDB55\uDB56\uDB57\uDB58\uDB59\uF5BD\uDB5A\uDB5B"+
- "\uDB5C\uF5D4\uD3BB\uDB5D\uB3EC\uDB5E\uDB5F\uCCA4"+
- "\uDB60\uDB61\uDB62\uDB63\uF5D6\uDB64\uDB65\uDB66"+
- "\uDB67\uDB68\uDB69\uDB6A\uDB6B\uF5D7\uBEE1\uF5D8"+
- "\uDB6C\uDB6D\uCCDF\uF5DB\uDB6E\uDB6F\uDB70\uDB71"+
- "\uDB72\uB2C8\uD7D9\uDB73\uF5D9\uDB74\uF5DA\uF5DC"+
- "\uDB75\uF5E2\uDB76\uDB77\uDB78\uF5E0\uDB79\uDB7A"+
- "\uDB7B\uF5DF\uF5DD\uDB7C\uDB7D\uF5E1\uDB7E\uDB80"+
- "\uF5DE\uF5E4\uF5E5\uDB81\uCCE3\uDB82\uDB83\uE5BF"+
- "\uB5B8\uF5E3\uF5E8\uCCA3\uDB84\uDB85\uDB86\uDB87"+
- "\uDB88\uF5E6\uF5E7\uDB89\uDB8A\uDB8B\uDB8C\uDB8D"+
- "\uDB8E\uF5BE\uDB8F\uDB90\uDB91\uDB92\uDB93\uDB94"+
- "\uDB95\uDB96\uDB97\uDB98\uDB99\uDB9A\uB1C4\uDB9B"+
- "\uDB9C\uF5BF\uDB9D\uDB9E\uB5C5\uB2E4\uDB9F\uF5EC"+
- "\uF5E9\uDBA0\uB6D7\uDC40\uF5ED\uDC41\uF5EA\uDC42"+
- "\uDC43\uDC44\uDC45\uDC46\uF5EB\uDC47\uDC48\uB4DA"+
- "\uDC49\uD4EA\uDC4A\uDC4B\uDC4C\uF5EE\uDC4D\uB3F9"+
- "\uDC4E\uDC4F\uDC50\uDC51\uDC52\uDC53\uDC54\uF5EF"+
- "\uF5F1\uDC55\uDC56\uDC57\uF5F0\uDC58\uDC59\uDC5A"+
- "\uDC5B\uDC5C\uDC5D\uDC5E\uF5F2\uDC5F\uF5F3\uDC60"+
- "\uDC61\uDC62\uDC63\uDC64\uDC65\uDC66\uDC67\uDC68"+
- "\uDC69\uDC6A\uDC6B\uC9ED\uB9AA\uDC6C\uDC6D\uC7FB"+
- "\uDC6E\uDC6F\uB6E3\uDC70\uDC71\uDC72\uDC73\uDC74"+
- "\uDC75\uDC76\uCCC9\uDC77\uDC78\uDC79\uDC7A\uDC7B"+
- "\uDC7C\uDC7D\uDC7E\uDC80\uDC81\uDC82\uDC83\uDC84"+
- "\uDC85\uDC86\uDC87\uDC88\uDC89\uDC8A\uEAA6\uDC8B"+
- "\uDC8C\uDC8D\uDC8E\uDC8F\uDC90\uDC91\uDC92\uDC93"+
- "\uDC94\uDC95\uDC96\uDC97\uDC98\uDC99\uDC9A\uDC9B"+
- "\uDC9C\uDC9D\uDC9E\uDC9F\uDCA0\uDD40\uDD41\uDD42"+
- "\uDD43\uDD44\uDD45\uDD46\uDD47\uDD48\uDD49\uDD4A"+
- "\uDD4B\uDD4C\uDD4D\uDD4E\uDD4F\uDD50\uDD51\uDD52"+
- "\uDD53\uDD54\uDD55\uDD56\uDD57\uDD58\uDD59\uDD5A"+
- "\uDD5B\uDD5C\uDD5D\uDD5E\uDD5F\uDD60\uDD61\uDD62"+
- "\uDD63\uDD64\uDD65\uDD66\uDD67\uDD68\uDD69\uDD6A"+
- "\uDD6B\uDD6C\uDD6D\uDD6E\uDD6F\uDD70\uDD71\uDD72"+
- "\uDD73\uDD74\uDD75\uDD76\uDD77\uDD78\uDD79\uDD7A"+
- "\uDD7B\uDD7C\uDD7D\uDD7E\uDD80\uDD81\uDD82\uDD83"+
- "\uDD84\uDD85\uDD86\uDD87\uDD88\uDD89\uDD8A\uDD8B"+
- "\uDD8C\uDD8D\uDD8E\uDD8F\uDD90\uDD91\uDD92\uDD93"+
- "\uDD94\uDD95\uDD96\uDD97\uDD98\uDD99\uDD9A\uDD9B"+
- "\uDD9C\uDD9D\uDD9E\uDD9F\uDDA0\uDE40\uDE41\uDE42"+
- "\uDE43\uDE44\uDE45\uDE46\uDE47\uDE48\uDE49\uDE4A"+
- "\uDE4B\uDE4C\uDE4D\uDE4E\uDE4F\uDE50\uDE51\uDE52"+
- "\uDE53\uDE54\uDE55\uDE56\uDE57\uDE58\uDE59\uDE5A"+
- "\uDE5B\uDE5C\uDE5D\uDE5E\uDE5F\uDE60\uB3B5\uD4FE"+
- "\uB9EC\uD0F9\uDE61\uE9ED\uD7AA\uE9EE\uC2D6\uC8ED"+
- "\uBAE4\uE9EF\uE9F0\uE9F1\uD6E1\uE9F2\uE9F3\uE9F5"+
- "\uE9F4\uE9F6\uE9F7\uC7E1\uE9F8\uD4D8\uE9F9\uBDCE"+
- "\uDE62\uE9FA\uE9FB\uBDCF\uE9FC\uB8A8\uC1BE\uE9FD"+
- "\uB1B2\uBBD4\uB9F5\uE9FE\uDE63\uEAA1\uEAA2\uEAA3"+
- "\uB7F8\uBCAD\uDE64\uCAE4\uE0CE\uD4AF\uCFBD\uD5B7"+
- "\uEAA4\uD5DE\uEAA5\uD0C1\uB9BC\uDE65\uB4C7\uB1D9"+
- "\uDE66\uDE67\uDE68\uC0B1\uDE69\uDE6A\uDE6B\uDE6C"+
- "\uB1E6\uB1E7\uDE6D\uB1E8\uDE6E\uDE6F\uDE70\uDE71"+
- "\uB3BD\uC8E8\uDE72\uDE73\uDE74\uDE75\uE5C1\uDE76"+
- "\uDE77\uB1DF\uDE78\uDE79\uDE7A\uC1C9\uB4EF\uDE7B"+
- "\uDE7C\uC7A8\uD3D8\uDE7D\uC6F9\uD1B8\uDE7E\uB9FD"+
- "\uC2F5\uDE80\uDE81\uDE82\uDE83\uDE84\uD3AD\uDE85"+
- "\uD4CB\uBDFC\uDE86\uE5C2\uB7B5\uE5C3\uDE87\uDE88"+
- "\uBBB9\uD5E2\uDE89\uBDF8\uD4B6\uCEA5\uC1AC\uB3D9"+
- "\uDE8A\uDE8B\uCCF6\uDE8C\uE5C6\uE5C4\uE5C8\uDE8D"+
- "\uE5CA\uE5C7\uB5CF\uC6C8\uDE8E\uB5FC\uE5C5\uDE8F"+
- "\uCAF6\uDE90\uDE91\uE5C9\uDE92\uDE93\uDE94\uC3D4"+
- "\uB1C5\uBCA3\uDE95\uDE96\uDE97\uD7B7\uDE98\uDE99";
-
- private final static String innerEncoderIndex9=
- "\uCDCB\uCBCD\uCACA\uCCD3\uE5CC\uE5CB\uC4E6\uDE9A"+
- "\uDE9B\uD1A1\uD1B7\uE5CD\uDE9C\uE5D0\uDE9D\uCDB8"+
- "\uD6F0\uE5CF\uB5DD\uDE9E\uCDBE\uDE9F\uE5D1\uB6BA"+
- "\uDEA0\uDF40\uCDA8\uB9E4\uDF41\uCAC5\uB3D1\uCBD9"+
- "\uD4EC\uE5D2\uB7EA\uDF42\uDF43\uDF44\uE5CE\uDF45"+
- "\uDF46\uDF47\uDF48\uDF49\uDF4A\uE5D5\uB4FE\uE5D6"+
- "\uDF4B\uDF4C\uDF4D\uDF4E\uDF4F\uE5D3\uE5D4\uDF50"+
- "\uD2DD\uDF51\uDF52\uC2DF\uB1C6\uDF53\uD3E2\uDF54"+
- "\uDF55\uB6DD\uCBEC\uDF56\uE5D7\uDF57\uDF58\uD3F6"+
- "\uDF59\uDF5A\uDF5B\uDF5C\uDF5D\uB1E9\uDF5E\uB6F4"+
- "\uE5DA\uE5D8\uE5D9\uB5C0\uDF5F\uDF60\uDF61\uD2C5"+
- "\uE5DC\uDF62\uDF63\uE5DE\uDF64\uDF65\uDF66\uDF67"+
- "\uDF68\uDF69\uE5DD\uC7B2\uDF6A\uD2A3\uDF6B\uDF6C"+
- "\uE5DB\uDF6D\uDF6E\uDF6F\uDF70\uD4E2\uD5DA\uDF71"+
- "\uDF72\uDF73\uDF74\uDF75\uE5E0\uD7F1\uDF76\uDF77"+
- "\uDF78\uDF79\uDF7A\uDF7B\uDF7C\uE5E1\uDF7D\uB1DC"+
- "\uD1FB\uDF7E\uE5E2\uE5E4\uDF80\uDF81\uDF82\uDF83"+
- "\uE5E3\uDF84\uDF85\uE5E5\uDF86\uDF87\uDF88\uDF89"+
- "\uDF8A\uD2D8\uDF8B\uB5CB\uDF8C\uE7DF\uDF8D\uDAF5"+
- "\uDF8E\uDAF8\uDF8F\uDAF6\uDF90\uDAF7\uDF91\uDF92"+
- "\uDF93\uDAFA\uD0CF\uC4C7\uDF94\uDF95\uB0EE\uDF96"+
- "\uDF97\uDF98\uD0B0\uDF99\uDAF9\uDF9A\uD3CA\uBAAA"+
- "\uDBA2\uC7F1\uDF9B\uDAFC\uDAFB\uC9DB\uDAFD\uDF9C"+
- "\uDBA1\uD7DE\uDAFE\uC1DA\uDF9D\uDF9E\uDBA5\uDF9F"+
- "\uDFA0\uD3F4\uE040\uE041\uDBA7\uDBA4\uE042\uDBA8"+
- "\uE043\uE044\uBDBC\uE045\uE046\uE047\uC0C9\uDBA3"+
- "\uDBA6\uD6A3\uE048\uDBA9\uE049\uE04A\uE04B\uDBAD"+
- "\uE04C\uE04D\uE04E\uDBAE\uDBAC\uBAC2\uE04F\uE050"+
- "\uE051\uBFA4\uDBAB\uE052\uE053\uE054\uDBAA\uD4C7"+
- "\uB2BF\uE055\uE056\uDBAF\uE057\uB9F9\uE058\uDBB0"+
- "\uE059\uE05A\uE05B\uE05C\uB3BB\uE05D\uE05E\uE05F"+
- "\uB5A6\uE060\uE061\uE062\uE063\uB6BC\uDBB1\uE064"+
- "\uE065\uE066\uB6F5\uE067\uDBB2\uE068\uE069\uE06A"+
- "\uE06B\uE06C\uE06D\uE06E\uE06F\uE070\uE071\uE072"+
- "\uE073\uE074\uE075\uE076\uE077\uE078\uE079\uE07A"+
- "\uE07B\uB1C9\uE07C\uE07D\uE07E\uE080\uDBB4\uE081"+
- "\uE082\uE083\uDBB3\uDBB5\uE084\uE085\uE086\uE087"+
- "\uE088\uE089\uE08A\uE08B\uE08C\uE08D\uE08E\uDBB7"+
- "\uE08F\uDBB6\uE090\uE091\uE092\uE093\uE094\uE095"+
- "\uE096\uDBB8\uE097\uE098\uE099\uE09A\uE09B\uE09C"+
- "\uE09D\uE09E\uE09F\uDBB9\uE0A0\uE140\uDBBA\uE141"+
- "\uE142\uD3CF\uF4FA\uC7F5\uD7C3\uC5E4\uF4FC\uF4FD"+
- "\uF4FB\uE143\uBEC6\uE144\uE145\uE146\uE147\uD0EF"+
- "\uE148\uE149\uB7D3\uE14A\uE14B\uD4CD\uCCAA\uE14C"+
- "\uE14D\uF5A2\uF5A1\uBAA8\uF4FE\uCBD6\uE14E\uE14F"+
- "\uE150\uF5A4\uC0D2\uE151\uB3EA\uE152\uCDAA\uF5A5"+
- "\uF5A3\uBDB4\uF5A8\uE153\uF5A9\uBDCD\uC3B8\uBFE1"+
- "\uCBE1\uF5AA\uE154\uE155\uE156\uF5A6\uF5A7\uC4F0"+
- "\uE157\uE158\uE159\uE15A\uE15B\uF5AC\uE15C\uB4BC"+
- "\uE15D\uD7ED\uE15E\uB4D7\uF5AB\uF5AE\uE15F\uE160"+
- "\uF5AD\uF5AF\uD0D1\uE161\uE162\uE163\uE164\uE165"+
- "\uE166\uE167\uC3D1\uC8A9\uE168\uE169\uE16A\uE16B"+
- "\uE16C\uE16D\uF5B0\uF5B1\uE16E\uE16F\uE170\uE171"+
- "\uE172\uE173\uF5B2\uE174\uE175\uF5B3\uF5B4\uF5B5"+
- "\uE176\uE177\uE178\uE179\uF5B7\uF5B6\uE17A\uE17B"+
- "\uE17C\uE17D\uF5B8\uE17E\uE180\uE181\uE182\uE183"+
- "\uE184\uE185\uE186\uE187\uE188\uE189\uE18A\uB2C9"+
- "\uE18B\uD3D4\uCACD\uE18C\uC0EF\uD6D8\uD2B0\uC1BF"+
- "\uE18D\uBDF0\uE18E\uE18F\uE190\uE191\uE192\uE193"+
- "\uE194\uE195\uE196\uE197\uB8AA\uE198\uE199\uE19A"+
- "\uE19B\uE19C\uE19D\uE19E\uE19F\uE1A0\uE240\uE241"+
- "\uE242\uE243\uE244\uE245\uE246\uE247\uE248\uE249"+
- "\uE24A\uE24B\uE24C\uE24D\uE24E\uE24F\uE250\uE251"+
- "\uE252\uE253\uE254\uE255\uE256\uE257\uE258\uE259"+
- "\uE25A\uE25B\uE25C\uE25D\uE25E\uE25F\uE260\uE261"+
- "\uE262\uE263\uE264\uE265\uE266\uE267\uE268\uE269"+
- "\uE26A\uE26B\uE26C\uE26D\uE26E\uE26F\uE270\uE271"+
- "\uE272\uE273\uE274\uE275\uE276\uE277\uE278\uE279"+
- "\uE27A\uE27B\uE27C\uE27D\uE27E\uE280\uE281\uE282"+
- "\uE283\uE284\uE285\uE286\uE287\uE288\uE289\uE28A"+
- "\uE28B\uE28C\uE28D\uE28E\uE28F\uE290\uE291\uE292"+
- "\uE293\uE294\uE295\uE296\uE297\uE298\uE299\uE29A"+
- "\uE29B\uE29C\uE29D\uE29E\uE29F\uE2A0\uE340\uE341"+
- "\uE342\uE343\uE344\uE345\uE346\uE347\uE348\uE349"+
- "\uE34A\uE34B\uE34C\uE34D\uE34E\uE34F\uE350\uE351"+
- "\uE352\uE353\uE354\uE355\uE356\uE357\uE358\uE359"+
- "\uE35A\uE35B\uE35C\uE35D\uE35E\uE35F\uE360\uE361"+
- "\uE362\uE363\uE364\uE365\uE366\uE367\uE368\uE369"+
- "\uE36A\uE36B\uE36C\uE36D\uBCF8\uE36E\uE36F\uE370"+
- "\uE371\uE372\uE373\uE374\uE375\uE376\uE377\uE378"+
- "\uE379\uE37A\uE37B\uE37C\uE37D\uE37E\uE380\uE381"+
- "\uE382\uE383\uE384\uE385\uE386\uE387\uF6C6\uE388"+
- "\uE389\uE38A\uE38B\uE38C\uE38D\uE38E\uE38F\uE390"+
- "\uE391\uE392\uE393\uE394\uE395\uE396\uE397\uE398"+
- "\uE399\uE39A\uE39B\uE39C\uE39D\uE39E\uE39F\uE3A0"+
- "\uE440\uE441\uE442\uE443\uE444\uE445\uF6C7\uE446"+
- "\uE447\uE448\uE449\uE44A\uE44B\uE44C\uE44D\uE44E"+
- "\uE44F\uE450\uE451\uE452\uE453\uE454\uE455\uE456"+
- "\uE457\uE458\uE459\uE45A\uE45B\uE45C\uE45D\uE45E"+
- "\uF6C8\uE45F\uE460\uE461\uE462\uE463\uE464\uE465"+
- "\uE466\uE467\uE468\uE469\uE46A\uE46B\uE46C\uE46D"+
- "\uE46E\uE46F\uE470\uE471\uE472\uE473\uE474\uE475"+
- "\uE476\uE477\uE478\uE479\uE47A\uE47B\uE47C\uE47D"+
- "\uE47E\uE480\uE481\uE482\uE483\uE484\uE485\uE486"+
- "\uE487\uE488\uE489\uE48A\uE48B\uE48C\uE48D\uE48E"+
- "\uE48F\uE490\uE491\uE492\uE493\uE494\uE495\uE496"+
- "\uE497\uE498\uE499\uE49A\uE49B\uE49C\uE49D\uE49E"+
- "\uE49F\uE4A0\uE540\uE541\uE542\uE543\uE544\uE545"+
- "\uE546\uE547\uE548\uE549\uE54A\uE54B\uE54C\uE54D"+
- "\uE54E\uE54F\uE550\uE551\uE552\uE553\uE554\uE555"+
- "\uE556\uE557\uE558\uE559\uE55A\uE55B\uE55C\uE55D"+
- "\uE55E\uE55F\uE560\uE561\uE562\uE563\uE564\uE565"+
- "\uE566\uE567\uE568\uE569\uE56A\uE56B\uE56C\uE56D"+
- "\uE56E\uE56F\uE570\uE571\uE572\uE573\uF6C9\uE574"+
- "\uE575\uE576\uE577\uE578\uE579\uE57A\uE57B\uE57C"+
- "\uE57D\uE57E\uE580\uE581\uE582\uE583\uE584\uE585"+
- "\uE586\uE587\uE588\uE589\uE58A\uE58B\uE58C\uE58D"+
- "\uE58E\uE58F\uE590\uE591\uE592\uE593\uE594\uE595"+
- "\uE596\uE597\uE598\uE599\uE59A\uE59B\uE59C\uE59D"+
- "\uE59E\uE59F\uF6CA\uE5A0\uE640\uE641\uE642\uE643"+
- "\uE644\uE645\uE646\uE647\uE648\uE649\uE64A\uE64B"+
- "\uE64C\uE64D\uE64E\uE64F\uE650\uE651\uE652\uE653"+
- "\uE654\uE655\uE656\uE657\uE658\uE659\uE65A\uE65B"+
- "\uE65C\uE65D\uE65E\uE65F\uE660\uE661\uE662\uF6CC"+
- "\uE663\uE664\uE665\uE666\uE667\uE668\uE669\uE66A"+
- "\uE66B\uE66C\uE66D\uE66E\uE66F\uE670\uE671\uE672"+
- "\uE673\uE674\uE675\uE676\uE677\uE678\uE679\uE67A"+
- "\uE67B\uE67C\uE67D\uE67E\uE680\uE681\uE682\uE683"+
- "\uE684\uE685\uE686\uE687\uE688\uE689\uE68A\uE68B"+
- "\uE68C\uE68D\uE68E\uE68F\uE690\uE691\uE692\uE693"+
- "\uE694\uE695\uE696\uE697\uE698\uE699\uE69A\uE69B"+
- "\uE69C\uE69D\uF6CB\uE69E\uE69F\uE6A0\uE740\uE741"+
- "\uE742\uE743\uE744\uE745\uE746\uE747\uF7E9\uE748"+
- "\uE749\uE74A\uE74B\uE74C\uE74D\uE74E\uE74F\uE750"+
- "\uE751\uE752\uE753\uE754\uE755\uE756\uE757\uE758"+
- "\uE759\uE75A\uE75B\uE75C\uE75D\uE75E\uE75F\uE760"+
- "\uE761\uE762\uE763\uE764\uE765\uE766\uE767\uE768"+
- "\uE769\uE76A\uE76B\uE76C\uE76D\uE76E\uE76F\uE770"+
- "\uE771\uE772\uE773\uE774\uE775\uE776\uE777\uE778"+
- "\uE779\uE77A\uE77B\uE77C\uE77D\uE77E\uE780\uE781"+
- "\uE782\uE783\uE784\uE785\uE786\uE787\uE788\uE789"+
- "\uE78A\uE78B\uE78C\uE78D\uE78E\uE78F\uE790\uE791"+
- "\uE792\uE793\uE794\uE795\uE796\uE797\uE798\uE799"+
- "\uE79A\uE79B\uE79C\uE79D\uE79E\uE79F\uE7A0\uE840"+
- "\uE841\uE842\uE843\uE844\uE845\uE846\uE847\uE848"+
- "\uE849\uE84A\uE84B\uE84C\uE84D\uE84E\uF6CD\uE84F"+
- "\uE850\uE851\uE852\uE853\uE854\uE855\uE856\uE857"+
- "\uE858\uE859\uE85A\uE85B\uE85C\uE85D\uE85E\uE85F"+
- "\uE860\uE861\uE862\uE863\uE864\uE865\uE866\uE867"+
- "\uE868\uE869\uE86A\uE86B\uE86C\uE86D\uE86E\uE86F"+
- "\uE870\uE871\uE872\uE873\uE874\uE875\uE876\uE877"+
- "\uE878\uE879\uE87A\uF6CE\uE87B\uE87C\uE87D\uE87E"+
- "\uE880\uE881\uE882\uE883\uE884\uE885\uE886\uE887"+
- "\uE888\uE889\uE88A\uE88B\uE88C\uE88D\uE88E\uE88F"+
- "\uE890\uE891\uE892\uE893\uE894\uEEC4\uEEC5\uEEC6"+
- "\uD5EB\uB6A4\uEEC8\uEEC7\uEEC9\uEECA\uC7A5\uEECB"+
- "\uEECC\uE895\uB7B0\uB5F6\uEECD\uEECF\uE896\uEECE"+
- "\uE897\uB8C6\uEED0\uEED1\uEED2\uB6DB\uB3AE\uD6D3"+
- "\uC4C6\uB1B5\uB8D6\uEED3\uEED4\uD4BF\uC7D5\uBEFB"+
- "\uCED9\uB9B3\uEED6\uEED5\uEED8\uEED7\uC5A5\uEED9"+
- "\uEEDA\uC7AE\uEEDB\uC7AF\uEEDC\uB2A7\uEEDD\uEEDE"+
- "\uEEDF\uEEE0\uEEE1\uD7EA\uEEE2\uEEE3\uBCD8\uEEE4"+
- "\uD3CB\uCCFA\uB2AC\uC1E5\uEEE5\uC7A6\uC3AD\uE898"+
- "\uEEE6\uEEE7\uEEE8\uEEE9\uEEEA\uEEEB\uEEEC\uE899"+
- "\uEEED\uEEEE\uEEEF\uE89A\uE89B\uEEF0\uEEF1\uEEF2"+
- "\uEEF4\uEEF3\uE89C\uEEF5\uCDAD\uC2C1\uEEF6\uEEF7"+
- "\uEEF8\uD5A1\uEEF9\uCFB3\uEEFA\uEEFB\uE89D\uEEFC"+
- "\uEEFD\uEFA1\uEEFE\uEFA2\uB8F5\uC3FA\uEFA3\uEFA4"+
- "\uBDC2\uD2BF\uB2F9\uEFA5\uEFA6\uEFA7\uD2F8\uEFA8"+
- "\uD6FD\uEFA9\uC6CC\uE89E\uEFAA\uEFAB\uC1B4\uEFAC"+
- "\uCFFA\uCBF8\uEFAE\uEFAD\uB3FA\uB9F8\uEFAF\uEFB0"+
- "\uD0E2\uEFB1\uEFB2\uB7E6\uD0BF\uEFB3\uEFB4\uEFB5"+
- "\uC8F1\uCCE0\uEFB6\uEFB7\uEFB8\uEFB9\uEFBA\uD5E0"+
- "\uEFBB\uB4ED\uC3AA\uEFBC\uE89F\uEFBD\uEFBE\uEFBF"+
- "\uE8A0\uCEFD\uEFC0\uC2E0\uB4B8\uD7B6\uBDF5\uE940"+
- "\uCFC7\uEFC3\uEFC1\uEFC2\uEFC4\uB6A7\uBCFC\uBEE2"+
- "\uC3CC\uEFC5\uEFC6\uE941\uEFC7\uEFCF\uEFC8\uEFC9"+
- "\uEFCA\uC7C2\uEFF1\uB6CD\uEFCB\uE942\uEFCC\uEFCD"+
- "\uB6C6\uC3BE\uEFCE\uE943\uEFD0\uEFD1\uEFD2\uD5F2"+
- "\uE944\uEFD3\uC4F7\uE945\uEFD4\uC4F8\uEFD5\uEFD6"+
- "\uB8E4\uB0F7\uEFD7\uEFD8\uEFD9\uE946\uEFDA\uEFDB"+
- "\uEFDC\uEFDD\uE947\uEFDE\uBEB5\uEFE1\uEFDF\uEFE0"+
- "\uE948\uEFE2\uEFE3\uC1CD\uEFE4\uEFE5\uEFE6\uEFE7"+
- "\uEFE8\uEFE9\uEFEA\uEFEB\uEFEC\uC0D8\uE949\uEFED"+
- "\uC1AD\uEFEE\uEFEF\uEFF0\uE94A\uE94B\uCFE2\uE94C"+
- "\uE94D\uE94E\uE94F\uE950\uE951\uE952\uE953\uB3A4"+
- "\uE954\uE955\uE956\uE957\uE958\uE959\uE95A\uE95B"+
- "\uE95C\uE95D\uE95E\uE95F\uE960\uE961\uE962\uE963"+
- "\uE964\uE965\uE966\uE967\uE968\uE969\uE96A\uE96B"+
- "\uE96C\uE96D\uE96E\uE96F\uE970\uE971\uE972\uE973"+
- "\uE974\uE975\uE976\uE977\uE978\uE979\uE97A\uE97B"+
- "\uE97C\uE97D\uE97E\uE980\uE981\uE982\uE983\uE984"+
- "\uE985\uE986\uE987\uE988\uE989\uE98A\uE98B\uE98C"+
- "\uE98D\uE98E\uE98F\uE990\uE991\uE992\uE993\uE994"+
- "\uE995\uE996\uE997\uE998\uE999\uE99A\uE99B\uE99C"+
- "\uE99D\uE99E\uE99F\uE9A0\uEA40\uEA41\uEA42\uEA43"+
- "\uEA44\uEA45\uEA46\uEA47\uEA48\uEA49\uEA4A\uEA4B"+
- "\uEA4C\uEA4D\uEA4E\uEA4F\uEA50\uEA51\uEA52\uEA53"+
- "\uEA54\uEA55\uEA56\uEA57\uEA58\uEA59\uEA5A\uEA5B"+
- "\uC3C5\uE3C5\uC9C1\uE3C6\uEA5C\uB1D5\uCECA\uB4B3"+
- "\uC8F2\uE3C7\uCFD0\uE3C8\uBCE4\uE3C9\uE3CA\uC3C6"+
- "\uD5A2\uC4D6\uB9EB\uCEC5\uE3CB\uC3F6\uE3CC\uEA5D"+
- "\uB7A7\uB8F3\uBAD2\uE3CD\uE3CE\uD4C4\uE3CF\uEA5E"+
- "\uE3D0\uD1CB\uE3D1\uE3D2\uE3D3\uE3D4\uD1D6\uE3D5"+
- "\uB2FB\uC0BB\uE3D6\uEA5F\uC0AB\uE3D7\uE3D8\uE3D9"+
- "\uEA60\uE3DA\uE3DB\uEA61\uB8B7\uDAE2\uEA62\uB6D3"+
- "\uEA63\uDAE4\uDAE3\uEA64\uEA65\uEA66\uEA67\uEA68"+
- "\uEA69\uEA6A\uDAE6\uEA6B\uEA6C\uEA6D\uC8EE\uEA6E"+
- "\uEA6F\uDAE5\uB7C0\uD1F4\uD2F5\uD5F3\uBDD7\uEA70"+
- "\uEA71\uEA72\uEA73\uD7E8\uDAE8\uDAE7\uEA74\uB0A2"+
- "\uCDD3\uEA75\uDAE9\uEA76\uB8BD\uBCCA\uC2BD\uC2A4"+
- "\uB3C2\uDAEA\uEA77\uC2AA\uC4B0\uBDB5\uEA78\uEA79"+
- "\uCFDE\uEA7A\uEA7B\uEA7C\uDAEB\uC9C2\uEA7D\uEA7E"+
- "\uEA80\uEA81\uEA82\uB1DD\uEA83\uEA84\uEA85\uDAEC"+
- "\uEA86\uB6B8\uD4BA\uEA87\uB3FD\uEA88\uEA89\uDAED"+
- "\uD4C9\uCFD5\uC5E3\uEA8A\uDAEE\uEA8B\uEA8C\uEA8D"+
- "\uEA8E\uEA8F\uDAEF\uEA90\uDAF0\uC1EA\uCCD5\uCFDD"+
- "\uEA91\uEA92\uEA93\uEA94\uEA95\uEA96\uEA97\uEA98"+
- "\uEA99\uEA9A\uEA9B\uEA9C\uEA9D\uD3E7\uC2A1\uEA9E"+
- "\uDAF1\uEA9F\uEAA0\uCBE5\uEB40\uDAF2\uEB41\uCBE6"+
- "\uD2FE\uEB42\uEB43\uEB44\uB8F4\uEB45\uEB46\uDAF3"+
- "\uB0AF\uCFB6\uEB47\uEB48\uD5CF\uEB49\uEB4A\uEB4B"+
- "\uEB4C\uEB4D\uEB4E\uEB4F\uEB50\uEB51\uEB52\uCBED"+
- "\uEB53\uEB54\uEB55\uEB56\uEB57\uEB58\uEB59\uEB5A"+
- "\uDAF4\uEB5B\uEB5C\uE3C4\uEB5D\uEB5E\uC1A5\uEB5F"+
- "\uEB60\uF6BF\uEB61\uEB62\uF6C0\uF6C1\uC4D1\uEB63"+
- "\uC8B8\uD1E3\uEB64\uEB65\uD0DB\uD1C5\uBCAF\uB9CD"+
- "\uEB66\uEFF4\uEB67\uEB68\uB4C6\uD3BA\uF6C2\uB3FB"+
- "\uEB69\uEB6A\uF6C3\uEB6B\uEB6C\uB5F1\uEB6D\uEB6E"+
- "\uEB6F\uEB70\uEB71\uEB72\uEB73\uEB74\uEB75\uEB76"+
- "\uF6C5\uEB77\uEB78\uEB79\uEB7A\uEB7B\uEB7C\uEB7D"+
- "\uD3EA\uF6A7\uD1A9\uEB7E\uEB80\uEB81\uEB82\uF6A9"+
- "\uEB83\uEB84\uEB85\uF6A8\uEB86\uEB87\uC1E3\uC0D7"+
- "\uEB88\uB1A2\uEB89\uEB8A\uEB8B\uEB8C\uCEED\uEB8D"+
- "\uD0E8\uF6AB\uEB8E\uEB8F\uCFF6\uEB90\uF6AA\uD5F0"+
- "\uF6AC\uC3B9\uEB91\uEB92\uEB93\uBBF4\uF6AE\uF6AD"+
- "\uEB94\uEB95\uEB96\uC4DE\uEB97\uEB98\uC1D8\uEB99"+
- "\uEB9A\uEB9B\uEB9C\uEB9D\uCBAA\uEB9E\uCFBC\uEB9F"+
- "\uEBA0\uEC40\uEC41\uEC42\uEC43\uEC44\uEC45\uEC46"+
- "\uEC47\uEC48\uF6AF\uEC49\uEC4A\uF6B0\uEC4B\uEC4C"+
- "\uF6B1\uEC4D\uC2B6\uEC4E\uEC4F\uEC50\uEC51\uEC52"+
- "\uB0D4\uC5F9\uEC53\uEC54\uEC55\uEC56\uF6B2\uEC57"+
- "\uEC58\uEC59\uEC5A\uEC5B\uEC5C\uEC5D\uEC5E\uEC5F"+
- "\uEC60\uEC61\uEC62\uEC63\uEC64\uEC65\uEC66\uEC67"+
- "\uEC68\uEC69\uC7E0\uF6A6\uEC6A\uEC6B\uBEB8\uEC6C"+
- "\uEC6D\uBEB2\uEC6E\uB5E5\uEC6F\uEC70\uB7C7\uEC71"+
- "\uBFBF\uC3D2\uC3E6\uEC72\uEC73\uD8CC\uEC74\uEC75"+
- "\uEC76\uB8EF\uEC77\uEC78\uEC79\uEC7A\uEC7B\uEC7C"+
- "\uEC7D\uEC7E\uEC80\uBDF9\uD1A5\uEC81\uB0D0\uEC82"+
- "\uEC83\uEC84\uEC85\uEC86\uF7B0\uEC87\uEC88\uEC89"+
- "\uEC8A\uEC8B\uEC8C\uEC8D\uEC8E\uF7B1\uEC8F\uEC90"+
- "\uEC91\uEC92\uEC93\uD0AC\uEC94\uB0B0\uEC95\uEC96"+
- "\uEC97\uF7B2\uF7B3\uEC98\uF7B4\uEC99\uEC9A\uEC9B"+
- "\uC7CA\uEC9C\uEC9D\uEC9E\uEC9F\uECA0\uED40\uED41"+
- "\uBECF\uED42\uED43\uF7B7\uED44\uED45\uED46\uED47"+
- "\uED48\uED49\uED4A\uF7B6\uED4B\uB1DE\uED4C\uF7B5"+
- "\uED4D\uED4E\uF7B8\uED4F\uF7B9\uED50\uED51\uED52"+
- "\uED53\uED54\uED55\uED56\uED57\uED58\uED59\uED5A"+
- "\uED5B\uED5C\uED5D\uED5E\uED5F\uED60\uED61\uED62"+
- "\uED63\uED64\uED65\uED66\uED67\uED68\uED69\uED6A"+
- "\uED6B\uED6C\uED6D\uED6E\uED6F\uED70\uED71\uED72"+
- "\uED73\uED74\uED75\uED76\uED77\uED78\uED79\uED7A"+
- "\uED7B\uED7C\uED7D\uED7E\uED80\uED81\uCEA4\uC8CD"+
- "\uED82\uBAAB\uE8B8\uE8B9\uE8BA\uBEC2\uED83\uED84"+
- "\uED85\uED86\uED87\uD2F4\uED88\uD4CF\uC9D8\uED89"+
- "\uED8A\uED8B\uED8C\uED8D\uED8E\uED8F\uED90\uED91"+
- "\uED92\uED93\uED94\uED95\uED96\uED97\uED98\uED99"+
- "\uED9A\uED9B\uED9C\uED9D\uED9E\uED9F\uEDA0\uEE40"+
- "\uEE41\uEE42\uEE43\uEE44\uEE45\uEE46\uEE47\uEE48"+
- "\uEE49\uEE4A\uEE4B\uEE4C\uEE4D\uEE4E\uEE4F\uEE50"+
- "\uEE51\uEE52\uEE53\uEE54\uEE55\uEE56\uEE57\uEE58"+
- "\uEE59\uEE5A\uEE5B\uEE5C\uEE5D\uEE5E\uEE5F\uEE60"+
- "\uEE61\uEE62\uEE63\uEE64\uEE65\uEE66\uEE67\uEE68"+
- "\uEE69\uEE6A\uEE6B\uEE6C\uEE6D\uEE6E\uEE6F\uEE70"+
- "\uEE71\uEE72\uEE73\uEE74\uEE75\uEE76\uEE77\uEE78"+
- "\uEE79\uEE7A\uEE7B\uEE7C\uEE7D\uEE7E\uEE80\uEE81"+
- "\uEE82\uEE83\uEE84\uEE85\uEE86\uEE87\uEE88\uEE89"+
- "\uEE8A\uEE8B\uEE8C\uEE8D\uEE8E\uEE8F\uEE90\uEE91"+
- "\uEE92\uEE93\uEE94\uEE95\uEE96\uEE97\uEE98\uEE99"+
- "\uEE9A\uEE9B\uEE9C\uEE9D\uEE9E\uEE9F\uEEA0\uEF40"+
- "\uEF41\uEF42\uEF43\uEF44\uEF45\uD2B3\uB6A5\uC7EA"+
- "\uF1FC\uCFEE\uCBB3\uD0EB\uE7EF\uCDE7\uB9CB\uB6D9"+
- "\uF1FD\uB0E4\uCBCC\uF1FE\uD4A4\uC2AD\uC1EC\uC6C4"+
- "\uBEB1\uF2A1\uBCD5\uEF46\uF2A2\uF2A3\uEF47\uF2A4"+
- "\uD2C3\uC6B5\uEF48\uCDC7\uF2A5\uEF49\uD3B1\uBFC5"+
- "\uCCE2\uEF4A\uF2A6\uF2A7\uD1D5\uB6EE\uF2A8\uF2A9"+
- "\uB5DF\uF2AA\uF2AB\uEF4B\uB2FC\uF2AC\uF2AD\uC8A7"+
- "\uEF4C\uEF4D\uEF4E\uEF4F\uEF50\uEF51\uEF52\uEF53"+
- "\uEF54\uEF55\uEF56\uEF57\uEF58\uEF59\uEF5A\uEF5B"+
- "\uEF5C\uEF5D\uEF5E\uEF5F\uEF60\uEF61\uEF62\uEF63"+
- "\uEF64\uEF65\uEF66\uEF67\uEF68\uEF69\uEF6A\uEF6B"+
- "\uEF6C\uEF6D\uEF6E\uEF6F\uEF70\uEF71\uB7E7\uEF72"+
- "\uEF73\uECA9\uECAA\uECAB\uEF74\uECAC\uEF75\uEF76"+
- "\uC6AE\uECAD\uECAE\uEF77\uEF78\uEF79\uB7C9\uCAB3"+
- "\uEF7A\uEF7B\uEF7C\uEF7D\uEF7E\uEF80\uEF81\uE2B8"+
- "\uF7CF\uEF82\uEF83\uEF84\uEF85\uEF86\uEF87\uEF88"+
- "\uEF89\uEF8A\uEF8B\uEF8C\uEF8D\uEF8E\uEF8F\uEF90"+
- "\uEF91\uEF92\uEF93\uEF94\uEF95\uEF96\uEF97\uEF98"+
- "\uEF99\uEF9A\uEF9B\uEF9C\uEF9D\uEF9E\uEF9F\uEFA0"+
- "\uF040\uF041\uF042\uF043\uF044\uF7D0\uF045\uF046"+
- "\uB2CD\uF047\uF048\uF049\uF04A\uF04B\uF04C\uF04D"+
- "\uF04E\uF04F\uF050\uF051\uF052\uF053\uF054\uF055"+
- "\uF056\uF057\uF058\uF059\uF05A\uF05B\uF05C\uF05D"+
- "\uF05E\uF05F\uF060\uF061\uF062\uF063\uF7D1\uF064"+
- "\uF065\uF066\uF067\uF068\uF069\uF06A\uF06B\uF06C"+
- "\uF06D\uF06E\uF06F\uF070\uF071\uF072\uF073\uF074"+
- "\uF075\uF076\uF077\uF078\uF079\uF07A\uF07B\uF07C"+
- "\uF07D\uF07E\uF080\uF081\uF082\uF083\uF084\uF085"+
- "\uF086\uF087\uF088\uF089\uF7D3\uF7D2\uF08A\uF08B"+
- "\uF08C\uF08D\uF08E\uF08F\uF090\uF091\uF092\uF093"+
- "\uF094\uF095\uF096\uE2BB\uF097\uBCA2\uF098\uE2BC"+
- "\uE2BD\uE2BE\uE2BF\uE2C0\uE2C1\uB7B9\uD2FB\uBDA4"+
- "\uCACE\uB1A5\uCBC7\uF099\uE2C2\uB6FC\uC8C4\uE2C3"+
- "\uF09A\uF09B\uBDC8\uF09C\uB1FD\uE2C4\uF09D\uB6F6"+
- "\uE2C5\uC4D9\uF09E\uF09F\uE2C6\uCFDA\uB9DD\uE2C7"+
- "\uC0A1\uF0A0\uE2C8\uB2F6\uF140\uE2C9\uF141\uC1F3"+
- "\uE2CA\uE2CB\uC2F8\uE2CC\uE2CD\uE2CE\uCAD7\uD8B8"+
- "\uD9E5\uCFE3\uF142\uF143\uF144\uF145\uF146\uF147"+
- "\uF148\uF149\uF14A\uF14B\uF14C\uF0A5\uF14D\uF14E"+
- "\uDCB0\uF14F\uF150\uF151\uF152\uF153\uF154\uF155"+
- "\uF156\uF157\uF158\uF159\uF15A\uF15B\uF15C\uF15D"+
- "\uF15E\uF15F\uF160\uF161\uF162\uF163\uF164\uF165"+
- "\uF166\uF167\uF168\uF169\uF16A\uF16B\uF16C\uF16D"+
- "\uF16E\uF16F\uF170\uF171\uF172\uF173\uF174\uF175"+
- "\uF176\uF177\uF178\uF179\uF17A\uF17B\uF17C\uF17D"+
- "\uF17E\uF180\uF181\uF182\uF183\uF184\uF185\uF186"+
- "\uF187\uF188\uF189\uF18A\uF18B\uF18C\uF18D\uF18E"+
- "\uF18F\uF190\uF191\uF192\uF193\uF194\uF195\uF196"+
- "\uF197\uF198\uF199\uF19A\uF19B\uF19C\uF19D\uF19E"+
- "\uF19F\uF1A0\uF240\uF241\uF242\uF243\uF244\uF245"+
- "\uF246\uF247\uF248\uF249\uF24A\uF24B\uF24C\uF24D"+
- "\uF24E\uF24F\uF250\uF251\uF252\uF253\uF254\uF255"+
- "\uF256\uF257\uF258\uF259\uF25A\uF25B\uF25C\uF25D"+
- "\uF25E\uF25F\uF260\uF261\uF262\uF263\uF264\uF265"+
- "\uF266\uF267\uF268\uF269\uF26A\uF26B\uF26C\uF26D"+
- "\uF26E\uF26F\uF270\uF271\uF272\uF273\uF274\uF275"+
- "\uF276\uF277\uF278\uF279\uF27A\uF27B\uF27C\uF27D"+
- "\uF27E\uF280\uF281\uF282\uF283\uF284\uF285\uF286"+
- "\uF287\uF288\uF289\uF28A\uF28B\uF28C\uF28D\uF28E"+
- "\uF28F\uF290\uF291\uF292\uF293\uF294\uF295\uF296"+
- "\uF297\uF298\uF299\uF29A\uF29B\uF29C\uF29D\uF29E"+
- "\uF29F\uF2A0\uF340\uF341\uF342\uF343\uF344\uF345"+
- "\uF346\uF347\uF348\uF349\uF34A\uF34B\uF34C\uF34D"+
- "\uF34E\uF34F\uF350\uF351\uC2ED\uD4A6\uCDD4\uD1B1"+
- "\uB3DB\uC7FD\uF352\uB2B5\uC2BF\uE6E0\uCABB\uE6E1"+
- "\uE6E2\uBED4\uE6E3\uD7A4\uCDD5\uE6E5\uBCDD\uE6E4"+
- "\uE6E6\uE6E7\uC2EE\uF353\uBDBE\uE6E8\uC2E6\uBAA7"+
- "\uE6E9\uF354\uE6EA\uB3D2\uD1E9\uF355\uF356\uBFA5"+
- "\uE6EB\uC6EF\uE6EC\uE6ED\uF357\uF358\uE6EE\uC6AD"+
- "\uE6EF\uF359\uC9A7\uE6F0\uE6F1\uE6F2\uE5B9\uE6F3"+
- "\uE6F4\uC2E2\uE6F5\uE6F6\uD6E8\uE6F7\uF35A\uE6F8"+
- "\uB9C7\uF35B\uF35C\uF35D\uF35E\uF35F\uF360\uF361"+
- "\uF7BB\uF7BA\uF362\uF363\uF364\uF365\uF7BE\uF7BC"+
- "\uBAA1\uF366\uF7BF\uF367\uF7C0\uF368\uF369\uF36A"+
- "\uF7C2\uF7C1\uF7C4\uF36B\uF36C\uF7C3\uF36D\uF36E"+
- "\uF36F\uF370\uF371\uF7C5\uF7C6\uF372\uF373\uF374"+
- "\uF375\uF7C7\uF376\uCBE8\uF377\uF378\uF379\uF37A"+
- "\uB8DF\uF37B\uF37C\uF37D\uF37E\uF380\uF381\uF7D4"+
- "\uF382\uF7D5\uF383\uF384\uF385\uF386\uF7D6\uF387"+
- "\uF388\uF389\uF38A\uF7D8\uF38B\uF7DA\uF38C\uF7D7"+
- "\uF38D\uF38E\uF38F\uF390\uF391\uF392\uF393\uF394"+
- "\uF395\uF7DB\uF396\uF7D9\uF397\uF398\uF399\uF39A"+
- "\uF39B\uF39C\uF39D\uD7D7\uF39E\uF39F\uF3A0\uF440"+
- "\uF7DC\uF441\uF442\uF443\uF444\uF445\uF446\uF7DD"+
- "\uF447\uF448\uF449\uF7DE\uF44A\uF44B\uF44C\uF44D"+
- "\uF44E\uF44F\uF450\uF451\uF452\uF453\uF454\uF7DF"+
- "\uF455\uF456\uF457\uF7E0\uF458\uF459\uF45A\uF45B"+
- "\uF45C\uF45D\uF45E\uF45F\uF460\uF461\uF462\uDBCB"+
- "\uF463\uF464\uD8AA\uF465\uF466\uF467\uF468\uF469"+
- "\uF46A\uF46B\uF46C\uE5F7\uB9ED\uF46D\uF46E\uF46F"+
- "\uF470\uBFFD\uBBEA\uF7C9\uC6C7\uF7C8\uF471\uF7CA"+
- "\uF7CC\uF7CB\uF472\uF473\uF474\uF7CD\uF475\uCEBA"+
- "\uF476\uF7CE\uF477\uF478\uC4A7\uF479\uF47A\uF47B"+
- "\uF47C\uF47D\uF47E\uF480\uF481\uF482\uF483\uF484"+
- "\uF485\uF486\uF487\uF488\uF489\uF48A\uF48B\uF48C"+
- "\uF48D\uF48E\uF48F\uF490\uF491\uF492\uF493\uF494"+
- "\uF495\uF496\uF497\uF498\uF499\uF49A\uF49B\uF49C"+
- "\uF49D\uF49E\uF49F\uF4A0\uF540\uF541\uF542\uF543"+
- "\uF544\uF545\uF546\uF547\uF548\uF549\uF54A\uF54B"+
- "\uF54C\uF54D\uF54E\uF54F\uF550\uF551\uF552\uF553"+
- "\uF554\uF555\uF556\uF557\uF558\uF559\uF55A\uF55B"+
- "\uF55C\uF55D\uF55E\uF55F\uF560\uF561\uF562\uF563"+
- "\uF564\uF565\uF566\uF567\uF568\uF569\uF56A\uF56B"+
- "\uF56C\uF56D\uF56E\uF56F\uF570\uF571\uF572\uF573"+
- "\uF574\uF575\uF576\uF577\uF578\uF579\uF57A\uF57B"+
- "\uF57C\uF57D\uF57E\uF580\uF581\uF582\uF583\uF584"+
- "\uF585\uF586\uF587\uF588\uF589\uF58A\uF58B\uF58C"+
- "\uF58D\uF58E\uF58F\uF590\uF591\uF592\uF593\uF594"+
- "\uF595\uF596\uF597\uF598\uF599\uF59A\uF59B\uF59C"+
- "\uF59D\uF59E\uF59F\uF5A0\uF640\uF641\uF642\uF643"+
- "\uF644\uF645\uF646\uF647\uF648\uF649\uF64A\uF64B"+
- "\uF64C\uF64D\uF64E\uF64F\uF650\uF651\uF652\uF653"+
- "\uF654\uF655\uF656\uF657\uF658\uF659\uF65A\uF65B"+
- "\uF65C\uF65D\uF65E\uF65F\uF660\uF661\uF662\uF663"+
- "\uF664\uF665\uF666\uF667\uF668\uF669\uF66A\uF66B"+
- "\uF66C\uF66D\uF66E\uF66F\uF670\uF671\uF672\uF673"+
- "\uF674\uF675\uF676\uF677\uF678\uF679\uF67A\uF67B"+
- "\uF67C\uF67D\uF67E\uF680\uF681\uF682\uF683\uF684"+
- "\uF685\uF686\uF687\uF688\uF689\uF68A\uF68B\uF68C"+
- "\uF68D\uF68E\uF68F\uF690\uF691\uF692\uF693\uF694"+
- "\uF695\uF696\uF697\uF698\uF699\uF69A\uF69B\uF69C"+
- "\uF69D\uF69E\uF69F\uF6A0\uF740\uF741\uF742\uF743"+
- "\uF744\uF745\uF746\uF747\uF748\uF749\uF74A\uF74B"+
- "\uF74C\uF74D\uF74E\uF74F\uF750\uF751\uF752\uF753"+
- "\uF754\uF755\uF756\uF757\uF758\uF759\uF75A\uF75B"+
- "\uF75C\uF75D\uF75E\uF75F\uF760\uF761\uF762\uF763"+
- "\uF764\uF765\uF766\uF767\uF768\uF769\uF76A\uF76B"+
- "\uF76C\uF76D\uF76E\uF76F\uF770\uF771\uF772\uF773"+
- "\uF774\uF775\uF776\uF777\uF778\uF779\uF77A\uF77B"+
- "\uF77C\uF77D\uF77E\uF780\uD3E3\uF781\uF782\uF6CF"+
- "\uF783\uC2B3\uF6D0\uF784\uF785\uF6D1\uF6D2\uF6D3"+
- "\uF6D4\uF786\uF787\uF6D6\uF788\uB1AB\uF6D7\uF789"+
- "\uF6D8\uF6D9\uF6DA\uF78A\uF6DB\uF6DC\uF78B\uF78C"+
- "\uF78D\uF78E\uF6DD\uF6DE\uCFCA\uF78F\uF6DF\uF6E0"+
- "\uF6E1\uF6E2\uF6E3\uF6E4\uC0F0\uF6E5\uF6E6\uF6E7"+
- "\uF6E8\uF6E9\uF790\uF6EA\uF791\uF6EB\uF6EC\uF792"+
- "\uF6ED\uF6EE\uF6EF\uF6F0\uF6F1\uF6F2\uF6F3\uF6F4"+
- "\uBEA8\uF793\uF6F5\uF6F6\uF6F7\uF6F8\uF794\uF795"+
- "\uF796\uF797\uF798\uC8FA\uF6F9\uF6FA\uF6FB\uF6FC"+
- "\uF799\uF79A\uF6FD\uF6FE\uF7A1\uF7A2\uF7A3\uF7A4"+
- "\uF7A5\uF79B\uF79C\uF7A6\uF7A7\uF7A8\uB1EE\uF7A9"+
- "\uF7AA\uF7AB\uF79D\uF79E\uF7AC\uF7AD\uC1DB\uF7AE"+
- "\uF79F\uF7A0\uF7AF\uF840\uF841\uF842\uF843\uF844"+
- "\uF845\uF846\uF847\uF848\uF849\uF84A\uF84B\uF84C"+
- "\uF84D\uF84E\uF84F\uF850\uF851\uF852\uF853\uF854"+
- "\uF855\uF856\uF857\uF858\uF859\uF85A\uF85B\uF85C"+
- "\uF85D\uF85E\uF85F\uF860\uF861\uF862\uF863\uF864"+
- "\uF865\uF866\uF867\uF868\uF869\uF86A\uF86B\uF86C"+
- "\uF86D\uF86E\uF86F\uF870\uF871\uF872\uF873\uF874"+
- "\uF875\uF876\uF877\uF878\uF879\uF87A\uF87B\uF87C"+
- "\uF87D\uF87E\uF880\uF881\uF882\uF883\uF884\uF885"+
- "\uF886\uF887\uF888\uF889\uF88A\uF88B\uF88C\uF88D"+
- "\uF88E\uF88F\uF890\uF891\uF892\uF893\uF894\uF895"+
- "\uF896\uF897\uF898\uF899\uF89A\uF89B\uF89C\uF89D"+
- "\uF89E\uF89F\uF8A0\uF940\uF941\uF942\uF943\uF944"+
- "\uF945\uF946\uF947\uF948\uF949\uF94A\uF94B\uF94C"+
- "\uF94D\uF94E\uF94F\uF950\uF951\uF952\uF953\uF954"+
- "\uF955\uF956\uF957\uF958\uF959\uF95A\uF95B\uF95C"+
- "\uF95D\uF95E\uF95F\uF960\uF961\uF962\uF963\uF964"+
- "\uF965\uF966\uF967\uF968\uF969\uF96A\uF96B\uF96C"+
- "\uF96D\uF96E\uF96F\uF970\uF971\uF972\uF973\uF974"+
- "\uF975\uF976\uF977\uF978\uF979\uF97A\uF97B\uF97C"+
- "\uF97D\uF97E\uF980\uF981\uF982\uF983\uF984\uF985"+
- "\uF986\uF987\uF988\uF989\uF98A\uF98B\uF98C\uF98D"+
- "\uF98E\uF98F\uF990\uF991\uF992\uF993\uF994\uF995"+
- "\uF996\uF997\uF998\uF999\uF99A\uF99B\uF99C\uF99D"+
- "\uF99E\uF99F\uF9A0\uFA40\uFA41\uFA42\uFA43\uFA44"+
- "\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B\uFA4C"+
- "\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53\uFA54"+
- "\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B\uFA5C"+
- "\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63\uFA64"+
- "\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA6B\uFA6C"+
- "\uFA6D\uFA6E\uFA6F\uFA70\uFA71\uFA72\uFA73\uFA74"+
- "\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B\uFA7C"+
- "\uFA7D\uFA7E\uFA80\uFA81\uFA82\uFA83\uFA84\uFA85"+
- "\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B\uFA8C\uFA8D"+
- "\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93\uFA94\uFA95"+
- "\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B\uFA9C\uFA9D"+
- "\uFA9E\uFA9F\uFAA0\uFB40\uFB41\uFB42\uFB43\uFB44"+
- "\uFB45\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B\uFB4C"+
- "\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53\uFB54"+
- "\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B\uC4F1"+
- "\uF0AF\uBCA6\uF0B0\uC3F9\uFB5C\uC5B8\uD1BB\uFB5D"+
- "\uF0B1\uF0B2\uF0B3\uF0B4\uF0B5\uD1BC\uFB5E\uD1EC"+
- "\uFB5F\uF0B7\uF0B6\uD4A7\uFB60\uCDD2\uF0B8\uF0BA"+
- "\uF0B9\uF0BB\uF0BC\uFB61\uFB62\uB8EB\uF0BD\uBAE8"+
- "\uFB63\uF0BE\uF0BF\uBEE9\uF0C0\uB6EC\uF0C1\uF0C2"+
- "\uF0C3\uF0C4\uC8B5\uF0C5\uF0C6\uFB64\uF0C7\uC5F4"+
- "\uFB65\uF0C8\uFB66\uFB67\uFB68\uF0C9\uFB69\uF0CA"+
- "\uF7BD\uFB6A\uF0CB\uF0CC\uF0CD\uFB6B\uF0CE\uFB6C"+
- "\uFB6D\uFB6E\uFB6F\uF0CF\uBAD7\uFB70\uF0D0\uF0D1"+
- "\uF0D2\uF0D3\uF0D4\uF0D5\uF0D6\uF0D8\uFB71\uFB72"+
- "\uD3A5\uF0D7\uFB73\uF0D9\uFB74\uFB75\uFB76\uFB77"+
- "\uFB78\uFB79\uFB7A\uFB7B\uFB7C\uFB7D\uF5BA\uC2B9"+
- "\uFB7E\uFB80\uF7E4\uFB81\uFB82\uFB83\uFB84\uF7E5"+
- "\uF7E6\uFB85\uFB86\uF7E7\uFB87\uFB88\uFB89\uFB8A"+
- "\uFB8B\uFB8C\uF7E8\uC2B4\uFB8D\uFB8E\uFB8F\uFB90"+
- "\uFB91\uFB92\uFB93\uFB94\uFB95\uF7EA\uFB96\uF7EB"+
- "\uFB97\uFB98\uFB99\uFB9A\uFB9B\uFB9C\uC2F3\uFB9D"+
- "\uFB9E\uFB9F\uFBA0\uFC40\uFC41\uFC42\uFC43\uFC44"+
- "\uFC45\uFC46\uFC47\uFC48\uF4F0\uFC49\uFC4A\uFC4B"+
- "\uF4EF\uFC4C\uFC4D\uC2E9\uFC4E\uF7E1\uF7E2\uFC4F"+
- "\uFC50\uFC51\uFC52\uFC53\uBBC6\uFC54\uFC55\uFC56"+
- "\uFC57\uD9E4\uFC58\uFC59\uFC5A\uCAF2\uC0E8\uF0A4"+
- "\uFC5B\uBADA\uFC5C\uFC5D\uC7AD\uFC5E\uFC5F\uFC60"+
- "\uC4AC\uFC61\uFC62\uF7EC\uF7ED\uF7EE\uFC63\uF7F0"+
- "\uF7EF\uFC64\uF7F1\uFC65\uFC66\uF7F4\uFC67\uF7F3"+
- "\uFC68\uF7F2\uF7F5\uFC69\uFC6A\uFC6B\uFC6C\uF7F6"+
- "\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73\uFC74"+
- "\uFC75\uEDE9\uFC76\uEDEA\uEDEB\uFC77\uF6BC\uFC78"+
- "\uFC79\uFC7A\uFC7B\uFC7C\uFC7D\uFC7E\uFC80\uFC81"+
- "\uFC82\uFC83\uFC84\uF6BD\uFC85\uF6BE\uB6A6\uFC86"+
- "\uD8BE\uFC87\uFC88\uB9C4\uFC89\uFC8A\uFC8B\uD8BB"+
- "\uFC8C\uDCB1\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92"+
- "\uCAF3\uFC93\uF7F7\uFC94\uFC95\uFC96\uFC97\uFC98"+
- "\uFC99\uFC9A\uFC9B\uFC9C\uF7F8\uFC9D\uFC9E\uF7F9"+
- "\uFC9F\uFCA0\uFD40\uFD41\uFD42\uFD43\uFD44\uF7FB"+
- "\uFD45\uF7FA\uFD46\uB1C7\uFD47\uF7FC\uF7FD\uFD48"+
- "\uFD49\uFD4A\uFD4B\uFD4C\uF7FE\uFD4D\uFD4E\uFD4F"+
- "\uFD50\uFD51\uFD52\uFD53\uFD54\uFD55\uFD56\uFD57"+
- "\uC6EB\uECB4\uFD58\uFD59\uFD5A\uFD5B\uFD5C\uFD5D"+
- "\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63\uFD64\uFD65"+
- "\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B\uFD6C\uFD6D"+
- "\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73\uFD74\uFD75"+
- "\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B\uFD7C\uFD7D"+
- "\uFD7E\uFD80\uFD81\uFD82\uFD83\uFD84\uFD85\uB3DD"+
- "\uF6B3\uFD86\uFD87\uF6B4\uC1E4\uF6B5\uF6B6\uF6B7"+
- "\uF6B8\uF6B9\uF6BA\uC8A3\uF6BB\uFD88\uFD89\uFD8A"+
- "\uFD8B\uFD8C\uFD8D\uFD8E\uFD8F\uFD90\uFD91\uFD92"+
- "\uFD93\uC1FA\uB9A8\uEDE8\uFD94\uFD95\uFD96\uB9EA"+
- "\uD9DF\uFD97\uFD98\uFD99\uFD9A\uFD9B\u6A63\u6A64"+
- "\u6A65\u6A66\u6A67\u6A68\u6A69\u6A6A\u6A6B\u6A6C"+
- "\u6A6D\u6A6E\u6A6F\u6A70\u6A71\u6A72\u6A73\u6A74"+
- "\u6A75\u6A76\u6A77\u6A78\u6A79\u6A7A\u6A7B\u6A7C"+
- "\u6A7D\u6A7E\u6A7F\u6A80\u6A81\u6A82\u6A83\u6A84"+
- "\u6A85\u6A86\u6A87\u6A88\u6A89\u6A8A\u6A8B\u6A8C"+
- "\u6A8D\u6A8E\u6A8F\u6A90\u6A91\u6A92\u6A93\u6A94"+
- "\u6A95\u6A96\u6A97\u6A98\u6A99\u6A9A\u6A9B\u6A9C"+
- "\u6A9D\u6A9E\u6A9F\u6AA0\u6AA1\u6AA2\u6AA3\u6AA4"+
- "\u6AA5\u6AA6\u6AA7\u6AA8\u6AA9\u6AAA\u6AAB\u6AAC"+
- "\u6AAD\u6AAE\u6AAF\u6AB0\u6AB1\u6AB2\u6AB3\u6AB4"+
- "\u6AB5\u6AB6\u6AB7\u6AB8\u6AB9\u6ABA\u6ABB\u6ABC";
-
- private final static String innerEncoderIndex10=
- "\u6ABD\u6ABE\u6ABF\u6AC0\u6AC1\u6AC2\u6AC3\u6AC4"+
- "\u6AC5\u6AC6\u6AC7\u6AC8\u6AC9\u6ACA\u6ACB\u6ACC"+
- "\u6ACD\u6ACE\u6ACF\u6AD0\u6AD1\u6AD2\u6AD3\u6AD4"+
- "\u6AD5\u6AD6\u6AD7\u6AD8\u6AD9\u6ADA\u6ADB\u6ADC"+
- "\u6ADD\u6ADE\u6ADF\u6AE0\u6AE1\u6AE2\u6AE3\u6AE4"+
- "\u6AE5\u6AE6\u6AE7\u6AE8\u6AE9\u6AEA\u6AEB\u6AEC"+
- "\u6AED\u6AEE\u6AEF\u6AF0\u6AF1\u6AF2\u6AF3\u6AF4"+
- "\u6AF5\u6AF6\u6AF7\u6AF8\u6AF9\u6AFA\u6AFB\u6AFC"+
- "\u6AFD\u6AFE\u6AFF\u6B00\u6B01\u6B02\u6B03\u6B04"+
- "\u6B05\u6B06\u6B07\u6B08\u6B09\u6B0A\u6B0B\u6B0C"+
- "\u6B0D\u6B0E\u6B0F\u6B10\u6B11\u6B12\u6B13\u6B14"+
- "\u6B15\u6B16\u6B17\u6B18\u6B19\u6B1A\u6B1B\u6B1C"+
- "\u6B1D\u6B1E\u6B1F\u6B20\u6B21\u6B22\u6B23\u6B24"+
- "\u6B25\u6B26\u6B27\u6B28\u6B29\u6B2A\u6B2B\u6B2C"+
- "\u6B2D\u6B2E\u6B2F\u6B30\u6B31\u6B32\u6B33\u6B34"+
- "\u6B35\u6B36\u6B37\u6B38\u6B39\u6B3A\u6B3B\u6B3C"+
- "\u6B3D\u6B3E\u6B3F\u6B40\u6B41\u6B42\u6B43\u6B44"+
- "\u6B45\u6B46\u6B47\u6B48\u6B49\u6B4A\u6B4B\u6B4C"+
- "\u6B4D\u6B4E\u6B4F\u6B50\u6B51\u6B52\u6B53\u6B54"+
- "\u6B55\u6B56\u6B57\u6B58\u6B59\u6B5A\u6B5B\u6B5C"+
- "\u6B5D\u6B5E\u6B5F\u6B60\u6B61\u6B62\u6B63\u6B64"+
- "\u6B65\u6B66\u6B67\u6B68\u6B69\u6B6A\u6B6B\u6B6C"+
- "\u6B6D\u6B6E\u6B6F\u6B70\u6B71\u6B72\u6B73\u6B74"+
- "\u6B75\u6B76\u6B77\u6B78\u6B79\u6B7A\u6B7B\u6B7C"+
- "\u6B7D\u6B7E\u6B7F\u6B80\u6B81\u6B82\u6B83\u6B84"+
- "\u6B85\u6B86\u6B87\u6B88\u6B89\u6B8A\u6B8B\u6B8C"+
- "\u6B8D\u6B8E\u6B8F\u6B90\u6B91\u6B92\u6B93\u6B94"+
- "\u6B95\u6B96\u6B97\u6B98\u6B99\u6B9A\u6B9B\u6B9C"+
- "\u6B9D\u6B9E\u6B9F\u6BA0\u6BA1\u6BA2\u6BA3\u6BA4"+
- "\u6BA5\u6BA6\u6BA7\u6BA8\u6BA9\u6BAA\u6BAB\u6BAC"+
- "\u6BAD\u6BAE\u6BAF\u6BB0\u6BB1\u6BB2\u6BB3\u6BB4"+
- "\u6BB5\u6BB6\u6BB7\u6BB8\u6BB9\u6BBA\u6BBB\u6BBC"+
- "\u6BBD\u6BBE\u6BBF\u6BC0\u6BC1\u6BC2\u6BC3\u6BC4"+
- "\u6BC5\u6BC6\u6BC7\u6BC8\u6BC9\u6BCA\u6BCB\u6BCC"+
- "\u6BCD\u6BCE\u6BCF\u6BD0\u6BD1\u6BD2\u6BD3\u6BD4"+
- "\u6BD5\u6BD6\u6BD7\u6BD8\u6BD9\u6BDA\u6BDB\u6BDC"+
- "\u6BDD\u6BDE\u6BDF\u6BE0\u6BE1\u6BE2\u6BE3\u6BE4"+
- "\u6BE5\u6BE6\u6BE7\u6BE8\u6BE9\u6BEA\u6BEB\u6BEC"+
- "\u6BED\u6BEE\u6BEF\u6BF0\u6BF1\u6BF2\u6BF3\u6BF4"+
- "\u6BF5\u6BF6\u6BF7\u6BF8\u6BF9\u6BFA\u6BFB\u6BFC"+
- "\u6BFD\u6BFE\u6BFF\u6C00\u6C01\u6C02\u6C03\u6C04"+
- "\u6C05\u6C06\u6C07\u6C08\u6C09\u6C0A\u6C0B\u6C0C"+
- "\u6C0D\u6C0E\u6C0F\u6C10\u6C11\u6C12\u6C13\u6C14"+
- "\u6C15\u6C16\u6C17\u6C18\u6C19\u6C1A\u6C1B\u6C1C"+
- "\u6C1D\u6C1E\u6C1F\u6C20\u6C21\u6C22\u6C23\u6C24"+
- "\u6C25\u6C26\u6C27\u6C28\u6C29\u6C2A\u6C2B\u6C2C"+
- "\u6C2D\u6C2E\u6C2F\u6C30\u6C31\u6C32\u6C33\u6C34"+
- "\u6C35\u6C36\u6C37\u6C38\u6C39\u6C3A\u6C3B\u6C3C"+
- "\u6C3D\u6C3E\u6C3F\u6C40\u6C41\u6C42\u6C43\u6C44"+
- "\u6C45\u6C46\u6C47\u6C48\u6C49\u6C4A\u6C4B\u6C4C"+
- "\u6C4D\u6C4E\u6C4F\u6C50\u6C51\u6C52\u6C53\u6C54"+
- "\u6C55\u6C56\u6C57\u6C58\u6C59\u6C5A\u6C5B\u6C5C"+
- "\u6C5D\u6C5E\u6C5F\u6C60\u6C61\u6C62\u6C63\u6C64"+
- "\u6C65\u6C66\u6C67\u6C68\u6C69\u6C6A\u6C6B\u6C6C"+
- "\u6C6D\u6C6E\u6C6F\u6C70\u6C71\u6C72\u6C73\u6C74"+
- "\u6C75\u6C76\u6C77\u6C78\u6C79\u6C7A\u6C7B\u6C7C"+
- "\u6C7D\u6C7E\u6C7F\u6C80\u6C81\u6C82\u6C83\u6C84"+
- "\u6C85\u6C86\u6C87\u6C88\u6C89\u6C8A\u6C8B\u6C8C"+
- "\u6C8D\u6C8E\u6C8F\u6C90\u6C91\u6C92\u6C93\u6C94"+
- "\u6C95\u6C96\u6C97\u6C98\u6C99\u6C9A\u6C9B\u6C9C"+
- "\u6C9D\u6C9E\u6C9F\u6CA0\u6CA1\u6CA2\u6CA3\u6CA4"+
- "\u6CA5\u6CA6\u6CA7\u6CA8\u6CA9\u6CAA\u6CAB\u6CAC"+
- "\u6CAD\u6CAE\u6CAF\u6CB0\u6CB1\u6CB2\u6CB3\u6CB4"+
- "\u6CB5\u6CB6\u6CB7\u6CB8\u6CB9\u6CBA\u6CBB\u6CBC"+
- "\u6CBD\u6CBE\u6CBF\u6CC0\u6CC1\u6CC2\u6CC3\u6CC4"+
- "\u6CC5\u6CC6\u6CC7\u6CC8\u6CC9\u6CCA\u6CCB\u6CCC"+
- "\u6CCD\u6CCE\u6CCF\u6CD0\u6CD1\u6CD2\u6CD3\u6CD4"+
- "\u6CD5\u6CD6\u6CD7\u6CD8\u6CD9\u6CDA\u6CDB\u6CDC"+
- "\u6CDD\u6CDE\u6CDF\u6CE0\u6CE1\u6CE2\u6CE3\u6CE4"+
- "\u6CE5\u6CE6\u6CE7\u6CE8\u6CE9\u6CEA\u6CEB\u6CEC"+
- "\u6CED\u6CEE\u6CEF\u6CF0\u6CF1\u6CF2\u6CF3\u6CF4"+
- "\u6CF5\u6CF6\u6CF7\u6CF8\u6CF9\u6CFA\u6CFB\u6CFC"+
- "\u6CFD\u6CFE\u6CFF\u6D00\u6D01\u6D02\u6D03\u6D04"+
- "\u6D05\u6D06\u6D07\u6D08\u6D09\u6D0A\u6D0B\u6D0C"+
- "\u6D0D\u6D0E\u6D0F\u6D10\u6D11\u6D12\u6D13\u6D14"+
- "\u6D15\u6D16\u6D17\u6D18\u6D19\u6D1A\u6D1B\u6D1C"+
- "\u6D1D\u6D1E\u6D1F\u6D20\u6D21\u6D22\u6D23\u6D24"+
- "\u6D25\u6D26\u6D27\u6D28\u6D29\u6D2A\u6D2B\u6D2C"+
- "\u6D2D\u6D2E\u6D2F\u6D30\u6D31\u6D32\u6D33\u6D34"+
- "\u6D35\u6D36\u6D37\u6D38\u6D39\u6D3A\u6D3B\u6D3C"+
- "\u6D3D\u6D3E\u6D3F\u6D40\u6D41\u6D42\u6D43\u6D44"+
- "\u6D45\u6D46\u6D47\u6D48\u6D49\u6D4A\u6D4B\u6D4C"+
- "\u6D4D\u6D4E\u6D4F\u6D50\u6D51\u6D52\u6D53\u6D54"+
- "\u6D55\u6D56\u6D57\u6D58\u6D59\u6D5A\u6D5B\u6D5C"+
- "\u6D5D\u6D5E\u6D5F\u6D60\u6D61\u6D62\u6D63\u6D64"+
- "\u6D65\u6D66\u6D67\u6D68\u6D69\u6D6A\u6D6B\u6D6C"+
- "\u6D6D\u6D6E\u6D6F\u6D70\u6D71\u6D72\u6D73\u6D74"+
- "\u6D75\u6D76\u6D77\u6D78\u6D79\u6D7A\u6D7B\u6D7C"+
- "\u6D7D\u6D7E\u6D7F\u6D80\u6D81\u6D82\u6D83\u6D84"+
- "\u6D85\u6D86\u6D87\u6D88\u6D89\u6D8A\u6D8B\u6D8C"+
- "\u6D8D\u6D8E\u6D8F\u6D90\u6D91\u6D92\u6D93\u6D94"+
- "\u6D95\u6D96\u6D97\u6D98\u6D99\u6D9A\u6D9B\u6D9C"+
- "\u6D9D\u6D9E\u6D9F\u6DA0\u6DA1\u6DA2\u6DA3\u6DA4"+
- "\u6DA5\u6DA6\u6DA7\u6DA8\u6DA9\u6DAA\u6DAB\u6DAC"+
- "\u6DAD\u6DAE\u6DAF\u6DB0\u6DB1\u6DB2\u6DB3\u6DB4"+
- "\u6DB5\u6DB6\u6DB7\u6DB8\u6DB9\u6DBA\u6DBB\u6DBC"+
- "\u6DBD\u6DBE\u6DBF\u6DC0\u6DC1\u6DC2\u6DC3\u6DC4"+
- "\u6DC5\u6DC6\u6DC7\u6DC8\u6DC9\u6DCA\u6DCB\u6DCC"+
- "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD1\u6DD2\u6DD3\u6DD4"+
- "\u6DD5\u6DD6\u6DD7\u6DD8\u6DD9\u6DDA\u6DDB\u6DDC"+
- "\u6DDD\u6DDE\u6DDF\u6DE0\u6DE1\u6DE2\u6DE3\u6DE4"+
- "\u6DE5\u6DE6\u6DE7\u6DE8\u6DE9\u6DEA\u6DEB\u6DEC"+
- "\u6DED\u6DEE\u6DEF\u6DF0\u6DF1\u6DF2\u6DF3\u6DF4"+
- "\u6DF5\u6DF6\u6DF7\u6DF8\u6DF9\u6DFA\u6DFB\u6DFC"+
- "\u6DFD\u6DFE\u6DFF\u6E00\u6E01\u6E02\u6E03\u6E04"+
- "\u6E05\u6E06\u6E07\u6E08\u6E09\u6E0A\u6E0B\u6E0C"+
- "\u6E0D\u6E0E\u6E0F\u6E10\u6E11\u6E12\u6E13\u6E14"+
- "\u6E15\u6E16\u6E17\u6E18\u6E19\u6E1A\u6E1B\u6E1C"+
- "\u6E1D\u6E1E\u6E1F\u6E20\u6E21\u6E22\u6E23\u6E24"+
- "\u6E25\u6E26\u6E27\u6E28\u6E29\u6E2A\u6E2B\u6E2C"+
- "\u6E2D\u6E2E\u6E2F\u6E30\u6E31\u6E32\u6E33\u6E34"+
- "\u6E35\u6E36\u6E37\u6E38\u6E39\u6E3A\u6E3B\u6E3C"+
- "\u6E3D\u6E3E\u6E3F\u6E40\u6E41\u6E42\u6E43\u6E44"+
- "\u6E45\u6E46\u6E47\u6E48\u6E49\u6E4A\u6E4B\u6E4C"+
- "\u6E4D\u6E4E\u6E4F\u6E50\u6E51\u6E52\u6E53\u6E54"+
- "\u6E55\u6E56\u6E57\u6E58\u6E59\u6E5A\u6E5B\u6E5C"+
- "\u6E5D\u6E5E\u6E5F\u6E60\u6E61\u6E62\u6E63\u6E64"+
- "\u6E65\u6E66\u6E67\u6E68\u6E69\u6E6A\u6E6B\u6E6C"+
- "\u6E6D\u6E6E\u6E6F\u6E70\u6E71\u6E72\u6E73\u6E74"+
- "\u6E75\u6E76\u6E77\u6E78\u6E79\u6E7A\u6E7B\u6E7C"+
- "\u6E7D\u6E7E\u6E7F\u6E80\u6E81\u6E82\u6E83\u6E84"+
- "\u6E85\u6E86\u6E87\u6E88\u6E89\u6E8A\u6E8B\u6E8C"+
- "\u6E8D\u6E8E\u6E8F\u6E90\u6E91\u6E92\u6E93\u6E94"+
- "\u6E95\u6E96\u6E97\u6E98\u6E99\u6E9A\u6E9B\u6E9C"+
- "\u6E9D\u6E9E\u6E9F\u6EA0\u6EA1\u6EA2\u6EA3\u6EA4"+
- "\u6EA5\u6EA6\u6EA7\u6EA8\u6EA9\u6EAA\u6EAB\u6EAC"+
- "\u6EAD\u6EAE\u6EAF\u6EB0\u6EB1\u6EB2\u6EB3\u6EB4"+
- "\u6EB5\u6EB6\u6EB7\u6EB8\u6EB9\u6EBA\u6EBB\u6EBC"+
- "\u6EBD\u6EBE\u6EBF\u6EC0\u6EC1\u6EC2\u6EC3\u6EC4"+
- "\u6EC5\u6EC6\u6EC7\u6EC8\u6EC9\u6ECA\u6ECB\u6ECC"+
- "\u6ECD\u6ECE\u6ECF\u6ED0\u6ED1\u6ED2\u6ED3\u6ED4"+
- "\u6ED5\u6ED6\u6ED7\u6ED8\u6ED9\u6EDA\u6EDB\u6EDC"+
- "\u6EDD\u6EDE\u6EDF\u6EE0\u6EE1\u6EE2\u6EE3\u6EE4"+
- "\u6EE5\u6EE6\u6EE7\u6EE8\u6EE9\u6EEA\u6EEB\u6EEC"+
- "\u6EED\u6EEE\u6EEF\u6EF0\u6EF1\u6EF2\u6EF3\u6EF4"+
- "\u6EF5\u6EF6\u6EF7\u6EF8\u6EF9\u6EFA\u6EFB\u6EFC"+
- "\u6EFD\u6EFE\u6EFF\u6F00\u6F01\u6F02\u6F03\u6F04"+
- "\u6F05\u6F06\u6F07\u6F08\u6F09\u6F0A\u6F0B\u6F0C"+
- "\u6F0D\u6F0E\u6F0F\u6F10\u6F11\u6F12\u6F13\u6F14"+
- "\u6F15\u6F16\u6F17\u6F18\u6F19\u6F1A\u6F1B\u6F1C"+
- "\u6F1D\u6F1E\u6F1F\u6F20\u6F21\u6F22\u6F23\u6F24"+
- "\u6F25\u6F26\u6F27\u6F28\u6F29\u6F2A\u6F2B\u6F2C"+
- "\u6F2D\u6F2E\u6F2F\u6F30\u6F31\u6F32\u6F33\u6F34"+
- "\u6F35\u6F36\u6F37\u6F38\u6F39\u6F3A\u6F3B\u6F3C"+
- "\u6F3D\u6F3E\u6F3F\u6F40\u6F41\u6F42\u6F43\u6F44"+
- "\u6F45\u6F46\u6F47\u6F48\u6F49\u6F4A\u6F4B\u6F4C"+
- "\u6F4D\u6F4E\u6F4F\u6F50\u6F51\u6F52\u6F53\u6F54"+
- "\u6F55\u6F56\u6F57\u6F58\u6F59\u6F5A\u6F5B\u6F5C"+
- "\u6F5D\u6F5E\u6F5F\u6F60\u6F61\u6F62\u6F63\u6F64"+
- "\u6F65\u6F66\u6F67\u6F68\u6F69\u6F6A\u6F6B\u6F6C"+
- "\u6F6D\u6F6E\u6F6F\u6F70\u6F71\u6F72\u6F73\u6F74"+
- "\u6F75\u6F76\u6F77\u6F78\u6F79\u6F7A\u6F7B\u6F7C"+
- "\u6F7D\u6F7E\u6F7F\u6F80\u6F81\u6F82\u6F83\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uAAA1\uAAA2\uAAA3\uAAA4\uAAA5\uAAA6\uAAA7\uAAA8"+
- "\uAAA9\uAAAA\uAAAB\uAAAC\uAAAD\uAAAE\uAAAF\uAAB0"+
- "\uAAB1\uAAB2\uAAB3\uAAB4\uAAB5\uAAB6\uAAB7\uAAB8"+
- "\uAAB9\uAABA\uAABB\uAABC\uAABD\uAABE\uAABF\uAAC0"+
- "\uAAC1\uAAC2\uAAC3\uAAC4\uAAC5\uAAC6\uAAC7\uAAC8"+
- "\uAAC9\uAACA\uAACB\uAACC\uAACD\uAACE\uAACF\uAAD0"+
- "\uAAD1\uAAD2\uAAD3\uAAD4\uAAD5\uAAD6\uAAD7\uAAD8"+
- "\uAAD9\uAADA\uAADB\uAADC\uAADD\uAADE\uAADF\uAAE0"+
- "\uAAE1\uAAE2\uAAE3\uAAE4\uAAE5\uAAE6\uAAE7\uAAE8"+
- "\uAAE9\uAAEA\uAAEB\uAAEC\uAAED\uAAEE\uAAEF\uAAF0"+
- "\uAAF1\uAAF2\uAAF3\uAAF4\uAAF5\uAAF6\uAAF7\uAAF8"+
- "\uAAF9\uAAFA\uAAFB\uAAFC\uAAFD\uAAFE\uABA1\uABA2"+
- "\uABA3\uABA4\uABA5\uABA6\uABA7\uABA8\uABA9\uABAA"+
- "\uABAB\uABAC\uABAD\uABAE\uABAF\uABB0\uABB1\uABB2"+
- "\uABB3\uABB4\uABB5\uABB6\uABB7\uABB8\uABB9\uABBA"+
- "\uABBB\uABBC\uABBD\uABBE\uABBF\uABC0\uABC1\uABC2"+
- "\uABC3\uABC4\uABC5\uABC6\uABC7\uABC8\uABC9\uABCA"+
- "\uABCB\uABCC\uABCD\uABCE\uABCF\uABD0\uABD1\uABD2"+
- "\uABD3\uABD4\uABD5\uABD6\uABD7\uABD8\uABD9\uABDA"+
- "\uABDB\uABDC\uABDD\uABDE\uABDF\uABE0\uABE1\uABE2"+
- "\uABE3\uABE4\uABE5\uABE6\uABE7\uABE8\uABE9\uABEA"+
- "\uABEB\uABEC\uABED\uABEE\uABEF\uABF0\uABF1\uABF2"+
- "\uABF3\uABF4\uABF5\uABF6\uABF7\uABF8\uABF9\uABFA"+
- "\uABFB\uABFC\uABFD\uABFE\uACA1\uACA2\uACA3\uACA4"+
- "\uACA5\uACA6\uACA7\uACA8\uACA9\uACAA\uACAB\uACAC"+
- "\uACAD\uACAE\uACAF\uACB0\uACB1\uACB2\uACB3\uACB4"+
- "\uACB5\uACB6\uACB7\uACB8\uACB9\uACBA\uACBB\uACBC"+
- "\uACBD\uACBE\uACBF\uACC0\uACC1\uACC2\uACC3\uACC4"+
- "\uACC5\uACC6\uACC7\uACC8\uACC9\uACCA\uACCB\uACCC"+
- "\uACCD\uACCE\uACCF\uACD0\uACD1\uACD2\uACD3\uACD4"+
- "\uACD5\uACD6\uACD7\uACD8\uACD9\uACDA\uACDB\uACDC"+
- "\uACDD\uACDE\uACDF\uACE0\uACE1\uACE2\uACE3\uACE4"+
- "\uACE5\uACE6\uACE7\uACE8\uACE9\uACEA\uACEB\uACEC"+
- "\uACED\uACEE\uACEF\uACF0\uACF1\uACF2\uACF3\uACF4"+
- "\uACF5\uACF6\uACF7\uACF8\uACF9\uACFA\uACFB\uACFC"+
- "\uACFD\uACFE\uADA1\uADA2\uADA3\uADA4\uADA5\uADA6"+
- "\uADA7\uADA8\uADA9\uADAA\uADAB\uADAC\uADAD\uADAE"+
- "\uADAF\uADB0\uADB1\uADB2\uADB3\uADB4\uADB5\uADB6"+
- "\uADB7\uADB8\uADB9\uADBA\uADBB\uADBC\uADBD\uADBE"+
- "\uADBF\uADC0\uADC1\uADC2\uADC3\uADC4\uADC5\uADC6"+
- "\uADC7\uADC8\uADC9\uADCA\uADCB\uADCC\uADCD\uADCE"+
- "\uADCF\uADD0\uADD1\uADD2\uADD3\uADD4\uADD5\uADD6"+
- "\uADD7\uADD8\uADD9\uADDA\uADDB\uADDC\uADDD\uADDE"+
- "\uADDF\uADE0\uADE1\uADE2\uADE3\uADE4\uADE5\uADE6"+
- "\uADE7\uADE8\uADE9\uADEA\uADEB\uADEC\uADED\uADEE"+
- "\uADEF\uADF0\uADF1\uADF2\uADF3\uADF4\uADF5\uADF6"+
- "\uADF7\uADF8\uADF9\uADFA\uADFB\uADFC\uADFD\uADFE"+
- "\uAEA1\uAEA2\uAEA3\uAEA4\uAEA5\uAEA6\uAEA7\uAEA8"+
- "\uAEA9\uAEAA\uAEAB\uAEAC\uAEAD\uAEAE\uAEAF\uAEB0"+
- "\uAEB1\uAEB2\uAEB3\uAEB4\uAEB5\uAEB6\uAEB7\uAEB8"+
- "\uAEB9\uAEBA\uAEBB\uAEBC\uAEBD\uAEBE\uAEBF\uAEC0"+
- "\uAEC1\uAEC2\uAEC3\uAEC4\uAEC5\uAEC6\uAEC7\uAEC8"+
- "\uAEC9\uAECA\uAECB\uAECC\uAECD\uAECE\uAECF\uAED0"+
- "\uAED1\uAED2\uAED3\uAED4\uAED5\uAED6\uAED7\uAED8"+
- "\uAED9\uAEDA\uAEDB\uAEDC\uAEDD\uAEDE\uAEDF\uAEE0"+
- "\uAEE1\uAEE2\uAEE3\uAEE4\uAEE5\uAEE6\uAEE7\uAEE8"+
- "\uAEE9\uAEEA\uAEEB\uAEEC\uAEED\uAEEE\uAEEF\uAEF0"+
- "\uAEF1\uAEF2\uAEF3\uAEF4\uAEF5\uAEF6\uAEF7\uAEF8"+
- "\uAEF9\uAEFA\uAEFB\uAEFC\uAEFD\uAEFE\uAFA1\uAFA2"+
- "\uAFA3\uAFA4\uAFA5\uAFA6\uAFA7\uAFA8\uAFA9\uAFAA"+
- "\uAFAB\uAFAC\uAFAD\uAFAE\uAFAF\uAFB0\uAFB1\uAFB2"+
- "\uAFB3\uAFB4\uAFB5\uAFB6\uAFB7\uAFB8\uAFB9\uAFBA"+
- "\uAFBB\uAFBC\uAFBD\uAFBE\uAFBF\uAFC0\uAFC1\uAFC2"+
- "\uAFC3\uAFC4\uAFC5\uAFC6\uAFC7\uAFC8\uAFC9\uAFCA"+
- "\uAFCB\uAFCC\uAFCD\uAFCE\uAFCF\uAFD0\uAFD1\uAFD2"+
- "\uAFD3\uAFD4\uAFD5\uAFD6\uAFD7\uAFD8\uAFD9\uAFDA"+
- "\uAFDB\uAFDC\uAFDD\uAFDE\uAFDF\uAFE0\uAFE1\uAFE2"+
- "\uAFE3\uAFE4\uAFE5\uAFE6\uAFE7\uAFE8\uAFE9\uAFEA"+
- "\uAFEB\uAFEC\uAFED\uAFEE\uAFEF\uAFF0\uAFF1\uAFF2"+
- "\uAFF3\uAFF4\uAFF5\uAFF6\uAFF7\uAFF8\uAFF9\uAFFA"+
- "\uAFFB\uAFFC\uAFFD\uAFFE\uF8A1\uF8A2\uF8A3\uF8A4"+
- "\uF8A5\uF8A6\uF8A7\uF8A8\uF8A9\uF8AA\uF8AB\uF8AC"+
- "\uF8AD\uF8AE\uF8AF\uF8B0\uF8B1\uF8B2\uF8B3\uF8B4"+
- "\uF8B5\uF8B6\uF8B7\uF8B8\uF8B9\uF8BA\uF8BB\uF8BC"+
- "\uF8BD\uF8BE\uF8BF\uF8C0\uF8C1\uF8C2\uF8C3\uF8C4"+
- "\uF8C5\uF8C6\uF8C7\uF8C8\uF8C9\uF8CA\uF8CB\uF8CC"+
- "\uF8CD\uF8CE\uF8CF\uF8D0\uF8D1\uF8D2\uF8D3\uF8D4"+
- "\uF8D5\uF8D6\uF8D7\uF8D8\uF8D9\uF8DA\uF8DB\uF8DC"+
- "\uF8DD\uF8DE\uF8DF\uF8E0\uF8E1\uF8E2\uF8E3\uF8E4"+
- "\uF8E5\uF8E6\uF8E7\uF8E8\uF8E9\uF8EA\uF8EB\uF8EC"+
- "\uF8ED\uF8EE\uF8EF\uF8F0\uF8F1\uF8F2\uF8F3\uF8F4"+
- "\uF8F5\uF8F6\uF8F7\uF8F8\uF8F9\uF8FA\uF8FB\uF8FC"+
- "\uF8FD\uF8FE\uF9A1\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6"+
- "\uF9A7\uF9A8\uF9A9\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE"+
- "\uF9AF\uF9B0\uF9B1\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6"+
- "\uF9B7\uF9B8\uF9B9\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE"+
- "\uF9BF\uF9C0\uF9C1\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6"+
- "\uF9C7\uF9C8\uF9C9\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE"+
- "\uF9CF\uF9D0\uF9D1\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6"+
- "\uF9D7\uF9D8\uF9D9\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE"+
- "\uF9DF\uF9E0\uF9E1\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6"+
- "\uF9E7\uF9E8\uF9E9\uF9EA\uF9EB\uF9EC\uF9ED\uF9EE"+
- "\uF9EF\uF9F0\uF9F1\uF9F2\uF9F3\uF9F4\uF9F5\uF9F6"+
- "\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB\uF9FC\uF9FD\uF9FE"+
- "\uFAA1\uFAA2\uFAA3\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8"+
- "\uFAA9\uFAAA\uFAAB\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0"+
- "\uFAB1\uFAB2\uFAB3\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8"+
- "\uFAB9\uFABA\uFABB\uFABC\uFABD\uFABE\uFABF\uFAC0"+
- "\uFAC1\uFAC2\uFAC3\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8"+
- "\uFAC9\uFACA\uFACB\uFACC\uFACD\uFACE\uFACF\uFAD0"+
- "\uFAD1\uFAD2\uFAD3\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8"+
- "\uFAD9\uFADA\uFADB\uFADC\uFADD\uFADE\uFADF\uFAE0"+
- "\uFAE1\uFAE2\uFAE3\uFAE4\uFAE5\uFAE6\uFAE7\uFAE8"+
- "\uFAE9\uFAEA\uFAEB\uFAEC\uFAED\uFAEE\uFAEF\uFAF0"+
- "\uFAF1\uFAF2\uFAF3\uFAF4\uFAF5\uFAF6\uFAF7\uFAF8"+
- "\uFAF9\uFAFA\uFAFB\uFAFC\uFAFD\uFAFE\uFBA1\uFBA2"+
- "\uFBA3\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA"+
- "\uFBAB\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBB2"+
- "\uFBB3\uFBB4\uFBB5\uFBB6\uFBB7\uFBB8\uFBB9\uFBBA"+
- "\uFBBB\uFBBC\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2"+
- "\uFBC3\uFBC4\uFBC5\uFBC6\uFBC7\uFBC8\uFBC9\uFBCA"+
- "\uFBCB\uFBCC\uFBCD\uFBCE\uFBCF\uFBD0\uFBD1\uFBD2"+
- "\uFBD3\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA"+
- "\uFBDB\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2"+
- "\uFBE3\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA"+
- "\uFBEB\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2"+
- "\uFBF3\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA"+
- "\uFBFB\uFBFC\uFBFD\uFBFE\uFCA1\uFCA2\uFCA3\uFCA4"+
- "\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB\uFCAC"+
- "\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3\uFCB4"+
- "\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB\uFCBC"+
- "\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3\uFCC4"+
- "\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB\uFCCC"+
- "\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3\uFCD4"+
- "\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB\uFCDC"+
- "\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3\uFCE4"+
- "\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB\uFCEC"+
- "\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3\uFCF4"+
- "\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB\uFCFC"+
- "\uFCFD\uFCFE\uFDA1\uFDA2\uFDA3\uFDA4\uFDA5\uFDA6"+
- "\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB\uFDAC\uFDAD\uFDAE"+
- "\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3\uFDB4\uFDB5\uFDB6"+
- "\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB\uFDBC\uFDBD\uFDBE"+
- "\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3\uFDC4\uFDC5\uFDC6"+
- "\uFDC7\uFDC8\uFDC9\uFDCA\uFDCB\uFDCC\uFDCD\uFDCE"+
- "\uFDCF\uFDD0\uFDD1\uFDD2\uFDD3\uFDD4\uFDD5\uFDD6"+
- "\uFDD7\uFDD8\uFDD9\uFDDA\uFDDB\uFDDC\uFDDD\uFDDE"+
- "\uFDDF\uFDE0\uFDE1\uFDE2\uFDE3\uFDE4\uFDE5\uFDE6"+
- "\uFDE7\uFDE8\uFDE9\uFDEA\uFDEB\uFDEC\uFDED\uFDEE"+
- "\uFDEF\uFDF0\uFDF1\uFDF2\uFDF3\uFDF4\uFDF5\uFDF6"+
- "\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB\uFDFC\uFDFD\uFDFE"+
- "\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7\uFEA8"+
- "\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF\uFEB0"+
- "\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7\uFEB8"+
- "\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF\uFEC0"+
- "\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7\uFEC8"+
- "\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0"+
- "\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7\uFED8"+
- "\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF\uFEE0"+
- "\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7\uFEE8"+
- "\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF\uFEF0"+
- "\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7\uFEF8"+
- "\uFEF9\uFEFA\uFEFB\uFEFC\uFEFD\uFEFE\uA140\uA141"+
- "\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149"+
- "\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151"+
- "\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159"+
- "\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161"+
- "\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169"+
- "\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171"+
- "\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179"+
- "\uA17A\uA17B\uA17C\uA17D\uA17E\uA180\uA181\uA182"+
- "\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A"+
- "\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192"+
- "\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A"+
- "\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA240\uA241"+
- "\uA242\uA243\uA244\uA245\uA246\uA247\uA248\uA249"+
- "\uA24A\uA24B\uA24C\uA24D\uA24E\uA24F\uA250\uA251"+
- "\uA252\uA253\uA254\uA255\uA256\uA257\uA258\uA259"+
- "\uA25A\uA25B\uA25C\uA25D\uA25E\uA25F\uA260\uA261"+
- "\uA262\uA263\uA264\uA265\uA266\uA267\uA268\uA269"+
- "\uA26A\uA26B\uA26C\uA26D\uA26E\uA26F\uA270\uA271"+
- "\uA272\uA273\uA274\uA275\uA276\uA277\uA278\uA279"+
- "\uA27A\uA27B\uA27C\uA27D\uA27E\uA280\uA281\uA282"+
- "\uA283\uA284\uA285\uA286\uA287\uA288\uA289\uA28A"+
- "\uA28B\uA28C\uA28D\uA28E\uA28F\uA290\uA291\uA292"+
- "\uA293\uA294\uA295\uA296\uA297\uA298\uA299\uA29A"+
- "\uA29B\uA29C\uA29D\uA29E\uA29F\uA2A0\uA340\uA341"+
- "\uA342\uA343\uA344\uA345\uA346\uA347\uA348\uA349"+
- "\uA34A\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351"+
- "\uA352\uA353\uA354\uA355\uA356\uA357\uA358\uA359"+
- "\uA35A\uA35B\uA35C\uA35D\uA35E\uA35F\uA360\uA361"+
- "\uA362\uA363\uA364\uA365\uA366\uA367\uA368\uA369"+
- "\uA36A\uA36B\uA36C\uA36D\uA36E\uA36F\uA370\uA371"+
- "\uA372\uA373\uA374\uA375\uA376\uA377\uA378\uA379"+
- "\uA37A\uA37B\uA37C\uA37D\uA37E\uA380\uA381\uA382"+
- "\uA383\uA384\uA385\uA386\uA387\uA388\uA389\uA38A"+
- "\uA38B\uA38C\uA38D\uA38E\uA38F\uA390\uA391\uA392"+
- "\uA393\uA394\uA395\uA396\uA397\uA398\uA399\uA39A"+
- "\uA39B\uA39C\uA39D\uA39E\uA39F\uA3A0\uA440\uA441"+
- "\uA442\uA443\uA444\uA445\uA446\uA447\uA448\uA449"+
- "\uA44A\uA44B\uA44C\uA44D\uA44E\uA44F\uA450\uA451"+
- "\uA452\uA453\uA454\uA455\uA456\uA457\uA458\uA459"+
- "\uA45A\uA45B\uA45C\uA45D\uA45E\uA45F\uA460\uA461"+
- "\uA462\uA463\uA464\uA465\uA466\uA467\uA468\uA469"+
- "\uA46A\uA46B\uA46C\uA46D\uA46E\uA46F\uA470\uA471"+
- "\uA472\uA473\uA474\uA475\uA476\uA477\uA478\uA479"+
- "\uA47A\uA47B\uA47C\uA47D\uA47E\uA480\uA481\uA482"+
- "\uA483\uA484\uA485\uA486\uA487\uA488\uA489\uA48A"+
- "\uA48B\uA48C\uA48D\uA48E\uA48F\uA490\uA491\uA492"+
- "\uA493\uA494\uA495\uA496\uA497\uA498\uA499\uA49A"+
- "\uA49B\uA49C\uA49D\uA49E\uA49F\uA4A0\uA540\uA541"+
- "\uA542\uA543\uA544\uA545\uA546\uA547\uA548\uA549"+
- "\uA54A\uA54B\uA54C\uA54D\uA54E\uA54F\uA550\uA551"+
- "\uA552\uA553\uA554\uA555\uA556\uA557\uA558\uA559"+
- "\uA55A\uA55B\uA55C\uA55D\uA55E\uA55F\uA560\uA561"+
- "\uA562\uA563\uA564\uA565\uA566\uA567\uA568\uA569"+
- "\uA56A\uA56B\uA56C\uA56D\uA56E\uA56F\uA570\uA571"+
- "\uA572\uA573\uA574\uA575\uA576\uA577\uA578\uA579"+
- "\uA57A\uA57B\uA57C\uA57D\uA57E\uA580\uA581\uA582"+
- "\uA583\uA584\uA585\uA586\uA587\uA588\uA589\uA58A"+
- "\uA58B\uA58C\uA58D\uA58E\uA58F\uA590\uA591\uA592"+
- "\uA593\uA594\uA595\uA596\uA597\uA598\uA599\uA59A"+
- "\uA59B\uA59C\uA59D\uA59E\uA59F\uA5A0\uA640\uA641"+
- "\uA642\uA643\uA644\uA645\uA646\uA647\uA648\uA649"+
- "\uA64A\uA64B\uA64C\uA64D\uA64E\uA64F\uA650\uA651"+
- "\uA652\uA653\uA654\uA655\uA656\uA657\uA658\uA659"+
- "\uA65A\uA65B\uA65C\uA65D\uA65E\uA65F\uA660\uA661"+
- "\uA662\uA663\uA664\uA665\uA666\uA667\uA668\uA669"+
- "\uA66A\uA66B\uA66C\uA66D\uA66E\uA66F\uA670\uA671"+
- "\uA672\uA673\uA674\uA675\uA676\uA677\uA678\uA679"+
- "\uA67A\uA67B\uA67C\uA67D\uA67E\uA680\uA681\uA682"+
- "\uA683\uA684\uA685\uA686\uA687\uA688\uA689\uA68A"+
- "\uA68B\uA68C\uA68D\uA68E\uA68F\uA690\uA691\uA692"+
- "\uA693\uA694\uA695\uA696\uA697\uA698\uA699\uA69A"+
- "\uA69B\uA69C\uA69D\uA69E\uA69F\uA6A0\uA740\uA741"+
- "\uA742\uA743\uA744\uA745\uA746\uA747\uA748\uA749"+
- "\uA74A\uA74B\uA74C\uA74D\uA74E\uA74F\uA750\uA751"+
- "\uA752\uA753\uA754\uA755\uA756\uA757\uA758\uA759"+
- "\uA75A\uA75B\uA75C\uA75D\uA75E\uA75F\uA760\uA761"+
- "\uA762\uA763\uA764\uA765\uA766\uA767\uA768\uA769"+
- "\uA76A\uA76B\uA76C\uA76D\uA76E\uA76F\uA770\uA771"+
- "\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA779"+
- "\uA77A\uA77B\uA77C\uA77D\uA77E\uA780\uA781\uA782"+
- "\uA783\uA784\uA785\uA786\uA787\uA788\uA789\uA78A"+
- "\uA78B\uA78C\uA78D\uA78E\uA78F\uA790\uA791\uA792"+
- "\uA793\uA794\uA795\uA796\uA797\uA798\uA799\uA79A"+
- "\uA79B\uA79C\uA79D\uA79E\uA79F\uA7A0\uA2AB\uA2AC"+
- "\uA2AD\uA2AE\uA2AF\uA2B0\u2000\uA2E4\uA2EF\uA2F0"+
- "\uA2FD\uA2FE\uA4F4\uA4F5\uA4F6\uA4F7\uA4F8\uA4F9"+
- "\uA4FA\uA4FB\uA4FC\uA4FD\uA4FE\uA5F7\uA5F8\uA5F9"+
- "\uA5FA\uA5FB\uA5FC\uA5FD\uA5FE\uA6B9\uA6BA\uA6BB"+
- "\uA6BC\uA6BD\uA6BE\uA6BF\uA6C0\uA6D9\uA6DA\uA6DB"+
- "\uA6DC\uA6DD\uA6DE\uA6DF\uA6EC\uA6ED\uA6F3\uA6F6"+
- "\uA6F7\uA6F8\uA6F9\uA6FA\uA6FB\uA6FC\uA6FD\uA6FE"+
- "\uA7C2\uA7C3\uA7C4\uA7C5\uA7C6\uA7C7\uA7C8\uA7C9"+
- "\uA7CA\uA7CB\uA7CC\uA7CD\uA7CE\uA7CF\uA7D0\uA7F2"+
- "\uA7F3\uA7F4\uA7F5\uA7F6\uA7F7\uA7F8\uA7F9\uA7FA"+
- "\uA7FB\uA7FC\uA7FD\uA7FE\uA896\uA897\uA898\uA899"+
- "\uA89A\uA89B\uA89C\uA89D\uA89E\uA89F\uA8A0\uA8BC"+
- "\u2001\uA8C1\uA8C2\uA8C3\uA8C4\uA8EA\uA8EB\uA8EC"+
- "\uA8ED\uA8EE\uA8EF\uA8F0\uA8F1\uA8F2\uA8F3\uA8F4"+
- "\uA8F5\uA8F6\uA8F7\uA8F8\uA8F9\uA8FA\uA8FB\uA8FC"+
- "\uA8FD\uA8FE\uA958\uA95B\uA95D\uA95E\uA95F\u2002"+
- "\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A"+
- "\u200B\u200C\u200D\u200E\uA997\uA998\uA999\uA99A"+
- "\uA99B\uA99C\uA99D\uA99E\uA99F\uA9A0\uA9A1\uA9A2"+
- "\uA9A3\uA9F0\uA9F1\uA9F2\uA9F3\uA9F4\uA9F5\uA9F6"+
- "\uA9F7\uA9F8\uA9F9\uA9FA\uA9FB\uA9FC\uA9FD\uA9FE"+
- "\uD7FA\uD7FB\uD7FC\uD7FD\uD7FE\u200F\uFE51\uFE52"+
- "\uFE53\u2010\u2011\u2012\u2013\u2014\uFE59\u2015"+
- "\u2016\u2017\u2018\u2019\u201A\u201B\uFE61\u201C"+
- "\u201D\u201E\u201F\uFE66\uFE67\u2020\u2021\u2022"+
- "\u2023\uFE6C\uFE6D\u2024\u2025\u2026\u2027\u2028"+
- "\u2029\u202A\u202B\uFE76\u202C\u202D\u202E\u202F"+
- "\u2030\u2031\u2032\uFE7E\u2033\u2034\u2035\u2036"+
- "\u2037\u2038\u2039\u203A\u203B\u203C\u203D\u203E"+
- "\u203F\u2040\u2041\u2042\uFE90\uFE91\u2043\u2044"+
- "\u2045\u2046\u2047\u2048\u2049\u204A\u204B\u204C"+
- "\u204D\u204E\u204F\u2050\uFEA0\u2051\u2052\u2053"+
- "\u2054\u2055\u2056\u2057\u2058\u2059\u205A\u205B"+
- "\u205C\u205D\u205E\u205F\u2060\u2061\u2062\u2063"+
- "\u2064\u2065\u2066\u2067\u2068\u2069\u206A\u206B"+
- "\u206C\u206D\u206E\u206F\u2070\u2071\u2072\u2073"+
- "\u2074\u2075\u2076\u2077\u2078\u2079\u207A\u207B"+
- "\u207C\u207D\u207E\u207F\u2080\u2081\u2082\u2083"+
- "\u2084\u2085\u2086\u2087\u2088\u2089\u208A\u208B"+
- "\u208C\u208D\u208E\u208F\u2090\u2091\u2092\u2093"+
- "\u2094\u2095\u2096\u2097\u2098\u2099\u209A\u209B"+
- "\u209C\u209D\u209E\u209F\u20A0\u20A1\u20A2\u20A3"+
- "\u20A4\u20A5\u20A6\u20A7\u20A8\u20A9\u20AA\u20AB"+
- "\u20AC\u20AD\u20AE\u20AF\u20B0\u20B1\u20B2\u20B3"+
- "\u20B4\u20B5\u20B6\u20B7\u20B8\u20B9\u20BA\u20BB"+
- "\u20BC\u20BD\u20BE\u20BF\u20C0\u20C1\u20C2\u20C3"+
- "\u20C4\u20C5\u20C6\u20C7\u20C8\u20C9\u20CA\u20CB"+
- "\u20CC\u20CD\u20CE\u20CF\u20D0\u20D1\u20D2\u20D3"+
- "\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB"+
- "\u20DC\u20DD\u20DE\u20DF\u20E0\u20E1\u20E2\u20E3"+
- "\u20E4\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB"+
- "\u20EC\u20ED\u20EE\u20EF\u20F0\u20F1\u20F2\u20F3"+
- "\u20F4\u20F5\u20F6\u20F7\u20F8\u20F9\u20FA\u20FB"+
- "\u20FC\u20FD\u20FE\u20FF\u2100\u2101\u2102\u2103"+
- "\u2104\u2105\u2106\u2107\u2108\u2109\u210A\u210B"+
- "\u210C\u210D\u210E\u210F\u2110\u2111\u2112\u2113"+
- "\u2114\u2115\u2116\u2117\u2118\u2119\u211A\u211B"+
- "\u211C\u211D\u211E\u211F\u2120\u2121\u2122\u2123"+
- "\u2124\u2125\u2126\u2127\u2128\u2129\u212A\u212B"+
- "\u212C\u212D\u212E\u212F\u2130\u2131\u2132\u2133"+
- "\u2134\u2135\u2136\u2137\u2138\u2139\u213A\u213B"+
- "\u213C\u213D\u213E\u213F\u2140\u2141\u2142\u2143"+
- "\u2144\u2145\u2146\u2147\u2148\u2149\u214A\u214B"+
- "\u214C\u214D\u214E\u214F\u2150\u2151\u2152\u2153"+
- "\u2154\u2155\u2156\u2157\u2158\u2159\u215A\u215B"+
- "\u215C\u215D\u215E\u215F\u2160\u2161\u2162\u2163"+
- "\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B"+
- "\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173"+
- "\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B"+
- "\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2183"+
- "\u2184\u2185\u2186\u2187\u2188\u2189\u218A\u218B"+
- "\u218C\u218D\u218E\u218F\u2190\u2191\u2192\u2193"+
- "\u2194\u2195\u2196\u2197\u2198\u2199\u219A\u219B"+
- "\u219C\u219D\u219E\u219F\u21A0\u21A1\u21A2\u21A3"+
- "\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9\u21AA\u21AB"+
- "\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1\u21B2\u21B3"+
- "\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9\u21BA\u21BB"+
- "\u21BC\u21BD\u21BE\u21BF\u21C0\u21C1\u21C2\u21C3"+
- "\u21C4\u21C5\u21C6\u21C7\u21C8\u21C9\u21CA\u21CB"+
- "\u21CC\u21CD\u21CE\u21CF\u21D0\u21D1\u21D2\u21D3"+
- "\u21D4\u21D5\u21D6\u21D7\u21D8\u21D9\u21DA\u21DB"+
- "\u21DC\u21DD\u21DE\u21DF\u21E0\u21E1\u21E2\u21E3"+
- "\u21E4\u21E5\u21E6\u21E7\u21E8\u21E9\u21EA\u21EB"+
- "\u21EC\u21ED\u21EE\u21EF\u21F0\u21F1\u21F2\u21F3"+
- "\u21F4\u21F5\u21F6\u21F7\u21F8\u21F9\u21FA\u21FB"+
- "\u21FC\u21FD\u21FE\u21FF\u2200\u2201\u2202\u2203"+
- "\u2204\u2205\u2206\u2207\u2208\u2209\u220A\u220B"+
- "\u220C\u220D\u220E\u220F\u2210\u2211\u2212\u2213"+
- "\u2214\u2215\u2216\u2217\u2218\u2219\u221A\u221B"+
- "\u221C\u221D\u221E\u221F\u2220\u2221\u2222\u2223"+
- "\u2224\u2225\u2226\u2227\u2228\u2229\u222A\u222B"+
- "\u222C\u222D\u222E\u222F\u2230\u2231\u2232\u2233"+
- "\u2234\u2235\u2236\u2237\u2238\u2239\u223A\u223B"+
- "\u223C\u223D\u223E\u223F\u2240\u2241\u2242\u2243"+
- "\u2244\u2245\u2246\u2247\u2248\u2249\u224A\u224B"+
- "\u224C\u224D\u224E\u224F\u2250\u2251\u2252\u2253"+
- "\u2254\u2255\u2256\u2257\u2258\u2259\u225A\u225B"+
- "\u225C\u225D\u225E\u225F\u2260\u2261\u2262\u2263"+
- "\u2264\u2265\u2266\u2267\u2268\u2269\u226A\u226B"+
- "\u226C\u226D\u226E\u226F\u2270\u2271\u2272\u2273"+
- "\u2274\u2275\u2276\u2277\u2278\u2279\u227A\u227B"+
- "\u227C\u227D\u227E\u227F\u2280\u2281\u2282\u2283"+
- "\u2284\u2285\u2286\u2287\u2288\u2289\u228A\u228B"+
- "\u228C\u228D\u228E\u228F\u2290\u2291\u2292\u2293"+
- "\u2294\u2295\u2296\u2297\u2298\u2299\u229A\u229B"+
- "\u229C\u229D\u229E\u229F\u22A0\u22A1\u22A2\u22A3"+
- "\u22A4\u22A5\u22A6\u22A7\u22A8\u22A9\u22AA\u22AB"+
- "\u22AC\u22AD\u22AE\u22AF\u22B0\u22B1\u22B2\u22B3"+
- "\u22B4\u22B5\u22B6\u22B7\u22B8\u22B9\u22BA\u22BB"+
- "\u22BC\u22BD\u22BE\u22BF\u22C0\u22C1\u22C2\u22C3"+
- "\u22C4\u22C5\u22C6\u22C7\u22C8\u22C9\u22CA\u22CB"+
- "\u22CC\u22CD\u22CE\u22CF\u22D0\u22D1\u22D2\u22D3"+
- "\u22D4\u22D5\u22D6\u22D7\u22D8\u22D9\u22DA\u22DB"+
- "\u22DC\u22DD\u22DE\u22DF\u22E0\u22E1\u22E2\u22E3"+
- "\u22E4\u22E5\u22E6\u22E7\u22E8\u22E9\u22EA\u22EB";
-
- private final static String innerEncoderIndex11=
- "\u22EC\u22ED\u22EE\u22EF\u22F0\u22F1\u22F2\u22F3"+
- "\u22F4\u22F5\u22F6\u22F7\u22F8\u22F9\u22FA\u22FB"+
- "\u22FC\u22FD\u22FE\u22FF\u2300\u2301\u2302\u2303"+
- "\u2304\u2305\u2306\u2307\u2308\u2309\u230A\u230B"+
- "\u230C\u230D\u230E\u230F\u2310\u2311\u2312\u2313"+
- "\u2314\u2315\u2316\u2317\u2318\u2319\u231A\u231B"+
- "\u231C\u231D\u231E\u231F\u2320\u2321\u2322\u2323"+
- "\u2324\u2325\u2326\u2327\u2328\u2329\u232A\u232B"+
- "\u232C\u232D\u232E\u232F\u2330\u2331\u2332\u2333"+
- "\u2334\u2335\u2336\u2337\u2338\u2339\u233A\u233B"+
- "\u233C\u233D\u233E\u233F\u2340\u2341\u2342\u2343"+
- "\u2344\u2345\u2346\u2347\u2348\u2349\u234A\u234B"+
- "\u234C\u234D\u234E\u234F\u2350\u2351\u2352\u2353"+
- "\u2354\u2355\u2356\u2357\u2358\u2359\u235A\u235B"+
- "\u235C\u235D\u235E\u235F\u2360\u2361\u2362\u2363"+
- "\u2364\u2365\u2366\u2367\u2368\u2369\u236A\u236B"+
- "\u236C\u236D\u236E\u236F\u2370\u2371\u2372\u2373"+
- "\u2374\u2375\u2376\u2377\u2378\u2379\u237A\u237B"+
- "\u237C\u237D\u237E\u237F\u2380\u2381\u2382\u2383"+
- "\u2384\u2385\u2386\u2387\u2388\u2389\u238A\u238B"+
- "\u238C\u238D\u238E\u238F\u2390\u2391\u2392\u2393"+
- "\u2394\u2395\u2396\u2397\u2398\u2399\u239A\u239B"+
- "\u239C\u239D\u239E\u239F\u23A0\u23A1\u23A2\u23A3"+
- "\u23A4\u23A5\u23A6\u23A7\u23A8\u23A9\u23AA\u23AB"+
- "\u23AC\u23AD\u23AE\u23AF\u23B0\u23B1\u23B2\u23B3"+
- "\u23B4\u23B5\u23B6\u23B7\u23B8\u23B9\u23BA\u23BB"+
- "\u23BC\u23BD\u23BE\u23BF\u23C0\u23C1\u23C2\u23C3"+
- "\u23C4\u23C5\u23C6\u23C7\u23C8\u23C9\u23CA\u23CB"+
- "\u23CC\u23CD\u23CE\u23CF\u23D0\u23D1\u23D2\u23D3"+
- "\u23D4\u23D5\u23D6\u23D7\u23D8\u23D9\u23DA\u23DB"+
- "\u23DC\u23DD\u23DE\u23DF\u23E0\u23E1\u23E2\u23E3"+
- "\u23E4\u23E5\u23E6\u23E7\u23E8\u23E9\u23EA\u23EB"+
- "\u23EC\u23ED\u23EE\u23EF\u23F0\u23F1\u23F2\u23F3"+
- "\u23F4\u23F5\u23F6\u23F7\u23F8\u23F9\u23FA\u23FB"+
- "\u23FC\u23FD\u23FE\u23FF\u2400\u2401\u2402\u2403"+
- "\u2404\u2405\u2406\u2407\u2408\u2409\u240A\u240B"+
- "\u240C\u240D\u240E\u240F\u2410\u2411\u2412\u2413"+
- "\u2414\u2415\u2416\u2417\u2418\u2419\u241A\u241B"+
- "\u241C\u241D\u241E\u241F\u2420\u2421\u2422\u2423"+
- "\u2424\u2425\u2426\u2427\u2428\u2429\u242A\u242B"+
- "\u242C\u242D\u242E\u242F\u2430\u2431\u2432\u2433"+
- "\u2434\u2435\u2436\u2437\u2438\u2439\u243A\u243B"+
- "\u243C\u243D\u243E\u243F\u2440\u2441\u2442\u2443"+
- "\u2444\u2445\u2446\u2447\u2448\u2449\u244A\u244B"+
- "\u244C\u244D\u244E\u244F\u2450\u2451\u2452\u2453"+
- "\u2454\u2455\u2456\u2457\u2458\u2459\u245A\u245B"+
- "\u245C\u245D\u245E\u245F\u2460\u2461\u2462\u2463"+
- "\u2464\u2465\u2466\u2467\u2468\u2469\u246A\u246B"+
- "\u246C\u246D\u246E\u246F\u2470\u2471\u2472\u2473"+
- "\u2474\u2475\u2476\u2477\u2478\u2479\u247A\u247B"+
- "\u247C\u247D\u247E\u247F\u2480\u2481\u2482\u2483"+
- "\u2484\u2485\u2486\u2487\u2488\u2489\u248A\u248B"+
- "\u248C\u248D\u248E\u248F\u2490\u2491\u2492\u2493"+
- "\u2494\u2495\u2496\u2497\u2498\u2499\u249A\u249B"+
- "\u249C\u249D\u249E\u249F\u24A0\u24A1\u24A2\u24A3"+
- "\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9\u24AA\u24AB"+
- "\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1\u24B2\u24B3"+
- "\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9\u24BA\u24BB"+
- "\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1\u24C2\u24C3"+
- "\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9\u24CA\u24CB"+
- "\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1\u24D2\u24D3"+
- "\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9\u24DA\u24DB"+
- "\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1\u24E2\u24E3"+
- "\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9\u24EA\u24EB"+
- "\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1\u24F2\u24F3"+
- "\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9\u24FA\u24FB"+
- "\u24FC\u24FD\u24FE\u24FF\u2500\u2501\u2502\u2503"+
- "\u2504\u2505\u2506\u2507\u2508\u2509\u250A\u250B"+
- "\u250C\u250D\u250E\u250F\u2510\u2511\u2512\u2513"+
- "\u2514\u2515\u2516\u2517\u2518\u2519\u251A\u251B"+
- "\u251C\u251D\u251E\u251F\u2520\u2521\u2522\u2523"+
- "\u2524\u2525\u2526\u2527\u2528\u2529\u252A\u252B"+
- "\u252C\u252D\u252E\u252F\u2530\u2531\u2532\u2533"+
- "\u2534\u2535\u2536\u2537\u2538\u2539\u253A\u253B"+
- "\u253C\u253D\u253E\u253F\u2540\u2541\u2542\u2543"+
- "\u2544\u2545\u2546\u2547\u2548\u2549\u254A\u254B"+
- "\u254C\u254D\u254E\u254F\u2550\u2551\u2552\u2553"+
- "\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B"+
- "\u255C\u255D\u255E\u255F\u2560\u2561\u2562\u2563"+
- "\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B"+
- "\u256C\u256D\u256E\u256F\u2570\u2571\u2572\u2573"+
- "\u2574\u2575\u2576\u2577\u2578\u2579\u257A\u257B"+
- "\u257C\u257D\u257E\u257F\u2580\u2581\u2582\u2583"+
- "\u2584\u2585\u2586\u2587\u2588\u2589\u258A\u258B"+
- "\u258C\u258D\u258E\u258F\u2590\u2591\u2592\u2593"+
- "\u2594\u2595\u2596\u2597\u2598\u2599\u259A\u259B"+
- "\u259C\u259D\u259E\u259F\u25A0\u25A1\u25A2\u25A3"+
- "\u25A4\u25A5\u25A6\u25A7\u25A8\u25A9\u25AA\u25AB"+
- "\u25AC\u25AD\u25AE\u25AF\u25B0\u25B1\u25B2\u25B3"+
- "\u25B4\u25B5\u25B6\u25B7\u25B8\u25B9\u25BA\u25BB"+
- "\u25BC\u25BD\u25BE\u25BF\u25C0\u25C1\u25C2\u25C3"+
- "\u25C4\u25C5\u25C6\u25C7\u25C8\u25C9\u25CA\u25CB"+
- "\u25CC\u25CD\u25CE\u25CF\u25D0\u25D1\u25D2\u25D3"+
- "\u25D4\u25D5\u25D6\u25D7\u25D8\u25D9\u25DA\u25DB"+
- "\u25DC\u25DD\u25DE\u25DF\u25E0\u25E1\u25E2\u25E3"+
- "\u25E4\u25E5\u25E6\u25E7\u25E8\u25E9\u25EA\u25EB"+
- "\u25EC\u25ED\u25EE\u25EF\u25F0\u25F1\u25F2\u25F3"+
- "\u25F4\u25F5\u25F6\u25F7\u25F8\u25F9\u25FA\u25FB"+
- "\u25FC\u25FD\u25FE\u25FF\u2600\u2601\u2602\u2603"+
- "\u2604\u2605\u2606\u2607\u2608\u2609\u260A\u260B"+
- "\u260C\u260D\u260E\u260F\u2610\u2611\u2612\u2613"+
- "\u2614\u2615\u2616\u2617\u2618\u2619\u261A\u261B"+
- "\u261C\u261D\u261E\u261F\u2620\u2621\u2622\u2623"+
- "\u2624\u2625\u2626\u2627\u2628\u2629\u262A\u262B"+
- "\u262C\u262D\u262E\u262F\u2630\u2631\u2632\u2633"+
- "\u2634\u2635\u2636\u2637\u2638\u2639\u263A\u263B"+
- "\u263C\u263D\u263E\u263F\u2640\u2641\u2642\u2643"+
- "\u2644\u2645\u2646\u2647\u2648\u2649\u264A\u264B"+
- "\u264C\u264D\u264E\u264F\u2650\u2651\u2652\u2653"+
- "\u2654\u2655\u2656\u2657\u2658\u2659\u265A\u265B"+
- "\u265C\u265D\u265E\u265F\u2660\u2661\u2662\u2663"+
- "\u2664\u2665\u2666\u2667\u2668\u2669\u266A\u266B"+
- "\u266C\u266D\u266E\u266F\u2670\u2671\u2672\u2673"+
- "\u2674\u2675\u2676\u2677\u2678\u2679\u267A\u267B"+
- "\u267C\u267D\u267E\u267F\u2680\u2681\u2682\u2683"+
- "\u2684\u2685\u2686\u2687\u2688\u2689\u268A\u268B"+
- "\u268C\u268D\u268E\u268F\u2690\u2691\u2692\u2693"+
- "\u2694\u2695\u2696\u2697\u2698\u2699\u269A\u269B"+
- "\u269C\u269D\u269E\u269F\u26A0\u26A1\u26A2\u26A3"+
- "\u26A4\u26A5\u26A6\u26A7\u26A8\u26A9\u26AA\u26AB"+
- "\u26AC\u26AD\u26AE\u26AF\u26B0\u26B1\u26B2\u26B3"+
- "\u26B4\u26B5\u26B6\u26B7\u26B8\u26B9\u26BA\u26BB"+
- "\u26BC\u26BD\u26BE\u26BF\u26C0\u26C1\u26C2\u26C3"+
- "\u26C4\u26C5\u26C6\u26C7\u26C8\u26C9\u26CA\u26CB"+
- "\u26CC\u26CD\u26CE\u26CF\u26D0\u26D1\u26D2\u26D3"+
- "\u26D4\u26D5\u26D6\u26D7\u26D8\u26D9\u26DA\u26DB"+
- "\u26DC\u26DD\u26DE\u26DF\u26E0\u26E1\u26E2\u26E3"+
- "\u26E4\u26E5\u26E6\u26E7\u26E8\u26E9\u26EA\u26EB"+
- "\u26EC\u26ED\u26EE\u26EF\u26F0\u26F1\u26F2\u26F3"+
- "\u26F4\u26F5\u26F6\u26F7\u26F8\u26F9\u26FA\u26FB"+
- "\u26FC\u26FD\u26FE\u26FF\u2700\u2701\u2702\u2703"+
- "\u2704\u2705\u2706\u2707\u2708\u2709\u270A\u270B"+
- "\u270C\u270D\u270E\u270F\u2710\u2711\u2712\u2713"+
- "\u2714\u2715\u2716\u2717\u2718\u2719\u271A\u271B"+
- "\u271C\u271D\u271E\u271F\u2720\u2721\u2722\u2723"+
- "\u2724\u2725\u2726\u2727\u2728\u2729\u272A\u272B"+
- "\u272C\u272D\u272E\u272F\u2730\u2731\u2732\u2733"+
- "\u2734\u2735\u2736\u2737\u2738\u2739\u273A\u273B"+
- "\u273C\u273D\u273E\u273F\u2740\u2741\u2742\u2743"+
- "\u2744\u2745\u2746\u2747\u2748\u2749\u274A\u274B"+
- "\u274C\u274D\u274E\u274F\u2750\u2751\u2752\u2753"+
- "\u2754\u2755\u2756\u2757\u2758\u2759\u275A\u275B"+
- "\u275C\u275D\u275E\u275F\u2760\u2761\u2762\u2763"+
- "\u2764\u2765\u2766\u2767\u2768\u2769\u276A\u276B"+
- "\u276C\u276D\u276E\u276F\u2770\u2771\u2772\u2773"+
- "\u2774\u2775\u2776\u2777\u2778\u2779\u277A\u277B"+
- "\u277C\u277D\u277E\u277F\u2780\u2781\u2782\u2783"+
- "\u2784\u2785\u2786\u2787\u2788\u2789\u278A\u278B"+
- "\u278C\u278D\u278E\u278F\u2790\u2791\u2792\u2793"+
- "\u2794\u2795\u2796\u2797\u2798\u2799\u279A\u279B"+
- "\u279C\u279D\u279E\u279F\u27A0\u27A1\u27A2\u27A3"+
- "\u27A4\u27A5\u27A6\u27A7\u27A8\u27A9\u27AA\u27AB"+
- "\u27AC\u27AD\u27AE\u27AF\u27B0\u27B1\u27B2\u27B3"+
- "\u27B4\u27B5\u27B6\u27B7\u27B8\u27B9\u27BA\u27BB"+
- "\u27BC\u27BD\u27BE\u27BF\u27C0\u27C1\u27C2\u27C3"+
- "\u27C4\u27C5\u27C6\u27C7\u27C8\u27C9\u27CA\u27CB"+
- "\u27CC\u27CD\u27CE\u27CF\u27D0\u27D1\u27D2\u27D3"+
- "\u27D4\u27D5\u27D6\u27D7\u27D8\u27D9\u27DA\u27DB"+
- "\u27DC\u27DD\u27DE\u27DF\u27E0\u27E1\u27E2\u27E3"+
- "\u27E4\u27E5\u27E6\u27E7\u27E8\u27E9\u27EA\u27EB"+
- "\u27EC\u27ED\u27EE\u27EF\u27F0\u27F1\u27F2\u27F3"+
- "\u27F4\u27F5\u27F6\u27F7\u27F8\u27F9\u27FA\u27FB"+
- "\u27FC\u27FD\u27FE\u27FF\u2800\u2801\u2802\u2803"+
- "\u2804\u2805\u2806\u2807\u2808\u2809\u280A\u280B"+
- "\u280C\u280D\u280E\u280F\u2810\u2811\u2812\u2813"+
- "\u2814\u2815\u2816\u2817\u2818\u2819\u281A\u281B"+
- "\u281C\u281D\u281E\u281F\u2820\u2821\u2822\u2823"+
- "\u2824\u2825\u2826\u2827\u2828\u2829\u282A\u282B"+
- "\u282C\u282D\u282E\u282F\u2830\u2831\u2832\u2833"+
- "\u2834\u2835\u2836\u2837\u2838\u2839\u283A\u283B"+
- "\u283C\u283D\u283E\u283F\u2840\u2841\u2842\u2843"+
- "\u2844\u2845\u2846\u2847\u2848\u2849\u284A\u284B"+
- "\u284C\u284D\u284E\u284F\u2850\u2851\u2852\u2853"+
- "\u2854\u2855\u2856\u2857\u2858\u2859\u285A\u285B"+
- "\u285C\u285D\u285E\u285F\u2860\u2861\u2862\u2863"+
- "\u2864\u2865\u2866\u2867\u2868\u2869\u286A\u286B"+
- "\u286C\u286D\u286E\u286F\u2870\u2871\u2872\u2873"+
- "\u2874\u2875\u2876\u2877\u2878\u2879\u287A\u287B"+
- "\u287C\u287D\u287E\u287F\u2880\u2881\u2882\u2883"+
- "\u2884\u2885\u2886\u2887\u2888\u2889\u288A\u288B"+
- "\u288C\u288D\u288E\u288F\u2890\u2891\u2892\u2893"+
- "\u2894\u2895\u2896\u2897\u2898\u2899\u289A\u289B"+
- "\u289C\u289D\u289E\u289F\u28A0\u28A1\u28A2\u28A3"+
- "\u28A4\u28A5\u28A6\u28A7\u28A8\u28A9\u28AA\u28AB"+
- "\u28AC\u28AD\u28AE\u28AF\u28B0\u28B1\u28B2\u28B3"+
- "\u28B4\u28B5\u28B6\u28B7\u28B8\u28B9\u28BA\u28BB"+
- "\u28BC\u28BD\u28BE\u28BF\u28C0\u28C1\u28C2\u28C3"+
- "\u28C4\u28C5\u28C6\u28C7\u28C8\u28C9\u28CA\u28CB"+
- "\u28CC\u28CD\u28CE\u28CF\u28D0\u28D1\u28D2\u28D3"+
- "\u28D4\u28D5\u28D6\u28D7\u28D8\u28D9\u28DA\u28DB"+
- "\u28DC\u28DD\u28DE\u28DF\u28E0\u28E1\u28E2\u28E3"+
- "\u28E4\u28E5\u28E6\u28E7\u28E8\u28E9\u28EA\u28EB"+
- "\u28EC\u28ED\u28EE\u28EF\u28F0\u28F1\u28F2\u28F3"+
- "\u28F4\u28F5\u28F6\u28F7\u28F8\u28F9\u28FA\u28FB"+
- "\u28FC\u28FD\u28FE\u28FF\u2900\u2901\u2902\u2903"+
- "\u2904\u2905\u2906\u2907\u2908\u2909\u290A\u290B"+
- "\u290C\u290D\u290E\u290F\u2910\u2911\u2912\u2913"+
- "\u2914\u2915\u2916\u2917\u2918\u2919\u291A\u291B"+
- "\u291C\u291D\u291E\u291F\u2920\u2921\u2922\u2923"+
- "\u2924\u2925\u2926\u2927\u2928\u2929\u292A\u292B"+
- "\u292C\u292D\u292E\u292F\u2930\u2931\u2932\u2933"+
- "\u2934\u2935\u2936\u2937\u2938\u2939\u293A\u293B"+
- "\u293C\u293D\u293E\u293F\u2940\u2941\u2942\u2943"+
- "\u2944\u2945\u2946\u2947\u2948\u2949\u294A\u294B"+
- "\u294C\u294D\u294E\u294F\u2950\u2951\u2952\u2953"+
- "\u2954\u2955\u2956\u2957\u2958\u2959\u295A\u295B"+
- "\u295C\u295D\u295E\u295F\u2960\u2961\u2962\u2963"+
- "\u2964\u2965\u2966\u2967\u2968\u2969\u296A\u296B"+
- "\u296C\u296D\u296E\u296F\u2970\u2971\u2972\u2973"+
- "\u2974\u2975\u2976\u2977\u2978\u2979\u297A\u297B"+
- "\u297C\u297D\u297E\u297F\u2980\u2981\u2982\u2983"+
- "\u2984\u2985\u2986\u2987\u2988\u2989\u298A\u298B"+
- "\u298C\u298D\u298E\u298F\u2990\u2991\u2992\u2993"+
- "\u2994\u2995\u2996\u2997\u2998\u2999\u299A\u299B"+
- "\u299C\u299D\u299E\u299F\u29A0\u29A1\u29A2\u29A3"+
- "\u29A4\u29A5\u29A6\u29A7\u29A8\u29A9\u29AA\u29AB"+
- "\u29AC\u29AD\u29AE\u29AF\u29B0\u29B1\u29B2\u29B3"+
- "\u29B4\u29B5\u29B6\u29B7\u29B8\u29B9\u29BA\u29BB"+
- "\u29BC\u29BD\u29BE\u29BF\u29C0\u29C1\u29C2\u29C3"+
- "\u29C4\u29C5\u29C6\u29C7\u29C8\u29C9\u29CA\u29CB"+
- "\u29CC\u29CD\u29CE\u29CF\u29D0\u29D1\u29D2\u29D3"+
- "\u29D4\u29D5\u29D6\u29D7\u29D8\u29D9\u29DA\u29DB"+
- "\u29DC\u29DD\u29DE\u29DF\u29E0\u29E1\u29E2\u29E3"+
- "\u29E4\u29E5\u29E6\u29E7\u29E8\u29E9\u29EA\u29EB"+
- "\u29EC\u29ED\u29EE\u29EF\u29F0\u29F1\u29F2\u29F3"+
- "\u29F4\u29F5\u29F6\u29F7\u29F8\u29F9\u29FA\u29FB"+
- "\u29FC\u29FD\u29FE\u29FF\u2A00\u2A01\u2A02\u2A03"+
- "\u2A04\u2A05\u2A06\u2A07\u2A08\u2A09\u2A0A\u2A0B"+
- "\u2A0C\u2A0D\u2A0E\u2A0F\u2A10\u2A11\u2A12\u2A13"+
- "\u2A14\u2A15\u2A16\u2A17\u2A18\u2A19\u2A1A\u2A1B"+
- "\u2A1C\u2A1D\u2A1E\u2A1F\u2A20\u2A21\u2A22\u2A23"+
- "\u2A24\u2A25\u2A26\u2A27\u2A28\u2A29\u2A2A\u2A2B"+
- "\u2A2C\u2A2D\u2A2E\u2A2F\u2A30\u2A31\u2A32\u2A33"+
- "\u2A34\u2A35\u2A36\u2A37\u2A38\u2A39\u2A3A\u2A3B"+
- "\u2A3C\u2A3D\u2A3E\u2A3F\u2A40\u2A41\u2A42\u2A43"+
- "\u2A44\u2A45\u2A46\u2A47\u2A48\u2A49\u2A4A\u2A4B"+
- "\u2A4C\u2A4D\u2A4E\u2A4F\u2A50\u2A51\u2A52\u2A53"+
- "\u2A54\u2A55\u2A56\u2A57\u2A58\u2A59\u2A5A\u2A5B"+
- "\u2A5C\u2A5D\u2A5E\u2A5F\u2A60\u2A61\u2A62\u2A63"+
- "\u2A64\u2A65\u2A66\u2A67\u2A68\u2A69\u2A6A\u2A6B"+
- "\u2A6C\u2A6D\u2A6E\u2A6F\u2A70\u2A71\u2A72\u2A73"+
- "\u2A74\u2A75\u2A76\u2A77\u2A78\u2A79\u2A7A\u2A7B"+
- "\u2A7C\u2A7D\u2A7E\u2A7F\u2A80\u2A81\u2A82\u2A83"+
- "\u2A84\u2A85\u2A86\u2A87\u2A88\u2A89\u2A8A\u2A8B"+
- "\u2A8C\u2A8D\u2A8E\u2A8F\u2A90\u2A91\u2A92\u2A93"+
- "\u2A94\u2A95\u2A96\u2A97\u2A98\u2A99\u2A9A\u2A9B"+
- "\u2A9C\u2A9D\u2A9E\u2A9F\u2AA0\u2AA1\u2AA2\u2AA3"+
- "\u2AA4\u2AA5\u2AA6\u2AA7\u2AA8\u2AA9\u2AAA\u2AAB"+
- "\u2AAC\u2AAD\u2AAE\u2AAF\u2AB0\u2AB1\u2AB2\u2AB3"+
- "\u2AB4\u2AB5\u2AB6\u2AB7\u2AB8\u2AB9\u2ABA\u2ABB"+
- "\u2ABC\u2ABD\u2ABE\u2ABF\u2AC0\u2AC1\u2AC2\u2AC3"+
- "\u2AC4\u2AC5\u2AC6\u2AC7\u2AC8\u2AC9\u2ACA\u2ACB"+
- "\u2ACC\u2ACD\u2ACE\u2ACF\u2AD0\u2AD1\u2AD2\u2AD3"+
- "\u2AD4\u2AD5\u2AD6\u2AD7\u2AD8\u2AD9\u2ADA\u2ADB"+
- "\u2ADC\u2ADD\u2ADE\u2ADF\u2AE0\u2AE1\u2AE2\u2AE3"+
- "\u2AE4\u2AE5\u2AE6\u2AE7\u2AE8\u2AE9\u2AEA\u2AEB"+
- "\u2AEC\u2AED\u2AEE\u2AEF\u2AF0\u2AF1\u2AF2\u2AF3"+
- "\u2AF4\u2AF5\u2AF6\u2AF7\u2AF8\u2AF9\u2AFA\u2AFB"+
- "\u2AFC\u2AFD\u2AFE\u2AFF\u2B00\u2B01\u2B02\u2B03"+
- "\u2B04\u2B05\u2B06\u2B07\u2B08\u2B09\u2B0A\u2B0B"+
- "\u2B0C\u2B0D\u2B0E\u2B0F\u2B10\u2B11\u2B12\u2B13"+
- "\u2B14\u2B15\u2B16\u2B17\u2B18\u2B19\u2B1A\u2B1B"+
- "\u2B1C\u2B1D\u2B1E\u2B1F\u2B20\u2B21\u2B22\u2B23"+
- "\u2B24\u2B25\u2B26\u2B27\u2B28\u2B29\u2B2A\u2B2B"+
- "\u2B2C\u2B2D\u2B2E\u2B2F\u2B30\u2B31\u2B32\u2B33"+
- "\u2B34\u2B35\u2B36\u2B37\u2B38\u2B39\u2B3A\u2B3B"+
- "\u2B3C\u2B3D\u2B3E\u2B3F\u2B40\u2B41\u2B42\u2B43"+
- "\u2B44\u2B45\u2B46\u2B47\u2B48\u2B49\u2B4A\u2B4B"+
- "\u2B4C\u2B4D\u2B4E\u2B4F\u2B50\u2B51\u2B52\u2B53"+
- "\u2B54\u2B55\u2B56\u2B57\u2B58\u2B59\u2B5A\u2B5B"+
- "\u2B5C\u2B5D\u2B5E\u2B5F\u2B60\u2B61\u2B62\u2B63"+
- "\u2B64\u2B65\u2B66\u2B67\u2B68\u2B69\u2B6A\u2B6B"+
- "\u2B6C\u2B6D\u2B6E\u2B6F\u2B70\u2B71\u2B72\u2B73"+
- "\u2B74\u2B75\u2B76\u2B77\u2B78\u2B79\u2B7A\u2B7B"+
- "\u2B7C\u2B7D\u2B7E\u2B7F\u2B80\u2B81\u2B82\u2B83"+
- "\u2B84\u2B85\u2B86\u2B87\u2B88\u2B89\u2B8A\u2B8B"+
- "\u2B8C\u2B8D\u2B8E\u2B8F\u2B90\u2B91\u2B92\u2B93"+
- "\u2B94\u2B95\u2B96\u2B97\u2B98\u2B99\u2B9A\u2B9B"+
- "\u2B9C\u2B9D\u2B9E\u2B9F\u2BA0\u2BA1\u2BA2\u2BA3"+
- "\u2BA4\u2BA5\u2BA6\u2BA7\u2BA8\u2BA9\u2BAA\u2BAB"+
- "\u2BAC\u2BAD\u2BAE\u2BAF\u2BB0\u2BB1\u2BB2\u2BB3"+
- "\u2BB4\u2BB5\u2BB6\u2BB7\u2BB8\u2BB9\u2BBA\u2BBB"+
- "\u2BBC\u2BBD\u2BBE\u2BBF\u2BC0\u2BC1\u2BC2\u2BC3"+
- "\u2BC4\u2BC5\u2BC6\u2BC7\u2BC8\u2BC9\u2BCA\u2BCB"+
- "\u2BCC\u2BCD\u2BCE\u2BCF\u2BD0\u2BD1\u2BD2\u2BD3"+
- "\u2BD4\u2BD5\u2BD6\u2BD7\u2BD8\u2BD9\u2BDA\u2BDB"+
- "\u2BDC\u2BDD\u2BDE\u2BDF\u2BE0\u2BE1\u2BE2\u2BE3"+
- "\u2BE4\u2BE5\u2BE6\u2BE7\u2BE8\u2BE9\u2BEA\u2BEB"+
- "\u2BEC\u2BED\u2BEE\u2BEF\u2BF0\u2BF1\u2BF2\u2BF3"+
- "\u2BF4\u2BF5\u2BF6\u2BF7\u2BF8\u2BF9\u2BFA\u2BFB"+
- "\u2BFC\u2BFD\u2BFE\u2BFF\u2C00\u2C01\u2C02\u2C03"+
- "\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B"+
- "\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13"+
- "\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B"+
- "\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23"+
- "\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B"+
- "\u2C2C\u2C2D\u2C2E\u2C2F\u2C30\u2C31\u2C32\u2C33"+
- "\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B"+
- "\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43"+
- "\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B"+
- "\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53"+
- "\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B"+
- "\u2C5C\u2C5D\u2C5E\u2C5F\u2C60\u2C61\u2C62\u2C63"+
- "\u2C64\u2C65\u2C66\u2C67\u2C68\u2C69\u2C6A\u2C6B"+
- "\u2C6C\u2C6D\u2C6E\u2C6F\u2C70\u2C71\u2C72\u2C73"+
- "\u2C74\u2C75\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B"+
- "\u2C7C\u2C7D\u2C7E\u2C7F\u2C80\u2C81\u2C82\u2C83"+
- "\u2C84\u2C85\u2C86\u2C87\u2C88\u2C89\u2C8A\u2C8B"+
- "\u2C8C\u2C8D\u2C8E\u2C8F\u2C90\u2C91\u2C92\u2C93"+
- "\u2C94\u2C95\u2C96\u2C97\u2C98\u2C99\u2C9A\u2C9B"+
- "\u2C9C\u2C9D\u2C9E\u2C9F\u2CA0\u2CA1\u2CA2\u2CA3"+
- "\u2CA4\u2CA5\u2CA6\u2CA7\u2CA8\u2CA9\u2CAA\u2CAB"+
- "\u2CAC\u2CAD\u2CAE\u2CAF\u2CB0\u2CB1\u2CB2\u2CB3"+
- "\u2CB4\u2CB5\u2CB6\u2CB7\u2CB8\u2CB9\u2CBA\u2CBB"+
- "\u2CBC\u2CBD\u2CBE\u2CBF\u2CC0\u2CC1\u2CC2\u2CC3"+
- "\u2CC4\u2CC5\u2CC6\u2CC7\u2CC8\u2CC9\u2CCA\u2CCB"+
- "\u2CCC\u2CCD\u2CCE\u2CCF\u2CD0\u2CD1\u2CD2\u2CD3"+
- "\u2CD4\u2CD5\u2CD6\u2CD7\u2CD8\u2CD9\u2CDA\u2CDB"+
- "\u2CDC\u2CDD\u2CDE\u2CDF\u2CE0\u2CE1\u2CE2\u2CE3"+
- "\u2CE4\u2CE5\u2CE6\u2CE7\u2CE8\u2CE9\u2CEA\u2CEB"+
- "\u2CEC\u2CED\u2CEE\u2CEF\u2CF0\u2CF1\u2CF2\u2CF3"+
- "\u2CF4\u2CF5\u2CF6\u2CF7\u2CF8\u2CF9\u2CFA\u2CFB"+
- "\u2CFC\u2CFD\u2CFE\u2CFF\u2D00\u2D01\u2D02\u2D03"+
- "\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B"+
- "\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13"+
- "\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B"+
- "\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23"+
- "\u2D24\u2D25\u2D26\u2D27\u2D28\u2D29\u2D2A\u2D2B"+
- "\u2D2C\u2D2D\u2D2E\u2D2F\u2D30\u2D31\u2D32\u2D33"+
- "\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B"+
- "\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43"+
- "\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B"+
- "\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53"+
- "\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B"+
- "\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63"+
- "\u2D64\u2D65\u2D66\u2D67\u2D68\u2D69\u2D6A\u2D6B"+
- "\u2D6C\u2D6D\u2D6E\u2D6F\u2D70\u2D71\u2D72\u2D73"+
- "\u2D74\u2D75\u2D76\u2D77\u2D78\u2D79\u2D7A\u2D7B"+
- "\u2D7C\u2D7D\u2D7E\u2D7F\u2D80\u2D81\u2D82\u2D83"+
- "\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B"+
- "\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93"+
- "\u2D94\u2D95\u2D96\u2D97\u2D98\u2D99\u2D9A\u2D9B"+
- "\u2D9C\u2D9D\u2D9E\u2D9F\u2DA0\u2DA1\u2DA2\u2DA3"+
- "\u2DA4\u2DA5\u2DA6\u2DA7\u2DA8\u2DA9\u2DAA\u2DAB"+
- "\u2DAC\u2DAD\u2DAE\u2DAF\u2DB0\u2DB1\u2DB2\u2DB3"+
- "\u2DB4\u2DB5\u2DB6\u2DB7\u2DB8\u2DB9\u2DBA\u2DBB"+
- "\u2DBC\u2DBD\u2DBE\u2DBF\u2DC0\u2DC1\u2DC2\u2DC3"+
- "\u2DC4\u2DC5\u2DC6\u2DC7\u2DC8\u2DC9\u2DCA\u2DCB"+
- "\u2DCC\u2DCD\u2DCE\u2DCF\u2DD0\u2DD1\u2DD2\u2DD3"+
- "\u2DD4\u2DD5\u2DD6\u2DD7\u2DD8\u2DD9\u2DDA\u2DDB"+
- "\u2DDC\u2DDD\u2DDE\u2DDF\u2DE0\u2DE1\u2DE2\u2DE3"+
- "\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB"+
- "\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3"+
- "\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB"+
- "\u2DFC\u2DFD\u2DFE\u2DFF\u2E00\u2E01\u2E02\u2E03"+
- "\u2E04\u2E05\u2E06\u2E07\u2E08\u2E09\u2E0A\u2E0B"+
- "\u2E0C\u2E0D\u2E0E\u2E0F\u2E10\u2E11\u2E12\u2E13"+
- "\u2E14\u2E15\u2E16\u2E17\u2E18\u2E19\u2E1A\u2E1B"+
- "\u2E1C\u2E1D\u2E1E\u2E1F\u2E20\u2E21\u2E22\u2E23"+
- "\u2E24\u2E25\u2E26\u2E27\u2E28\u2E29\u2E2A\u2E2B"+
- "\u2E2C\u2E2D\u2E2E\u2E2F\u2E30\u2E31\u2E32\u2E33"+
- "\u2E34\u2E35\u2E36\u2E37\u2E38\u2E39\u2E3A\u2E3B"+
- "\u2E3C\u2E3D\u2E3E\u2E3F\u2E40\u2E41\u2E42\u2E43"+
- "\u2E44\u2E45\u2E46\u2E47\u2E48\u2E49\u2E4A\u2E4B"+
- "\u2E4C\u2E4D\u2E4E\u2E4F\u2E50\u2E51\u2E52\u2E53"+
- "\u2E54\u2E55\u2E56\u2E57\u2E58\u2E59\u2E5A\u2E5B"+
- "\u2E5C\u2E5D\u2E5E\u2E5F\u2E60\u2E61\u2E62\u2E63"+
- "\u2E64\u2E65\u2E66\u2E67\u2E68\u2E69\u2E6A\u2E6B"+
- "\u2E6C\u2E6D\u2E6E\u2E6F\u2E70\u2E71\u2E72\u2E73"+
- "\u2E74\u2E75\u2E76\u2E77\u2E78\u2E79\u2E7A\u2E7B"+
- "\u2E7C\u2E7D\u2E7E\u2E7F\u2E80\u2E81\u2E82\u2E83"+
- "\u2E84\u2E85\u2E86\u2E87\u2E88\u2E89\u2E8A\u2E8B"+
- "\u2E8C\u2E8D\u2E8E\u2E8F\u2E90\u2E91\u2E92\u2E93"+
- "\u2E94\u2E95\u2E96\u2E97\u2E98\u2E99\u2E9A\u2E9B"+
- "\u2E9C\u2E9D\u2E9E\u2E9F\u2EA0\u2EA1\u2EA2\u2EA3"+
- "\u2EA4\u2EA5\u2EA6\u2EA7\u2EA8\u2EA9\u2EAA\u2EAB"+
- "\u2EAC\u2EAD\u2EAE\u2EAF\u2EB0\u2EB1\u2EB2\u2EB3"+
- "\u2EB4\u2EB5\u2EB6\u2EB7\u2EB8\u2EB9\u2EBA\u2EBB"+
- "\u2EBC\u2EBD\u2EBE\u2EBF\u2EC0\u2EC1\u2EC2\u2EC3"+
- "\u2EC4\u2EC5\u2EC6\u2EC7\u2EC8\u2EC9\u2ECA\u2ECB"+
- "\u2ECC\u2ECD\u2ECE\u2ECF\u2ED0\u2ED1\u2ED2\u2ED3"+
- "\u2ED4\u2ED5\u2ED6\u2ED7\u2ED8\u2ED9\u2EDA\u2EDB"+
- "\u2EDC\u2EDD\u2EDE\u2EDF\u2EE0\u2EE1\u2EE2\u2EE3"+
- "\u2EE4\u2EE5\u2EE6\u2EE7\u2EE8\u2EE9\u2EEA\u2EEB"+
- "\u2EEC\u2EED\u2EEE\u2EEF\u2EF0\u2EF1\u2EF2\u2EF3"+
- "\u2EF4\u2EF5\u2EF6\u2EF7\u2EF8\u2EF9\u2EFA\u2EFB"+
- "\u2EFC\u2EFD\u2EFE\u2EFF\u2F00\u2F01\u2F02\u2F03"+
- "\u2F04\u2F05\u2F06\u2F07\u2F08\u2F09\u2F0A\u2F0B"+
- "\u2F0C\u2F0D\u2F0E\u2F0F\u2F10\u2F11\u2F12\u2F13"+
- "\u2F14\u2F15\u2F16\u2F17\u2F18\u2F19\u2F1A\u2F1B"+
- "\u2F1C\u2F1D\u2F1E\u2F1F\u2F20\u2F21\u2F22\u2F23"+
- "\u2F24\u2F25\u2F26\u2F27\u2F28\u2F29\u2F2A\u2F2B"+
- "\u2F2C\u2F2D\u2F2E\u2F2F\u2F30\u2F31\u2F32\u2F33"+
- "\u2F34\u2F35\u2F36\u2F37\u2F38\u2F39\u2F3A\u2F3B"+
- "\u2F3C\u2F3D\u2F3E\u2F3F\u2F40\u2F41\u2F42\u2F43"+
- "\u2F44\u2F45\u2F46\u2F47\u2F48\u2F49\u2F4A\u2F4B"+
- "\u2F4C\u2F4D\u2F4E\u2F4F\u2F50\u2F51\u2F52\u2F53"+
- "\u2F54\u2F55\u2F56\u2F57\u2F58\u2F59\u2F5A\u2F5B"+
- "\u2F5C\u2F5D\u2F5E\u2F5F\u2F60\u2F61\u2F62\u2F63"+
- "\u2F64\u2F65\u2F66\u2F67\u2F68\u2F69\u2F6A\u2F6B"+
- "\u2F6C\u2F6D\u2F6E\u2F6F\u2F70\u2F71\u2F72\u2F73"+
- "\u2F74\u2F75\u2F76\u2F77\u2F78\u2F79\u2F7A\u2F7B"+
- "\u2F7C\u2F7D\u2F7E\u2F7F\u2F80\u2F81\u2F82\u2F83"+
- "\u2F84\u2F85\u2F86\u2F87\u2F88\u2F89\u2F8A\u2F8B"+
- "\u2F8C\u2F8D\u2F8E\u2F8F\u2F90\u2F91\u2F92\u2F93"+
- "\u2F94\u2F95\u2F96\u2F97\u2F98\u2F99\u2F9A\u2F9B"+
- "\u2F9C\u2F9D\u2F9E\u2F9F\u2FA0\u2FA1\u2FA2\u2FA3"+
- "\u2FA4\u2FA5\u2FA6\u2FA7\u2FA8\u2FA9\u2FAA\u2FAB"+
- "\u2FAC\u2FAD\u2FAE\u2FAF\u2FB0\u2FB1\u2FB2\u2FB3"+
- "\u2FB4\u2FB5\u2FB6\u2FB7\u2FB8\u2FB9\u2FBA\u2FBB"+
- "\u2FBC\u2FBD\u2FBE\u2FBF\u2FC0\u2FC1\u2FC2\u2FC3"+
- "\u2FC4\u2FC5\u2FC6\u2FC7\u2FC8\u2FC9\u2FCA\u2FCB"+
- "\u2FCC\u2FCD\u2FCE\u2FCF\u2FD0\u2FD1\u2FD2\u2FD3"+
- "\u2FD4\u2FD5\u2FD6\u2FD7\u2FD8\u2FD9\u2FDA\u2FDB"+
- "\u2FDC\u2FDD\u2FDE\u2FDF\u2FE0\u2FE1\u2FE2\u2FE3"+
- "\u2FE4\u2FE5\u2FE6\u2FE7\u2FE8\u2FE9\u2FEA\u2FEB"+
- "\u2FEC\u2FED\u2FEE\u2FEF\u2FF0\u2FF1\u2FF2\u2FF3"+
- "\u2FF4\u2FF5\u2FF6\u2FF7\u2FF8\u2FF9\u2FFA\u2FFB"+
- "\u2FFC\u2FFD\u2FFE\u2FFF\u3000\u3001\u3002\u3003"+
- "\u3004\u3005\u3006\u3007\u3008\u3009\u300A\u300B"+
- "\u300C\u300D\u300E\u300F\u3010\u3011\u3012\u3013"+
- "\u3014\u3015\u3016\u3017\u3018\u3019\u301A\u301B"+
- "\u301C\u301D\u301E\u301F\u3020\u3021\u3022\u3023"+
- "\u3024\u3025\u3026\u3027\u3028\u3029\u302A\u302B"+
- "\u302C\u302D\u302E\u302F\u3030\u3031\u3032\u3033"+
- "\u3034\u3035\u3036\u3037\u3038\u3039\u303A\u303B"+
- "\u303C\u303D\u303E\u303F\u3040\u3041\u3042\u3043"+
- "\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B"+
- "\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053"+
- "\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B"+
- "\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063"+
- "\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B"+
- "\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073"+
- "\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B"+
- "\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083"+
- "\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B"+
- "\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093"+
- "\u3094\u3095\u3096\u3097\u3098\u3099\u309A\u309B"+
- "\u309C\u309D\u309E\u309F\u30A0\u30A1\u30A2\u30A3"+
- "\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB"+
- "\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3"+
- "\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB"+
- "\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3"+
- "\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB"+
- "\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3"+
- "\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB"+
- "\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3"+
- "\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB"+
- "\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007"+
- "\u2008\u2009\u200A\u200B\u200C\u200D\u200E\u200F"+
- "\u2010\u2011\u2012\u2013\u2014\u2015\u2016\u2017"+
- "\u2018\u2019\u201A\u201B\u201C\u201D\u201E\u201F"+
- "\u2020\u2021\u2022\u2023\u2024\u2025\u2026\u2027"+
- "\u2028\u2029\u202A\u202B\uFD9C\u202C\u202D\u202E"+
- "\u202F\u2030\u2031\u2032\u2033\u2034\u2035\u2036"+
- "\u2037\u2038\u2039\u203A\u203B\u203C\u203D\u203E"+
- "\u203F\u2040\u2041\u2042\u2043\u2044\u2045\u2046"+
- "\u2047\u2048\u2049\u204A\u204B\u204C\u204D\u204E"+
- "\u204F\u2050\u2051\u2052\u2053\u2054\u2055\u2056"+
- "\u2057\u2058\u2059\u205A\u205B\u205C\u205D\u205E"+
- "\u205F\u2060\u2061\u2062\u2063\u2064\u2065\u2066"+
- "\u2067\u2068\u2069\u206A\u206B\u206C\u206D\u206E"+
- "\u206F\u2070\u2071\u2072\u2073\u2074\u2075\u2076"+
- "\u2077\uFD9D\u2078\u2079\u207A\u207B\u207C\u207D"+
- "\u207E\u207F\u2080\u2081\u2082\u2083\u2084\u2085"+
- "\u2086\u2087\u2088\u2089\u208A\u208B\u208C\u208D"+
- "\u208E\u208F\u2090\u2091\u2092\uFD9E\u2093\u2094"+
- "\u2095\u2096\u2097\u2098\u2099\u209A\u209B\u209C"+
- "\u209D\u209E\u209F\u20A0\u20A1\u20A2\u20A3\u20A4"+
- "\u20A5\u20A6\u20A7\u20A8\u20A9\u20AA\u20AB\u20AC"+
- "\u20AD\u20AE\u20AF\u20B0\u20B1\u20B2\u20B3\u20B4"+
- "\u20B5\u20B6\u20B7\u20B8\u20B9\u20BA\u20BB\u20BC"+
- "\u20BD\u20BE\u20BF\u20C0\u20C1\u20C2\u20C3\u20C4"+
- "\u20C5\u20C6\u20C7\u20C8\u20C9\u20CA\u20CB\u20CC"+
- "\u20CD\u20CE\u20CF\u20D0\u20D1\u20D2\u20D3\u20D4"+
- "\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC"+
- "\u20DD\u20DE\u20DF\u20E0\u20E1\u20E2\u20E3\uFD9F"+
- "\u20E4\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB"+
- "\u20EC\uFDA0\u20ED\u20EE\u20EF\u20F0\u20F1\u20F2"+
- "\u20F3\u20F4\u20F5\u20F6\u20F7\u20F8\u20F9\u20FA"+
- "\u20FB\u20FC\u20FD\u20FE\u20FF\u2100\u2101\u2102"+
- "\u2103\u2104\u2105\u2106\uFE40\uFE41\uFE42\uFE43"+
- "\u2107\uFE44\u2108\uFE45\uFE46\u2109\u210A\u210B"+
- "\uFE47\u210C\u210D\u210E\u210F\u2110\u2111\uFE48"+
- "\uFE49\uFE4A\u2112\uFE4B\uFE4C\u2113\u2114\uFE4D"+
- "\uFE4E\uFE4F\u2115\u2116\u2117\u2118\u2119\u211A"+
- "\u211B\u211C\u211D\u211E\u211F\u2120\u2121\u2122"+
- "\u2123\u2124\u2125\u2126\u2127\u2128\u2129\u212A"+
- "\u212B\u212C\u212D\u212E\u212F\u2130\u2131\u2132"+
- "\u2133\u2134\u2135\u2136\u2137\u2138\u2139\u213A"+
- "\u213B\u213C\u213D\u213E\u213F\u2140\u2141\u2142"+
- "\u2143\u2144\u2145\u2146\u2147\u2148\u2149\u214A"+
- "\u214B\u214C\u214D\u214E\u214F\u2150\u2151\u2152"+
- "\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215A"+
- "\u215B\u215C\u215D\u215E\u215F\u2160\u2161\u2162"+
- "\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A"+
- "\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172"+
- "\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A"+
- "\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182"+
- "\u2183\u2184\u2185\u2186\u2187\u2188\u2189\u218A"+
- "\u218B\u218C\u218D\u218E\u218F\u2190\u2191\u2192"+
- "\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219A"+
- "\u219B\u219C\u219D\u219E\u219F\u21A0\u21A1\u21A2"+
- "\u21A3\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9\u21AA"+
- "\u21AB\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1\u21B2"+
- "\u21B3\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9\u21BA"+
- "\u21BB\u21BC\u21BD\u21BE\u21BF\u21C0\u21C1\u21C2"+
- "\u21C3\u21C4\u21C5\u21C6\u21C7\u21C8\u21C9\u21CA"+
- "\u21CB\u21CC\u21CD\u21CE\u21CF\u21D0\u21D1\u21D2"+
- "\u21D3\u21D4\u21D5\u21D6\u21D7\u21D8\u21D9\u21DA"+
- "\u21DB\u21DC\u21DD\u21DE\u21DF\u21E0\u21E1\u21E2"+
- "\u21E3\u21E4\u21E5\u21E6\u21E7\u21E8\u21E9\u21EA";
-
- private final static String innerEncoderIndex12=
- "\u21EB\u21EC\u21ED\u21EE\u21EF\u21F0\u21F1\u21F2"+
- "\u21F3\u21F4\u21F5\u21F6\u21F7\u21F8\u21F9\u21FA"+
- "\u21FB\u21FC\u21FD\u21FE\u21FF\u2200\u2201\u2202"+
- "\u2203\u2204\u2205\u2206\u2207\u2208\u2209\u220A"+
- "\u220B\u220C\u220D\u220E\u220F\u2210\u2211\u2212"+
- "\u2213\u2214\u2215\u2216\u2217\u2218\u2219\u221A"+
- "\u221B\u221C\u221D\u221E\u221F\u2220\u2221\u2222"+
- "\u2223\u2224\u2225\u2226\u2227\u2228\u2229\u222A"+
- "\u222B\u222C\u222D\u222E\u222F\u2230\u2231\u2232"+
- "\u2233\u2234\u2235\u2236\u2237\u2238\u2239\u223A"+
- "\u223B\u223C\u223D\u223E\u223F\u2240\u2241\u2242"+
- "\u2243\u2244\u2245\u2246\u2247\u2248\u2249\u224A"+
- "\u224B\u224C\u224D\u224E\u224F\u2250\u2251\u2252"+
- "\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225A"+
- "\u225B\u225C\u225D\u225E\u225F\u2260\u2261\u2262"+
- "\u2263\u2264\u2265\u2266\u2267\u2268\u2269\u226A"+
- "\u226B\u226C\u226D\u226E\u226F\u2270\u2271\u2272"+
- "\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227A"+
- "\u227B\u227C\u227D\u227E\u227F\u2280\u2281\u2282"+
- "\u2283\u2284\u2285\u2286\u2287\u2288\u2289\u228A"+
- "\u228B\u228C\u228D\u228E\u228F\u2290\u2291\u2292"+
- "\u2293\u2294\u2295\u2296\u2297\u2298\u2299\u229A"+
- "\u229B\u229C\u229D\u229E\u229F\u22A0\u22A1\u22A2"+
- "\u22A3\u22A4\u22A5\u22A6\u22A7\u22A8\u22A9\u22AA"+
- "\u22AB\u22AC\u22AD\u22AE\u22AF\u22B0\u22B1\u22B2"+
- "\u22B3\u22B4\u22B5\u22B6\u22B7\u22B8\u22B9\u22BA"+
- "\u22BB\u22BC\u22BD\u22BE\u22BF\u22C0\u22C1\u22C2"+
- "\u22C3\u22C4\u22C5\u22C6\u22C7\u22C8\u22C9\u22CA"+
- "\u22CB\u22CC\u22CD\u22CE\u22CF\u22D0\u22D1\u22D2"+
- "\u22D3\u22D4\u22D5\u22D6\u22D7\u22D8\u22D9\u22DA"+
- "\u22DB\u22DC\u22DD\u22DE\u22DF\u22E0\u22E1\u22E2"+
- "\u22E3\u22E4\u22E5\u22E6\u22E7\u22E8\u22E9\u22EA"+
- "\u22EB\u22EC\u22ED\u22EE\u22EF\u22F0\u22F1\u22F2"+
- "\u22F3\u22F4\u22F5\u22F6\u22F7\u22F8\u22F9\u22FA"+
- "\u22FB\u22FC\u22FD\u22FE\u22FF\u2300\u2301\u2302"+
- "\u2303\u2304\u2305\u2306\u2307\u2308\u2309\u230A"+
- "\u230B\u230C\u230D\u230E\u230F\u2310\u2311\u2312"+
- "\u2313\u2314\u2315\u2316\u2317\u2318\u2319\u231A"+
- "\u231B\u231C\u231D\u231E\u231F\u2320\u2321\u2322"+
- "\u2323\u2324\u2325\u2326\u2327\u2328\u2329\u232A"+
- "\u232B\u232C\u232D\u232E\u232F\u2330\u2331\u2332"+
- "\u2333\u2334\u2335\u2336\u2337\u2338\u2339\u233A"+
- "\u233B\u233C\u233D\u233E\u233F\u2340\u2341\u2342"+
- "\u2343\u2344\u2345\u2346\u2347\u2348\u2349\u234A"+
- "\u234B\u234C\u234D\u234E\u234F\u2350\u2351\u2352"+
- "\u2353\u2354\u2355\u2356\u2357\u2358\u2359\u235A"+
- "\u235B\u235C\u235D\u235E\u235F\u2360\u2361\u2362"+
- "\u2363\u2364\u2365\u2366\u2367\u2368\u2369\u236A"+
- "\u236B\u236C\u236D\u236E\u236F\u2370\u2371\u2372"+
- "\u2373\u2374\u2375\u2376\u2377\u2378\u2379\u237A"+
- "\u237B\u237C\u237D\u237E\u237F\u2380\u2381\u2382"+
- "\u2383\u2384\u2385\u2386\u2387\u2388\u2389\u238A"+
- "\u238B\u238C\u238D\u238E\u238F\u2390\u2391\u2392"+
- "\u2393\u2394\u2395\u2396\u2397\u2398\u2399\u239A"+
- "\u239B\u239C\u239D\u239E\u239F\u23A0\u23A1\u23A2"+
- "\u23A3\u23A4\u23A5\u23A6\u23A7\u23A8\u23A9\u23AA"+
- "\u23AB\u23AC\u23AD\u23AE\u23AF\u23B0\u23B1\u23B2"+
- "\u23B3\u23B4\u23B5\u23B6\u23B7\u23B8\u23B9\u23BA"+
- "\u23BB\u23BC\u23BD\u23BE\u23BF\u23C0\u23C1\u23C2"+
- "\u23C3\u23C4\u23C5\u23C6\u23C7\u23C8\u23C9\u23CA"+
- "\u23CB\u23CC\u23CD\u23CE\u23CF\u23D0\u23D1\u23D2"+
- "\u23D3\u23D4\u23D5\u23D6\u23D7\u23D8\u23D9\u23DA"+
- "\u23DB\u23DC\u23DD\u23DE\u23DF\u23E0\u23E1\u23E2"+
- "\u23E3\u23E4\u23E5\u23E6\u23E7\u23E8\u23E9\u23EA"+
- "\u23EB\u23EC\u23ED\u23EE\u23EF\u23F0\u23F1\u23F2"+
- "\u23F3\u23F4\u23F5\u23F6\u23F7\u23F8\u23F9\u23FA"+
- "\u23FB\u23FC\u23FD\u23FE\u23FF\u2400\u2401\u2402"+
- "\u2403\u2404\u2405\u2406\u2407\u2408\u2409\u240A"+
- "\u240B\u240C\u240D\u240E\u240F\u2410\u2411\u2412"+
- "\u2413\u2414\u2415\u2416\u2417\u2418\u2419\u241A"+
- "\u241B\u241C\u241D\u241E\u241F\u2420\u2421\u2422"+
- "\u2423\u2424\u2425\u2426\u2427\u2428\u2429\u242A"+
- "\u242B\u242C\u242D\u242E\u242F\u2430\u2431\u2432"+
- "\u2433\u2434\u2435\u2436\u2437\u2438\u2439\u243A"+
- "\u243B\u243C\u243D\u243E\u243F\u2440\u2441\u2442"+
- "\u2443\u2444\u2445\u2446\u2447\u2448\u2449\u244A"+
- "\u244B\u244C\u244D\u244E\u244F\u2450\u2451\u2452"+
- "\u2453\u2454\u2455\u2456\u2457\u2458\u2459\u245A"+
- "\u245B\u245C\u245D\u245E\u245F\u2460\u2461\u2462"+
- "\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246A"+
- "\u246B\u246C\u246D\u246E\u246F\u2470\u2471\u2472"+
- "\u2473\u2474\u2475\u2476\u2477\u2478\u2479\u247A"+
- "\u247B\u247C\u247D\u247E\u247F\u2480\u2481\u2482"+
- "\u2483\u2484\u2485\u2486\u2487\u2488\u2489\u248A"+
- "\u248B\u248C\u248D\u248E\u248F\u2490\u2491\u2492"+
- "\u2493\u2494\u2495\u2496\u2497\u2498\u2499\u249A"+
- "\u249B\u249C\u249D\u249E\u249F\u24A0\u24A1\u24A2"+
- "\u24A3\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9\u24AA"+
- "\u24AB\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1\u24B2"+
- "\u24B3\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9\u24BA"+
- "\u24BB\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1\u24C2"+
- "\u24C3\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9\u24CA"+
- "\u24CB\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1\u24D2"+
- "\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9\u24DA"+
- "\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1\u24E2"+
- "\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9\u24EA"+
- "\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1\u24F2"+
- "\u24F3\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9\u24FA"+
- "\u24FB\u24FC\u24FD\u24FE\u24FF\u2500\u2501\u2502"+
- "\u2503\u2504\u2505\u2506\u2507\u2508\u2509\u250A"+
- "\u250B\u250C\u250D\u250E\u250F\u2510\u2511\u2512"+
- "\u2513\u2514\u2515\u2516\u2517\u2518\u2519\u251A"+
- "\uA955\uA6F2\u251B\uA6F4\uA6F5\uA6E0\uA6E1\uA6F0"+
- "\uA6F1\uA6E2\uA6E3\uA6EE\uA6EF\uA6E6\uA6E7\uA6E4"+
- "\uA6E5\uA6E8\uA6E9\uA6EA\uA6EB\u251C\u251D\u251E"+
- "\u251F\uA968\uA969\uA96A\uA96B\uA96C\uA96D\uA96E"+
- "\uA96F\uA970\uA971\u2520\uA972\uA973\uA974\uA975"+
- "\u2521\uA976\uA977\uA978\uA979\uA97A\uA97B\uA97C"+
- "\uA97D\uA97E\uA980\uA981\uA982\uA983\uA984\u2522"+
- "\uA985\uA986\uA987\uA988\u2523\u2524\u2525\u2526"+
- "\u2527\u2528\u2529\u252A\u252B\u252C\u252D\u252E"+
- "\u252F\u2530\u2531\u2532\u2533\u2534\u2535\u2536"+
- "\u2537\u2538\u2539\u253A\u253B\u253C\u253D\u253E"+
- "\u253F\u2540\u2541\u2542\u2543\u2544\u2545\u2546"+
- "\u2547\u2548\u2549\u254A\u254B\u254C\u254D\u254E"+
- "\u254F\u2550\u2551\u2552\u2553\u2554\u2555\u2556"+
- "\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E"+
- "\u255F\u2560\u2561\u2562\u2563\u2564\u2565\u2566"+
- "\u2567\u2568\u2569\u256A\u256B\u256C\u256D\u256E"+
- "\u256F\u2570\u2571\u2572\u2573\u2574\u2575\u2576"+
- "\u2577\u2578\u2579\u257A\u257B\u257C\u257D\u257E"+
- "\u257F\u2580\u2581\u2582\u2583\u2584\u2585\u2586"+
- "\u2587\u2588\u2589\u258A\u258B\u258C\u258D\u258E"+
- "\u258F\u2590\u2591\u2592\u2593\u2594\u2595\u2596"+
- "\u2597\u2598\u2599\u259A\u259B\u259C\u259D\u259E"+
- "\u259F\u25A0\u25A1\u25A2\u25A3\u25A4\u25A5\u25A6"+
- "\u25A7\u25A8\u25A9\u25AA\u25AB\u25AC\u25AD\u25AE"+
- "\u25AF\u25B0\u25B1\u25B2\u25B3\u25B4\u25B5\u25B6"+
- "\u25B7\uA3A1\uA3A2\uA3A3\uA1E7\uA3A5\uA3A6\uA3A7"+
- "\uA3A8\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF"+
- "\uA3B0\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7"+
- "\uA3B8\uA3B9\uA3BA\uA3BB\uA3BC\uA3BD\uA3BE\uA3BF"+
- "\uA3C0\uA3C1\uA3C2\uA3C3\uA3C4\uA3C5\uA3C6\uA3C7"+
- "\uA3C8\uA3C9\uA3CA\uA3CB\uA3CC\uA3CD\uA3CE\uA3CF"+
- "\uA3D0\uA3D1\uA3D2\uA3D3\uA3D4\uA3D5\uA3D6\uA3D7"+
- "\uA3D8\uA3D9\uA3DA\uA3DB\uA3DC\uA3DD\uA3DE\uA3DF"+
- "\uA3E0\uA3E1\uA3E2\uA3E3\uA3E4\uA3E5\uA3E6\uA3E7"+
- "\uA3E8\uA3E9\uA3EA\uA3EB\uA3EC\uA3ED\uA3EE\uA3EF"+
- "\uA3F0\uA3F1\uA3F2\uA3F3\uA3F4\uA3F5\uA3F6\uA3F7"+
- "\uA3F8\uA3F9\uA3FA\uA3FB\uA3FC\uA3FD\uA1AB\u25B8"+
- "\u25B9\u25BA\u25BB\u25BC\u25BD\u25BE\u25BF\u25C0"+
- "\u25C1\u25C2\u25C3\u25C4\u25C5\u25C6\u25C7\u25C8"+
- "\u25C9\u25CA\u25CB\u25CC\u25CD\u25CE\u25CF\u25D0"+
- "\u25D1\u25D2\u25D3\u25D4\u25D5\u25D6\u25D7\u25D8"+
- "\u25D9\u25DA\u25DB\u25DC\u25DD\u25DE\u25DF\u25E0"+
- "\u25E1\u25E2\u25E3\u25E4\u25E5\u25E6\u25E7\u25E8"+
- "\u25E9\u25EA\u25EB\u25EC\u25ED\u25EE\u25EF\u25F0"+
- "\u25F1\u25F2\u25F3\u25F4\u25F5\u25F6\u25F7\u25F8"+
- "\u25F9\u25FA\u25FB\u25FC\u25FD\u25FE\u25FF\u2600"+
- "\u2601\u2602\u2603\u2604\u2605\u2606\u2607\u2608"+
- "\u2609\u260A\u260B\u260C\u260D\u260E\u260F\u2610"+
- "\u2611\u2612\u2613\u2614\u2615\u2616\u2617\u2618"+
- "\u2619\u261A\u261B\u261C\u261D\u261E\u261F\u2620"+
- "\u2621\u2622\u2623\u2624\u2625\u2626\u2627\u2628"+
- "\u2629\u262A\u262B\u262C\u262D\u262E\u262F\u2630"+
- "\u2631\u2632\u2633\u2634\u2635\u2636\u2637\u2638"+
- "\uA1E9\uA1EA\uA956\uA3FE\uA957\uA3A4\u2639\u263A"+
- "\u263B\u263C\u263D\u263E\u263F\u2640\u2641\u2642"+
- "\u2643\u2644\u2645\u2646\u2647\u2648\u2649\u264A"+
- "\u264B\u264C\u264D\u264E\u264F\u2650\u2651\u2652";
-
- private final static short encoderIndex1[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196
- };
-
- static String encoderIndex2[] = {
- innerEncoderIndex0,
- innerEncoderIndex1,
- innerEncoderIndex2,
- innerEncoderIndex3,
- innerEncoderIndex4,
- innerEncoderIndex5,
- innerEncoderIndex6,
- innerEncoderIndex7,
- innerEncoderIndex8,
- innerEncoderIndex9,
- innerEncoderIndex10,
- innerEncoderIndex11,
- innerEncoderIndex12
- };
- private static class Decoder extends CharsetDecoder {
-
- private static final char REPLACE_CHAR = '\uFFFD';
- private int currentState = GB18030_DOUBLE_BYTE;
-
- private Decoder(Charset cs) {
- super(cs, 1.0f, 2.0f);
- }
-
- private char getChar(int offset) {
- int byte1 = (offset >>8) & 0xFF;
- int byte2 = (offset & 0xFF);
- int start = 0, end = 0xFF;
-
- if (((byte1 < 0) || (byte1 > decoderIndex1.length))
- || ((byte2 < start) || (byte2 > end))) {
- return REPLACE_CHAR;
- }
-
- int n = (decoderIndex1[byte1] & 0xf) * (end - start + 1) + (byte2 - start);
- return decoderIndex2[decoderIndex1[byte1] >> 4].charAt(n);
- }
-
- protected char decodeDouble(int byte1, int byte2) {
- int start = 0x40, end = 0xFE;
- if (((byte1 < 0) || (byte1 > index1.length))
- || ((byte2 < start) || (byte2 > end)))
- return '\uFFFD';
-
- int n = (index1[byte1] & 0xf) * (end - start + 1) + (byte2 - start);
- return index2[index1[byte1] >> 4].charAt(n);
- }
-
- protected void implReset() {
- currentState = GB18030_DOUBLE_BYTE;
- }
-
- private CoderResult decodeArrayLoop(ByteBuffer src,
- CharBuffer dst)
- {
- byte[] sa = src.array();
- int sp = src.arrayOffset() + src.position();
- int sl = src.arrayOffset() + src.limit();
- assert (sp <= sl);
- sp = (sp <= sl ? sp : sl);
-
- char[] da = dst.array();
- int dp = dst.arrayOffset() + dst.position();
- int dl = dst.arrayOffset() + dst.limit();
- assert (dp <= dl);
- dp = (dp <= dl ? dp : dl);
-
- int inputSize = 1;
-
- try {
- while (sp < sl) {
- int byte1 = 0 , byte2 = 0, byte3 = 0, byte4 = 0;
- // Get the input byte
- byte1 = sa[sp] & 0xFF;
- inputSize = 1;
-
- if ((byte1 & (byte)0x80) == 0){ // US-ASCII range
- currentState = GB18030_SINGLE_BYTE;
- }
- else if (byte1 < 0x81 || byte1 > 0xfe) {
- return CoderResult.malformedForLength(1);
- }
- else { // Either 2 or 4 byte sequence follows
- if ( sl - sp < 2 )
- return CoderResult.UNDERFLOW;
- byte2 = sa[sp + 1] & 0xFF;
- inputSize = 2;
-
- if (byte2 < 0x30)
- return CoderResult.malformedForLength(1);
- else if (byte2 >= 0x30 && byte2 <= 0x39) {
- currentState = GB18030_FOUR_BYTE;
-
- if (sl - sp < 4)
- return CoderResult.UNDERFLOW;
-
- byte3 = sa[sp + 2] & 0xFF;
- if (byte3 < 0x81 || byte3 > 0xfe)
- return CoderResult.malformedForLength(3);
-
- byte4 = sa[sp + 3] & 0xFF;
- inputSize = 4;
-
- if (byte4 < 0x30 || byte4 > 0x39)
- return CoderResult.malformedForLength(4);
- }
- else if (byte2 == 0x7f || byte2 == 0xff ||
- (byte2 < 0x40 )) {
- return CoderResult.malformedForLength(2);
- }
- else
- currentState = GB18030_DOUBLE_BYTE;
- }
-
- if (dl - dp < 1)
- return CoderResult.OVERFLOW;
- switch (currentState){
- case GB18030_SINGLE_BYTE:
- da[dp++] = (char)byte1;
- break;
- case GB18030_DOUBLE_BYTE:
- da[dp++] = decodeDouble(byte1, byte2);
- break;
- case GB18030_FOUR_BYTE:
- int offset = (((byte1 - 0x81) * 10 +
- (byte2 - 0x30)) * 126 +
- byte3 - 0x81) * 10 + byte4 - 0x30;
- int hiByte = (offset >>8) & 0xFF;
- int lowByte = (offset & 0xFF);
-
- // Mixture of table lookups and algorithmic calculation
- // of character values.
-
- // BMP Ranges
- if (offset <= 0x4A62)
- da[dp++] = getChar(offset);
- else if (offset > 0x4A62 && offset <= 0x82BC)
- da[dp++] = (char)(offset + 0x5543);
- else if (offset >= 0x82BD && offset <= 0x830D)
- da[dp++] = getChar(offset);
- else if (offset >= 0x830D && offset <= 0x93A8)
- da[dp++] = (char)(offset + 0x6557);
- else if (offset >= 0x93A9 && offset <= 0x99FB)
- da[dp++] = getChar(offset);
- // Supplemental UCS planes handled via surrogates
- else if (offset >= 0x2E248 && offset < 0x12E248) {
- if (offset >= 0x12E248)
- return CoderResult.malformedForLength(4);
- offset -= 0x1e248;
- if ( dl - dp < 2)
- return CoderResult.OVERFLOW;
- // emit high + low surrogate
- da[dp++] = (char)((offset - 0x10000) / 0x400 + 0xD800);
- da[dp++] = (char)((offset - 0x10000) % 0x400 + 0xDC00);
- }
- else
- return CoderResult.malformedForLength(inputSize);
- break;
- }
- sp += inputSize;
- }
- return CoderResult.UNDERFLOW;
- } finally {
- src.position(sp - src.arrayOffset());
- dst.position(dp - dst.arrayOffset());
- }
- }
-
- private CoderResult decodeBufferLoop(ByteBuffer src,
- CharBuffer dst)
- {
- int mark = src.position();
-
- try {
- while (src.hasRemaining()) {
- int byte1 = 0, byte2 = 0, byte3 = 0, byte4 = 0;
- byte1 = src.get() & 0xFF;
- int inputSize = 1;
-
- if ((byte1 & (byte)0x80) == 0){ // US-ASCII range
- currentState = GB18030_SINGLE_BYTE;
- }
- else if (byte1 < 0x81 || byte1 > 0xfe) {
- return CoderResult.malformedForLength(1);
- }
- else { // Either 2 or 4 byte sequence follows
- if ( src.remaining() < 1 )
- return CoderResult.UNDERFLOW;
- byte2 = src.get() & 0xFF;
- inputSize = 2;
-
- if (byte2 < 0x30)
- return CoderResult.malformedForLength(1);
- else if (byte2 >= 0x30 && byte2 <= 0x39) {
- currentState = GB18030_FOUR_BYTE;
-
- if (src.remaining() < 2)
- return CoderResult.UNDERFLOW;
-
- byte3 = src.get() & 0xFF;
- if (byte3 < 0x81 || byte3 > 0xfe)
- return CoderResult.malformedForLength(3);
-
- byte4 = src.get() & 0xFF;
- inputSize = 4;
-
- if (byte4 < 0x30 || byte4 > 0x39)
- return CoderResult.malformedForLength(4);
- }
- else if (byte2 == 0x7f || byte2 == 0xff ||
- (byte2 < 0x40 )) {
- return CoderResult.malformedForLength(2);
- }
- else
- currentState = GB18030_DOUBLE_BYTE;
- }
-
- if (dst.remaining() < 1)
- return CoderResult.OVERFLOW;
- switch (currentState){
- case GB18030_SINGLE_BYTE:
- dst.put((char)byte1);
- break;
- case GB18030_DOUBLE_BYTE:
- dst.put(decodeDouble(byte1, byte2));
- break;
- case GB18030_FOUR_BYTE:
- int offset = (((byte1 - 0x81) * 10 +
- (byte2 - 0x30)) * 126 +
- byte3 - 0x81) * 10 + byte4 - 0x30;
- int hiByte = (offset >>8) & 0xFF;
- int lowByte = (offset & 0xFF);
-
- // Mixture of table lookups and algorithmic calculation
- // of character values.
-
- // BMP Ranges
- if (offset <= 0x4A62)
- dst.put(getChar(offset));
- else if (offset > 0x4A62 && offset <= 0x82BC)
- dst.put((char)(offset + 0x5543));
- else if (offset >= 0x82BD && offset <= 0x830D)
- dst.put(getChar(offset));
- else if (offset >= 0x830D && offset <= 0x93A8)
- dst.put((char)(offset + 0x6557));
- else if (offset >= 0x93A9 && offset <= 0x99F9)
- dst.put(getChar(offset));
- // Supplemental UCS planes handled via surrogates
- else if (offset >= 0x2E248 && offset < 0x12E248) {
- if (offset >= 0x12E248)
- return CoderResult.malformedForLength(4);
- offset -= 0x1e248;
- if ( dst.remaining() < 2)
- return CoderResult.OVERFLOW;
- // emit high + low surrogate
- dst.put((char)((offset - 0x10000) / 0x400 + 0xD800));
- dst.put((char)((offset - 0x10000) % 0x400 + 0xDC00));
- } else {
- return CoderResult.malformedForLength(inputSize);
- }
- }
- mark += inputSize;
- }
- return CoderResult.UNDERFLOW;
- } finally {
- src.position(mark);
- }
- }
-
-
- protected CoderResult decodeLoop(ByteBuffer src,
- CharBuffer dst)
- {
- if (src.hasArray() && dst.hasArray())
- return decodeArrayLoop(src, dst);
- else
- return decodeBufferLoop(src, dst);
- }
- }
-
- private static class Encoder extends CharsetEncoder {
-
- private int currentState = GB18030_DOUBLE_BYTE;
-
- private Encoder(Charset cs) {
- super(cs, 4.0f, 4.0f); // max of 4 bytes per char
- }
-
- public boolean canEncode(char c) {
- return ! Character.isSurrogate(c);
- }
-
- private final Surrogate.Parser sgp = new Surrogate.Parser();
-
- private int getGB18030(short[] outerIndex, String[] innerEncoderIndex,
- char ch) {
- int offset = outerIndex[((ch & 0xff00) >> 8 )] << 8;
- return innerEncoderIndex[offset >> 12].charAt((offset & 0xfff) +
- (ch & 0xff));
- }
-
- protected void implReset() {
- currentState = GB18030_DOUBLE_BYTE;
- }
-
- private CoderResult encodeArrayLoop(CharBuffer src,
- ByteBuffer dst)
- {
- char[] sa = src.array();
- int sp = src.arrayOffset() + src.position();
- int sl = src.arrayOffset() + src.limit();
- assert (sp <= sl);
- sp = (sp <= sl ? sp : sl);
- byte[] da = dst.array();
- int dp = dst.arrayOffset() + dst.position();
- int dl = dst.arrayOffset() + dst.limit();
- assert (dp <= dl);
- dp = (dp <= dl ? dp : dl);
-
- int condensedKey = 0; // expands to a four byte sequence
- int hiByte = 0, loByte = 0;
- currentState = GB18030_DOUBLE_BYTE;
-
- try {
- while (sp < sl) {
- int inputSize = 1;
- char c = sa[sp];
-
- if (Character.isSurrogate(c)) {
- if ((condensedKey=sgp.parse(c, sa, sp, sl)) < 0)
- return sgp.error();
- // Character.toCodePoint looks like
- // (((high & 0x3ff) << 10) | (low & 0x3ff)) + 0x10000;
- // so we add (0x2e248 - 0x10000) to get the "key".
- condensedKey += 0x1E248;
- currentState = GB18030_FOUR_BYTE;
- inputSize = sgp.increment();
- }
- else if (c >= 0x0000 && c <= 0x007F) {
- currentState = GB18030_SINGLE_BYTE;
- }
- else if (c <= 0xA4C6 || c >= 0xE000) {
- int outByteVal = getGB18030(encoderIndex1,
- encoderIndex2,
- c);
- if (outByteVal == 0xFFFD )
- return CoderResult.unmappableForLength(1);
-
- hiByte = (outByteVal & 0xFF00) >> 8;
- loByte = (outByteVal & 0xFF);
-
- condensedKey = (hiByte - 0x20) * 256 + loByte;
-
- if (c >= 0xE000 && c < 0xF900)
- condensedKey += 0x82BD;
- else if (c >= 0xF900)
- condensedKey += 0x93A9;
-
- if (hiByte > 0x80)
- currentState = GB18030_DOUBLE_BYTE;
- else
- currentState = GB18030_FOUR_BYTE;
- }
- else if (c >= 0xA4C7 && c <= 0xD7FF) {
- condensedKey = c - 0x5543;
- currentState = GB18030_FOUR_BYTE;
- }
-
- switch(currentState) {
- case GB18030_SINGLE_BYTE:
- if (dl - dp < 1)
- return CoderResult.OVERFLOW;
- da[dp++] = (byte)c;
- break;
-
- case GB18030_DOUBLE_BYTE:
- if (dl - dp < 2)
- return CoderResult.OVERFLOW;
- da[dp++] = (byte)hiByte;
- da[dp++] = (byte)loByte;
- break;
-
- case GB18030_FOUR_BYTE: // Four Byte encoding
- byte b1, b2, b3, b4;
-
- if (dl - dp < 4)
- return CoderResult.OVERFLOW;
- // Decompose the condensed key into its 4 byte equivalent
- b4 = (byte)((condensedKey % 10) + 0x30);
- condensedKey /= 10;
- b3 = (byte)((condensedKey % 126) + 0x81);
- condensedKey /= 126;
- b2 = (byte)((condensedKey % 10) + 0x30);
- b1 = (byte)((condensedKey / 10) + 0x81);
- da[dp++] = b1;
- da[dp++] = b2;
- da[dp++] = b3;
- da[dp++] = b4;
- break;
- default:
- assert(false);
- }
- sp += inputSize;
- }
- return CoderResult.UNDERFLOW;
- } finally {
- src.position(sp - src.arrayOffset());
- dst.position(dp - dst.arrayOffset());
- }
- }
-
- private CoderResult encodeBufferLoop(CharBuffer src,
- ByteBuffer dst)
- {
- int condensedKey = 0;
- int hiByte = 0, loByte = 0;
- currentState = GB18030_DOUBLE_BYTE;
- int mark = src.position();
- try {
- while (src.hasRemaining()) {
- char c = src.get();
- int inputSize = 1;
- if (Character.isSurrogate(c)) {
- if ((condensedKey = sgp.parse(c, src))<0)
- return sgp.error();
- condensedKey += 0x1e248;
- currentState = GB18030_FOUR_BYTE;
- inputSize = 2;
- }
- else if (c >= 0x0000 && c <= 0x007F) {
- currentState = GB18030_SINGLE_BYTE;
- }
- else if (c <= 0xA4C6 || c >= 0xE000) {
- int outByteVal = getGB18030(encoderIndex1,
- encoderIndex2,
- c);
- if (outByteVal == 0xFFFD )
- return CoderResult.unmappableForLength(1);
-
- hiByte = (outByteVal & 0xFF00) >> 8;
- loByte = (outByteVal & 0xFF);
-
- condensedKey = (hiByte - 0x20) * 256 + loByte;
-
- if (c >= 0xE000 && c < 0xF900)
- condensedKey += 0x82BD;
- else if (c >= 0xF900)
- condensedKey += 0x93A9;
-
- if (hiByte > 0x80)
- currentState = GB18030_DOUBLE_BYTE;
- else
- currentState = GB18030_FOUR_BYTE;
- }
- else if (c >= 0xA4C7 && c <= 0xD7FF) {
- condensedKey = c - 0x5543;
- currentState = GB18030_FOUR_BYTE;
- }
-
- if (currentState == GB18030_SINGLE_BYTE) {
- if (dst.remaining() < 1)
- return CoderResult.OVERFLOW;
- dst.put((byte)c);
- } else if (currentState == GB18030_DOUBLE_BYTE) {
- if (dst.remaining() < 2)
- return CoderResult.OVERFLOW;
- dst.put((byte)hiByte);
- dst.put((byte)loByte);
- }
- else { // Four Byte encoding
- byte b1, b2, b3, b4;
-
- if (dst.remaining() < 4)
- return CoderResult.OVERFLOW;
- // Decompose the condensed key into its 4 byte equivalent
- b4 = (byte)((condensedKey % 10) + 0x30);
- condensedKey /= 10;
- b3 = (byte)((condensedKey % 126) + 0x81);
- condensedKey /= 126;
- b2 = (byte)((condensedKey % 10) + 0x30);
- b1 = (byte)((condensedKey / 10) + 0x81);
- dst.put(b1);
- dst.put(b2);
- dst.put(b3);
- dst.put(b4);
- }
- mark += inputSize;
- }
- return CoderResult.UNDERFLOW;
- } finally {
- src.position(mark);
- }
- }
- protected CoderResult encodeLoop(CharBuffer src,
- ByteBuffer dst)
- {
- if (src.hasArray() && dst.hasArray())
- return encodeArrayLoop(src, dst);
- else
- return encodeBufferLoop(src, dst);
- }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java.template Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,12778 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ */
+
+package $PACKAGE$;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CoderResult;
+import sun.nio.cs.Surrogate;
+
+public class GB18030
+ extends Charset
+{
+ private static final int GB18030_SINGLE_BYTE = 1;
+ private static final int GB18030_DOUBLE_BYTE = 2;
+ private static final int GB18030_FOUR_BYTE = 3;
+
+ public GB18030() {
+ super("GB18030", $ALIASES$);
+ }
+
+ public boolean contains(Charset cs) {
+ return ((cs.name().equals("US-ASCII"))
+ || (cs.name().equals("GBK"))
+ || (cs.name().equals("ISO-8859-1"))
+ || (cs.name().equals("ISO-8859-2"))
+ || (cs.name().equals("ISO-8859-3"))
+ || (cs.name().equals("ISO-8859-4"))
+ || (cs.name().equals("ISO-8859-5"))
+ || (cs.name().equals("ISO-8859-6"))
+ || (cs.name().equals("ISO-8859-7"))
+ || (cs.name().equals("ISO-8859-8"))
+ || (cs.name().equals("ISO-8859-9"))
+ || (cs.name().equals("ISO-8859-13"))
+ || (cs.name().equals("UTF-8"))
+ || (cs.name().equals("UTF-16"))
+ || (cs.name().equals("UTF-16LE"))
+ || (cs.name().equals("UTF-16BE"))
+ || (cs.name().equals("ISO-8859-15"))
+ || (cs.name().equals("windows-1251"))
+ || (cs.name().equals("windows-1252"))
+ || (cs.name().equals("windows-1253"))
+ || (cs.name().equals("windows-1254"))
+ || (cs.name().equals("windows-1255"))
+ || (cs.name().equals("windows-1256"))
+ || (cs.name().equals("windows-1257"))
+ || (cs.name().equals("windows-1258"))
+ || (cs.name().equals("windows-932"))
+ || (cs.name().equals("x-mswin-936"))
+ || (cs.name().equals("x-windows-949"))
+ || (cs.name().equals("x-windows-950"))
+ || (cs.name().equals("windows-31j"))
+ || (cs.name().equals("JIS_X0201"))
+ || (cs.name().equals("JIS_X0208-1990"))
+ || (cs.name().equals("JIS_X0212"))
+ || (cs.name().equals("Shift_JIS"))
+ || (cs.name().equals("GB2312"))
+ || (cs.name().equals("EUC-KR"))
+ || (cs.name().equals("x-EUC-TW"))
+ || (cs.name().equals("EUC-JP"))
+ || (cs.name().equals("euc-jp-linux"))
+ || (cs.name().equals("KOI8-R"))
+ || (cs.name().equals("TIS-620"))
+ || (cs.name().equals("x-ISCII91"))
+ || (cs.name().equals("Big5"))
+ || (cs.name().equals("Big5-HKSCS"))
+ || (cs.name().equals("x-MS950-HKSCS"))
+ || (cs.name().equals("ISO-2022-JP"))
+ || (cs.name().equals("ISO-2022-KR"))
+ || (cs.name().equals("x-ISO-2022-CN-CNS"))
+ || (cs.name().equals("x-ISO-2022-CN-GB"))
+ || (cs.name().equals("x-Johab"))
+ || (cs instanceof GB18030));
+ }
+
+ public CharsetDecoder newDecoder() {
+ return new Decoder(this);
+ }
+
+ public CharsetEncoder newEncoder() {
+ return new Encoder(this);
+ }
+
+ private final static String innerDecoderIndex0=
+ "\u0080"+
+ "\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088"+
+ "\u0089\u008A\u008B\u008C\u008D\u008E\u008F\u0090"+
+ "\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098"+
+ "\u0099\u009A\u009B\u009C\u009D\u009E\u009F\u00A0"+
+ "\u00A1\u00A2\u00A3\u00A5\u00A6\u00A9\u00AA\u00AB"+
+ "\u00AC\u00AD\u00AE\u00AF\u00B2\u00B3\u00B4\u00B5"+
+ "\u00B6\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE"+
+ "\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6"+
+ "\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE"+
+ "\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6"+
+ "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF"+
+ "\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00EB\u00EE"+
+ "\u00EF\u00F0\u00F1\u00F4\u00F5\u00F6\u00F8\u00FB"+
+ "\u00FD\u00FE\u00FF\u0100\u0102\u0103\u0104\u0105"+
+ "\u0106\u0107\u0108\u0109\u010A\u010B\u010C\u010D"+
+ "\u010E\u010F\u0110\u0111\u0112\u0114\u0115\u0116"+
+ "\u0117\u0118\u0119\u011A\u011C\u011D\u011E\u011F"+
+ "\u0120\u0121\u0122\u0123\u0124\u0125\u0126\u0127"+
+ "\u0128\u0129\u012A\u012C\u012D\u012E\u012F\u0130"+
+ "\u0131\u0132\u0133\u0134\u0135\u0136\u0137\u0138"+
+ "\u0139\u013A\u013B\u013C\u013D\u013E\u013F\u0140"+
+ "\u0141\u0142\u0143\u0145\u0146\u0147\u0149\u014A"+
+ "\u014B\u014C\u014E\u014F\u0150\u0151\u0152\u0153"+
+ "\u0154\u0155\u0156\u0157\u0158\u0159\u015A\u015B"+
+ "\u015C\u015D\u015E\u015F\u0160\u0161\u0162\u0163"+
+ "\u0164\u0165\u0166\u0167\u0168\u0169\u016A\u016C"+
+ "\u016D\u016E\u016F\u0170\u0171\u0172\u0173\u0174"+
+ "\u0175\u0176\u0177\u0178\u0179\u017A\u017B\u017C"+
+ "\u017D\u017E\u017F\u0180\u0181\u0182\u0183\u0184"+
+ "\u0185\u0186\u0187\u0188\u0189\u018A\u018B\u018C"+
+ "\u018D\u018E\u018F\u0190\u0191\u0192\u0193\u0194"+
+ "\u0195\u0196\u0197\u0198\u0199\u019A\u019B"+
+ "\u019C\u019D\u019E\u019F\u01A0\u01A1\u01A2\u01A3"+
+ "\u01A4\u01A5\u01A6\u01A7\u01A8\u01A9\u01AA\u01AB"+
+ "\u01AC\u01AD\u01AE\u01AF\u01B0\u01B1\u01B2\u01B3"+
+ "\u01B4\u01B5\u01B6\u01B7\u01B8\u01B9\u01BA\u01BB"+
+ "\u01BC\u01BD\u01BE\u01BF\u01C0\u01C1\u01C2\u01C3"+
+ "\u01C4\u01C5\u01C6\u01C7\u01C8\u01C9\u01CA\u01CB"+
+ "\u01CC\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9"+
+ "\u01DB\u01DD\u01DE\u01DF\u01E0\u01E1\u01E2\u01E3"+
+ "\u01E4\u01E5\u01E6\u01E7\u01E8\u01E9\u01EA\u01EB"+
+ "\u01EC\u01ED\u01EE\u01EF\u01F0\u01F1\u01F2\u01F3"+
+ "\u01F4\u01F5\u01F6\u01F7\u01F8\u01FA\u01FB\u01FC"+
+ "\u01FD\u01FE\u01FF\u0200\u0201\u0202\u0203\u0204"+
+ "\u0205\u0206\u0207\u0208\u0209\u020A\u020B\u020C"+
+ "\u020D\u020E\u020F\u0210\u0211\u0212\u0213\u0214"+
+ "\u0215\u0216\u0217\u0218\u0219\u021A\u021B\u021C"+
+ "\u021D\u021E\u021F\u0220\u0221\u0222\u0223\u0224"+
+ "\u0225\u0226\u0227\u0228\u0229\u022A\u022B\u022C"+
+ "\u022D\u022E\u022F\u0230\u0231\u0232\u0233\u0234"+
+ "\u0235\u0236\u0237\u0238\u0239\u023A\u023B\u023C"+
+ "\u023D\u023E\u023F\u0240\u0241\u0242\u0243\u0244"+
+ "\u0245\u0246\u0247\u0248\u0249\u024A\u024B\u024C"+
+ "\u024D\u024E\u024F\u0250\u0252\u0253\u0254\u0255"+
+ "\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D"+
+ "\u025E\u025F\u0260\u0262\u0263\u0264\u0265\u0266"+
+ "\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E"+
+ "\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276"+
+ "\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E"+
+ "\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286"+
+ "\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E"+
+ "\u028F\u0290\u0291\u0292\u0293\u0294\u0295\u0296"+
+ "\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E"+
+ "\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6"+
+ "\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE"+
+ "\u02AF\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6"+
+ "\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE"+
+ "\u02BF\u02C0\u02C1\u02C2\u02C3\u02C4\u02C5\u02C6"+
+ "\u02C8\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02D2"+
+ "\u02D3\u02D4\u02D5\u02D6\u02D7\u02D8\u02DA\u02DB"+
+ "\u02DC\u02DD\u02DE\u02DF\u02E0\u02E1\u02E2\u02E3"+
+ "\u02E4\u02E5\u02E6\u02E7\u02E8\u02E9\u02EA\u02EB"+
+ "\u02EC\u02ED\u02EE\u02EF\u02F0\u02F1\u02F2\u02F3"+
+ "\u02F4\u02F5\u02F6\u02F7\u02F8\u02F9\u02FA\u02FB"+
+ "\u02FC\u02FD\u02FE\u02FF\u0300\u0301\u0302\u0303"+
+ "\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B"+
+ "\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313"+
+ "\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B"+
+ "\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323"+
+ "\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B"+
+ "\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333"+
+ "\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B"+
+ "\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343"+
+ "\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B"+
+ "\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353"+
+ "\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B"+
+ "\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363"+
+ "\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B"+
+ "\u036C\u036D\u036E\u036F\u0370\u0371\u0372\u0373"+
+ "\u0374\u0375\u0376\u0377\u0378\u0379\u037A\u037B"+
+ "\u037C\u037D\u037E\u037F\u0380\u0381\u0382\u0383"+
+ "\u0384\u0385\u0386\u0387\u0388\u0389\u038A\u038B"+
+ "\u038C\u038D\u038E\u038F\u0390\u03A2\u03AA\u03AB"+
+ "\u03AC\u03AD\u03AE\u03AF\u03B0\u03C2\u03CA\u03CB"+
+ "\u03CC\u03CD\u03CE\u03CF\u03D0\u03D1\u03D2\u03D3"+
+ "\u03D4\u03D5\u03D6\u03D7\u03D8\u03D9\u03DA\u03DB"+
+ "\u03DC\u03DD\u03DE\u03DF\u03E0\u03E1\u03E2\u03E3"+
+ "\u03E4\u03E5\u03E6\u03E7\u03E8\u03E9\u03EA\u03EB"+
+ "\u03EC\u03ED\u03EE\u03EF\u03F0\u03F1\u03F2\u03F3"+
+ "\u03F4\u03F5\u03F6\u03F7\u03F8\u03F9\u03FA\u03FB"+
+ "\u03FC\u03FD\u03FE\u03FF\u0400\u0402\u0403\u0404"+
+ "\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C"+
+ "\u040D\u040E\u040F\u0450\u0452\u0453\u0454\u0455"+
+ "\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D"+
+ "\u045E\u045F\u0460\u0461\u0462\u0463\u0464\u0465"+
+ "\u0466\u0467\u0468\u0469\u046A\u046B\u046C\u046D"+
+ "\u046E\u046F\u0470\u0471\u0472\u0473\u0474\u0475"+
+ "\u0476\u0477\u0478\u0479\u047A\u047B\u047C\u047D"+
+ "\u047E\u047F\u0480\u0481\u0482\u0483\u0484\u0485"+
+ "\u0486\u0487\u0488\u0489\u048A\u048B\u048C\u048D"+
+ "\u048E\u048F\u0490\u0491\u0492\u0493\u0494\u0495"+
+ "\u0496\u0497\u0498\u0499\u049A\u049B\u049C\u049D"+
+ "\u049E\u049F\u04A0\u04A1\u04A2\u04A3\u04A4\u04A5"+
+ "\u04A6\u04A7\u04A8\u04A9\u04AA\u04AB\u04AC\u04AD"+
+ "\u04AE\u04AF\u04B0\u04B1\u04B2\u04B3\u04B4\u04B5"+
+ "\u04B6\u04B7\u04B8\u04B9\u04BA\u04BB\u04BC\u04BD"+
+ "\u04BE\u04BF\u04C0\u04C1\u04C2\u04C3\u04C4\u04C5"+
+ "\u04C6\u04C7\u04C8\u04C9\u04CA\u04CB\u04CC\u04CD"+
+ "\u04CE\u04CF\u04D0\u04D1\u04D2\u04D3\u04D4\u04D5"+
+ "\u04D6\u04D7\u04D8\u04D9\u04DA\u04DB\u04DC\u04DD"+
+ "\u04DE\u04DF\u04E0\u04E1\u04E2\u04E3\u04E4\u04E5"+
+ "\u04E6\u04E7\u04E8\u04E9\u04EA\u04EB\u04EC\u04ED"+
+ "\u04EE\u04EF\u04F0\u04F1\u04F2\u04F3\u04F4\u04F5"+
+ "\u04F6\u04F7\u04F8\u04F9\u04FA\u04FB\u04FC\u04FD"+
+ "\u04FE\u04FF\u0500\u0501\u0502\u0503\u0504\u0505"+
+ "\u0506\u0507\u0508\u0509\u050A\u050B\u050C\u050D"+
+ "\u050E\u050F\u0510\u0511\u0512\u0513\u0514\u0515"+
+ "\u0516\u0517\u0518\u0519\u051A\u051B\u051C\u051D"+
+ "\u051E\u051F\u0520\u0521\u0522\u0523\u0524\u0525"+
+ "\u0526\u0527\u0528\u0529\u052A\u052B\u052C\u052D"+
+ "\u052E\u052F\u0530\u0531\u0532\u0533\u0534\u0535"+
+ "\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D"+
+ "\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545"+
+ "\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D"+
+ "\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555"+
+ "\u0556\u0557\u0558\u0559\u055A\u055B\u055C\u055D"+
+ "\u055E\u055F\u0560\u0561\u0562\u0563\u0564\u0565"+
+ "\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D"+
+ "\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575"+
+ "\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D"+
+ "\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585"+
+ "\u0586\u0587\u0588\u0589\u058A\u058B\u058C\u058D"+
+ "\u058E\u058F\u0590\u0591\u0592\u0593\u0594\u0595"+
+ "\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D"+
+ "\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5"+
+ "\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD"+
+ "\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5"+
+ "\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD"+
+ "\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05C4\u05C5"+
+ "\u05C6\u05C7\u05C8\u05C9\u05CA\u05CB\u05CC\u05CD"+
+ "\u05CE\u05CF\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5"+
+ "\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD"+
+ "\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5"+
+ "\u05E6\u05E7\u05E8\u05E9\u05EA\u05EB\u05EC\u05ED"+
+ "\u05EE\u05EF\u05F0\u05F1\u05F2\u05F3\u05F4\u05F5"+
+ "\u05F6\u05F7\u05F8\u05F9\u05FA\u05FB\u05FC\u05FD"+
+ "\u05FE\u05FF\u0600\u0601\u0602\u0603\u0604\u0605"+
+ "\u0606\u0607\u0608\u0609\u060A\u060B\u060C\u060D"+
+ "\u060E\u060F\u0610\u0611\u0612\u0613\u0614\u0615"+
+ "\u0616\u0617\u0618\u0619\u061A\u061B\u061C\u061D"+
+ "\u061E\u061F\u0620\u0621\u0622\u0623\u0624\u0625"+
+ "\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D"+
+ "\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635"+
+ "\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D"+
+ "\u063E\u063F\u0640\u0641\u0642\u0643\u0644\u0645"+
+ "\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D"+
+ "\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655"+
+ "\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D"+
+ "\u065E\u065F\u0660\u0661\u0662\u0663\u0664\u0665"+
+ "\u0666\u0667\u0668\u0669\u066A\u066B\u066C\u066D"+
+ "\u066E\u066F\u0670\u0671\u0672\u0673\u0674\u0675"+
+ "\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D"+
+ "\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685"+
+ "\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D"+
+ "\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695"+
+ "\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D"+
+ "\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5"+
+ "\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD"+
+ "\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5"+
+ "\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD"+
+ "\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5"+
+ "\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD"+
+ "\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D4\u06D5"+
+ "\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DD"+
+ "\u06DE\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E5"+
+ "\u06E6\u06E7\u06E8\u06E9\u06EA\u06EB\u06EC\u06ED"+
+ "\u06EE\u06EF\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5"+
+ "\u06F6\u06F7\u06F8\u06F9\u06FA\u06FB\u06FC\u06FD"+
+ "\u06FE\u06FF\u0700\u0701\u0702\u0703\u0704\u0705"+
+ "\u0706\u0707\u0708\u0709\u070A\u070B\u070C\u070D"+
+ "\u070E\u070F\u0710\u0711\u0712\u0713\u0714\u0715"+
+ "\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D"+
+ "\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725"+
+ "\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D"+
+ "\u072E\u072F\u0730\u0731\u0732\u0733\u0734\u0735"+
+ "\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D"+
+ "\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745"+
+ "\u0746\u0747\u0748\u0749\u074A\u074B\u074C\u074D"+
+ "\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755"+
+ "\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D"+
+ "\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765"+
+ "\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D"+
+ "\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775"+
+ "\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D"+
+ "\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785"+
+ "\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D"+
+ "\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795"+
+ "\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D"+
+ "\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5"+
+ "\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD"+
+ "\u07AE\u07AF\u07B0\u07B1\u07B2\u07B3\u07B4\u07B5"+
+ "\u07B6\u07B7\u07B8\u07B9\u07BA\u07BB\u07BC\u07BD"+
+ "\u07BE\u07BF\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5"+
+ "\u07C6\u07C7\u07C8\u07C9\u07CA\u07CB\u07CC\u07CD"+
+ "\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5"+
+ "\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD"+
+ "\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5"+
+ "\u07E6\u07E7\u07E8\u07E9\u07EA\u07EB\u07EC\u07ED"+
+ "\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u07F4\u07F5"+
+ "\u07F6\u07F7\u07F8\u07F9\u07FA\u07FB\u07FC\u07FD"+
+ "\u07FE\u07FF\u0800\u0801\u0802\u0803\u0804\u0805"+
+ "\u0806\u0807\u0808\u0809\u080A\u080B\u080C\u080D"+
+ "\u080E\u080F\u0810\u0811\u0812\u0813\u0814\u0815"+
+ "\u0816\u0817\u0818\u0819\u081A\u081B\u081C\u081D"+
+ "\u081E\u081F\u0820\u0821\u0822\u0823\u0824\u0825"+
+ "\u0826\u0827\u0828\u0829\u082A\u082B\u082C\u082D"+
+ "\u082E\u082F\u0830\u0831\u0832\u0833\u0834\u0835"+
+ "\u0836\u0837\u0838\u0839\u083A\u083B\u083C\u083D"+
+ "\u083E\u083F\u0840\u0841\u0842\u0843\u0844\u0845"+
+ "\u0846\u0847\u0848\u0849\u084A\u084B\u084C\u084D"+
+ "\u084E\u084F\u0850\u0851\u0852\u0853\u0854\u0855"+
+ "\u0856\u0857\u0858\u0859\u085A\u085B\u085C\u085D"+
+ "\u085E\u085F\u0860\u0861\u0862\u0863\u0864\u0865"+
+ "\u0866\u0867\u0868\u0869\u086A\u086B\u086C\u086D"+
+ "\u086E\u086F\u0870\u0871\u0872\u0873\u0874\u0875"+
+ "\u0876\u0877\u0878\u0879\u087A\u087B\u087C\u087D"+
+ "\u087E\u087F\u0880\u0881\u0882\u0883\u0884\u0885"+
+ "\u0886\u0887\u0888\u0889\u088A\u088B\u088C\u088D"+
+ "\u088E\u088F\u0890\u0891\u0892\u0893\u0894\u0895"+
+ "\u0896\u0897\u0898\u0899\u089A\u089B\u089C\u089D"+
+ "\u089E\u089F\u08A0\u08A1\u08A2\u08A3\u08A4\u08A5"+
+ "\u08A6\u08A7\u08A8\u08A9\u08AA\u08AB\u08AC\u08AD"+
+ "\u08AE\u08AF\u08B0\u08B1\u08B2\u08B3\u08B4\u08B5"+
+ "\u08B6\u08B7\u08B8\u08B9\u08BA\u08BB\u08BC\u08BD"+
+ "\u08BE\u08BF\u08C0\u08C1\u08C2\u08C3\u08C4\u08C5"+
+ "\u08C6\u08C7\u08C8\u08C9\u08CA\u08CB\u08CC\u08CD"+
+ "\u08CE\u08CF\u08D0\u08D1\u08D2\u08D3\u08D4\u08D5"+
+ "\u08D6\u08D7\u08D8\u08D9\u08DA\u08DB\u08DC\u08DD"+
+ "\u08DE\u08DF\u08E0\u08E1\u08E2\u08E3\u08E4\u08E5"+
+ "\u08E6\u08E7\u08E8\u08E9\u08EA\u08EB\u08EC\u08ED"+
+ "\u08EE\u08EF\u08F0\u08F1\u08F2\u08F3\u08F4\u08F5"+
+ "\u08F6\u08F7\u08F8\u08F9\u08FA\u08FB\u08FC\u08FD"+
+ "\u08FE\u08FF\u0900\u0901\u0902\u0903\u0904\u0905"+
+ "\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D"+
+ "\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915"+
+ "\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D"+
+ "\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925"+
+ "\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D"+
+ "\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935"+
+ "\u0936\u0937\u0938\u0939\u093A\u093B\u093C\u093D"+
+ "\u093E\u093F\u0940\u0941\u0942\u0943\u0944\u0945"+
+ "\u0946\u0947\u0948\u0949\u094A\u094B\u094C\u094D"+
+ "\u094E\u094F\u0950\u0951\u0952\u0953\u0954\u0955"+
+ "\u0956\u0957\u0958\u0959\u095A\u095B\u095C\u095D"+
+ "\u095E\u095F\u0960\u0961\u0962\u0963\u0964\u0965"+
+ "\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D"+
+ "\u096E\u096F\u0970\u0971\u0972\u0973\u0974\u0975"+
+ "\u0976\u0977\u0978\u0979\u097A\u097B\u097C\u097D"+
+ "\u097E\u097F\u0980\u0981\u0982\u0983\u0984\u0985"+
+ "\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098D"+
+ "\u098E\u098F\u0990\u0991\u0992\u0993\u0994\u0995"+
+ "\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D"+
+ "\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5"+
+ "\u09A6\u09A7\u09A8\u09A9\u09AA\u09AB\u09AC\u09AD"+
+ "\u09AE\u09AF\u09B0\u09B1\u09B2\u09B3\u09B4\u09B5"+
+ "\u09B6\u09B7\u09B8\u09B9\u09BA\u09BB\u09BC\u09BD"+
+ "\u09BE\u09BF\u09C0\u09C1\u09C2\u09C3\u09C4\u09C5"+
+ "\u09C6\u09C7\u09C8\u09C9\u09CA\u09CB\u09CC\u09CD"+
+ "\u09CE\u09CF\u09D0\u09D1\u09D2\u09D3\u09D4\u09D5"+
+ "\u09D6\u09D7\u09D8\u09D9\u09DA\u09DB\u09DC\u09DD"+
+ "\u09DE\u09DF\u09E0\u09E1\u09E2\u09E3\u09E4\u09E5"+
+ "\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED"+
+ "\u09EE\u09EF\u09F0\u09F1\u09F2\u09F3\u09F4\u09F5"+
+ "\u09F6\u09F7\u09F8\u09F9\u09FA\u09FB\u09FC\u09FD"+
+ "\u09FE\u09FF\u0A00\u0A01\u0A02\u0A03\u0A04\u0A05"+
+ "\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0B\u0A0C\u0A0D"+
+ "\u0A0E\u0A0F\u0A10\u0A11\u0A12\u0A13\u0A14\u0A15"+
+ "\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D"+
+ "\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25"+
+ "\u0A26\u0A27\u0A28\u0A29\u0A2A\u0A2B\u0A2C\u0A2D"+
+ "\u0A2E\u0A2F\u0A30\u0A31\u0A32\u0A33\u0A34\u0A35"+
+ "\u0A36\u0A37\u0A38\u0A39\u0A3A\u0A3B\u0A3C\u0A3D"+
+ "\u0A3E\u0A3F\u0A40\u0A41\u0A42\u0A43\u0A44\u0A45"+
+ "\u0A46\u0A47\u0A48\u0A49\u0A4A\u0A4B\u0A4C\u0A4D"+
+ "\u0A4E\u0A4F\u0A50\u0A51\u0A52\u0A53\u0A54\u0A55"+
+ "\u0A56\u0A57\u0A58\u0A59\u0A5A\u0A5B\u0A5C\u0A5D"+
+ "\u0A5E\u0A5F\u0A60\u0A61\u0A62\u0A63\u0A64\u0A65"+
+ "\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D"+
+ "\u0A6E\u0A6F\u0A70\u0A71\u0A72\u0A73\u0A74\u0A75"+
+ "\u0A76\u0A77\u0A78\u0A79\u0A7A\u0A7B\u0A7C\u0A7D"+
+ "\u0A7E\u0A7F\u0A80\u0A81\u0A82\u0A83\u0A84\u0A85"+
+ "\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D"+
+ "\u0A8E\u0A8F\u0A90\u0A91\u0A92\u0A93\u0A94\u0A95"+
+ "\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D"+
+ "\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5"+
+ "\u0AA6\u0AA7\u0AA8\u0AA9\u0AAA\u0AAB\u0AAC\u0AAD"+
+ "\u0AAE\u0AAF\u0AB0\u0AB1\u0AB2\u0AB3\u0AB4\u0AB5"+
+ "\u0AB6\u0AB7\u0AB8\u0AB9\u0ABA\u0ABB\u0ABC\u0ABD"+
+ "\u0ABE\u0ABF\u0AC0\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5"+
+ "\u0AC6\u0AC7\u0AC8\u0AC9\u0ACA\u0ACB\u0ACC\u0ACD"+
+ "\u0ACE\u0ACF\u0AD0\u0AD1\u0AD2\u0AD3\u0AD4\u0AD5"+
+ "\u0AD6\u0AD7\u0AD8\u0AD9\u0ADA\u0ADB\u0ADC\u0ADD"+
+ "\u0ADE\u0ADF\u0AE0\u0AE1\u0AE2\u0AE3\u0AE4\u0AE5"+
+ "\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED"+
+ "\u0AEE\u0AEF\u0AF0\u0AF1\u0AF2\u0AF3\u0AF4\u0AF5"+
+ "\u0AF6\u0AF7\u0AF8\u0AF9\u0AFA\u0AFB\u0AFC\u0AFD"+
+ "\u0AFE\u0AFF\u0B00\u0B01\u0B02\u0B03\u0B04\u0B05"+
+ "\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0D"+
+ "\u0B0E\u0B0F\u0B10\u0B11\u0B12\u0B13\u0B14\u0B15"+
+ "\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D"+
+ "\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25"+
+ "\u0B26\u0B27\u0B28\u0B29\u0B2A\u0B2B\u0B2C\u0B2D"+
+ "\u0B2E\u0B2F\u0B30\u0B31\u0B32\u0B33\u0B34\u0B35"+
+ "\u0B36\u0B37\u0B38\u0B39\u0B3A\u0B3B\u0B3C\u0B3D"+
+ "\u0B3E\u0B3F\u0B40\u0B41\u0B42\u0B43\u0B44\u0B45"+
+ "\u0B46\u0B47\u0B48\u0B49\u0B4A\u0B4B\u0B4C\u0B4D"+
+ "\u0B4E\u0B4F\u0B50\u0B51\u0B52\u0B53\u0B54\u0B55"+
+ "\u0B56\u0B57\u0B58\u0B59\u0B5A\u0B5B\u0B5C\u0B5D"+
+ "\u0B5E\u0B5F\u0B60\u0B61\u0B62\u0B63\u0B64\u0B65"+
+ "\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D"+
+ "\u0B6E\u0B6F\u0B70\u0B71\u0B72\u0B73\u0B74\u0B75"+
+ "\u0B76\u0B77\u0B78\u0B79\u0B7A\u0B7B\u0B7C\u0B7D"+
+ "\u0B7E\u0B7F\u0B80\u0B81\u0B82\u0B83\u0B84\u0B85"+
+ "\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8B\u0B8C\u0B8D"+
+ "\u0B8E\u0B8F\u0B90\u0B91\u0B92\u0B93\u0B94\u0B95"+
+ "\u0B96\u0B97\u0B98\u0B99\u0B9A\u0B9B\u0B9C\u0B9D"+
+ "\u0B9E\u0B9F\u0BA0\u0BA1\u0BA2\u0BA3\u0BA4\u0BA5"+
+ "\u0BA6\u0BA7\u0BA8\u0BA9\u0BAA\u0BAB\u0BAC\u0BAD"+
+ "\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5"+
+ "\u0BB6\u0BB7\u0BB8\u0BB9\u0BBA\u0BBB\u0BBC\u0BBD"+
+ "\u0BBE\u0BBF\u0BC0\u0BC1\u0BC2\u0BC3\u0BC4\u0BC5"+
+ "\u0BC6\u0BC7\u0BC8\u0BC9\u0BCA\u0BCB\u0BCC\u0BCD"+
+ "\u0BCE\u0BCF\u0BD0\u0BD1\u0BD2\u0BD3\u0BD4\u0BD5"+
+ "\u0BD6\u0BD7\u0BD8\u0BD9\u0BDA\u0BDB\u0BDC\u0BDD"+
+ "\u0BDE\u0BDF\u0BE0\u0BE1\u0BE2\u0BE3\u0BE4\u0BE5"+
+ "\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED"+
+ "\u0BEE\u0BEF\u0BF0\u0BF1\u0BF2\u0BF3\u0BF4\u0BF5"+
+ "\u0BF6\u0BF7\u0BF8\u0BF9\u0BFA\u0BFB\u0BFC\u0BFD"+
+ "\u0BFE\u0BFF\u0C00\u0C01\u0C02\u0C03\u0C04\u0C05"+
+ "\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0D"+
+ "\u0C0E\u0C0F\u0C10\u0C11\u0C12\u0C13\u0C14\u0C15"+
+ "\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D"+
+ "\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25"+
+ "\u0C26\u0C27\u0C28\u0C29\u0C2A\u0C2B\u0C2C\u0C2D"+
+ "\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C34\u0C35"+
+ "\u0C36\u0C37\u0C38\u0C39\u0C3A\u0C3B\u0C3C\u0C3D"+
+ "\u0C3E\u0C3F\u0C40\u0C41\u0C42\u0C43\u0C44\u0C45"+
+ "\u0C46\u0C47\u0C48\u0C49\u0C4A\u0C4B\u0C4C\u0C4D"+
+ "\u0C4E\u0C4F\u0C50\u0C51\u0C52\u0C53\u0C54\u0C55"+
+ "\u0C56\u0C57\u0C58\u0C59\u0C5A\u0C5B\u0C5C\u0C5D"+
+ "\u0C5E\u0C5F\u0C60\u0C61\u0C62\u0C63\u0C64\u0C65"+
+ "\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D"+
+ "\u0C6E\u0C6F\u0C70\u0C71\u0C72\u0C73\u0C74\u0C75"+
+ "\u0C76\u0C77\u0C78\u0C79\u0C7A\u0C7B\u0C7C\u0C7D"+
+ "\u0C7E\u0C7F\u0C80\u0C81\u0C82\u0C83\u0C84\u0C85"+
+ "\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8D"+
+ "\u0C8E\u0C8F\u0C90\u0C91\u0C92\u0C93\u0C94\u0C95"+
+ "\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D"+
+ "\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5"+
+ "\u0CA6\u0CA7\u0CA8\u0CA9\u0CAA\u0CAB\u0CAC\u0CAD"+
+ "\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB4\u0CB5"+
+ "\u0CB6\u0CB7\u0CB8\u0CB9\u0CBA\u0CBB\u0CBC\u0CBD"+
+ "\u0CBE\u0CBF\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC5"+
+ "\u0CC6\u0CC7\u0CC8\u0CC9\u0CCA\u0CCB\u0CCC\u0CCD"+
+ "\u0CCE\u0CCF\u0CD0\u0CD1\u0CD2\u0CD3\u0CD4\u0CD5"+
+ "\u0CD6\u0CD7\u0CD8\u0CD9\u0CDA\u0CDB\u0CDC\u0CDD"+
+ "\u0CDE\u0CDF\u0CE0\u0CE1\u0CE2\u0CE3\u0CE4\u0CE5"+
+ "\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED"+
+ "\u0CEE\u0CEF\u0CF0\u0CF1\u0CF2\u0CF3\u0CF4\u0CF5"+
+ "\u0CF6\u0CF7\u0CF8\u0CF9\u0CFA\u0CFB\u0CFC\u0CFD"+
+ "\u0CFE\u0CFF\u0D00\u0D01\u0D02\u0D03\u0D04\u0D05"+
+ "\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0D"+
+ "\u0D0E\u0D0F\u0D10\u0D11\u0D12\u0D13\u0D14\u0D15"+
+ "\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D"+
+ "\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25"+
+ "\u0D26\u0D27\u0D28\u0D29\u0D2A\u0D2B\u0D2C\u0D2D"+
+ "\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35"+
+ "\u0D36\u0D37\u0D38\u0D39\u0D3A\u0D3B\u0D3C\u0D3D"+
+ "\u0D3E\u0D3F\u0D40\u0D41\u0D42\u0D43\u0D44\u0D45"+
+ "\u0D46\u0D47\u0D48\u0D49\u0D4A\u0D4B\u0D4C\u0D4D"+
+ "\u0D4E\u0D4F\u0D50\u0D51\u0D52\u0D53\u0D54\u0D55"+
+ "\u0D56\u0D57\u0D58\u0D59\u0D5A\u0D5B\u0D5C\u0D5D"+
+ "\u0D5E\u0D5F\u0D60\u0D61\u0D62\u0D63\u0D64\u0D65"+
+ "\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D"+
+ "\u0D6E\u0D6F\u0D70\u0D71\u0D72\u0D73\u0D74\u0D75"+
+ "\u0D76\u0D77\u0D78\u0D79\u0D7A\u0D7B\u0D7C\u0D7D"+
+ "\u0D7E\u0D7F\u0D80\u0D81\u0D82\u0D83\u0D84\u0D85"+
+ "\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D"+
+ "\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95"+
+ "\u0D96\u0D97\u0D98\u0D99\u0D9A\u0D9B\u0D9C\u0D9D"+
+ "\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5"+
+ "\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD"+
+ "\u0DAE\u0DAF\u0DB0\u0DB1\u0DB2\u0DB3\u0DB4\u0DB5"+
+ "\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBC\u0DBD"+
+ "\u0DBE\u0DBF\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5"+
+ "\u0DC6\u0DC7\u0DC8\u0DC9\u0DCA\u0DCB\u0DCC\u0DCD"+
+ "\u0DCE\u0DCF\u0DD0\u0DD1\u0DD2\u0DD3\u0DD4\u0DD5"+
+ "\u0DD6\u0DD7\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD"+
+ "\u0DDE\u0DDF\u0DE0\u0DE1\u0DE2\u0DE3\u0DE4\u0DE5"+
+ "\u0DE6\u0DE7\u0DE8\u0DE9\u0DEA\u0DEB\u0DEC\u0DED"+
+ "\u0DEE\u0DEF\u0DF0\u0DF1\u0DF2\u0DF3\u0DF4\u0DF5"+
+ "\u0DF6\u0DF7\u0DF8\u0DF9\u0DFA\u0DFB\u0DFC\u0DFD"+
+ "\u0DFE\u0DFF\u0E00\u0E01\u0E02\u0E03\u0E04\u0E05"+
+ "\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D"+
+ "\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15"+
+ "\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D"+
+ "\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25"+
+ "\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D"+
+ "\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35"+
+ "\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E3B\u0E3C\u0E3D"+
+ "\u0E3E\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45"+
+ "\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D"+
+ "\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55"+
+ "\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\u0E5C\u0E5D"+
+ "\u0E5E\u0E5F\u0E60\u0E61\u0E62\u0E63\u0E64\u0E65"+
+ "\u0E66\u0E67\u0E68\u0E69\u0E6A\u0E6B\u0E6C\u0E6D"+
+ "\u0E6E\u0E6F\u0E70\u0E71\u0E72\u0E73\u0E74\u0E75"+
+ "\u0E76\u0E77\u0E78\u0E79\u0E7A\u0E7B\u0E7C\u0E7D"+
+ "\u0E7E\u0E7F\u0E80\u0E81\u0E82\u0E83\u0E84\u0E85"+
+ "\u0E86\u0E87\u0E88\u0E89\u0E8A\u0E8B\u0E8C\u0E8D"+
+ "\u0E8E\u0E8F\u0E90\u0E91\u0E92\u0E93\u0E94\u0E95"+
+ "\u0E96\u0E97\u0E98\u0E99\u0E9A\u0E9B\u0E9C\u0E9D"+
+ "\u0E9E\u0E9F\u0EA0\u0EA1\u0EA2\u0EA3\u0EA4\u0EA5"+
+ "\u0EA6\u0EA7\u0EA8\u0EA9\u0EAA\u0EAB\u0EAC\u0EAD"+
+ "\u0EAE\u0EAF\u0EB0\u0EB1\u0EB2\u0EB3\u0EB4\u0EB5"+
+ "\u0EB6\u0EB7\u0EB8\u0EB9\u0EBA\u0EBB\u0EBC\u0EBD"+
+ "\u0EBE\u0EBF\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC5"+
+ "\u0EC6\u0EC7\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD"+
+ "\u0ECE\u0ECF\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5"+
+ "\u0ED6\u0ED7\u0ED8\u0ED9\u0EDA\u0EDB\u0EDC\u0EDD"+
+ "\u0EDE\u0EDF\u0EE0\u0EE1\u0EE2\u0EE3\u0EE4\u0EE5"+
+ "\u0EE6\u0EE7\u0EE8\u0EE9\u0EEA\u0EEB\u0EEC\u0EED"+
+ "\u0EEE\u0EEF\u0EF0\u0EF1\u0EF2\u0EF3\u0EF4\u0EF5"+
+ "\u0EF6\u0EF7\u0EF8\u0EF9\u0EFA\u0EFB\u0EFC\u0EFD"+
+ "\u0EFE\u0EFF\u0F00\u0F01\u0F02\u0F03\u0F04\u0F05"+
+ "\u0F06\u0F07\u0F08\u0F09\u0F0A\u0F0B\u0F0C\u0F0D"+
+ "\u0F0E\u0F0F\u0F10\u0F11\u0F12\u0F13\u0F14\u0F15"+
+ "\u0F16\u0F17\u0F18\u0F19\u0F1A\u0F1B\u0F1C\u0F1D"+
+ "\u0F1E\u0F1F\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25"+
+ "\u0F26\u0F27\u0F28\u0F29\u0F2A\u0F2B\u0F2C\u0F2D"+
+ "\u0F2E\u0F2F\u0F30\u0F31\u0F32\u0F33\u0F34\u0F35"+
+ "\u0F36\u0F37\u0F38\u0F39\u0F3A\u0F3B\u0F3C\u0F3D"+
+ "\u0F3E\u0F3F\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45"+
+ "\u0F46\u0F47\u0F48\u0F49\u0F4A\u0F4B\u0F4C\u0F4D"+
+ "\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55"+
+ "\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D"+
+ "\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65"+
+ "\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F6D"+
+ "\u0F6E\u0F6F\u0F70\u0F71\u0F72\u0F73\u0F74\u0F75"+
+ "\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D"+
+ "\u0F7E\u0F7F\u0F80\u0F81\u0F82\u0F83\u0F84\u0F85"+
+ "\u0F86\u0F87\u0F88\u0F89\u0F8A\u0F8B\u0F8C\u0F8D"+
+ "\u0F8E\u0F8F\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95"+
+ "\u0F96\u0F97\u0F98\u0F99\u0F9A\u0F9B\u0F9C\u0F9D"+
+ "\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5"+
+ "\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD"+
+ "\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5"+
+ "\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FBD"+
+ "\u0FBE\u0FBF\u0FC0\u0FC1\u0FC2\u0FC3\u0FC4\u0FC5"+
+ "\u0FC6\u0FC7\u0FC8\u0FC9\u0FCA\u0FCB\u0FCC\u0FCD"+
+ "\u0FCE\u0FCF\u0FD0\u0FD1\u0FD2\u0FD3\u0FD4\u0FD5"+
+ "\u0FD6\u0FD7\u0FD8\u0FD9\u0FDA\u0FDB\u0FDC\u0FDD"+
+ "\u0FDE\u0FDF\u0FE0\u0FE1\u0FE2\u0FE3\u0FE4\u0FE5"+
+ "\u0FE6\u0FE7\u0FE8\u0FE9\u0FEA\u0FEB\u0FEC\u0FED"+
+ "\u0FEE\u0FEF\u0FF0\u0FF1\u0FF2\u0FF3\u0FF4\u0FF5"+
+ "\u0FF6\u0FF7\u0FF8\u0FF9\u0FFA\u0FFB\u0FFC\u0FFD"+
+ "\u0FFE\u0FFF\u1000\u1001\u1002\u1003\u1004\u1005"+
+ "\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D"+
+ "\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015"+
+ "\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D"+
+ "\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025"+
+ "\u1026\u1027\u1028\u1029\u102A\u102B\u102C\u102D"+
+ "\u102E\u102F\u1030\u1031\u1032\u1033\u1034\u1035"+
+ "\u1036\u1037\u1038\u1039\u103A\u103B\u103C\u103D"+
+ "\u103E\u103F\u1040\u1041\u1042\u1043\u1044\u1045"+
+ "\u1046\u1047\u1048\u1049\u104A\u104B\u104C\u104D"+
+ "\u104E\u104F\u1050\u1051\u1052\u1053\u1054\u1055"+
+ "\u1056\u1057\u1058\u1059\u105A\u105B\u105C\u105D"+
+ "\u105E\u105F\u1060\u1061\u1062\u1063\u1064\u1065"+
+ "\u1066\u1067\u1068\u1069\u106A\u106B\u106C\u106D"+
+ "\u106E\u106F\u1070\u1071\u1072\u1073\u1074\u1075"+
+ "\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D"+
+ "\u107E\u107F\u1080\u1081\u1082\u1083\u1084\u1085"+
+ "\u1086\u1087\u1088\u1089\u108A\u108B\u108C\u108D"+
+ "\u108E\u108F\u1090\u1091\u1092\u1093\u1094\u1095"+
+ "\u1096\u1097\u1098\u1099\u109A\u109B\u109C\u109D"+
+ "\u109E\u109F\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5"+
+ "\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD"+
+ "\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5"+
+ "\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD"+
+ "\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5"+
+ "\u10C6\u10C7\u10C8\u10C9\u10CA\u10CB\u10CC\u10CD"+
+ "\u10CE\u10CF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5"+
+ "\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD"+
+ "\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5"+
+ "\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED"+
+ "\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5"+
+ "\u10F6\u10F7\u10F8\u10F9\u10FA\u10FB\u10FC\u10FD"+
+ "\u10FE\u10FF\u1100\u1101\u1102\u1103\u1104\u1105"+
+ "\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D"+
+ "\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115"+
+ "\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D";
+
+ private final static String innerDecoderIndex1=
+ "\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125"+
+ "\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D"+
+ "\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135"+
+ "\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D"+
+ "\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145"+
+ "\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D"+
+ "\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155"+
+ "\u1156\u1157\u1158\u1159\u115A\u115B\u115C\u115D"+
+ "\u115E\u115F\u1160\u1161\u1162\u1163\u1164\u1165"+
+ "\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D"+
+ "\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175"+
+ "\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D"+
+ "\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185"+
+ "\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D"+
+ "\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195"+
+ "\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D"+
+ "\u119E\u119F\u11A0\u11A1\u11A2\u11A3\u11A4\u11A5"+
+ "\u11A6\u11A7\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD"+
+ "\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5"+
+ "\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD"+
+ "\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5"+
+ "\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD"+
+ "\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5"+
+ "\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD"+
+ "\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5"+
+ "\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED"+
+ "\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5"+
+ "\u11F6\u11F7\u11F8\u11F9\u11FA\u11FB\u11FC\u11FD"+
+ "\u11FE\u11FF\u1200\u1201\u1202\u1203\u1204\u1205"+
+ "\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D"+
+ "\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215"+
+ "\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D"+
+ "\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225"+
+ "\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D"+
+ "\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235"+
+ "\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D"+
+ "\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245"+
+ "\u1246\u1247\u1248\u1249\u124A\u124B\u124C\u124D"+
+ "\u124E\u124F\u1250\u1251\u1252\u1253\u1254\u1255"+
+ "\u1256\u1257\u1258\u1259\u125A\u125B\u125C\u125D"+
+ "\u125E\u125F\u1260\u1261\u1262\u1263\u1264\u1265"+
+ "\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D"+
+ "\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275"+
+ "\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D"+
+ "\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285"+
+ "\u1286\u1287\u1288\u1289\u128A\u128B\u128C\u128D"+
+ "\u128E\u128F\u1290\u1291\u1292\u1293\u1294\u1295"+
+ "\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D"+
+ "\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5"+
+ "\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD"+
+ "\u12AE\u12AF\u12B0\u12B1\u12B2\u12B3\u12B4\u12B5"+
+ "\u12B6\u12B7\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD"+
+ "\u12BE\u12BF\u12C0\u12C1\u12C2\u12C3\u12C4\u12C5"+
+ "\u12C6\u12C7\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD"+
+ "\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5"+
+ "\u12D6\u12D7\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD"+
+ "\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5"+
+ "\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED"+
+ "\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5"+
+ "\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD"+
+ "\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305"+
+ "\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D"+
+ "\u130E\u130F\u1310\u1311\u1312\u1313\u1314\u1315"+
+ "\u1316\u1317\u1318\u1319\u131A\u131B\u131C\u131D"+
+ "\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325"+
+ "\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D"+
+ "\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335"+
+ "\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D"+
+ "\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345"+
+ "\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D"+
+ "\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355"+
+ "\u1356\u1357\u1358\u1359\u135A\u135B\u135C\u135D"+
+ "\u135E\u135F\u1360\u1361\u1362\u1363\u1364\u1365"+
+ "\u1366\u1367\u1368\u1369\u136A\u136B\u136C\u136D"+
+ "\u136E\u136F\u1370\u1371\u1372\u1373\u1374\u1375"+
+ "\u1376\u1377\u1378\u1379\u137A\u137B\u137C\u137D"+
+ "\u137E\u137F\u1380\u1381\u1382\u1383\u1384\u1385"+
+ "\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D"+
+ "\u138E\u138F\u1390\u1391\u1392\u1393\u1394\u1395"+
+ "\u1396\u1397\u1398\u1399\u139A\u139B\u139C\u139D"+
+ "\u139E\u139F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5"+
+ "\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD"+
+ "\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5"+
+ "\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD"+
+ "\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5"+
+ "\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD"+
+ "\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5"+
+ "\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD"+
+ "\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5"+
+ "\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED"+
+ "\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u13F5"+
+ "\u13F6\u13F7\u13F8\u13F9\u13FA\u13FB\u13FC\u13FD"+
+ "\u13FE\u13FF\u1400\u1401\u1402\u1403\u1404\u1405"+
+ "\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D"+
+ "\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415"+
+ "\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D"+
+ "\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425"+
+ "\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D"+
+ "\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435"+
+ "\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D"+
+ "\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445"+
+ "\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D"+
+ "\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455"+
+ "\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D"+
+ "\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465"+
+ "\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D"+
+ "\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475"+
+ "\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D"+
+ "\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485"+
+ "\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D"+
+ "\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495"+
+ "\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D"+
+ "\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5"+
+ "\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD"+
+ "\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5"+
+ "\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD"+
+ "\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5"+
+ "\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD"+
+ "\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5"+
+ "\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD"+
+ "\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5"+
+ "\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED"+
+ "\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5"+
+ "\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD"+
+ "\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505"+
+ "\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D"+
+ "\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515"+
+ "\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D"+
+ "\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525"+
+ "\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D"+
+ "\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535"+
+ "\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D"+
+ "\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545"+
+ "\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D"+
+ "\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555"+
+ "\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D"+
+ "\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565"+
+ "\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D"+
+ "\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575"+
+ "\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D"+
+ "\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585"+
+ "\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D"+
+ "\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595"+
+ "\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D"+
+ "\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5"+
+ "\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD"+
+ "\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5"+
+ "\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD"+
+ "\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5"+
+ "\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD"+
+ "\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5"+
+ "\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD"+
+ "\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5"+
+ "\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED"+
+ "\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5"+
+ "\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD"+
+ "\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605"+
+ "\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D"+
+ "\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615"+
+ "\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D"+
+ "\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625"+
+ "\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D"+
+ "\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635"+
+ "\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D"+
+ "\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645"+
+ "\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D"+
+ "\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655"+
+ "\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D"+
+ "\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665"+
+ "\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166D"+
+ "\u166E\u166F\u1670\u1671\u1672\u1673\u1674\u1675"+
+ "\u1676\u1677\u1678\u1679\u167A\u167B\u167C\u167D"+
+ "\u167E\u167F\u1680\u1681\u1682\u1683\u1684\u1685"+
+ "\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D"+
+ "\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695"+
+ "\u1696\u1697\u1698\u1699\u169A\u169B\u169C\u169D"+
+ "\u169E\u169F\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5"+
+ "\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD"+
+ "\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5"+
+ "\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD"+
+ "\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5"+
+ "\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD"+
+ "\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5"+
+ "\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD"+
+ "\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5"+
+ "\u16E6\u16E7\u16E8\u16E9\u16EA\u16EB\u16EC\u16ED"+
+ "\u16EE\u16EF\u16F0\u16F1\u16F2\u16F3\u16F4\u16F5"+
+ "\u16F6\u16F7\u16F8\u16F9\u16FA\u16FB\u16FC\u16FD"+
+ "\u16FE\u16FF\u1700\u1701\u1702\u1703\u1704\u1705"+
+ "\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170D"+
+ "\u170E\u170F\u1710\u1711\u1712\u1713\u1714\u1715"+
+ "\u1716\u1717\u1718\u1719\u171A\u171B\u171C\u171D"+
+ "\u171E\u171F\u1720\u1721\u1722\u1723\u1724\u1725"+
+ "\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D"+
+ "\u172E\u172F\u1730\u1731\u1732\u1733\u1734\u1735"+
+ "\u1736\u1737\u1738\u1739\u173A\u173B\u173C\u173D"+
+ "\u173E\u173F\u1740\u1741\u1742\u1743\u1744\u1745"+
+ "\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D"+
+ "\u174E\u174F\u1750\u1751\u1752\u1753\u1754\u1755"+
+ "\u1756\u1757\u1758\u1759\u175A\u175B\u175C\u175D"+
+ "\u175E\u175F\u1760\u1761\u1762\u1763\u1764\u1765"+
+ "\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176D"+
+ "\u176E\u176F\u1770\u1771\u1772\u1773\u1774\u1775"+
+ "\u1776\u1777\u1778\u1779\u177A\u177B\u177C\u177D"+
+ "\u177E\u177F\u1780\u1781\u1782\u1783\u1784\u1785"+
+ "\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D"+
+ "\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795"+
+ "\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D"+
+ "\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5"+
+ "\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD"+
+ "\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17B4\u17B5"+
+ "\u17B6\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD"+
+ "\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5"+
+ "\u17C6\u17C7\u17C8\u17C9\u17CA\u17CB\u17CC\u17CD"+
+ "\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17D4\u17D5"+
+ "\u17D6\u17D7\u17D8\u17D9\u17DA\u17DB\u17DC\u17DD"+
+ "\u17DE\u17DF\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5"+
+ "\u17E6\u17E7\u17E8\u17E9\u17EA\u17EB\u17EC\u17ED"+
+ "\u17EE\u17EF\u17F0\u17F1\u17F2\u17F3\u17F4\u17F5"+
+ "\u17F6\u17F7\u17F8\u17F9\u17FA\u17FB\u17FC\u17FD"+
+ "\u17FE\u17FF\u1800\u1801\u1802\u1803\u1804\u1805"+
+ "\u1806\u1807\u1808\u1809\u180A\u180B\u180C\u180D"+
+ "\u180E\u180F\u1810\u1811\u1812\u1813\u1814\u1815"+
+ "\u1816\u1817\u1818\u1819\u181A\u181B\u181C\u181D"+
+ "\u181E\u181F\u1820\u1821\u1822\u1823\u1824\u1825"+
+ "\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D"+
+ "\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835"+
+ "\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D"+
+ "\u183E\u183F\u1840\u1841\u1842\u1843\u1844\u1845"+
+ "\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D"+
+ "\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855"+
+ "\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D"+
+ "\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865"+
+ "\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D"+
+ "\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875"+
+ "\u1876\u1877\u1878\u1879\u187A\u187B\u187C\u187D"+
+ "\u187E\u187F\u1880\u1881\u1882\u1883\u1884\u1885"+
+ "\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D"+
+ "\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895"+
+ "\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D"+
+ "\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5"+
+ "\u18A6\u18A7\u18A8\u18A9\u18AA\u18AB\u18AC\u18AD"+
+ "\u18AE\u18AF\u18B0\u18B1\u18B2\u18B3\u18B4\u18B5"+
+ "\u18B6\u18B7\u18B8\u18B9\u18BA\u18BB\u18BC\u18BD"+
+ "\u18BE\u18BF\u18C0\u18C1\u18C2\u18C3\u18C4\u18C5"+
+ "\u18C6\u18C7\u18C8\u18C9\u18CA\u18CB\u18CC\u18CD"+
+ "\u18CE\u18CF\u18D0\u18D1\u18D2\u18D3\u18D4\u18D5"+
+ "\u18D6\u18D7\u18D8\u18D9\u18DA\u18DB\u18DC\u18DD"+
+ "\u18DE\u18DF\u18E0\u18E1\u18E2\u18E3\u18E4\u18E5"+
+ "\u18E6\u18E7\u18E8\u18E9\u18EA\u18EB\u18EC\u18ED"+
+ "\u18EE\u18EF\u18F0\u18F1\u18F2\u18F3\u18F4\u18F5"+
+ "\u18F6\u18F7\u18F8\u18F9\u18FA\u18FB\u18FC\u18FD"+
+ "\u18FE\u18FF\u1900\u1901\u1902\u1903\u1904\u1905"+
+ "\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D"+
+ "\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915"+
+ "\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u191D"+
+ "\u191E\u191F\u1920\u1921\u1922\u1923\u1924\u1925"+
+ "\u1926\u1927\u1928\u1929\u192A\u192B\u192C\u192D"+
+ "\u192E\u192F\u1930\u1931\u1932\u1933\u1934\u1935"+
+ "\u1936\u1937\u1938\u1939\u193A\u193B\u193C\u193D"+
+ "\u193E\u193F\u1940\u1941\u1942\u1943\u1944\u1945"+
+ "\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D"+
+ "\u194E\u194F\u1950\u1951\u1952\u1953\u1954\u1955"+
+ "\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D"+
+ "\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965"+
+ "\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D"+
+ "\u196E\u196F\u1970\u1971\u1972\u1973\u1974\u1975"+
+ "\u1976\u1977\u1978\u1979\u197A\u197B\u197C\u197D"+
+ "\u197E\u197F\u1980\u1981\u1982\u1983\u1984\u1985"+
+ "\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D"+
+ "\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995"+
+ "\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D"+
+ "\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5"+
+ "\u19A6\u19A7\u19A8\u19A9\u19AA\u19AB\u19AC\u19AD"+
+ "\u19AE\u19AF\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5"+
+ "\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD"+
+ "\u19BE\u19BF\u19C0\u19C1\u19C2\u19C3\u19C4\u19C5"+
+ "\u19C6\u19C7\u19C8\u19C9\u19CA\u19CB\u19CC\u19CD"+
+ "\u19CE\u19CF\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5"+
+ "\u19D6\u19D7\u19D8\u19D9\u19DA\u19DB\u19DC\u19DD"+
+ "\u19DE\u19DF\u19E0\u19E1\u19E2\u19E3\u19E4\u19E5"+
+ "\u19E6\u19E7\u19E8\u19E9\u19EA\u19EB\u19EC\u19ED"+
+ "\u19EE\u19EF\u19F0\u19F1\u19F2\u19F3\u19F4\u19F5"+
+ "\u19F6\u19F7\u19F8\u19F9\u19FA\u19FB\u19FC\u19FD"+
+ "\u19FE\u19FF\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05"+
+ "\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D"+
+ "\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15"+
+ "\u1A16\u1A17\u1A18\u1A19\u1A1A\u1A1B\u1A1C\u1A1D"+
+ "\u1A1E\u1A1F\u1A20\u1A21\u1A22\u1A23\u1A24\u1A25"+
+ "\u1A26\u1A27\u1A28\u1A29\u1A2A\u1A2B\u1A2C\u1A2D"+
+ "\u1A2E\u1A2F\u1A30\u1A31\u1A32\u1A33\u1A34\u1A35"+
+ "\u1A36\u1A37\u1A38\u1A39\u1A3A\u1A3B\u1A3C\u1A3D"+
+ "\u1A3E\u1A3F\u1A40\u1A41\u1A42\u1A43\u1A44\u1A45"+
+ "\u1A46\u1A47\u1A48\u1A49\u1A4A\u1A4B\u1A4C\u1A4D"+
+ "\u1A4E\u1A4F\u1A50\u1A51\u1A52\u1A53\u1A54\u1A55"+
+ "\u1A56\u1A57\u1A58\u1A59\u1A5A\u1A5B\u1A5C\u1A5D"+
+ "\u1A5E\u1A5F\u1A60\u1A61\u1A62\u1A63\u1A64\u1A65"+
+ "\u1A66\u1A67\u1A68\u1A69\u1A6A\u1A6B\u1A6C\u1A6D"+
+ "\u1A6E\u1A6F\u1A70\u1A71\u1A72\u1A73\u1A74\u1A75"+
+ "\u1A76\u1A77\u1A78\u1A79\u1A7A\u1A7B\u1A7C\u1A7D"+
+ "\u1A7E\u1A7F\u1A80\u1A81\u1A82\u1A83\u1A84\u1A85"+
+ "\u1A86\u1A87\u1A88\u1A89\u1A8A\u1A8B\u1A8C\u1A8D"+
+ "\u1A8E\u1A8F\u1A90\u1A91\u1A92\u1A93\u1A94\u1A95"+
+ "\u1A96\u1A97\u1A98\u1A99\u1A9A\u1A9B\u1A9C\u1A9D"+
+ "\u1A9E\u1A9F\u1AA0\u1AA1\u1AA2\u1AA3\u1AA4\u1AA5"+
+ "\u1AA6\u1AA7\u1AA8\u1AA9\u1AAA\u1AAB\u1AAC\u1AAD"+
+ "\u1AAE\u1AAF\u1AB0\u1AB1\u1AB2\u1AB3\u1AB4\u1AB5"+
+ "\u1AB6\u1AB7\u1AB8\u1AB9\u1ABA\u1ABB\u1ABC\u1ABD"+
+ "\u1ABE\u1ABF\u1AC0\u1AC1\u1AC2\u1AC3\u1AC4\u1AC5"+
+ "\u1AC6\u1AC7\u1AC8\u1AC9\u1ACA\u1ACB\u1ACC\u1ACD"+
+ "\u1ACE\u1ACF\u1AD0\u1AD1\u1AD2\u1AD3\u1AD4\u1AD5"+
+ "\u1AD6\u1AD7\u1AD8\u1AD9\u1ADA\u1ADB\u1ADC\u1ADD"+
+ "\u1ADE\u1ADF\u1AE0\u1AE1\u1AE2\u1AE3\u1AE4\u1AE5"+
+ "\u1AE6\u1AE7\u1AE8\u1AE9\u1AEA\u1AEB\u1AEC\u1AED"+
+ "\u1AEE\u1AEF\u1AF0\u1AF1\u1AF2\u1AF3\u1AF4\u1AF5"+
+ "\u1AF6\u1AF7\u1AF8\u1AF9\u1AFA\u1AFB\u1AFC\u1AFD"+
+ "\u1AFE\u1AFF\u1B00\u1B01\u1B02\u1B03\u1B04\u1B05"+
+ "\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D"+
+ "\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15"+
+ "\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D"+
+ "\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25"+
+ "\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D"+
+ "\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B34\u1B35"+
+ "\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3B\u1B3C\u1B3D"+
+ "\u1B3E\u1B3F\u1B40\u1B41\u1B42\u1B43\u1B44\u1B45"+
+ "\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B4C\u1B4D"+
+ "\u1B4E\u1B4F\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55"+
+ "\u1B56\u1B57\u1B58\u1B59\u1B5A\u1B5B\u1B5C\u1B5D"+
+ "\u1B5E\u1B5F\u1B60\u1B61\u1B62\u1B63\u1B64\u1B65"+
+ "\u1B66\u1B67\u1B68\u1B69\u1B6A\u1B6B\u1B6C\u1B6D"+
+ "\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B74\u1B75"+
+ "\u1B76\u1B77\u1B78\u1B79\u1B7A\u1B7B\u1B7C\u1B7D"+
+ "\u1B7E\u1B7F\u1B80\u1B81\u1B82\u1B83\u1B84\u1B85"+
+ "\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D"+
+ "\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95"+
+ "\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D"+
+ "\u1B9E\u1B9F\u1BA0\u1BA1\u1BA2\u1BA3\u1BA4\u1BA5"+
+ "\u1BA6\u1BA7\u1BA8\u1BA9\u1BAA\u1BAB\u1BAC\u1BAD"+
+ "\u1BAE\u1BAF\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5"+
+ "\u1BB6\u1BB7\u1BB8\u1BB9\u1BBA\u1BBB\u1BBC\u1BBD"+
+ "\u1BBE\u1BBF\u1BC0\u1BC1\u1BC2\u1BC3\u1BC4\u1BC5"+
+ "\u1BC6\u1BC7\u1BC8\u1BC9\u1BCA\u1BCB\u1BCC\u1BCD"+
+ "\u1BCE\u1BCF\u1BD0\u1BD1\u1BD2\u1BD3\u1BD4\u1BD5"+
+ "\u1BD6\u1BD7\u1BD8\u1BD9\u1BDA\u1BDB\u1BDC\u1BDD"+
+ "\u1BDE\u1BDF\u1BE0\u1BE1\u1BE2\u1BE3\u1BE4\u1BE5"+
+ "\u1BE6\u1BE7\u1BE8\u1BE9\u1BEA\u1BEB\u1BEC\u1BED"+
+ "\u1BEE\u1BEF\u1BF0\u1BF1\u1BF2\u1BF3\u1BF4\u1BF5"+
+ "\u1BF6\u1BF7\u1BF8\u1BF9\u1BFA\u1BFB\u1BFC\u1BFD"+
+ "\u1BFE\u1BFF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05"+
+ "\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D"+
+ "\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15"+
+ "\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D"+
+ "\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C24\u1C25"+
+ "\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C2C\u1C2D"+
+ "\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C34\u1C35"+
+ "\u1C36\u1C37\u1C38\u1C39\u1C3A\u1C3B\u1C3C\u1C3D"+
+ "\u1C3E\u1C3F\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45"+
+ "\u1C46\u1C47\u1C48\u1C49\u1C4A\u1C4B\u1C4C\u1C4D"+
+ "\u1C4E\u1C4F\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55"+
+ "\u1C56\u1C57\u1C58\u1C59\u1C5A\u1C5B\u1C5C\u1C5D"+
+ "\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65"+
+ "\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D"+
+ "\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75"+
+ "\u1C76\u1C77\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D"+
+ "\u1C7E\u1C7F\u1C80\u1C81\u1C82\u1C83\u1C84\u1C85"+
+ "\u1C86\u1C87\u1C88\u1C89\u1C8A\u1C8B\u1C8C\u1C8D"+
+ "\u1C8E\u1C8F\u1C90\u1C91\u1C92\u1C93\u1C94\u1C95"+
+ "\u1C96\u1C97\u1C98\u1C99\u1C9A\u1C9B\u1C9C\u1C9D"+
+ "\u1C9E\u1C9F\u1CA0\u1CA1\u1CA2\u1CA3\u1CA4\u1CA5"+
+ "\u1CA6\u1CA7\u1CA8\u1CA9\u1CAA\u1CAB\u1CAC\u1CAD"+
+ "\u1CAE\u1CAF\u1CB0\u1CB1\u1CB2\u1CB3\u1CB4\u1CB5"+
+ "\u1CB6\u1CB7\u1CB8\u1CB9\u1CBA\u1CBB\u1CBC\u1CBD"+
+ "\u1CBE\u1CBF\u1CC0\u1CC1\u1CC2\u1CC3\u1CC4\u1CC5"+
+ "\u1CC6\u1CC7\u1CC8\u1CC9\u1CCA\u1CCB\u1CCC\u1CCD"+
+ "\u1CCE\u1CCF\u1CD0\u1CD1\u1CD2\u1CD3\u1CD4\u1CD5"+
+ "\u1CD6\u1CD7\u1CD8\u1CD9\u1CDA\u1CDB\u1CDC\u1CDD"+
+ "\u1CDE\u1CDF\u1CE0\u1CE1\u1CE2\u1CE3\u1CE4\u1CE5"+
+ "\u1CE6\u1CE7\u1CE8\u1CE9\u1CEA\u1CEB\u1CEC\u1CED"+
+ "\u1CEE\u1CEF\u1CF0\u1CF1\u1CF2\u1CF3\u1CF4\u1CF5"+
+ "\u1CF6\u1CF7\u1CF8\u1CF9\u1CFA\u1CFB\u1CFC\u1CFD"+
+ "\u1CFE\u1CFF\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05"+
+ "\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D"+
+ "\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15"+
+ "\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D"+
+ "\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25"+
+ "\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D2C\u1D2D"+
+ "\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35"+
+ "\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D"+
+ "\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45"+
+ "\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D"+
+ "\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55"+
+ "\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D"+
+ "\u1D5E\u1D5F\u1D60\u1D61\u1D62\u1D63\u1D64\u1D65"+
+ "\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D"+
+ "\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75"+
+ "\u1D76\u1D77\u1D78\u1D79\u1D7A\u1D7B\u1D7C\u1D7D"+
+ "\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85"+
+ "\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D"+
+ "\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95"+
+ "\u1D96\u1D97\u1D98\u1D99\u1D9A\u1D9B\u1D9C\u1D9D"+
+ "\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5"+
+ "\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD"+
+ "\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5"+
+ "\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD"+
+ "\u1DBE\u1DBF\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5"+
+ "\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD"+
+ "\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5"+
+ "\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD"+
+ "\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5"+
+ "\u1DE6\u1DE7\u1DE8\u1DE9\u1DEA\u1DEB\u1DEC\u1DED"+
+ "\u1DEE\u1DEF\u1DF0\u1DF1\u1DF2\u1DF3\u1DF4\u1DF5"+
+ "\u1DF6\u1DF7\u1DF8\u1DF9\u1DFA\u1DFB\u1DFC\u1DFD"+
+ "\u1DFE\u1DFF\u1E00\u1E01\u1E02\u1E03\u1E04\u1E05"+
+ "\u1E06\u1E07\u1E08\u1E09\u1E0A\u1E0B\u1E0C\u1E0D"+
+ "\u1E0E\u1E0F\u1E10\u1E11\u1E12\u1E13\u1E14\u1E15"+
+ "\u1E16\u1E17\u1E18\u1E19\u1E1A\u1E1B\u1E1C\u1E1D"+
+ "\u1E1E\u1E1F\u1E20\u1E21\u1E22\u1E23\u1E24\u1E25"+
+ "\u1E26\u1E27\u1E28\u1E29\u1E2A\u1E2B\u1E2C\u1E2D"+
+ "\u1E2E\u1E2F\u1E30\u1E31\u1E32\u1E33\u1E34\u1E35"+
+ "\u1E36\u1E37\u1E38\u1E39\u1E3A\u1E3B\u1E3C\u1E3D"+
+ "\u1E3E\u1E3F\u1E40\u1E41\u1E42\u1E43\u1E44\u1E45"+
+ "\u1E46\u1E47\u1E48\u1E49\u1E4A\u1E4B\u1E4C\u1E4D"+
+ "\u1E4E\u1E4F\u1E50\u1E51\u1E52\u1E53\u1E54\u1E55"+
+ "\u1E56\u1E57\u1E58\u1E59\u1E5A\u1E5B\u1E5C\u1E5D"+
+ "\u1E5E\u1E5F\u1E60\u1E61\u1E62\u1E63\u1E64\u1E65"+
+ "\u1E66\u1E67\u1E68\u1E69\u1E6A\u1E6B\u1E6C\u1E6D"+
+ "\u1E6E\u1E6F\u1E70\u1E71\u1E72\u1E73\u1E74\u1E75"+
+ "\u1E76\u1E77\u1E78\u1E79\u1E7A\u1E7B\u1E7C\u1E7D"+
+ "\u1E7E\u1E7F\u1E80\u1E81\u1E82\u1E83\u1E84\u1E85"+
+ "\u1E86\u1E87\u1E88\u1E89\u1E8A\u1E8B\u1E8C\u1E8D"+
+ "\u1E8E\u1E8F\u1E90\u1E91\u1E92\u1E93\u1E94\u1E95"+
+ "\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D"+
+ "\u1E9E\u1E9F\u1EA0\u1EA1\u1EA2\u1EA3\u1EA4\u1EA5"+
+ "\u1EA6\u1EA7\u1EA8\u1EA9\u1EAA\u1EAB\u1EAC\u1EAD"+
+ "\u1EAE\u1EAF\u1EB0\u1EB1\u1EB2\u1EB3\u1EB4\u1EB5"+
+ "\u1EB6\u1EB7\u1EB8\u1EB9\u1EBA\u1EBB\u1EBC\u1EBD"+
+ "\u1EBE\u1EBF\u1EC0\u1EC1\u1EC2\u1EC3\u1EC4\u1EC5"+
+ "\u1EC6\u1EC7\u1EC8\u1EC9\u1ECA\u1ECB\u1ECC\u1ECD"+
+ "\u1ECE\u1ECF\u1ED0\u1ED1\u1ED2\u1ED3\u1ED4\u1ED5"+
+ "\u1ED6\u1ED7\u1ED8\u1ED9\u1EDA\u1EDB\u1EDC\u1EDD"+
+ "\u1EDE\u1EDF\u1EE0\u1EE1\u1EE2\u1EE3\u1EE4\u1EE5"+
+ "\u1EE6\u1EE7\u1EE8\u1EE9\u1EEA\u1EEB\u1EEC\u1EED"+
+ "\u1EEE\u1EEF\u1EF0\u1EF1\u1EF2\u1EF3\u1EF4\u1EF5"+
+ "\u1EF6\u1EF7\u1EF8\u1EF9\u1EFA\u1EFB\u1EFC\u1EFD"+
+ "\u1EFE\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05"+
+ "\u1F06\u1F07\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D"+
+ "\u1F0E\u1F0F\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15"+
+ "\u1F16\u1F17\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D"+
+ "\u1F1E\u1F1F\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25"+
+ "\u1F26\u1F27\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D"+
+ "\u1F2E\u1F2F\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35"+
+ "\u1F36\u1F37\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D"+
+ "\u1F3E\u1F3F\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45"+
+ "\u1F46\u1F47\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D"+
+ "\u1F4E\u1F4F\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55"+
+ "\u1F56\u1F57\u1F58\u1F59\u1F5A\u1F5B\u1F5C\u1F5D"+
+ "\u1F5E\u1F5F\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65"+
+ "\u1F66\u1F67\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D"+
+ "\u1F6E\u1F6F\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75"+
+ "\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D"+
+ "\u1F7E\u1F7F\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85"+
+ "\u1F86\u1F87\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D"+
+ "\u1F8E\u1F8F\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95"+
+ "\u1F96\u1F97\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D"+
+ "\u1F9E\u1F9F\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5"+
+ "\u1FA6\u1FA7\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD"+
+ "\u1FAE\u1FAF\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB5"+
+ "\u1FB6\u1FB7\u1FB8\u1FB9\u1FBA\u1FBB\u1FBC\u1FBD"+
+ "\u1FBE\u1FBF\u1FC0\u1FC1\u1FC2\u1FC3\u1FC4\u1FC5"+
+ "\u1FC6\u1FC7\u1FC8\u1FC9\u1FCA\u1FCB\u1FCC\u1FCD"+
+ "\u1FCE\u1FCF\u1FD0\u1FD1\u1FD2\u1FD3\u1FD4\u1FD5"+
+ "\u1FD6\u1FD7\u1FD8\u1FD9\u1FDA\u1FDB\u1FDC\u1FDD"+
+ "\u1FDE\u1FDF\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5"+
+ "\u1FE6\u1FE7\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FED"+
+ "\u1FEE\u1FEF\u1FF0\u1FF1\u1FF2\u1FF3\u1FF4\u1FF5"+
+ "\u1FF6\u1FF7\u1FF8\u1FF9\u1FFA\u1FFB\u1FFC\u1FFD"+
+ "\u1FFE\u1FFF\u2000\u2001\u2002\u2003\u2004\u2005"+
+ "\u2006\u2007\u2008\u2009\u200A\u200B\u200C\u200D"+
+ "\u200E\u200F\u2011\u2012\u2017\u201A\u201B\u201E"+
+ "\u201F\u2020\u2021\u2022\u2023\u2024\u2027\u2028"+
+ "\u2029\u202A\u202B\u202C\u202D\u202E\u202F\u2031"+
+ "\u2034\u2036\u2037\u2038\u2039\u203A\u203C\u203D"+
+ "\u203E\u203F\u2040\u2041\u2042\u2043\u2044\u2045"+
+ "\u2046\u2047\u2048\u2049\u204A\u204B\u204C\u204D"+
+ "\u204E\u204F\u2050\u2051\u2052\u2053\u2054\u2055"+
+ "\u2056\u2057\u2058\u2059\u205A\u205B\u205C\u205D"+
+ "\u205E\u205F\u2060\u2061\u2062\u2063\u2064\u2065"+
+ "\u2066\u2067\u2068\u2069\u206A\u206B\u206C\u206D"+
+ "\u206E\u206F\u2070\u2071\u2072\u2073\u2074\u2075"+
+ "\u2076\u2077\u2078\u2079\u207A\u207B\u207C\u207D"+
+ "\u207E\u207F\u2080\u2081\u2082\u2083\u2084\u2085"+
+ "\u2086\u2087\u2088\u2089\u208A\u208B\u208C\u208D"+
+ "\u208E\u208F\u2090\u2091\u2092\u2093\u2094\u2095"+
+ "\u2096\u2097\u2098\u2099\u209A\u209B\u209C\u209D"+
+ "\u209E\u209F\u20A0\u20A1\u20A2\u20A3\u20A4\u20A5"+
+ "\u20A6\u20A7\u20A8\u20A9\u20AA\u20AB\u20AD\u20AE"+
+ "\u20AF\u20B0\u20B1\u20B2\u20B3\u20B4\u20B5\u20B6"+
+ "\u20B7\u20B8\u20B9\u20BA\u20BB\u20BC\u20BD\u20BE"+
+ "\u20BF\u20C0\u20C1\u20C2\u20C3\u20C4\u20C5\u20C6"+
+ "\u20C7\u20C8\u20C9\u20CA\u20CB\u20CC\u20CD\u20CE"+
+ "\u20CF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6"+
+ "\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20DD\u20DE"+
+ "\u20DF\u20E0\u20E1\u20E2\u20E3\u20E4\u20E5\u20E6"+
+ "\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE"+
+ "\u20EF\u20F0\u20F1\u20F2\u20F3\u20F4\u20F5\u20F6"+
+ "\u20F7\u20F8\u20F9\u20FA\u20FB\u20FC\u20FD\u20FE"+
+ "\u20FF\u2100\u2101\u2102\u2104\u2106\u2107\u2108"+
+ "\u210A\u210B\u210C\u210D\u210E\u210F\u2110\u2111"+
+ "\u2112\u2113\u2114\u2115\u2117\u2118\u2119\u211A"+
+ "\u211B\u211C\u211D\u211E\u211F\u2120\u2122\u2123"+
+ "\u2124\u2125\u2126\u2127\u2128\u2129\u212A\u212B"+
+ "\u212C\u212D\u212E\u212F\u2130\u2131\u2132\u2133";
+
+ private final static String innerDecoderIndex2=
+ "\u2134\u2135\u2136\u2137\u2138\u2139\u213A\u213B"+
+ "\u213C\u213D\u213E\u213F\u2140\u2141\u2142\u2143"+
+ "\u2144\u2145\u2146\u2147\u2148\u2149\u214A\u214B"+
+ "\u214C\u214D\u214E\u214F\u2150\u2151\u2152\u2153"+
+ "\u2154\u2155\u2156\u2157\u2158\u2159\u215A\u215B"+
+ "\u215C\u215D\u215E\u215F\u216C\u216D\u216E\u216F"+
+ "\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181"+
+ "\u2182\u2183\u2184\u2185\u2186\u2187\u2188\u2189"+
+ "\u218A\u218B\u218C\u218D\u218E\u218F\u2194\u2195"+
+ "\u219A\u219B\u219C\u219D\u219E\u219F\u21A0\u21A1"+
+ "\u21A2\u21A3\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9"+
+ "\u21AA\u21AB\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1"+
+ "\u21B2\u21B3\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9"+
+ "\u21BA\u21BB\u21BC\u21BD\u21BE\u21BF\u21C0\u21C1"+
+ "\u21C2\u21C3\u21C4\u21C5\u21C6\u21C7\u21C8\u21C9"+
+ "\u21CA\u21CB\u21CC\u21CD\u21CE\u21CF\u21D0\u21D1"+
+ "\u21D2\u21D3\u21D4\u21D5\u21D6\u21D7\u21D8\u21D9"+
+ "\u21DA\u21DB\u21DC\u21DD\u21DE\u21DF\u21E0\u21E1"+
+ "\u21E2\u21E3\u21E4\u21E5\u21E6\u21E7\u21E8\u21E9"+
+ "\u21EA\u21EB\u21EC\u21ED\u21EE\u21EF\u21F0\u21F1"+
+ "\u21F2\u21F3\u21F4\u21F5\u21F6\u21F7\u21F8\u21F9"+
+ "\u21FA\u21FB\u21FC\u21FD\u21FE\u21FF\u2200\u2201"+
+ "\u2202\u2203\u2204\u2205\u2206\u2207\u2209\u220A"+
+ "\u220B\u220C\u220D\u220E\u2210\u2212\u2213\u2214"+
+ "\u2216\u2217\u2218\u2219\u221B\u221C\u2221\u2222"+
+ "\u2224\u2226\u222C\u222D\u222F\u2230\u2231\u2232"+
+ "\u2233\u2238\u2239\u223A\u223B\u223C\u223E\u223F"+
+ "\u2240\u2241\u2242\u2243\u2244\u2245\u2246\u2247"+
+ "\u2249\u224A\u224B\u224D\u224E\u224F\u2250\u2251"+
+ "\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225A"+
+ "\u225B\u225C\u225D\u225E\u225F\u2262\u2263\u2268"+
+ "\u2269\u226A\u226B\u226C\u226D\u2270\u2271\u2272"+
+ "\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227A"+
+ "\u227B\u227C\u227D\u227E\u227F\u2280\u2281\u2282"+
+ "\u2283\u2284\u2285\u2286\u2287\u2288\u2289\u228A"+
+ "\u228B\u228C\u228D\u228E\u228F\u2290\u2291\u2292"+
+ "\u2293\u2294\u2296\u2297\u2298\u229A\u229B\u229C"+
+ "\u229D\u229E\u229F\u22A0\u22A1\u22A2\u22A3\u22A4"+
+ "\u22A6\u22A7\u22A8\u22A9\u22AA\u22AB\u22AC\u22AD"+
+ "\u22AE\u22AF\u22B0\u22B1\u22B2\u22B3\u22B4\u22B5"+
+ "\u22B6\u22B7\u22B8\u22B9\u22BA\u22BB\u22BC\u22BD"+
+ "\u22BE\u22C0\u22C1\u22C2\u22C3\u22C4\u22C5\u22C6"+
+ "\u22C7\u22C8\u22C9\u22CA\u22CB\u22CC\u22CD\u22CE"+
+ "\u22CF\u22D0\u22D1\u22D2\u22D3\u22D4\u22D5\u22D6"+
+ "\u22D7\u22D8\u22D9\u22DA\u22DB\u22DC\u22DD\u22DE"+
+ "\u22DF\u22E0\u22E1\u22E2\u22E3\u22E4\u22E5\u22E6"+
+ "\u22E7\u22E8\u22E9\u22EA\u22EB\u22EC\u22ED\u22EE"+
+ "\u22EF\u22F0\u22F1\u22F2\u22F3\u22F4\u22F5\u22F6"+
+ "\u22F7\u22F8\u22F9\u22FA\u22FB\u22FC\u22FD\u22FE"+
+ "\u22FF\u2300\u2301\u2302\u2303\u2304\u2305\u2306"+
+ "\u2307\u2308\u2309\u230A\u230B\u230C\u230D\u230E"+
+ "\u230F\u2310\u2311\u2313\u2314\u2315\u2316\u2317"+
+ "\u2318\u2319\u231A\u231B\u231C\u231D\u231E\u231F"+
+ "\u2320\u2321\u2322\u2323\u2324\u2325\u2326\u2327"+
+ "\u2328\u2329\u232A\u232B\u232C\u232D\u232E\u232F"+
+ "\u2330\u2331\u2332\u2333\u2334\u2335\u2336\u2337"+
+ "\u2338\u2339\u233A\u233B\u233C\u233D\u233E\u233F"+
+ "\u2340\u2341\u2342\u2343\u2344\u2345\u2346\u2347"+
+ "\u2348\u2349\u234A\u234B\u234C\u234D\u234E\u234F"+
+ "\u2350\u2351\u2352\u2353\u2354\u2355\u2356\u2357"+
+ "\u2358\u2359\u235A\u235B\u235C\u235D\u235E\u235F"+
+ "\u2360\u2361\u2362\u2363\u2364\u2365\u2366\u2367"+
+ "\u2368\u2369\u236A\u236B\u236C\u236D\u236E\u236F"+
+ "\u2370\u2371\u2372\u2373\u2374\u2375\u2376\u2377"+
+ "\u2378\u2379\u237A\u237B\u237C\u237D\u237E\u237F"+
+ "\u2380\u2381\u2382\u2383\u2384\u2385\u2386\u2387"+
+ "\u2388\u2389\u238A\u238B\u238C\u238D\u238E\u238F"+
+ "\u2390\u2391\u2392\u2393\u2394\u2395\u2396\u2397"+
+ "\u2398\u2399\u239A\u239B\u239C\u239D\u239E\u239F"+
+ "\u23A0\u23A1\u23A2\u23A3\u23A4\u23A5\u23A6\u23A7"+
+ "\u23A8\u23A9\u23AA\u23AB\u23AC\u23AD\u23AE\u23AF"+
+ "\u23B0\u23B1\u23B2\u23B3\u23B4\u23B5\u23B6\u23B7"+
+ "\u23B8\u23B9\u23BA\u23BB\u23BC\u23BD\u23BE\u23BF"+
+ "\u23C0\u23C1\u23C2\u23C3\u23C4\u23C5\u23C6\u23C7"+
+ "\u23C8\u23C9\u23CA\u23CB\u23CC\u23CD\u23CE\u23CF"+
+ "\u23D0\u23D1\u23D2\u23D3\u23D4\u23D5\u23D6\u23D7"+
+ "\u23D8\u23D9\u23DA\u23DB\u23DC\u23DD\u23DE\u23DF"+
+ "\u23E0\u23E1\u23E2\u23E3\u23E4\u23E5\u23E6\u23E7"+
+ "\u23E8\u23E9\u23EA\u23EB\u23EC\u23ED\u23EE\u23EF"+
+ "\u23F0\u23F1\u23F2\u23F3\u23F4\u23F5\u23F6\u23F7"+
+ "\u23F8\u23F9\u23FA\u23FB\u23FC\u23FD\u23FE\u23FF"+
+ "\u2400\u2401\u2402\u2403\u2404\u2405\u2406\u2407"+
+ "\u2408\u2409\u240A\u240B\u240C\u240D\u240E\u240F"+
+ "\u2410\u2411\u2412\u2413\u2414\u2415\u2416\u2417"+
+ "\u2418\u2419\u241A\u241B\u241C\u241D\u241E\u241F"+
+ "\u2420\u2421\u2422\u2423\u2424\u2425\u2426\u2427"+
+ "\u2428\u2429\u242A\u242B\u242C\u242D\u242E\u242F"+
+ "\u2430\u2431\u2432\u2433\u2434\u2435\u2436\u2437"+
+ "\u2438\u2439\u243A\u243B\u243C\u243D\u243E\u243F"+
+ "\u2440\u2441\u2442\u2443\u2444\u2445\u2446\u2447"+
+ "\u2448\u2449\u244A\u244B\u244C\u244D\u244E\u244F"+
+ "\u2450\u2451\u2452\u2453\u2454\u2455\u2456\u2457"+
+ "\u2458\u2459\u245A\u245B\u245C\u245D\u245E\u245F"+
+ "\u246A\u246B\u246C\u246D\u246E\u246F\u2470\u2471"+
+ "\u2472\u2473\u249C\u249D\u249E\u249F\u24A0\u24A1"+
+ "\u24A2\u24A3\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9"+
+ "\u24AA\u24AB\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1"+
+ "\u24B2\u24B3\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9"+
+ "\u24BA\u24BB\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1"+
+ "\u24C2\u24C3\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9"+
+ "\u24CA\u24CB\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1"+
+ "\u24D2\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9"+
+ "\u24DA\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1"+
+ "\u24E2\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9"+
+ "\u24EA\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1"+
+ "\u24F2\u24F3\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9"+
+ "\u24FA\u24FB\u24FC\u24FD\u24FE\u24FF\u254C\u254D"+
+ "\u254E\u254F\u2574\u2575\u2576\u2577\u2578\u2579"+
+ "\u257A\u257B\u257C\u257D\u257E\u257F\u2580\u2590"+
+ "\u2591\u2592\u2596\u2597\u2598\u2599\u259A\u259B"+
+ "\u259C\u259D\u259E\u259F\u25A2\u25A3\u25A4\u25A5"+
+ "\u25A6\u25A7\u25A8\u25A9\u25AA\u25AB\u25AC\u25AD"+
+ "\u25AE\u25AF\u25B0\u25B1\u25B4\u25B5\u25B6\u25B7"+
+ "\u25B8\u25B9\u25BA\u25BB\u25BE\u25BF\u25C0\u25C1"+
+ "\u25C2\u25C3\u25C4\u25C5\u25C8\u25C9\u25CA\u25CC"+
+ "\u25CD\u25D0\u25D1\u25D2\u25D3\u25D4\u25D5\u25D6"+
+ "\u25D7\u25D8\u25D9\u25DA\u25DB\u25DC\u25DD\u25DE"+
+ "\u25DF\u25E0\u25E1\u25E6\u25E7\u25E8\u25E9\u25EA"+
+ "\u25EB\u25EC\u25ED\u25EE\u25EF\u25F0\u25F1\u25F2"+
+ "\u25F3\u25F4\u25F5\u25F6\u25F7\u25F8\u25F9\u25FA"+
+ "\u25FB\u25FC\u25FD\u25FE\u25FF\u2600\u2601\u2602"+
+ "\u2603\u2604\u2607\u2608\u260A\u260B\u260C\u260D"+
+ "\u260E\u260F\u2610\u2611\u2612\u2613\u2614\u2615"+
+ "\u2616\u2617\u2618\u2619\u261A\u261B\u261C\u261D"+
+ "\u261E\u261F\u2620\u2621\u2622\u2623\u2624\u2625"+
+ "\u2626\u2627\u2628\u2629\u262A\u262B\u262C\u262D"+
+ "\u262E\u262F\u2630\u2631\u2632\u2633\u2634\u2635"+
+ "\u2636\u2637\u2638\u2639\u263A\u263B\u263C\u263D"+
+ "\u263E\u263F\u2641\u2643\u2644\u2645\u2646\u2647"+
+ "\u2648\u2649\u264A\u264B\u264C\u264D\u264E\u264F"+
+ "\u2650\u2651\u2652\u2653\u2654\u2655\u2656\u2657"+
+ "\u2658\u2659\u265A\u265B\u265C\u265D\u265E\u265F"+
+ "\u2660\u2661\u2662\u2663\u2664\u2665\u2666\u2667"+
+ "\u2668\u2669\u266A\u266B\u266C\u266D\u266E\u266F"+
+ "\u2670\u2671\u2672\u2673\u2674\u2675\u2676\u2677"+
+ "\u2678\u2679\u267A\u267B\u267C\u267D\u267E\u267F"+
+ "\u2680\u2681\u2682\u2683\u2684\u2685\u2686\u2687"+
+ "\u2688\u2689\u268A\u268B\u268C\u268D\u268E\u268F"+
+ "\u2690\u2691\u2692\u2693\u2694\u2695\u2696\u2697"+
+ "\u2698\u2699\u269A\u269B\u269C\u269D\u269E\u269F"+
+ "\u26A0\u26A1\u26A2\u26A3\u26A4\u26A5\u26A6\u26A7"+
+ "\u26A8\u26A9\u26AA\u26AB\u26AC\u26AD\u26AE\u26AF"+
+ "\u26B0\u26B1\u26B2\u26B3\u26B4\u26B5\u26B6\u26B7"+
+ "\u26B8\u26B9\u26BA\u26BB\u26BC\u26BD\u26BE\u26BF"+
+ "\u26C0\u26C1\u26C2\u26C3\u26C4\u26C5\u26C6\u26C7"+
+ "\u26C8\u26C9\u26CA\u26CB\u26CC\u26CD\u26CE\u26CF"+
+ "\u26D0\u26D1\u26D2\u26D3\u26D4\u26D5\u26D6\u26D7"+
+ "\u26D8\u26D9\u26DA\u26DB\u26DC\u26DD\u26DE\u26DF"+
+ "\u26E0\u26E1\u26E2\u26E3\u26E4\u26E5\u26E6\u26E7"+
+ "\u26E8\u26E9\u26EA\u26EB\u26EC\u26ED\u26EE\u26EF"+
+ "\u26F0\u26F1\u26F2\u26F3\u26F4\u26F5\u26F6\u26F7"+
+ "\u26F8\u26F9\u26FA\u26FB\u26FC\u26FD\u26FE\u26FF"+
+ "\u2700\u2701\u2702\u2703\u2704\u2705\u2706\u2707"+
+ "\u2708\u2709\u270A\u270B\u270C\u270D\u270E\u270F"+
+ "\u2710\u2711\u2712\u2713\u2714\u2715\u2716\u2717"+
+ "\u2718\u2719\u271A\u271B\u271C\u271D\u271E\u271F"+
+ "\u2720\u2721\u2722\u2723\u2724\u2725\u2726\u2727"+
+ "\u2728\u2729\u272A\u272B\u272C\u272D\u272E\u272F"+
+ "\u2730\u2731\u2732\u2733\u2734\u2735\u2736\u2737"+
+ "\u2738\u2739\u273A\u273B\u273C\u273D\u273E\u273F"+
+ "\u2740\u2741\u2742\u2743\u2744\u2745\u2746\u2747"+
+ "\u2748\u2749\u274A\u274B\u274C\u274D\u274E\u274F"+
+ "\u2750\u2751\u2752\u2753\u2754\u2755\u2756\u2757"+
+ "\u2758\u2759\u275A\u275B\u275C\u275D\u275E\u275F"+
+ "\u2760\u2761\u2762\u2763\u2764\u2765\u2766\u2767"+
+ "\u2768\u2769\u276A\u276B\u276C\u276D\u276E\u276F"+
+ "\u2770\u2771\u2772\u2773\u2774\u2775\u2776\u2777"+
+ "\u2778\u2779\u277A\u277B\u277C\u277D\u277E\u277F"+
+ "\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787"+
+ "\u2788\u2789\u278A\u278B\u278C\u278D\u278E\u278F"+
+ "\u2790\u2791\u2792\u2793\u2794\u2795\u2796\u2797"+
+ "\u2798\u2799\u279A\u279B\u279C\u279D\u279E\u279F"+
+ "\u27A0\u27A1\u27A2\u27A3\u27A4\u27A5\u27A6\u27A7"+
+ "\u27A8\u27A9\u27AA\u27AB\u27AC\u27AD\u27AE\u27AF"+
+ "\u27B0\u27B1\u27B2\u27B3\u27B4\u27B5\u27B6\u27B7"+
+ "\u27B8\u27B9\u27BA\u27BB\u27BC\u27BD\u27BE\u27BF"+
+ "\u27C0\u27C1\u27C2\u27C3\u27C4\u27C5\u27C6\u27C7"+
+ "\u27C8\u27C9\u27CA\u27CB\u27CC\u27CD\u27CE\u27CF"+
+ "\u27D0\u27D1\u27D2\u27D3\u27D4\u27D5\u27D6\u27D7"+
+ "\u27D8\u27D9\u27DA\u27DB\u27DC\u27DD\u27DE\u27DF"+
+ "\u27E0\u27E1\u27E2\u27E3\u27E4\u27E5\u27E6\u27E7"+
+ "\u27E8\u27E9\u27EA\u27EB\u27EC\u27ED\u27EE\u27EF"+
+ "\u27F0\u27F1\u27F2\u27F3\u27F4\u27F5\u27F6\u27F7"+
+ "\u27F8\u27F9\u27FA\u27FB\u27FC\u27FD\u27FE\u27FF"+
+ "\u2800\u2801\u2802\u2803\u2804\u2805\u2806\u2807"+
+ "\u2808\u2809\u280A\u280B\u280C\u280D\u280E\u280F"+
+ "\u2810\u2811\u2812\u2813\u2814\u2815\u2816\u2817"+
+ "\u2818\u2819\u281A\u281B\u281C\u281D\u281E\u281F"+
+ "\u2820\u2821\u2822\u2823\u2824\u2825\u2826\u2827"+
+ "\u2828\u2829\u282A\u282B\u282C\u282D\u282E\u282F"+
+ "\u2830\u2831\u2832\u2833\u2834\u2835\u2836\u2837"+
+ "\u2838\u2839\u283A\u283B\u283C\u283D\u283E\u283F"+
+ "\u2840\u2841\u2842\u2843\u2844\u2845\u2846\u2847"+
+ "\u2848\u2849\u284A\u284B\u284C\u284D\u284E\u284F"+
+ "\u2850\u2851\u2852\u2853\u2854\u2855\u2856\u2857"+
+ "\u2858\u2859\u285A\u285B\u285C\u285D\u285E\u285F"+
+ "\u2860\u2861\u2862\u2863\u2864\u2865\u2866\u2867"+
+ "\u2868\u2869\u286A\u286B\u286C\u286D\u286E\u286F"+
+ "\u2870\u2871\u2872\u2873\u2874\u2875\u2876\u2877"+
+ "\u2878\u2879\u287A\u287B\u287C\u287D\u287E\u287F"+
+ "\u2880\u2881\u2882\u2883\u2884\u2885\u2886\u2887"+
+ "\u2888\u2889\u288A\u288B\u288C\u288D\u288E\u288F"+
+ "\u2890\u2891\u2892\u2893\u2894\u2895\u2896\u2897"+
+ "\u2898\u2899\u289A\u289B\u289C\u289D\u289E\u289F"+
+ "\u28A0\u28A1\u28A2\u28A3\u28A4\u28A5\u28A6\u28A7"+
+ "\u28A8\u28A9\u28AA\u28AB\u28AC\u28AD\u28AE\u28AF"+
+ "\u28B0\u28B1\u28B2\u28B3\u28B4\u28B5\u28B6\u28B7"+
+ "\u28B8\u28B9\u28BA\u28BB\u28BC\u28BD\u28BE\u28BF"+
+ "\u28C0\u28C1\u28C2\u28C3\u28C4\u28C5\u28C6\u28C7"+
+ "\u28C8\u28C9\u28CA\u28CB\u28CC\u28CD\u28CE\u28CF"+
+ "\u28D0\u28D1\u28D2\u28D3\u28D4\u28D5\u28D6\u28D7"+
+ "\u28D8\u28D9\u28DA\u28DB\u28DC\u28DD\u28DE\u28DF"+
+ "\u28E0\u28E1\u28E2\u28E3\u28E4\u28E5\u28E6\u28E7"+
+ "\u28E8\u28E9\u28EA\u28EB\u28EC\u28ED\u28EE\u28EF"+
+ "\u28F0\u28F1\u28F2\u28F3\u28F4\u28F5\u28F6\u28F7"+
+ "\u28F8\u28F9\u28FA\u28FB\u28FC\u28FD\u28FE\u28FF"+
+ "\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907"+
+ "\u2908\u2909\u290A\u290B\u290C\u290D\u290E\u290F"+
+ "\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917"+
+ "\u2918\u2919\u291A\u291B\u291C\u291D\u291E\u291F"+
+ "\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927"+
+ "\u2928\u2929\u292A\u292B\u292C\u292D\u292E\u292F"+
+ "\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937"+
+ "\u2938\u2939\u293A\u293B\u293C\u293D\u293E\u293F"+
+ "\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947"+
+ "\u2948\u2949\u294A\u294B\u294C\u294D\u294E\u294F"+
+ "\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957"+
+ "\u2958\u2959\u295A\u295B\u295C\u295D\u295E\u295F"+
+ "\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967"+
+ "\u2968\u2969\u296A\u296B\u296C\u296D\u296E\u296F"+
+ "\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977"+
+ "\u2978\u2979\u297A\u297B\u297C\u297D\u297E\u297F"+
+ "\u2980\u2981\u2982\u2983\u2984\u2985\u2986\u2987"+
+ "\u2988\u2989\u298A\u298B\u298C\u298D\u298E\u298F"+
+ "\u2990\u2991\u2992\u2993\u2994\u2995\u2996\u2997"+
+ "\u2998\u2999\u299A\u299B\u299C\u299D\u299E\u299F"+
+ "\u29A0\u29A1\u29A2\u29A3\u29A4\u29A5\u29A6\u29A7"+
+ "\u29A8\u29A9\u29AA\u29AB\u29AC\u29AD\u29AE\u29AF"+
+ "\u29B0\u29B1\u29B2\u29B3\u29B4\u29B5\u29B6\u29B7"+
+ "\u29B8\u29B9\u29BA\u29BB\u29BC\u29BD\u29BE\u29BF"+
+ "\u29C0\u29C1\u29C2\u29C3\u29C4\u29C5\u29C6\u29C7"+
+ "\u29C8\u29C9\u29CA\u29CB\u29CC\u29CD\u29CE\u29CF"+
+ "\u29D0\u29D1\u29D2\u29D3\u29D4\u29D5\u29D6\u29D7"+
+ "\u29D8\u29D9\u29DA\u29DB\u29DC\u29DD\u29DE\u29DF"+
+ "\u29E0\u29E1\u29E2\u29E3\u29E4\u29E5\u29E6\u29E7"+
+ "\u29E8\u29E9\u29EA\u29EB\u29EC\u29ED\u29EE\u29EF"+
+ "\u29F0\u29F1\u29F2\u29F3\u29F4\u29F5\u29F6\u29F7"+
+ "\u29F8\u29F9\u29FA\u29FB\u29FC\u29FD\u29FE\u29FF"+
+ "\u2A00\u2A01\u2A02\u2A03\u2A04\u2A05\u2A06\u2A07"+
+ "\u2A08\u2A09\u2A0A\u2A0B\u2A0C\u2A0D\u2A0E\u2A0F"+
+ "\u2A10\u2A11\u2A12\u2A13\u2A14\u2A15\u2A16\u2A17"+
+ "\u2A18\u2A19\u2A1A\u2A1B\u2A1C\u2A1D\u2A1E\u2A1F"+
+ "\u2A20\u2A21\u2A22\u2A23\u2A24\u2A25\u2A26\u2A27"+
+ "\u2A28\u2A29\u2A2A\u2A2B\u2A2C\u2A2D\u2A2E\u2A2F"+
+ "\u2A30\u2A31\u2A32\u2A33\u2A34\u2A35\u2A36\u2A37"+
+ "\u2A38\u2A39\u2A3A\u2A3B\u2A3C\u2A3D\u2A3E\u2A3F"+
+ "\u2A40\u2A41\u2A42\u2A43\u2A44\u2A45\u2A46\u2A47"+
+ "\u2A48\u2A49\u2A4A\u2A4B\u2A4C\u2A4D\u2A4E\u2A4F"+
+ "\u2A50\u2A51\u2A52\u2A53\u2A54\u2A55\u2A56\u2A57"+
+ "\u2A58\u2A59\u2A5A\u2A5B\u2A5C\u2A5D\u2A5E\u2A5F"+
+ "\u2A60\u2A61\u2A62\u2A63\u2A64\u2A65\u2A66\u2A67"+
+ "\u2A68\u2A69\u2A6A\u2A6B\u2A6C\u2A6D\u2A6E\u2A6F"+
+ "\u2A70\u2A71\u2A72\u2A73\u2A74\u2A75\u2A76\u2A77"+
+ "\u2A78\u2A79\u2A7A\u2A7B\u2A7C\u2A7D\u2A7E\u2A7F"+
+ "\u2A80\u2A81\u2A82\u2A83\u2A84\u2A85\u2A86\u2A87"+
+ "\u2A88\u2A89\u2A8A\u2A8B\u2A8C\u2A8D\u2A8E\u2A8F"+
+ "\u2A90\u2A91\u2A92\u2A93\u2A94\u2A95\u2A96\u2A97"+
+ "\u2A98\u2A99\u2A9A\u2A9B\u2A9C\u2A9D\u2A9E\u2A9F"+
+ "\u2AA0\u2AA1\u2AA2\u2AA3\u2AA4\u2AA5\u2AA6\u2AA7"+
+ "\u2AA8\u2AA9\u2AAA\u2AAB\u2AAC\u2AAD\u2AAE\u2AAF"+
+ "\u2AB0\u2AB1\u2AB2\u2AB3\u2AB4\u2AB5\u2AB6\u2AB7"+
+ "\u2AB8\u2AB9\u2ABA\u2ABB\u2ABC\u2ABD\u2ABE\u2ABF"+
+ "\u2AC0\u2AC1\u2AC2\u2AC3\u2AC4\u2AC5\u2AC6\u2AC7"+
+ "\u2AC8\u2AC9\u2ACA\u2ACB\u2ACC\u2ACD\u2ACE\u2ACF"+
+ "\u2AD0\u2AD1\u2AD2\u2AD3\u2AD4\u2AD5\u2AD6\u2AD7"+
+ "\u2AD8\u2AD9\u2ADA\u2ADB\u2ADC\u2ADD\u2ADE\u2ADF"+
+ "\u2AE0\u2AE1\u2AE2\u2AE3\u2AE4\u2AE5\u2AE6\u2AE7"+
+ "\u2AE8\u2AE9\u2AEA\u2AEB\u2AEC\u2AED\u2AEE\u2AEF"+
+ "\u2AF0\u2AF1\u2AF2\u2AF3\u2AF4\u2AF5\u2AF6\u2AF7"+
+ "\u2AF8\u2AF9\u2AFA\u2AFB\u2AFC\u2AFD\u2AFE\u2AFF"+
+ "\u2B00\u2B01\u2B02\u2B03\u2B04\u2B05\u2B06\u2B07"+
+ "\u2B08\u2B09\u2B0A\u2B0B\u2B0C\u2B0D\u2B0E\u2B0F"+
+ "\u2B10\u2B11\u2B12\u2B13\u2B14\u2B15\u2B16\u2B17"+
+ "\u2B18\u2B19\u2B1A\u2B1B\u2B1C\u2B1D\u2B1E\u2B1F"+
+ "\u2B20\u2B21\u2B22\u2B23\u2B24\u2B25\u2B26\u2B27"+
+ "\u2B28\u2B29\u2B2A\u2B2B\u2B2C\u2B2D\u2B2E\u2B2F"+
+ "\u2B30\u2B31\u2B32\u2B33\u2B34\u2B35\u2B36\u2B37"+
+ "\u2B38\u2B39\u2B3A\u2B3B\u2B3C\u2B3D\u2B3E\u2B3F"+
+ "\u2B40\u2B41\u2B42\u2B43\u2B44\u2B45\u2B46\u2B47"+
+ "\u2B48\u2B49\u2B4A\u2B4B\u2B4C\u2B4D\u2B4E\u2B4F"+
+ "\u2B50\u2B51\u2B52\u2B53\u2B54\u2B55\u2B56\u2B57"+
+ "\u2B58\u2B59\u2B5A\u2B5B\u2B5C\u2B5D\u2B5E\u2B5F"+
+ "\u2B60\u2B61\u2B62\u2B63\u2B64\u2B65\u2B66\u2B67"+
+ "\u2B68\u2B69\u2B6A\u2B6B\u2B6C\u2B6D\u2B6E\u2B6F"+
+ "\u2B70\u2B71\u2B72\u2B73\u2B74\u2B75\u2B76\u2B77"+
+ "\u2B78\u2B79\u2B7A\u2B7B\u2B7C\u2B7D\u2B7E\u2B7F"+
+ "\u2B80\u2B81\u2B82\u2B83\u2B84\u2B85\u2B86\u2B87"+
+ "\u2B88\u2B89\u2B8A\u2B8B\u2B8C\u2B8D\u2B8E\u2B8F"+
+ "\u2B90\u2B91\u2B92\u2B93\u2B94\u2B95\u2B96\u2B97"+
+ "\u2B98\u2B99\u2B9A\u2B9B\u2B9C\u2B9D\u2B9E\u2B9F"+
+ "\u2BA0\u2BA1\u2BA2\u2BA3\u2BA4\u2BA5\u2BA6\u2BA7"+
+ "\u2BA8\u2BA9\u2BAA\u2BAB\u2BAC\u2BAD\u2BAE\u2BAF"+
+ "\u2BB0\u2BB1\u2BB2\u2BB3\u2BB4\u2BB5\u2BB6\u2BB7"+
+ "\u2BB8\u2BB9\u2BBA\u2BBB\u2BBC\u2BBD\u2BBE\u2BBF"+
+ "\u2BC0\u2BC1\u2BC2\u2BC3\u2BC4\u2BC5\u2BC6\u2BC7"+
+ "\u2BC8\u2BC9\u2BCA\u2BCB\u2BCC\u2BCD\u2BCE\u2BCF"+
+ "\u2BD0\u2BD1\u2BD2\u2BD3\u2BD4\u2BD5\u2BD6\u2BD7"+
+ "\u2BD8\u2BD9\u2BDA\u2BDB\u2BDC\u2BDD\u2BDE\u2BDF"+
+ "\u2BE0\u2BE1\u2BE2\u2BE3\u2BE4\u2BE5\u2BE6\u2BE7"+
+ "\u2BE8\u2BE9\u2BEA\u2BEB\u2BEC\u2BED\u2BEE\u2BEF"+
+ "\u2BF0\u2BF1\u2BF2\u2BF3\u2BF4\u2BF5\u2BF6\u2BF7"+
+ "\u2BF8\u2BF9\u2BFA\u2BFB\u2BFC\u2BFD\u2BFE\u2BFF"+
+ "\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07"+
+ "\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F"+
+ "\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17"+
+ "\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F"+
+ "\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27"+
+ "\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C2F"+
+ "\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37"+
+ "\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F"+
+ "\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47"+
+ "\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F"+
+ "\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57"+
+ "\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C5F"+
+ "\u2C60\u2C61\u2C62\u2C63\u2C64\u2C65\u2C66\u2C67"+
+ "\u2C68\u2C69\u2C6A\u2C6B\u2C6C\u2C6D\u2C6E\u2C6F"+
+ "\u2C70\u2C71\u2C72\u2C73\u2C74\u2C75\u2C76\u2C77"+
+ "\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C7D\u2C7E\u2C7F"+
+ "\u2C80\u2C81\u2C82\u2C83\u2C84\u2C85\u2C86\u2C87"+
+ "\u2C88\u2C89\u2C8A\u2C8B\u2C8C\u2C8D\u2C8E\u2C8F"+
+ "\u2C90\u2C91\u2C92\u2C93\u2C94\u2C95\u2C96\u2C97"+
+ "\u2C98\u2C99\u2C9A\u2C9B\u2C9C\u2C9D\u2C9E\u2C9F"+
+ "\u2CA0\u2CA1\u2CA2\u2CA3\u2CA4\u2CA5\u2CA6\u2CA7"+
+ "\u2CA8\u2CA9\u2CAA\u2CAB\u2CAC\u2CAD\u2CAE\u2CAF"+
+ "\u2CB0\u2CB1\u2CB2\u2CB3\u2CB4\u2CB5\u2CB6\u2CB7"+
+ "\u2CB8\u2CB9\u2CBA\u2CBB\u2CBC\u2CBD\u2CBE\u2CBF"+
+ "\u2CC0\u2CC1\u2CC2\u2CC3\u2CC4\u2CC5\u2CC6\u2CC7"+
+ "\u2CC8\u2CC9\u2CCA\u2CCB\u2CCC\u2CCD\u2CCE\u2CCF"+
+ "\u2CD0\u2CD1\u2CD2\u2CD3\u2CD4\u2CD5\u2CD6\u2CD7"+
+ "\u2CD8\u2CD9\u2CDA\u2CDB\u2CDC\u2CDD\u2CDE\u2CDF"+
+ "\u2CE0\u2CE1\u2CE2\u2CE3\u2CE4\u2CE5\u2CE6\u2CE7"+
+ "\u2CE8\u2CE9\u2CEA\u2CEB\u2CEC\u2CED\u2CEE\u2CEF"+
+ "\u2CF0\u2CF1\u2CF2\u2CF3\u2CF4\u2CF5\u2CF6\u2CF7"+
+ "\u2CF8\u2CF9\u2CFA\u2CFB\u2CFC\u2CFD\u2CFE\u2CFF"+
+ "\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07"+
+ "\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F"+
+ "\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17"+
+ "\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F"+
+ "\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\u2D26\u2D27"+
+ "\u2D28\u2D29\u2D2A\u2D2B\u2D2C\u2D2D\u2D2E\u2D2F"+
+ "\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37"+
+ "\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F"+
+ "\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47"+
+ "\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F"+
+ "\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57"+
+ "\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F"+
+ "\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D66\u2D67"+
+ "\u2D68\u2D69\u2D6A\u2D6B\u2D6C\u2D6D\u2D6E\u2D6F"+
+ "\u2D70\u2D71\u2D72\u2D73\u2D74\u2D75\u2D76\u2D77"+
+ "\u2D78\u2D79\u2D7A\u2D7B\u2D7C\u2D7D\u2D7E\u2D7F"+
+ "\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87"+
+ "\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F"+
+ "\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2D97"+
+ "\u2D98\u2D99\u2D9A\u2D9B\u2D9C\u2D9D\u2D9E\u2D9F"+
+ "\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA7"+
+ "\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DAF"+
+ "\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB7"+
+ "\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DBF"+
+ "\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC7"+
+ "\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DCF"+
+ "\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD7"+
+ "\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u2DDF"+
+ "\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7"+
+ "\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF"+
+ "\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7"+
+ "\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF"+
+ "\u2E00\u2E01\u2E02\u2E03\u2E04\u2E05\u2E06\u2E07"+
+ "\u2E08\u2E09\u2E0A\u2E0B\u2E0C\u2E0D\u2E0E\u2E0F"+
+ "\u2E10\u2E11\u2E12\u2E13\u2E14\u2E15\u2E16\u2E17"+
+ "\u2E18\u2E19\u2E1A\u2E1B\u2E1C\u2E1D\u2E1E\u2E1F"+
+ "\u2E20\u2E21\u2E22\u2E23\u2E24\u2E25\u2E26\u2E27"+
+ "\u2E28\u2E29\u2E2A\u2E2B\u2E2C\u2E2D\u2E2E\u2E2F"+
+ "\u2E30\u2E31\u2E32\u2E33\u2E34\u2E35\u2E36\u2E37"+
+ "\u2E38\u2E39\u2E3A\u2E3B\u2E3C\u2E3D\u2E3E\u2E3F"+
+ "\u2E40\u2E41\u2E42\u2E43\u2E44\u2E45\u2E46\u2E47"+
+ "\u2E48\u2E49\u2E4A\u2E4B\u2E4C\u2E4D\u2E4E\u2E4F"+
+ "\u2E50\u2E51\u2E52\u2E53\u2E54\u2E55\u2E56\u2E57"+
+ "\u2E58\u2E59\u2E5A\u2E5B\u2E5C\u2E5D\u2E5E\u2E5F"+
+ "\u2E60\u2E61\u2E62\u2E63\u2E64\u2E65\u2E66\u2E67"+
+ "\u2E68\u2E69\u2E6A\u2E6B\u2E6C\u2E6D\u2E6E\u2E6F"+
+ "\u2E70\u2E71\u2E72\u2E73\u2E74\u2E75\u2E76\u2E77"+
+ "\u2E78\u2E79\u2E7A\u2E7B\u2E7C\u2E7D\u2E7E\u2E7F"+
+ "\u2E80\u2E82\u2E83\u2E85\u2E86\u2E87\u2E89\u2E8A"+
+ "\u2E8D\u2E8E\u2E8F\u2E90\u2E91\u2E92\u2E93\u2E94"+
+ "\u2E95\u2E96\u2E98\u2E99\u2E9A\u2E9B\u2E9C\u2E9D"+
+ "\u2E9E\u2E9F\u2EA0\u2EA1\u2EA2\u2EA3\u2EA4\u2EA5"+
+ "\u2EA6\u2EA8\u2EA9\u2EAB\u2EAC\u2EAD\u2EAF\u2EB0"+
+ "\u2EB1\u2EB2\u2EB4\u2EB5\u2EB8\u2EB9\u2EBA\u2EBC"+
+ "\u2EBD\u2EBE\u2EBF\u2EC0\u2EC1\u2EC2\u2EC3\u2EC4"+
+ "\u2EC5\u2EC6\u2EC7\u2EC8\u2EC9\u2ECB\u2ECC\u2ECD"+
+ "\u2ECE\u2ECF\u2ED0\u2ED1\u2ED2\u2ED3\u2ED4\u2ED5"+
+ "\u2ED6\u2ED7\u2ED8\u2ED9\u2EDA\u2EDB\u2EDC\u2EDD"+
+ "\u2EDE\u2EDF\u2EE0\u2EE1\u2EE2\u2EE3\u2EE4\u2EE5"+
+ "\u2EE6\u2EE7\u2EE8\u2EE9\u2EEA\u2EEB\u2EEC\u2EED"+
+ "\u2EEE\u2EEF\u2EF0\u2EF1\u2EF2\u2EF3\u2EF4\u2EF5"+
+ "\u2EF6\u2EF7\u2EF8\u2EF9\u2EFA\u2EFB\u2EFC\u2EFD"+
+ "\u2EFE\u2EFF\u2F00\u2F01\u2F02\u2F03\u2F04\u2F05"+
+ "\u2F06\u2F07\u2F08\u2F09\u2F0A\u2F0B\u2F0C\u2F0D"+
+ "\u2F0E\u2F0F\u2F10\u2F11\u2F12\u2F13\u2F14\u2F15"+
+ "\u2F16\u2F17\u2F18\u2F19\u2F1A\u2F1B\u2F1C\u2F1D"+
+ "\u2F1E\u2F1F\u2F20\u2F21\u2F22\u2F23\u2F24\u2F25"+
+ "\u2F26\u2F27\u2F28\u2F29\u2F2A\u2F2B\u2F2C\u2F2D"+
+ "\u2F2E\u2F2F\u2F30\u2F31\u2F32\u2F33\u2F34\u2F35"+
+ "\u2F36\u2F37\u2F38\u2F39\u2F3A\u2F3B\u2F3C\u2F3D"+
+ "\u2F3E\u2F3F\u2F40\u2F41\u2F42\u2F43\u2F44\u2F45"+
+ "\u2F46\u2F47\u2F48\u2F49\u2F4A\u2F4B\u2F4C\u2F4D"+
+ "\u2F4E\u2F4F\u2F50\u2F51\u2F52\u2F53\u2F54\u2F55"+
+ "\u2F56\u2F57\u2F58\u2F59\u2F5A\u2F5B\u2F5C\u2F5D"+
+ "\u2F5E\u2F5F\u2F60\u2F61\u2F62\u2F63\u2F64\u2F65"+
+ "\u2F66\u2F67\u2F68\u2F69\u2F6A\u2F6B\u2F6C\u2F6D"+
+ "\u2F6E\u2F6F\u2F70\u2F71\u2F72\u2F73\u2F74\u2F75"+
+ "\u2F76\u2F77\u2F78\u2F79\u2F7A\u2F7B\u2F7C\u2F7D"+
+ "\u2F7E\u2F7F\u2F80\u2F81\u2F82\u2F83\u2F84\u2F85"+
+ "\u2F86\u2F87\u2F88\u2F89\u2F8A\u2F8B\u2F8C\u2F8D"+
+ "\u2F8E\u2F8F\u2F90\u2F91\u2F92\u2F93\u2F94\u2F95"+
+ "\u2F96\u2F97\u2F98\u2F99\u2F9A\u2F9B\u2F9C\u2F9D"+
+ "\u2F9E\u2F9F\u2FA0\u2FA1\u2FA2\u2FA3\u2FA4\u2FA5"+
+ "\u2FA6\u2FA7\u2FA8\u2FA9\u2FAA\u2FAB\u2FAC\u2FAD"+
+ "\u2FAE\u2FAF\u2FB0\u2FB1\u2FB2\u2FB3\u2FB4\u2FB5"+
+ "\u2FB6\u2FB7\u2FB8\u2FB9\u2FBA\u2FBB\u2FBC\u2FBD"+
+ "\u2FBE\u2FBF\u2FC0\u2FC1\u2FC2\u2FC3\u2FC4\u2FC5"+
+ "\u2FC6\u2FC7\u2FC8\u2FC9\u2FCA\u2FCB\u2FCC\u2FCD"+
+ "\u2FCE\u2FCF\u2FD0\u2FD1\u2FD2\u2FD3\u2FD4\u2FD5"+
+ "\u2FD6\u2FD7\u2FD8\u2FD9\u2FDA\u2FDB\u2FDC\u2FDD"+
+ "\u2FDE\u2FDF\u2FE0\u2FE1\u2FE2\u2FE3\u2FE4\u2FE5"+
+ "\u2FE6\u2FE7\u2FE8\u2FE9\u2FEA\u2FEB\u2FEC\u2FED"+
+ "\u2FEE\u2FEF\u2FFC\u2FFD\u2FFE\u2FFF\u3004\u3018"+
+ "\u3019\u301A\u301B\u301C\u301F\u3020\u302A\u302B"+
+ "\u302C\u302D\u302E\u302F\u3030\u3031\u3032\u3033"+
+ "\u3034\u3035\u3036\u3037\u3038\u3039\u303A\u303B"+
+ "\u303C\u303D\u303F\u3040\u3094\u3095\u3096\u3097"+
+ "\u3098\u3099\u309A\u309F\u30A0\u30F7\u30F8\u30F9"+
+ "\u30FA\u30FB\u30FF\u3100\u3101\u3102\u3103\u3104"+
+ "\u312A\u312B\u312C\u312D\u312E\u312F\u3130\u3131"+
+ "\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139"+
+ "\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141"+
+ "\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149"+
+ "\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151"+
+ "\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159"+
+ "\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161"+
+ "\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169"+
+ "\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171"+
+ "\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179"+
+ "\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181"+
+ "\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189"+
+ "\u318A\u318B\u318C\u318D\u318E\u318F\u3190\u3191"+
+ "\u3192\u3193\u3194\u3195\u3196\u3197\u3198\u3199"+
+ "\u319A\u319B\u319C\u319D\u319E\u319F\u31A0\u31A1"+
+ "\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9"+
+ "\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1"+
+ "\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31B8\u31B9"+
+ "\u31BA\u31BB\u31BC\u31BD\u31BE\u31BF\u31C0\u31C1"+
+ "\u31C2\u31C3\u31C4\u31C5\u31C6\u31C7\u31C8\u31C9"+
+ "\u31CA\u31CB\u31CC\u31CD\u31CE\u31CF\u31D0\u31D1"+
+ "\u31D2\u31D3\u31D4\u31D5\u31D6\u31D7\u31D8\u31D9"+
+ "\u31DA\u31DB\u31DC\u31DD\u31DE\u31DF\u31E0\u31E1"+
+ "\u31E2\u31E3\u31E4\u31E5\u31E6\u31E7\u31E8\u31E9"+
+ "\u31EA\u31EB\u31EC\u31ED\u31EE\u31EF\u31F0\u31F1"+
+ "\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9"+
+ "\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3200\u3201"+
+ "\u3202\u3203\u3204\u3205\u3206\u3207\u3208\u3209"+
+ "\u320A\u320B\u320C\u320D\u320E\u320F\u3210\u3211"+
+ "\u3212\u3213\u3214\u3215\u3216\u3217\u3218\u3219"+
+ "\u321A\u321B\u321C\u321D\u321E\u321F\u322A\u322B"+
+ "\u322C\u322D\u322E\u322F\u3230\u3232\u3233\u3234"+
+ "\u3235\u3236\u3237\u3238\u3239\u323A\u323B\u323C"+
+ "\u323D\u323E\u323F\u3240\u3241\u3242\u3243\u3244"+
+ "\u3245\u3246\u3247\u3248\u3249\u324A\u324B\u324C"+
+ "\u324D\u324E\u324F\u3250\u3251\u3252\u3253\u3254"+
+ "\u3255\u3256\u3257\u3258\u3259\u325A\u325B\u325C"+
+ "\u325D\u325E\u325F\u3260\u3261\u3262\u3263\u3264"+
+ "\u3265\u3266\u3267\u3268\u3269\u326A\u326B\u326C"+
+ "\u326D\u326E\u326F\u3270\u3271\u3272\u3273\u3274"+
+ "\u3275\u3276\u3277\u3278\u3279\u327A\u327B\u327C"+
+ "\u327D\u327E\u327F\u3280\u3281\u3282\u3283\u3284"+
+ "\u3285\u3286\u3287\u3288\u3289\u328A\u328B\u328C"+
+ "\u328D\u328E\u328F\u3290\u3291\u3292\u3293\u3294"+
+ "\u3295\u3296\u3297\u3298\u3299\u329A\u329B\u329C"+
+ "\u329D\u329E\u329F\u32A0\u32A1\u32A2\u32A4\u32A5"+
+ "\u32A6\u32A7\u32A8\u32A9\u32AA\u32AB\u32AC\u32AD"+
+ "\u32AE\u32AF\u32B0\u32B1\u32B2\u32B3\u32B4\u32B5"+
+ "\u32B6\u32B7\u32B8\u32B9\u32BA\u32BB\u32BC\u32BD"+
+ "\u32BE\u32BF\u32C0\u32C1\u32C2\u32C3\u32C4\u32C5"+
+ "\u32C6\u32C7\u32C8\u32C9\u32CA\u32CB\u32CC\u32CD"+
+ "\u32CE\u32CF\u32D0\u32D1\u32D2\u32D3\u32D4\u32D5"+
+ "\u32D6\u32D7\u32D8\u32D9\u32DA\u32DB\u32DC\u32DD"+
+ "\u32DE\u32DF\u32E0\u32E1\u32E2\u32E3\u32E4\u32E5"+
+ "\u32E6\u32E7\u32E8\u32E9\u32EA\u32EB\u32EC\u32ED"+
+ "\u32EE\u32EF\u32F0\u32F1\u32F2\u32F3\u32F4\u32F5"+
+ "\u32F6\u32F7\u32F8\u32F9\u32FA\u32FB\u32FC\u32FD"+
+ "\u32FE\u32FF\u3300\u3301\u3302\u3303\u3304\u3305"+
+ "\u3306\u3307\u3308\u3309\u330A\u330B\u330C\u330D"+
+ "\u330E\u330F\u3310\u3311\u3312\u3313\u3314\u3315"+
+ "\u3316\u3317\u3318\u3319\u331A\u331B\u331C\u331D"+
+ "\u331E\u331F\u3320\u3321\u3322\u3323\u3324\u3325"+
+ "\u3326\u3327\u3328\u3329\u332A\u332B\u332C\u332D"+
+ "\u332E\u332F\u3330\u3331\u3332\u3333\u3334\u3335"+
+ "\u3336\u3337\u3338\u3339\u333A\u333B\u333C\u333D"+
+ "\u333E\u333F\u3340\u3341\u3342\u3343\u3344\u3345"+
+ "\u3346\u3347\u3348\u3349\u334A\u334B\u334C\u334D"+
+ "\u334E\u334F\u3350\u3351\u3352\u3353\u3354\u3355"+
+ "\u3356\u3357\u3358\u3359\u335A\u335B\u335C\u335D";
+
+ private final static String innerDecoderIndex3=
+ "\u335E\u335F\u3360\u3361\u3362\u3363\u3364\u3365"+
+ "\u3366\u3367\u3368\u3369\u336A\u336B\u336C\u336D"+
+ "\u336E\u336F\u3370\u3371\u3372\u3373\u3374\u3375"+
+ "\u3376\u3377\u3378\u3379\u337A\u337B\u337C\u337D"+
+ "\u337E\u337F\u3380\u3381\u3382\u3383\u3384\u3385"+
+ "\u3386\u3387\u3388\u3389\u338A\u338B\u338C\u338D"+
+ "\u3390\u3391\u3392\u3393\u3394\u3395\u3396\u3397"+
+ "\u3398\u3399\u339A\u339B\u339F\u33A0\u33A2\u33A3"+
+ "\u33A4\u33A5\u33A6\u33A7\u33A8\u33A9\u33AA\u33AB"+
+ "\u33AC\u33AD\u33AE\u33AF\u33B0\u33B1\u33B2\u33B3"+
+ "\u33B4\u33B5\u33B6\u33B7\u33B8\u33B9\u33BA\u33BB"+
+ "\u33BC\u33BD\u33BE\u33BF\u33C0\u33C1\u33C2\u33C3"+
+ "\u33C5\u33C6\u33C7\u33C8\u33C9\u33CA\u33CB\u33CC"+
+ "\u33CD\u33CF\u33D0\u33D3\u33D4\u33D6\u33D7\u33D8"+
+ "\u33D9\u33DA\u33DB\u33DC\u33DD\u33DE\u33DF\u33E0"+
+ "\u33E1\u33E2\u33E3\u33E4\u33E5\u33E6\u33E7\u33E8"+
+ "\u33E9\u33EA\u33EB\u33EC\u33ED\u33EE\u33EF\u33F0"+
+ "\u33F1\u33F2\u33F3\u33F4\u33F5\u33F6\u33F7\u33F8"+
+ "\u33F9\u33FA\u33FB\u33FC\u33FD\u33FE\u33FF\u3400"+
+ "\u3401\u3402\u3403\u3404\u3405\u3406\u3407\u3408"+
+ "\u3409\u340A\u340B\u340C\u340D\u340E\u340F\u3410"+
+ "\u3411\u3412\u3413\u3414\u3415\u3416\u3417\u3418"+
+ "\u3419\u341A\u341B\u341C\u341D\u341E\u341F\u3420"+
+ "\u3421\u3422\u3423\u3424\u3425\u3426\u3427\u3428"+
+ "\u3429\u342A\u342B\u342C\u342D\u342E\u342F\u3430"+
+ "\u3431\u3432\u3433\u3434\u3435\u3436\u3437\u3438"+
+ "\u3439\u343A\u343B\u343C\u343D\u343E\u343F\u3440"+
+ "\u3441\u3442\u3443\u3444\u3445\u3446\u3448\u3449"+
+ "\u344A\u344B\u344C\u344D\u344E\u344F\u3450\u3451"+
+ "\u3452\u3453\u3454\u3455\u3456\u3457\u3458\u3459"+
+ "\u345A\u345B\u345C\u345D\u345E\u345F\u3460\u3461"+
+ "\u3462\u3463\u3464\u3465\u3466\u3467\u3468\u3469"+
+ "\u346A\u346B\u346C\u346D\u346E\u346F\u3470\u3471"+
+ "\u3472\u3474\u3475\u3476\u3477\u3478\u3479\u347A"+
+ "\u347B\u347C\u347D\u347E\u347F\u3480\u3481\u3482"+
+ "\u3483\u3484\u3485\u3486\u3487\u3488\u3489\u348A"+
+ "\u348B\u348C\u348D\u348E\u348F\u3490\u3491\u3492"+
+ "\u3493\u3494\u3495\u3496\u3497\u3498\u3499\u349A"+
+ "\u349B\u349C\u349D\u349E\u349F\u34A0\u34A1\u34A2"+
+ "\u34A3\u34A4\u34A5\u34A6\u34A7\u34A8\u34A9\u34AA"+
+ "\u34AB\u34AC\u34AD\u34AE\u34AF\u34B0\u34B1\u34B2"+
+ "\u34B3\u34B4\u34B5\u34B6\u34B7\u34B8\u34B9\u34BA"+
+ "\u34BB\u34BC\u34BD\u34BE\u34BF\u34C0\u34C1\u34C2"+
+ "\u34C3\u34C4\u34C5\u34C6\u34C7\u34C8\u34C9\u34CA"+
+ "\u34CB\u34CC\u34CD\u34CE\u34CF\u34D0\u34D1\u34D2"+
+ "\u34D3\u34D4\u34D5\u34D6\u34D7\u34D8\u34D9\u34DA"+
+ "\u34DB\u34DC\u34DD\u34DE\u34DF\u34E0\u34E1\u34E2"+
+ "\u34E3\u34E4\u34E5\u34E6\u34E7\u34E8\u34E9\u34EA"+
+ "\u34EB\u34EC\u34ED\u34EE\u34EF\u34F0\u34F1\u34F2"+
+ "\u34F3\u34F4\u34F5\u34F6\u34F7\u34F8\u34F9\u34FA"+
+ "\u34FB\u34FC\u34FD\u34FE\u34FF\u3500\u3501\u3502"+
+ "\u3503\u3504\u3505\u3506\u3507\u3508\u3509\u350A"+
+ "\u350B\u350C\u350D\u350E\u350F\u3510\u3511\u3512"+
+ "\u3513\u3514\u3515\u3516\u3517\u3518\u3519\u351A"+
+ "\u351B\u351C\u351D\u351E\u351F\u3520\u3521\u3522"+
+ "\u3523\u3524\u3525\u3526\u3527\u3528\u3529\u352A"+
+ "\u352B\u352C\u352D\u352E\u352F\u3530\u3531\u3532"+
+ "\u3533\u3534\u3535\u3536\u3537\u3538\u3539\u353A"+
+ "\u353B\u353C\u353D\u353E\u353F\u3540\u3541\u3542"+
+ "\u3543\u3544\u3545\u3546\u3547\u3548\u3549\u354A"+
+ "\u354B\u354C\u354D\u354E\u354F\u3550\u3551\u3552"+
+ "\u3553\u3554\u3555\u3556\u3557\u3558\u3559\u355A"+
+ "\u355B\u355C\u355D\u355E\u355F\u3560\u3561\u3562"+
+ "\u3563\u3564\u3565\u3566\u3567\u3568\u3569\u356A"+
+ "\u356B\u356C\u356D\u356E\u356F\u3570\u3571\u3572"+
+ "\u3573\u3574\u3575\u3576\u3577\u3578\u3579\u357A"+
+ "\u357B\u357C\u357D\u357E\u357F\u3580\u3581\u3582"+
+ "\u3583\u3584\u3585\u3586\u3587\u3588\u3589\u358A"+
+ "\u358B\u358C\u358D\u358E\u358F\u3590\u3591\u3592"+
+ "\u3593\u3594\u3595\u3596\u3597\u3598\u3599\u359A"+
+ "\u359B\u359C\u359D\u359F\u35A0\u35A1\u35A2\u35A3"+
+ "\u35A4\u35A5\u35A6\u35A7\u35A8\u35A9\u35AA\u35AB"+
+ "\u35AC\u35AD\u35AE\u35AF\u35B0\u35B1\u35B2\u35B3"+
+ "\u35B4\u35B5\u35B6\u35B7\u35B8\u35B9\u35BA\u35BB"+
+ "\u35BC\u35BD\u35BE\u35BF\u35C0\u35C1\u35C2\u35C3"+
+ "\u35C4\u35C5\u35C6\u35C7\u35C8\u35C9\u35CA\u35CB"+
+ "\u35CC\u35CD\u35CE\u35CF\u35D0\u35D1\u35D2\u35D3"+
+ "\u35D4\u35D5\u35D6\u35D7\u35D8\u35D9\u35DA\u35DB"+
+ "\u35DC\u35DD\u35DE\u35DF\u35E0\u35E1\u35E2\u35E3"+
+ "\u35E4\u35E5\u35E6\u35E7\u35E8\u35E9\u35EA\u35EB"+
+ "\u35EC\u35ED\u35EE\u35EF\u35F0\u35F1\u35F2\u35F3"+
+ "\u35F4\u35F5\u35F6\u35F7\u35F8\u35F9\u35FA\u35FB"+
+ "\u35FC\u35FD\u35FE\u35FF\u3600\u3601\u3602\u3603"+
+ "\u3604\u3605\u3606\u3607\u3608\u3609\u360A\u360B"+
+ "\u360C\u360D\u360F\u3610\u3611\u3612\u3613\u3614"+
+ "\u3615\u3616\u3617\u3618\u3619\u361B\u361C\u361D"+
+ "\u361E\u361F\u3620\u3621\u3622\u3623\u3624\u3625"+
+ "\u3626\u3627\u3628\u3629\u362A\u362B\u362C\u362D"+
+ "\u362E\u362F\u3630\u3631\u3632\u3633\u3634\u3635"+
+ "\u3636\u3637\u3638\u3639\u363A\u363B\u363C\u363D"+
+ "\u363E\u363F\u3640\u3641\u3642\u3643\u3644\u3645"+
+ "\u3646\u3647\u3648\u3649\u364A\u364B\u364C\u364D"+
+ "\u364E\u364F\u3650\u3651\u3652\u3653\u3654\u3655"+
+ "\u3656\u3657\u3658\u3659\u365A\u365B\u365C\u365D"+
+ "\u365E\u365F\u3660\u3661\u3662\u3663\u3664\u3665"+
+ "\u3666\u3667\u3668\u3669\u366A\u366B\u366C\u366D"+
+ "\u366E\u366F\u3670\u3671\u3672\u3673\u3674\u3675"+
+ "\u3676\u3677\u3678\u3679\u367A\u367B\u367C\u367D"+
+ "\u367E\u367F\u3680\u3681\u3682\u3683\u3684\u3685"+
+ "\u3686\u3687\u3688\u3689\u368A\u368B\u368C\u368D"+
+ "\u368E\u368F\u3690\u3691\u3692\u3693\u3694\u3695"+
+ "\u3696\u3697\u3698\u3699\u369A\u369B\u369C\u369D"+
+ "\u369E\u369F\u36A0\u36A1\u36A2\u36A3\u36A4\u36A5"+
+ "\u36A6\u36A7\u36A8\u36A9\u36AA\u36AB\u36AC\u36AD"+
+ "\u36AE\u36AF\u36B0\u36B1\u36B2\u36B3\u36B4\u36B5"+
+ "\u36B6\u36B7\u36B8\u36B9\u36BA\u36BB\u36BC\u36BD"+
+ "\u36BE\u36BF\u36C0\u36C1\u36C2\u36C3\u36C4\u36C5"+
+ "\u36C6\u36C7\u36C8\u36C9\u36CA\u36CB\u36CC\u36CD"+
+ "\u36CE\u36CF\u36D0\u36D1\u36D2\u36D3\u36D4\u36D5"+
+ "\u36D6\u36D7\u36D8\u36D9\u36DA\u36DB\u36DC\u36DD"+
+ "\u36DE\u36DF\u36E0\u36E1\u36E2\u36E3\u36E4\u36E5"+
+ "\u36E6\u36E7\u36E8\u36E9\u36EA\u36EB\u36EC\u36ED"+
+ "\u36EE\u36EF\u36F0\u36F1\u36F2\u36F3\u36F4\u36F5"+
+ "\u36F6\u36F7\u36F8\u36F9\u36FA\u36FB\u36FC\u36FD"+
+ "\u36FE\u36FF\u3700\u3701\u3702\u3703\u3704\u3705"+
+ "\u3706\u3707\u3708\u3709\u370A\u370B\u370C\u370D"+
+ "\u370E\u370F\u3710\u3711\u3712\u3713\u3714\u3715"+
+ "\u3716\u3717\u3718\u3719\u371A\u371B\u371C\u371D"+
+ "\u371E\u371F\u3720\u3721\u3722\u3723\u3724\u3725"+
+ "\u3726\u3727\u3728\u3729\u372A\u372B\u372C\u372D"+
+ "\u372E\u372F\u3730\u3731\u3732\u3733\u3734\u3735"+
+ "\u3736\u3737\u3738\u3739\u373A\u373B\u373C\u373D"+
+ "\u373E\u373F\u3740\u3741\u3742\u3743\u3744\u3745"+
+ "\u3746\u3747\u3748\u3749\u374A\u374B\u374C\u374D"+
+ "\u374E\u374F\u3750\u3751\u3752\u3753\u3754\u3755"+
+ "\u3756\u3757\u3758\u3759\u375A\u375B\u375C\u375D"+
+ "\u375E\u375F\u3760\u3761\u3762\u3763\u3764\u3765"+
+ "\u3766\u3767\u3768\u3769\u376A\u376B\u376C\u376D"+
+ "\u376E\u376F\u3770\u3771\u3772\u3773\u3774\u3775"+
+ "\u3776\u3777\u3778\u3779\u377A\u377B\u377C\u377D"+
+ "\u377E\u377F\u3780\u3781\u3782\u3783\u3784\u3785"+
+ "\u3786\u3787\u3788\u3789\u378A\u378B\u378C\u378D"+
+ "\u378E\u378F\u3790\u3791\u3792\u3793\u3794\u3795"+
+ "\u3796\u3797\u3798\u3799\u379A\u379B\u379C\u379D"+
+ "\u379E\u379F\u37A0\u37A1\u37A2\u37A3\u37A4\u37A5"+
+ "\u37A6\u37A7\u37A8\u37A9\u37AA\u37AB\u37AC\u37AD"+
+ "\u37AE\u37AF\u37B0\u37B1\u37B2\u37B3\u37B4\u37B5"+
+ "\u37B6\u37B7\u37B8\u37B9\u37BA\u37BB\u37BC\u37BD"+
+ "\u37BE\u37BF\u37C0\u37C1\u37C2\u37C3\u37C4\u37C5"+
+ "\u37C6\u37C7\u37C8\u37C9\u37CA\u37CB\u37CC\u37CD"+
+ "\u37CE\u37CF\u37D0\u37D1\u37D2\u37D3\u37D4\u37D5"+
+ "\u37D6\u37D7\u37D8\u37D9\u37DA\u37DB\u37DC\u37DD"+
+ "\u37DE\u37DF\u37E0\u37E1\u37E2\u37E3\u37E4\u37E5"+
+ "\u37E6\u37E7\u37E8\u37E9\u37EA\u37EB\u37EC\u37ED"+
+ "\u37EE\u37EF\u37F0\u37F1\u37F2\u37F3\u37F4\u37F5"+
+ "\u37F6\u37F7\u37F8\u37F9\u37FA\u37FB\u37FC\u37FD"+
+ "\u37FE\u37FF\u3800\u3801\u3802\u3803\u3804\u3805"+
+ "\u3806\u3807\u3808\u3809\u380A\u380B\u380C\u380D"+
+ "\u380E\u380F\u3810\u3811\u3812\u3813\u3814\u3815"+
+ "\u3816\u3817\u3818\u3819\u381A\u381B\u381C\u381D"+
+ "\u381E\u381F\u3820\u3821\u3822\u3823\u3824\u3825"+
+ "\u3826\u3827\u3828\u3829\u382A\u382B\u382C\u382D"+
+ "\u382E\u382F\u3830\u3831\u3832\u3833\u3834\u3835"+
+ "\u3836\u3837\u3838\u3839\u383A\u383B\u383C\u383D"+
+ "\u383E\u383F\u3840\u3841\u3842\u3843\u3844\u3845"+
+ "\u3846\u3847\u3848\u3849\u384A\u384B\u384C\u384D"+
+ "\u384E\u384F\u3850\u3851\u3852\u3853\u3854\u3855"+
+ "\u3856\u3857\u3858\u3859\u385A\u385B\u385C\u385D"+
+ "\u385E\u385F\u3860\u3861\u3862\u3863\u3864\u3865"+
+ "\u3866\u3867\u3868\u3869\u386A\u386B\u386C\u386D"+
+ "\u386E\u386F\u3870\u3871\u3872\u3873\u3874\u3875"+
+ "\u3876\u3877\u3878\u3879\u387A\u387B\u387C\u387D"+
+ "\u387E\u387F\u3880\u3881\u3882\u3883\u3884\u3885"+
+ "\u3886\u3887\u3888\u3889\u388A\u388B\u388C\u388D"+
+ "\u388E\u388F\u3890\u3891\u3892\u3893\u3894\u3895"+
+ "\u3896\u3897\u3898\u3899\u389A\u389B\u389C\u389D"+
+ "\u389E\u389F\u38A0\u38A1\u38A2\u38A3\u38A4\u38A5"+
+ "\u38A6\u38A7\u38A8\u38A9\u38AA\u38AB\u38AC\u38AD"+
+ "\u38AE\u38AF\u38B0\u38B1\u38B2\u38B3\u38B4\u38B5"+
+ "\u38B6\u38B7\u38B8\u38B9\u38BA\u38BB\u38BC\u38BD"+
+ "\u38BE\u38BF\u38C0\u38C1\u38C2\u38C3\u38C4\u38C5"+
+ "\u38C6\u38C7\u38C8\u38C9\u38CA\u38CB\u38CC\u38CD"+
+ "\u38CE\u38CF\u38D0\u38D1\u38D2\u38D3\u38D4\u38D5"+
+ "\u38D6\u38D7\u38D8\u38D9\u38DA\u38DB\u38DC\u38DD"+
+ "\u38DE\u38DF\u38E0\u38E1\u38E2\u38E3\u38E4\u38E5"+
+ "\u38E6\u38E7\u38E8\u38E9\u38EA\u38EB\u38EC\u38ED"+
+ "\u38EE\u38EF\u38F0\u38F1\u38F2\u38F3\u38F4\u38F5"+
+ "\u38F6\u38F7\u38F8\u38F9\u38FA\u38FB\u38FC\u38FD"+
+ "\u38FE\u38FF\u3900\u3901\u3902\u3903\u3904\u3905"+
+ "\u3906\u3907\u3908\u3909\u390A\u390B\u390C\u390D"+
+ "\u390E\u390F\u3910\u3911\u3912\u3913\u3914\u3915"+
+ "\u3916\u3917\u3919\u391A\u391B\u391C\u391D\u391E"+
+ "\u391F\u3920\u3921\u3922\u3923\u3924\u3925\u3926"+
+ "\u3927\u3928\u3929\u392A\u392B\u392C\u392D\u392E"+
+ "\u392F\u3930\u3931\u3932\u3933\u3934\u3935\u3936"+
+ "\u3937\u3938\u3939\u393A\u393B\u393C\u393D\u393E"+
+ "\u393F\u3940\u3941\u3942\u3943\u3944\u3945\u3946"+
+ "\u3947\u3948\u3949\u394A\u394B\u394C\u394D\u394E"+
+ "\u394F\u3950\u3951\u3952\u3953\u3954\u3955\u3956"+
+ "\u3957\u3958\u3959\u395A\u395B\u395C\u395D\u395E"+
+ "\u395F\u3960\u3961\u3962\u3963\u3964\u3965\u3966"+
+ "\u3967\u3968\u3969\u396A\u396B\u396C\u396D\u396F"+
+ "\u3970\u3971\u3972\u3973\u3974\u3975\u3976\u3977"+
+ "\u3978\u3979\u397A\u397B\u397C\u397D\u397E\u397F"+
+ "\u3980\u3981\u3982\u3983\u3984\u3985\u3986\u3987"+
+ "\u3988\u3989\u398A\u398B\u398C\u398D\u398E\u398F"+
+ "\u3990\u3991\u3992\u3993\u3994\u3995\u3996\u3997"+
+ "\u3998\u3999\u399A\u399B\u399C\u399D\u399E\u399F"+
+ "\u39A0\u39A1\u39A2\u39A3\u39A4\u39A5\u39A6\u39A7"+
+ "\u39A8\u39A9\u39AA\u39AB\u39AC\u39AD\u39AE\u39AF"+
+ "\u39B0\u39B1\u39B2\u39B3\u39B4\u39B5\u39B6\u39B7"+
+ "\u39B8\u39B9\u39BA\u39BB\u39BC\u39BD\u39BE\u39BF"+
+ "\u39C0\u39C1\u39C2\u39C3\u39C4\u39C5\u39C6\u39C7"+
+ "\u39C8\u39C9\u39CA\u39CB\u39CC\u39CD\u39CE\u39D1"+
+ "\u39D2\u39D3\u39D4\u39D5\u39D6\u39D7\u39D8\u39D9"+
+ "\u39DA\u39DB\u39DC\u39DD\u39DE\u39E0\u39E1\u39E2"+
+ "\u39E3\u39E4\u39E5\u39E6\u39E7\u39E8\u39E9\u39EA"+
+ "\u39EB\u39EC\u39ED\u39EE\u39EF\u39F0\u39F1\u39F2"+
+ "\u39F3\u39F4\u39F5\u39F6\u39F7\u39F8\u39F9\u39FA"+
+ "\u39FB\u39FC\u39FD\u39FE\u39FF\u3A00\u3A01\u3A02"+
+ "\u3A03\u3A04\u3A05\u3A06\u3A07\u3A08\u3A09\u3A0A"+
+ "\u3A0B\u3A0C\u3A0D\u3A0E\u3A0F\u3A10\u3A11\u3A12"+
+ "\u3A13\u3A14\u3A15\u3A16\u3A17\u3A18\u3A19\u3A1A"+
+ "\u3A1B\u3A1C\u3A1D\u3A1E\u3A1F\u3A20\u3A21\u3A22"+
+ "\u3A23\u3A24\u3A25\u3A26\u3A27\u3A28\u3A29\u3A2A"+
+ "\u3A2B\u3A2C\u3A2D\u3A2E\u3A2F\u3A30\u3A31\u3A32"+
+ "\u3A33\u3A34\u3A35\u3A36\u3A37\u3A38\u3A39\u3A3A"+
+ "\u3A3B\u3A3C\u3A3D\u3A3E\u3A3F\u3A40\u3A41\u3A42"+
+ "\u3A43\u3A44\u3A45\u3A46\u3A47\u3A48\u3A49\u3A4A"+
+ "\u3A4B\u3A4C\u3A4D\u3A4E\u3A4F\u3A50\u3A51\u3A52"+
+ "\u3A53\u3A54\u3A55\u3A56\u3A57\u3A58\u3A59\u3A5A"+
+ "\u3A5B\u3A5C\u3A5D\u3A5E\u3A5F\u3A60\u3A61\u3A62"+
+ "\u3A63\u3A64\u3A65\u3A66\u3A67\u3A68\u3A69\u3A6A"+
+ "\u3A6B\u3A6C\u3A6D\u3A6E\u3A6F\u3A70\u3A71\u3A72"+
+ "\u3A74\u3A75\u3A76\u3A77\u3A78\u3A79\u3A7A\u3A7B"+
+ "\u3A7C\u3A7D\u3A7E\u3A7F\u3A80\u3A81\u3A82\u3A83"+
+ "\u3A84\u3A85\u3A86\u3A87\u3A88\u3A89\u3A8A\u3A8B"+
+ "\u3A8C\u3A8D\u3A8E\u3A8F\u3A90\u3A91\u3A92\u3A93"+
+ "\u3A94\u3A95\u3A96\u3A97\u3A98\u3A99\u3A9A\u3A9B"+
+ "\u3A9C\u3A9D\u3A9E\u3A9F\u3AA0\u3AA1\u3AA2\u3AA3"+
+ "\u3AA4\u3AA5\u3AA6\u3AA7\u3AA8\u3AA9\u3AAA\u3AAB"+
+ "\u3AAC\u3AAD\u3AAE\u3AAF\u3AB0\u3AB1\u3AB2\u3AB3"+
+ "\u3AB4\u3AB5\u3AB6\u3AB7\u3AB8\u3AB9\u3ABA\u3ABB"+
+ "\u3ABC\u3ABD\u3ABE\u3ABF\u3AC0\u3AC1\u3AC2\u3AC3"+
+ "\u3AC4\u3AC5\u3AC6\u3AC7\u3AC8\u3AC9\u3ACA\u3ACB"+
+ "\u3ACC\u3ACD\u3ACE\u3ACF\u3AD0\u3AD1\u3AD2\u3AD3"+
+ "\u3AD4\u3AD5\u3AD6\u3AD7\u3AD8\u3AD9\u3ADA\u3ADB"+
+ "\u3ADC\u3ADD\u3ADE\u3ADF\u3AE0\u3AE1\u3AE2\u3AE3"+
+ "\u3AE4\u3AE5\u3AE6\u3AE7\u3AE8\u3AE9\u3AEA\u3AEB"+
+ "\u3AEC\u3AED\u3AEE\u3AEF\u3AF0\u3AF1\u3AF2\u3AF3"+
+ "\u3AF4\u3AF5\u3AF6\u3AF7\u3AF8\u3AF9\u3AFA\u3AFB"+
+ "\u3AFC\u3AFD\u3AFE\u3AFF\u3B00\u3B01\u3B02\u3B03"+
+ "\u3B04\u3B05\u3B06\u3B07\u3B08\u3B09\u3B0A\u3B0B"+
+ "\u3B0C\u3B0D\u3B0E\u3B0F\u3B10\u3B11\u3B12\u3B13"+
+ "\u3B14\u3B15\u3B16\u3B17\u3B18\u3B19\u3B1A\u3B1B"+
+ "\u3B1C\u3B1D\u3B1E\u3B1F\u3B20\u3B21\u3B22\u3B23"+
+ "\u3B24\u3B25\u3B26\u3B27\u3B28\u3B29\u3B2A\u3B2B"+
+ "\u3B2C\u3B2D\u3B2E\u3B2F\u3B30\u3B31\u3B32\u3B33"+
+ "\u3B34\u3B35\u3B36\u3B37\u3B38\u3B39\u3B3A\u3B3B"+
+ "\u3B3C\u3B3D\u3B3E\u3B3F\u3B40\u3B41\u3B42\u3B43"+
+ "\u3B44\u3B45\u3B46\u3B47\u3B48\u3B49\u3B4A\u3B4B"+
+ "\u3B4C\u3B4D\u3B4F\u3B50\u3B51\u3B52\u3B53\u3B54"+
+ "\u3B55\u3B56\u3B57\u3B58\u3B59\u3B5A\u3B5B\u3B5C"+
+ "\u3B5D\u3B5E\u3B5F\u3B60\u3B61\u3B62\u3B63\u3B64"+
+ "\u3B65\u3B66\u3B67\u3B68\u3B69\u3B6A\u3B6B\u3B6C"+
+ "\u3B6D\u3B6E\u3B6F\u3B70\u3B71\u3B72\u3B73\u3B74"+
+ "\u3B75\u3B76\u3B77\u3B78\u3B79\u3B7A\u3B7B\u3B7C"+
+ "\u3B7D\u3B7E\u3B7F\u3B80\u3B81\u3B82\u3B83\u3B84"+
+ "\u3B85\u3B86\u3B87\u3B88\u3B89\u3B8A\u3B8B\u3B8C"+
+ "\u3B8D\u3B8E\u3B8F\u3B90\u3B91\u3B92\u3B93\u3B94"+
+ "\u3B95\u3B96\u3B97\u3B98\u3B99\u3B9A\u3B9B\u3B9C"+
+ "\u3B9D\u3B9E\u3B9F\u3BA0\u3BA1\u3BA2\u3BA3\u3BA4"+
+ "\u3BA5\u3BA6\u3BA7\u3BA8\u3BA9\u3BAA\u3BAB\u3BAC"+
+ "\u3BAD\u3BAE\u3BAF\u3BB0\u3BB1\u3BB2\u3BB3\u3BB4"+
+ "\u3BB5\u3BB6\u3BB7\u3BB8\u3BB9\u3BBA\u3BBB\u3BBC"+
+ "\u3BBD\u3BBE\u3BBF\u3BC0\u3BC1\u3BC2\u3BC3\u3BC4"+
+ "\u3BC5\u3BC6\u3BC7\u3BC8\u3BC9\u3BCA\u3BCB\u3BCC"+
+ "\u3BCD\u3BCE\u3BCF\u3BD0\u3BD1\u3BD2\u3BD3\u3BD4"+
+ "\u3BD5\u3BD6\u3BD7\u3BD8\u3BD9\u3BDA\u3BDB\u3BDC"+
+ "\u3BDD\u3BDE\u3BDF\u3BE0\u3BE1\u3BE2\u3BE3\u3BE4"+
+ "\u3BE5\u3BE6\u3BE7\u3BE8\u3BE9\u3BEA\u3BEB\u3BEC"+
+ "\u3BED\u3BEE\u3BEF\u3BF0\u3BF1\u3BF2\u3BF3\u3BF4"+
+ "\u3BF5\u3BF6\u3BF7\u3BF8\u3BF9\u3BFA\u3BFB\u3BFC"+
+ "\u3BFD\u3BFE\u3BFF\u3C00\u3C01\u3C02\u3C03\u3C04"+
+ "\u3C05\u3C06\u3C07\u3C08\u3C09\u3C0A\u3C0B\u3C0C"+
+ "\u3C0D\u3C0E\u3C0F\u3C10\u3C11\u3C12\u3C13\u3C14"+
+ "\u3C15\u3C16\u3C17\u3C18\u3C19\u3C1A\u3C1B\u3C1C"+
+ "\u3C1D\u3C1E\u3C1F\u3C20\u3C21\u3C22\u3C23\u3C24"+
+ "\u3C25\u3C26\u3C27\u3C28\u3C29\u3C2A\u3C2B\u3C2C"+
+ "\u3C2D\u3C2E\u3C2F\u3C30\u3C31\u3C32\u3C33\u3C34"+
+ "\u3C35\u3C36\u3C37\u3C38\u3C39\u3C3A\u3C3B\u3C3C"+
+ "\u3C3D\u3C3E\u3C3F\u3C40\u3C41\u3C42\u3C43\u3C44"+
+ "\u3C45\u3C46\u3C47\u3C48\u3C49\u3C4A\u3C4B\u3C4C"+
+ "\u3C4D\u3C4E\u3C4F\u3C50\u3C51\u3C52\u3C53\u3C54"+
+ "\u3C55\u3C56\u3C57\u3C58\u3C59\u3C5A\u3C5B\u3C5C"+
+ "\u3C5D\u3C5E\u3C5F\u3C60\u3C61\u3C62\u3C63\u3C64"+
+ "\u3C65\u3C66\u3C67\u3C68\u3C69\u3C6A\u3C6B\u3C6C"+
+ "\u3C6D\u3C6F\u3C70\u3C71\u3C72\u3C73\u3C74\u3C75"+
+ "\u3C76\u3C77\u3C78\u3C79\u3C7A\u3C7B\u3C7C\u3C7D"+
+ "\u3C7E\u3C7F\u3C80\u3C81\u3C82\u3C83\u3C84\u3C85"+
+ "\u3C86\u3C87\u3C88\u3C89\u3C8A\u3C8B\u3C8C\u3C8D"+
+ "\u3C8E\u3C8F\u3C90\u3C91\u3C92\u3C93\u3C94\u3C95"+
+ "\u3C96\u3C97\u3C98\u3C99\u3C9A\u3C9B\u3C9C\u3C9D"+
+ "\u3C9E\u3C9F\u3CA0\u3CA1\u3CA2\u3CA3\u3CA4\u3CA5"+
+ "\u3CA6\u3CA7\u3CA8\u3CA9\u3CAA\u3CAB\u3CAC\u3CAD"+
+ "\u3CAE\u3CAF\u3CB0\u3CB1\u3CB2\u3CB3\u3CB4\u3CB5"+
+ "\u3CB6\u3CB7\u3CB8\u3CB9\u3CBA\u3CBB\u3CBC\u3CBD"+
+ "\u3CBE\u3CBF\u3CC0\u3CC1\u3CC2\u3CC3\u3CC4\u3CC5"+
+ "\u3CC6\u3CC7\u3CC8\u3CC9\u3CCA\u3CCB\u3CCC\u3CCD"+
+ "\u3CCE\u3CCF\u3CD0\u3CD1\u3CD2\u3CD3\u3CD4\u3CD5"+
+ "\u3CD6\u3CD7\u3CD8\u3CD9\u3CDA\u3CDB\u3CDC\u3CDD"+
+ "\u3CDE\u3CDF\u3CE1\u3CE2\u3CE3\u3CE4\u3CE5\u3CE6"+
+ "\u3CE7\u3CE8\u3CE9\u3CEA\u3CEB\u3CEC\u3CED\u3CEE"+
+ "\u3CEF\u3CF0\u3CF1\u3CF2\u3CF3\u3CF4\u3CF5\u3CF6"+
+ "\u3CF7\u3CF8\u3CF9\u3CFA\u3CFB\u3CFC\u3CFD\u3CFE"+
+ "\u3CFF\u3D00\u3D01\u3D02\u3D03\u3D04\u3D05\u3D06"+
+ "\u3D07\u3D08\u3D09\u3D0A\u3D0B\u3D0C\u3D0D\u3D0E"+
+ "\u3D0F\u3D10\u3D11\u3D12\u3D13\u3D14\u3D15\u3D16"+
+ "\u3D17\u3D18\u3D19\u3D1A\u3D1B\u3D1C\u3D1D\u3D1E"+
+ "\u3D1F\u3D20\u3D21\u3D22\u3D23\u3D24\u3D25\u3D26"+
+ "\u3D27\u3D28\u3D29\u3D2A\u3D2B\u3D2C\u3D2D\u3D2E"+
+ "\u3D2F\u3D30\u3D31\u3D32\u3D33\u3D34\u3D35\u3D36"+
+ "\u3D37\u3D38\u3D39\u3D3A\u3D3B\u3D3C\u3D3D\u3D3E"+
+ "\u3D3F\u3D40\u3D41\u3D42\u3D43\u3D44\u3D45\u3D46"+
+ "\u3D47\u3D48\u3D49\u3D4A\u3D4B\u3D4C\u3D4D\u3D4E"+
+ "\u3D4F\u3D50\u3D51\u3D52\u3D53\u3D54\u3D55\u3D56"+
+ "\u3D57\u3D58\u3D59\u3D5A\u3D5B\u3D5C\u3D5D\u3D5E"+
+ "\u3D5F\u3D60\u3D61\u3D62\u3D63\u3D64\u3D65\u3D66"+
+ "\u3D67\u3D68\u3D69\u3D6A\u3D6B\u3D6C\u3D6D\u3D6E"+
+ "\u3D6F\u3D70\u3D71\u3D72\u3D73\u3D74\u3D75\u3D76"+
+ "\u3D77\u3D78\u3D79\u3D7A\u3D7B\u3D7C\u3D7D\u3D7E"+
+ "\u3D7F\u3D80\u3D81\u3D82\u3D83\u3D84\u3D85\u3D86"+
+ "\u3D87\u3D88\u3D89\u3D8A\u3D8B\u3D8C\u3D8D\u3D8E"+
+ "\u3D8F\u3D90\u3D91\u3D92\u3D93\u3D94\u3D95\u3D96"+
+ "\u3D97\u3D98\u3D99\u3D9A\u3D9B\u3D9C\u3D9D\u3D9E"+
+ "\u3D9F\u3DA0\u3DA1\u3DA2\u3DA3\u3DA4\u3DA5\u3DA6"+
+ "\u3DA7\u3DA8\u3DA9\u3DAA\u3DAB\u3DAC\u3DAD\u3DAE"+
+ "\u3DAF\u3DB0\u3DB1\u3DB2\u3DB3\u3DB4\u3DB5\u3DB6"+
+ "\u3DB7\u3DB8\u3DB9\u3DBA\u3DBB\u3DBC\u3DBD\u3DBE"+
+ "\u3DBF\u3DC0\u3DC1\u3DC2\u3DC3\u3DC4\u3DC5\u3DC6"+
+ "\u3DC7\u3DC8\u3DC9\u3DCA\u3DCB\u3DCC\u3DCD\u3DCE"+
+ "\u3DCF\u3DD0\u3DD1\u3DD2\u3DD3\u3DD4\u3DD5\u3DD6"+
+ "\u3DD7\u3DD8\u3DD9\u3DDA\u3DDB\u3DDC\u3DDD\u3DDE"+
+ "\u3DDF\u3DE0\u3DE1\u3DE2\u3DE3\u3DE4\u3DE5\u3DE6"+
+ "\u3DE7\u3DE8\u3DE9\u3DEA\u3DEB\u3DEC\u3DED\u3DEE"+
+ "\u3DEF\u3DF0\u3DF1\u3DF2\u3DF3\u3DF4\u3DF5\u3DF6"+
+ "\u3DF7\u3DF8\u3DF9\u3DFA\u3DFB\u3DFC\u3DFD\u3DFE"+
+ "\u3DFF\u3E00\u3E01\u3E02\u3E03\u3E04\u3E05\u3E06"+
+ "\u3E07\u3E08\u3E09\u3E0A\u3E0B\u3E0C\u3E0D\u3E0E"+
+ "\u3E0F\u3E10\u3E11\u3E12\u3E13\u3E14\u3E15\u3E16"+
+ "\u3E17\u3E18\u3E19\u3E1A\u3E1B\u3E1C\u3E1D\u3E1E"+
+ "\u3E1F\u3E20\u3E21\u3E22\u3E23\u3E24\u3E25\u3E26"+
+ "\u3E27\u3E28\u3E29\u3E2A\u3E2B\u3E2C\u3E2D\u3E2E"+
+ "\u3E2F\u3E30\u3E31\u3E32\u3E33\u3E34\u3E35\u3E36"+
+ "\u3E37\u3E38\u3E39\u3E3A\u3E3B\u3E3C\u3E3D\u3E3E"+
+ "\u3E3F\u3E40\u3E41\u3E42\u3E43\u3E44\u3E45\u3E46"+
+ "\u3E47\u3E48\u3E49\u3E4A\u3E4B\u3E4C\u3E4D\u3E4E"+
+ "\u3E4F\u3E50\u3E51\u3E52\u3E53\u3E54\u3E55\u3E56"+
+ "\u3E57\u3E58\u3E59\u3E5A\u3E5B\u3E5C\u3E5D\u3E5E"+
+ "\u3E5F\u3E60\u3E61\u3E62\u3E63\u3E64\u3E65\u3E66"+
+ "\u3E67\u3E68\u3E69\u3E6A\u3E6B\u3E6C\u3E6D\u3E6E"+
+ "\u3E6F\u3E70\u3E71\u3E72\u3E73\u3E74\u3E75\u3E76"+
+ "\u3E77\u3E78\u3E79\u3E7A\u3E7B\u3E7C\u3E7D\u3E7E"+
+ "\u3E7F\u3E80\u3E81\u3E82\u3E83\u3E84\u3E85\u3E86"+
+ "\u3E87\u3E88\u3E89\u3E8A\u3E8B\u3E8C\u3E8D\u3E8E"+
+ "\u3E8F\u3E90\u3E91\u3E92\u3E93\u3E94\u3E95\u3E96"+
+ "\u3E97\u3E98\u3E99\u3E9A\u3E9B\u3E9C\u3E9D\u3E9E"+
+ "\u3E9F\u3EA0\u3EA1\u3EA2\u3EA3\u3EA4\u3EA5\u3EA6"+
+ "\u3EA7\u3EA8\u3EA9\u3EAA\u3EAB\u3EAC\u3EAD\u3EAE"+
+ "\u3EAF\u3EB0\u3EB1\u3EB2\u3EB3\u3EB4\u3EB5\u3EB6"+
+ "\u3EB7\u3EB8\u3EB9\u3EBA\u3EBB\u3EBC\u3EBD\u3EBE"+
+ "\u3EBF\u3EC0\u3EC1\u3EC2\u3EC3\u3EC4\u3EC5\u3EC6"+
+ "\u3EC7\u3EC8\u3EC9\u3ECA\u3ECB\u3ECC\u3ECD\u3ECE"+
+ "\u3ECF\u3ED0\u3ED1\u3ED2\u3ED3\u3ED4\u3ED5\u3ED6"+
+ "\u3ED7\u3ED8\u3ED9\u3EDA\u3EDB\u3EDC\u3EDD\u3EDE"+
+ "\u3EDF\u3EE0\u3EE1\u3EE2\u3EE3\u3EE4\u3EE5\u3EE6"+
+ "\u3EE7\u3EE8\u3EE9\u3EEA\u3EEB\u3EEC\u3EED\u3EEE"+
+ "\u3EEF\u3EF0\u3EF1\u3EF2\u3EF3\u3EF4\u3EF5\u3EF6"+
+ "\u3EF7\u3EF8\u3EF9\u3EFA\u3EFB\u3EFC\u3EFD\u3EFE"+
+ "\u3EFF\u3F00\u3F01\u3F02\u3F03\u3F04\u3F05\u3F06"+
+ "\u3F07\u3F08\u3F09\u3F0A\u3F0B\u3F0C\u3F0D\u3F0E"+
+ "\u3F0F\u3F10\u3F11\u3F12\u3F13\u3F14\u3F15\u3F16"+
+ "\u3F17\u3F18\u3F19\u3F1A\u3F1B\u3F1C\u3F1D\u3F1E"+
+ "\u3F1F\u3F20\u3F21\u3F22\u3F23\u3F24\u3F25\u3F26"+
+ "\u3F27\u3F28\u3F29\u3F2A\u3F2B\u3F2C\u3F2D\u3F2E"+
+ "\u3F2F\u3F30\u3F31\u3F32\u3F33\u3F34\u3F35\u3F36"+
+ "\u3F37\u3F38\u3F39\u3F3A\u3F3B\u3F3C\u3F3D\u3F3E"+
+ "\u3F3F\u3F40\u3F41\u3F42\u3F43\u3F44\u3F45\u3F46"+
+ "\u3F47\u3F48\u3F49\u3F4A\u3F4B\u3F4C\u3F4D\u3F4E"+
+ "\u3F4F\u3F50\u3F51\u3F52\u3F53\u3F54\u3F55\u3F56"+
+ "\u3F57\u3F58\u3F59\u3F5A\u3F5B\u3F5C\u3F5D\u3F5E"+
+ "\u3F5F\u3F60\u3F61\u3F62\u3F63\u3F64\u3F65\u3F66"+
+ "\u3F67\u3F68\u3F69\u3F6A\u3F6B\u3F6C\u3F6D\u3F6E"+
+ "\u3F6F\u3F70\u3F71\u3F72\u3F73\u3F74\u3F75\u3F76"+
+ "\u3F77\u3F78\u3F79\u3F7A\u3F7B\u3F7C\u3F7D\u3F7E"+
+ "\u3F7F\u3F80\u3F81\u3F82\u3F83\u3F84\u3F85\u3F86"+
+ "\u3F87\u3F88\u3F89\u3F8A\u3F8B\u3F8C\u3F8D\u3F8E"+
+ "\u3F8F\u3F90\u3F91\u3F92\u3F93\u3F94\u3F95\u3F96"+
+ "\u3F97\u3F98\u3F99\u3F9A\u3F9B\u3F9C\u3F9D\u3F9E"+
+ "\u3F9F\u3FA0\u3FA1\u3FA2\u3FA3\u3FA4\u3FA5\u3FA6"+
+ "\u3FA7\u3FA8\u3FA9\u3FAA\u3FAB\u3FAC\u3FAD\u3FAE"+
+ "\u3FAF\u3FB0\u3FB1\u3FB2\u3FB3\u3FB4\u3FB5\u3FB6"+
+ "\u3FB7\u3FB8\u3FB9\u3FBA\u3FBB\u3FBC\u3FBD\u3FBE"+
+ "\u3FBF\u3FC0\u3FC1\u3FC2\u3FC3\u3FC4\u3FC5\u3FC6"+
+ "\u3FC7\u3FC8\u3FC9\u3FCA\u3FCB\u3FCC\u3FCD\u3FCE"+
+ "\u3FCF\u3FD0\u3FD1\u3FD2\u3FD3\u3FD4\u3FD5\u3FD6"+
+ "\u3FD7\u3FD8\u3FD9\u3FDA\u3FDB\u3FDC\u3FDD\u3FDE"+
+ "\u3FDF\u3FE0\u3FE1\u3FE2\u3FE3\u3FE4\u3FE5\u3FE6"+
+ "\u3FE7\u3FE8\u3FE9\u3FEA\u3FEB\u3FEC\u3FED\u3FEE"+
+ "\u3FEF\u3FF0\u3FF1\u3FF2\u3FF3\u3FF4\u3FF5\u3FF6"+
+ "\u3FF7\u3FF8\u3FF9\u3FFA\u3FFB\u3FFC\u3FFD\u3FFE"+
+ "\u3FFF\u4000\u4001\u4002\u4003\u4004\u4005\u4006"+
+ "\u4007\u4008\u4009\u400A\u400B\u400C\u400D\u400E"+
+ "\u400F\u4010\u4011\u4012\u4013\u4014\u4015\u4016"+
+ "\u4017\u4018\u4019\u401A\u401B\u401C\u401D\u401E"+
+ "\u401F\u4020\u4021\u4022\u4023\u4024\u4025\u4026"+
+ "\u4027\u4028\u4029\u402A\u402B\u402C\u402D\u402E"+
+ "\u402F\u4030\u4031\u4032\u4033\u4034\u4035\u4036"+
+ "\u4037\u4038\u4039\u403A\u403B\u403C\u403D\u403E"+
+ "\u403F\u4040\u4041\u4042\u4043\u4044\u4045\u4046"+
+ "\u4047\u4048\u4049\u404A\u404B\u404C\u404D\u404E"+
+ "\u404F\u4050\u4051\u4052\u4053\u4054\u4055\u4057"+
+ "\u4058\u4059\u405A\u405B\u405C\u405D\u405E\u405F"+
+ "\u4060\u4061\u4062\u4063\u4064\u4065\u4066\u4067"+
+ "\u4068\u4069\u406A\u406B\u406C\u406D\u406E\u406F"+
+ "\u4070\u4071\u4072\u4073\u4074\u4075\u4076\u4077"+
+ "\u4078\u4079\u407A\u407B\u407C\u407D\u407E\u407F"+
+ "\u4080\u4081\u4082\u4083\u4084\u4085\u4086\u4087"+
+ "\u4088\u4089\u408A\u408B\u408C\u408D\u408E\u408F"+
+ "\u4090\u4091\u4092\u4093\u4094\u4095\u4096\u4097"+
+ "\u4098\u4099\u409A\u409B\u409C\u409D\u409E\u409F"+
+ "\u40A0\u40A1\u40A2\u40A3\u40A4\u40A5\u40A6\u40A7"+
+ "\u40A8\u40A9\u40AA\u40AB\u40AC\u40AD\u40AE\u40AF"+
+ "\u40B0\u40B1\u40B2\u40B3\u40B4\u40B5\u40B6\u40B7"+
+ "\u40B8\u40B9\u40BA\u40BB\u40BC\u40BD\u40BE\u40BF"+
+ "\u40C0\u40C1\u40C2\u40C3\u40C4\u40C5\u40C6\u40C7"+
+ "\u40C8\u40C9\u40CA\u40CB\u40CC\u40CD\u40CE\u40CF"+
+ "\u40D0\u40D1\u40D2\u40D3\u40D4\u40D5\u40D6\u40D7"+
+ "\u40D8\u40D9\u40DA\u40DB\u40DC\u40DD\u40DE\u40DF"+
+ "\u40E0\u40E1\u40E2\u40E3\u40E4\u40E5\u40E6\u40E7"+
+ "\u40E8\u40E9\u40EA\u40EB\u40EC\u40ED\u40EE\u40EF"+
+ "\u40F0\u40F1\u40F2\u40F3\u40F4\u40F5\u40F6\u40F7"+
+ "\u40F8\u40F9\u40FA\u40FB\u40FC\u40FD\u40FE\u40FF"+
+ "\u4100\u4101\u4102\u4103\u4104\u4105\u4106\u4107"+
+ "\u4108\u4109\u410A\u410B\u410C\u410D\u410E\u410F"+
+ "\u4110\u4111\u4112\u4113\u4114\u4115\u4116\u4117"+
+ "\u4118\u4119\u411A\u411B\u411C\u411D\u411E\u411F"+
+ "\u4120\u4121\u4122\u4123\u4124\u4125\u4126\u4127"+
+ "\u4128\u4129\u412A\u412B\u412C\u412D\u412E\u412F"+
+ "\u4130\u4131\u4132\u4133\u4134\u4135\u4136\u4137"+
+ "\u4138\u4139\u413A\u413B\u413C\u413D\u413E\u413F"+
+ "\u4140\u4141\u4142\u4143\u4144\u4145\u4146\u4147"+
+ "\u4148\u4149\u414A\u414B\u414C\u414D\u414E\u414F"+
+ "\u4150\u4151\u4152\u4153\u4154\u4155\u4156\u4157"+
+ "\u4158\u4159\u415A\u415B\u415C\u415D\u415E\u4160"+
+ "\u4161\u4162\u4163\u4164\u4165\u4166\u4167\u4168"+
+ "\u4169\u416A\u416B\u416C\u416D\u416E\u416F\u4170"+
+ "\u4171\u4172\u4173\u4174\u4175\u4176\u4177\u4178"+
+ "\u4179\u417A\u417B\u417C\u417D\u417E\u417F\u4180"+
+ "\u4181\u4182\u4183\u4184\u4185\u4186\u4187\u4188"+
+ "\u4189\u418A\u418B\u418C\u418D\u418E\u418F\u4190"+
+ "\u4191\u4192\u4193\u4194\u4195\u4196\u4197\u4198"+
+ "\u4199\u419A\u419B\u419C\u419D\u419E\u419F\u41A0"+
+ "\u41A1\u41A2\u41A3\u41A4\u41A5\u41A6\u41A7\u41A8"+
+ "\u41A9\u41AA\u41AB\u41AC\u41AD\u41AE\u41AF\u41B0"+
+ "\u41B1\u41B2\u41B3\u41B4\u41B5\u41B6\u41B7\u41B8"+
+ "\u41B9\u41BA\u41BB\u41BC\u41BD\u41BE\u41BF\u41C0"+
+ "\u41C1\u41C2\u41C3\u41C4\u41C5\u41C6\u41C7\u41C8"+
+ "\u41C9\u41CA\u41CB\u41CC\u41CD\u41CE\u41CF\u41D0"+
+ "\u41D1\u41D2\u41D3\u41D4\u41D5\u41D6\u41D7\u41D8"+
+ "\u41D9\u41DA\u41DB\u41DC\u41DD\u41DE\u41DF\u41E0"+
+ "\u41E1\u41E2\u41E3\u41E4\u41E5\u41E6\u41E7\u41E8"+
+ "\u41E9\u41EA\u41EB\u41EC\u41ED\u41EE\u41EF\u41F0"+
+ "\u41F1\u41F2\u41F3\u41F4\u41F5\u41F6\u41F7\u41F8"+
+ "\u41F9\u41FA\u41FB\u41FC\u41FD\u41FE\u41FF\u4200"+
+ "\u4201\u4202\u4203\u4204\u4205\u4206\u4207\u4208"+
+ "\u4209\u420A\u420B\u420C\u420D\u420E\u420F\u4210"+
+ "\u4211\u4212\u4213\u4214\u4215\u4216\u4217\u4218"+
+ "\u4219\u421A\u421B\u421C\u421D\u421E\u421F\u4220"+
+ "\u4221\u4222\u4223\u4224\u4225\u4226\u4227\u4228"+
+ "\u4229\u422A\u422B\u422C\u422D\u422E\u422F\u4230"+
+ "\u4231\u4232\u4233\u4234\u4235\u4236\u4237\u4238"+
+ "\u4239\u423A\u423B\u423C\u423D\u423E\u423F\u4240"+
+ "\u4241\u4242\u4243\u4244\u4245\u4246\u4247\u4248"+
+ "\u4249\u424A\u424B\u424C\u424D\u424E\u424F\u4250"+
+ "\u4251\u4252\u4253\u4254\u4255\u4256\u4257\u4258"+
+ "\u4259\u425A\u425B\u425C\u425D\u425E\u425F\u4260"+
+ "\u4261\u4262\u4263\u4264\u4265\u4266\u4267\u4268"+
+ "\u4269\u426A\u426B\u426C\u426D\u426E\u426F\u4270"+
+ "\u4271\u4272\u4273\u4274\u4275\u4276\u4277\u4278"+
+ "\u4279\u427A\u427B\u427C\u427D\u427E\u427F\u4280"+
+ "\u4281\u4282\u4283\u4284\u4285\u4286\u4287\u4288"+
+ "\u4289\u428A\u428B\u428C\u428D\u428E\u428F\u4290"+
+ "\u4291\u4292\u4293\u4294\u4295\u4296\u4297\u4298"+
+ "\u4299\u429A\u429B\u429C\u429D\u429E\u429F\u42A0"+
+ "\u42A1\u42A2\u42A3\u42A4\u42A5\u42A6\u42A7\u42A8"+
+ "\u42A9\u42AA\u42AB\u42AC\u42AD\u42AE\u42AF\u42B0"+
+ "\u42B1\u42B2\u42B3\u42B4\u42B5\u42B6\u42B7\u42B8"+
+ "\u42B9\u42BA\u42BB\u42BC\u42BD\u42BE\u42BF\u42C0"+
+ "\u42C1\u42C2\u42C3\u42C4\u42C5\u42C6\u42C7\u42C8"+
+ "\u42C9\u42CA\u42CB\u42CC\u42CD\u42CE\u42CF\u42D0"+
+ "\u42D1\u42D2\u42D3\u42D4\u42D5\u42D6\u42D7\u42D8"+
+ "\u42D9\u42DA\u42DB\u42DC\u42DD\u42DE\u42DF\u42E0"+
+ "\u42E1\u42E2\u42E3\u42E4\u42E5\u42E6\u42E7\u42E8"+
+ "\u42E9\u42EA\u42EB\u42EC\u42ED\u42EE\u42EF\u42F0"+
+ "\u42F1\u42F2\u42F3\u42F4\u42F5\u42F6\u42F7\u42F8"+
+ "\u42F9\u42FA\u42FB\u42FC\u42FD\u42FE\u42FF\u4300"+
+ "\u4301\u4302\u4303\u4304\u4305\u4306\u4307\u4308"+
+ "\u4309\u430A\u430B\u430C\u430D\u430E\u430F\u4310"+
+ "\u4311\u4312\u4313\u4314\u4315\u4316\u4317\u4318"+
+ "\u4319\u431A\u431B\u431C\u431D\u431E\u431F\u4320"+
+ "\u4321\u4322\u4323\u4324\u4325\u4326\u4327\u4328"+
+ "\u4329\u432A\u432B\u432C\u432D\u432E\u432F\u4330"+
+ "\u4331\u4332\u4333\u4334\u4335\u4336\u4338\u4339"+
+ "\u433A\u433B\u433C\u433D\u433E\u433F\u4340\u4341"+
+ "\u4342\u4343\u4344\u4345\u4346\u4347\u4348\u4349"+
+ "\u434A\u434B\u434C\u434D\u434E\u434F\u4350\u4351"+
+ "\u4352\u4353\u4354\u4355\u4356\u4357\u4358\u4359"+
+ "\u435A\u435B\u435C\u435D\u435E\u435F\u4360\u4361"+
+ "\u4362\u4363\u4364\u4365\u4366\u4367\u4368\u4369"+
+ "\u436A\u436B\u436C\u436D\u436E\u436F\u4370\u4371"+
+ "\u4372\u4373\u4374\u4375\u4376\u4377\u4378\u4379";
+
+ private final static String innerDecoderIndex4=
+ "\u437A\u437B\u437C\u437D\u437E\u437F\u4380\u4381"+
+ "\u4382\u4383\u4384\u4385\u4386\u4387\u4388\u4389"+
+ "\u438A\u438B\u438C\u438D\u438E\u438F\u4390\u4391"+
+ "\u4392\u4393\u4394\u4395\u4396\u4397\u4398\u4399"+
+ "\u439A\u439B\u439C\u439D\u439E\u439F\u43A0\u43A1"+
+ "\u43A2\u43A3\u43A4\u43A5\u43A6\u43A7\u43A8\u43A9"+
+ "\u43AA\u43AB\u43AD\u43AE\u43AF\u43B0\u43B2\u43B3"+
+ "\u43B4\u43B5\u43B6\u43B7\u43B8\u43B9\u43BA\u43BB"+
+ "\u43BC\u43BD\u43BE\u43BF\u43C0\u43C1\u43C2\u43C3"+
+ "\u43C4\u43C5\u43C6\u43C7\u43C8\u43C9\u43CA\u43CB"+
+ "\u43CC\u43CD\u43CE\u43CF\u43D0\u43D1\u43D2\u43D3"+
+ "\u43D4\u43D5\u43D6\u43D7\u43D8\u43D9\u43DA\u43DB"+
+ "\u43DC\u43DE\u43DF\u43E0\u43E1\u43E2\u43E3\u43E4"+
+ "\u43E5\u43E6\u43E7\u43E8\u43E9\u43EA\u43EB\u43EC"+
+ "\u43ED\u43EE\u43EF\u43F0\u43F1\u43F2\u43F3\u43F4"+
+ "\u43F5\u43F6\u43F7\u43F8\u43F9\u43FA\u43FB\u43FC"+
+ "\u43FD\u43FE\u43FF\u4400\u4401\u4402\u4403\u4404"+
+ "\u4405\u4406\u4407\u4408\u4409\u440A\u440B\u440C"+
+ "\u440D\u440E\u440F\u4410\u4411\u4412\u4413\u4414"+
+ "\u4415\u4416\u4417\u4418\u4419\u441A\u441B\u441C"+
+ "\u441D\u441E\u441F\u4420\u4421\u4422\u4423\u4424"+
+ "\u4425\u4426\u4427\u4428\u4429\u442A\u442B\u442C"+
+ "\u442D\u442E\u442F\u4430\u4431\u4432\u4433\u4434"+
+ "\u4435\u4436\u4437\u4438\u4439\u443A\u443B\u443C"+
+ "\u443D\u443E\u443F\u4440\u4441\u4442\u4443\u4444"+
+ "\u4445\u4446\u4447\u4448\u4449\u444A\u444B\u444C"+
+ "\u444D\u444E\u444F\u4450\u4451\u4452\u4453\u4454"+
+ "\u4455\u4456\u4457\u4458\u4459\u445A\u445B\u445C"+
+ "\u445D\u445E\u445F\u4460\u4461\u4462\u4463\u4464"+
+ "\u4465\u4466\u4467\u4468\u4469\u446A\u446B\u446C"+
+ "\u446D\u446E\u446F\u4470\u4471\u4472\u4473\u4474"+
+ "\u4475\u4476\u4477\u4478\u4479\u447A\u447B\u447C"+
+ "\u447D\u447E\u447F\u4480\u4481\u4482\u4483\u4484"+
+ "\u4485\u4486\u4487\u4488\u4489\u448A\u448B\u448C"+
+ "\u448D\u448E\u448F\u4490\u4491\u4492\u4493\u4494"+
+ "\u4495\u4496\u4497\u4498\u4499\u449A\u449B\u449C"+
+ "\u449D\u449E\u449F\u44A0\u44A1\u44A2\u44A3\u44A4"+
+ "\u44A5\u44A6\u44A7\u44A8\u44A9\u44AA\u44AB\u44AC"+
+ "\u44AD\u44AE\u44AF\u44B0\u44B1\u44B2\u44B3\u44B4"+
+ "\u44B5\u44B6\u44B7\u44B8\u44B9\u44BA\u44BB\u44BC"+
+ "\u44BD\u44BE\u44BF\u44C0\u44C1\u44C2\u44C3\u44C4"+
+ "\u44C5\u44C6\u44C7\u44C8\u44C9\u44CA\u44CB\u44CC"+
+ "\u44CD\u44CE\u44CF\u44D0\u44D1\u44D2\u44D3\u44D4"+
+ "\u44D5\u44D7\u44D8\u44D9\u44DA\u44DB\u44DC\u44DD"+
+ "\u44DE\u44DF\u44E0\u44E1\u44E2\u44E3\u44E4\u44E5"+
+ "\u44E6\u44E7\u44E8\u44E9\u44EA\u44EB\u44EC\u44ED"+
+ "\u44EE\u44EF\u44F0\u44F1\u44F2\u44F3\u44F4\u44F5"+
+ "\u44F6\u44F7\u44F8\u44F9\u44FA\u44FB\u44FC\u44FD"+
+ "\u44FE\u44FF\u4500\u4501\u4502\u4503\u4504\u4505"+
+ "\u4506\u4507\u4508\u4509\u450A\u450B\u450C\u450D"+
+ "\u450E\u450F\u4510\u4511\u4512\u4513\u4514\u4515"+
+ "\u4516\u4517\u4518\u4519\u451A\u451B\u451C\u451D"+
+ "\u451E\u451F\u4520\u4521\u4522\u4523\u4524\u4525"+
+ "\u4526\u4527\u4528\u4529\u452A\u452B\u452C\u452D"+
+ "\u452E\u452F\u4530\u4531\u4532\u4533\u4534\u4535"+
+ "\u4536\u4537\u4538\u4539\u453A\u453B\u453C\u453D"+
+ "\u453E\u453F\u4540\u4541\u4542\u4543\u4544\u4545"+
+ "\u4546\u4547\u4548\u4549\u454A\u454B\u454C\u454D"+
+ "\u454E\u454F\u4550\u4551\u4552\u4553\u4554\u4555"+
+ "\u4556\u4557\u4558\u4559\u455A\u455B\u455C\u455D"+
+ "\u455E\u455F\u4560\u4561\u4562\u4563\u4564\u4565"+
+ "\u4566\u4567\u4568\u4569\u456A\u456B\u456C\u456D"+
+ "\u456E\u456F\u4570\u4571\u4572\u4573\u4574\u4575"+
+ "\u4576\u4577\u4578\u4579\u457A\u457B\u457C\u457D"+
+ "\u457E\u457F\u4580\u4581\u4582\u4583\u4584\u4585"+
+ "\u4586\u4587\u4588\u4589\u458A\u458B\u458C\u458D"+
+ "\u458E\u458F\u4590\u4591\u4592\u4593\u4594\u4595"+
+ "\u4596\u4597\u4598\u4599\u459A\u459B\u459C\u459D"+
+ "\u459E\u459F\u45A0\u45A1\u45A2\u45A3\u45A4\u45A5"+
+ "\u45A6\u45A7\u45A8\u45A9\u45AA\u45AB\u45AC\u45AD"+
+ "\u45AE\u45AF\u45B0\u45B1\u45B2\u45B3\u45B4\u45B5"+
+ "\u45B6\u45B7\u45B8\u45B9\u45BA\u45BB\u45BC\u45BD"+
+ "\u45BE\u45BF\u45C0\u45C1\u45C2\u45C3\u45C4\u45C5"+
+ "\u45C6\u45C7\u45C8\u45C9\u45CA\u45CB\u45CC\u45CD"+
+ "\u45CE\u45CF\u45D0\u45D1\u45D2\u45D3\u45D4\u45D5"+
+ "\u45D6\u45D7\u45D8\u45D9\u45DA\u45DB\u45DC\u45DD"+
+ "\u45DE\u45DF\u45E0\u45E1\u45E2\u45E3\u45E4\u45E5"+
+ "\u45E6\u45E7\u45E8\u45E9\u45EA\u45EB\u45EC\u45ED"+
+ "\u45EE\u45EF\u45F0\u45F1\u45F2\u45F3\u45F4\u45F5"+
+ "\u45F6\u45F7\u45F8\u45F9\u45FA\u45FB\u45FC\u45FD"+
+ "\u45FE\u45FF\u4600\u4601\u4602\u4603\u4604\u4605"+
+ "\u4606\u4607\u4608\u4609\u460A\u460B\u460C\u460D"+
+ "\u460E\u460F\u4610\u4611\u4612\u4613\u4614\u4615"+
+ "\u4616\u4617\u4618\u4619\u461A\u461B\u461C\u461D"+
+ "\u461E\u461F\u4620\u4621\u4622\u4623\u4624\u4625"+
+ "\u4626\u4627\u4628\u4629\u462A\u462B\u462C\u462D"+
+ "\u462E\u462F\u4630\u4631\u4632\u4633\u4634\u4635"+
+ "\u4636\u4637\u4638\u4639\u463A\u463B\u463C\u463D"+
+ "\u463E\u463F\u4640\u4641\u4642\u4643\u4644\u4645"+
+ "\u4646\u4647\u4648\u4649\u464A\u464B\u464D\u464E"+
+ "\u464F\u4650\u4651\u4652\u4653\u4654\u4655\u4656"+
+ "\u4657\u4658\u4659\u465A\u465B\u465C\u465D\u465E"+
+ "\u465F\u4660\u4662\u4663\u4664\u4665\u4666\u4667"+
+ "\u4668\u4669\u466A\u466B\u466C\u466D\u466E\u466F"+
+ "\u4670\u4671\u4672\u4673\u4674\u4675\u4676\u4677"+
+ "\u4678\u4679\u467A\u467B\u467C\u467D\u467E\u467F"+
+ "\u4680\u4681\u4682\u4683\u4684\u4685\u4686\u4687"+
+ "\u4688\u4689\u468A\u468B\u468C\u468D\u468E\u468F"+
+ "\u4690\u4691\u4692\u4693\u4694\u4695\u4696\u4697"+
+ "\u4698\u4699\u469A\u469B\u469C\u469D\u469E\u469F"+
+ "\u46A0\u46A1\u46A2\u46A3\u46A4\u46A5\u46A6\u46A7"+
+ "\u46A8\u46A9\u46AA\u46AB\u46AC\u46AD\u46AE\u46AF"+
+ "\u46B0\u46B1\u46B2\u46B3\u46B4\u46B5\u46B6\u46B7"+
+ "\u46B8\u46B9\u46BA\u46BB\u46BC\u46BD\u46BE\u46BF"+
+ "\u46C0\u46C1\u46C2\u46C3\u46C4\u46C5\u46C6\u46C7"+
+ "\u46C8\u46C9\u46CA\u46CB\u46CC\u46CD\u46CE\u46CF"+
+ "\u46D0\u46D1\u46D2\u46D3\u46D4\u46D5\u46D6\u46D7"+
+ "\u46D8\u46D9\u46DA\u46DB\u46DC\u46DD\u46DE\u46DF"+
+ "\u46E0\u46E1\u46E2\u46E3\u46E4\u46E5\u46E6\u46E7"+
+ "\u46E8\u46E9\u46EA\u46EB\u46EC\u46ED\u46EE\u46EF"+
+ "\u46F0\u46F1\u46F2\u46F3\u46F4\u46F5\u46F6\u46F7"+
+ "\u46F8\u46F9\u46FA\u46FB\u46FC\u46FD\u46FE\u46FF"+
+ "\u4700\u4701\u4702\u4703\u4704\u4705\u4706\u4707"+
+ "\u4708\u4709\u470A\u470B\u470C\u470D\u470E\u470F"+
+ "\u4710\u4711\u4712\u4713\u4714\u4715\u4716\u4717"+
+ "\u4718\u4719\u471A\u471B\u471C\u471D\u471E\u471F"+
+ "\u4720\u4721\u4722\u4724\u4725\u4726\u4727\u4728"+
+ "\u472A\u472B\u472C\u472D\u472E\u472F\u4730\u4731"+
+ "\u4732\u4733\u4734\u4735\u4736\u4737\u4738\u4739"+
+ "\u473A\u473B\u473C\u473D\u473E\u473F\u4740\u4741"+
+ "\u4742\u4743\u4744\u4745\u4746\u4747\u4748\u4749"+
+ "\u474A\u474B\u474C\u474D\u474E\u474F\u4750\u4751"+
+ "\u4752\u4753\u4754\u4755\u4756\u4757\u4758\u4759"+
+ "\u475A\u475B\u475C\u475D\u475E\u475F\u4760\u4761"+
+ "\u4762\u4763\u4764\u4765\u4766\u4767\u4768\u4769"+
+ "\u476A\u476B\u476C\u476D\u476E\u476F\u4770\u4771"+
+ "\u4772\u4773\u4774\u4775\u4776\u4777\u4778\u4779"+
+ "\u477A\u477B\u477D\u477E\u477F\u4780\u4781\u4782"+
+ "\u4783\u4784\u4785\u4786\u4787\u4788\u4789\u478A"+
+ "\u478B\u478C\u478E\u478F\u4790\u4791\u4792\u4793"+
+ "\u4794\u4795\u4796\u4797\u4798\u4799\u479A\u479B"+
+ "\u479C\u479D\u479E\u479F\u47A0\u47A1\u47A2\u47A3"+
+ "\u47A4\u47A5\u47A6\u47A7\u47A8\u47A9\u47AA\u47AB"+
+ "\u47AC\u47AD\u47AE\u47AF\u47B0\u47B1\u47B2\u47B3"+
+ "\u47B4\u47B5\u47B6\u47B7\u47B8\u47B9\u47BA\u47BB"+
+ "\u47BC\u47BD\u47BE\u47BF\u47C0\u47C1\u47C2\u47C3"+
+ "\u47C4\u47C5\u47C6\u47C7\u47C8\u47C9\u47CA\u47CB"+
+ "\u47CC\u47CD\u47CE\u47CF\u47D0\u47D1\u47D2\u47D3"+
+ "\u47D4\u47D5\u47D6\u47D7\u47D8\u47D9\u47DA\u47DB"+
+ "\u47DC\u47DD\u47DE\u47DF\u47E0\u47E1\u47E2\u47E3"+
+ "\u47E4\u47E5\u47E6\u47E7\u47E8\u47E9\u47EA\u47EB"+
+ "\u47EC\u47ED\u47EE\u47EF\u47F0\u47F1\u47F2\u47F3"+
+ "\u47F4\u47F5\u47F6\u47F7\u47F8\u47F9\u47FA\u47FB"+
+ "\u47FC\u47FD\u47FE\u47FF\u4800\u4801\u4802\u4803"+
+ "\u4804\u4805\u4806\u4807\u4808\u4809\u480A\u480B"+
+ "\u480C\u480D\u480E\u480F\u4810\u4811\u4812\u4813"+
+ "\u4814\u4815\u4816\u4817\u4818\u4819\u481A\u481B"+
+ "\u481C\u481D\u481E\u481F\u4820\u4821\u4822\u4823"+
+ "\u4824\u4825\u4826\u4827\u4828\u4829\u482A\u482B"+
+ "\u482C\u482D\u482E\u482F\u4830\u4831\u4832\u4833"+
+ "\u4834\u4835\u4836\u4837\u4838\u4839\u483A\u483B"+
+ "\u483C\u483D\u483E\u483F\u4840\u4841\u4842\u4843"+
+ "\u4844\u4845\u4846\u4847\u4848\u4849\u484A\u484B"+
+ "\u484C\u484D\u484E\u484F\u4850\u4851\u4852\u4853"+
+ "\u4854\u4855\u4856\u4857\u4858\u4859\u485A\u485B"+
+ "\u485C\u485D\u485E\u485F\u4860\u4861\u4862\u4863"+
+ "\u4864\u4865\u4866\u4867\u4868\u4869\u486A\u486B"+
+ "\u486C\u486D\u486E\u486F\u4870\u4871\u4872\u4873"+
+ "\u4874\u4875\u4876\u4877\u4878\u4879\u487A\u487B"+
+ "\u487C\u487D\u487E\u487F\u4880\u4881\u4882\u4883"+
+ "\u4884\u4885\u4886\u4887\u4888\u4889\u488A\u488B"+
+ "\u488C\u488D\u488E\u488F\u4890\u4891\u4892\u4893"+
+ "\u4894\u4895\u4896\u4897\u4898\u4899\u489A\u489B"+
+ "\u489C\u489D\u489E\u489F\u48A0\u48A1\u48A2\u48A3"+
+ "\u48A4\u48A5\u48A6\u48A7\u48A8\u48A9\u48AA\u48AB"+
+ "\u48AC\u48AD\u48AE\u48AF\u48B0\u48B1\u48B2\u48B3"+
+ "\u48B4\u48B5\u48B6\u48B7\u48B8\u48B9\u48BA\u48BB"+
+ "\u48BC\u48BD\u48BE\u48BF\u48C0\u48C1\u48C2\u48C3"+
+ "\u48C4\u48C5\u48C6\u48C7\u48C8\u48C9\u48CA\u48CB"+
+ "\u48CC\u48CD\u48CE\u48CF\u48D0\u48D1\u48D2\u48D3"+
+ "\u48D4\u48D5\u48D6\u48D7\u48D8\u48D9\u48DA\u48DB"+
+ "\u48DC\u48DD\u48DE\u48DF\u48E0\u48E1\u48E2\u48E3"+
+ "\u48E4\u48E5\u48E6\u48E7\u48E8\u48E9\u48EA\u48EB"+
+ "\u48EC\u48ED\u48EE\u48EF\u48F0\u48F1\u48F2\u48F3"+
+ "\u48F4\u48F5\u48F6\u48F7\u48F8\u48F9\u48FA\u48FB"+
+ "\u48FC\u48FD\u48FE\u48FF\u4900\u4901\u4902\u4903"+
+ "\u4904\u4905\u4906\u4907\u4908\u4909\u490A\u490B"+
+ "\u490C\u490D\u490E\u490F\u4910\u4911\u4912\u4913"+
+ "\u4914\u4915\u4916\u4917\u4918\u4919\u491A\u491B"+
+ "\u491C\u491D\u491E\u491F\u4920\u4921\u4922\u4923"+
+ "\u4924\u4925\u4926\u4927\u4928\u4929\u492A\u492B"+
+ "\u492C\u492D\u492E\u492F\u4930\u4931\u4932\u4933"+
+ "\u4934\u4935\u4936\u4937\u4938\u4939\u493A\u493B"+
+ "\u493C\u493D\u493E\u493F\u4940\u4941\u4942\u4943"+
+ "\u4944\u4945\u4946\u4948\u4949\u494A\u494B\u494C"+
+ "\u494D\u494E\u494F\u4950\u4951\u4952\u4953\u4954"+
+ "\u4955\u4956\u4957\u4958\u4959\u495A\u495B\u495C"+
+ "\u495D\u495E\u495F\u4960\u4961\u4962\u4963\u4964"+
+ "\u4965\u4966\u4967\u4968\u4969\u496A\u496B\u496C"+
+ "\u496D\u496E\u496F\u4970\u4971\u4972\u4973\u4974"+
+ "\u4975\u4976\u4977\u4978\u4979\u497B\u497C\u497E"+
+ "\u497F\u4980\u4981\u4984\u4987\u4988\u4989\u498A"+
+ "\u498B\u498C\u498D\u498E\u498F\u4990\u4991\u4992"+
+ "\u4993\u4994\u4995\u4996\u4997\u4998\u4999\u499A"+
+ "\u499C\u499D\u499E\u49A0\u49A1\u49A2\u49A3\u49A4"+
+ "\u49A5\u49A6\u49A7\u49A8\u49A9\u49AA\u49AB\u49AC"+
+ "\u49AD\u49AE\u49AF\u49B0\u49B1\u49B2\u49B3\u49B4"+
+ "\u49B5\u49B8\u49B9\u49BA\u49BB\u49BC\u49BD\u49BE"+
+ "\u49BF\u49C0\u49C1\u49C2\u49C3\u49C4\u49C5\u49C6"+
+ "\u49C7\u49C8\u49C9\u49CA\u49CB\u49CC\u49CD\u49CE"+
+ "\u49CF\u49D0\u49D1\u49D2\u49D3\u49D4\u49D5\u49D6"+
+ "\u49D7\u49D8\u49D9\u49DA\u49DB\u49DC\u49DD\u49DE"+
+ "\u49DF\u49E0\u49E1\u49E2\u49E3\u49E4\u49E5\u49E6"+
+ "\u49E7\u49E8\u49E9\u49EA\u49EB\u49EC\u49ED\u49EE"+
+ "\u49EF\u49F0\u49F1\u49F2\u49F3\u49F4\u49F5\u49F6"+
+ "\u49F7\u49F8\u49F9\u49FA\u49FB\u49FC\u49FD\u49FE"+
+ "\u49FF\u4A00\u4A01\u4A02\u4A03\u4A04\u4A05\u4A06"+
+ "\u4A07\u4A08\u4A09\u4A0A\u4A0B\u4A0C\u4A0D\u4A0E"+
+ "\u4A0F\u4A10\u4A11\u4A12\u4A13\u4A14\u4A15\u4A16"+
+ "\u4A17\u4A18\u4A19\u4A1A\u4A1B\u4A1C\u4A1D\u4A1E"+
+ "\u4A1F\u4A20\u4A21\u4A22\u4A23\u4A24\u4A25\u4A26"+
+ "\u4A27\u4A28\u4A29\u4A2A\u4A2B\u4A2C\u4A2D\u4A2E"+
+ "\u4A2F\u4A30\u4A31\u4A32\u4A33\u4A34\u4A35\u4A36"+
+ "\u4A37\u4A38\u4A39\u4A3A\u4A3B\u4A3C\u4A3D\u4A3E"+
+ "\u4A3F\u4A40\u4A41\u4A42\u4A43\u4A44\u4A45\u4A46"+
+ "\u4A47\u4A48\u4A49\u4A4A\u4A4B\u4A4C\u4A4D\u4A4E"+
+ "\u4A4F\u4A50\u4A51\u4A52\u4A53\u4A54\u4A55\u4A56"+
+ "\u4A57\u4A58\u4A59\u4A5A\u4A5B\u4A5C\u4A5D\u4A5E"+
+ "\u4A5F\u4A60\u4A61\u4A62\u4A63\u4A64\u4A65\u4A66"+
+ "\u4A67\u4A68\u4A69\u4A6A\u4A6B\u4A6C\u4A6D\u4A6E"+
+ "\u4A6F\u4A70\u4A71\u4A72\u4A73\u4A74\u4A75\u4A76"+
+ "\u4A77\u4A78\u4A79\u4A7A\u4A7B\u4A7C\u4A7D\u4A7E"+
+ "\u4A7F\u4A80\u4A81\u4A82\u4A83\u4A84\u4A85\u4A86"+
+ "\u4A87\u4A88\u4A89\u4A8A\u4A8B\u4A8C\u4A8D\u4A8E"+
+ "\u4A8F\u4A90\u4A91\u4A92\u4A93\u4A94\u4A95\u4A96"+
+ "\u4A97\u4A98\u4A99\u4A9A\u4A9B\u4A9C\u4A9D\u4A9E"+
+ "\u4A9F\u4AA0\u4AA1\u4AA2\u4AA3\u4AA4\u4AA5\u4AA6"+
+ "\u4AA7\u4AA8\u4AA9\u4AAA\u4AAB\u4AAC\u4AAD\u4AAE"+
+ "\u4AAF\u4AB0\u4AB1\u4AB2\u4AB3\u4AB4\u4AB5\u4AB6"+
+ "\u4AB7\u4AB8\u4AB9\u4ABA\u4ABB\u4ABC\u4ABD\u4ABE"+
+ "\u4ABF\u4AC0\u4AC1\u4AC2\u4AC3\u4AC4\u4AC5\u4AC6"+
+ "\u4AC7\u4AC8\u4AC9\u4ACA\u4ACB\u4ACC\u4ACD\u4ACE"+
+ "\u4ACF\u4AD0\u4AD1\u4AD2\u4AD3\u4AD4\u4AD5\u4AD6"+
+ "\u4AD7\u4AD8\u4AD9\u4ADA\u4ADB\u4ADC\u4ADD\u4ADE"+
+ "\u4ADF\u4AE0\u4AE1\u4AE2\u4AE3\u4AE4\u4AE5\u4AE6"+
+ "\u4AE7\u4AE8\u4AE9\u4AEA\u4AEB\u4AEC\u4AED\u4AEE"+
+ "\u4AEF\u4AF0\u4AF1\u4AF2\u4AF3\u4AF4\u4AF5\u4AF6"+
+ "\u4AF7\u4AF8\u4AF9\u4AFA\u4AFB\u4AFC\u4AFD\u4AFE"+
+ "\u4AFF\u4B00\u4B01\u4B02\u4B03\u4B04\u4B05\u4B06"+
+ "\u4B07\u4B08\u4B09\u4B0A\u4B0B\u4B0C\u4B0D\u4B0E"+
+ "\u4B0F\u4B10\u4B11\u4B12\u4B13\u4B14\u4B15\u4B16"+
+ "\u4B17\u4B18\u4B19\u4B1A\u4B1B\u4B1C\u4B1D\u4B1E"+
+ "\u4B1F\u4B20\u4B21\u4B22\u4B23\u4B24\u4B25\u4B26"+
+ "\u4B27\u4B28\u4B29\u4B2A\u4B2B\u4B2C\u4B2D\u4B2E"+
+ "\u4B2F\u4B30\u4B31\u4B32\u4B33\u4B34\u4B35\u4B36"+
+ "\u4B37\u4B38\u4B39\u4B3A\u4B3B\u4B3C\u4B3D\u4B3E"+
+ "\u4B3F\u4B40\u4B41\u4B42\u4B43\u4B44\u4B45\u4B46"+
+ "\u4B47\u4B48\u4B49\u4B4A\u4B4B\u4B4C\u4B4D\u4B4E"+
+ "\u4B4F\u4B50\u4B51\u4B52\u4B53\u4B54\u4B55\u4B56"+
+ "\u4B57\u4B58\u4B59\u4B5A\u4B5B\u4B5C\u4B5D\u4B5E"+
+ "\u4B5F\u4B60\u4B61\u4B62\u4B63\u4B64\u4B65\u4B66"+
+ "\u4B67\u4B68\u4B69\u4B6A\u4B6B\u4B6C\u4B6D\u4B6E"+
+ "\u4B6F\u4B70\u4B71\u4B72\u4B73\u4B74\u4B75\u4B76"+
+ "\u4B77\u4B78\u4B79\u4B7A\u4B7B\u4B7C\u4B7D\u4B7E"+
+ "\u4B7F\u4B80\u4B81\u4B82\u4B83\u4B84\u4B85\u4B86"+
+ "\u4B87\u4B88\u4B89\u4B8A\u4B8B\u4B8C\u4B8D\u4B8E"+
+ "\u4B8F\u4B90\u4B91\u4B92\u4B93\u4B94\u4B95\u4B96"+
+ "\u4B97\u4B98\u4B99\u4B9A\u4B9B\u4B9C\u4B9D\u4B9E"+
+ "\u4B9F\u4BA0\u4BA1\u4BA2\u4BA3\u4BA4\u4BA5\u4BA6"+
+ "\u4BA7\u4BA8\u4BA9\u4BAA\u4BAB\u4BAC\u4BAD\u4BAE"+
+ "\u4BAF\u4BB0\u4BB1\u4BB2\u4BB3\u4BB4\u4BB5\u4BB6"+
+ "\u4BB7\u4BB8\u4BB9\u4BBA\u4BBB\u4BBC\u4BBD\u4BBE"+
+ "\u4BBF\u4BC0\u4BC1\u4BC2\u4BC3\u4BC4\u4BC5\u4BC6"+
+ "\u4BC7\u4BC8\u4BC9\u4BCA\u4BCB\u4BCC\u4BCD\u4BCE"+
+ "\u4BCF\u4BD0\u4BD1\u4BD2\u4BD3\u4BD4\u4BD5\u4BD6"+
+ "\u4BD7\u4BD8\u4BD9\u4BDA\u4BDB\u4BDC\u4BDD\u4BDE"+
+ "\u4BDF\u4BE0\u4BE1\u4BE2\u4BE3\u4BE4\u4BE5\u4BE6"+
+ "\u4BE7\u4BE8\u4BE9\u4BEA\u4BEB\u4BEC\u4BED\u4BEE"+
+ "\u4BEF\u4BF0\u4BF1\u4BF2\u4BF3\u4BF4\u4BF5\u4BF6"+
+ "\u4BF7\u4BF8\u4BF9\u4BFA\u4BFB\u4BFC\u4BFD\u4BFE"+
+ "\u4BFF\u4C00\u4C01\u4C02\u4C03\u4C04\u4C05\u4C06"+
+ "\u4C07\u4C08\u4C09\u4C0A\u4C0B\u4C0C\u4C0D\u4C0E"+
+ "\u4C0F\u4C10\u4C11\u4C12\u4C13\u4C14\u4C15\u4C16"+
+ "\u4C17\u4C18\u4C19\u4C1A\u4C1B\u4C1C\u4C1D\u4C1E"+
+ "\u4C1F\u4C20\u4C21\u4C22\u4C23\u4C24\u4C25\u4C26"+
+ "\u4C27\u4C28\u4C29\u4C2A\u4C2B\u4C2C\u4C2D\u4C2E"+
+ "\u4C2F\u4C30\u4C31\u4C32\u4C33\u4C34\u4C35\u4C36"+
+ "\u4C37\u4C38\u4C39\u4C3A\u4C3B\u4C3C\u4C3D\u4C3E"+
+ "\u4C3F\u4C40\u4C41\u4C42\u4C43\u4C44\u4C45\u4C46"+
+ "\u4C47\u4C48\u4C49\u4C4A\u4C4B\u4C4C\u4C4D\u4C4E"+
+ "\u4C4F\u4C50\u4C51\u4C52\u4C53\u4C54\u4C55\u4C56"+
+ "\u4C57\u4C58\u4C59\u4C5A\u4C5B\u4C5C\u4C5D\u4C5E"+
+ "\u4C5F\u4C60\u4C61\u4C62\u4C63\u4C64\u4C65\u4C66"+
+ "\u4C67\u4C68\u4C69\u4C6A\u4C6B\u4C6C\u4C6D\u4C6E"+
+ "\u4C6F\u4C70\u4C71\u4C72\u4C73\u4C74\u4C75\u4C76"+
+ "\u4C78\u4C79\u4C7A\u4C7B\u4C7C\u4C7D\u4C7E\u4C7F"+
+ "\u4C80\u4C81\u4C82\u4C83\u4C84\u4C85\u4C86\u4C87"+
+ "\u4C88\u4C89\u4C8A\u4C8B\u4C8C\u4C8D\u4C8E\u4C8F"+
+ "\u4C90\u4C91\u4C92\u4C93\u4C94\u4C95\u4C96\u4C97"+
+ "\u4C98\u4C99\u4C9A\u4C9B\u4C9C\u4C9D\u4C9E\u4CA4"+
+ "\u4CA5\u4CA6\u4CA7\u4CA8\u4CA9\u4CAA\u4CAB\u4CAC"+
+ "\u4CAD\u4CAE\u4CAF\u4CB0\u4CB1\u4CB2\u4CB3\u4CB4"+
+ "\u4CB5\u4CB6\u4CB7\u4CB8\u4CB9\u4CBA\u4CBB\u4CBC"+
+ "\u4CBD\u4CBE\u4CBF\u4CC0\u4CC1\u4CC2\u4CC3\u4CC4"+
+ "\u4CC5\u4CC6\u4CC7\u4CC8\u4CC9\u4CCA\u4CCB\u4CCC"+
+ "\u4CCD\u4CCE\u4CCF\u4CD0\u4CD1\u4CD2\u4CD3\u4CD4"+
+ "\u4CD5\u4CD6\u4CD7\u4CD8\u4CD9\u4CDA\u4CDB\u4CDC"+
+ "\u4CDD\u4CDE\u4CDF\u4CE0\u4CE1\u4CE2\u4CE3\u4CE4"+
+ "\u4CE5\u4CE6\u4CE7\u4CE8\u4CE9\u4CEA\u4CEB\u4CEC"+
+ "\u4CED\u4CEE\u4CEF\u4CF0\u4CF1\u4CF2\u4CF3\u4CF4"+
+ "\u4CF5\u4CF6\u4CF7\u4CF8\u4CF9\u4CFA\u4CFB\u4CFC"+
+ "\u4CFD\u4CFE\u4CFF\u4D00\u4D01\u4D02\u4D03\u4D04"+
+ "\u4D05\u4D06\u4D07\u4D08\u4D09\u4D0A\u4D0B\u4D0C"+
+ "\u4D0D\u4D0E\u4D0F\u4D10\u4D11\u4D12\u4D1A\u4D1B"+
+ "\u4D1C\u4D1D\u4D1E\u4D1F\u4D20\u4D21\u4D22\u4D23"+
+ "\u4D24\u4D25\u4D26\u4D27\u4D28\u4D29\u4D2A\u4D2B"+
+ "\u4D2C\u4D2D\u4D2E\u4D2F\u4D30\u4D31\u4D32\u4D33"+
+ "\u4D34\u4D35\u4D36\u4D37\u4D38\u4D39\u4D3A\u4D3B"+
+ "\u4D3C\u4D3D\u4D3E\u4D3F\u4D40\u4D41\u4D42\u4D43"+
+ "\u4D44\u4D45\u4D46\u4D47\u4D48\u4D49\u4D4A\u4D4B"+
+ "\u4D4C\u4D4D\u4D4E\u4D4F\u4D50\u4D51\u4D52\u4D53"+
+ "\u4D54\u4D55\u4D56\u4D57\u4D58\u4D59\u4D5A\u4D5B"+
+ "\u4D5C\u4D5D\u4D5E\u4D5F\u4D60\u4D61\u4D62\u4D63"+
+ "\u4D64\u4D65\u4D66\u4D67\u4D68\u4D69\u4D6A\u4D6B"+
+ "\u4D6C\u4D6D\u4D6E\u4D6F\u4D70\u4D71\u4D72\u4D73"+
+ "\u4D74\u4D75\u4D76\u4D77\u4D78\u4D79\u4D7A\u4D7B"+
+ "\u4D7C\u4D7D\u4D7E\u4D7F\u4D80\u4D81\u4D82\u4D83"+
+ "\u4D84\u4D85\u4D86\u4D87\u4D88\u4D89\u4D8A\u4D8B"+
+ "\u4D8C\u4D8D\u4D8E\u4D8F\u4D90\u4D91\u4D92\u4D93"+
+ "\u4D94\u4D95\u4D96\u4D97\u4D98\u4D99\u4D9A\u4D9B"+
+ "\u4D9C\u4D9D\u4D9E\u4D9F\u4DA0\u4DA1\u4DA2\u4DA3"+
+ "\u4DA4\u4DA5\u4DA6\u4DA7\u4DA8\u4DA9\u4DAA\u4DAB"+
+ "\u4DAC\u4DAD\u4DAF\u4DB0\u4DB1\u4DB2\u4DB3\u4DB4"+
+ "\u4DB5\u4DB6\u4DB7\u4DB8\u4DB9\u4DBA\u4DBB\u4DBC"+
+ "\u4DBD\u4DBE\u4DBF\u4DC0\u4DC1\u4DC2\u4DC3\u4DC4"+
+ "\u4DC5\u4DC6\u4DC7\u4DC8\u4DC9\u4DCA\u4DCB\u4DCC"+
+ "\u4DCD\u4DCE\u4DCF\u4DD0\u4DD1\u4DD2\u4DD3\u4DD4"+
+ "\u4DD5\u4DD6\u4DD7\u4DD8\u4DD9\u4DDA\u4DDB\u4DDC"+
+ "\u4DDD\u4DDE\u4DDF\u4DE0\u4DE1\u4DE2\u4DE3\u4DE4"+
+ "\u4DE5\u4DE6\u4DE7\u4DE8\u4DE9\u4DEA\u4DEB\u4DEC"+
+ "\u4DED\u4DEE\u4DEF\u4DF0\u4DF1\u4DF2\u4DF3\u4DF4"+
+ "\u4DF5\u4DF6\u4DF7\u4DF8\u4DF9\u4DFA\u4DFB\u4DFC"+
+ "\u4DFD\u4DFE\u4DFF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uE76C\uE7C8\uE7E7"+
+ "\uE7E8\uE7E9\uE7EA\uE7EB\uE7EC\uE7ED\uE7EE\uE7EF"+
+ "\uE7F0\uE7F1\uE7F2\uE7F3\uE815\uE819\uE81A\uE81B"+
+ "\uE81C\uE81D\uE81F\uE820\uE821\uE822\uE823\uE824"+
+ "\uE825\uE827\uE828\uE829\uE82A\uE82D\uE82E\uE82F"+
+ "\uE830\uE833\uE834\uE835\uE836\uE837\uE838\uE839"+
+ "\uE83A\uE83C\uE83D\uE83E\uE83F\uE840\uE841\uE842"+
+ "\uE844\uE845\uE846\uE847\uE848\uE849\uE84A\uE84B"+
+ "\uE84C\uE84D\uE84E\uE84F\uE850\uE851\uE852\uE853"+
+ "\uE856\uE857\uE858\uE859\uE85A\uE85B\uE85C\uE85D"+
+ "\uE85E\uE85F\uE860\uE861\uE862\uE863\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uF900\uF901\uF902\uF903\uF904\uF905\uF906"+
+ "\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E"+
+ "\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916"+
+ "\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E"+
+ "\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926"+
+ "\uF927\uF928\uF929\uF92A\uF92B\uF92D\uF92E\uF92F"+
+ "\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937"+
+ "\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F"+
+ "\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947"+
+ "\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F"+
+ "\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957"+
+ "\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F"+
+ "\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967"+
+ "\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F"+
+ "\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977"+
+ "\uF978\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980"+
+ "\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988"+
+ "\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990"+
+ "\uF991\uF992\uF993\uF994\uF996\uF997\uF998\uF999"+
+ "\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1"+
+ "\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9"+
+ "\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1"+
+ "\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9"+
+ "\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1"+
+ "\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9"+
+ "\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1"+
+ "\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9"+
+ "\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1"+
+ "\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E8\uF9E9\uF9EA"+
+ "\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F2\uF9F3"+
+ "\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB"+
+ "\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03"+
+ "\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B"+
+ "\uFA10\uFA12\uFA15\uFA16\uFA17\uFA19\uFA1A\uFA1B"+
+ "\uFA1C\uFA1D\uFA1E\uFA22\uFA25\uFA26\uFA2A\uFA2B"+
+ "\uFA2C\uFA2D\uFA2E\uFA2F\uFA30\uFA31\uFA32\uFA33"+
+ "\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B"+
+ "\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43"+
+ "\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B"+
+ "\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53"+
+ "\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B"+
+ "\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63"+
+ "\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA6B"+
+ "\uFA6C\uFA6D\uFA6E\uFA6F\uFA70\uFA71\uFA72\uFA73"+
+ "\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B"+
+ "\uFA7C\uFA7D\uFA7E\uFA7F\uFA80\uFA81\uFA82\uFA83"+
+ "\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B"+
+ "\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93"+
+ "\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B"+
+ "\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3"+
+ "\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB"+
+ "\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3"+
+ "\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB"+
+ "\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3"+
+ "\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB"+
+ "\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3"+
+ "\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFADA\uFADB"+
+ "\uFADC\uFADD\uFADE\uFADF\uFAE0\uFAE1\uFAE2\uFAE3"+
+ "\uFAE4\uFAE5\uFAE6\uFAE7\uFAE8\uFAE9\uFAEA\uFAEB"+
+ "\uFAEC\uFAED\uFAEE\uFAEF\uFAF0\uFAF1\uFAF2\uFAF3"+
+ "\uFAF4\uFAF5\uFAF6\uFAF7\uFAF8\uFAF9\uFAFA\uFAFB"+
+ "\uFAFC\uFAFD\uFAFE\uFAFF\uFB00\uFB01\uFB02\uFB03"+
+ "\uFB04\uFB05\uFB06\uFB07\uFB08\uFB09\uFB0A\uFB0B"+
+ "\uFB0C\uFB0D\uFB0E\uFB0F\uFB10\uFB11\uFB12\uFB13"+
+ "\uFB14\uFB15\uFB16\uFB17\uFB18\uFB19\uFB1A\uFB1B"+
+ "\uFB1C\uFB1D\uFB1E\uFB1F\uFB20\uFB21\uFB22\uFB23"+
+ "\uFB24\uFB25\uFB26\uFB27\uFB28\uFB29\uFB2A\uFB2B"+
+ "\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33"+
+ "\uFB34\uFB35\uFB36\uFB37\uFB38\uFB39\uFB3A\uFB3B"+
+ "\uFB3C\uFB3D\uFB3E\uFB3F\uFB40\uFB41\uFB42\uFB43"+
+ "\uFB44\uFB45\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B"+
+ "\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53"+
+ "\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B"+
+ "\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63"+
+ "\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B";
+
+ private final static String innerDecoderIndex5=
+ "\uFB6C\uFB6D\uFB6E\uFB6F\uFB70\uFB71\uFB72\uFB73"+
+ "\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B"+
+ "\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83"+
+ "\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B"+
+ "\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93"+
+ "\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B"+
+ "\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3"+
+ "\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB"+
+ "\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBB2\uFBB3"+
+ "\uFBB4\uFBB5\uFBB6\uFBB7\uFBB8\uFBB9\uFBBA\uFBBB"+
+ "\uFBBC\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2\uFBC3"+
+ "\uFBC4\uFBC5\uFBC6\uFBC7\uFBC8\uFBC9\uFBCA\uFBCB"+
+ "\uFBCC\uFBCD\uFBCE\uFBCF\uFBD0\uFBD1\uFBD2\uFBD3"+
+ "\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB"+
+ "\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3"+
+ "\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB"+
+ "\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3"+
+ "\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB"+
+ "\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03"+
+ "\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B"+
+ "\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13"+
+ "\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B"+
+ "\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23"+
+ "\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B"+
+ "\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33"+
+ "\uFC34\uFC35\uFC36\uFC37\uFC38\uFC39\uFC3A\uFC3B"+
+ "\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43"+
+ "\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B"+
+ "\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53"+
+ "\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B"+
+ "\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63"+
+ "\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B"+
+ "\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73"+
+ "\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B"+
+ "\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83"+
+ "\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B"+
+ "\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93"+
+ "\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B"+
+ "\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3"+
+ "\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB"+
+ "\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3"+
+ "\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB"+
+ "\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3"+
+ "\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB"+
+ "\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3"+
+ "\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB"+
+ "\uFCDC\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3"+
+ "\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB"+
+ "\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3"+
+ "\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB"+
+ "\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03"+
+ "\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B"+
+ "\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13"+
+ "\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B"+
+ "\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23"+
+ "\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B"+
+ "\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33"+
+ "\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B"+
+ "\uFD3C\uFD3D\uFD3E\uFD3F\uFD40\uFD41\uFD42\uFD43"+
+ "\uFD44\uFD45\uFD46\uFD47\uFD48\uFD49\uFD4A\uFD4B"+
+ "\uFD4C\uFD4D\uFD4E\uFD4F\uFD50\uFD51\uFD52\uFD53"+
+ "\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B"+
+ "\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63"+
+ "\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B"+
+ "\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73"+
+ "\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B"+
+ "\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83"+
+ "\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B"+
+ "\uFD8C\uFD8D\uFD8E\uFD8F\uFD90\uFD91\uFD92\uFD93"+
+ "\uFD94\uFD95\uFD96\uFD97\uFD98\uFD99\uFD9A\uFD9B"+
+ "\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3"+
+ "\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB"+
+ "\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3"+
+ "\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB"+
+ "\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3"+
+ "\uFDC4\uFDC5\uFDC6\uFDC7\uFDC8\uFDC9\uFDCA\uFDCB"+
+ "\uFDCC\uFDCD\uFDCE\uFDCF\uFDD0\uFDD1\uFDD2\uFDD3"+
+ "\uFDD4\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA\uFDDB"+
+ "\uFDDC\uFDDD\uFDDE\uFDDF\uFDE0\uFDE1\uFDE2\uFDE3"+
+ "\uFDE4\uFDE5\uFDE6\uFDE7\uFDE8\uFDE9\uFDEA\uFDEB"+
+ "\uFDEC\uFDED\uFDEE\uFDEF\uFDF0\uFDF1\uFDF2\uFDF3"+
+ "\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB"+
+ "\uFDFC\uFDFD\uFDFE\uFDFF\uFE00\uFE01\uFE02\uFE03"+
+ "\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B"+
+ "\uFE0C\uFE0D\uFE0E\uFE0F\uFE10\uFE11\uFE12\uFE13"+
+ "\uFE14\uFE15\uFE16\uFE17\uFE18\uFE19\uFE1A\uFE1B"+
+ "\uFE1C\uFE1D\uFE1E\uFE1F\uFE20\uFE21\uFE22\uFE23"+
+ "\uFE24\uFE25\uFE26\uFE27\uFE28\uFE29\uFE2A\uFE2B"+
+ "\uFE2C\uFE2D\uFE2E\uFE2F\uFE32\uFE45\uFE46\uFE47"+
+ "\uFE48\uFE53\uFE58\uFE67\uFE6C\uFE6D\uFE6E\uFE6F"+
+ "\uFE70\uFE71\uFE72\uFE73\uFE74\uFE75\uFE76\uFE77"+
+ "\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F"+
+ "\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87"+
+ "\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F"+
+ "\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97"+
+ "\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F"+
+ "\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7"+
+ "\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF"+
+ "\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7"+
+ "\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF"+
+ "\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7"+
+ "\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF"+
+ "\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7"+
+ "\uFED8\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF"+
+ "\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7"+
+ "\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF"+
+ "\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7"+
+ "\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFEFD\uFEFE\uFEFF"+
+ "\uFF00\uFF5F\uFF60\uFF61\uFF62\uFF63\uFF64\uFF65"+
+ "\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D"+
+ "\uFF6E\uFF6F\uFF70\uFF71\uFF72\uFF73\uFF74\uFF75"+
+ "\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D"+
+ "\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85"+
+ "\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D"+
+ "\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95"+
+ "\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D"+
+ "\uFF9E\uFF9F\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5"+
+ "\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD"+
+ "\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5"+
+ "\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD"+
+ "\uFFBE\uFFBF\uFFC0\uFFC1\uFFC2\uFFC3\uFFC4\uFFC5"+
+ "\uFFC6\uFFC7\uFFC8\uFFC9\uFFCA\uFFCB\uFFCC\uFFCD"+
+ "\uFFCE\uFFCF\uFFD0\uFFD1\uFFD2\uFFD3\uFFD4\uFFD5"+
+ "\uFFD6\uFFD7\uFFD8\uFFD9\uFFDA\uFFDB\uFFDC\uFFDD"+
+ "\uFFDE\uFFDF\uFFE6\uFFE7\uFFE8\uFFE9\uFFEA\uFFEB"+
+ "\uFFEC\uFFED\uFFEE\uFFEF\uFFF0\uFFF1\uFFF2\uFFF3"+
+ "\uFFF4\uFFF5\uFFF6\uFFF7\uFFF8\uFFF9\uFFFA\uFFFB"+
+ "\uFFFC\uFFFD\uFFFE\uFFFF\uFFFD\uFFFD\uFFFD\uFFFD";
+
+ private final static short decoderIndex1[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 77, 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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 String decoderIndex2[] = {
+ innerDecoderIndex0,
+ innerDecoderIndex1,
+ innerDecoderIndex2,
+ innerDecoderIndex3,
+ innerDecoderIndex4,
+ innerDecoderIndex5
+ };
+
+/*
+ *
+ */
+ private final static String innerIndex0=
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u4E02"+
+ "\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20"+
+ "\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33"+
+ "\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46"+
+ "\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63"+
+ "\u4E64\u4E65\u4E67\u4E68\u4E6A\u4E6B\u4E6C\u4E6D"+
+ "\u4E6E\u4E6F\u4E72\u4E74\u4E75\u4E76\u4E77\u4E78"+
+ "\u4E79\u4E7A\u4E7B\u4E7C\u4E7D\u4E7F\u4E80\u4E81"+
+ "\u4E82\u4E83\u4E84\u4E85\u4E87\u4E8A\uFFFD\u4E90"+
+ "\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA"+
+ "\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9"+
+ "\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2"+
+ "\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9"+
+ "\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA"+
+ "\u4EFC\u4EFE\u4F00\u4F02\u4F03\u4F04\u4F05\u4F06"+
+ "\u4F07\u4F08\u4F0B\u4F0C\u4F12\u4F13\u4F14\u4F15"+
+ "\u4F16\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C"+
+ "\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B"+
+ "\u4F3E\u4F3F\u4F40\u4F41\u4F42\u4F44\u4F45\u4F47"+
+ "\u4F48\u4F49\u4F4A\u4F4B\u4F4C\u4F52\u4F54\u4F56"+
+ "\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E"+
+ "\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D"+
+ "\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C"+
+ "\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99"+
+ "\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2\u4FA4\u4FAB"+
+ "\u4FAD\u4FB0\u4FB1\u4FB2\u4FB3\u4FB4\u4FB6\u4FB7"+
+ "\u4FB8\u4FB9\u4FBA\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0"+
+ "\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC"+
+ "\u4FCD\u4FD2\u4FD3\u4FD4\u4FD5\u4FD6\u4FD9\u4FDB"+
+ "\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0"+
+ "\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC"+
+ "\u4FFD\u4FFF\u5000\u5001\u5002\u5003\u5004\u5005"+
+ "\u5006\u5007\u5008\u5009\u500A\uFFFD\u500B\u500E"+
+ "\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D"+
+ "\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F"+
+ "\u5030\u5031\u5032\u5033\u5034\u5035\u5036\u5037"+
+ "\u5038\u5039\u503B\u503D\u503F\u5040\u5041\u5042"+
+ "\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050"+
+ "\u5051\u5052\u5053\u5054\u5056\u5057\u5058\u5059"+
+ "\u505B\u505D\u505E\u505F\u5060\u5061\u5062\u5063"+
+ "\u5064\u5066\u5067\u5068\u5069\u506A\u506B\u506D"+
+ "\u506E\u506F\u5070\u5071\u5072\u5073\u5074\u5075"+
+ "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083"+
+ "\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E"+
+ "\u508F\u5090\u5091\u5092\u5093\u5094\u5095\u5096"+
+ "\u5097\u5098\u5099\u509A\u509B\u509C\u509D\u509E"+
+ "\u509F\u50A0\u50A1\u50A2\u50A4\u50A6\u50AA\u50AB"+
+ "\u50AD\u50AE\u50AF\u50B0\u50B1\u50B3\u50B4\u50B5"+
+ "\u50B6\u50B7\u50B8\u50B9\u50BC\u50BD\u50BE\u50BF"+
+ "\u50C0\u50C1\u50C2\u50C3\u50C4\u50C5\u50C6\u50C7"+
+ "\u50C8\u50C9\u50CA\u50CB\u50CC\u50CD\u50CE\u50D0"+
+ "\u50D1\u50D2\u50D3\u50D4\u50D5\u50D7\u50D8\u50D9"+
+ "\u50DB\u50DC\u50DD\u50DE\u50DF\u50E0\u50E1\u50E2"+
+ "\u50E3\u50E4\u50E5\u50E8\u50E9\u50EA\u50EB\u50EF"+
+ "\u50F0\u50F1\u50F2\u50F4\u50F6\u50F7\u50F8\u50F9"+
+ "\u50FA\u50FC\u50FD\u50FE\u50FF\u5100\u5101\u5102"+
+ "\u5103\u5104\u5105\u5108\uFFFD\u5109\u510A\u510C"+
+ "\u510D\u510E\u510F\u5110\u5111\u5113\u5114\u5115"+
+ "\u5116\u5117\u5118\u5119\u511A\u511B\u511C\u511D"+
+ "\u511E\u511F\u5120\u5122\u5123\u5124\u5125\u5126"+
+ "\u5127\u5128\u5129\u512A\u512B\u512C\u512D\u512E"+
+ "\u512F\u5130\u5131\u5132\u5133\u5134\u5135\u5136"+
+ "\u5137\u5138\u5139\u513A\u513B\u513C\u513D\u513E"+
+ "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152"+
+ "\u5153\u5157\u5158\u5159\u515B\u515D\u515E\u515F"+
+ "\u5160\u5161\u5163\u5164\u5166\u5167\u5169\u516A"+
+ "\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186"+
+ "\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193"+
+ "\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3"+
+ "\u51A6\u51A7\u51A8\u51A9\u51AA\u51AD\u51AE\u51B4"+
+ "\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3"+
+ "\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2\u51D3"+
+ "\u51D4\u51D5\u51D6\u51D7\u51D8\u51D9\u51DA\u51DC"+
+ "\u51DE\u51DF\u51E2\u51E3\u51E5\u51E6\u51E7\u51E8"+
+ "\u51E9\u51EA\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7"+
+ "\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210"+
+ "\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222"+
+ "\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231"+
+ "\u5232\u5234\u5235\u523C\u523E\u5244\u5245\u5246"+
+ "\u5247\u5248\u5249\u524B\u524E\u524F\u5252\u5253"+
+ "\u5255\u5257\u5258\uFFFD\u5259\u525A\u525B\u525D"+
+ "\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B"+
+ "\u526C\u526D\u526E\u5270\u5271\u5273\u5274\u5275"+
+ "\u5276\u5277\u5278\u5279\u527A\u527B\u527C\u527E"+
+ "\u5280\u5283\u5284\u5285\u5286\u5287\u5289\u528A"+
+ "\u528B\u528C\u528D\u528E\u528F\u5291\u5292\u5294"+
+ "\u5295\u5296\u5297\u5298\u5299\u529A\u529C\u52A4"+
+ "\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4\u52B5"+
+ "\u52B6\u52B7\u52B8\u52B9\u52BA\u52BB\u52BC\u52BD"+
+ "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA"+
+ "\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5"+
+ "\u52D7\u52D9\u52DA\u52DB\u52DC\u52DD\u52DE\u52E0"+
+ "\u52E1\u52E2\u52E3\u52E5\u52E6\u52E7\u52E8\u52E9"+
+ "\u52EA\u52EB\u52EC\u52ED\u52EE\u52EF\u52F1\u52F2"+
+ "\u52F3\u52F4\u52F5\u52F6\u52F7\u52F8\u52FB\u52FC"+
+ "\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A"+
+ "\u530B\u530C\u530E\u5311\u5312\u5313\u5314\u5318"+
+ "\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327"+
+ "\u5328\u5329\u532B\u532C\u532D\u532F\u5330\u5331"+
+ "\u5332\u5333\u5334\u5335\u5336\u5337\u5338\u533C"+
+ "\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D"+
+ "\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368"+
+ "\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C"+
+ "\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A"+
+ "\u538E\u538F\uFFFD\u5390\u5391\u5392\u5393\u5394"+
+ "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1"+
+ "\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF\u53B0"+
+ "\u53B1\u53B2\u53B3\u53B4\u53B5\u53B7\u53B8\u53B9"+
+ "\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3\u53C4\u53C5"+
+ "\u53C6\u53C7\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5"+
+ "\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4"+
+ "\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B"+
+ "\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425"+
+ "\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F"+
+ "\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D"+
+ "\u544E\u544F\u5451\u545A\u545D\u545E\u545F\u5460"+
+ "\u5461\u5463\u5465\u5467\u5469\u546A\u546B\u546C"+
+ "\u546D\u546E\u546F\u5470\u5474\u5479\u547A\u547E"+
+ "\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A"+
+ "\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F"+
+ "\u54A0\u54A1\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5"+
+ "\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5"+
+ "\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0\u54E1\u54E2"+
+ "\u54E3\u54E4\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4"+
+ "\u54F5\u54F6\u54F7\u54F8\u54F9\u54FB\u54FE\u5500"+
+ "\u5502\u5503\u5504\u5505\u5508\u550A\u550B\u550C"+
+ "\u550D\u550E\u5512\u5513\u5515\u5516\u5517\u5518"+
+ "\u5519\u551A\u551C\u551D\u551E\u551F\u5521\u5525"+
+ "\u5526\uFFFD\u5528\u5529\u552B\u552D\u5532\u5534"+
+ "\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540"+
+ "\u5542\u5545\u5547\u5548\u554B\u554C\u554D\u554E"+
+ "\u554F\u5551\u5552\u5553\u5554\u5557\u5558\u5559"+
+ "\u555A\u555B\u555D\u555E\u555F\u5560\u5562\u5563"+
+ "\u5568\u5569\u556B\u556F\u5570\u5571\u5572\u5573"+
+ "\u5574\u5579\u557A\u557D\u557F\u5585\u5586\u558C"+
+ "\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597"+
+ "\u559A\u559B\u559E\u55A0\u55A1\u55A2\u55A3\u55A4"+
+ "\u55A5\u55A6\u55A8\u55A9\u55AA\u55AB\u55AC\u55AD"+
+ "\u55AE\u55AF\u55B0\u55B2\u55B4\u55B6\u55B8\u55BA"+
+ "\u55BC\u55BF\u55C0\u55C1\u55C2\u55C3\u55C6\u55C7"+
+ "\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7"+
+ "\u55D8\u55D9\u55DA\u55DB\u55DE\u55E0\u55E2\u55E7"+
+ "\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8"+
+ "\u55F9\u55FA\u55FB\u55FC\u55FF\u5602\u5603\u5604"+
+ "\u5605\u5606\u5607\u560A\u560B\u560D\u5610\u5611"+
+ "\u5612\u5613\u5614\u5615\u5616\u5617\u5619\u561A"+
+ "\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628"+
+ "\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635"+
+ "\u5637\u5638\u563A\u563C\u563D\u563E\u5640\u5641"+
+ "\u5642\u5643\u5644\u5645\u5646\u5647\u5648\u5649"+
+ "\u564A\u564B\u564F\u5650\u5651\u5652\u5653\u5655"+
+ "\u5656\u565A\u565B\u565D\u565E\u565F\u5660\u5661"+
+ "\uFFFD\u5663\u5665\u5666\u5667\u566D\u566E\u566F"+
+ "\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679"+
+ "\u567A\u567D\u567E\u567F\u5680\u5681\u5682\u5683"+
+ "\u5684\u5687\u5688\u5689\u568A\u568B\u568C\u568D"+
+ "\u5690\u5691\u5692\u5694\u5695\u5696\u5697\u5698"+
+ "\u5699\u569A\u569B\u569C\u569D\u569E\u569F\u56A0"+
+ "\u56A1\u56A2\u56A4\u56A5\u56A6\u56A7\u56A8\u56A9"+
+ "\u56AA\u56AB\u56AC\u56AD\u56AE\u56B0\u56B1\u56B2"+
+ "\u56B3\u56B4\u56B5\u56B6\u56B8\u56B9\u56BA\u56BB"+
+ "\u56BD\u56BE\u56BF\u56C0\u56C1\u56C2\u56C3\u56C4"+
+ "\u56C5\u56C6\u56C7\u56C8\u56C9\u56CB\u56CC\u56CD"+
+ "\u56CE\u56CF\u56D0\u56D1\u56D2\u56D3\u56D5\u56D6"+
+ "\u56D8\u56D9\u56DC\u56E3\u56E5\u56E6\u56E7\u56E8"+
+ "\u56E9\u56EA\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6"+
+ "\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705"+
+ "\u5707\u570B\u570C\u570D\u570E\u570F\u5710\u5711"+
+ "\u5712\u5713\u5714\u5715\u5716\u5717\u5718\u5719"+
+ "\u571A\u571B\u571D\u571E\u5720\u5721\u5722\u5724"+
+ "\u5725\u5726\u5727\u572B\u5731\u5732\u5734\u5735"+
+ "\u5736\u5737\u5738\u573C\u573D\u573F\u5741\u5743"+
+ "\u5744\u5745\u5746\u5748\u5749\u574B\u5752\u5753"+
+ "\u5754\u5755\u5756\u5758\u5759\u5762\u5763\u5765"+
+ "\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775"+
+ "\u5778\u5779\u577A\u577D\u577E\u577F\u5780\uFFFD"+
+ "\u5781\u5787\u5788\u5789\u578A\u578D\u578E\u578F"+
+ "\u5790\u5791\u5794\u5795\u5796\u5797\u5798\u5799"+
+ "\u579A\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA"+
+ "\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7"+
+ "\u57B9\u57BA\u57BB\u57BC\u57BD\u57BE\u57BF\u57C0"+
+ "\u57C1\u57C4\u57C5\u57C6\u57C7\u57C8\u57C9\u57CA"+
+ "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB"+
+ "\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5\u57E6\u57E7"+
+ "\u57E8\u57E9\u57EA\u57EB\u57EC\u57EE\u57F0\u57F1"+
+ "\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE"+
+ "\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A"+
+ "\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816"+
+ "\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822"+
+ "\u5823\u5825\u5826\u5827\u5828\u5829\u582B\u582C"+
+ "\u582D\u582E\u582F\u5831\u5832\u5833\u5834\u5836"+
+ "\u5837\u5838\u5839\u583A\u583B\u583C\u583D\u583E"+
+ "\u583F\u5840\u5841\u5842\u5843\u5845\u5846\u5847"+
+ "\u5848\u5849\u584A\u584B\u584E\u584F\u5850\u5852"+
+ "\u5853\u5855\u5856\u5857\u5859\u585A\u585B\u585C"+
+ "\u585D\u585F\u5860\u5861\u5862\u5863\u5864\u5866"+
+ "\u5867\u5868\u5869\u586A\u586D\u586E\u586F\u5870"+
+ "\u5871\u5872\u5873\u5874\u5875\u5876\u5877\u5878"+
+ "\u5879\u587A\u587B\u587C\u587D\u587F\u5882\u5884"+
+ "\u5886\u5887\u5888\u588A\u588B\u588C\uFFFD\u588D"+
+ "\u588E\u588F\u5890\u5891\u5894\u5895\u5896\u5897"+
+ "\u5898\u589B\u589C\u589D\u58A0\u58A1\u58A2\u58A3"+
+ "\u58A4\u58A5\u58A6\u58A7\u58AA\u58AB\u58AC\u58AD"+
+ "\u58AE\u58AF\u58B0\u58B1\u58B2\u58B3\u58B4\u58B5"+
+ "\u58B6\u58B7\u58B8\u58B9\u58BA\u58BB\u58BD\u58BE"+
+ "\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6\u58C7\u58C8"+
+ "\u58C9\u58CA\u58CB\u58CC\u58CD\u58CE\u58CF\u58D0"+
+ "\u58D2\u58D3\u58D4\u58D6\u58D7\u58D8\u58D9\u58DA"+
+ "\u58DB\u58DC\u58DD\u58DE\u58DF\u58E0\u58E1\u58E2"+
+ "\u58E3\u58E5\u58E6\u58E7\u58E8\u58E9\u58EA\u58ED"+
+ "\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA"+
+ "\u58FB\u58FC\u58FD\u58FE\u58FF\u5900\u5901\u5903"+
+ "\u5905\u5906\u5908\u5909\u590A\u590B\u590C\u590E"+
+ "\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D"+
+ "\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C"+
+ "\u5930\u5932\u5933\u5935\u5936\u593B\u593D\u593E"+
+ "\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D"+
+ "\u5950\u5952\u5953\u5959\u595B\u595C\u595D\u595E"+
+ "\u595F\u5961\u5963\u5964\u5966\u5967\u5968\u5969"+
+ "\u596A\u596B\u596C\u596D\u596E\u596F\u5970\u5971"+
+ "\u5972\u5975\u5977\u597A\u597B\u597C\u597E\u597F"+
+ "\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990"+
+ "\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D"+
+ "\u599F\u59A0\u59A1\u59A2\u59A6\uFFFD\u59A7\u59AC"+
+ "\u59AD\u59B0\u59B1\u59B3\u59B4\u59B5\u59B6\u59B7"+
+ "\u59B8\u59BA\u59BC\u59BD\u59BF\u59C0\u59C1\u59C2"+
+ "\u59C3\u59C4\u59C5\u59C7\u59C8\u59C9\u59CC\u59CD"+
+ "\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE\u59DF"+
+ "\u59E0\u59E1\u59E2\u59E4\u59E6\u59E7\u59E9\u59EA"+
+ "\u59EB\u59ED\u59EE\u59EF\u59F0\u59F1\u59F2\u59F3"+
+ "\u59F4\u59F5\u59F6\u59F7\u59F8\u59FA\u59FC\u59FD"+
+ "\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F"+
+ "\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A"+
+ "\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27"+
+ "\u5A28\u5A2A\u5A2B\u5A2C\u5A2D\u5A2E\u5A2F\u5A30"+
+ "\u5A33\u5A35\u5A37\u5A38\u5A39\u5A3A\u5A3B\u5A3D"+
+ "\u5A3E\u5A3F\u5A41\u5A42\u5A43\u5A44\u5A45\u5A47"+
+ "\u5A48\u5A4B\u5A4C\u5A4D\u5A4E\u5A4F\u5A50\u5A51"+
+ "\u5A52\u5A53\u5A54\u5A56\u5A57\u5A58\u5A59\u5A5B"+
+ "\u5A5C\u5A5D\u5A5E\u5A5F\u5A60\u5A61\u5A63\u5A64"+
+ "\u5A65\u5A66\u5A68\u5A69\u5A6B\u5A6C\u5A6D\u5A6E"+
+ "\u5A6F\u5A70\u5A71\u5A72\u5A73\u5A78\u5A79\u5A7B"+
+ "\u5A7C\u5A7D\u5A7E\u5A80\u5A81\u5A82\u5A83\u5A84"+
+ "\u5A85\u5A86\u5A87\u5A88\u5A89\u5A8A\u5A8B\u5A8C"+
+ "\u5A8D\u5A8E\u5A8F\u5A90\u5A91\u5A93\u5A94\u5A95"+
+ "\u5A96\u5A97\u5A98\u5A99\u5A9C\u5A9D\u5A9E\u5A9F"+
+ "\u5AA0\u5AA1\u5AA2\u5AA3\u5AA4\u5AA5\u5AA6\u5AA7"+
+ "\u5AA8\u5AA9\u5AAB\u5AAC\uFFFD\u5AAD\u5AAE\u5AAF"+
+ "\u5AB0\u5AB1\u5AB4\u5AB6\u5AB7\u5AB9\u5ABA\u5ABB"+
+ "\u5ABC\u5ABD\u5ABF\u5AC0\u5AC3\u5AC4\u5AC5\u5AC6"+
+ "\u5AC7\u5AC8\u5ACA\u5ACB\u5ACD\u5ACE\u5ACF\u5AD0"+
+ "\u5AD1\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD"+
+ "\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA"+
+ "\u5AEC\u5AED\u5AEE\u5AEF\u5AF0\u5AF2\u5AF3\u5AF4"+
+ "\u5AF5\u5AF6\u5AF7\u5AF8\u5AF9\u5AFA\u5AFB\u5AFC"+
+ "\u5AFD\u5AFE\u5AFF\u5B00\u5B01\u5B02\u5B03\u5B04"+
+ "\u5B05\u5B06\u5B07\u5B08\u5B0A\u5B0B\u5B0C\u5B0D"+
+ "\u5B0E\u5B0F\u5B10\u5B11\u5B12\u5B13\u5B14\u5B15"+
+ "\u5B18\u5B19\u5B1A\u5B1B\u5B1C\u5B1D\u5B1E\u5B1F"+
+ "\u5B20\u5B21\u5B22\u5B23\u5B24\u5B25\u5B26\u5B27"+
+ "\u5B28\u5B29\u5B2A\u5B2B\u5B2C\u5B2D\u5B2E\u5B2F"+
+ "\u5B30\u5B31\u5B33\u5B35\u5B36\u5B38\u5B39\u5B3A"+
+ "\u5B3B\u5B3C\u5B3D\u5B3E\u5B3F\u5B41\u5B42\u5B43"+
+ "\u5B44\u5B45\u5B46\u5B47\u5B48\u5B49\u5B4A\u5B4B"+
+ "\u5B4C\u5B4D\u5B4E\u5B4F\u5B52\u5B56\u5B5E\u5B60"+
+ "\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72"+
+ "\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E"+
+ "\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91"+
+ "\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC"+
+ "\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB"+
+ "\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB"+
+ "\u5BCD\u5BCE\u5BCF\uFFFD\u5BD1\u5BD4\u5BD5\u5BD6"+
+ "\u5BD7\u5BD8\u5BD9\u5BDA\u5BDB\u5BDC\u5BE0\u5BE2"+
+ "\u5BE3\u5BE6\u5BE7\u5BE9\u5BEA\u5BEB\u5BEC\u5BED"+
+ "\u5BEF\u5BF1\u5BF2\u5BF3\u5BF4\u5BF5\u5BF6\u5BF7"+
+ "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08"+
+ "\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17"+
+ "\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26"+
+ "\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30"+
+ "\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46"+
+ "\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57"+
+ "\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64"+
+ "\u5C67\u5C68\u5C69\u5C6A\u5C6B\u5C6C\u5C6D\u5C70"+
+ "\u5C72\u5C73\u5C74\u5C75\u5C76\u5C77\u5C78\u5C7B"+
+ "\u5C7C\u5C7D\u5C7E\u5C80\u5C83\u5C84\u5C85\u5C86"+
+ "\u5C87\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93"+
+ "\u5C95\u5C9D\u5C9E\u5C9F\u5CA0\u5CA1\u5CA4\u5CA5"+
+ "\u5CA6\u5CA7\u5CA8\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2"+
+ "\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0"+
+ "\u5CC2\u5CC3\u5CC5\u5CC6\u5CC7\u5CC8\u5CC9\u5CCA"+
+ "\u5CCC\u5CCD\u5CCE\u5CCF\u5CD0\u5CD1\u5CD3\u5CD4"+
+ "\u5CD5\u5CD6\u5CD7\u5CD8\u5CDA\u5CDB\u5CDC\u5CDD"+
+ "\u5CDE\u5CDF\u5CE0\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB"+
+ "\u5CEC\u5CEE\u5CEF\u5CF1\u5CF2\u5CF3\u5CF4\u5CF5"+
+ "\u5CF6\u5CF7\u5CF8\u5CF9\u5CFA\u5CFC\u5CFD\u5CFE"+
+ "\u5CFF\u5D00\uFFFD\u5D01\u5D04\u5D05\u5D08\u5D09"+
+ "\u5D0A\u5D0B\u5D0C\u5D0D\u5D0F\u5D10\u5D11\u5D12"+
+ "\u5D13\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D"+
+ "\u5D1F\u5D20\u5D21\u5D22\u5D23\u5D25\u5D28\u5D2A"+
+ "\u5D2B\u5D2C\u5D2F\u5D30\u5D31\u5D32\u5D33\u5D35"+
+ "\u5D36\u5D37\u5D38\u5D39\u5D3A\u5D3B\u5D3C\u5D3F"+
+ "\u5D40\u5D41\u5D42\u5D43\u5D44\u5D45\u5D46\u5D48"+
+ "\u5D49\u5D4D\u5D4E\u5D4F\u5D50\u5D51\u5D52\u5D53"+
+ "\u5D54\u5D55\u5D56\u5D57\u5D59\u5D5A\u5D5C\u5D5E"+
+ "\u5D5F\u5D60\u5D61\u5D62\u5D63\u5D64\u5D65\u5D66"+
+ "\u5D67\u5D68\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72"+
+ "\u5D73\u5D75\u5D76\u5D77\u5D78\u5D79\u5D7A\u5D7B"+
+ "\u5D7C\u5D7D\u5D7E\u5D7F\u5D80\u5D81\u5D83\u5D84"+
+ "\u5D85\u5D86\u5D87\u5D88\u5D89\u5D8A\u5D8B\u5D8C"+
+ "\u5D8D\u5D8E\u5D8F\u5D90\u5D91\u5D92\u5D93\u5D94"+
+ "\u5D95\u5D96\u5D97\u5D98\u5D9A\u5D9B\u5D9C\u5D9E"+
+ "\u5D9F\u5DA0\u5DA1\u5DA2\u5DA3\u5DA4\u5DA5\u5DA6"+
+ "\u5DA7\u5DA8\u5DA9\u5DAA\u5DAB\u5DAC\u5DAD\u5DAE"+
+ "\u5DAF\u5DB0\u5DB1\u5DB2\u5DB3\u5DB4\u5DB5\u5DB6"+
+ "\u5DB8\u5DB9\u5DBA\u5DBB\u5DBC\u5DBD\u5DBE\u5DBF"+
+ "\u5DC0\u5DC1\u5DC2\u5DC3\u5DC4\u5DC6\u5DC7\u5DC8"+
+ "\u5DC9\u5DCA\u5DCB\u5DCC\u5DCE\u5DCF\u5DD0\u5DD1"+
+ "\u5DD2\u5DD3\u5DD4\u5DD5\u5DD6\u5DD7\u5DD8\u5DD9"+
+ "\u5DDA\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC"+
+ "\u5DED\uFFFD\u5DF0\u5DF5\u5DF6\u5DF8\u5DF9\u5DFA"+
+ "\u5DFB\u5DFC\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A"+
+ "\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E\u5E1F"+
+ "\u5E20\u5E21\u5E22\u5E23\u5E24\u5E25\u5E28\u5E29"+
+ "\u5E2A\u5E2B\u5E2C\u5E2F\u5E30\u5E32\u5E33\u5E34"+
+ "\u5E35\u5E36\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41"+
+ "\u5E43\u5E46\u5E47\u5E48\u5E49\u5E4A\u5E4B\u5E4D"+
+ "\u5E4E\u5E4F\u5E50\u5E51\u5E52\u5E53\u5E56\u5E57"+
+ "\u5E58\u5E59\u5E5A\u5E5C\u5E5D\u5E5F\u5E60\u5E63"+
+ "\u5E64\u5E65\u5E66\u5E67\u5E68\u5E69\u5E6A\u5E6B"+
+ "\u5E6C\u5E6D\u5E6E\u5E6F\u5E70\u5E71\u5E75\u5E77"+
+ "\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89"+
+ "\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1"+
+ "\u5EA2\u5EA3\u5EA4\u5EA8\u5EA9\u5EAA\u5EAB\u5EAC"+
+ "\u5EAE\u5EAF\u5EB0\u5EB1\u5EB2\u5EB4\u5EBA\u5EBB"+
+ "\u5EBC\u5EBD\u5EBF\u5EC0\u5EC1\u5EC2\u5EC3\u5EC4"+
+ "\u5EC5\u5EC6\u5EC7\u5EC8\u5ECB\u5ECC\u5ECD\u5ECE"+
+ "\u5ECF\u5ED0\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA"+
+ "\u5EDC\u5EDD\u5EDE\u5EDF\u5EE0\u5EE1\u5EE2\u5EE3"+
+ "\u5EE4\u5EE5\u5EE6\u5EE7\u5EE9\u5EEB\u5EEC\u5EED"+
+ "\u5EEE\u5EEF\u5EF0\u5EF1\u5EF2\u5EF3\u5EF5\u5EF8"+
+ "\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09"+
+ "\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19"+
+ "\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"+
+ "\uFFFD\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32\u5F33"+
+ "\u5F34\u5F35\u5F36\u5F37\u5F38\u5F3B\u5F3D\u5F3E"+
+ "\u5F3F\u5F41\u5F42\u5F43\u5F44\u5F45\u5F46\u5F47"+
+ "\u5F48\u5F49\u5F4A\u5F4B\u5F4C\u5F4D\u5F4E\u5F4F"+
+ "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F"+
+ "\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F"+
+ "\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E"+
+ "\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93"+
+ "\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0"+
+ "\u5FA2\u5FA3\u5FA4\u5FA5\u5FA6\u5FA7\u5FA9\u5FAB"+
+ "\u5FAC\u5FAF\u5FB0\u5FB1\u5FB2\u5FB3\u5FB4\u5FB6"+
+ "\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE\u5FBF\u5FC0\u5FC1"+
+ "\u5FC2\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4"+
+ "\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3"+
+ "\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2"+
+ "\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007";
+
+ private final static String innerIndex1=
+ "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017"+
+ "\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C"+
+ "\u602D\u602E\u6030\u6031\u6032\u6033\u6034\u6036"+
+ "\u6037\u6038\u6039\u603A\u603D\u603E\u6040\u6044"+
+ "\u6045\u6046\u6047\u6048\u6049\u604A\u604C\u604E"+
+ "\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B"+
+ "\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E"+
+ "\u6071\u6072\u6074\u6075\u6077\u607E\u6080\uFFFD"+
+ "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B"+
+ "\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098"+
+ "\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7"+
+ "\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7"+
+ "\u60B9\u60BA\u60BD\u60BE\u60BF\u60C0\u60C1\u60C2"+
+ "\u60C3\u60C4\u60C7\u60C8\u60C9\u60CC\u60CD\u60CE"+
+ "\u60CF\u60D0\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9"+
+ "\u60DB\u60DE\u60E1\u60E2\u60E3\u60E4\u60E5\u60EA"+
+ "\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB\u60FC\u60FD"+
+ "\u60FE\u60FF\u6102\u6103\u6104\u6105\u6107\u610A"+
+ "\u610B\u610C\u6110\u6111\u6112\u6113\u6114\u6116"+
+ "\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121"+
+ "\u6122\u6125\u6128\u6129\u612A\u612C\u612D\u612E"+
+ "\u612F\u6130\u6131\u6132\u6133\u6134\u6135\u6136"+
+ "\u6137\u6138\u6139\u613A\u613B\u613C\u613D\u613E"+
+ "\u6140\u6141\u6142\u6143\u6144\u6145\u6146\u6147"+
+ "\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154"+
+ "\u6156\u6157\u6158\u6159\u615A\u615B\u615C\u615E"+
+ "\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169"+
+ "\u616A\u616B\u616C\u616D\u616E\u616F\u6171\u6172"+
+ "\u6173\u6174\u6176\u6178\u6179\u617A\u617B\u617C"+
+ "\u617D\u617E\u617F\u6180\u6181\u6182\u6183\u6184"+
+ "\u6185\u6186\u6187\u6188\u6189\u618A\u618C\u618D"+
+ "\u618F\u6190\u6191\u6192\u6193\u6195\uFFFD\u6196"+
+ "\u6197\u6198\u6199\u619A\u619B\u619C\u619E\u619F"+
+ "\u61A0\u61A1\u61A2\u61A3\u61A4\u61A5\u61A6\u61AA"+
+ "\u61AB\u61AD\u61AE\u61AF\u61B0\u61B1\u61B2\u61B3"+
+ "\u61B4\u61B5\u61B6\u61B8\u61B9\u61BA\u61BB\u61BC"+
+ "\u61BD\u61BF\u61C0\u61C1\u61C3\u61C4\u61C5\u61C6"+
+ "\u61C7\u61C9\u61CC\u61CD\u61CE\u61CF\u61D0\u61D3"+
+ "\u61D5\u61D6\u61D7\u61D8\u61D9\u61DA\u61DB\u61DC"+
+ "\u61DD\u61DE\u61DF\u61E0\u61E1\u61E2\u61E3\u61E4"+
+ "\u61E5\u61E7\u61E8\u61E9\u61EA\u61EB\u61EC\u61ED"+
+ "\u61EE\u61EF\u61F0\u61F1\u61F2\u61F3\u61F4\u61F6"+
+ "\u61F7\u61F8\u61F9\u61FA\u61FB\u61FC\u61FD\u61FE"+
+ "\u6200\u6201\u6202\u6203\u6204\u6205\u6207\u6209"+
+ "\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223"+
+ "\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230"+
+ "\u6231\u6232\u6235\u6236\u6238\u6239\u623A\u623B"+
+ "\u623C\u6242\u6244\u6245\u6246\u624A\u624F\u6250"+
+ "\u6255\u6256\u6257\u6259\u625A\u625C\u625D\u625E"+
+ "\u625F\u6260\u6261\u6262\u6264\u6265\u6268\u6271"+
+ "\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D"+
+ "\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B"+
+ "\u628C\u628D\u628E\u628F\u6290\u6294\u6299\u629C"+
+ "\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD"+
+ "\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7"+
+ "\u62B8\u62BA\u62BE\u62C0\u62C1\uFFFD\u62C3\u62CB"+
+ "\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4"+
+ "\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA"+
+ "\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B"+
+ "\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315"+
+ "\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C"+
+ "\u632D\u632E\u6330\u6331\u6333\u6334\u6335\u6336"+
+ "\u6337\u6338\u633B\u633C\u633E\u633F\u6340\u6341"+
+ "\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354"+
+ "\u6356\u6357\u6358\u6359\u635A\u635B\u635C\u635D"+
+ "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C"+
+ "\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379"+
+ "\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385"+
+ "\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397"+
+ "\u6399\u639A\u639B\u639C\u639D\u639E\u639F\u63A1"+
+ "\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6"+
+ "\u63B9\u63BB\u63BD\u63BF\u63C0\u63C1\u63C2\u63C3"+
+ "\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3"+
+ "\u63D4\u63D5\u63D7\u63D8\u63D9\u63DA\u63DB\u63DC"+
+ "\u63DD\u63DF\u63E2\u63E4\u63E5\u63E6\u63E7\u63E8"+
+ "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5"+
+ "\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404"+
+ "\u6406\u6407\u6408\u6409\u640A\u640D\u640E\u6411"+
+ "\u6412\u6415\u6416\u6417\u6418\u6419\u641A\u641D"+
+ "\u641F\u6422\u6423\u6424\uFFFD\u6425\u6427\u6428"+
+ "\u6429\u642B\u642E\u642F\u6430\u6431\u6432\u6433"+
+ "\u6435\u6436\u6437\u6438\u6439\u643B\u643C\u643E"+
+ "\u6440\u6442\u6443\u6449\u644B\u644C\u644D\u644E"+
+ "\u644F\u6450\u6451\u6453\u6455\u6456\u6457\u6459"+
+ "\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6462"+
+ "\u6463\u6464\u6465\u6466\u6468\u646A\u646B\u646C"+
+ "\u646E\u646F\u6470\u6471\u6472\u6473\u6474\u6475"+
+ "\u6476\u6477\u647B\u647C\u647D\u647E\u647F\u6480"+
+ "\u6481\u6483\u6486\u6488\u6489\u648A\u648B\u648C"+
+ "\u648D\u648E\u648F\u6490\u6493\u6494\u6497\u6498"+
+ "\u649A\u649B\u649C\u649D\u649F\u64A0\u64A1\u64A2"+
+ "\u64A3\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF"+
+ "\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD"+
+ "\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6\u64C7\u64C8"+
+ "\u64C9\u64CA\u64CB\u64CC\u64CF\u64D1\u64D3\u64D4"+
+ "\u64D5\u64D6\u64D9\u64DA\u64DB\u64DC\u64DD\u64DF"+
+ "\u64E0\u64E1\u64E3\u64E5\u64E7\u64E8\u64E9\u64EA"+
+ "\u64EB\u64EC\u64ED\u64EE\u64EF\u64F0\u64F1\u64F2"+
+ "\u64F3\u64F4\u64F5\u64F6\u64F7\u64F8\u64F9\u64FA"+
+ "\u64FB\u64FC\u64FD\u64FE\u64FF\u6501\u6502\u6503"+
+ "\u6504\u6505\u6506\u6507\u6508\u650A\u650B\u650C"+
+ "\u650D\u650E\u650F\u6510\u6511\u6513\u6514\u6515"+
+ "\u6516\u6517\u6519\u651A\u651B\u651C\u651D\u651E"+
+ "\u651F\u6520\u6521\uFFFD\u6522\u6523\u6524\u6526"+
+ "\u6527\u6528\u6529\u652A\u652C\u652D\u6530\u6531"+
+ "\u6532\u6533\u6537\u653A\u653C\u653D\u6540\u6541"+
+ "\u6542\u6543\u6544\u6546\u6547\u654A\u654B\u654D"+
+ "\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A"+
+ "\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568"+
+ "\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575"+
+ "\u6576\u6578\u6579\u657A\u657B\u657C\u657D\u657E"+
+ "\u657F\u6580\u6581\u6582\u6583\u6584\u6585\u6586"+
+ "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594"+
+ "\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2"+
+ "\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1\u65B2"+
+ "\u65B3\u65B4\u65B5\u65B6\u65B7\u65B8\u65BA\u65BB"+
+ "\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA"+
+ "\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8\u65D9"+
+ "\u65DA\u65DB\u65DC\u65DD\u65DE\u65DF\u65E1\u65E3"+
+ "\u65E4\u65EA\u65EB\u65F2\u65F3\u65F4\u65F5\u65F8"+
+ "\u65F9\u65FB\u65FC\u65FD\u65FE\u65FF\u6601\u6604"+
+ "\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611"+
+ "\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E"+
+ "\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B"+
+ "\u662C\u662E\u6630\u6632\u6633\u6637\u6638\u6639"+
+ "\u663A\u663B\u663D\u663F\u6640\u6642\u6644\u6645"+
+ "\u6646\u6647\u6648\u6649\u664A\u664D\u664E\u6650"+
+ "\u6651\u6658\uFFFD\u6659\u665B\u665C\u665D\u665E"+
+ "\u6660\u6662\u6663\u6665\u6667\u6669\u666A\u666B"+
+ "\u666C\u666D\u6671\u6672\u6673\u6675\u6678\u6679"+
+ "\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685"+
+ "\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F"+
+ "\u6690\u6692\u6693\u6694\u6695\u6698\u6699\u669A"+
+ "\u669B\u669C\u669E\u669F\u66A0\u66A1\u66A2\u66A3"+
+ "\u66A4\u66A5\u66A6\u66A9\u66AA\u66AB\u66AC\u66AD"+
+ "\u66AF\u66B0\u66B1\u66B2\u66B3\u66B5\u66B6\u66B7"+
+ "\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF\u66C0\u66C1"+
+ "\u66C2\u66C3\u66C4\u66C5\u66C6\u66C7\u66C8\u66C9"+
+ "\u66CA\u66CB\u66CC\u66CD\u66CE\u66CF\u66D0\u66D1"+
+ "\u66D2\u66D3\u66D4\u66D5\u66D6\u66D7\u66D8\u66DA"+
+ "\u66DE\u66DF\u66E0\u66E1\u66E2\u66E3\u66E4\u66E5"+
+ "\u66E7\u66E8\u66EA\u66EB\u66EC\u66ED\u66EE\u66EF"+
+ "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701"+
+ "\u6702\u6703\u6704\u6705\u6706\u6707\u670C\u670E"+
+ "\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A"+
+ "\u671C\u671E\u6720\u6721\u6722\u6723\u6724\u6725"+
+ "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737"+
+ "\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744"+
+ "\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755"+
+ "\u6757\u6758\u6759\u675A\u675B\u675D\u6762\u6763"+
+ "\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774"+
+ "\u6776\uFFFD\u6778\u6779\u677A\u677B\u677D\u6780"+
+ "\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D"+
+ "\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799"+
+ "\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC"+
+ "\u67AE\u67B1\u67B2\u67B4\u67B9\u67BA\u67BB\u67BC"+
+ "\u67BD\u67BE\u67BF\u67C0\u67C2\u67C5\u67C6\u67C7"+
+ "\u67C8\u67C9\u67CA\u67CB\u67CC\u67CD\u67CE\u67D5"+
+ "\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6"+
+ "\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5"+
+ "\u67F6\u67F7\u67F8\u67F9\u67FA\u67FB\u67FC\u67FE"+
+ "\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812"+
+ "\u6814\u6815\u6818\u6819\u681A\u681B\u681C\u681E"+
+ "\u681F\u6820\u6822\u6823\u6824\u6825\u6826\u6827"+
+ "\u6828\u682B\u682C\u682D\u682E\u682F\u6830\u6831"+
+ "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B"+
+ "\u684D\u684F\u6852\u6856\u6857\u6858\u6859\u685A"+
+ "\u685B\u685C\u685D\u685E\u685F\u686A\u686C\u686D"+
+ "\u686E\u686F\u6870\u6871\u6872\u6873\u6875\u6878"+
+ "\u6879\u687A\u687B\u687C\u687D\u687E\u687F\u6880"+
+ "\u6882\u6884\u6887\u6888\u6889\u688A\u688B\u688C"+
+ "\u688D\u688E\u6890\u6891\u6892\u6894\u6895\u6896"+
+ "\u6898\u6899\u689A\u689B\u689C\u689D\u689E\u689F"+
+ "\u68A0\u68A1\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB"+
+ "\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"+
+ "\uFFFD\u68B9\u68BA\u68BB\u68BC\u68BD\u68BE\u68BF"+
+ "\u68C1\u68C3\u68C4\u68C5\u68C6\u68C7\u68C8\u68CA"+
+ "\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6"+
+ "\u68D7\u68D9\u68DB\u68DC\u68DD\u68DE\u68DF\u68E1"+
+ "\u68E2\u68E4\u68E5\u68E6\u68E7\u68E8\u68E9\u68EA"+
+ "\u68EB\u68EC\u68ED\u68EF\u68F2\u68F3\u68F4\u68F6"+
+ "\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902"+
+ "\u6903\u6904\u6906\u6907\u6908\u6909\u690A\u690C"+
+ "\u690F\u6911\u6913\u6914\u6915\u6916\u6917\u6918"+
+ "\u6919\u691A\u691B\u691C\u691D\u691E\u6921\u6922"+
+ "\u6923\u6925\u6926\u6927\u6928\u6929\u692A\u692B"+
+ "\u692C\u692E\u692F\u6931\u6932\u6933\u6935\u6936"+
+ "\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941"+
+ "\u6943\u6944\u6945\u6946\u6947\u6948\u6949\u694A"+
+ "\u694B\u694C\u694D\u694E\u694F\u6950\u6951\u6952"+
+ "\u6953\u6955\u6956\u6958\u6959\u695B\u695C\u695F"+
+ "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A"+
+ "\u696C\u696D\u696F\u6970\u6972\u6973\u6974\u6975"+
+ "\u6976\u697A\u697B\u697D\u697E\u697F\u6981\u6983"+
+ "\u6985\u698A\u698B\u698C\u698E\u698F\u6990\u6991"+
+ "\u6992\u6993\u6996\u6997\u6999\u699A\u699D\u699E"+
+ "\u699F\u69A0\u69A1\u69A2\u69A3\u69A4\u69A5\u69A6"+
+ "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3"+
+ "\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD\uFFFD"+
+ "\u69BE\u69BF\u69C0\u69C2\u69C3\u69C4\u69C5\u69C6"+
+ "\u69C7\u69C8\u69C9\u69CB\u69CD\u69CF\u69D1\u69D2"+
+ "\u69D3\u69D5\u69D6\u69D7\u69D8\u69D9\u69DA\u69DC"+
+ "\u69DD\u69DE\u69E1\u69E2\u69E3\u69E4\u69E5\u69E6"+
+ "\u69E7\u69E8\u69E9\u69EA\u69EB\u69EC\u69EE\u69EF"+
+ "\u69F0\u69F1\u69F3\u69F4\u69F5\u69F6\u69F7\u69F8"+
+ "\u69F9\u69FA\u69FB\u69FC\u69FE\u6A00\u6A01\u6A02"+
+ "\u6A03\u6A04\u6A05\u6A06\u6A07\u6A08\u6A09\u6A0B"+
+ "\u6A0C\u6A0D\u6A0E\u6A0F\u6A10\u6A11\u6A12\u6A13"+
+ "\u6A14\u6A15\u6A16\u6A19\u6A1A\u6A1B\u6A1C\u6A1D"+
+ "\u6A1E\u6A20\u6A22\u6A23\u6A24\u6A25\u6A26\u6A27"+
+ "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33"+
+ "\u6A34\u6A36\u6A37\u6A38\u6A39\u6A3A\u6A3B\u6A3C"+
+ "\u6A3F\u6A40\u6A41\u6A42\u6A43\u6A45\u6A46\u6A48"+
+ "\u6A49\u6A4A\u6A4B\u6A4C\u6A4D\u6A4E\u6A4F\u6A51"+
+ "\u6A52\u6A53\u6A54\u6A55\u6A56\u6A57\u6A5A\u6A5C"+
+ "\u6A5D\u6A5E\u6A5F\u6A60\u6A62\u6A63\u6A64\u6A66"+
+ "\u6A67\u6A68\u6A69\u6A6A\u6A6B\u6A6C\u6A6D\u6A6E"+
+ "\u6A6F\u6A70\u6A72\u6A73\u6A74\u6A75\u6A76\u6A77"+
+ "\u6A78\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82"+
+ "\u6A83\u6A85\u6A86\u6A87\u6A88\u6A89\u6A8A\u6A8B"+
+ "\u6A8C\u6A8D\u6A8F\u6A92\u6A93\u6A94\u6A95\u6A96"+
+ "\u6A98\u6A99\u6A9A\u6A9B\u6A9C\u6A9D\u6A9E\u6A9F"+
+ "\u6AA1\u6AA2\u6AA3\u6AA4\u6AA5\u6AA6\uFFFD\u6AA7"+
+ "\u6AA8\u6AAA\u6AAD\u6AAE\u6AAF\u6AB0\u6AB1\u6AB2"+
+ "\u6AB3\u6AB4\u6AB5\u6AB6\u6AB7\u6AB8\u6AB9\u6ABA"+
+ "\u6ABB\u6ABC\u6ABD\u6ABE\u6ABF\u6AC0\u6AC1\u6AC2"+
+ "\u6AC3\u6AC4\u6AC5\u6AC6\u6AC7\u6AC8\u6AC9\u6ACA"+
+ "\u6ACB\u6ACC\u6ACD\u6ACE\u6ACF\u6AD0\u6AD1\u6AD2"+
+ "\u6AD3\u6AD4\u6AD5\u6AD6\u6AD7\u6AD8\u6AD9\u6ADA"+
+ "\u6ADB\u6ADC\u6ADD\u6ADE\u6ADF\u6AE0\u6AE1\u6AE2"+
+ "\u6AE3\u6AE4\u6AE5\u6AE6\u6AE7\u6AE8\u6AE9\u6AEA"+
+ "\u6AEB\u6AEC\u6AED\u6AEE\u6AEF\u6AF0\u6AF1\u6AF2"+
+ "\u6AF3\u6AF4\u6AF5\u6AF6\u6AF7\u6AF8\u6AF9\u6AFA"+
+ "\u6AFB\u6AFC\u6AFD\u6AFE\u6AFF\u6B00\u6B01\u6B02"+
+ "\u6B03\u6B04\u6B05\u6B06\u6B07\u6B08\u6B09\u6B0A"+
+ "\u6B0B\u6B0C\u6B0D\u6B0E\u6B0F\u6B10\u6B11\u6B12"+
+ "\u6B13\u6B14\u6B15\u6B16\u6B17\u6B18\u6B19\u6B1A"+
+ "\u6B1B\u6B1C\u6B1D\u6B1E\u6B1F\u6B25\u6B26\u6B28"+
+ "\u6B29\u6B2A\u6B2B\u6B2C\u6B2D\u6B2E\u6B2F\u6B30"+
+ "\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C"+
+ "\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48"+
+ "\u6B4A\u6B4B\u6B4D\u6B4E\u6B4F\u6B50\u6B51\u6B52"+
+ "\u6B53\u6B54\u6B55\u6B56\u6B57\u6B58\u6B5A\u6B5B"+
+ "\u6B5C\u6B5D\u6B5E\u6B5F\u6B60\u6B61\u6B68\u6B69"+
+ "\u6B6B\u6B6C\u6B6D\u6B6E\u6B6F\u6B70\u6B71\u6B72"+
+ "\u6B73\u6B74\u6B75\u6B76\u6B77\u6B78\u6B7A\u6B7D"+
+ "\u6B7E\u6B7F\u6B80\u6B85\u6B88\uFFFD\u6B8C\u6B8E"+
+ "\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99"+
+ "\u6B9C\u6B9D\u6B9E\u6B9F\u6BA0\u6BA2\u6BA3\u6BA4"+
+ "\u6BA5\u6BA6\u6BA7\u6BA8\u6BA9\u6BAB\u6BAC\u6BAD"+
+ "\u6BAE\u6BAF\u6BB0\u6BB1\u6BB2\u6BB6\u6BB8\u6BB9"+
+ "\u6BBA\u6BBB\u6BBC\u6BBD\u6BBE\u6BC0\u6BC3\u6BC4"+
+ "\u6BC6\u6BC7\u6BC8\u6BC9\u6BCA\u6BCC\u6BCE\u6BD0"+
+ "\u6BD1\u6BD8\u6BDA\u6BDC\u6BDD\u6BDE\u6BDF\u6BE0"+
+ "\u6BE2\u6BE3\u6BE4\u6BE5\u6BE6\u6BE7\u6BE8\u6BE9"+
+ "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6"+
+ "\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE\u6BFF\u6C00"+
+ "\u6C01\u6C02\u6C03\u6C04\u6C08\u6C09\u6C0A\u6C0B"+
+ "\u6C0C\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20"+
+ "\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36"+
+ "\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43"+
+ "\u6C44\u6C45\u6C48\u6C4B\u6C4C\u6C4D\u6C4E\u6C4F"+
+ "\u6C51\u6C52\u6C53\u6C56\u6C58\u6C59\u6C5A\u6C62"+
+ "\u6C63\u6C65\u6C66\u6C67\u6C6B\u6C6C\u6C6D\u6C6E"+
+ "\u6C6F\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B"+
+ "\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D"+
+ "\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A"+
+ "\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF"+
+ "\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1"+
+ "\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE"+
+ "\u6CCF\u6CD1\u6CD2\u6CD8\uFFFD\u6CD9\u6CDA\u6CDC"+
+ "\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED"+
+ "\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05"+
+ "\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11"+
+ "\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F"+
+ "\u6D20\u6D21\u6D22\u6D23\u6D24\u6D26\u6D28\u6D29"+
+ "\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38"+
+ "\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50"+
+ "\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61"+
+ "\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D"+
+ "\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A"+
+ "\u6D7B\u6D7D\u6D7E\u6D7F\u6D80\u6D81\u6D83\u6D84"+
+ "\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92"+
+ "\u6D96\u6D97\u6D98\u6D99\u6D9A\u6D9C\u6DA2\u6DA5"+
+ "\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7"+
+ "\u6DB9\u6DBA\u6DBB\u6DBC\u6DBD\u6DBE\u6DC1\u6DC2"+
+ "\u6DC3\u6DC8\u6DC9\u6DCA\u6DCD\u6DCE\u6DCF\u6DD0"+
+ "\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC"+
+ "\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA"+
+ "\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8"+
+ "\u6DFA\u6DFD\u6DFE\u6DFF\u6E00\u6E01\u6E02\u6E03"+
+ "\u6E04\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12"+
+ "\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F"+
+ "\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30"+
+ "\u6E31\u6E33\u6E35\uFFFD\u6E36\u6E37\u6E39\u6E3B"+
+ "\u6E3C\u6E3D\u6E3E\u6E3F\u6E40\u6E41\u6E42\u6E45"+
+ "\u6E46\u6E47\u6E48\u6E49\u6E4A\u6E4B\u6E4C\u6E4F"+
+ "\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C"+
+ "\u6E5D\u6E5E\u6E60\u6E61\u6E62\u6E63\u6E64\u6E65"+
+ "\u6E66\u6E67\u6E68\u6E69\u6E6A\u6E6C\u6E6D\u6E6F"+
+ "\u6E70\u6E71\u6E72\u6E73\u6E74\u6E75\u6E76\u6E77"+
+ "\u6E78\u6E79\u6E7A\u6E7B\u6E7C\u6E7D\u6E80\u6E81"+
+ "\u6E82\u6E84\u6E87\u6E88\u6E8A\u6E8B\u6E8C\u6E8D"+
+ "\u6E8E\u6E91\u6E92\u6E93\u6E94\u6E95\u6E96\u6E97"+
+ "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3"+
+ "\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE"+
+ "\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF"+
+ "\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA"+
+ "\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9"+
+ "\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA\u6EEB\u6EEC"+
+ "\u6EED\u6EEE\u6EEF\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5"+
+ "\u6EF6\u6EF7\u6EF8\u6EFA\u6EFB\u6EFC\u6EFD\u6EFE"+
+ "\u6EFF\u6F00\u6F01\u6F03\u6F04\u6F05\u6F07\u6F08"+
+ "\u6F0A\u6F0B\u6F0C\u6F0D\u6F0E\u6F10\u6F11\u6F12"+
+ "\u6F16\u6F17\u6F18\u6F19\u6F1A\u6F1B\u6F1C\u6F1D"+
+ "\u6F1E\u6F1F\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27"+
+ "\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37"+
+ "\u6F38\u6F39\u6F3A\u6F3B\u6F3C\u6F3D\u6F3F\u6F40"+
+ "\u6F41\u6F42\uFFFD\u6F43\u6F44\u6F45\u6F48\u6F49"+
+ "\u6F4A\u6F4C\u6F4E\u6F4F\u6F50\u6F51\u6F52\u6F53"+
+ "\u6F54\u6F55\u6F56\u6F57\u6F59\u6F5A\u6F5B\u6F5D"+
+ "\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67\u6F68"+
+ "\u6F69\u6F6A\u6F6B\u6F6C\u6F6F\u6F70\u6F71\u6F73"+
+ "\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D\u6F7E\u6F7F"+
+ "\u6F80\u6F81\u6F82\u6F83\u6F85\u6F86\u6F87\u6F8A"+
+ "\u6F8B\u6F8F\u6F90\u6F91\u6F92\u6F93\u6F94\u6F95"+
+ "\u6F96\u6F97\u6F98\u6F99\u6F9A\u6F9B\u6F9D\u6F9E"+
+ "\u6F9F\u6FA0\u6FA2\u6FA3\u6FA4\u6FA5\u6FA6\u6FA8"+
+ "\u6FA9\u6FAA\u6FAB\u6FAC\u6FAD\u6FAE\u6FAF\u6FB0"+
+ "\u6FB1\u6FB2\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA\u6FBB"+
+ "\u6FBC\u6FBD\u6FBE\u6FBF\u6FC1\u6FC3\u6FC4\u6FC5"+
+ "\u6FC6\u6FC7\u6FC8\u6FCA\u6FCB\u6FCC\u6FCD\u6FCE"+
+ "\u6FCF\u6FD0\u6FD3\u6FD4\u6FD5\u6FD6\u6FD7\u6FD8"+
+ "\u6FD9\u6FDA\u6FDB\u6FDC\u6FDD\u6FDF\u6FE2\u6FE3"+
+ "\u6FE4\u6FE5\u6FE6\u6FE7\u6FE8\u6FE9\u6FEA\u6FEB"+
+ "\u6FEC\u6FED\u6FF0\u6FF1\u6FF2\u6FF3\u6FF4\u6FF5"+
+ "\u6FF6\u6FF7\u6FF8\u6FF9\u6FFA\u6FFB\u6FFC\u6FFD"+
+ "\u6FFE\u6FFF\u7000\u7001\u7002\u7003\u7004\u7005"+
+ "\u7006\u7007\u7008\u7009\u700A\u700B\u700C\u700D"+
+ "\u700E\u700F\u7010\u7012\u7013\u7014\u7015\u7016"+
+ "\u7017\u7018\u7019\u701C\u701D\u701E\u701F\u7020"+
+ "\u7021\u7022\u7024\u7025\u7026\u7027\u7028\u7029"+
+ "\u702A\uFFFD\u702B\u702C\u702D\u702E\u702F\u7030"+
+ "\u7031\u7032\u7033\u7034\u7036\u7037\u7038\u703A"+
+ "\u703B\u703C\u703D\u703E\u703F\u7040\u7041\u7042"+
+ "\u7043\u7044\u7045\u7046\u7047\u7048\u7049\u704A"+
+ "\u704B\u704D\u704E\u7050\u7051\u7052\u7053\u7054"+
+ "\u7055\u7056\u7057\u7058\u7059\u705A\u705B\u705C"+
+ "\u705D\u705F\u7060\u7061\u7062\u7063\u7064\u7065"+
+ "\u7066\u7067\u7068\u7069\u706A\u706E\u7071\u7072"+
+ "\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081"+
+ "\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C"+
+ "\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A"+
+ "\u709B\u709E\u709F\u70A0\u70A1\u70A2\u70A3\u70A4"+
+ "\u70A5\u70A6\u70A7\u70A8\u70A9\u70AA\u70B0\u70B2"+
+ "\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5"+
+ "\u70C6\u70C7\u70C9\u70CB\u70CC\u70CD\u70CE\u70CF"+
+ "\u70D0\u70D1\u70D2\u70D3\u70D4\u70D5\u70D6\u70D7"+
+ "\u70DA\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3"+
+ "\u70E5\u70EA\u70EE\u70F0\u70F1\u70F2\u70F3\u70F4"+
+ "\u70F5\u70F6\u70F8\u70FA\u70FB\u70FC\u70FE\u70FF"+
+ "\u7100\u7101\u7102\u7103\u7104\u7105\u7106\u7107"+
+ "\u7108\u710B\u710C\u710D\u710E\u710F\u7111\u7112"+
+ "\u7114\u7117\u711B\u711C\u711D\u711E\u711F\u7120"+
+ "\u7121\u7122\u7123\u7124\u7125\u7127\u7128\u7129"+
+ "\u712A\u712B\u712C\u712D\u712E\u7132\u7133\u7134"+
+ "\uFFFD\u7135\u7137\u7138\u7139\u713A\u713B\u713C"+
+ "\u713D\u713E\u713F\u7140\u7141\u7142\u7143\u7144"+
+ "\u7146\u7147\u7148\u7149\u714B\u714D\u714F\u7150"+
+ "\u7151\u7152\u7153\u7154\u7155\u7156\u7157\u7158"+
+ "\u7159\u715A\u715B\u715D\u715F\u7160\u7161\u7162"+
+ "\u7163\u7165\u7169\u716A\u716B\u716C\u716D\u716F"+
+ "\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B"+
+ "\u717C\u717E\u717F\u7180\u7181\u7182\u7183\u7185"+
+ "\u7186\u7187\u7188\u7189\u718B\u718C\u718D\u718E"+
+ "\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A"+
+ "\u719B\u719C\u719D\u719E\u71A1\u71A2\u71A3\u71A4"+
+ "\u71A5\u71A6\u71A7\u71A9\u71AA\u71AB\u71AD\u71AE"+
+ "\u71AF\u71B0\u71B1\u71B2\u71B4\u71B6\u71B7\u71B8"+
+ "\u71BA\u71BB\u71BC\u71BD\u71BE\u71BF\u71C0\u71C1"+
+ "\u71C2\u71C4\u71C5\u71C6\u71C7\u71C8\u71C9\u71CA"+
+ "\u71CB\u71CC\u71CD\u71CF\u71D0\u71D1\u71D2\u71D3";
+
+ private final static String innerIndex2=
+ "\u71D6\u71D7\u71D8\u71D9\u71DA\u71DB\u71DC\u71DD"+
+ "\u71DE\u71DF\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8"+
+ "\u71E9\u71EA\u71EB\u71EC\u71ED\u71EF\u71F0\u71F1"+
+ "\u71F2\u71F3\u71F4\u71F5\u71F6\u71F7\u71F8\u71FA"+
+ "\u71FB\u71FC\u71FD\u71FE\u71FF\u7200\u7201\u7202"+
+ "\u7203\u7204\u7205\u7207\u7208\u7209\u720A\u720B"+
+ "\u720C\u720D\u720E\u720F\u7210\u7211\u7212\u7213"+
+ "\u7214\u7215\u7216\u7217\u7218\u7219\u721A\uFFFD"+
+ "\u721B\u721C\u721E\u721F\u7220\u7221\u7222\u7223"+
+ "\u7224\u7225\u7226\u7227\u7229\u722B\u722D\u722E"+
+ "\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240"+
+ "\u7241\u7242\u7243\u7244\u7245\u7246\u7249\u724A"+
+ "\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255"+
+ "\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264"+
+ "\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271"+
+ "\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D"+
+ "\u7282\u7283\u7285\u7286\u7287\u7288\u7289\u728C"+
+ "\u728E\u7290\u7291\u7293\u7294\u7295\u7296\u7297"+
+ "\u7298\u7299\u729A\u729B\u729C\u729D\u729E\u72A0"+
+ "\u72A1\u72A2\u72A3\u72A4\u72A5\u72A6\u72A7\u72A8"+
+ "\u72A9\u72AA\u72AB\u72AE\u72B1\u72B2\u72B3\u72B5"+
+ "\u72BA\u72BB\u72BC\u72BD\u72BE\u72BF\u72C0\u72C5"+
+ "\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1"+
+ "\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB\uE4C6"+
+ "\uE4C7\uE4C8\uE4C9\uE4CA\uE4CB\uE4CC\uE4CD\uE4CE"+
+ "\uE4CF\uE4D0\uE4D1\uE4D2\uE4D3\uE4D4\uE4D5\uE4D6"+
+ "\uE4D7\uE4D8\uE4D9\uE4DA\uE4DB\uE4DC\uE4DD\uE4DE"+
+ "\uE4DF\uE4E0\uE4E1\uE4E2\uE4E3\uE4E4\uE4E5\uE4E6"+
+ "\uE4E7\uE4E8\uE4E9\uE4EA\uE4EB\uE4EC\uE4ED\uE4EE"+
+ "\uE4EF\uE4F0\uE4F1\uE4F2\uE4F3\uE4F4\uE4F5\uE4F6"+
+ "\uE4F7\uE4F8\uE4F9\uE4FA\uE4FB\uE4FC\uE4FD\uE4FE"+
+ "\uE4FF\uE500\uE501\uE502\uE503\uE504\uFFFD\uE505"+
+ "\uE506\uE507\uE508\uE509\uE50A\uE50B\uE50C\uE50D"+
+ "\uE50E\uE50F\uE510\uE511\uE512\uE513\uE514\uE515"+
+ "\uE516\uE517\uE518\uE519\uE51A\uE51B\uE51C\uE51D"+
+ "\uE51E\uE51F\uE520\uE521\uE522\uE523\uE524\uE525"+
+ "\u3000\u3001\u3002\u00B7\u02C9\u02C7\u00A8\u3003"+
+ "\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C"+
+ "\u201D\u3014\u3015\u3008\u3009\u300A\u300B\u300C"+
+ "\u300D\u300E\u300F\u3016\u3017\u3010\u3011\u00B1"+
+ "\u00D7\u00F7\u2236\u2227\u2228\u2211\u220F\u222A"+
+ "\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312"+
+ "\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D"+
+ "\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234"+
+ "\u2642\u2640\u00B0\u2032\u2033\u2103\uFF04\u00A4"+
+ "\uFFE0\uFFE1\u2030\u00A7\u2116\u2606\u2605\u25CB"+
+ "\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2"+
+ "\u203B\u2192\u2190\u2191\u2193\u3013\uE526\uE527"+
+ "\uE528\uE529\uE52A\uE52B\uE52C\uE52D\uE52E\uE52F"+
+ "\uE530\uE531\uE532\uE533\uE534\uE535\uE536\uE537"+
+ "\uE538\uE539\uE53A\uE53B\uE53C\uE53D\uE53E\uE53F"+
+ "\uE540\uE541\uE542\uE543\uE544\uE545\uE546\uE547"+
+ "\uE548\uE549\uE54A\uE54B\uE54C\uE54D\uE54E\uE54F"+
+ "\uE550\uE551\uE552\uE553\uE554\uE555\uE556\uE557"+
+ "\uE558\uE559\uE55A\uE55B\uE55C\uE55D\uE55E\uE55F"+
+ "\uE560\uE561\uE562\uE563\uE564\uFFFD\uE565\uE566"+
+ "\uE567\uE568\uE569\uE56A\uE56B\uE56C\uE56D\uE56E"+
+ "\uE56F\uE570\uE571\uE572\uE573\uE574\uE575\uE576"+
+ "\uE577\uE578\uE579\uE57A\uE57B\uE57C\uE57D\uE57E"+
+ "\uE57F\uE580\uE581\uE582\uE583\uE584\uE585\u2170"+
+ "\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178"+
+ "\u2179\uE766\uE767\uE768\uE769\uE76A\uE76B\u2488"+
+ "\u2489\u248A\u248B\u248C\u248D\u248E\u248F\u2490"+
+ "\u2491\u2492\u2493\u2494\u2495\u2496\u2497\u2498"+
+ "\u2499\u249A\u249B\u2474\u2475\u2476\u2477\u2478"+
+ "\u2479\u247A\u247B\u247C\u247D\u247E\u247F\u2480"+
+ "\u2481\u2482\u2483\u2484\u2485\u2486\u2487\u2460"+
+ "\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468"+
+ "\u2469\u20AC\uE76D\u3220\u3221\u3222\u3223\u3224"+
+ "\u3225\u3226\u3227\u3228\u3229\uE76E\uE76F\u2160"+
+ "\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168"+
+ "\u2169\u216A\u216B\uE770\uE771\uE586\uE587\uE588"+
+ "\uE589\uE58A\uE58B\uE58C\uE58D\uE58E\uE58F\uE590"+
+ "\uE591\uE592\uE593\uE594\uE595\uE596\uE597\uE598"+
+ "\uE599\uE59A\uE59B\uE59C\uE59D\uE59E\uE59F\uE5A0"+
+ "\uE5A1\uE5A2\uE5A3\uE5A4\uE5A5\uE5A6\uE5A7\uE5A8"+
+ "\uE5A9\uE5AA\uE5AB\uE5AC\uE5AD\uE5AE\uE5AF\uE5B0"+
+ "\uE5B1\uE5B2\uE5B3\uE5B4\uE5B5\uE5B6\uE5B7\uE5B8"+
+ "\uE5B9\uE5BA\uE5BB\uE5BC\uE5BD\uE5BE\uE5BF\uE5C0"+
+ "\uE5C1\uE5C2\uE5C3\uE5C4\uFFFD\uE5C5\uE5C6\uE5C7"+
+ "\uE5C8\uE5C9\uE5CA\uE5CB\uE5CC\uE5CD\uE5CE\uE5CF"+
+ "\uE5D0\uE5D1\uE5D2\uE5D3\uE5D4\uE5D5\uE5D6\uE5D7"+
+ "\uE5D8\uE5D9\uE5DA\uE5DB\uE5DC\uE5DD\uE5DE\uE5DF"+
+ "\uE5E0\uE5E1\uE5E2\uE5E3\uE5E4\uE5E5\uFF01\uFF02"+
+ "\uFF03\uFFE5\uFF05\uFF06\uFF07\uFF08\uFF09\uFF0A"+
+ "\uFF0B\uFF0C\uFF0D\uFF0E\uFF0F\uFF10\uFF11\uFF12"+
+ "\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19\uFF1A"+
+ "\uFF1B\uFF1C\uFF1D\uFF1E\uFF1F\uFF20\uFF21\uFF22"+
+ "\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A"+
+ "\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32"+
+ "\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A"+
+ "\uFF3B\uFF3C\uFF3D\uFF3E\uFF3F\uFF40\uFF41\uFF42"+
+ "\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A"+
+ "\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52"+
+ "\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A"+
+ "\uFF5B\uFF5C\uFF5D\uFFE3\uE5E6\uE5E7\uE5E8\uE5E9"+
+ "\uE5EA\uE5EB\uE5EC\uE5ED\uE5EE\uE5EF\uE5F0\uE5F1"+
+ "\uE5F2\uE5F3\uE5F4\uE5F5\uE5F6\uE5F7\uE5F8\uE5F9"+
+ "\uE5FA\uE5FB\uE5FC\uE5FD\uE5FE\uE5FF\uE600\uE601"+
+ "\uE602\uE603\uE604\uE605\uE606\uE607\uE608\uE609"+
+ "\uE60A\uE60B\uE60C\uE60D\uE60E\uE60F\uE610\uE611"+
+ "\uE612\uE613\uE614\uE615\uE616\uE617\uE618\uE619"+
+ "\uE61A\uE61B\uE61C\uE61D\uE61E\uE61F\uE620\uE621"+
+ "\uE622\uE623\uE624\uFFFD\uE625\uE626\uE627\uE628"+
+ "\uE629\uE62A\uE62B\uE62C\uE62D\uE62E\uE62F\uE630"+
+ "\uE631\uE632\uE633\uE634\uE635\uE636\uE637\uE638"+
+ "\uE639\uE63A\uE63B\uE63C\uE63D\uE63E\uE63F\uE640"+
+ "\uE641\uE642\uE643\uE644\uE645\u3041\u3042\u3043"+
+ "\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B"+
+ "\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053"+
+ "\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B"+
+ "\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063"+
+ "\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B"+
+ "\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073"+
+ "\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B"+
+ "\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083"+
+ "\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B"+
+ "\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093"+
+ "\uE772\uE773\uE774\uE775\uE776\uE777\uE778\uE779"+
+ "\uE77A\uE77B\uE77C\uE646\uE647\uE648\uE649\uE64A"+
+ "\uE64B\uE64C\uE64D\uE64E\uE64F\uE650\uE651\uE652"+
+ "\uE653\uE654\uE655\uE656\uE657\uE658\uE659\uE65A"+
+ "\uE65B\uE65C\uE65D\uE65E\uE65F\uE660\uE661\uE662"+
+ "\uE663\uE664\uE665\uE666\uE667\uE668\uE669\uE66A"+
+ "\uE66B\uE66C\uE66D\uE66E\uE66F\uE670\uE671\uE672"+
+ "\uE673\uE674\uE675\uE676\uE677\uE678\uE679\uE67A"+
+ "\uE67B\uE67C\uE67D\uE67E\uE67F\uE680\uE681\uE682"+
+ "\uE683\uE684\uFFFD\uE685\uE686\uE687\uE688\uE689"+
+ "\uE68A\uE68B\uE68C\uE68D\uE68E\uE68F\uE690\uE691"+
+ "\uE692\uE693\uE694\uE695\uE696\uE697\uE698\uE699"+
+ "\uE69A\uE69B\uE69C\uE69D\uE69E\uE69F\uE6A0\uE6A1"+
+ "\uE6A2\uE6A3\uE6A4\uE6A5\u30A1\u30A2\u30A3\u30A4"+
+ "\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC"+
+ "\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4"+
+ "\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC"+
+ "\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4"+
+ "\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC"+
+ "\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4"+
+ "\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC"+
+ "\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4"+
+ "\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC"+
+ "\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4"+
+ "\u30F5\u30F6\uE77D\uE77E\uE77F\uE780\uE781\uE782"+
+ "\uE783\uE784\uE6A6\uE6A7\uE6A8\uE6A9\uE6AA\uE6AB"+
+ "\uE6AC\uE6AD\uE6AE\uE6AF\uE6B0\uE6B1\uE6B2\uE6B3"+
+ "\uE6B4\uE6B5\uE6B6\uE6B7\uE6B8\uE6B9\uE6BA\uE6BB"+
+ "\uE6BC\uE6BD\uE6BE\uE6BF\uE6C0\uE6C1\uE6C2\uE6C3"+
+ "\uE6C4\uE6C5\uE6C6\uE6C7\uE6C8\uE6C9\uE6CA\uE6CB"+
+ "\uE6CC\uE6CD\uE6CE\uE6CF\uE6D0\uE6D1\uE6D2\uE6D3"+
+ "\uE6D4\uE6D5\uE6D6\uE6D7\uE6D8\uE6D9\uE6DA\uE6DB"+
+ "\uE6DC\uE6DD\uE6DE\uE6DF\uE6E0\uE6E1\uE6E2\uE6E3"+
+ "\uE6E4\uFFFD\uE6E5\uE6E6\uE6E7\uE6E8\uE6E9\uE6EA"+
+ "\uE6EB\uE6EC\uE6ED\uE6EE\uE6EF\uE6F0\uE6F1\uE6F2"+
+ "\uE6F3\uE6F4\uE6F5\uE6F6\uE6F7\uE6F8\uE6F9\uE6FA"+
+ "\uE6FB\uE6FC\uE6FD\uE6FE\uE6FF\uE700\uE701\uE702"+
+ "\uE703\uE704\uE705\u0391\u0392\u0393\u0394\u0395"+
+ "\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D"+
+ "\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6"+
+ "\u03A7\u03A8\u03A9\uE785\uE786\uE787\uE788\uE789"+
+ "\uE78A\uE78B\uE78C\u03B1\u03B2\u03B3\u03B4\u03B5"+
+ "\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD"+
+ "\u03BE\u03BF\u03C0\u03C1\u03C3\u03C4\u03C5\u03C6"+
+ "\u03C7\u03C8\u03C9\uE78D\uE78E\uE78F\uE790\uE791"+
+ "\uE792\uE793\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40"+
+ "\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44\uE794\uE795"+
+ "\uFE3B\uFE3C\uFE37\uFE38\uFE31\uE796\uFE33\uFE34"+
+ "\uE797\uE798\uE799\uE79A\uE79B\uE79C\uE79D\uE79E"+
+ "\uE79F\uE706\uE707\uE708\uE709\uE70A\uE70B\uE70C"+
+ "\uE70D\uE70E\uE70F\uE710\uE711\uE712\uE713\uE714"+
+ "\uE715\uE716\uE717\uE718\uE719\uE71A\uE71B\uE71C"+
+ "\uE71D\uE71E\uE71F\uE720\uE721\uE722\uE723\uE724"+
+ "\uE725\uE726\uE727\uE728\uE729\uE72A\uE72B\uE72C"+
+ "\uE72D\uE72E\uE72F\uE730\uE731\uE732\uE733\uE734"+
+ "\uE735\uE736\uE737\uE738\uE739\uE73A\uE73B\uE73C"+
+ "\uE73D\uE73E\uE73F\uE740\uE741\uE742\uE743\uE744"+
+ "\uFFFD\uE745\uE746\uE747\uE748\uE749\uE74A\uE74B"+
+ "\uE74C\uE74D\uE74E\uE74F\uE750\uE751\uE752\uE753"+
+ "\uE754\uE755\uE756\uE757\uE758\uE759\uE75A\uE75B"+
+ "\uE75C\uE75D\uE75E\uE75F\uE760\uE761\uE762\uE763"+
+ "\uE764\uE765\u0410\u0411\u0412\u0413\u0414\u0415"+
+ "\u0401\u0416\u0417\u0418\u0419\u041A\u041B\u041C"+
+ "\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424"+
+ "\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C"+
+ "\u042D\u042E\u042F\uE7A0\uE7A1\uE7A2\uE7A3\uE7A4"+
+ "\uE7A5\uE7A6\uE7A7\uE7A8\uE7A9\uE7AA\uE7AB\uE7AC"+
+ "\uE7AD\uE7AE\u0430\u0431\u0432\u0433\u0434\u0435"+
+ "\u0451\u0436\u0437\u0438\u0439\u043A\u043B\u043C"+
+ "\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444"+
+ "\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C"+
+ "\u044D\u044E\u044F\uE7AF\uE7B0\uE7B1\uE7B2\uE7B3"+
+ "\uE7B4\uE7B5\uE7B6\uE7B7\uE7B8\uE7B9\uE7BA\uE7BB"+
+ "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105"+
+ "\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223"+
+ "\u2252\u2266\u2267\u22BF\u2550\u2551\u2552\u2553"+
+ "\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B"+
+ "\u255C\u255D\u255E\u255F\u2560\u2561\u2562\u2563"+
+ "\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B"+
+ "\u256C\u256D\u256E\u256F\u2570\u2571\u2572\u2573"+
+ "\u2581\u2582\u2583\u2584\u2585\u2586\u2587\uFFFD"+
+ "\u2588\u2589\u258A\u258B\u258C\u258D\u258E\u258F"+
+ "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4"+
+ "\u25E5\u2609\u2295\u3012\u301D\u301E\uE7BC\uE7BD"+
+ "\uE7BE\uE7BF\uE7C0\uE7C1\uE7C2\uE7C3\uE7C4\uE7C5"+
+ "\uE7C6\u0101\u00E1\u01CE\u00E0\u0113\u00E9\u011B"+
+ "\u00E8\u012B\u00ED\u01D0\u00EC\u014D\u00F3\u01D2"+
+ "\u00F2\u016B\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA"+
+ "\u01DC\u00FC\u00EA\u0251\uE7C7\u0144\u0148\u01F9"+
+ "\u0261\uE7C9\uE7CA\uE7CB\uE7CC\u3105\u3106\u3107"+
+ "\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F"+
+ "\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117"+
+ "\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F"+
+ "\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127"+
+ "\u3128\u3129\uE7CD\uE7CE\uE7CF\uE7D0\uE7D1\uE7D2"+
+ "\uE7D3\uE7D4\uE7D5\uE7D6\uE7D7\uE7D8\uE7D9\uE7DA"+
+ "\uE7DB\uE7DC\uE7DD\uE7DE\uE7DF\uE7E0\uE7E1\u3021"+
+ "\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029"+
+ "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4"+
+ "\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4\uE7E2"+
+ "\u2121\u3231\uE7E3\u2010\uE7E4\uE7E5\uE7E6\u30FC"+
+ "\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49"+
+ "\uFE4A\uFE4B\uFE4C\uFE4D\uFE4E\uFE4F\uFE50\uFE51"+
+ "\uFE52\uFE54\uFE55\uFE56\uFE57\uFE59\uFE5A\uFE5B"+
+ "\uFE5C\uFE5D\uFE5E\uFE5F\uFE60\uFE61\uFFFD\uFE62"+
+ "\uFE63\uFE64\uFE65\uFE66\uFE68\uFE69\uFE6A\uFE6B"+
+ "\u303E\u2FF0\u2FF1\u2FF2\u2FF3\u2FF4\u2FF5\u2FF6"+
+ "\u2FF7\u2FF8\u2FF9\u2FFA\u2FFB\u3007\uE7F4\uE7F5"+
+ "\uE7F6\uE7F7\uE7F8\uE7F9\uE7FA\uE7FB\uE7FC\uE7FD"+
+ "\uE7FE\uE7FF\uE800\u2500\u2501\u2502\u2503\u2504"+
+ "\u2505\u2506\u2507\u2508\u2509\u250A\u250B\u250C"+
+ "\u250D\u250E\u250F\u2510\u2511\u2512\u2513\u2514"+
+ "\u2515\u2516\u2517\u2518\u2519\u251A\u251B\u251C"+
+ "\u251D\u251E\u251F\u2520\u2521\u2522\u2523\u2524"+
+ "\u2525\u2526\u2527\u2528\u2529\u252A\u252B\u252C"+
+ "\u252D\u252E\u252F\u2530\u2531\u2532\u2533\u2534"+
+ "\u2535\u2536\u2537\u2538\u2539\u253A\u253B\u253C"+
+ "\u253D\u253E\u253F\u2540\u2541\u2542\u2543\u2544"+
+ "\u2545\u2546\u2547\u2548\u2549\u254A\u254B\uE801"+
+ "\uE802\uE803\uE804\uE805\uE806\uE807\uE808\uE809"+
+ "\uE80A\uE80B\uE80C\uE80D\uE80E\uE80F\u72DC\u72DD"+
+ "\u72DF\u72E2\u72E3\u72E4\u72E5\u72E6\u72E7\u72EA"+
+ "\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300"+
+ "\u7302\u7304\u7305\u7306\u7307\u7308\u7309\u730B"+
+ "\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318"+
+ "\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327"+
+ "\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336"+
+ "\u733A\u733B\u733C\u733D\u7340\u7341\u7342\u7343"+
+ "\u7344\u7345\u7346\u7347\u7348\uFFFD\u7349\u734A"+
+ "\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355"+
+ "\u7356\u7358\u7359\u735A\u735B\u735C\u735D\u735E"+
+ "\u735F\u7361\u7362\u7363\u7364\u7365\u7366\u7367"+
+ "\u7368\u7369\u736A\u736B\u736E\u7370\u7371\uE000"+
+ "\uE001\uE002\uE003\uE004\uE005\uE006\uE007\uE008"+
+ "\uE009\uE00A\uE00B\uE00C\uE00D\uE00E\uE00F\uE010"+
+ "\uE011\uE012\uE013\uE014\uE015\uE016\uE017\uE018"+
+ "\uE019\uE01A\uE01B\uE01C\uE01D\uE01E\uE01F\uE020"+
+ "\uE021\uE022\uE023\uE024\uE025\uE026\uE027\uE028"+
+ "\uE029\uE02A\uE02B\uE02C\uE02D\uE02E\uE02F\uE030"+
+ "\uE031\uE032\uE033\uE034\uE035\uE036\uE037\uE038"+
+ "\uE039\uE03A\uE03B\uE03C\uE03D\uE03E\uE03F\uE040"+
+ "\uE041\uE042\uE043\uE044\uE045\uE046\uE047\uE048"+
+ "\uE049\uE04A\uE04B\uE04C\uE04D\uE04E\uE04F\uE050"+
+ "\uE051\uE052\uE053\uE054\uE055\uE056\uE057\uE058"+
+ "\uE059\uE05A\uE05B\uE05C\uE05D\u7372\u7373\u7374"+
+ "\u7375\u7376\u7377\u7378\u7379\u737A\u737B\u737C"+
+ "\u737D\u737F\u7380\u7381\u7382\u7383\u7385\u7386"+
+ "\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393"+
+ "\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D"+
+ "\u739E\u73A0\u73A1\u73A3\u73A4\u73A5\u73A6\u73A7"+
+ "\u73A8\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6"+
+ "\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3"+
+ "\u73C4\u73C5\u73C6\u73C7\uFFFD\u73CB\u73CC\u73CE"+
+ "\u73D2\u73D3\u73D4\u73D5\u73D6\u73D7\u73D8\u73DA"+
+ "\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4"+
+ "\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0"+
+ "\u73F1\u73F3\u73F4\u73F5\u73F6\u73F7\uE05E\uE05F"+
+ "\uE060\uE061\uE062\uE063\uE064\uE065\uE066\uE067"+
+ "\uE068\uE069\uE06A\uE06B\uE06C\uE06D\uE06E\uE06F"+
+ "\uE070\uE071\uE072\uE073\uE074\uE075\uE076\uE077"+
+ "\uE078\uE079\uE07A\uE07B\uE07C\uE07D\uE07E\uE07F"+
+ "\uE080\uE081\uE082\uE083\uE084\uE085\uE086\uE087"+
+ "\uE088\uE089\uE08A\uE08B\uE08C\uE08D\uE08E\uE08F"+
+ "\uE090\uE091\uE092\uE093\uE094\uE095\uE096\uE097"+
+ "\uE098\uE099\uE09A\uE09B\uE09C\uE09D\uE09E\uE09F"+
+ "\uE0A0\uE0A1\uE0A2\uE0A3\uE0A4\uE0A5\uE0A6\uE0A7"+
+ "\uE0A8\uE0A9\uE0AA\uE0AB\uE0AC\uE0AD\uE0AE\uE0AF"+
+ "\uE0B0\uE0B1\uE0B2\uE0B3\uE0B4\uE0B5\uE0B6\uE0B7"+
+ "\uE0B8\uE0B9\uE0BA\uE0BB\u73F8\u73F9\u73FA\u73FB"+
+ "\u73FC\u73FD\u73FE\u73FF\u7400\u7401\u7402\u7404"+
+ "\u7407\u7408\u740B\u740C\u740D\u740E\u7411\u7412"+
+ "\u7413\u7414\u7415\u7416\u7417\u7418\u7419\u741C"+
+ "\u741D\u741E\u741F\u7420\u7421\u7423\u7424\u7427"+
+ "\u7429\u742B\u742D\u742F\u7431\u7432\u7437\u7438"+
+ "\u7439\u743A\u743B\u743D\u743E\u743F\u7440\u7442"+
+ "\u7443\u7444\u7445\u7446\u7447\u7448\u7449\u744A"+
+ "\u744B\u744C\u744D\uFFFD\u744E\u744F\u7450\u7451"+
+ "\u7452\u7453\u7454\u7456\u7458\u745D\u7460\u7461"+
+ "\u7462\u7463\u7464\u7465\u7466\u7467\u7468\u7469"+
+ "\u746A\u746B\u746C\u746E\u746F\u7471\u7472\u7473"+
+ "\u7474\u7475\u7478\u7479\u747A\uE0BC\uE0BD\uE0BE"+
+ "\uE0BF\uE0C0\uE0C1\uE0C2\uE0C3\uE0C4\uE0C5\uE0C6"+
+ "\uE0C7\uE0C8\uE0C9\uE0CA\uE0CB\uE0CC\uE0CD\uE0CE"+
+ "\uE0CF\uE0D0\uE0D1\uE0D2\uE0D3\uE0D4\uE0D5\uE0D6"+
+ "\uE0D7\uE0D8\uE0D9\uE0DA\uE0DB\uE0DC\uE0DD\uE0DE"+
+ "\uE0DF\uE0E0\uE0E1\uE0E2\uE0E3\uE0E4\uE0E5\uE0E6"+
+ "\uE0E7\uE0E8\uE0E9\uE0EA\uE0EB\uE0EC\uE0ED\uE0EE"+
+ "\uE0EF\uE0F0\uE0F1\uE0F2\uE0F3\uE0F4\uE0F5\uE0F6"+
+ "\uE0F7\uE0F8\uE0F9\uE0FA\uE0FB\uE0FC\uE0FD\uE0FE"+
+ "\uE0FF\uE100\uE101\uE102\uE103\uE104\uE105\uE106"+
+ "\uE107\uE108\uE109\uE10A\uE10B\uE10C\uE10D\uE10E"+
+ "\uE10F\uE110\uE111\uE112\uE113\uE114\uE115\uE116"+
+ "\uE117\uE118\uE119\u747B\u747C\u747D\u747F\u7482"+
+ "\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D"+
+ "\u748F\u7491\u7492\u7493\u7494\u7495\u7496\u7497"+
+ "\u7498\u7499\u749A\u749B\u749D\u749F\u74A0\u74A1"+
+ "\u74A2\u74A3\u74A4\u74A5\u74A6\u74AA\u74AB\u74AC"+
+ "\u74AD\u74AE\u74AF\u74B0\u74B1\u74B2\u74B3\u74B4"+
+ "\u74B5\u74B6\u74B7\u74B8\u74B9\u74BB\u74BC\u74BD"+
+ "\u74BE\u74BF\u74C0\u74C1\u74C2\u74C3\u74C4\u74C5"+
+ "\u74C6\u74C7\uFFFD\u74C8\u74C9\u74CA\u74CB\u74CC"+
+ "\u74CD\u74CE\u74CF\u74D0\u74D1\u74D3\u74D4\u74D5"+
+ "\u74D6\u74D7\u74D8\u74D9\u74DA\u74DB\u74DD\u74DF"+
+ "\u74E1\u74E5\u74E7\u74E8\u74E9\u74EA\u74EB\u74EC"+
+ "\u74ED\u74F0\u74F1\u74F2\uE11A\uE11B\uE11C\uE11D"+
+ "\uE11E\uE11F\uE120\uE121\uE122\uE123\uE124\uE125"+
+ "\uE126\uE127\uE128\uE129\uE12A\uE12B\uE12C\uE12D"+
+ "\uE12E\uE12F\uE130\uE131\uE132\uE133\uE134\uE135"+
+ "\uE136\uE137\uE138\uE139\uE13A\uE13B\uE13C\uE13D"+
+ "\uE13E\uE13F\uE140\uE141\uE142\uE143\uE144\uE145"+
+ "\uE146\uE147\uE148\uE149\uE14A\uE14B\uE14C\uE14D"+
+ "\uE14E\uE14F\uE150\uE151\uE152\uE153\uE154\uE155"+
+ "\uE156\uE157\uE158\uE159\uE15A\uE15B\uE15C\uE15D"+
+ "\uE15E\uE15F\uE160\uE161\uE162\uE163\uE164\uE165"+
+ "\uE166\uE167\uE168\uE169\uE16A\uE16B\uE16C\uE16D"+
+ "\uE16E\uE16F\uE170\uE171\uE172\uE173\uE174\uE175"+
+ "\uE176\uE177\u74F3\u74F5\u74F8\u74F9\u74FA\u74FB"+
+ "\u74FC\u74FD\u74FE\u7500\u7501\u7502\u7503\u7505"+
+ "\u7506\u7507\u7508\u7509\u750A\u750B\u750C\u750E"+
+ "\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D"+
+ "\u751E\u7520\u7521\u7522\u7523\u7524\u7526\u7527"+
+ "\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F"+
+ "\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A"+
+ "\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557"+
+ "\u7558\uFFFD\u755D\u755E\u755F\u7560\u7561\u7562"+
+ "\u7563\u7564\u7567\u7568\u7569\u756B\u756C\u756D"+
+ "\u756E\u756F\u7570\u7571\u7573\u7575\u7576\u7577"+
+ "\u757A\u757B\u757C\u757D\u757E\u7580\u7581\u7582"+
+ "\u7584\u7585\u7587\uE178\uE179\uE17A\uE17B\uE17C"+
+ "\uE17D\uE17E\uE17F\uE180\uE181\uE182\uE183\uE184"+
+ "\uE185\uE186\uE187\uE188\uE189\uE18A\uE18B\uE18C"+
+ "\uE18D\uE18E\uE18F\uE190\uE191\uE192\uE193\uE194"+
+ "\uE195\uE196\uE197\uE198\uE199\uE19A\uE19B\uE19C"+
+ "\uE19D\uE19E\uE19F\uE1A0\uE1A1\uE1A2\uE1A3\uE1A4"+
+ "\uE1A5\uE1A6\uE1A7\uE1A8\uE1A9\uE1AA\uE1AB\uE1AC"+
+ "\uE1AD\uE1AE\uE1AF\uE1B0\uE1B1\uE1B2\uE1B3\uE1B4"+
+ "\uE1B5\uE1B6\uE1B7\uE1B8\uE1B9\uE1BA\uE1BB\uE1BC"+
+ "\uE1BD\uE1BE\uE1BF\uE1C0\uE1C1\uE1C2\uE1C3\uE1C4"+
+ "\uE1C5\uE1C6\uE1C7\uE1C8\uE1C9\uE1CA\uE1CB\uE1CC"+
+ "\uE1CD\uE1CE\uE1CF\uE1D0\uE1D1\uE1D2\uE1D3\uE1D4"+
+ "\uE1D5\u7588\u7589\u758A\u758C\u758D\u758E\u7590"+
+ "\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6"+
+ "\u75A7\u75A8\u75A9\u75AA\u75AD\u75B6\u75B7\u75BA"+
+ "\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE"+
+ "\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC"+
+ "\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED"+
+ "\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8"+
+ "\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"+
+ "\uFFFD\u7608\u7609\u760B\u760D\u760E\u760F\u7611"+
+ "\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E"+
+ "\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631"+
+ "\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641"+
+ "\u7642\u7644\uE1D6\uE1D7\uE1D8\uE1D9\uE1DA\uE1DB"+
+ "\uE1DC\uE1DD\uE1DE\uE1DF\uE1E0\uE1E1\uE1E2\uE1E3"+
+ "\uE1E4\uE1E5\uE1E6\uE1E7\uE1E8\uE1E9\uE1EA\uE1EB"+
+ "\uE1EC\uE1ED\uE1EE\uE1EF\uE1F0\uE1F1\uE1F2\uE1F3"+
+ "\uE1F4\uE1F5\uE1F6\uE1F7\uE1F8\uE1F9\uE1FA\uE1FB"+
+ "\uE1FC\uE1FD\uE1FE\uE1FF\uE200\uE201\uE202\uE203"+
+ "\uE204\uE205\uE206\uE207\uE208\uE209\uE20A\uE20B"+
+ "\uE20C\uE20D\uE20E\uE20F\uE210\uE211\uE212\uE213"+
+ "\uE214\uE215\uE216\uE217\uE218\uE219\uE21A\uE21B"+
+ "\uE21C\uE21D\uE21E\uE21F\uE220\uE221\uE222\uE223"+
+ "\uE224\uE225\uE226\uE227\uE228\uE229\uE22A\uE22B"+
+ "\uE22C\uE22D\uE22E\uE22F\uE230\uE231\uE232\uE233";
+
+ private final static String innerIndex3=
+ "\u7645\u7646\u7647\u7648\u7649\u764A\u764B\u764E"+
+ "\u764F\u7650\u7651\u7652\u7653\u7655\u7657\u7658"+
+ "\u7659\u765A\u765B\u765D\u765F\u7660\u7661\u7662"+
+ "\u7664\u7665\u7666\u7667\u7668\u7669\u766A\u766C"+
+ "\u766D\u766E\u7670\u7671\u7672\u7673\u7674\u7675"+
+ "\u7676\u7677\u7679\u767A\u767C\u767F\u7680\u7681"+
+ "\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690"+
+ "\u7692\u7694\u7695\u7697\u7698\u769A\u769B\uFFFD"+
+ "\u769C\u769D\u769E\u769F\u76A0\u76A1\u76A2\u76A3"+
+ "\u76A5\u76A6\u76A7\u76A8\u76A9\u76AA\u76AB\u76AC"+
+ "\u76AD\u76AF\u76B0\u76B3\u76B5\u76B6\u76B7\u76B8"+
+ "\u76B9\u76BA\u76BB\u76BC\u76BD\u76BE\u76C0\u76C1"+
+ "\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0"+
+ "\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698"+
+ "\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA"+
+ "\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1"+
+ "\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252"+
+ "\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB"+
+ "\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D"+
+ "\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591"+
+ "\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E"+
+ "\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E"+
+ "\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551"+
+ "\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265\u76C4"+
+ "\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA"+
+ "\u76DC\u76DD\u76DE\u76E0\u76E1\u76E2\u76E3\u76E4"+
+ "\u76E6\u76E7\u76E8\u76E9\u76EA\u76EB\u76EC\u76ED"+
+ "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD"+
+ "\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C"+
+ "\u770E\u770F\u7710\u7711\u7712\u7713\u7714\u7715"+
+ "\u7716\u7717\u7718\u771B\u771C\u771D\u771E\u7721"+
+ "\u7723\u7724\u7725\u7727\u772A\u772B\uFFFD\u772C"+
+ "\u772E\u7730\u7731\u7732\u7733\u7734\u7739\u773B"+
+ "\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748"+
+ "\u7749\u774A\u774B\u774C\u774D\u774E\u774F\u7752"+
+ "\u7753\u7754\u7755\u7756\u7757\u7758\u7759\u775C"+
+ "\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5"+
+ "\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351"+
+ "\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907"+
+ "\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29"+
+ "\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4"+
+ "\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9"+
+ "\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5"+
+ "\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16"+
+ "\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB"+
+ "\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B"+
+ "\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175"+
+ "\u51B0\u67C4\u4E19\u79C9\u997C\u70B3\u775D\u775E"+
+ "\u775F\u7760\u7764\u7767\u7769\u776A\u776D\u776E"+
+ "\u776F\u7770\u7771\u7772\u7773\u7774\u7775\u7776"+
+ "\u7777\u7778\u777A\u777B\u777C\u7781\u7782\u7783"+
+ "\u7786\u7787\u7788\u7789\u778A\u778B\u778F\u7790"+
+ "\u7793\u7794\u7795\u7796\u7797\u7798\u7799\u779A"+
+ "\u779B\u779C\u779D\u779E\u77A1\u77A3\u77A4\u77A6"+
+ "\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4"+
+ "\u77B6\u77B7\u77B8\u77B9\u77BA\uFFFD\u77BC\u77BE"+
+ "\u77C0\u77C1\u77C2\u77C3\u77C4\u77C5\u77C6\u77C7"+
+ "\u77C8\u77C9\u77CA\u77CB\u77CC\u77CE\u77CF\u77D0"+
+ "\u77D1\u77D2\u77D3\u77D4\u77D5\u77D6\u77D8\u77D9"+
+ "\u77DA\u77DD\u77DE\u77DF\u77E0\u77E1\u77E4\u75C5"+
+ "\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A"+
+ "\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116"+
+ "\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865"+
+ "\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6"+
+ "\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7"+
+ "\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED"+
+ "\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD"+
+ "\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C"+
+ "\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5"+
+ "\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4"+
+ "\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2"+
+ "\u4EA7\u9610\u98A4\u660C\u7316\u77E6\u77E8\u77EA"+
+ "\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9"+
+ "\u77FA\u77FB\u77FC\u7803\u7804\u7805\u7806\u7807"+
+ "\u7808\u780A\u780B\u780E\u780F\u7810\u7813\u7815"+
+ "\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828"+
+ "\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835"+
+ "\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846"+
+ "\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853"+
+ "\u7854\u7858\u7859\u785A\uFFFD\u785B\u785C\u785E"+
+ "\u785F\u7860\u7861\u7862\u7863\u7864\u7865\u7866"+
+ "\u7867\u7868\u7869\u786F\u7870\u7871\u7872\u7873"+
+ "\u7874\u7875\u7876\u7878\u7879\u787A\u787B\u787D"+
+ "\u787E\u787F\u7880\u7881\u7882\u7883\u573A\u5C1D"+
+ "\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531"+
+ "\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2"+
+ "\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88"+
+ "\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648"+
+ "\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448"+
+ "\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B"+
+ "\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B"+
+ "\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5"+
+ "\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C"+
+ "\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785"+
+ "\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504"+
+ "\u96CF\u6EC1\u9664\u695A\u7884\u7885\u7886\u7888"+
+ "\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896"+
+ "\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8"+
+ "\u78A9\u78AA\u78AB\u78AC\u78AD\u78AE\u78AF\u78B5"+
+ "\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF"+
+ "\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC"+
+ "\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7"+
+ "\u78D8\u78DA\u78DB\u78DC\u78DD\u78DE\u78DF\u78E0"+
+ "\u78E1\u78E2\u78E3\uFFFD\u78E4\u78E5\u78E6\u78E7"+
+ "\u78E9\u78EA\u78EB\u78ED\u78EE\u78EF\u78F0\u78F1"+
+ "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB\u78FC\u78FD"+
+ "\u78FE\u78FF\u7900\u7902\u7903\u7904\u7906\u7907"+
+ "\u7908\u7909\u790A\u790B\u790C\u7840\u50A8\u77D7"+
+ "\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20"+
+ "\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF"+
+ "\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F"+
+ "\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5"+
+ "\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64"+
+ "\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE"+
+ "\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1"+
+ "\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC"+
+ "\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA"+
+ "\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927"+
+ "\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37"+
+ "\u888B\u5F85\u902E\u790D\u790E\u790F\u7910\u7911"+
+ "\u7912\u7914\u7915\u7916\u7917\u7918\u7919\u791A"+
+ "\u791B\u791C\u791D\u791F\u7920\u7921\u7922\u7923"+
+ "\u7925\u7926\u7927\u7928\u7929\u792A\u792B\u792C"+
+ "\u792D\u792E\u792F\u7930\u7931\u7932\u7933\u7935"+
+ "\u7936\u7937\u7938\u7939\u793D\u793F\u7942\u7943"+
+ "\u7944\u7945\u7947\u794A\u794B\u794C\u794D\u794E"+
+ "\u794F\u7950\u7951\u7952\u7954\u7955\u7958\u7959"+
+ "\u7961\u7963\uFFFD\u7964\u7966\u7969\u796A\u796B"+
+ "\u796C\u796E\u7970\u7971\u7972\u7973\u7974\u7975"+
+ "\u7976\u7979\u797B\u797C\u797D\u797E\u797F\u7982"+
+ "\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D"+
+ "\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39"+
+ "\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE"+
+ "\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361"+
+ "\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC"+
+ "\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684"+
+ "\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824"+
+ "\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF"+
+ "\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F"+
+ "\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178"+
+ "\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960"+
+ "\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389"+
+ "\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED"+
+ "\u8C0D\u53E0\u7993\u7994\u7995\u7996\u7997\u7998"+
+ "\u7999\u799B\u799C\u799D\u799E\u799F\u79A0\u79A1"+
+ "\u79A2\u79A3\u79A4\u79A5\u79A6\u79A8\u79A9\u79AA"+
+ "\u79AB\u79AC\u79AD\u79AE\u79AF\u79B0\u79B1\u79B2"+
+ "\u79B4\u79B5\u79B6\u79B7\u79B8\u79BC\u79BF\u79C2"+
+ "\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF"+
+ "\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9\u79DA\u79DB"+
+ "\u79DC\u79DD\u79DE\u79E0\u79E1\u79E2\u79E5\u79E8"+
+ "\u79EA\uFFFD\u79EC\u79EE\u79F1\u79F2\u79F3\u79F4"+
+ "\u79F5\u79F6\u79F7\u79F9\u79FA\u79FC\u79FE\u79FF"+
+ "\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C"+
+ "\u7A0F\u7A10\u7A11\u7A12\u7A13\u7A15\u7A16\u7A18"+
+ "\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876"+
+ "\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463"+
+ "\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C"+
+ "\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763"+
+ "\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C"+
+ "\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B"+
+ "\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9"+
+ "\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041"+
+ "\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA"+
+ "\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4"+
+ "\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102"+
+ "\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31"+
+ "\u4E8C\u7A1D\u7A1F\u7A21\u7A22\u7A24\u7A25\u7A26"+
+ "\u7A27\u7A28\u7A29\u7A2A\u7A2B\u7A2C\u7A2D\u7A2E"+
+ "\u7A2F\u7A30\u7A31\u7A32\u7A34\u7A35\u7A36\u7A38"+
+ "\u7A3A\u7A3E\u7A40\u7A41\u7A42\u7A43\u7A44\u7A45"+
+ "\u7A47\u7A48\u7A49\u7A4A\u7A4B\u7A4C\u7A4D\u7A4E"+
+ "\u7A4F\u7A50\u7A52\u7A53\u7A54\u7A55\u7A56\u7A58"+
+ "\u7A59\u7A5A\u7A5B\u7A5C\u7A5D\u7A5E\u7A5F\u7A60"+
+ "\u7A61\u7A62\u7A63\u7A64\u7A65\u7A66\u7A67\u7A68"+
+ "\uFFFD\u7A69\u7A6A\u7A6B\u7A6C\u7A6D\u7A6E\u7A6F"+
+ "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E"+
+ "\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E"+
+ "\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E"+
+ "\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F"+
+ "\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A"+
+ "\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303"+
+ "\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA"+
+ "\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2"+
+ "\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA"+
+ "\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206"+
+ "\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF"+
+ "\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B"+
+ "\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949"+
+ "\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276"+
+ "\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"+
+ "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE\u7AAF"+
+ "\u7AB0\u7AB1\u7AB2\u7AB4\u7AB5\u7AB6\u7AB7\u7AB8"+
+ "\u7AB9\u7ABA\u7ABB\u7ABC\u7ABD\u7ABE\u7AC0\u7AC1"+
+ "\u7AC2\u7AC3\u7AC4\u7AC5\u7AC6\u7AC7\u7AC8\u7AC9"+
+ "\u7ACA\u7ACC\u7ACD\u7ACE\u7ACF\u7AD0\u7AD1\u7AD2"+
+ "\u7AD3\u7AD4\u7AD5\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC"+
+ "\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7\u7AE8\u7AE9\u7AEA"+
+ "\u7AEB\u7AEC\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3\uFFFD"+
+ "\u7AF4\u7AF5\u7AF6\u7AF7\u7AF8\u7AFB\u7AFC\u7AFE"+
+ "\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D"+
+ "\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A"+
+ "\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29"+
+ "\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A"+
+ "\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150"+
+ "\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C"+
+ "\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A"+
+ "\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6"+
+ "\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76"+
+ "\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38"+
+ "\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8"+
+ "\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5"+
+ "\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769"+
+ "\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404"+
+ "\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9\u7B2F"+
+ "\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B"+
+ "\u7B3D\u7B3F\u7B40\u7B41\u7B42\u7B43\u7B44\u7B46"+
+ "\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59"+
+ "\u7B5C\u7B5E\u7B5F\u7B61\u7B63\u7B64\u7B65\u7B66"+
+ "\u7B67\u7B68\u7B69\u7B6A\u7B6B\u7B6C\u7B6D\u7B6F"+
+ "\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D"+
+ "\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86\u7B87\u7B88"+
+ "\u7B89\u7B8A\u7B8B\u7B8C\u7B8E\u7B8F\uFFFD\u7B91"+
+ "\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E"+
+ "\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0"+
+ "\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9\u7BBA\u7BBB"+
+ "\u7BBC\u7BBD\u7BBE\u7BBF\u7BC0\u7BC2\u7BC3\u7BC4"+
+ "\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A"+
+ "\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1"+
+ "\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2"+
+ "\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30"+
+ "\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37"+
+ "\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250"+
+ "\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173"+
+ "\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C"+
+ "\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845"+
+ "\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842"+
+ "\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505"+
+ "\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8\u7BC5\u7BC8"+
+ "\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2"+
+ "\u7BD4\u7BD5\u7BD6\u7BD7\u7BD8\u7BDB\u7BDC\u7BDE"+
+ "\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9"+
+ "\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2\u7BF3\u7BF4"+
+ "\u7BF5\u7BF6\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF"+
+ "\u7C00\u7C01\u7C02\u7C03\u7C04\u7C05\u7C06\u7C08"+
+ "\u7C09\u7C0A\u7C0D\u7C0E\u7C10\u7C11\u7C12\u7C13"+
+ "\u7C14\u7C15\u7C17\u7C18\u7C19\uFFFD\u7C1A\u7C1B"+
+ "\u7C1C\u7C1D\u7C1E\u7C20\u7C21\u7C22\u7C23\u7C24"+
+ "\u7C25\u7C28\u7C29\u7C2B\u7C2C\u7C2D\u7C2E\u7C2F"+
+ "\u7C30\u7C31\u7C32\u7C33\u7C34\u7C35\u7C36\u7C37"+
+ "\u7C39\u7C3A\u7C3B\u7C3C\u7C3D\u7C3E\u7C42\u9AB8"+
+ "\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8"+
+ "\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55"+
+ "\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57"+
+ "\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB"+
+ "\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377"+
+ "\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89"+
+ "\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F"+
+ "\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A"+
+ "\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A"+
+ "\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A"+
+ "\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B"+
+ "\u80E1\u8774\u72D0\u7CCA\u6E56\u7C43\u7C44\u7C45"+
+ "\u7C46\u7C47\u7C48\u7C49\u7C4A\u7C4B\u7C4C\u7C4E"+
+ "\u7C4F\u7C50\u7C51\u7C52\u7C53\u7C54\u7C55\u7C56"+
+ "\u7C57\u7C58\u7C59\u7C5A\u7C5B\u7C5C\u7C5D\u7C5E"+
+ "\u7C5F\u7C60\u7C61\u7C62\u7C63\u7C64\u7C65\u7C66"+
+ "\u7C67\u7C68\u7C69\u7C6A\u7C6B\u7C6C\u7C6D\u7C6E"+
+ "\u7C6F\u7C70\u7C71\u7C72\u7C75\u7C76\u7C77\u7C78"+
+ "\u7C79\u7C7A\u7C7E\u7C7F\u7C80\u7C81\u7C82\u7C83"+
+ "\u7C84\u7C85\u7C86\u7C87\uFFFD\u7C88\u7C8A\u7C8B"+
+ "\u7C8C\u7C8D\u7C8E\u7C8F\u7C90\u7C93\u7C94\u7C96"+
+ "\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7"+
+ "\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4"+
+ "\u7CB5\u7CB6\u7CB7\u7CB8\u7CBA\u7CBB\u5F27\u864E"+
+ "\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E"+
+ "\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A"+
+ "\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13"+
+ "\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6"+
+ "\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687"+
+ "\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070"+
+ "\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094"+
+ "\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9"+
+ "\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42"+
+ "\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216"+
+ "\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A"+
+ "\u7578\u7A3D\u79EF\u7B95\u7CBF\u7CC0\u7CC2\u7CC3"+
+ "\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE\u7CCF\u7CD0\u7CD1"+
+ "\u7CD2\u7CD3\u7CD4\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE"+
+ "\u7CE1\u7CE2\u7CE3\u7CE4\u7CE5\u7CE6\u7CE7\u7CE9"+
+ "\u7CEA\u7CEB\u7CEC\u7CED\u7CEE\u7CF0\u7CF1\u7CF2"+
+ "\u7CF3\u7CF4\u7CF5\u7CF6\u7CF7\u7CF9\u7CFA\u7CFC"+
+ "\u7CFD\u7CFE\u7CFF\u7D00\u7D01\u7D02\u7D03\u7D04"+
+ "\u7D05\u7D06\u7D07\u7D08\u7D09\u7D0B\u7D0C\u7D0D"+
+ "\u7D0E\u7D0F\u7D10\uFFFD\u7D11\u7D12\u7D13\u7D14"+
+ "\u7D15\u7D16\u7D17\u7D18\u7D19\u7D1A\u7D1B\u7D1C"+
+ "\u7D1D\u7D1E\u7D1F\u7D21\u7D23\u7D24\u7D25\u7D26"+
+ "\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30\u7D31"+
+ "\u7D32\u7D33\u7D34\u7D35\u7D36\u808C\u9965\u8FF9"+
+ "\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781"+
+ "\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72"+
+ "\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF"+
+ "\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E"+
+ "\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993"+
+ "\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0"+
+ "\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7"+
+ "\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A"+
+ "\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327"+
+ "\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED"+
+ "\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1"+
+ "\u952E\u7BAD\u4EF6\u7D37\u7D38\u7D39\u7D3A\u7D3B"+
+ "\u7D3C\u7D3D\u7D3E\u7D3F\u7D40\u7D41\u7D42\u7D43"+
+ "\u7D44\u7D45\u7D46\u7D47\u7D48\u7D49\u7D4A\u7D4B"+
+ "\u7D4C\u7D4D\u7D4E\u7D4F\u7D50\u7D51\u7D52\u7D53"+
+ "\u7D54\u7D55\u7D56\u7D57\u7D58\u7D59\u7D5A\u7D5B"+
+ "\u7D5C\u7D5D\u7D5E\u7D5F\u7D60\u7D61\u7D62\u7D63"+
+ "\u7D64\u7D65\u7D66\u7D67\u7D68\u7D69\u7D6A\u7D6B"+
+ "\u7D6C\u7D6D\u7D6F\u7D70\u7D71\u7D72\u7D73\u7D74"+
+ "\u7D75\u7D76\uFFFD\u7D78\u7D79\u7D7A\u7D7B\u7D7C"+
+ "\u7D7D\u7D7E\u7D7F\u7D80\u7D81\u7D82\u7D83\u7D84"+
+ "\u7D85\u7D86\u7D87\u7D88\u7D89\u7D8A\u7D8B\u7D8C"+
+ "\u7D8D\u7D8E\u7D8F\u7D90\u7D91\u7D92\u7D93\u7D94"+
+ "\u7D95\u7D96\u7D97\u7D98\u5065\u8230\u5251\u996F"+
+ "\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46"+
+ "\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171"+
+ "\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA"+
+ "\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5"+
+ "\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559"+
+ "\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686"+
+ "\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770"+
+ "\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212"+
+ "\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A"+
+ "\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27"+
+ "\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1"+
+ "\u70EC\u6D78\u7D99\u7D9A\u7D9B\u7D9C\u7D9D\u7D9E"+
+ "\u7D9F\u7DA0\u7DA1\u7DA2\u7DA3\u7DA4\u7DA5\u7DA7"+
+ "\u7DA8\u7DA9\u7DAA\u7DAB\u7DAC\u7DAD\u7DAF\u7DB0"+
+ "\u7DB1\u7DB2\u7DB3\u7DB4\u7DB5\u7DB6\u7DB7\u7DB8"+
+ "\u7DB9\u7DBA\u7DBB\u7DBC\u7DBD\u7DBE\u7DBF\u7DC0"+
+ "\u7DC1\u7DC2\u7DC3\u7DC4\u7DC5\u7DC6\u7DC7\u7DC8"+
+ "\u7DC9\u7DCA\u7DCB\u7DCC\u7DCD\u7DCE\u7DCF\u7DD0"+
+ "\u7DD1\u7DD2\u7DD3\u7DD4\u7DD5\u7DD6\u7DD7\u7DD8"+
+ "\u7DD9\uFFFD\u7DDA\u7DDB\u7DDC\u7DDD\u7DDE\u7DDF"+
+ "\u7DE0\u7DE1\u7DE2\u7DE3\u7DE4\u7DE5\u7DE6\u7DE7"+
+ "\u7DE8\u7DE9\u7DEA\u7DEB\u7DEC\u7DED\u7DEE\u7DEF"+
+ "\u7DF0\u7DF1\u7DF2\u7DF3\u7DF4\u7DF5\u7DF6\u7DF7"+
+ "\u7DF8\u7DF9\u7DFA\u5C3D\u52B2\u8346\u5162\u830E"+
+ "\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF"+
+ "\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C"+
+ "\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98"+
+ "\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D"+
+ "\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31"+
+ "\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA"+
+ "\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E"+
+ "\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7"+
+ "\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377"+
+ "\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9"+
+ "\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B"+
+ "\u5CFB\u7DFB\u7DFC\u7DFD\u7DFE\u7DFF\u7E00\u7E01"+
+ "\u7E02\u7E03\u7E04\u7E05\u7E06\u7E07\u7E08\u7E09"+
+ "\u7E0A\u7E0B\u7E0C\u7E0D\u7E0E\u7E0F\u7E10\u7E11"+
+ "\u7E12\u7E13\u7E14\u7E15\u7E16\u7E17\u7E18\u7E19"+
+ "\u7E1A\u7E1B\u7E1C\u7E1D\u7E1E\u7E1F\u7E20\u7E21"+
+ "\u7E22\u7E23\u7E24\u7E25\u7E26\u7E27\u7E28\u7E29"+
+ "\u7E2A\u7E2B\u7E2C\u7E2D\u7E2E\u7E2F\u7E30\u7E31"+
+ "\u7E32\u7E33\u7E34\u7E35\u7E36\u7E37\u7E38\u7E39"+
+ "\uFFFD\u7E3A\u7E3C\u7E3D\u7E3E\u7E3F\u7E40\u7E42"+
+ "\u7E43\u7E44\u7E45\u7E46\u7E48\u7E49\u7E4A\u7E4B"+
+ "\u7E4C\u7E4D\u7E4E\u7E4F\u7E50\u7E51\u7E52\u7E53"+
+ "\u7E54\u7E55\u7E56\u7E57\u7E58\u7E59\u7E5A\u7E5B"+
+ "\u7E5C\u7E5D\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580"+
+ "\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168"+
+ "\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177"+
+ "\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4"+
+ "\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1"+
+ "\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE"+
+ "\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050"+
+ "\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED"+
+ "\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E"+
+ "\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E"+
+ "\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5"+
+ "\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080";
+
+ private final static String innerIndex4=
+ "\u7E5E\u7E5F\u7E60\u7E61\u7E62\u7E63\u7E64\u7E65"+
+ "\u7E66\u7E67\u7E68\u7E69\u7E6A\u7E6B\u7E6C\u7E6D"+
+ "\u7E6E\u7E6F\u7E70\u7E71\u7E72\u7E73\u7E74\u7E75"+
+ "\u7E76\u7E77\u7E78\u7E79\u7E7A\u7E7B\u7E7C\u7E7D"+
+ "\u7E7E\u7E7F\u7E80\u7E81\u7E83\u7E84\u7E85\u7E86"+
+ "\u7E87\u7E88\u7E89\u7E8A\u7E8B\u7E8C\u7E8D\u7E8E"+
+ "\u7E8F\u7E90\u7E91\u7E92\u7E93\u7E94\u7E95\u7E96"+
+ "\u7E97\u7E98\u7E99\u7E9A\u7E9C\u7E9D\u7E9E\uFFFD"+
+ "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9"+
+ "\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B\u7F3C\u7F3D"+
+ "\u7F3E\u7F3F\u7F40\u7F41\u7F43\u7F46\u7F47\u7F48"+
+ "\u7F49\u7F4A\u7F4B\u7F4C\u7F4D\u7F4E\u7F4F\u7F52"+
+ "\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0"+
+ "\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721"+
+ "\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A"+
+ "\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD"+
+ "\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC"+
+ "\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001"+
+ "\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7"+
+ "\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B"+
+ "\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281"+
+ "\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC"+
+ "\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389"+
+ "\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0\u7F56"+
+ "\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63\u7F64"+
+ "\u7F65\u7F66\u7F67\u7F6B\u7F6C\u7F6D\u7F6F\u7F70"+
+ "\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C"+
+ "\u7F7D\u7F7F\u7F80\u7F82\u7F83\u7F84\u7F85\u7F86"+
+ "\u7F87\u7F88\u7F89\u7F8B\u7F8D\u7F8F\u7F90\u7F91"+
+ "\u7F92\u7F93\u7F95\u7F96\u7F97\u7F98\u7F99\u7F9B"+
+ "\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8\u7FA9"+
+ "\u7FAA\u7FAB\u7FAC\u7FAD\u7FAE\u7FB1\uFFFD\u7FB3"+
+ "\u7FB4\u7FB5\u7FB6\u7FB7\u7FBA\u7FBB\u7FBE\u7FC0"+
+ "\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB"+
+ "\u7FCD\u7FCF\u7FD0\u7FD1\u7FD2\u7FD3\u7FD6\u7FD7"+
+ "\u7FD9\u7FDA\u7FDB\u7FDC\u7FDD\u7FDE\u7FE2\u7FE3"+
+ "\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9"+
+ "\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F"+
+ "\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE"+
+ "\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E"+
+ "\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5"+
+ "\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217"+
+ "\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716"+
+ "\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE"+
+ "\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC"+
+ "\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409"+
+ "\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3"+
+ "\u516D\u9F99\u804B\u5499\u7B3C\u7ABF\u7FE4\u7FE7"+
+ "\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4"+
+ "\u7FF5\u7FF6\u7FF7\u7FF8\u7FF9\u7FFA\u7FFD\u7FFE"+
+ "\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F"+
+ "\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021"+
+ "\u8023\u8024\u802B\u802C\u802D\u802E\u802F\u8030"+
+ "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041"+
+ "\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050"+
+ "\u8051\u8053\u8055\u8056\u8057\uFFFD\u8059\u805B"+
+ "\u805C\u805D\u805E\u805F\u8060\u8061\u8062\u8063"+
+ "\u8064\u8065\u8066\u8067\u8068\u806B\u806C\u806D"+
+ "\u806E\u806F\u8070\u8072\u8073\u8074\u8075\u8076"+
+ "\u8077\u8078\u8079\u807A\u807B\u807C\u807D\u9686"+
+ "\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F"+
+ "\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364"+
+ "\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F"+
+ "\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD"+
+ "\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B"+
+ "\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375"+
+ "\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6"+
+ "\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9"+
+ "\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB"+
+ "\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB"+
+ "\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE"+
+ "\u6EE1\u8513\u66FC\u6162\u6F2B\u807E\u8081\u8082"+
+ "\u8085\u8088\u808A\u808D\u808E\u808F\u8090\u8091"+
+ "\u8092\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6"+
+ "\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8"+
+ "\u80B9\u80BB\u80C5\u80C7\u80C8\u80C9\u80CA\u80CB"+
+ "\u80CF\u80D0\u80D1\u80D2\u80D3\u80D4\u80D5\u80D8"+
+ "\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7"+
+ "\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104"+
+ "\u8105\u8107\u8108\u810B\uFFFD\u810C\u8115\u8117"+
+ "\u8119\u811B\u811C\u811D\u811F\u8120\u8121\u8122"+
+ "\u8123\u8124\u8125\u8126\u8127\u8128\u8129\u812A"+
+ "\u812B\u812D\u812E\u8130\u8133\u8134\u8135\u8137"+
+ "\u8139\u813A\u813B\u813C\u813D\u813F\u8C29\u8292"+
+ "\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A"+
+ "\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C"+
+ "\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164"+
+ "\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0"+
+ "\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC"+
+ "\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761"+
+ "\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC"+
+ "\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D"+
+ "\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0"+
+ "\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF"+
+ "\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED"+
+ "\u540D\u547D\u8C2C\u6478\u8140\u8141\u8142\u8143"+
+ "\u8144\u8145\u8147\u8149\u814D\u814E\u814F\u8152"+
+ "\u8156\u8157\u8158\u815B\u815C\u815D\u815E\u815F"+
+ "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B"+
+ "\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178"+
+ "\u8181\u8183\u8184\u8185\u8186\u8187\u8189\u818B"+
+ "\u818C\u818D\u818E\u8190\u8192\u8193\u8194\u8195"+
+ "\u8196\u8197\u8199\u819A\u819E\u819F\u81A0\u81A1"+
+ "\u81A2\u81A4\u81A5\uFFFD\u81A7\u81A9\u81AB\u81AC"+
+ "\u81AD\u81AE\u81AF\u81B0\u81B1\u81B2\u81B4\u81B5"+
+ "\u81B6\u81B7\u81B8\u81B9\u81BC\u81BD\u81BE\u81BF"+
+ "\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD\u81CE"+
+ "\u81CF\u81D0\u81D1\u81D2\u81D3\u6479\u8611\u6A21"+
+ "\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8"+
+ "\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0"+
+ "\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55"+
+ "\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF"+
+ "\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43"+
+ "\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320"+
+ "\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9"+
+ "\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60"+
+ "\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE"+
+ "\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F"+
+ "\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0"+
+ "\u72DE\u51DD\u5B81\u81D4\u81D5\u81D6\u81D7\u81D8"+
+ "\u81D9\u81DA\u81DB\u81DC\u81DD\u81DE\u81DF\u81E0"+
+ "\u81E1\u81E2\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB"+
+ "\u81EE\u81EF\u81F0\u81F1\u81F2\u81F5\u81F6\u81F7"+
+ "\u81F8\u81F9\u81FA\u81FD\u81FF\u8203\u8207\u8208"+
+ "\u8209\u820A\u820B\u820E\u820F\u8211\u8213\u8215"+
+ "\u8216\u8217\u8218\u8219\u821A\u821D\u8220\u8224"+
+ "\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C"+
+ "\u823D\u823F\uFFFD\u8240\u8241\u8242\u8243\u8245"+
+ "\u8246\u8248\u824A\u824C\u824D\u824E\u8250\u8251"+
+ "\u8252\u8253\u8254\u8255\u8256\u8257\u8259\u825B"+
+ "\u825C\u825D\u825E\u8260\u8261\u8262\u8263\u8264"+
+ "\u8265\u8266\u8267\u8269\u62E7\u6CDE\u725B\u626D"+
+ "\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA"+
+ "\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF"+
+ "\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076"+
+ "\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD"+
+ "\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8"+
+ "\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1"+
+ "\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1"+
+ "\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D"+
+ "\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E"+
+ "\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F"+
+ "\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288"+
+ "\u7435\u6BD7\u826A\u826B\u826C\u826D\u8271\u8275"+
+ "\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283"+
+ "\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294"+
+ "\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3"+
+ "\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF"+
+ "\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6"+
+ "\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA"+
+ "\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6"+
+ "\u82F8\uFFFD\u82FA\u82FC\u82FD\u82FE\u82FF\u8300"+
+ "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318"+
+ "\u8319\u831D\u831E\u831F\u8320\u8321\u8322\u8323"+
+ "\u8324\u8325\u8326\u8329\u832A\u832E\u8330\u8332"+
+ "\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339"+
+ "\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97"+
+ "\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891"+
+ "\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73"+
+ "\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46"+
+ "\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6"+
+ "\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E"+
+ "\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A"+
+ "\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB"+
+ "\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948"+
+ "\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951"+
+ "\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB"+
+ "\u6390\u833E\u833F\u8341\u8342\u8344\u8345\u8348"+
+ "\u834A\u834B\u834C\u834D\u834E\u8353\u8355\u8356"+
+ "\u8357\u8358\u8359\u835D\u8362\u8370\u8371\u8372"+
+ "\u8373\u8374\u8375\u8376\u8379\u837A\u837E\u837F"+
+ "\u8380\u8381\u8382\u8383\u8384\u8387\u8388\u838A"+
+ "\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395"+
+ "\u8396\u8397\u8399\u839A\u839D\u839F\u83A1\u83A2"+
+ "\u83A3\u83A4\u83A5\u83A6\u83A7\u83AC\u83AD\u83AE"+
+ "\uFFFD\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3"+
+ "\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0"+
+ "\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB"+
+ "\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB"+
+ "\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5"+
+ "\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1"+
+ "\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C"+
+ "\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537"+
+ "\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7"+
+ "\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF"+
+ "\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5"+
+ "\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD"+
+ "\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE"+
+ "\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77"+
+ "\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5"+
+ "\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"+
+ "\u83EE\u83EF\u83F3\u83F4\u83F5\u83F6\u83F7\u83FA"+
+ "\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407"+
+ "\u8408\u8409\u840A\u8410\u8412\u8413\u8414\u8415"+
+ "\u8416\u8417\u8419\u841A\u841B\u841E\u841F\u8420"+
+ "\u8421\u8422\u8423\u8429\u842A\u842B\u842C\u842D"+
+ "\u842E\u842F\u8430\u8432\u8433\u8434\u8435\u8436"+
+ "\u8437\u8439\u843A\u843B\u843E\u843F\u8440\u8441"+
+ "\u8442\u8443\u8444\u8445\u8447\u8448\u8449\uFFFD"+
+ "\u844A\u844B\u844C\u844D\u844E\u844F\u8450\u8452"+
+ "\u8453\u8454\u8455\u8456\u8458\u845D\u845E\u845F"+
+ "\u8460\u8462\u8464\u8465\u8466\u8467\u8468\u846A"+
+ "\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B"+
+ "\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7"+
+ "\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238"+
+ "\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E"+
+ "\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4"+
+ "\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9"+
+ "\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4"+
+ "\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338"+
+ "\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197"+
+ "\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982"+
+ "\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A"+
+ "\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12"+
+ "\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1\u847D"+
+ "\u847E\u847F\u8480\u8481\u8483\u8484\u8485\u8486"+
+ "\u848A\u848D\u848F\u8490\u8491\u8492\u8493\u8494"+
+ "\u8495\u8496\u8498\u849A\u849B\u849D\u849E\u849F"+
+ "\u84A0\u84A2\u84A3\u84A4\u84A5\u84A6\u84A7\u84A8"+
+ "\u84A9\u84AA\u84AB\u84AC\u84AD\u84AE\u84B0\u84B1"+
+ "\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0"+
+ "\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC"+
+ "\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7\uFFFD\u84D8"+
+ "\u84D9\u84DA\u84DB\u84DC\u84DE\u84E1\u84E2\u84E4"+
+ "\u84E7\u84E8\u84E9\u84EA\u84EB\u84ED\u84EE\u84EF"+
+ "\u84F1\u84F2\u84F3\u84F4\u84F5\u84F6\u84F7\u84F8"+
+ "\u84F9\u84FA\u84FB\u84FD\u84FE\u8500\u8501\u8502"+
+ "\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B"+
+ "\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802"+
+ "\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B"+
+ "\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B"+
+ "\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247"+
+ "\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A"+
+ "\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6"+
+ "\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C"+
+ "\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE"+
+ "\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5"+
+ "\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17"+
+ "\u58F0\u751F\u7525\u7272\u5347\u7EF3\u8503\u8504"+
+ "\u8505\u8506\u8507\u8508\u8509\u850A\u850B\u850D"+
+ "\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518"+
+ "\u8519\u851B\u851C\u851D\u851E\u8520\u8522\u8523"+
+ "\u8524\u8525\u8526\u8527\u8528\u8529\u852A\u852D"+
+ "\u852E\u852F\u8530\u8531\u8532\u8533\u8534\u8535"+
+ "\u8536\u853E\u853F\u8540\u8541\u8542\u8544\u8545"+
+ "\u8546\u8547\u854B\u854C\u854D\u854E\u854F\u8550"+
+ "\u8551\u8552\u8553\u8554\u8555\uFFFD\u8557\u8558"+
+ "\u855A\u855B\u855C\u855D\u855F\u8560\u8561\u8562"+
+ "\u8563\u8565\u8566\u8567\u8569\u856A\u856B\u856C"+
+ "\u856D\u856E\u856F\u8570\u8571\u8573\u8575\u8576"+
+ "\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701"+
+ "\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD"+
+ "\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6"+
+ "\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F"+
+ "\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF"+
+ "\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C"+
+ "\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043"+
+ "\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF"+
+ "\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3"+
+ "\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66"+
+ "\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700"+
+ "\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D"+
+ "\u7AD6\u5885\u5EB6\u6570\u6F31\u8582\u8583\u8586"+
+ "\u8588\u8589\u858A\u858B\u858C\u858D\u858E\u8590"+
+ "\u8591\u8592\u8593\u8594\u8595\u8596\u8597\u8598"+
+ "\u8599\u859A\u859D\u859E\u859F\u85A0\u85A1\u85A2"+
+ "\u85A3\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD"+
+ "\u85B1\u85B2\u85B3\u85B4\u85B5\u85B6\u85B8\u85BA"+
+ "\u85BB\u85BC\u85BD\u85BE\u85BF\u85C0\u85C2\u85C3"+
+ "\u85C4\u85C5\u85C6\u85C7\u85C8\u85CA\u85CB\u85CC"+
+ "\u85CD\u85CE\u85D1\u85D2\uFFFD\u85D4\u85D6\u85D7"+
+ "\u85D8\u85D9\u85DA\u85DB\u85DD\u85DE\u85DF\u85E0"+
+ "\u85E1\u85E2\u85E3\u85E5\u85E6\u85E7\u85E8\u85EA"+
+ "\u85EB\u85EC\u85ED\u85EE\u85EF\u85F0\u85F1\u85F2"+
+ "\u85F3\u85F4\u85F5\u85F6\u85F7\u85F8\u6055\u5237"+
+ "\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C"+
+ "\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC"+
+ "\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495"+
+ "\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA"+
+ "\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038"+
+ "\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258"+
+ "\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F"+
+ "\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C"+
+ "\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81"+
+ "\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1"+
+ "\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C"+
+ "\u4ED6\u5B83\u5979\u5854\u85F9\u85FA\u85FC\u85FD"+
+ "\u85FE\u8600\u8601\u8602\u8603\u8604\u8606\u8607"+
+ "\u8608\u8609\u860A\u860B\u860C\u860D\u860E\u860F"+
+ "\u8610\u8612\u8613\u8614\u8615\u8617\u8618\u8619"+
+ "\u861A\u861B\u861C\u861D\u861E\u861F\u8620\u8621"+
+ "\u8622\u8623\u8624\u8625\u8626\u8628\u862A\u862B"+
+ "\u862C\u862D\u862E\u862F\u8630\u8631\u8632\u8633"+
+ "\u8634\u8635\u8636\u8637\u8639\u863A\u863B\u863D"+
+ "\u863E\u863F\u8640\uFFFD\u8641\u8642\u8643\u8644"+
+ "\u8645\u8646\u8647\u8648\u8649\u864A\u864B\u864C"+
+ "\u8652\u8653\u8655\u8656\u8657\u8658\u8659\u865B"+
+ "\u865C\u865D\u865F\u8660\u8661\u8663\u8664\u8665"+
+ "\u8666\u8667\u8668\u8669\u866A\u736D\u631E\u8E4B"+
+ "\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A"+
+ "\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B"+
+ "\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892"+
+ "\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802"+
+ "\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F"+
+ "\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003"+
+ "\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC"+
+ "\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44"+
+ "\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49"+
+ "\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146"+
+ "\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16"+
+ "\u5385\u542C\u70C3\u866D\u866F\u8670\u8672\u8673"+
+ "\u8674\u8675\u8676\u8677\u8678\u8683\u8684\u8685"+
+ "\u8686\u8687\u8688\u8689\u868E\u868F\u8690\u8691"+
+ "\u8692\u8694\u8696\u8697\u8698\u8699\u869A\u869B"+
+ "\u869E\u869F\u86A0\u86A1\u86A2\u86A5\u86A6\u86AB"+
+ "\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB"+
+ "\u86BC\u86BD\u86BE\u86BF\u86C1\u86C2\u86C3\u86C5"+
+ "\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7"+
+ "\u86DA\u86DC\uFFFD\u86DD\u86E0\u86E1\u86E2\u86E3"+
+ "\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF"+
+ "\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF"+
+ "\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F"+
+ "\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD"+
+ "\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C"+
+ "\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB"+
+ "\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE"+
+ "\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D"+
+ "\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E"+
+ "\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E"+
+ "\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9"+
+ "\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F"+
+ "\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D"+
+ "\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A"+
+ "\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8"+
+ "\u5984\u5A01\u8719\u871B\u871D\u871F\u8720\u8724"+
+ "\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F"+
+ "\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A"+
+ "\u873C\u873D\u8740\u8741\u8742\u8743\u8744\u8745"+
+ "\u8746\u874A\u874B\u874D\u874F\u8750\u8751\u8752"+
+ "\u8754\u8755\u8756\u8758\u875A\u875B\u875C\u875D"+
+ "\u875E\u875F\u8761\u8762\u8766\u8767\u8768\u8769"+
+ "\u876A\u876B\u876C\u876D\u876F\u8771\u8772\u8773"+
+ "\u8775\uFFFD\u8777\u8778\u8779\u877A\u877F\u8780"+
+ "\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E"+
+ "\u878F\u8790\u8791\u8792\u8794\u8795\u8796\u8798"+
+ "\u8799\u879A\u879B\u879C\u879D\u879E\u87A0\u87A1"+
+ "\u87A2\u87A3\u87A4\u5DCD\u5FAE\u5371\u97E6\u8FDD"+
+ "\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7"+
+ "\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A"+
+ "\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13"+
+ "\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB"+
+ "\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE"+
+ "\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1"+
+ "\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B"+
+ "\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94"+
+ "\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE"+
+ "\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199"+
+ "\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521"+
+ "\u727A\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0"+
+ "\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB"+
+ "\u87BC\u87BE\u87BF\u87C1\u87C2\u87C3\u87C4\u87C5"+
+ "\u87C7\u87C8\u87C9\u87CC\u87CD\u87CE\u87CF\u87D0"+
+ "\u87D4\u87D5\u87D6\u87D7\u87D8\u87D9\u87DA\u87DC"+
+ "\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6"+
+ "\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF\u87F0"+
+ "\u87F1\u87F2\u87F3\u87F4\u87F5\u87F6\u87F7\u87F8"+
+ "\uFFFD\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801"+
+ "\u8802\u8804\u8805\u8806\u8807\u8808\u8809\u880B"+
+ "\u880C\u880D\u880E\u880F\u8810\u8811\u8812\u8814"+
+ "\u8817\u8818\u8819\u881A\u881C\u881D\u881E\u881F"+
+ "\u8820\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915"+
+ "\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD"+
+ "\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699"+
+ "\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687"+
+ "\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380"+
+ "\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854"+
+ "\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0"+
+ "\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650"+
+ "\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58"+
+ "\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879"+
+ "\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704"+
+ "\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653";
+
+ private final static String innerIndex5=
+ "\u8824\u8825\u8826\u8827\u8828\u8829\u882A\u882B"+
+ "\u882C\u882D\u882E\u882F\u8830\u8831\u8833\u8834"+
+ "\u8835\u8836\u8837\u8838\u883A\u883B\u883D\u883E"+
+ "\u883F\u8841\u8842\u8843\u8846\u8847\u8848\u8849"+
+ "\u884A\u884B\u884E\u884F\u8850\u8851\u8852\u8853"+
+ "\u8855\u8856\u8858\u885A\u885B\u885C\u885D\u885E"+
+ "\u885F\u8860\u8866\u8867\u886A\u886D\u886F\u8871"+
+ "\u8873\u8874\u8875\u8876\u8878\u8879\u887A\uFFFD"+
+ "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A"+
+ "\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895"+
+ "\u8897\u8898\u8899\u889A\u889B\u889D\u889E\u889F"+
+ "\u88A0\u88A1\u88A3\u88A5\u88A6\u88A7\u88A8\u88A9"+
+ "\u88AA\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548"+
+ "\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A"+
+ "\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9"+
+ "\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C"+
+ "\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F"+
+ "\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2"+
+ "\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6"+
+ "\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E"+
+ "\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C"+
+ "\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157"+
+ "\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA"+
+ "\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384\u88AC"+
+ "\u88AE\u88AF\u88B0\u88B2\u88B3\u88B4\u88B5\u88B6"+
+ "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0"+
+ "\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD"+
+ "\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA\u88DB"+
+ "\u88DC\u88DD\u88DE\u88E0\u88E1\u88E6\u88E7\u88E9"+
+ "\u88EA\u88EB\u88EC\u88ED\u88EE\u88EF\u88F2\u88F5"+
+ "\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901"+
+ "\u8903\u8904\u8905\u8906\u8907\u8908\uFFFD\u8909"+
+ "\u890B\u890C\u890D\u890E\u890F\u8911\u8914\u8915"+
+ "\u8916\u8917\u8918\u891C\u891D\u891E\u891F\u8920"+
+ "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C"+
+ "\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937"+
+ "\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74"+
+ "\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB"+
+ "\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5"+
+ "\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259"+
+ "\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6"+
+ "\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814"+
+ "\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF"+
+ "\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5"+
+ "\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A"+
+ "\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F"+
+ "\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B"+
+ "\u6837\u6F3E\u9080\u8170\u5996\u7476\u8938\u8939"+
+ "\u893A\u893B\u893C\u893D\u893E\u893F\u8940\u8942"+
+ "\u8943\u8945\u8946\u8947\u8948\u8949\u894A\u894B"+
+ "\u894C\u894D\u894E\u894F\u8950\u8951\u8952\u8953"+
+ "\u8954\u8955\u8956\u8957\u8958\u8959\u895A\u895B"+
+ "\u895C\u895D\u8960\u8961\u8962\u8963\u8964\u8965"+
+ "\u8967\u8968\u8969\u896A\u896B\u896C\u896D\u896E"+
+ "\u896F\u8970\u8971\u8972\u8973\u8974\u8975\u8976"+
+ "\u8977\u8978\u8979\u897A\u897C\uFFFD\u897D\u897E"+
+ "\u8980\u8982\u8984\u8985\u8987\u8988\u8989\u898A"+
+ "\u898B\u898C\u898D\u898E\u898F\u8990\u8991\u8992"+
+ "\u8993\u8994\u8995\u8996\u8997\u8998\u8999\u899A"+
+ "\u899B\u899C\u899D\u899E\u899F\u89A0\u89A1\u6447"+
+ "\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F"+
+ "\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6"+
+ "\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C"+
+ "\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A"+
+ "\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591"+
+ "\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2"+
+ "\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79"+
+ "\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4"+
+ "\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE"+
+ "\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B"+
+ "\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB"+
+ "\u5BC5\u996E\u5C39\u5F15\u9690\u89A2\u89A3\u89A4"+
+ "\u89A5\u89A6\u89A7\u89A8\u89A9\u89AA\u89AB\u89AC"+
+ "\u89AD\u89AE\u89AF\u89B0\u89B1\u89B2\u89B3\u89B4"+
+ "\u89B5\u89B6\u89B7\u89B8\u89B9\u89BA\u89BB\u89BC"+
+ "\u89BD\u89BE\u89BF\u89C0\u89C3\u89CD\u89D3\u89D4"+
+ "\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0"+
+ "\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC"+
+ "\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4\u89F5\u89F6"+
+ "\u89F7\u89F8\u89F9\u89FA\uFFFD\u89FB\u89FC\u89FD"+
+ "\u89FE\u89FF\u8A01\u8A02\u8A03\u8A04\u8A05\u8A06"+
+ "\u8A08\u8A09\u8A0A\u8A0B\u8A0C\u8A0D\u8A0E\u8A0F"+
+ "\u8A10\u8A11\u8A12\u8A13\u8A14\u8A15\u8A16\u8A17"+
+ "\u8A18\u8A19\u8A1A\u8A1B\u8A1C\u8A1D\u5370\u82F1"+
+ "\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425"+
+ "\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C"+
+ "\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD"+
+ "\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7"+
+ "\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE"+
+ "\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3"+
+ "\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E"+
+ "\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E"+
+ "\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8"+
+ "\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF"+
+ "\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108"+
+ "\u6B32\u72F1\u80B2\u8A89\u8A1E\u8A1F\u8A20\u8A21"+
+ "\u8A22\u8A23\u8A24\u8A25\u8A26\u8A27\u8A28\u8A29"+
+ "\u8A2A\u8A2B\u8A2C\u8A2D\u8A2E\u8A2F\u8A30\u8A31"+
+ "\u8A32\u8A33\u8A34\u8A35\u8A36\u8A37\u8A38\u8A39"+
+ "\u8A3A\u8A3B\u8A3C\u8A3D\u8A3F\u8A40\u8A41\u8A42"+
+ "\u8A43\u8A44\u8A45\u8A46\u8A47\u8A49\u8A4A\u8A4B"+
+ "\u8A4C\u8A4D\u8A4E\u8A4F\u8A50\u8A51\u8A52\u8A53"+
+ "\u8A54\u8A55\u8A56\u8A57\u8A58\u8A59\u8A5A\u8A5B"+
+ "\u8A5C\u8A5D\u8A5E\uFFFD\u8A5F\u8A60\u8A61\u8A62"+
+ "\u8A63\u8A64\u8A65\u8A66\u8A67\u8A68\u8A69\u8A6A"+
+ "\u8A6B\u8A6C\u8A6D\u8A6E\u8A6F\u8A70\u8A71\u8A72"+
+ "\u8A73\u8A74\u8A75\u8A76\u8A77\u8A78\u8A7A\u8A7B"+
+ "\u8A7C\u8A7D\u8A7E\u8A7F\u8A80\u6D74\u5BD3\u88D5"+
+ "\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3"+
+ "\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F"+
+ "\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0"+
+ "\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6"+
+ "\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0"+
+ "\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742"+
+ "\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1"+
+ "\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF"+
+ "\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A"+
+ "\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD"+
+ "\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3"+
+ "\u6E23\u672D\u8F67\u8A81\u8A82\u8A83\u8A84\u8A85"+
+ "\u8A86\u8A87\u8A88\u8A8B\u8A8C\u8A8D\u8A8E\u8A8F"+
+ "\u8A90\u8A91\u8A92\u8A94\u8A95\u8A96\u8A97\u8A98"+
+ "\u8A99\u8A9A\u8A9B\u8A9C\u8A9D\u8A9E\u8A9F\u8AA0"+
+ "\u8AA1\u8AA2\u8AA3\u8AA4\u8AA5\u8AA6\u8AA7\u8AA8"+
+ "\u8AA9\u8AAA\u8AAB\u8AAC\u8AAD\u8AAE\u8AAF\u8AB0"+
+ "\u8AB1\u8AB2\u8AB3\u8AB4\u8AB5\u8AB6\u8AB7\u8AB8"+
+ "\u8AB9\u8ABA\u8ABB\u8ABC\u8ABD\u8ABE\u8ABF\u8AC0"+
+ "\u8AC1\u8AC2\uFFFD\u8AC3\u8AC4\u8AC5\u8AC6\u8AC7"+
+ "\u8AC8\u8AC9\u8ACA\u8ACB\u8ACC\u8ACD\u8ACE\u8ACF"+
+ "\u8AD0\u8AD1\u8AD2\u8AD3\u8AD4\u8AD5\u8AD6\u8AD7"+
+ "\u8AD8\u8AD9\u8ADA\u8ADB\u8ADC\u8ADD\u8ADE\u8ADF"+
+ "\u8AE0\u8AE1\u8AE2\u8AE3\u94E1\u95F8\u7728\u6805"+
+ "\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85"+
+ "\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE"+
+ "\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360"+
+ "\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33"+
+ "\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7"+
+ "\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75"+
+ "\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2"+
+ "\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD"+
+ "\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6"+
+ "\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8"+
+ "\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF"+
+ "\u6B63\u653F\u8AE4\u8AE5\u8AE6\u8AE7\u8AE8\u8AE9"+
+ "\u8AEA\u8AEB\u8AEC\u8AED\u8AEE\u8AEF\u8AF0\u8AF1"+
+ "\u8AF2\u8AF3\u8AF4\u8AF5\u8AF6\u8AF7\u8AF8\u8AF9"+
+ "\u8AFA\u8AFB\u8AFC\u8AFD\u8AFE\u8AFF\u8B00\u8B01"+
+ "\u8B02\u8B03\u8B04\u8B05\u8B06\u8B08\u8B09\u8B0A"+
+ "\u8B0B\u8B0C\u8B0D\u8B0E\u8B0F\u8B10\u8B11\u8B12"+
+ "\u8B13\u8B14\u8B15\u8B16\u8B17\u8B18\u8B19\u8B1A"+
+ "\u8B1B\u8B1C\u8B1D\u8B1E\u8B1F\u8B20\u8B21\u8B22"+
+ "\u8B23\uFFFD\u8B24\u8B25\u8B27\u8B28\u8B29\u8B2A"+
+ "\u8B2B\u8B2C\u8B2D\u8B2E\u8B2F\u8B30\u8B31\u8B32"+
+ "\u8B33\u8B34\u8B35\u8B36\u8B37\u8B38\u8B39\u8B3A"+
+ "\u8B3B\u8B3C\u8B3D\u8B3E\u8B3F\u8B40\u8B41\u8B42"+
+ "\u8B43\u8B44\u8B45\u5E27\u75C7\u90D1\u8BC1\u829D"+
+ "\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41"+
+ "\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C"+
+ "\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8"+
+ "\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9"+
+ "\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE"+
+ "\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8"+
+ "\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE"+
+ "\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1"+
+ "\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A"+
+ "\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9"+
+ "\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8"+
+ "\u7B51\u8B46\u8B47\u8B48\u8B49\u8B4A\u8B4B\u8B4C"+
+ "\u8B4D\u8B4E\u8B4F\u8B50\u8B51\u8B52\u8B53\u8B54"+
+ "\u8B55\u8B56\u8B57\u8B58\u8B59\u8B5A\u8B5B\u8B5C"+
+ "\u8B5D\u8B5E\u8B5F\u8B60\u8B61\u8B62\u8B63\u8B64"+
+ "\u8B65\u8B67\u8B68\u8B69\u8B6A\u8B6B\u8B6D\u8B6E"+
+ "\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75\u8B76"+
+ "\u8B77\u8B78\u8B79\u8B7A\u8B7B\u8B7C\u8B7D\u8B7E"+
+ "\u8B7F\u8B80\u8B81\u8B82\u8B83\u8B84\u8B85\u8B86"+
+ "\uFFFD\u8B87\u8B88\u8B89\u8B8A\u8B8B\u8B8C\u8B8D"+
+ "\u8B8E\u8B8F\u8B90\u8B91\u8B92\u8B93\u8B94\u8B95"+
+ "\u8B96\u8B97\u8B98\u8B99\u8B9A\u8B9B\u8B9C\u8B9D"+
+ "\u8B9E\u8B9F\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA"+
+ "\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A"+
+ "\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869"+
+ "\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525"+
+ "\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9"+
+ "\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C"+
+ "\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C"+
+ "\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57"+
+ "\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9"+
+ "\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956"+
+ "\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700"+
+ "\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A"+
+ "\u4F5C\u5750\u5EA7\uE810\uE811\uE812\uE813\uE814"+
+ "\u8C38\u8C39\u8C3A\u8C3B\u8C3C\u8C3D\u8C3E\u8C3F"+
+ "\u8C40\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B"+
+ "\u8C4D\u8C4E\u8C4F\u8C50\u8C51\u8C52\u8C53\u8C54"+
+ "\u8C56\u8C57\u8C58\u8C59\u8C5B\u8C5C\u8C5D\u8C5E"+
+ "\u8C5F\u8C60\u8C63\u8C64\u8C65\u8C66\u8C67\u8C68"+
+ "\u8C69\u8C6C\u8C6D\u8C6E\u8C6F\u8C70\u8C71\u8C72"+
+ "\u8C74\u8C75\u8C76\u8C77\u8C7B\u8C7C\u8C7D\u8C7E"+
+ "\u8C7F\u8C80\u8C81\u8C83\u8C84\u8C86\u8C87\uFFFD"+
+ "\u8C88\u8C8B\u8C8D\u8C8E\u8C8F\u8C90\u8C91\u8C92"+
+ "\u8C93\u8C95\u8C96\u8C97\u8C99\u8C9A\u8C9B\u8C9C"+
+ "\u8C9D\u8C9E\u8C9F\u8CA0\u8CA1\u8CA2\u8CA3\u8CA4"+
+ "\u8CA5\u8CA6\u8CA7\u8CA8\u8CA9\u8CAA\u8CAB\u8CAC"+
+ "\u8CAD\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15"+
+ "\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F"+
+ "\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4"+
+ "\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C"+
+ "\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D"+
+ "\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5"+
+ "\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208"+
+ "\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261"+
+ "\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182"+
+ "\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB"+
+ "\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27"+
+ "\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D\u8CAE"+
+ "\u8CAF\u8CB0\u8CB1\u8CB2\u8CB3\u8CB4\u8CB5\u8CB6"+
+ "\u8CB7\u8CB8\u8CB9\u8CBA\u8CBB\u8CBC\u8CBD\u8CBE"+
+ "\u8CBF\u8CC0\u8CC1\u8CC2\u8CC3\u8CC4\u8CC5\u8CC6"+
+ "\u8CC7\u8CC8\u8CC9\u8CCA\u8CCB\u8CCC\u8CCD\u8CCE"+
+ "\u8CCF\u8CD0\u8CD1\u8CD2\u8CD3\u8CD4\u8CD5\u8CD6"+
+ "\u8CD7\u8CD8\u8CD9\u8CDA\u8CDB\u8CDC\u8CDD\u8CDE"+
+ "\u8CDF\u8CE0\u8CE1\u8CE2\u8CE3\u8CE4\u8CE5\u8CE6"+
+ "\u8CE7\u8CE8\u8CE9\u8CEA\u8CEB\u8CEC\uFFFD\u8CED"+
+ "\u8CEE\u8CEF\u8CF0\u8CF1\u8CF2\u8CF3\u8CF4\u8CF5"+
+ "\u8CF6\u8CF7\u8CF8\u8CF9\u8CFA\u8CFB\u8CFC\u8CFD"+
+ "\u8CFE\u8CFF\u8D00\u8D01\u8D02\u8D03\u8D04\u8D05"+
+ "\u8D06\u8D07\u8D08\u8D09\u8D0A\u8D0B\u8D0C\u8D0D"+
+ "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89"+
+ "\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94"+
+ "\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1"+
+ "\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E"+
+ "\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043"+
+ "\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9"+
+ "\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107"+
+ "\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46"+
+ "\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9"+
+ "\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156"+
+ "\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34"+
+ "\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC\u8D0E\u8D0F"+
+ "\u8D10\u8D11\u8D12\u8D13\u8D14\u8D15\u8D16\u8D17"+
+ "\u8D18\u8D19\u8D1A\u8D1B\u8D1C\u8D20\u8D51\u8D52"+
+ "\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E"+
+ "\u8D6F\u8D71\u8D72\u8D78\u8D79\u8D7A\u8D7B\u8D7C"+
+ "\u8D7D\u8D7E\u8D7F\u8D80\u8D82\u8D83\u8D86\u8D87"+
+ "\u8D88\u8D89\u8D8C\u8D8D\u8D8E\u8D8F\u8D90\u8D92"+
+ "\u8D93\u8D95\u8D96\u8D97\u8D98\u8D99\u8D9A\u8D9B"+
+ "\u8D9C\u8D9D\u8D9E\u8DA0\u8DA1\uFFFD\u8DA2\u8DA4"+
+ "\u8DA5\u8DA6\u8DA7\u8DA8\u8DA9\u8DAA\u8DAB\u8DAC"+
+ "\u8DAD\u8DAE\u8DAF\u8DB0\u8DB2\u8DB6\u8DB7\u8DB9"+
+ "\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8"+
+ "\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7"+
+ "\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4"+
+ "\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2"+
+ "\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0"+
+ "\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9"+
+ "\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F"+
+ "\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18"+
+ "\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B"+
+ "\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A"+
+ "\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642"+
+ "\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688"+
+ "\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC"+
+ "\u90A1\u90B4\u90B3\u90B6\u90BA\u8DD5\u8DD8\u8DD9"+
+ "\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9"+
+ "\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC"+
+ "\u8DFE\u8DFF\u8E00\u8E01\u8E02\u8E03\u8E04\u8E06"+
+ "\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12"+
+ "\u8E13\u8E15\u8E16\u8E17\u8E18\u8E19\u8E1A\u8E1B"+
+ "\u8E1C\u8E20\u8E21\u8E24\u8E25\u8E26\u8E27\u8E28"+
+ "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37"+
+ "\u8E38\u8E3B\u8E3C\u8E3E\uFFFD\u8E3F\u8E43\u8E45"+
+ "\u8E46\u8E4C\u8E4D\u8E4E\u8E4F\u8E50\u8E53\u8E54"+
+ "\u8E55\u8E56\u8E57\u8E58\u8E5A\u8E5B\u8E5C\u8E5D"+
+ "\u8E5E\u8E5F\u8E60\u8E61\u8E62\u8E63\u8E64\u8E65"+
+ "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0"+
+ "\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6"+
+ "\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104"+
+ "\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146"+
+ "\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0"+
+ "\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC"+
+ "\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1"+
+ "\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733"+
+ "\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785"+
+ "\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773"+
+ "\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793"+
+ "\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4"+
+ "\u57EF\u57F8\u57E4\u57DD\u8E73\u8E75\u8E77\u8E78"+
+ "\u8E79\u8E7A\u8E7B\u8E7D\u8E7E\u8E80\u8E82\u8E83"+
+ "\u8E84\u8E86\u8E88\u8E89\u8E8A\u8E8B\u8E8C\u8E8D"+
+ "\u8E8E\u8E91\u8E92\u8E93\u8E95\u8E96\u8E97\u8E98"+
+ "\u8E99\u8E9A\u8E9B\u8E9D\u8E9F\u8EA0\u8EA1\u8EA2"+
+ "\u8EA3\u8EA4\u8EA5\u8EA6\u8EA7\u8EA8\u8EA9\u8EAA"+
+ "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3\u8EB4\u8EB5\u8EB6"+
+ "\u8EB7\u8EB8\u8EB9\u8EBB\u8EBC\u8EBD\u8EBE\u8EBF"+
+ "\u8EC0\u8EC1\u8EC2\uFFFD\u8EC3\u8EC4\u8EC5\u8EC6"+
+ "\u8EC7\u8EC8\u8EC9\u8ECA\u8ECB\u8ECC\u8ECD\u8ECF"+
+ "\u8ED0\u8ED1\u8ED2\u8ED3\u8ED4\u8ED5\u8ED6\u8ED7"+
+ "\u8ED8\u8ED9\u8EDA\u8EDB\u8EDC\u8EDD\u8EDE\u8EDF"+
+ "\u8EE0\u8EE1\u8EE2\u8EE3\u8EE4\u580B\u580D\u57FD"+
+ "\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C"+
+ "\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279"+
+ "\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291"+
+ "\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA"+
+ "\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9"+
+ "\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1"+
+ "\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2"+
+ "\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314"+
+ "\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308"+
+ "\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F"+
+ "\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A"+
+ "\u8333\u8366\u8365\u8EE5\u8EE6\u8EE7\u8EE8\u8EE9"+
+ "\u8EEA\u8EEB\u8EEC\u8EED\u8EEE\u8EEF\u8EF0\u8EF1"+
+ "\u8EF2\u8EF3\u8EF4\u8EF5\u8EF6\u8EF7\u8EF8\u8EF9"+
+ "\u8EFA\u8EFB\u8EFC\u8EFD\u8EFE\u8EFF\u8F00\u8F01"+
+ "\u8F02\u8F03\u8F04\u8F05\u8F06\u8F07\u8F08\u8F09"+
+ "\u8F0A\u8F0B\u8F0C\u8F0D\u8F0E\u8F0F\u8F10\u8F11"+
+ "\u8F12\u8F13\u8F14\u8F15\u8F16\u8F17\u8F18\u8F19"+
+ "\u8F1A\u8F1B\u8F1C\u8F1D\u8F1E\u8F1F\u8F20\u8F21"+
+ "\u8F22\u8F23\uFFFD\u8F24\u8F25\u8F26\u8F27\u8F28"+
+ "\u8F29\u8F2A\u8F2B\u8F2C\u8F2D\u8F2E\u8F2F\u8F30"+
+ "\u8F31\u8F32\u8F33\u8F34\u8F35\u8F36\u8F37\u8F38"+
+ "\u8F39\u8F3A\u8F3B\u8F3C\u8F3D\u8F3E\u8F3F\u8F40"+
+ "\u8F41\u8F42\u8F43\u8F44\u8368\u831B\u8369\u836C"+
+ "\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0"+
+ "\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D"+
+ "\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1"+
+ "\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD"+
+ "\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F"+
+ "\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0"+
+ "\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488"+
+ "\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C"+
+ "\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD"+
+ "\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4"+
+ "\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539"+
+ "\u851F\u853A\u8F45\u8F46\u8F47\u8F48\u8F49\u8F4A"+
+ "\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u8F50\u8F51\u8F52"+
+ "\u8F53\u8F54\u8F55\u8F56\u8F57\u8F58\u8F59\u8F5A"+
+ "\u8F5B\u8F5C\u8F5D\u8F5E\u8F5F\u8F60\u8F61\u8F62"+
+ "\u8F63\u8F64\u8F65\u8F6A\u8F80\u8F8C\u8F92\u8F9D"+
+ "\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA"+
+ "\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5"+
+ "\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3"+
+ "\u8FC6\uFFFD\u8FC9\u8FCA\u8FCB\u8FCC\u8FCD\u8FCF"+
+ "\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7"+
+ "\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA"+
+ "\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E"+
+ "\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559"+
+ "\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572"+
+ "\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C"+
+ "\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF"+
+ "\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C"+
+ "\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25"+
+ "\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA"+
+ "\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD"+
+ "\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A"+
+ "\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4"+
+ "\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B"+
+ "\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D"+
+ "\u6496\u9019\u901C\u9023\u9024\u9025\u9027\u9028"+
+ "\u9029\u902A\u902B\u902C\u9030\u9031\u9032\u9033"+
+ "\u9034\u9037\u9039\u903A\u903D\u903F\u9040\u9043"+
+ "\u9045\u9046\u9048\u9049\u904A\u904B\u904C\u904E"+
+ "\u9054\u9055\u9056\u9059\u905A\u905C\u905D\u905E"+
+ "\u905F\u9060\u9061\u9064\u9066\u9067\u9069\u906A"+
+ "\u906B\u906C\u906F\u9070\u9071\u9072\u9073\u9076"+
+ "\u9077\u9078\u9079\u907A\u907B\u907C\u907E\u9081"+
+ "\uFFFD\u9084\u9085\u9086\u9087\u9089\u908A\u908C"+
+ "\u908D\u908E\u908F\u9090\u9092\u9094\u9096\u9098"+
+ "\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7"+
+ "\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD"+
+ "\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0"+
+ "\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B"+
+ "\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8"+
+ "\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454"+
+ "\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482"+
+ "\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476"+
+ "\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7"+
+ "\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF"+
+ "\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD"+
+ "\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3"+
+ "\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F"+
+ "\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C";
+
+ private final static String innerIndex6=
+ "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD"+
+ "\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE"+
+ "\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC"+
+ "\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7"+
+ "\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103"+
+ "\u9105\u9106\u9107\u9108\u9109\u910A\u910B\u910C"+
+ "\u910D\u910E\u910F\u9110\u9111\u9112\u9113\u9114"+
+ "\u9115\u9116\u9117\u9118\u911A\u911B\u911C\uFFFD"+
+ "\u911D\u911F\u9120\u9121\u9124\u9125\u9126\u9127"+
+ "\u9128\u9129\u912A\u912B\u912C\u912D\u912E\u9130"+
+ "\u9132\u9133\u9134\u9135\u9136\u9137\u9138\u913A"+
+ "\u913B\u913C\u913D\u913E\u913F\u9140\u9141\u9142"+
+ "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530"+
+ "\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581"+
+ "\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE"+
+ "\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB"+
+ "\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2"+
+ "\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E"+
+ "\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627"+
+ "\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659"+
+ "\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B"+
+ "\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1"+
+ "\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C"+
+ "\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C\u9145"+
+ "\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158"+
+ "\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168"+
+ "\u916B\u916D\u9173\u917A\u917B\u917C\u9180\u9181"+
+ "\u9182\u9183\u9184\u9186\u9188\u918A\u918E\u918F"+
+ "\u9193\u9194\u9195\u9196\u9197\u9198\u9199\u919C"+
+ "\u919D\u919E\u919F\u91A0\u91A1\u91A4\u91A5\u91A6"+
+ "\u91A7\u91A8\u91A9\u91AB\u91AC\u91B0\u91B1\u91B2"+
+ "\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB\uFFFD\u91BC"+
+ "\u91BD\u91BE\u91BF\u91C0\u91C1\u91C2\u91C3\u91C4"+
+ "\u91C5\u91C6\u91C8\u91CB\u91D0\u91D2\u91D3\u91D4"+
+ "\u91D5\u91D6\u91D7\u91D8\u91D9\u91DA\u91DB\u91DD"+
+ "\u91DE\u91DF\u91E0\u91E1\u91E2\u91E3\u91E4\u91E5"+
+ "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A"+
+ "\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A"+
+ "\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3"+
+ "\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02"+
+ "\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B"+
+ "\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D"+
+ "\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D"+
+ "\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89"+
+ "\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC"+
+ "\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3"+
+ "\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2"+
+ "\u72F4\u72F7\u7301\u72F3\u7303\u72FA\u91E6\u91E7"+
+ "\u91E8\u91E9\u91EA\u91EB\u91EC\u91ED\u91EE\u91EF"+
+ "\u91F0\u91F1\u91F2\u91F3\u91F4\u91F5\u91F6\u91F7"+
+ "\u91F8\u91F9\u91FA\u91FB\u91FC\u91FD\u91FE\u91FF"+
+ "\u9200\u9201\u9202\u9203\u9204\u9205\u9206\u9207"+
+ "\u9208\u9209\u920A\u920B\u920C\u920D\u920E\u920F"+
+ "\u9210\u9211\u9212\u9213\u9214\u9215\u9216\u9217"+
+ "\u9218\u9219\u921A\u921B\u921C\u921D\u921E\u921F"+
+ "\u9220\u9221\u9222\u9223\u9224\uFFFD\u9225\u9226"+
+ "\u9227\u9228\u9229\u922A\u922B\u922C\u922D\u922E"+
+ "\u922F\u9230\u9231\u9232\u9233\u9234\u9235\u9236"+
+ "\u9237\u9238\u9239\u923A\u923B\u923C\u923D\u923E"+
+ "\u923F\u9240\u9241\u9242\u9243\u9244\u9245\u72FB"+
+ "\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322"+
+ "\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357"+
+ "\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924"+
+ "\u5902\u9963\u9967\u9968\u9969\u996A\u996B\u996C"+
+ "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D"+
+ "\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B"+
+ "\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53"+
+ "\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9"+
+ "\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE"+
+ "\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026"+
+ "\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021"+
+ "\u6078\u6079\u607B\u607A\u6042\u9246\u9247\u9248"+
+ "\u9249\u924A\u924B\u924C\u924D\u924E\u924F\u9250"+
+ "\u9251\u9252\u9253\u9254\u9255\u9256\u9257\u9258"+
+ "\u9259\u925A\u925B\u925C\u925D\u925E\u925F\u9260"+
+ "\u9261\u9262\u9263\u9264\u9265\u9266\u9267\u9268"+
+ "\u9269\u926A\u926B\u926C\u926D\u926E\u926F\u9270"+
+ "\u9271\u9272\u9273\u9275\u9276\u9277\u9278\u9279"+
+ "\u927A\u927B\u927C\u927D\u927E\u927F\u9280\u9281"+
+ "\u9282\u9283\u9284\u9285\uFFFD\u9286\u9287\u9288"+
+ "\u9289\u928A\u928B\u928C\u928D\u928F\u9290\u9291"+
+ "\u9292\u9293\u9294\u9295\u9296\u9297\u9298\u9299"+
+ "\u929A\u929B\u929C\u929D\u929E\u929F\u92A0\u92A1"+
+ "\u92A2\u92A3\u92A4\u92A5\u92A6\u92A7\u606A\u607D"+
+ "\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B"+
+ "\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4"+
+ "\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B"+
+ "\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5"+
+ "\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6"+
+ "\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B"+
+ "\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619"+
+ "\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A"+
+ "\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74"+
+ "\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8"+
+ "\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE"+
+ "\u6CB1\u6CD3\u6CEF\u6CFE\u92A8\u92A9\u92AA\u92AB"+
+ "\u92AC\u92AD\u92AF\u92B0\u92B1\u92B2\u92B3\u92B4"+
+ "\u92B5\u92B6\u92B7\u92B8\u92B9\u92BA\u92BB\u92BC"+
+ "\u92BD\u92BE\u92BF\u92C0\u92C1\u92C2\u92C3\u92C4"+
+ "\u92C5\u92C6\u92C7\u92C9\u92CA\u92CB\u92CC\u92CD"+
+ "\u92CE\u92CF\u92D0\u92D1\u92D2\u92D3\u92D4\u92D5"+
+ "\u92D6\u92D7\u92D8\u92D9\u92DA\u92DB\u92DC\u92DD"+
+ "\u92DE\u92DF\u92E0\u92E1\u92E2\u92E3\u92E4\u92E5"+
+ "\u92E6\u92E7\u92E8\uFFFD\u92E9\u92EA\u92EB\u92EC"+
+ "\u92ED\u92EE\u92EF\u92F0\u92F1\u92F2\u92F3\u92F4"+
+ "\u92F5\u92F6\u92F7\u92F8\u92F9\u92FA\u92FB\u92FC"+
+ "\u92FD\u92FE\u92FF\u9300\u9301\u9302\u9303\u9304"+
+ "\u9305\u9306\u9307\u9308\u9309\u6D39\u6D27\u6D0C"+
+ "\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D"+
+ "\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91"+
+ "\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60"+
+ "\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF"+
+ "\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C"+
+ "\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86"+
+ "\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98"+
+ "\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7"+
+ "\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46"+
+ "\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74"+
+ "\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72"+
+ "\u6F7C\u6F7A\u6FD1\u930A\u930B\u930C\u930D\u930E"+
+ "\u930F\u9310\u9311\u9312\u9313\u9314\u9315\u9316"+
+ "\u9317\u9318\u9319\u931A\u931B\u931C\u931D\u931E"+
+ "\u931F\u9320\u9321\u9322\u9323\u9324\u9325\u9326"+
+ "\u9327\u9328\u9329\u932A\u932B\u932C\u932D\u932E"+
+ "\u932F\u9330\u9331\u9332\u9333\u9334\u9335\u9336"+
+ "\u9337\u9338\u9339\u933A\u933B\u933C\u933D\u933F"+
+ "\u9340\u9341\u9342\u9343\u9344\u9345\u9346\u9347"+
+ "\u9348\u9349\uFFFD\u934A\u934B\u934C\u934D\u934E"+
+ "\u934F\u9350\u9351\u9352\u9353\u9354\u9355\u9356"+
+ "\u9357\u9358\u9359\u935A\u935B\u935C\u935D\u935E"+
+ "\u935F\u9360\u9361\u9362\u9363\u9364\u9365\u9366"+
+ "\u9367\u9368\u9369\u936B\u6FC9\u6FA7\u6FB9\u6FB6"+
+ "\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023"+
+ "\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95"+
+ "\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE"+
+ "\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5"+
+ "\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004"+
+ "\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036"+
+ "\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058"+
+ "\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083"+
+ "\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50"+
+ "\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D"+
+ "\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9"+
+ "\u59AA\u59A3\u936C\u936D\u936E\u936F\u9370\u9371"+
+ "\u9372\u9373\u9374\u9375\u9376\u9377\u9378\u9379"+
+ "\u937A\u937B\u937C\u937D\u937E\u937F\u9380\u9381"+
+ "\u9382\u9383\u9384\u9385\u9386\u9387\u9388\u9389"+
+ "\u938A\u938B\u938C\u938D\u938E\u9390\u9391\u9392"+
+ "\u9393\u9394\u9395\u9396\u9397\u9398\u9399\u939A"+
+ "\u939B\u939C\u939D\u939E\u939F\u93A0\u93A1\u93A2"+
+ "\u93A3\u93A4\u93A5\u93A6\u93A7\u93A8\u93A9\u93AA"+
+ "\u93AB\uFFFD\u93AC\u93AD\u93AE\u93AF\u93B0\u93B1"+
+ "\u93B2\u93B3\u93B4\u93B5\u93B6\u93B7\u93B8\u93B9"+
+ "\u93BA\u93BB\u93BC\u93BD\u93BE\u93BF\u93C0\u93C1"+
+ "\u93C2\u93C3\u93C4\u93C5\u93C6\u93C7\u93C8\u93C9"+
+ "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4"+
+ "\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD"+
+ "\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34"+
+ "\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C"+
+ "\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE"+
+ "\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1"+
+ "\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32"+
+ "\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51"+
+ "\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D"+
+ "\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93"+
+ "\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2"+
+ "\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8"+
+ "\u7EA9\u93CE\u93CF\u93D0\u93D1\u93D2\u93D3\u93D4"+
+ "\u93D5\u93D7\u93D8\u93D9\u93DA\u93DB\u93DC\u93DD"+
+ "\u93DE\u93DF\u93E0\u93E1\u93E2\u93E3\u93E4\u93E5"+
+ "\u93E6\u93E7\u93E8\u93E9\u93EA\u93EB\u93EC\u93ED"+
+ "\u93EE\u93EF\u93F0\u93F1\u93F2\u93F3\u93F4\u93F5"+
+ "\u93F6\u93F7\u93F8\u93F9\u93FA\u93FB\u93FC\u93FD"+
+ "\u93FE\u93FF\u9400\u9401\u9402\u9403\u9404\u9405"+
+ "\u9406\u9407\u9408\u9409\u940A\u940B\u940C\u940D"+
+ "\uFFFD\u940E\u940F\u9410\u9411\u9412\u9413\u9414"+
+ "\u9415\u9416\u9417\u9418\u9419\u941A\u941B\u941C"+
+ "\u941D\u941E\u941F\u9420\u9421\u9422\u9423\u9424"+
+ "\u9425\u9426\u9427\u9428\u9429\u942A\u942B\u942C"+
+ "\u942D\u942E\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2"+
+ "\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0"+
+ "\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D"+
+ "\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07"+
+ "\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19"+
+ "\u7F1C\u7F1B\u7F1F\u7F21\u7F22\u7F23\u7F24\u7F25"+
+ "\u7F26\u7F27\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F\u7F30"+
+ "\u7F31\u7F32\u7F33\u7F35\u5E7A\u757F\u5DDB\u753E"+
+ "\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2"+
+ "\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9"+
+ "\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F"+
+ "\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"+
+ "\u942F\u9430\u9431\u9432\u9433\u9434\u9435\u9436"+
+ "\u9437\u9438\u9439\u943A\u943B\u943C\u943D\u943F"+
+ "\u9440\u9441\u9442\u9443\u9444\u9445\u9446\u9447"+
+ "\u9448\u9449\u944A\u944B\u944C\u944D\u944E\u944F"+
+ "\u9450\u9451\u9452\u9453\u9454\u9455\u9456\u9457"+
+ "\u9458\u9459\u945A\u945B\u945C\u945D\u945E\u945F"+
+ "\u9460\u9461\u9462\u9463\u9464\u9465\u9466\u9467"+
+ "\u9468\u9469\u946A\u946C\u946D\u946E\u946F\uFFFD"+
+ "\u9470\u9471\u9472\u9473\u9474\u9475\u9476\u9477"+
+ "\u9478\u9479\u947A\u947B\u947C\u947D\u947E\u947F"+
+ "\u9480\u9481\u9482\u9483\u9484\u9491\u9496\u9498"+
+ "\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C"+
+ "\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459"+
+ "\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487"+
+ "\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA"+
+ "\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769"+
+ "\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8"+
+ "\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8"+
+ "\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3"+
+ "\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD"+
+ "\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864"+
+ "\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E"+
+ "\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893"+
+ "\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9\u9527"+
+ "\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560"+
+ "\u956E\u9574\u9575\u9577\u9578\u9579\u957A\u957B"+
+ "\u957C\u957D\u957E\u9580\u9581\u9582\u9583\u9584"+
+ "\u9585\u9586\u9587\u9588\u9589\u958A\u958B\u958C"+
+ "\u958D\u958E\u958F\u9590\u9591\u9592\u9593\u9594"+
+ "\u9595\u9596\u9597\u9598\u9599\u959A\u959B\u959C"+
+ "\u959D\u959E\u959F\u95A0\u95A1\u95A2\u95A3\u95A4"+
+ "\u95A5\u95A6\u95A7\u95A8\u95A9\u95AA\uFFFD\u95AB"+
+ "\u95AC\u95AD\u95AE\u95AF\u95B0\u95B1\u95B2\u95B3"+
+ "\u95B4\u95B5\u95B6\u95B7\u95B8\u95B9\u95BA\u95BB"+
+ "\u95BC\u95BD\u95BE\u95BF\u95C0\u95C1\u95C2\u95C3"+
+ "\u95C4\u95C5\u95C6\u95C7\u95C8\u95C9\u95CA\u95CB"+
+ "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971"+
+ "\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998"+
+ "\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966"+
+ "\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4"+
+ "\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF"+
+ "\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E"+
+ "\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28"+
+ "\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337"+
+ "\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D"+
+ "\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72"+
+ "\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C"+
+ "\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B\u95CC\u95CD"+
+ "\u95CE\u95CF\u95D0\u95D1\u95D2\u95D3\u95D4\u95D5"+
+ "\u95D6\u95D7\u95D8\u95D9\u95DA\u95DB\u95DC\u95DD"+
+ "\u95DE\u95DF\u95E0\u95E1\u95E2\u95E3\u95E4\u95E5"+
+ "\u95E6\u95E7\u95EC\u95FF\u9607\u9613\u9618\u961B"+
+ "\u961E\u9620\u9623\u9624\u9625\u9626\u9627\u9628"+
+ "\u9629\u962B\u962C\u962D\u962F\u9630\u9637\u9638"+
+ "\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F"+
+ "\u9651\u9652\u9653\u9656\u9657\uFFFD\u9658\u9659"+
+ "\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666"+
+ "\u966B\u966D\u966E\u966F\u9670\u9671\u9673\u9678"+
+ "\u9679\u967A\u967B\u967C\u967D\u967E\u967F\u9680"+
+ "\u9681\u9682\u9683\u9684\u9687\u9689\u968A\u8F8D"+
+ "\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B"+
+ "\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF"+
+ "\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF"+
+ "\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085"+
+ "\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F"+
+ "\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684"+
+ "\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9"+
+ "\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46"+
+ "\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA"+
+ "\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F"+
+ "\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D"+
+ "\u728F\u7292\u6308\u6332\u63B0\u968C\u968E\u9691"+
+ "\u9692\u9693\u9695\u9696\u969A\u969B\u969D\u969E"+
+ "\u969F\u96A0\u96A1\u96A2\u96A3\u96A4\u96A5\u96A6"+
+ "\u96A8\u96A9\u96AA\u96AB\u96AC\u96AD\u96AE\u96AF"+
+ "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB"+
+ "\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1"+
+ "\u96D3\u96D4\u96D6\u96D7\u96D8\u96D9\u96DA\u96DB"+
+ "\u96DC\u96DD\u96DE\u96DF\u96E1\u96E2\u96E3\u96E4"+
+ "\u96E5\u96E6\u96E7\u96EB\uFFFD\u96EC\u96ED\u96EE"+
+ "\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB"+
+ "\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B"+
+ "\u970C\u9710\u9711\u9712\u9714\u9715\u9717\u9718"+
+ "\u9719\u971A\u971B\u971D\u971F\u9720\u643F\u64D8"+
+ "\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07"+
+ "\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29"+
+ "\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252"+
+ "\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC"+
+ "\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7"+
+ "\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD"+
+ "\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D"+
+ "\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E"+
+ "\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159"+
+ "\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167"+
+ "\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA"+
+ "\u81CC\u6726\u81CA\u81BB\u9721\u9722\u9723\u9724"+
+ "\u9725\u9726\u9727\u9728\u9729\u972B\u972C\u972E"+
+ "\u972F\u9731\u9733\u9734\u9735\u9736\u9737\u973A"+
+ "\u973B\u973C\u973D\u973F\u9740\u9741\u9742\u9743"+
+ "\u9744\u9745\u9746\u9747\u9748\u9749\u974A\u974B"+
+ "\u974C\u974D\u974E\u974F\u9750\u9751\u9754\u9755"+
+ "\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764"+
+ "\u9766\u9767\u9768\u976A\u976B\u976C\u976D\u976E"+
+ "\u976F\u9770\u9771\uFFFD\u9772\u9775\u9777\u9778"+
+ "\u9779\u977A\u977B\u977D\u977E\u977F\u9780\u9781"+
+ "\u9782\u9783\u9784\u9786\u9787\u9788\u9789\u978A"+
+ "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797"+
+ "\u9799\u979A\u979B\u979C\u979D\u81C1\u81A6\u6B24"+
+ "\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3"+
+ "\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590"+
+ "\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE"+
+ "\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0"+
+ "\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116"+
+ "\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A"+
+ "\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0"+
+ "\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166"+
+ "\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940"+
+ "\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957"+
+ "\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7"+
+ "\u79B3\u5FD1\u5FD0\u979E\u979F\u97A1\u97A2\u97A4"+
+ "\u97A5\u97A6\u97A7\u97A8\u97A9\u97AA\u97AC\u97AE"+
+ "\u97B0\u97B1\u97B3\u97B5\u97B6\u97B7\u97B8\u97B9"+
+ "\u97BA\u97BB\u97BC\u97BD\u97BE\u97BF\u97C0\u97C1"+
+ "\u97C2\u97C3\u97C4\u97C5\u97C6\u97C7\u97C8\u97C9"+
+ "\u97CA\u97CB\u97CC\u97CD\u97CE\u97CF\u97D0\u97D1"+
+ "\u97D2\u97D3\u97D4\u97D5\u97D6\u97D7\u97D8\u97D9"+
+ "\u97DA\u97DB\u97DC\u97DD\u97DE\u97DF\u97E0\u97E1"+
+ "\u97E2\u97E3\uFFFD\u97E4\u97E5\u97E8\u97EE\u97EF"+
+ "\u97F0\u97F1\u97F2\u97F4\u97F7\u97F8\u97F9\u97FA"+
+ "\u97FB\u97FC\u97FD\u97FE\u97FF\u9800\u9801\u9802"+
+ "\u9803\u9804\u9805\u9806\u9807\u9808\u9809\u980A"+
+ "\u980B\u980C\u980D\u980E\u603C\u605D\u605A\u6067"+
+ "\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9"+
+ "\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6"+
+ "\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811"+
+ "\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F"+
+ "\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856"+
+ "\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893"+
+ "\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5"+
+ "\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913"+
+ "\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1"+
+ "\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719"+
+ "\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743"+
+ "\u775A\u7768\u980F\u9810\u9811\u9812\u9813\u9814"+
+ "\u9815\u9816\u9817\u9818\u9819\u981A\u981B\u981C"+
+ "\u981D\u981E\u981F\u9820\u9821\u9822\u9823\u9824"+
+ "\u9825\u9826\u9827\u9828\u9829\u982A\u982B\u982C"+
+ "\u982D\u982E\u982F\u9830\u9831\u9832\u9833\u9834"+
+ "\u9835\u9836\u9837\u9838\u9839\u983A\u983B\u983C"+
+ "\u983D\u983E\u983F\u9840\u9841\u9842\u9843\u9844"+
+ "\u9845\u9846\u9847\u9848\u9849\u984A\u984B\u984C"+
+ "\u984D\uFFFD\u984E\u984F\u9850\u9851\u9852\u9853"+
+ "\u9854\u9855\u9856\u9857\u9858\u9859\u985A\u985B"+
+ "\u985C\u985D\u985E\u985F\u9860\u9861\u9862\u9863"+
+ "\u9864\u9865\u9866\u9867\u9868\u9869\u986A\u986B"+
+ "\u986C\u986D\u986E\u7762\u7765\u777F\u778D\u777D"+
+ "\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD"+
+ "\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579"+
+ "\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71"+
+ "\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486"+
+ "\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494"+
+ "\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB"+
+ "\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6"+
+ "\u94B7\u94B8\u94B9\u94BA\u94BC\u94BD\u94BF\u94C4"+
+ "\u94C8\u94C9\u94CA\u94CB\u94CC\u94CD\u94CE\u94D0"+
+ "\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB"+
+ "\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8"+
+ "\u94EA\u986F\u9870\u9871\u9872\u9873\u9874\u988B"+
+ "\u988E\u9892\u9895\u9899\u98A3\u98A8\u98A9\u98AA"+
+ "\u98AB\u98AC\u98AD\u98AE\u98AF\u98B0\u98B1\u98B2"+
+ "\u98B3\u98B4\u98B5\u98B6\u98B7\u98B8\u98B9\u98BA"+
+ "\u98BB\u98BC\u98BD\u98BE\u98BF\u98C0\u98C1\u98C2"+
+ "\u98C3\u98C4\u98C5\u98C6\u98C7\u98C8\u98C9\u98CA"+
+ "\u98CB\u98CC\u98CD\u98CF\u98D0\u98D4\u98D6\u98D7"+
+ "\u98DB\u98DC\u98DD\u98E0\u98E1\u98E2\u98E3\u98E4"+
+ "\uFFFD\u98E5\u98E6\u98E9\u98EA\u98EB\u98EC\u98ED"+
+ "\u98EE\u98EF\u98F0\u98F1\u98F2\u98F3\u98F4\u98F5"+
+ "\u98F6\u98F7\u98F8\u98F9\u98FA\u98FB\u98FC\u98FD"+
+ "\u98FE\u98FF\u9900\u9901\u9902\u9903\u9904\u9905"+
+ "\u9906\u9907\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4"+
+ "\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502"+
+ "\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512"+
+ "\u9513\u9514\u9515\u9516\u9518\u951B\u951D\u951E"+
+ "\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532"+
+ "\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542"+
+ "\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F"+
+ "\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B"+
+ "\u955E\u955F\u955D\u9561\u9562\u9564\u9565\u9566"+
+ "\u9567\u9568\u9569\u956A\u956B\u956C\u956F\u9571"+
+ "\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED"+
+ "\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14";
+
+ private final static String innerIndex7=
+ "\u9908\u9909\u990A\u990B\u990C\u990E\u990F\u9911"+
+ "\u9912\u9913\u9914\u9915\u9916\u9917\u9918\u9919"+
+ "\u991A\u991B\u991C\u991D\u991E\u991F\u9920\u9921"+
+ "\u9922\u9923\u9924\u9925\u9926\u9927\u9928\u9929"+
+ "\u992A\u992B\u992C\u992D\u992F\u9930\u9931\u9932"+
+ "\u9933\u9934\u9935\u9936\u9937\u9938\u9939\u993A"+
+ "\u993B\u993C\u993D\u993E\u993F\u9940\u9941\u9942"+
+ "\u9943\u9944\u9945\u9946\u9947\u9948\u9949\uFFFD"+
+ "\u994A\u994B\u994C\u994D\u994E\u994F\u9950\u9951"+
+ "\u9952\u9953\u9956\u9957\u9958\u9959\u995A\u995B"+
+ "\u995C\u995D\u995E\u995F\u9960\u9961\u9962\u9964"+
+ "\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983"+
+ "\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688"+
+ "\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20"+
+ "\u9E22\u9E28\u9E29\u9E2A\u9E2B\u9E2C\u9E32\u9E31"+
+ "\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42"+
+ "\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E"+
+ "\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63"+
+ "\u9E66\u9E67\u9E68\u9E69\u9E6A\u9E6B\u9E6C\u9E71"+
+ "\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC"+
+ "\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3"+
+ "\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB"+
+ "\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605"+
+ "\u760C\u7617\u760A\u7625\u7618\u7615\u7619\u998C"+
+ "\u998E\u999A\u999B\u999C\u999D\u999E\u999F\u99A0"+
+ "\u99A1\u99A2\u99A3\u99A4\u99A6\u99A7\u99A9\u99AA"+
+ "\u99AB\u99AC\u99AD\u99AE\u99AF\u99B0\u99B1\u99B2"+
+ "\u99B3\u99B4\u99B5\u99B6\u99B7\u99B8\u99B9\u99BA"+
+ "\u99BB\u99BC\u99BD\u99BE\u99BF\u99C0\u99C1\u99C2"+
+ "\u99C3\u99C4\u99C5\u99C6\u99C7\u99C8\u99C9\u99CA"+
+ "\u99CB\u99CC\u99CD\u99CE\u99CF\u99D0\u99D1\u99D2"+
+ "\u99D3\u99D4\u99D5\u99D6\u99D7\u99D8\uFFFD\u99D9"+
+ "\u99DA\u99DB\u99DC\u99DD\u99DE\u99DF\u99E0\u99E1"+
+ "\u99E2\u99E3\u99E4\u99E5\u99E6\u99E7\u99E8\u99E9"+
+ "\u99EA\u99EB\u99EC\u99ED\u99EE\u99EF\u99F0\u99F1"+
+ "\u99F2\u99F3\u99F4\u99F5\u99F6\u99F7\u99F8\u99F9"+
+ "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F"+
+ "\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C"+
+ "\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80"+
+ "\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD"+
+ "\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2"+
+ "\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5"+
+ "\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919"+
+ "\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966"+
+ "\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014"+
+ "\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029"+
+ "\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052"+
+ "\u8069\u8071\u8983\u9878\u9880\u9883\u99FA\u99FB"+
+ "\u99FC\u99FD\u99FE\u99FF\u9A00\u9A01\u9A02\u9A03"+
+ "\u9A04\u9A05\u9A06\u9A07\u9A08\u9A09\u9A0A\u9A0B"+
+ "\u9A0C\u9A0D\u9A0E\u9A0F\u9A10\u9A11\u9A12\u9A13"+
+ "\u9A14\u9A15\u9A16\u9A17\u9A18\u9A19\u9A1A\u9A1B"+
+ "\u9A1C\u9A1D\u9A1E\u9A1F\u9A20\u9A21\u9A22\u9A23"+
+ "\u9A24\u9A25\u9A26\u9A27\u9A28\u9A29\u9A2A\u9A2B"+
+ "\u9A2C\u9A2D\u9A2E\u9A2F\u9A30\u9A31\u9A32\u9A33"+
+ "\u9A34\u9A35\u9A36\u9A37\u9A38\uFFFD\u9A39\u9A3A"+
+ "\u9A3B\u9A3C\u9A3D\u9A3E\u9A3F\u9A40\u9A41\u9A42"+
+ "\u9A43\u9A44\u9A45\u9A46\u9A47\u9A48\u9A49\u9A4A"+
+ "\u9A4B\u9A4C\u9A4D\u9A4E\u9A4F\u9A50\u9A51\u9A52"+
+ "\u9A53\u9A54\u9A55\u9A56\u9A57\u9A58\u9A59\u9889"+
+ "\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F"+
+ "\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E"+
+ "\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC"+
+ "\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4"+
+ "\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF"+
+ "\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713"+
+ "\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8"+
+ "\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725"+
+ "\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737"+
+ "\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770"+
+ "\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759"+
+ "\u8765\u8793\u87AF\u87A8\u87D2\u9A5A\u9A5B\u9A5C"+
+ "\u9A5D\u9A5E\u9A5F\u9A60\u9A61\u9A62\u9A63\u9A64"+
+ "\u9A65\u9A66\u9A67\u9A68\u9A69\u9A6A\u9A6B\u9A72"+
+ "\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6"+
+ "\u9AA9\u9AAA\u9AAB\u9AAC\u9AAD\u9AAE\u9AAF\u9AB2"+
+ "\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF"+
+ "\u9AC3\u9AC4\u9AC6\u9AC7\u9AC8\u9AC9\u9ACA\u9ACD"+
+ "\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7"+
+ "\u9AD9\u9ADA\u9ADB\u9ADC\uFFFD\u9ADD\u9ADE\u9AE0"+
+ "\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA"+
+ "\u9AEC\u9AEE\u9AF0\u9AF1\u9AF2\u9AF3\u9AF4\u9AF5"+
+ "\u9AF6\u9AF7\u9AF8\u9AFA\u9AFC\u9AFD\u9AFE\u9AFF"+
+ "\u9B00\u9B01\u9B02\u9B04\u9B05\u9B06\u87C6\u8788"+
+ "\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5"+
+ "\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB"+
+ "\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B"+
+ "\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210"+
+ "\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B"+
+ "\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20"+
+ "\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45"+
+ "\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72"+
+ "\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8"+
+ "\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1"+
+ "\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE"+
+ "\u7BFC\u7C0F\u7C16\u7C0B\u9B07\u9B09\u9B0A\u9B0B"+
+ "\u9B0C\u9B0D\u9B0E\u9B10\u9B11\u9B12\u9B14\u9B15"+
+ "\u9B16\u9B17\u9B18\u9B19\u9B1A\u9B1B\u9B1C\u9B1D"+
+ "\u9B1E\u9B20\u9B21\u9B22\u9B24\u9B25\u9B26\u9B27"+
+ "\u9B28\u9B29\u9B2A\u9B2B\u9B2C\u9B2D\u9B2E\u9B30"+
+ "\u9B31\u9B33\u9B34\u9B35\u9B36\u9B37\u9B38\u9B39"+
+ "\u9B3A\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B"+
+ "\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55\u9B56\u9B57"+
+ "\u9B58\u9B59\u9B5A\uFFFD\u9B5B\u9B5C\u9B5D\u9B5E"+
+ "\u9B5F\u9B60\u9B61\u9B62\u9B63\u9B64\u9B65\u9B66"+
+ "\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D\u9B6E"+
+ "\u9B6F\u9B70\u9B71\u9B72\u9B73\u9B74\u9B75\u9B76"+
+ "\u9B77\u9B78\u9B79\u9B7A\u9B7B\u7C1F\u7C2A\u7C26"+
+ "\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC"+
+ "\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B"+
+ "\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B"+
+ "\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8"+
+ "\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2"+
+ "\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2"+
+ "\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5"+
+ "\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5"+
+ "\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6"+
+ "\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94"+
+ "\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150"+
+ "\u914E\u914F\u9164\u9B7C\u9B7D\u9B7E\u9B7F\u9B80"+
+ "\u9B81\u9B82\u9B83\u9B84\u9B85\u9B86\u9B87\u9B88"+
+ "\u9B89\u9B8A\u9B8B\u9B8C\u9B8D\u9B8E\u9B8F\u9B90"+
+ "\u9B91\u9B92\u9B93\u9B94\u9B95\u9B96\u9B97\u9B98"+
+ "\u9B99\u9B9A\u9B9B\u9B9C\u9B9D\u9B9E\u9B9F\u9BA0"+
+ "\u9BA1\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7\u9BA8"+
+ "\u9BA9\u9BAA\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF\u9BB0"+
+ "\u9BB1\u9BB2\u9BB3\u9BB4\u9BB5\u9BB6\u9BB7\u9BB8"+
+ "\u9BB9\u9BBA\uFFFD\u9BBB\u9BBC\u9BBD\u9BBE\u9BBF"+
+ "\u9BC0\u9BC1\u9BC2\u9BC3\u9BC4\u9BC5\u9BC6\u9BC7"+
+ "\u9BC8\u9BC9\u9BCA\u9BCB\u9BCC\u9BCD\u9BCE\u9BCF"+
+ "\u9BD0\u9BD1\u9BD2\u9BD3\u9BD4\u9BD5\u9BD6\u9BD7"+
+ "\u9BD8\u9BD9\u9BDA\u9BDB\u9162\u9161\u9170\u9169"+
+ "\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185"+
+ "\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE"+
+ "\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB"+
+ "\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4"+
+ "\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6"+
+ "\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09"+
+ "\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F"+
+ "\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41"+
+ "\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F"+
+ "\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78"+
+ "\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE"+
+ "\u89DA\u89DC\u9BDC\u9BDD\u9BDE\u9BDF\u9BE0\u9BE1"+
+ "\u9BE2\u9BE3\u9BE4\u9BE5\u9BE6\u9BE7\u9BE8\u9BE9"+
+ "\u9BEA\u9BEB\u9BEC\u9BED\u9BEE\u9BEF\u9BF0\u9BF1"+
+ "\u9BF2\u9BF3\u9BF4\u9BF5\u9BF6\u9BF7\u9BF8\u9BF9"+
+ "\u9BFA\u9BFB\u9BFC\u9BFD\u9BFE\u9BFF\u9C00\u9C01"+
+ "\u9C02\u9C03\u9C04\u9C05\u9C06\u9C07\u9C08\u9C09"+
+ "\u9C0A\u9C0B\u9C0C\u9C0D\u9C0E\u9C0F\u9C10\u9C11"+
+ "\u9C12\u9C13\u9C14\u9C15\u9C16\u9C17\u9C18\u9C19"+
+ "\u9C1A\uFFFD\u9C1B\u9C1C\u9C1D\u9C1E\u9C1F\u9C20"+
+ "\u9C21\u9C22\u9C23\u9C24\u9C25\u9C26\u9C27\u9C28"+
+ "\u9C29\u9C2A\u9C2B\u9C2C\u9C2D\u9C2E\u9C2F\u9C30"+
+ "\u9C31\u9C32\u9C33\u9C34\u9C35\u9C36\u9C37\u9C38"+
+ "\u9C39\u9C3A\u9C3B\u89E5\u89EB\u89EF\u8A3E\u8B26"+
+ "\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F"+
+ "\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85"+
+ "\u9F86\u9F87\u9F88\u9F89\u9F8A\u9F8C\u9EFE\u9F0B"+
+ "\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0"+
+ "\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E"+
+ "\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23"+
+ "\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A"+
+ "\u9C9B\u9C9E\u9C9F\u9CA0\u9CA1\u9CA2\u9CA3\u9CA5"+
+ "\u9CA6\u9CA7\u9CA8\u9CA9\u9CAB\u9CAD\u9CAE\u9CB0"+
+ "\u9CB1\u9CB2\u9CB3\u9CB4\u9CB5\u9CB6\u9CB7\u9CBA"+
+ "\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA"+
+ "\u9CCB\u9C3C\u9C3D\u9C3E\u9C3F\u9C40\u9C41\u9C42"+
+ "\u9C43\u9C44\u9C45\u9C46\u9C47\u9C48\u9C49\u9C4A"+
+ "\u9C4B\u9C4C\u9C4D\u9C4E\u9C4F\u9C50\u9C51\u9C52"+
+ "\u9C53\u9C54\u9C55\u9C56\u9C57\u9C58\u9C59\u9C5A"+
+ "\u9C5B\u9C5C\u9C5D\u9C5E\u9C5F\u9C60\u9C61\u9C62"+
+ "\u9C63\u9C64\u9C65\u9C66\u9C67\u9C68\u9C69\u9C6A"+
+ "\u9C6B\u9C6C\u9C6D\u9C6E\u9C6F\u9C70\u9C71\u9C72"+
+ "\u9C73\u9C74\u9C75\u9C76\u9C77\u9C78\u9C79\u9C7A"+
+ "\uFFFD\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89"+
+ "\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99"+
+ "\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE\u9CBF\u9CC0"+
+ "\u9CC1\u9CC2\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB"+
+ "\u9CE0\u9CE1\u9CCC\u9CCD\u9CCE\u9CCF\u9CD0\u9CD3"+
+ "\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF"+
+ "\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB"+
+ "\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6"+
+ "\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC"+
+ "\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51"+
+ "\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6"+
+ "\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13"+
+ "\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88"+
+ "\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD"+
+ "\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF"+
+ "\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"+
+ "\u9CE3\u9CE4\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
+ "\u9CEB\u9CEC\u9CED\u9CEE\u9CEF\u9CF0\u9CF1\u9CF2"+
+ "\u9CF3\u9CF4\u9CF5\u9CF6\u9CF7\u9CF8\u9CF9\u9CFA"+
+ "\u9CFB\u9CFC\u9CFD\u9CFE\u9CFF\u9D00\u9D01\u9D02"+
+ "\u9D03\u9D04\u9D05\u9D06\u9D07\u9D08\u9D09\u9D0A"+
+ "\u9D0B\u9D0C\u9D0D\u9D0E\u9D0F\u9D10\u9D11\u9D12"+
+ "\u9D13\u9D14\u9D15\u9D16\u9D17\u9D18\u9D19\u9D1A"+
+ "\u9D1B\u9D1C\u9D1D\u9D1E\u9D1F\u9D20\u9D21\uFFFD"+
+ "\u9D22\u9D23\u9D24\u9D25\u9D26\u9D27\u9D28\u9D29"+
+ "\u9D2A\u9D2B\u9D2C\u9D2D\u9D2E\u9D2F\u9D30\u9D31"+
+ "\u9D32\u9D33\u9D34\u9D35\u9D36\u9D37\u9D38\u9D39"+
+ "\u9D3A\u9D3B\u9D3C\u9D3D\u9D3E\u9D3F\u9D40\u9D41"+
+ "\u9D42\uE234\uE235\uE236\uE237\uE238\uE239\uE23A"+
+ "\uE23B\uE23C\uE23D\uE23E\uE23F\uE240\uE241\uE242"+
+ "\uE243\uE244\uE245\uE246\uE247\uE248\uE249\uE24A"+
+ "\uE24B\uE24C\uE24D\uE24E\uE24F\uE250\uE251\uE252"+
+ "\uE253\uE254\uE255\uE256\uE257\uE258\uE259\uE25A"+
+ "\uE25B\uE25C\uE25D\uE25E\uE25F\uE260\uE261\uE262"+
+ "\uE263\uE264\uE265\uE266\uE267\uE268\uE269\uE26A"+
+ "\uE26B\uE26C\uE26D\uE26E\uE26F\uE270\uE271\uE272"+
+ "\uE273\uE274\uE275\uE276\uE277\uE278\uE279\uE27A"+
+ "\uE27B\uE27C\uE27D\uE27E\uE27F\uE280\uE281\uE282"+
+ "\uE283\uE284\uE285\uE286\uE287\uE288\uE289\uE28A"+
+ "\uE28B\uE28C\uE28D\uE28E\uE28F\uE290\uE291\u9D43"+
+ "\u9D44\u9D45\u9D46\u9D47\u9D48\u9D49\u9D4A\u9D4B"+
+ "\u9D4C\u9D4D\u9D4E\u9D4F\u9D50\u9D51\u9D52\u9D53"+
+ "\u9D54\u9D55\u9D56\u9D57\u9D58\u9D59\u9D5A\u9D5B"+
+ "\u9D5C\u9D5D\u9D5E\u9D5F\u9D60\u9D61\u9D62\u9D63"+
+ "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
+ "\u9D6C\u9D6D\u9D6E\u9D6F\u9D70\u9D71\u9D72\u9D73"+
+ "\u9D74\u9D75\u9D76\u9D77\u9D78\u9D79\u9D7A\u9D7B"+
+ "\u9D7C\u9D7D\u9D7E\u9D7F\u9D80\u9D81\uFFFD\u9D82"+
+ "\u9D83\u9D84\u9D85\u9D86\u9D87\u9D88\u9D89\u9D8A"+
+ "\u9D8B\u9D8C\u9D8D\u9D8E\u9D8F\u9D90\u9D91\u9D92"+
+ "\u9D93\u9D94\u9D95\u9D96\u9D97\u9D98\u9D99\u9D9A"+
+ "\u9D9B\u9D9C\u9D9D\u9D9E\u9D9F\u9DA0\u9DA1\u9DA2"+
+ "\uE292\uE293\uE294\uE295\uE296\uE297\uE298\uE299"+
+ "\uE29A\uE29B\uE29C\uE29D\uE29E\uE29F\uE2A0\uE2A1"+
+ "\uE2A2\uE2A3\uE2A4\uE2A5\uE2A6\uE2A7\uE2A8\uE2A9"+
+ "\uE2AA\uE2AB\uE2AC\uE2AD\uE2AE\uE2AF\uE2B0\uE2B1"+
+ "\uE2B2\uE2B3\uE2B4\uE2B5\uE2B6\uE2B7\uE2B8\uE2B9"+
+ "\uE2BA\uE2BB\uE2BC\uE2BD\uE2BE\uE2BF\uE2C0\uE2C1"+
+ "\uE2C2\uE2C3\uE2C4\uE2C5\uE2C6\uE2C7\uE2C8\uE2C9"+
+ "\uE2CA\uE2CB\uE2CC\uE2CD\uE2CE\uE2CF\uE2D0\uE2D1"+
+ "\uE2D2\uE2D3\uE2D4\uE2D5\uE2D6\uE2D7\uE2D8\uE2D9"+
+ "\uE2DA\uE2DB\uE2DC\uE2DD\uE2DE\uE2DF\uE2E0\uE2E1"+
+ "\uE2E2\uE2E3\uE2E4\uE2E5\uE2E6\uE2E7\uE2E8\uE2E9"+
+ "\uE2EA\uE2EB\uE2EC\uE2ED\uE2EE\uE2EF\u9DA3\u9DA4"+
+ "\u9DA5\u9DA6\u9DA7\u9DA8\u9DA9\u9DAA\u9DAB\u9DAC"+
+ "\u9DAD\u9DAE\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4"+
+ "\u9DB5\u9DB6\u9DB7\u9DB8\u9DB9\u9DBA\u9DBB\u9DBC"+
+ "\u9DBD\u9DBE\u9DBF\u9DC0\u9DC1\u9DC2\u9DC3\u9DC4"+
+ "\u9DC5\u9DC6\u9DC7\u9DC8\u9DC9\u9DCA\u9DCB\u9DCC"+
+ "\u9DCD\u9DCE\u9DCF\u9DD0\u9DD1\u9DD2\u9DD3\u9DD4"+
+ "\u9DD5\u9DD6\u9DD7\u9DD8\u9DD9\u9DDA\u9DDB\u9DDC"+
+ "\u9DDD\u9DDE\u9DDF\u9DE0\u9DE1\uFFFD\u9DE2\u9DE3"+
+ "\u9DE4\u9DE5\u9DE6\u9DE7\u9DE8\u9DE9\u9DEA\u9DEB"+
+ "\u9DEC\u9DED\u9DEE\u9DEF\u9DF0\u9DF1\u9DF2\u9DF3"+
+ "\u9DF4\u9DF5\u9DF6\u9DF7\u9DF8\u9DF9\u9DFA\u9DFB"+
+ "\u9DFC\u9DFD\u9DFE\u9DFF\u9E00\u9E01\u9E02\uE2F0"+
+ "\uE2F1\uE2F2\uE2F3\uE2F4\uE2F5\uE2F6\uE2F7\uE2F8"+
+ "\uE2F9\uE2FA\uE2FB\uE2FC\uE2FD\uE2FE\uE2FF\uE300"+
+ "\uE301\uE302\uE303\uE304\uE305\uE306\uE307\uE308"+
+ "\uE309\uE30A\uE30B\uE30C\uE30D\uE30E\uE30F\uE310"+
+ "\uE311\uE312\uE313\uE314\uE315\uE316\uE317\uE318"+
+ "\uE319\uE31A\uE31B\uE31C\uE31D\uE31E\uE31F\uE320"+
+ "\uE321\uE322\uE323\uE324\uE325\uE326\uE327\uE328"+
+ "\uE329\uE32A\uE32B\uE32C\uE32D\uE32E\uE32F\uE330"+
+ "\uE331\uE332\uE333\uE334\uE335\uE336\uE337\uE338"+
+ "\uE339\uE33A\uE33B\uE33C\uE33D\uE33E\uE33F\uE340"+
+ "\uE341\uE342\uE343\uE344\uE345\uE346\uE347\uE348"+
+ "\uE349\uE34A\uE34B\uE34C\uE34D\u9E03\u9E04\u9E05"+
+ "\u9E06\u9E07\u9E08\u9E09\u9E0A\u9E0B\u9E0C\u9E0D"+
+ "\u9E0E\u9E0F\u9E10\u9E11\u9E12\u9E13\u9E14\u9E15"+
+ "\u9E16\u9E17\u9E18\u9E19\u9E1A\u9E1B\u9E1C\u9E1D"+
+ "\u9E1E\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C"+
+ "\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59"+
+ "\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F"+
+ "\u9E72\u9E74\u9E75\u9E76\u9E77\u9E78\u9E79\u9E7A"+
+ "\u9E7B\u9E7C\u9E7D\u9E80\uFFFD\u9E81\u9E83\u9E84"+
+ "\u9E85\u9E86\u9E89\u9E8A\u9E8C\u9E8D\u9E8E\u9E8F"+
+ "\u9E90\u9E91\u9E94\u9E95\u9E96\u9E97\u9E98\u9E99"+
+ "\u9E9A\u9E9B\u9E9C\u9E9E\u9EA0\u9EA1\u9EA2\u9EA3"+
+ "\u9EA4\u9EA5\u9EA7\u9EA8\u9EA9\u9EAA\uE34E\uE34F"+
+ "\uE350\uE351\uE352\uE353\uE354\uE355\uE356\uE357"+
+ "\uE358\uE359\uE35A\uE35B\uE35C\uE35D\uE35E\uE35F"+
+ "\uE360\uE361\uE362\uE363\uE364\uE365\uE366\uE367"+
+ "\uE368\uE369\uE36A\uE36B\uE36C\uE36D\uE36E\uE36F"+
+ "\uE370\uE371\uE372\uE373\uE374\uE375\uE376\uE377"+
+ "\uE378\uE379\uE37A\uE37B\uE37C\uE37D\uE37E\uE37F"+
+ "\uE380\uE381\uE382\uE383\uE384\uE385\uE386\uE387"+
+ "\uE388\uE389\uE38A\uE38B\uE38C\uE38D\uE38E\uE38F"+
+ "\uE390\uE391\uE392\uE393\uE394\uE395\uE396\uE397"+
+ "\uE398\uE399\uE39A\uE39B\uE39C\uE39D\uE39E\uE39F"+
+ "\uE3A0\uE3A1\uE3A2\uE3A3\uE3A4\uE3A5\uE3A6\uE3A7"+
+ "\uE3A8\uE3A9\uE3AA\uE3AB\u9EAB\u9EAC\u9EAD\u9EAE"+
+ "\u9EAF\u9EB0\u9EB1\u9EB2\u9EB3\u9EB5\u9EB6\u9EB7"+
+ "\u9EB9\u9EBA\u9EBC\u9EBF\u9EC0\u9EC1\u9EC2\u9EC3"+
+ "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0"+
+ "\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE"+
+ "\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED"+
+ "\u9EEE\u9EF0\u9EF1\u9EF2\u9EF3\u9EF4\u9EF5\u9EF6"+
+ "\u9EF7\u9EF8\u9EFA\u9EFD\u9EFF\u9F00\u9F01\u9F02"+
+ "\u9F03\u9F04\u9F05\uFFFD\u9F06\u9F07\u9F08\u9F09"+
+ "\u9F0A\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16"+
+ "\u9F18\u9F1A\u9F1B\u9F1C\u9F1D\u9F1E\u9F1F\u9F21"+
+ "\u9F23\u9F24\u9F25\u9F26\u9F27\u9F28\u9F29\u9F2A"+
+ "\u9F2B\u9F2D\u9F2E\u9F30\u9F31\uE3AC\uE3AD\uE3AE"+
+ "\uE3AF\uE3B0\uE3B1\uE3B2\uE3B3\uE3B4\uE3B5\uE3B6"+
+ "\uE3B7\uE3B8\uE3B9\uE3BA\uE3BB\uE3BC\uE3BD\uE3BE"+
+ "\uE3BF\uE3C0\uE3C1\uE3C2\uE3C3\uE3C4\uE3C5\uE3C6"+
+ "\uE3C7\uE3C8\uE3C9\uE3CA\uE3CB\uE3CC\uE3CD\uE3CE"+
+ "\uE3CF\uE3D0\uE3D1\uE3D2\uE3D3\uE3D4\uE3D5\uE3D6"+
+ "\uE3D7\uE3D8\uE3D9\uE3DA\uE3DB\uE3DC\uE3DD\uE3DE"+
+ "\uE3DF\uE3E0\uE3E1\uE3E2\uE3E3\uE3E4\uE3E5\uE3E6"+
+ "\uE3E7\uE3E8\uE3E9\uE3EA\uE3EB\uE3EC\uE3ED\uE3EE"+
+ "\uE3EF\uE3F0\uE3F1\uE3F2\uE3F3\uE3F4\uE3F5\uE3F6"+
+ "\uE3F7\uE3F8\uE3F9\uE3FA\uE3FB\uE3FC\uE3FD\uE3FE"+
+ "\uE3FF\uE400\uE401\uE402\uE403\uE404\uE405\uE406"+
+ "\uE407\uE408\uE409\u9F32\u9F33\u9F34\u9F35\u9F36"+
+ "\u9F38\u9F3A\u9F3C\u9F3F\u9F40\u9F41\u9F42\u9F43"+
+ "\u9F45\u9F46\u9F47\u9F48\u9F49\u9F4A\u9F4B\u9F4C"+
+ "\u9F4D\u9F4E\u9F4F\u9F52\u9F53\u9F54\u9F55\u9F56"+
+ "\u9F57\u9F58\u9F59\u9F5A\u9F5B\u9F5C\u9F5D\u9F5E"+
+ "\u9F5F\u9F60\u9F61\u9F62\u9F63\u9F64\u9F65\u9F66"+
+ "\u9F67\u9F68\u9F69\u9F6A\u9F6B\u9F6C\u9F6D\u9F6E"+
+ "\u9F6F\u9F70\u9F71\u9F72\u9F73\u9F74\u9F75\u9F76"+
+ "\u9F77\u9F78\uFFFD\u9F79\u9F7A\u9F7B\u9F7C\u9F7D"+
+ "\u9F7E\u9F81\u9F82\u9F8D\u9F8E\u9F8F\u9F90\u9F91"+
+ "\u9F92\u9F93\u9F94\u9F95\u9F96\u9F97\u9F98\u9F9C"+
+ "\u9F9D\u9F9E\u9FA1\u9FA2\u9FA3\u9FA4\u9FA5\uF92C"+
+ "\uF979\uF995\uF9E7\uF9F1\uE40A\uE40B\uE40C\uE40D"+
+ "\uE40E\uE40F\uE410\uE411\uE412\uE413\uE414\uE415"+
+ "\uE416\uE417\uE418\uE419\uE41A\uE41B\uE41C\uE41D"+
+ "\uE41E\uE41F\uE420\uE421\uE422\uE423\uE424\uE425"+
+ "\uE426\uE427\uE428\uE429\uE42A\uE42B\uE42C\uE42D"+
+ "\uE42E\uE42F\uE430\uE431\uE432\uE433\uE434\uE435"+
+ "\uE436\uE437\uE438\uE439\uE43A\uE43B\uE43C\uE43D"+
+ "\uE43E\uE43F\uE440\uE441\uE442\uE443\uE444\uE445"+
+ "\uE446\uE447\uE448\uE449\uE44A\uE44B\uE44C\uE44D"+
+ "\uE44E\uE44F\uE450\uE451\uE452\uE453\uE454\uE455"+
+ "\uE456\uE457\uE458\uE459\uE45A\uE45B\uE45C\uE45D"+
+ "\uE45E\uE45F\uE460\uE461\uE462\uE463\uE464\uE465"+
+ "\uE466\uE467\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13"+
+ "\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27"+
+ "\uFA28\uFA29\u2E81\uE816\uE817\uE818\u2E84\u3473"+
+ "\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C"+
+ "\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0"+
+ "\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832"+
+ "\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7"+
+ "\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C"+
+ "\uE843\uFFFD\u4723\u4729\u477C\u478D\u2ECA\u4947"+
+ "\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B"+
+ "\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1"+
+ "\u4C77\u4CA2\u4D13\u4D14\u4D15\u4D16\u4D17\u4D18"+
+ "\u4D19\u4DAE\uE864\uE468\uE469\uE46A\uE46B\uE46C"+
+ "\uE46D\uE46E\uE46F\uE470\uE471\uE472\uE473\uE474"+
+ "\uE475\uE476\uE477\uE478\uE479\uE47A\uE47B\uE47C"+
+ "\uE47D\uE47E\uE47F\uE480\uE481\uE482\uE483\uE484"+
+ "\uE485\uE486\uE487\uE488\uE489\uE48A\uE48B\uE48C"+
+ "\uE48D\uE48E\uE48F\uE490\uE491\uE492\uE493\uE494"+
+ "\uE495\uE496\uE497\uE498\uE499\uE49A\uE49B\uE49C"+
+ "\uE49D\uE49E\uE49F\uE4A0\uE4A1\uE4A2\uE4A3\uE4A4"+
+ "\uE4A5\uE4A6\uE4A7\uE4A8\uE4A9\uE4AA\uE4AB\uE4AC"+
+ "\uE4AD\uE4AE\uE4AF\uE4B0\uE4B1\uE4B2\uE4B3\uE4B4"+
+ "\uE4B5\uE4B6\uE4B7\uE4B8\uE4B9\uE4BA\uE4BB\uE4BC"+
+ "\uE4BD\uE4BE\uE4BF\uE4C0\uE4C1\uE4C2\uE4C3\uE4C4"+
+ "\uE4C5";
+
+ final static short index1[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 0
+ };
+
+ static String index2[] = {
+ innerIndex0,
+ innerIndex1,
+ innerIndex2,
+ innerIndex3,
+ innerIndex4,
+ innerIndex5,
+ innerIndex6,
+ innerIndex7
+ };
+
+
+
+
+
+ private final static String innerEncoderIndex0=
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007"+
+ "\u2008\u2009\u200A\u200B\u200C\u200D\u200E\u200F"+
+ "\u2010\u2011\u2012\u2013\u2014\u2015\u2016\u2017"+
+ "\u2018\u2019\u201A\u201B\u201C\u201D\u201E\u201F"+
+ "\u2020\u2021\u2022\u2023\uA1E8\u2024\u2025\uA1EC"+
+ "\uA1A7\u2026\u2027\u2028\u2029\u202A\u202B\u202C"+
+ "\uA1E3\uA1C0\u202D\u202E\u202F\u2030\u2031\uA1A4"+
+ "\u2032\u2033\u2034\u2035\u2036\u2037\u2038\u2039"+
+ "\u203A\u203B\u203C\u203D\u203E\u203F\u2040\u2041"+
+ "\u2042\u2043\u2044\u2045\u2046\u2047\u2048\u2049"+
+ "\u204A\u204B\u204C\u204D\u204E\u204F\u2050\uA1C1"+
+ "\u2051\u2052\u2053\u2054\u2055\u2056\u2057\u2058"+
+ "\uA8A4\uA8A2\u2059\u205A\u205B\u205C\u205D\u205E"+
+ "\uA8A8\uA8A6\uA8BA\u205F\uA8AC\uA8AA\u2060\u2061"+
+ "\u2062\u2063\uA8B0\uA8AE\u2064\u2065\u2066\uA1C2"+
+ "\u2067\uA8B4\uA8B2\u2068\uA8B9\u2069\u206A\u206B"+
+ "\u206C\uA8A1\u206D\u206E\u206F\u2070\u2071\u2072"+
+ "\u2073\u2074\u2075\u2076\u2077\u2078\u2079\u207A"+
+ "\u207B\u207C\u207D\uA8A5\u207E\u207F\u2080\u2081"+
+ "\u2082\u2083\u2084\uA8A7\u2085\u2086\u2087\u2088"+
+ "\u2089\u208A\u208B\u208C\u208D\u208E\u208F\u2090"+
+ "\u2091\u2092\u2093\uA8A9\u2094\u2095\u2096\u2097"+
+ "\u2098\u2099\u209A\u209B\u209C\u209D\u209E\u209F"+
+ "\u20A0\u20A1\u20A2\u20A3\u20A4\u20A5\u20A6\u20A7"+
+ "\u20A8\u20A9\u20AA\u20AB\uA8BD\u20AC\u20AD\u20AE"+
+ "\uA8BE\u20AF\u20B0\u20B1\u20B2\uA8AD\u20B3\u20B4"+
+ "\u20B5\u20B6\u20B7\u20B8\u20B9\u20BA\u20BB\u20BC"+
+ "\u20BD\u20BE\u20BF\u20C0\u20C1\u20C2\u20C3\u20C4"+
+ "\u20C5\u20C6\u20C7\u20C8\u20C9\u20CA\u20CB\u20CC"+
+ "\u20CD\u20CE\u20CF\uA8B1\u20D0\u20D1\u20D2\u20D3"+
+ "\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB"+
+ "\u20DC\u20DD\u20DE\u20DF\u20E0\u20E1\u20E2\u20E3"+
+ "\u20E4\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB"+
+ "\u20EC\u20ED\u20EE\u20EF\u20F0\u20F1\u20F2\u20F3"+
+ "\u20F4\u20F5\u20F6\u20F7\u20F8\u20F9\u20FA\u20FB"+
+ "\u20FC\u20FD\u20FE\u20FF\u2100\u2101\u2102\u2103"+
+ "\u2104\u2105\u2106\u2107\u2108\u2109\u210A\u210B"+
+ "\u210C\u210D\u210E\u210F\u2110\u2111\u2112\u2113"+
+ "\u2114\u2115\u2116\u2117\u2118\u2119\u211A\u211B"+
+ "\u211C\u211D\u211E\u211F\u2120\u2121\u2122\u2123"+
+ "\u2124\u2125\u2126\u2127\u2128\u2129\u212A\u212B"+
+ "\u212C\u212D\u212E\u212F\u2130\u2131\uA8A3\u2132"+
+ "\uA8AB\u2133\uA8AF\u2134\uA8B3\u2135\uA8B5\u2136"+
+ "\uA8B6\u2137\uA8B7\u2138\uA8B8\u2139\u213A\u213B"+
+ "\u213C\u213D\u213E\u213F\u2140\u2141\u2142\u2143"+
+ "\u2144\u2145\u2146\u2147\u2148\u2149\u214A\u214B"+
+ "\u214C\u214D\u214E\u214F\u2150\u2151\u2152\u2153"+
+ "\u2154\uA8BF\u2155\u2156\u2157\u2158\u2159\u215A"+
+ "\u215B\u215C\u215D\u215E\u215F\u2160\u2161\u2162"+
+ "\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A"+
+ "\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172"+
+ "\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A"+
+ "\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182"+
+ "\u2183\u2184\u2185\u2186\u2187\u2188\u2189\u218A"+
+ "\u218B\u218C\u218D\u218E\u218F\u2190\u2191\u2192"+
+ "\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219A"+
+ "\u219B\u219C\u219D\u219E\u219F\u21A0\u21A1\u21A2"+
+ "\u21A3\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9\u21AA"+
+ "\u21AB\uA8BB\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1"+
+ "\u21B2\u21B3\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9"+
+ "\u21BA\uA8C0\u21BB\u21BC\u21BD\u21BE\u21BF\u21C0"+
+ "\u21C1\u21C2\u21C3\u21C4\u21C5\u21C6\u21C7\u21C8"+
+ "\u21C9\u21CA\u21CB\u21CC\u21CD\u21CE\u21CF\u21D0"+
+ "\u21D1\u21D2\u21D3\u21D4\u21D5\u21D6\u21D7\u21D8"+
+ "\u21D9\u21DA\u21DB\u21DC\u21DD\u21DE\u21DF\u21E0"+
+ "\u21E1\u21E2\u21E3\u21E4\u21E5\u21E6\u21E7\u21E8"+
+ "\u21E9\u21EA\u21EB\u21EC\u21ED\u21EE\u21EF\u21F0"+
+ "\u21F1\u21F2\u21F3\u21F4\u21F5\u21F6\u21F7\u21F8"+
+ "\u21F9\u21FA\u21FB\u21FC\u21FD\u21FE\u21FF\u2200"+
+ "\u2201\u2202\u2203\u2204\u2205\u2206\u2207\u2208"+
+ "\u2209\u220A\u220B\u220C\u220D\u220E\u220F\u2210"+
+ "\u2211\u2212\u2213\u2214\u2215\u2216\u2217\u2218"+
+ "\u2219\u221A\u221B\u221C\u221D\u221E\u221F\uA1A6"+
+ "\u2220\uA1A5\uA840\uA841\u2221\u2222\u2223\u2224"+
+ "\u2225\u2226\u2227\u2228\u2229\u222A\u222B\u222C"+
+ "\u222D\uA842\u222E\u222F\u2230\u2231\u2232\u2233"+
+ "\u2234\u2235\u2236\u2237\u2238\u2239\u223A\u223B"+
+ "\u223C\u223D\u223E\u223F\u2240\u2241\u2242\u2243"+
+ "\u2244\u2245\u2246\u2247\u2248\u2249\u224A\u224B"+
+ "\u224C\u224D\u224E\u224F\u2250\u2251\u2252\u2253"+
+ "\u2254\u2255\u2256\u2257\u2258\u2259\u225A\u225B"+
+ "\u225C\u225D\u225E\u225F\u2260\u2261\u2262\u2263"+
+ "\u2264\u2265\u2266\u2267\u2268\u2269\u226A\u226B"+
+ "\u226C\u226D\u226E\u226F\u2270\u2271\u2272\u2273"+
+ "\u2274\u2275\u2276\u2277\u2278\u2279\u227A\u227B"+
+ "\u227C\u227D\u227E\u227F\u2280\u2281\u2282\u2283"+
+ "\u2284\u2285\u2286\u2287\u2288\u2289\u228A\u228B"+
+ "\u228C\u228D\u228E\u228F\u2290\u2291\u2292\u2293"+
+ "\u2294\u2295\u2296\u2297\u2298\u2299\u229A\u229B"+
+ "\u229C\u229D\u229E\u229F\u22A0\u22A1\u22A2\u22A3"+
+ "\u22A4\u22A5\u22A6\u22A7\u22A8\u22A9\u22AA\u22AB"+
+ "\u22AC\u22AD\u22AE\u22AF\u22B0\u22B1\u22B2\u22B3"+
+ "\u22B4\u22B5\u22B6\u22B7\u22B8\u22B9\u22BA\u22BB"+
+ "\u22BC\u22BD\u22BE\u22BF\u22C0\u22C1\u22C2\u22C3"+
+ "\u22C4\u22C5\u22C6\u22C7\u22C8\u22C9\u22CA\u22CB"+
+ "\u22CC\u22CD\u22CE\u22CF\u22D0\u22D1\u22D2\u22D3"+
+ "\u22D4\u22D5\u22D6\u22D7\u22D8\u22D9\u22DA\u22DB"+
+ "\u22DC\u22DD\u22DE\u22DF\u22E0\u22E1\u22E2\u22E3"+
+ "\u22E4\uA6A1\uA6A2\uA6A3\uA6A4\uA6A5\uA6A6\uA6A7"+
+ "\uA6A8\uA6A9\uA6AA\uA6AB\uA6AC\uA6AD\uA6AE\uA6AF"+
+ "\uA6B0\uA6B1\u22E5\uA6B2\uA6B3\uA6B4\uA6B5\uA6B6"+
+ "\uA6B7\uA6B8\u22E6\u22E7\u22E8\u22E9\u22EA\u22EB"+
+ "\u22EC\uA6C1\uA6C2\uA6C3\uA6C4\uA6C5\uA6C6\uA6C7"+
+ "\uA6C8\uA6C9\uA6CA\uA6CB\uA6CC\uA6CD\uA6CE\uA6CF"+
+ "\uA6D0\uA6D1\u22ED\uA6D2\uA6D3\uA6D4\uA6D5\uA6D6"+
+ "\uA6D7\uA6D8\u22EE\u22EF\u22F0\u22F1\u22F2\u22F3"+
+ "\u22F4\u22F5\u22F6\u22F7\u22F8\u22F9\u22FA\u22FB"+
+ "\u22FC\u22FD\u22FE\u22FF\u2300\u2301\u2302\u2303"+
+ "\u2304\u2305\u2306\u2307\u2308\u2309\u230A\u230B"+
+ "\u230C\u230D\u230E\u230F\u2310\u2311\u2312\u2313"+
+ "\u2314\u2315\u2316\u2317\u2318\u2319\u231A\u231B"+
+ "\u231C\u231D\u231E\u231F\u2320\u2321\u2322\u2323"+
+ "\u2324\uA7A7\u2325\u2326\u2327\u2328\u2329\u232A"+
+ "\u232B\u232C\u232D\u232E\u232F\u2330\u2331\u2332"+
+ "\uA7A1\uA7A2\uA7A3\uA7A4\uA7A5\uA7A6\uA7A8\uA7A9"+
+ "\uA7AA\uA7AB\uA7AC\uA7AD\uA7AE\uA7AF\uA7B0\uA7B1"+
+ "\uA7B2\uA7B3\uA7B4\uA7B5\uA7B6\uA7B7\uA7B8\uA7B9"+
+ "\uA7BA\uA7BB\uA7BC\uA7BD\uA7BE\uA7BF\uA7C0\uA7C1"+
+ "\uA7D1\uA7D2\uA7D3\uA7D4\uA7D5\uA7D6\uA7D8\uA7D9"+
+ "\uA7DA\uA7DB\uA7DC\uA7DD\uA7DE\uA7DF\uA7E0\uA7E1"+
+ "\uA7E2\uA7E3\uA7E4\uA7E5\uA7E6\uA7E7\uA7E8\uA7E9"+
+ "\uA7EA\uA7EB\uA7EC\uA7ED\uA7EE\uA7EF\uA7F0\uA7F1"+
+ "\u2333\uA7D7\u2334\u2335\u2336\u2337\u2338\u2339"+
+ "\u233A\u233B\u233C\u233D\u233E\u233F\u2340\u2341"+
+ "\u2342\u2343\u2344\u2345\u2346\u2347\u2348\u2349"+
+ "\u234A\u234B\u234C\u234D\u234E\u234F\u2350\u2351"+
+ "\u2352\u2353\u2354\u2355\u2356\u2357\u2358\u2359"+
+ "\u235A\u235B\u235C\u235D\u235E\u235F\u2360\u2361"+
+ "\u2362\u2363\u2364\u2365\u2366\u2367\u2368\u2369"+
+ "\u236A\u236B\u236C\u236D\u236E\u236F\u2370\u2371"+
+ "\u2372\u2373\u2374\u2375\u2376\u2377\u2378\u2379"+
+ "\u237A\u237B\u237C\u237D\u237E\u237F\u2380\u2381"+
+ "\u2382\u2383\u2384\u2385\u2386\u2387\u2388\u2389"+
+ "\u238A\u238B\u238C\u238D\u238E\u238F\u2390\u2391"+
+ "\u2392\u2393\u2394\u2395\u2396\u2397\u2398\u2399"+
+ "\u239A\u239B\u239C\u239D\u239E\u239F\u23A0\u23A1"+
+ "\u23A2\u23A3\u23A4\u23A5\u23A6\u23A7\u23A8\u23A9"+
+ "\u23AA\u23AB\u23AC\u23AD\u23AE\u23AF\u23B0\u23B1"+
+ "\u23B2\u23B3\u23B4\u23B5\u23B6\u23B7\u23B8\u23B9"+
+ "\u23BA\u23BB\u23BC\u23BD\u23BE\u23BF\u23C0\u23C1"+
+ "\u23C2\u23C3\u23C4\u23C5\u23C6\u23C7\u23C8\u23C9"+
+ "\u23CA\u23CB\u23CC\u23CD\u23CE\u23CF\u23D0\u23D1"+
+ "\u23D2\u23D3\u23D4\u23D5\u23D6\u23D7\u23D8\u23D9"+
+ "\u23DA\u23DB\u23DC\u23DD\u23DE\u23DF\u23E0\u23E1"+
+ "\u23E2\u23E3\u23E4\u23E5\u23E6\u23E7\u23E8\u23E9"+
+ "\u23EA\u23EB\u23EC\u23ED\u23EE\u23EF\u23F0\u23F1"+
+ "\u23F2\u23F3\u23F4\u23F5\u23F6\u23F7\u23F8\u23F9"+
+ "\u23FA\u23FB\u23FC\u23FD\u23FE\u23FF\u2400\u2401"+
+ "\u2402\u2403\u2404\u2405\u2406\u2407\u2408\u2409"+
+ "\u240A\u240B\u240C\u240D\u240E\u240F\u2410\u2411"+
+ "\u2412\u2413\u2414\u2415\u2416\u2417\u2418\u2419"+
+ "\u241A\u241B\u241C\u241D\u241E\u241F\u2420\u2421"+
+ "\u2422\u2423\u2424\u2425\u2426\u2427\u2428\u2429"+
+ "\u242A\u242B\u242C\u242D\u242E\u242F\u2430\u2431"+
+ "\u2432\u2433\u2434\u2435\u2436\u2437\u2438\u2439"+
+ "\u243A\u243B\u243C\u243D\u243E\u243F\u2440\u2441"+
+ "\u2442\u2443\u2444\u2445\u2446\u2447\u2448\u2449"+
+ "\u244A\u244B\u244C\u244D\u244E\u244F\u2450\u2451"+
+ "\u2452\u2453\u2454\u2455\u2456\u2457\u2458\u2459"+
+ "\u245A\u245B\u245C\u245D\u245E\u245F\u2460\u2461"+
+ "\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469"+
+ "\u246A\u246B\u246C\u246D\u246E\u246F\u2470\u2471"+
+ "\u2472\u2473\u2474\u2475\u2476\u2477\u2478\u2479"+
+ "\u247A\u247B\u247C\u247D\u247E\u247F\u2480\u2481"+
+ "\u2482\u2483\u2484\u2485\u2486\u2487\u2488\u2489"+
+ "\u248A\u248B\u248C\u248D\u248E\u248F\u2490\u2491"+
+ "\u2492\u2493\u2494\u2495\u2496\u2497\u2498\u2499"+
+ "\u249A\u249B\u249C\u249D\u249E\u249F\u24A0\u24A1"+
+ "\u24A2\u24A3\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9"+
+ "\u24AA\u24AB\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1"+
+ "\u24B2\u24B3\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9"+
+ "\u24BA\u24BB\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1"+
+ "\u24C2\u24C3\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9"+
+ "\u24CA\u24CB\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1"+
+ "\u24D2\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9"+
+ "\u24DA\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1"+
+ "\u24E2\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9"+
+ "\u24EA\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1"+
+ "\u24F2\u24F3\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9"+
+ "\u24FA\u24FB\u24FC\u24FD\u24FE\u24FF\u2500\u2501"+
+ "\u2502\u2503\u2504\u2505\u2506\u2507\u2508\u2509"+
+ "\u250A\u250B\u250C\u250D\u250E\u250F\u2510\u2511"+
+ "\u2512\u2513\u2514\u2515\u2516\u2517\u2518\u2519"+
+ "\u251A\u251B\u251C\u251D\u251E\u251F\u2520\u2521"+
+ "\u2522\u2523\u2524\u2525\u2526\u2527\u2528\u2529"+
+ "\u252A\u252B\u252C\u252D\u252E\u252F\u2530\u2531"+
+ "\u2532\u2533\u2534\u2535\u2536\u2537\u2538\u2539"+
+ "\u253A\u253B\u253C\u253D\u253E\u253F\u2540\u2541"+
+ "\u2542\u2543\u2544\u2545\u2546\u2547\u2548\u2549"+
+ "\u254A\u254B\u254C\u254D\u254E\u254F\u2550\u2551"+
+ "\u2552\u2553\u2554\u2555\u2556\u2557\u2558\u2559"+
+ "\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561"+
+ "\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569"+
+ "\u256A\u256B\u256C\u256D\u256E\u256F\u2570\u2571"+
+ "\u2572\u2573\u2574\u2575\u2576\u2577\u2578\u2579"+
+ "\u257A\u257B\u257C\u257D\u257E\u257F\u2580\u2581"+
+ "\u2582\u2583\u2584\u2585\u2586\u2587\u2588\u2589"+
+ "\u258A\u258B\u258C\u258D\u258E\u258F\u2590\u2591"+
+ "\u2592\u2593\u2594\u2595\u2596\u2597\u2598\u2599"+
+ "\u259A\u259B\u259C\u259D\u259E\u259F\u25A0\u25A1"+
+ "\u25A2\u25A3\u25A4\u25A5\u25A6\u25A7\u25A8\u25A9"+
+ "\u25AA\u25AB\u25AC\u25AD\u25AE\u25AF\u25B0\u25B1"+
+ "\u25B2\u25B3\u25B4\u25B5\u25B6\u25B7\u25B8\u25B9"+
+ "\u25BA\u25BB\u25BC\u25BD\u25BE\u25BF\u25C0\u25C1"+
+ "\u25C2\u25C3\u25C4\u25C5\u25C6\u25C7\u25C8\u25C9"+
+ "\u25CA\u25CB\u25CC\u25CD\u25CE\u25CF\u25D0\u25D1"+
+ "\u25D2\u25D3\u25D4\u25D5\u25D6\u25D7\u25D8\u25D9"+
+ "\u25DA\u25DB\u25DC\u25DD\u25DE\u25DF\u25E0\u25E1"+
+ "\u25E2\u25E3\u25E4\u25E5\u25E6\u25E7\u25E8\u25E9"+
+ "\u25EA\u25EB\u25EC\u25ED\u25EE\u25EF\u25F0\u25F1"+
+ "\u25F2\u25F3\u25F4\u25F5\u25F6\u25F7\u25F8\u25F9"+
+ "\u25FA\u25FB\u25FC\u25FD\u25FE\u25FF\u2600\u2601"+
+ "\u2602\u2603\u2604\u2605\u2606\u2607\u2608\u2609"+
+ "\u260A\u260B\u260C\u260D\u260E\u260F\u2610\u2611"+
+ "\u2612\u2613\u2614\u2615\u2616\u2617\u2618\u2619"+
+ "\u261A\u261B\u261C\u261D\u261E\u261F\u2620\u2621"+
+ "\u2622\u2623\u2624\u2625\u2626\u2627\u2628\u2629"+
+ "\u262A\u262B\u262C\u262D\u262E\u262F\u2630\u2631"+
+ "\u2632\u2633\u2634\u2635\u2636\u2637\u2638\u2639"+
+ "\u263A\u263B\u263C\u263D\u263E\u263F\u2640\u2641"+
+ "\u2642\u2643\u2644\u2645\u2646\u2647\u2648\u2649"+
+ "\u264A\u264B\u264C\u264D\u264E\u264F\u2650\u2651"+
+ "\u2652\u2653\u2654\u2655\u2656\u2657\u2658\u2659"+
+ "\u265A\u265B\u265C\u265D\u265E\u265F\u2660\u2661"+
+ "\u2662\u2663\u2664\u2665\u2666\u2667\u2668\u2669"+
+ "\u266A\u266B\u266C\u266D\u266E\u266F\u2670\u2671"+
+ "\u2672\u2673\u2674\u2675\u2676\u2677\u2678\u2679"+
+ "\u267A\u267B\u267C\u267D\u267E\u267F\u2680\u2681"+
+ "\u2682\u2683\u2684\u2685\u2686\u2687\u2688\u2689"+
+ "\u268A\u268B\u268C\u268D\u268E\u268F\u2690\u2691"+
+ "\u2692\u2693\u2694\u2695\u2696\u2697\u2698\u2699"+
+ "\u269A\u269B\u269C\u269D\u269E\u269F\u26A0\u26A1"+
+ "\u26A2\u26A3\u26A4\u26A5\u26A6\u26A7\u26A8\u26A9"+
+ "\u26AA\u26AB\u26AC\u26AD\u26AE\u26AF\u26B0\u26B1"+
+ "\u26B2\u26B3\u26B4\u26B5\u26B6\u26B7\u26B8\u26B9"+
+ "\u26BA\u26BB\u26BC\u26BD\u26BE\u26BF\u26C0\u26C1"+
+ "\u26C2\u26C3\u26C4\u26C5\u26C6\u26C7\u26C8\u26C9"+
+ "\u26CA\u26CB\u26CC\u26CD\u26CE\u26CF\u26D0\u26D1"+
+ "\u26D2\u26D3\u26D4\u26D5\u26D6\u26D7\u26D8\u26D9"+
+ "\u26DA\u26DB\u26DC\u26DD\u26DE\u26DF\u26E0\u26E1"+
+ "\u26E2\u26E3\u26E4\u26E5\u26E6\u26E7\u26E8\u26E9"+
+ "\u26EA\u26EB\u26EC\u26ED\u26EE\u26EF\u26F0\u26F1"+
+ "\u26F2\u26F3\u26F4\u26F5\u26F6\u26F7\u26F8\u26F9"+
+ "\u26FA\u26FB\u26FC\u26FD\u26FE\u26FF\u2700\u2701"+
+ "\u2702\u2703\u2704\u2705\u2706\u2707\u2708\u2709"+
+ "\u270A\u270B\u270C\u270D\u270E\u270F\u2710\u2711"+
+ "\u2712\u2713\u2714\u2715\u2716\u2717\u2718\u2719"+
+ "\u271A\u271B\u271C\u271D\u271E\u271F\u2720\u2721"+
+ "\u2722\u2723\u2724\u2725\u2726\u2727\u2728\u2729"+
+ "\u272A\u272B\u272C\u272D\u272E\u272F\u2730\u2731"+
+ "\u2732\u2733\u2734\u2735\u2736\u2737\u2738\u2739"+
+ "\u273A\u273B\u273C\u273D\u273E\u273F\u2740\u2741"+
+ "\u2742\u2743\u2744\u2745\u2746\u2747\u2748\u2749"+
+ "\u274A\u274B\u274C\u274D\u274E\u274F\u2750\u2751"+
+ "\u2752\u2753\u2754\u2755\u2756\u2757\u2758\u2759"+
+ "\u275A\u275B\u275C\u275D\u275E\u275F\u2760\u2761"+
+ "\u2762\u2763\u2764\u2765\u2766\u2767\u2768\u2769"+
+ "\u276A\u276B\u276C\u276D\u276E\u276F\u2770\u2771"+
+ "\u2772\u2773\u2774\u2775\u2776\u2777\u2778\u2779"+
+ "\u277A\u277B\u277C\u277D\u277E\u277F\u2780\u2781"+
+ "\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789"+
+ "\u278A\u278B\u278C\u278D\u278E\u278F\u2790\u2791"+
+ "\u2792\u2793\u2794\u2795\u2796\u2797\u2798\u2799"+
+ "\u279A\u279B\u279C\u279D\u279E\u279F\u27A0\u27A1"+
+ "\u27A2\u27A3\u27A4\u27A5\u27A6\u27A7\u27A8\u27A9"+
+ "\u27AA\u27AB\u27AC\u27AD\u27AE\u27AF\u27B0\u27B1"+
+ "\u27B2\u27B3\u27B4\u27B5\u27B6\u27B7\u27B8\u27B9"+
+ "\u27BA\u27BB\u27BC\u27BD\u27BE\u27BF\u27C0\u27C1"+
+ "\u27C2\u27C3\u27C4\u27C5\u27C6\u27C7\u27C8\u27C9"+
+ "\u27CA\u27CB\u27CC\u27CD\u27CE\u27CF\u27D0\u27D1"+
+ "\u27D2\u27D3\u27D4\u27D5\u27D6\u27D7\u27D8\u27D9"+
+ "\u27DA\u27DB\u27DC\u27DD\u27DE\u27DF\u27E0\u27E1"+
+ "\u27E2\u27E3\u27E4\u27E5\u27E6\u27E7\u27E8\u27E9"+
+ "\u27EA\u27EB\u27EC\u27ED\u27EE\u27EF\u27F0\u27F1"+
+ "\u27F2\u27F3\u27F4\u27F5\u27F6\u27F7\u27F8\u27F9"+
+ "\u27FA\u27FB\u27FC\u27FD\u27FE\u27FF\u2800\u2801"+
+ "\u2802\u2803\u2804\u2805\u2806\u2807\u2808\u2809"+
+ "\u280A\u280B\u280C\u280D\u280E\u280F\u2810\u2811"+
+ "\u2812\u2813\u2814\u2815\u2816\u2817\u2818\u2819"+
+ "\u281A\u281B\u281C\u281D\u281E\u281F\u2820\u2821"+
+ "\u2822\u2823\u2824\u2825\u2826\u2827\u2828\u2829"+
+ "\u282A\u282B\u282C\u282D\u282E\u282F\u2830\u2831"+
+ "\u2832\u2833\u2834\u2835\u2836\u2837\u2838\u2839"+
+ "\u283A\u283B\u283C\u283D\u283E\u283F\u2840\u2841"+
+ "\u2842\u2843\u2844\u2845\u2846\u2847\u2848\u2849"+
+ "\u284A\u284B\u284C\u284D\u284E\u284F\u2850\u2851"+
+ "\u2852\u2853\u2854\u2855\u2856\u2857\u2858\u2859"+
+ "\u285A\u285B\u285C\u285D\u285E\u285F\u2860\u2861"+
+ "\u2862\u2863\u2864\u2865\u2866\u2867\u2868\u2869"+
+ "\u286A\u286B\u286C\u286D\u286E\u286F\u2870\u2871"+
+ "\u2872\u2873\u2874\u2875\u2876\u2877\u2878\u2879"+
+ "\u287A\u287B\u287C\u287D\u287E\u287F\u2880\u2881"+
+ "\u2882\u2883\u2884\u2885\u2886\u2887\u2888\u2889"+
+ "\u288A\u288B\u288C\u288D\u288E\u288F\u2890\u2891"+
+ "\u2892\u2893\u2894\u2895\u2896\u2897\u2898\u2899"+
+ "\u289A\u289B\u289C\u289D\u289E\u289F\u28A0\u28A1"+
+ "\u28A2\u28A3\u28A4\u28A5\u28A6\u28A7\u28A8\u28A9"+
+ "\u28AA\u28AB\u28AC\u28AD\u28AE\u28AF\u28B0\u28B1"+
+ "\u28B2\u28B3\u28B4\u28B5\u28B6\u28B7\u28B8\u28B9"+
+ "\u28BA\u28BB\u28BC\u28BD\u28BE\u28BF\u28C0\u28C1"+
+ "\u28C2\u28C3\u28C4\u28C5\u28C6\u28C7\u28C8\u28C9"+
+ "\u28CA\u28CB\u28CC\u28CD\u28CE\u28CF\u28D0\u28D1"+
+ "\u28D2\u28D3\u28D4\u28D5\u28D6\u28D7\u28D8\u28D9"+
+ "\u28DA\u28DB\u28DC\u28DD\u28DE\u28DF\u28E0\u28E1"+
+ "\u28E2\u28E3\u28E4\u28E5\u28E6\u28E7\u28E8\u28E9"+
+ "\u28EA\u28EB\u28EC\u28ED\u28EE\u28EF\u28F0\u28F1"+
+ "\u28F2\u28F3\u28F4\u28F5\u28F6\u28F7\u28F8\u28F9"+
+ "\u28FA\u28FB\u28FC\u28FD\u28FE\u28FF\u2900\u2901"+
+ "\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909"+
+ "\u290A\u290B\u290C\u290D\u290E\u290F\u2910\u2911"+
+ "\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919"+
+ "\u291A\u291B\u291C\u291D\u291E\u291F\u2920\u2921"+
+ "\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929"+
+ "\u292A\u292B\u292C\u292D\u292E\u292F\u2930\u2931"+
+ "\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939"+
+ "\u293A\u293B\u293C\u293D\u293E\u293F\u2940\u2941"+
+ "\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949"+
+ "\u294A\u294B\u294C\u294D\u294E\u294F\u2950\u2951"+
+ "\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959"+
+ "\u295A\u295B\u295C\u295D\u295E\u295F\u2960\u2961"+
+ "\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969"+
+ "\u296A\u296B\u296C\u296D\u296E\u296F\u2970\u2971"+
+ "\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979"+
+ "\u297A\u297B\u297C\u297D\u297E\u297F\u2980\u2981"+
+ "\u2982\u2983\u2984\u2985\u2986\u2987\u2988\u2989"+
+ "\u298A\u298B\u298C\u298D\u298E\u298F\u2990\u2991"+
+ "\u2992\u2993\u2994\u2995\u2996\u2997\u2998\u2999"+
+ "\u299A\u299B\u299C\u299D\u299E\u299F\u29A0\u29A1"+
+ "\u29A2\u29A3\u29A4\u29A5\u29A6\u29A7\u29A8\u29A9"+
+ "\u29AA\u29AB\u29AC\u29AD\u29AE\u29AF\u29B0\u29B1"+
+ "\u29B2\u29B3\u29B4\u29B5\u29B6\u29B7\u29B8\u29B9"+
+ "\u29BA\u29BB\u29BC\u29BD\u29BE\u29BF\u29C0\u29C1"+
+ "\u29C2\u29C3\u29C4\u29C5\u29C6\u29C7\u29C8\u29C9"+
+ "\u29CA\u29CB\u29CC\u29CD\u29CE\u29CF\u29D0\u29D1"+
+ "\u29D2\u29D3\u29D4\u29D5\u29D6\u29D7\u29D8\u29D9"+
+ "\u29DA\u29DB\u29DC\u29DD\u29DE\u29DF\u29E0\u29E1"+
+ "\u29E2\u29E3\u29E4\u29E5\u29E6\u29E7\u29E8\u29E9"+
+ "\u29EA\u29EB\u29EC\u29ED\u29EE\u29EF\u29F0\u29F1"+
+ "\u29F2\u29F3\u29F4\u29F5\u29F6\u29F7\u29F8\u29F9"+
+ "\u29FA\u29FB\u29FC\u29FD\u29FE\u29FF\u2A00\u2A01"+
+ "\u2A02\u2A03\u2A04\u2A05\u2A06\u2A07\u2A08\u2A09"+
+ "\u2A0A\u2A0B\u2A0C\u2A0D\u2A0E\u2A0F\u2A10\u2A11"+
+ "\u2A12\u2A13\u2A14\u2A15\u2A16\u2A17\u2A18\u2A19"+
+ "\u2A1A\u2A1B\u2A1C\u2A1D\u2A1E\u2A1F\u2A20\u2A21"+
+ "\u2A22\u2A23\u2A24\u2A25\u2A26\u2A27\u2A28\u2A29"+
+ "\u2A2A\u2A2B\u2A2C\u2A2D\u2A2E\u2A2F\u2A30\u2A31"+
+ "\u2A32\u2A33\u2A34\u2A35\u2A36\u2A37\u2A38\u2A39"+
+ "\u2A3A\u2A3B\u2A3C\u2A3D\u2A3E\u2A3F\u2A40\u2A41"+
+ "\u2A42\u2A43\u2A44\u2A45\u2A46\u2A47\u2A48\u2A49"+
+ "\u2A4A\u2A4B\u2A4C\u2A4D\u2A4E\u2A4F\u2A50\u2A51"+
+ "\u2A52\u2A53\u2A54\u2A55\u2A56\u2A57\u2A58\u2A59"+
+ "\u2A5A\u2A5B\u2A5C\u2A5D\u2A5E\u2A5F\u2A60\u2A61"+
+ "\u2A62\u2A63\u2A64\u2A65\u2A66\u2A67\u2A68\u2A69"+
+ "\u2A6A\u2A6B\u2A6C\u2A6D\u2A6E\u2A6F\u2A70\u2A71"+
+ "\u2A72\u2A73\u2A74\u2A75\u2A76\u2A77\u2A78\u2A79"+
+ "\u2A7A\u2A7B\u2A7C\u2A7D\u2A7E\u2A7F\u2A80\u2A81"+
+ "\u2A82\u2A83\u2A84\u2A85\u2A86\u2A87\u2A88\u2A89"+
+ "\u2A8A\u2A8B\u2A8C\u2A8D\u2A8E\u2A8F\u2A90\u2A91"+
+ "\u2A92\u2A93\u2A94\u2A95\u2A96\u2A97\u2A98\u2A99"+
+ "\u2A9A\u2A9B\u2A9C\u2A9D\u2A9E\u2A9F\u2AA0\u2AA1"+
+ "\u2AA2\u2AA3\u2AA4\u2AA5\u2AA6\u2AA7\u2AA8\u2AA9"+
+ "\u2AAA\u2AAB\u2AAC\u2AAD\u2AAE\u2AAF\u2AB0\u2AB1"+
+ "\u2AB2\u2AB3\u2AB4\u2AB5\u2AB6\u2AB7\u2AB8\u2AB9"+
+ "\u2ABA\u2ABB\u2ABC\u2ABD\u2ABE\u2ABF\u2AC0\u2AC1"+
+ "\u2AC2\u2AC3\u2AC4\u2AC5\u2AC6\u2AC7\u2AC8\u2AC9"+
+ "\u2ACA\u2ACB\u2ACC\u2ACD\u2ACE\u2ACF\u2AD0\u2AD1"+
+ "\u2AD2\u2AD3\u2AD4\u2AD5\u2AD6\u2AD7\u2AD8\u2AD9"+
+ "\u2ADA\u2ADB\u2ADC\u2ADD\u2ADE\u2ADF\u2AE0\u2AE1"+
+ "\u2AE2\u2AE3\u2AE4\u2AE5\u2AE6\u2AE7\u2AE8\u2AE9"+
+ "\u2AEA\u2AEB\u2AEC\u2AED\u2AEE\u2AEF\u2AF0\u2AF1"+
+ "\u2AF2\u2AF3\u2AF4\u2AF5\u2AF6\u2AF7\u2AF8\u2AF9"+
+ "\u2AFA\u2AFB\u2AFC\u2AFD\u2AFE\u2AFF\u2B00\u2B01"+
+ "\u2B02\u2B03\u2B04\u2B05\u2B06\u2B07\u2B08\u2B09"+
+ "\u2B0A\u2B0B\u2B0C\u2B0D\u2B0E\u2B0F\u2B10\u2B11"+
+ "\u2B12\u2B13\u2B14\u2B15\u2B16\u2B17\u2B18\u2B19"+
+ "\u2B1A\u2B1B\u2B1C\u2B1D\u2B1E\u2B1F\u2B20\u2B21"+
+ "\u2B22\u2B23\u2B24\u2B25\u2B26\u2B27\u2B28\u2B29"+
+ "\u2B2A\u2B2B\u2B2C\u2B2D\u2B2E\u2B2F\u2B30\u2B31"+
+ "\u2B32\u2B33\u2B34\u2B35\u2B36\u2B37\u2B38\u2B39"+
+ "\u2B3A\u2B3B\u2B3C\u2B3D\u2B3E\u2B3F\u2B40\u2B41"+
+ "\u2B42\u2B43\u2B44\u2B45\u2B46\u2B47\u2B48\u2B49"+
+ "\u2B4A\u2B4B\u2B4C\u2B4D\u2B4E\u2B4F\u2B50\u2B51"+
+ "\u2B52\u2B53\u2B54\u2B55\u2B56\u2B57\u2B58\u2B59"+
+ "\u2B5A\u2B5B\u2B5C\u2B5D\u2B5E\u2B5F\u2B60\u2B61"+
+ "\u2B62\u2B63\u2B64\u2B65\u2B66\u2B67\u2B68\u2B69"+
+ "\u2B6A\u2B6B\u2B6C\u2B6D\u2B6E\u2B6F\u2B70\u2B71"+
+ "\u2B72\u2B73\u2B74\u2B75\u2B76\u2B77\u2B78\u2B79"+
+ "\u2B7A\u2B7B\u2B7C\u2B7D\u2B7E\u2B7F\u2B80\u2B81"+
+ "\u2B82\u2B83\u2B84\u2B85\u2B86\u2B87\u2B88\u2B89"+
+ "\u2B8A\u2B8B\u2B8C\u2B8D\u2B8E\u2B8F\u2B90\u2B91"+
+ "\u2B92\u2B93\u2B94\u2B95\u2B96\u2B97\u2B98\u2B99"+
+ "\u2B9A\u2B9B\u2B9C\u2B9D\u2B9E\u2B9F\u2BA0\u2BA1"+
+ "\u2BA2\u2BA3\u2BA4\u2BA5\u2BA6\u2BA7\u2BA8\u2BA9"+
+ "\u2BAA\u2BAB\u2BAC\u2BAD\u2BAE\u2BAF\u2BB0\u2BB1"+
+ "\u2BB2\u2BB3\u2BB4\u2BB5\u2BB6\u2BB7\u2BB8\u2BB9"+
+ "\u2BBA\u2BBB\u2BBC\u2BBD\u2BBE\u2BBF\u2BC0\u2BC1"+
+ "\u2BC2\u2BC3\u2BC4\u2BC5\u2BC6\u2BC7\u2BC8\u2BC9"+
+ "\u2BCA\u2BCB\u2BCC\u2BCD\u2BCE\u2BCF\u2BD0\u2BD1"+
+ "\u2BD2\u2BD3\u2BD4\u2BD5\u2BD6\u2BD7\u2BD8\u2BD9"+
+ "\u2BDA\u2BDB\u2BDC\u2BDD\u2BDE\u2BDF\u2BE0\u2BE1"+
+ "\u2BE2\u2BE3\u2BE4\u2BE5\u2BE6\u2BE7\u2BE8\u2BE9"+
+ "\u2BEA\u2BEB\u2BEC\u2BED\u2BEE\u2BEF\u2BF0\u2BF1"+
+ "\u2BF2\u2BF3\u2BF4\u2BF5\u2BF6\u2BF7\u2BF8\u2BF9"+
+ "\u2BFA\u2BFB\u2BFC\u2BFD\u2BFE\u2BFF\u2C00\u2C01"+
+ "\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09"+
+ "\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11"+
+ "\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19"+
+ "\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21"+
+ "\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29"+
+ "\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C2F\u2C30\u2C31"+
+ "\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39"+
+ "\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41"+
+ "\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49"+
+ "\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51"+
+ "\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59"+
+ "\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C5F\u2C60\u2C61"+
+ "\u2C62\u2C63\u2C64\u2C65\u2C66\u2C67\u2C68\u2C69"+
+ "\u2C6A\u2C6B\u2C6C\u2C6D\u2C6E\u2C6F\u2C70\u2C71"+
+ "\u2C72\u2C73\u2C74\u2C75\u2C76\u2C77\u2C78\u2C79"+
+ "\u2C7A\u2C7B\u2C7C\u2C7D\u2C7E\u2C7F\u2C80\u2C81"+
+ "\u2C82\u2C83\u2C84\u2C85\u2C86\u2C87\u2C88\u2C89"+
+ "\u2C8A\u2C8B\u2C8C\u2C8D\u2C8E\u2C8F\u2C90\u2C91"+
+ "\u2C92\u2C93\u2C94\u2C95\u2C96\u2C97\u2C98\u2C99"+
+ "\u2C9A\u2C9B\u2C9C\u2C9D\u2C9E\u2C9F\u2CA0\u2CA1"+
+ "\u2CA2\u2CA3\u2CA4\u2CA5\u2CA6\u2CA7\u2CA8\u2CA9"+
+ "\u2CAA\u2CAB\u2CAC\u2CAD\u2CAE\u2CAF\u2CB0\u2CB1"+
+ "\u2CB2\u2CB3\u2CB4\u2CB5\u2CB6\u2CB7\u2CB8\u2CB9"+
+ "\u2CBA\u2CBB\u2CBC\u2CBD\u2CBE\u2CBF\u2CC0\u2CC1"+
+ "\u2CC2\u2CC3\u2CC4\u2CC5\u2CC6\u2CC7\u2CC8\u2CC9"+
+ "\u2CCA\u2CCB\u2CCC\u2CCD\u2CCE\u2CCF\u2CD0\u2CD1"+
+ "\u2CD2\u2CD3\u2CD4\u2CD5\u2CD6\u2CD7\u2CD8\u2CD9"+
+ "\u2CDA\u2CDB\u2CDC\u2CDD\u2CDE\u2CDF\u2CE0\u2CE1"+
+ "\u2CE2\u2CE3\u2CE4\u2CE5\u2CE6\u2CE7\u2CE8\u2CE9"+
+ "\u2CEA\u2CEB\u2CEC\u2CED\u2CEE\u2CEF\u2CF0\u2CF1"+
+ "\u2CF2\u2CF3\u2CF4\u2CF5\u2CF6\u2CF7\u2CF8\u2CF9"+
+ "\u2CFA\u2CFB\u2CFC\u2CFD\u2CFE\u2CFF\u2D00\u2D01"+
+ "\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09"+
+ "\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11"+
+ "\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19"+
+ "\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21"+
+ "\u2D22\u2D23\u2D24\u2D25\u2D26\u2D27\u2D28\u2D29"+
+ "\u2D2A\u2D2B\u2D2C\u2D2D\u2D2E\u2D2F\u2D30\u2D31"+
+ "\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39"+
+ "\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41"+
+ "\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49"+
+ "\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51"+
+ "\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59"+
+ "\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61"+
+ "\u2D62\u2D63\u2D64\u2D65\u2D66\u2D67\u2D68\u2D69"+
+ "\u2D6A\u2D6B\u2D6C\u2D6D\u2D6E\u2D6F\u2D70\u2D71"+
+ "\u2D72\u2D73\u2D74\u2D75\u2D76\u2D77\u2D78\u2D79"+
+ "\u2D7A\u2D7B\u2D7C\u2D7D\u2D7E\u2D7F\u2D80\u2D81"+
+ "\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89"+
+ "\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91"+
+ "\u2D92\u2D93\u2D94\u2D95\u2D96\u2D97\u2D98\u2D99"+
+ "\u2D9A\u2D9B\u2D9C\u2D9D\u2D9E\u2D9F\u2DA0\u2DA1"+
+ "\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA7\u2DA8\u2DA9"+
+ "\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DAF\u2DB0\u2DB1"+
+ "\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB7\u2DB8\u2DB9"+
+ "\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DBF\u2DC0\u2DC1"+
+ "\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC7\u2DC8\u2DC9"+
+ "\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DCF\u2DD0\u2DD1"+
+ "\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD7\u2DD8\u2DD9"+
+ "\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u2DDF\u2DE0\u2DE1"+
+ "\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9"+
+ "\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1"+
+ "\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9"+
+ "\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u2E00\u2E01"+
+ "\u2E02\u2E03\u2E04\u2E05\u2E06\u2E07\u2E08\u2E09"+
+ "\u2E0A\u2E0B\u2E0C\u2E0D\u2E0E\u2E0F\u2E10\u2E11"+
+ "\u2E12\u2E13\u2E14\u2E15\u2E16\u2E17\u2E18\u2E19"+
+ "\u2E1A\u2E1B\u2E1C\u2E1D\u2E1E\u2E1F\u2E20\u2E21"+
+ "\u2E22\u2E23\u2E24\u2E25\u2E26\u2E27\u2E28\u2E29"+
+ "\u2E2A\u2E2B\u2E2C\u2E2D\u2E2E\u2E2F\u2E30\u2E31"+
+ "\u2E32\u2E33\u2E34\u2E35\u2E36\u2E37\u2E38\u2E39"+
+ "\u2E3A\u2E3B\u2E3C\u2E3D\u2E3E\u2E3F\u2E40\u2E41"+
+ "\u2E42\u2E43\u2E44\u2E45\u2E46\u2E47\u2E48\u2E49"+
+ "\u2E4A\u2E4B\u2E4C\u2E4D\u2E4E\u2E4F\u2E50\u2E51"+
+ "\u2E52\u2E53\u2E54\u2E55\u2E56\u2E57\u2E58\u2E59"+
+ "\u2E5A\u2E5B\u2E5C\u2E5D\u2E5E\u2E5F\u2E60\u2E61"+
+ "\u2E62\u2E63\u2E64\u2E65\u2E66\u2E67\u2E68\u2E69"+
+ "\u2E6A\u2E6B\u2E6C\u2E6D\u2E6E\u2E6F\u2E70\u2E71"+
+ "\u2E72\u2E73\u2E74\u2E75\u2E76\u2E77\u2E78\u2E79"+
+ "\u2E7A\u2E7B\u2E7C\u2E7D\u2E7E\u2E7F\u2E80\u2E81"+
+ "\u2E82\u2E83\u2E84\u2E85\u2E86\u2E87\u2E88\u2E89"+
+ "\u2E8A\u2E8B\u2E8C\u2E8D\u2E8E\u2E8F\u2E90\u2E91"+
+ "\u2E92\u2E93\u2E94\u2E95\u2E96\u2E97\u2E98\u2E99"+
+ "\u2E9A\u2E9B\u2E9C\u2E9D\u2E9E\u2E9F\u2EA0\u2EA1"+
+ "\u2EA2\u2EA3\u2EA4\u2EA5\u2EA6\u2EA7\u2EA8\u2EA9"+
+ "\u2EAA\u2EAB\u2EAC\u2EAD\u2EAE\u2EAF\u2EB0\u2EB1"+
+ "\u2EB2\u2EB3\u2EB4\u2EB5\u2EB6\u2EB7\u2EB8\u2EB9"+
+ "\u2EBA\u2EBB\u2EBC\u2EBD\u2EBE\u2EBF\u2EC0\u2EC1"+
+ "\u2EC2\u2EC3\u2EC4\u2EC5\u2EC6\u2EC7\u2EC8\u2EC9"+
+ "\u2ECA\u2ECB\u2ECC\u2ECD\u2ECE\u2ECF\u2ED0\u2ED1"+
+ "\u2ED2\u2ED3\u2ED4\u2ED5\u2ED6\u2ED7\u2ED8\u2ED9"+
+ "\u2EDA\u2EDB\u2EDC\u2EDD\u2EDE\u2EDF\u2EE0\u2EE1";
+
+ private final static String innerEncoderIndex1=
+ "\u2EE2\u2EE3\u2EE4\u2EE5\u2EE6\u2EE7\u2EE8\u2EE9"+
+ "\u2EEA\u2EEB\u2EEC\u2EED\u2EEE\u2EEF\u2EF0\u2EF1"+
+ "\u2EF2\u2EF3\u2EF4\u2EF5\u2EF6\u2EF7\u2EF8\u2EF9"+
+ "\u2EFA\u2EFB\u2EFC\u2EFD\u2EFE\u2EFF\u2F00\u2F01"+
+ "\u2F02\u2F03\u2F04\u2F05\u2F06\u2F07\u2F08\u2F09"+
+ "\u2F0A\u2F0B\u2F0C\u2F0D\u2F0E\u2F0F\u2F10\u2F11"+
+ "\u2F12\u2F13\u2F14\u2F15\u2F16\u2F17\u2F18\u2F19"+
+ "\u2F1A\u2F1B\u2F1C\u2F1D\u2F1E\u2F1F\u2F20\u2F21"+
+ "\u2F22\u2F23\u2F24\u2F25\u2F26\u2F27\u2F28\u2F29"+
+ "\u2F2A\u2F2B\u2F2C\u2F2D\u2F2E\u2F2F\u2F30\u2F31"+
+ "\u2F32\u2F33\u2F34\u2F35\u2F36\u2F37\u2F38\u2F39"+
+ "\u2F3A\u2F3B\u2F3C\u2F3D\u2F3E\u2F3F\u2F40\u2F41"+
+ "\u2F42\u2F43\u2F44\u2F45\u2F46\u2F47\u2F48\u2F49"+
+ "\u2F4A\u2F4B\u2F4C\u2F4D\u2F4E\u2F4F\u2F50\u2F51"+
+ "\u2F52\u2F53\u2F54\u2F55\u2F56\u2F57\u2F58\u2F59"+
+ "\u2F5A\u2F5B\u2F5C\u2F5D\u2F5E\u2F5F\u2F60\u2F61"+
+ "\u2F62\u2F63\u2F64\u2F65\u2F66\u2F67\u2F68\u2F69"+
+ "\u2F6A\u2F6B\u2F6C\u2F6D\u2F6E\u2F6F\u2F70\u2F71"+
+ "\u2F72\u2F73\u2F74\u2F75\u2F76\u2F77\u2F78\u2F79"+
+ "\u2F7A\u2F7B\u2F7C\u2F7D\u2F7E\u2F7F\u2F80\u2F81"+
+ "\u2F82\u2F83\u2F84\u2F85\u2F86\u2F87\u2F88\u2F89"+
+ "\u2F8A\u2F8B\u2F8C\u2F8D\u2F8E\u2F8F\u2F90\u2F91"+
+ "\u2F92\u2F93\u2F94\u2F95\u2F96\u2F97\u2F98\u2F99"+
+ "\u2F9A\u2F9B\u2F9C\u2F9D\u2F9E\u2F9F\u2FA0\u2FA1"+
+ "\u2FA2\u2FA3\u2FA4\u2FA5\u2FA6\u2FA7\u2FA8\u2FA9"+
+ "\u2FAA\u2FAB\u2FAC\u2FAD\u2FAE\u2FAF\u2FB0\u2FB1"+
+ "\u2FB2\u2FB3\u2FB4\u2FB5\u2FB6\u2FB7\u2FB8\u2FB9"+
+ "\u2FBA\u2FBB\u2FBC\u2FBD\u2FBE\u2FBF\u2FC0\u2FC1"+
+ "\u2FC2\u2FC3\u2FC4\u2FC5\u2FC6\u2FC7\u2FC8\u2FC9"+
+ "\u2FCA\u2FCB\u2FCC\u2FCD\u2FCE\u2FCF\u2FD0\u2FD1"+
+ "\u2FD2\u2FD3\u2FD4\u2FD5\u2FD6\u2FD7\u2FD8\u2FD9"+
+ "\u2FDA\u2FDB\u2FDC\u2FDD\u2FDE\u2FDF\u2FE0\u2FE1"+
+ "\u2FE2\u2FE3\u2FE4\u2FE5\u2FE6\u2FE7\u2FE8\u2FE9"+
+ "\u2FEA\u2FEB\u2FEC\u2FED\u2FEE\u2FEF\u2FF0\u2FF1"+
+ "\u2FF2\u2FF3\u2FF4\u2FF5\u2FF6\u2FF7\u2FF8\u2FF9"+
+ "\u2FFA\u2FFB\u2FFC\u2FFD\u2FFE\u2FFF\u3000\u3001"+
+ "\u3002\u3003\u3004\u3005\u3006\u3007\u3008\u3009"+
+ "\u300A\u300B\u300C\u300D\u300E\u300F\u3010\u3011"+
+ "\u3012\u3013\u3014\u3015\u3016\u3017\u3018\u3019"+
+ "\u301A\u301B\u301C\u301D\u301E\u301F\u3020\u3021"+
+ "\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029"+
+ "\u302A\u302B\u302C\u302D\u302E\u302F\u3030\u3031"+
+ "\u3032\u3033\u3034\u3035\u3036\u3037\u3038\u3039"+
+ "\u303A\u303B\u303C\u303D\u303E\u303F\u3040\u3041"+
+ "\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049"+
+ "\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051"+
+ "\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059"+
+ "\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061"+
+ "\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069"+
+ "\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071"+
+ "\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079"+
+ "\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081"+
+ "\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089"+
+ "\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091"+
+ "\u3092\u3093\u3094\u3095\u3096\u3097\u3098\u3099"+
+ "\u309A\u309B\u309C\u309D\u309E\u309F\u30A0\u30A1"+
+ "\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9"+
+ "\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1"+
+ "\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9"+
+ "\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1"+
+ "\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9"+
+ "\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1"+
+ "\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9"+
+ "\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1"+
+ "\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9"+
+ "\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1"+
+ "\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9"+
+ "\u30FA\u30FB\u30FC\u30FD\u30FE\u30FF\u3100\u3101"+
+ "\u3102\u3103\u3104\u3105\u3106\u3107\u3108\u3109"+
+ "\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111"+
+ "\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119"+
+ "\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121"+
+ "\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129"+
+ "\u312A\u312B\u312C\u312D\u312E\u312F\u3130\u3131"+
+ "\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139"+
+ "\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141"+
+ "\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149"+
+ "\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151"+
+ "\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159"+
+ "\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161"+
+ "\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169"+
+ "\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171"+
+ "\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179"+
+ "\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181"+
+ "\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189"+
+ "\u318A\u318B\u318C\u318D\u318E\u318F\u3190\u3191"+
+ "\u3192\u3193\u3194\u3195\u3196\u3197\u3198\u3199"+
+ "\u319A\u319B\u319C\u319D\u319E\u319F\u31A0\u31A1"+
+ "\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9"+
+ "\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1"+
+ "\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31B8\u31B9"+
+ "\u31BA\u31BB\u31BC\u31BD\u31BE\u31BF\u31C0\u31C1"+
+ "\u31C2\u31C3\u31C4\u31C5\u31C6\u31C7\u31C8\u31C9"+
+ "\u31CA\u31CB\u31CC\u31CD\u31CE\u31CF\u31D0\u31D1"+
+ "\u31D2\u31D3\u31D4\u31D5\u31D6\u31D7\u31D8\u31D9"+
+ "\u31DA\u31DB\u31DC\u31DD\u31DE\u31DF\u31E0\u31E1"+
+ "\u31E2\u31E3\u31E4\u31E5\u31E6\u31E7\u31E8\u31E9"+
+ "\u31EA\u31EB\u31EC\u31ED\u31EE\u31EF\u31F0\u31F1"+
+ "\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9"+
+ "\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3200\u3201"+
+ "\u3202\u3203\u3204\u3205\u3206\u3207\u3208\u3209"+
+ "\u320A\u320B\u320C\u320D\u320E\u320F\u3210\u3211"+
+ "\u3212\u3213\u3214\u3215\u3216\u3217\u3218\u3219"+
+ "\u321A\u321B\u321C\u321D\u321E\u321F\u3220\u3221"+
+ "\u3222\u3223\u3224\u3225\u3226\u3227\u3228\u3229"+
+ "\u322A\u322B\u322C\u322D\u322E\u322F\u3230\u3231"+
+ "\u3232\u3233\u3234\u3235\u3236\u3237\u3238\u3239"+
+ "\u323A\u323B\u323C\u323D\u323E\u323F\u3240\u3241"+
+ "\u3242\u3243\u3244\u3245\u3246\u3247\u3248\u3249"+
+ "\u324A\u324B\u324C\u324D\u324E\u324F\u3250\u3251"+
+ "\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259"+
+ "\u325A\u325B\u325C\u325D\u325E\u325F\u3260\u3261"+
+ "\u3262\u3263\u3264\u3265\u3266\u3267\u3268\u3269"+
+ "\u326A\u326B\u326C\u326D\u326E\u326F\u3270\u3271"+
+ "\u3272\u3273\u3274\u3275\u3276\u3277\u3278\u3279"+
+ "\u327A\u327B\u327C\u327D\u327E\u327F\u3280\u3281"+
+ "\u3282\u3283\u3284\u3285\u3286\u3287\u3288\u3289"+
+ "\u328A\u328B\u328C\u328D\u328E\u328F\u3290\u3291"+
+ "\u3292\u3293\u3294\u3295\u3296\u3297\u3298\u3299"+
+ "\u329A\u329B\u329C\u329D\u329E\u329F\u32A0\u32A1"+
+ "\u32A2\u32A3\u32A4\u32A5\u32A6\u32A7\u32A8\u32A9"+
+ "\u32AA\u32AB\u32AC\u32AD\u32AE\u32AF\u32B0\u32B1"+
+ "\u32B2\u32B3\u32B4\u32B5\u32B6\u32B7\u32B8\u32B9"+
+ "\u32BA\u32BB\u32BC\u32BD\u32BE\u32BF\u32C0\u32C1"+
+ "\u32C2\u32C3\u32C4\u32C5\u32C6\u32C7\u32C8\u32C9"+
+ "\u32CA\u32CB\u32CC\u32CD\u32CE\u32CF\u32D0\u32D1"+
+ "\u32D2\u32D3\u32D4\u32D5\u32D6\u32D7\u32D8\u32D9"+
+ "\u32DA\u32DB\u32DC\u32DD\u32DE\u32DF\u32E0\u32E1"+
+ "\u32E2\u32E3\u32E4\u32E5\u32E6\u32E7\u32E8\u32E9"+
+ "\u32EA\u32EB\u32EC\u32ED\u32EE\u32EF\u32F0\u32F1"+
+ "\u32F2\u32F3\u32F4\u32F5\u32F6\u32F7\u32F8\u32F9"+
+ "\u32FA\u32FB\u32FC\u32FD\u32FE\u32FF\u3300\u3301"+
+ "\u3302\u3303\u3304\u3305\u3306\u3307\u3308\u3309"+
+ "\u330A\u330B\u330C\u330D\u330E\u330F\u3310\u3311"+
+ "\u3312\u3313\u3314\u3315\u3316\u3317\u3318\u3319"+
+ "\u331A\u331B\u331C\u331D\u331E\u331F\u3320\u3321"+
+ "\u3322\u3323\u3324\u3325\u3326\u3327\u3328\u3329"+
+ "\u332A\u332B\u332C\u332D\u332E\u332F\u3330\u3331"+
+ "\u3332\u3333\u3334\u3335\u3336\u3337\u3338\u3339"+
+ "\u333A\u333B\u333C\u333D\u333E\u333F\u3340\u3341"+
+ "\u3342\u3343\u3344\u3345\u3346\u3347\u3348\u3349"+
+ "\u334A\u334B\u334C\u334D\u334E\u334F\u3350\u3351"+
+ "\u3352\u3353\u3354\u3355\u3356\u3357\u3358\u3359"+
+ "\u335A\u335B\u335C\u335D\u335E\u335F\u3360\u3361"+
+ "\u3362\u3363\u3364\u3365\u3366\u3367\u3368\u3369"+
+ "\u336A\u336B\u336C\u336D\u336E\u336F\u3370\u3371"+
+ "\u3372\u3373\u3374\u3375\u3376\u3377\u3378\u3379"+
+ "\u337A\u337B\u337C\u337D\u337E\u337F\u3380\u3381"+
+ "\u3382\u3383\u3384\u3385\u3386\u3387\u3388\u3389"+
+ "\u338A\u338B\u338C\u338D\u338E\u338F\u3390\u3391"+
+ "\u3392\u3393\u3394\u3395\u3396\u3397\u3398\u3399"+
+ "\u339A\u339B\u339C\u339D\u339E\u339F\u33A0\u33A1"+
+ "\u33A2\u33A3\u33A4\u33A5\u33A6\u33A7\u33A8\u33A9"+
+ "\u33AA\u33AB\u33AC\u33AD\u33AE\u33AF\u33B0\u33B1"+
+ "\u33B2\u33B3\u33B4\u33B5\u33B6\u33B7\u33B8\u33B9"+
+ "\u33BA\u33BB\u33BC\u33BD\u33BE\u33BF\u33C0\u33C1"+
+ "\u33C2\u33C3\u33C4\u33C5\u33C6\u33C7\u33C8\u33C9"+
+ "\u33CA\u33CB\u33CC\u33CD\u33CE\u33CF\u33D0\u33D1"+
+ "\u33D2\u33D3\u33D4\u33D5\u33D6\u33D7\u33D8\u33D9"+
+ "\u33DA\u33DB\u33DC\u33DD\u33DE\u33DF\u33E0\u33E1"+
+ "\u33E2\u33E3\u33E4\u33E5\u33E6\u33E7\u33E8\u33E9"+
+ "\u33EA\u33EB\u33EC\u33ED\u33EE\u33EF\u33F0\u33F1"+
+ "\u33F2\u33F3\u33F4\u33F5\u33F6\u33F7\u33F8\u33F9"+
+ "\u33FA\u33FB\u33FC\u33FD\u33FE\u33FF\u3400\u3401"+
+ "\u3402\u3403\u3404\u3405\u3406\u3407\u3408\u3409"+
+ "\u340A\u340B\u340C\u340D\u340E\u340F\u3410\u3411"+
+ "\u3412\u3413\u3414\u3415\u3416\u3417\u3418\u3419"+
+ "\u341A\u341B\u341C\u341D\u341E\u341F\u3420\u3421"+
+ "\u3422\u3423\u3424\u3425\u3426\u3427\u3428\u3429"+
+ "\u342A\u342B\u342C\u342D\u342E\u342F\u3430\u3431"+
+ "\u3432\u3433\u3434\u3435\u3436\u3437\u3438\u3439"+
+ "\u343A\u343B\u343C\u343D\u343E\u343F\u3440\u3441"+
+ "\u3442\u3443\u3444\u3445\u3446\u3447\u3448\u3449"+
+ "\u344A\u344B\u344C\u344D\u344E\u344F\u3450\u3451"+
+ "\u3452\u3453\u3454\u3455\u3456\u3457\u3458\u3459"+
+ "\u345A\u345B\u345C\u345D\u345E\u345F\u3460\u3461"+
+ "\u3462\u3463\u3464\u3465\u3466\u3467\u3468\u3469"+
+ "\u346A\u346B\u346C\u346D\u346E\u346F\u3470\u3471"+
+ "\u3472\u3473\u3474\u3475\u3476\u3477\u3478\u3479"+
+ "\u347A\u347B\u347C\u347D\u347E\u347F\u3480\u3481"+
+ "\u3482\u3483\u3484\u3485\u3486\u3487\u3488\u3489"+
+ "\u348A\u348B\u348C\u348D\u348E\u348F\u3490\u3491"+
+ "\u3492\u3493\u3494\u3495\u3496\u3497\u3498\u3499"+
+ "\u349A\u349B\u349C\u349D\u349E\u349F\u34A0\u34A1"+
+ "\u34A2\u34A3\u34A4\u34A5\u34A6\u34A7\u34A8\u34A9"+
+ "\u34AA\u34AB\u34AC\u34AD\u34AE\u34AF\u34B0\u34B1"+
+ "\u34B2\u34B3\u34B4\u34B5\u34B6\u34B7\u34B8\u34B9"+
+ "\u34BA\u34BB\u34BC\u34BD\u34BE\u34BF\u34C0\u34C1"+
+ "\u34C2\u34C3\u34C4\u34C5\u34C6\u34C7\u34C8\u34C9"+
+ "\u34CA\u34CB\u34CC\u34CD\u34CE\u34CF\u34D0\u34D1"+
+ "\u34D2\u34D3\u34D4\u34D5\u34D6\u34D7\u34D8\u34D9"+
+ "\u34DA\u34DB\u34DC\u34DD\u34DE\u34DF\u34E0\u34E1"+
+ "\u34E2\u34E3\u34E4\u34E5\u34E6\u34E7\u34E8\u34E9"+
+ "\u34EA\u34EB\u34EC\u34ED\u34EE\u34EF\u34F0\u34F1"+
+ "\u34F2\u34F3\u34F4\u34F5\u34F6\u34F7\u34F8\u34F9"+
+ "\u34FA\u34FB\u34FC\u34FD\u34FE\u34FF\u3500\u3501"+
+ "\u3502\u3503\u3504\u3505\u3506\u3507\u3508\u3509"+
+ "\u350A\u350B\u350C\u350D\u350E\u350F\u3510\u3511"+
+ "\u3512\u3513\u3514\u3515\u3516\u3517\u3518\u3519"+
+ "\u351A\u351B\u351C\u351D\u351E\u351F\u3520\u3521"+
+ "\u3522\u3523\u3524\u3525\u3526\u3527\u3528\u3529"+
+ "\u352A\u352B\u352C\u352D\u352E\u352F\u3530\u3531"+
+ "\u3532\u3533\u3534\u3535\u3536\u3537\u3538\u3539"+
+ "\u353A\u353B\u353C\u353D\u353E\u353F\u3540\u3541"+
+ "\u3542\u3543\u3544\u3545\u3546\u3547\u3548\u3549"+
+ "\u354A\u354B\u354C\u354D\u354E\u354F\u3550\u3551"+
+ "\u3552\u3553\u3554\u3555\u3556\u3557\u3558\u3559"+
+ "\u355A\u355B\u355C\u355D\u355E\u355F\u3560\u3561"+
+ "\u3562\u3563\u3564\u3565\u3566\u3567\u3568\u3569"+
+ "\u356A\u356B\u356C\u356D\u356E\u356F\u3570\u3571"+
+ "\u3572\u3573\u3574\u3575\u3576\u3577\u3578\u3579"+
+ "\u357A\u357B\u357C\u357D\u357E\u357F\u3580\u3581"+
+ "\u3582\u3583\u3584\u3585\u3586\u3587\u3588\u3589"+
+ "\u358A\u358B\u358C\u358D\u358E\u358F\u3590\u3591"+
+ "\u3592\u3593\u3594\u3595\u3596\u3597\u3598\u3599"+
+ "\u359A\u359B\u359C\u359D\u359E\u359F\u35A0\u35A1"+
+ "\u35A2\u35A3\u35A4\u35A5\u35A6\u35A7\u35A8\u35A9"+
+ "\u35AA\u35AB\u35AC\u35AD\u35AE\u35AF\u35B0\u35B1"+
+ "\u35B2\u35B3\u35B4\u35B5\u35B6\u35B7\u35B8\u35B9"+
+ "\u35BA\u35BB\u35BC\u35BD\u35BE\u35BF\u35C0\u35C1"+
+ "\u35C2\u35C3\u35C4\u35C5\u35C6\u35C7\u35C8\u35C9"+
+ "\u35CA\u35CB\u35CC\u35CD\u35CE\u35CF\u35D0\u35D1"+
+ "\u35D2\u35D3\u35D4\u35D5\u35D6\u35D7\u35D8\u35D9"+
+ "\u35DA\u35DB\u35DC\u35DD\u35DE\u35DF\u35E0\u35E1"+
+ "\u35E2\u35E3\u35E4\u35E5\u35E6\u35E7\u35E8\u35E9"+
+ "\u35EA\u35EB\u35EC\u35ED\u35EE\u35EF\u35F0\u35F1"+
+ "\u35F2\u35F3\u35F4\u35F5\u35F6\u35F7\u35F8\u35F9"+
+ "\u35FA\u35FB\u35FC\u35FD\u35FE\u35FF\u3600\u3601"+
+ "\u3602\u3603\u3604\u3605\u3606\u3607\u3608\u3609"+
+ "\u360A\u360B\u360C\u360D\u360E\u360F\u3610\u3611"+
+ "\u3612\u3613\u3614\u3615\u3616\u3617\u3618\u3619"+
+ "\u361A\u361B\u361C\u361D\u361E\u361F\u3620\u3621"+
+ "\u3622\u3623\u3624\u3625\u3626\u3627\u3628\u3629"+
+ "\u362A\u362B\u362C\u362D\u362E\u362F\u3630\u3631"+
+ "\u3632\u3633\u3634\u3635\u3636\u3637\u3638\u3639"+
+ "\u363A\u363B\u363C\u363D\u363E\u363F\u3640\u3641"+
+ "\u3642\u3643\u3644\u3645\u3646\u3647\u3648\u3649"+
+ "\u364A\u364B\u364C\u364D\u364E\u364F\u3650\u3651"+
+ "\u3652\u3653\u3654\u3655\u3656\u3657\u3658\u3659"+
+ "\u365A\u365B\u365C\u365D\u365E\u365F\u3660\u3661"+
+ "\u3662\u3663\u3664\u3665\u3666\u3667\u3668\u3669"+
+ "\u366A\u366B\u366C\u366D\u366E\u366F\u3670\u3671"+
+ "\u3672\u3673\u3674\u3675\u3676\u3677\u3678\u3679"+
+ "\u367A\u367B\u367C\u367D\u367E\u367F\u3680\u3681"+
+ "\u3682\u3683\u3684\u3685\u3686\u3687\u3688\u3689"+
+ "\u368A\u368B\u368C\u368D\u368E\u368F\u3690\u3691"+
+ "\u3692\u3693\u3694\u3695\u3696\u3697\u3698\u3699"+
+ "\u369A\u369B\u369C\u369D\u369E\u369F\u36A0\u36A1"+
+ "\u36A2\u36A3\u36A4\u36A5\u36A6\u36A7\u36A8\u36A9"+
+ "\u36AA\u36AB\u36AC\u36AD\u36AE\u36AF\u36B0\u36B1"+
+ "\u36B2\u36B3\u36B4\u36B5\u36B6\u36B7\u36B8\u36B9"+
+ "\u36BA\u36BB\u36BC\u36BD\u36BE\u36BF\u36C0\u36C1"+
+ "\u36C2\u36C3\u36C4\u36C5\u36C6\u36C7\u36C8\u36C9"+
+ "\u36CA\u36CB\u36CC\u36CD\u36CE\u36CF\u36D0\u36D1"+
+ "\u36D2\u36D3\u36D4\u36D5\u36D6\u36D7\u36D8\u36D9"+
+ "\u36DA\u36DB\u36DC\u36DD\u36DE\u36DF\u36E0\u36E1"+
+ "\u36E2\u36E3\u36E4\u36E5\u36E6\u36E7\u36E8\u36E9"+
+ "\u36EA\u36EB\u36EC\u36ED\u36EE\u36EF\u36F0\u36F1"+
+ "\u36F2\u36F3\u36F4\u36F5\u36F6\u36F7\u36F8\u36F9"+
+ "\u36FA\u36FB\u36FC\u36FD\u36FE\u36FF\u3700\u3701"+
+ "\u3702\u3703\u3704\u3705\u3706\u3707\u3708\u3709"+
+ "\u370A\u370B\u370C\u370D\u370E\u370F\u3710\u3711"+
+ "\u3712\u3713\u3714\u3715\u3716\u3717\u3718\u3719"+
+ "\u371A\u371B\u371C\u371D\u371E\u371F\u3720\u3721"+
+ "\u3722\u3723\u3724\u3725\u3726\u3727\u3728\u3729"+
+ "\u372A\u372B\u372C\u372D\u372E\u372F\u3730\u3731"+
+ "\u3732\u3733\u3734\u3735\u3736\u3737\u3738\u3739"+
+ "\u373A\u373B\u373C\u373D\u373E\u373F\u3740\u3741"+
+ "\u3742\u3743\u3744\u3745\u3746\u3747\u3748\u3749"+
+ "\u374A\u374B\u374C\u374D\u374E\u374F\u3750\u3751"+
+ "\u3752\u3753\u3754\u3755\u3756\u3757\u3758\u3759"+
+ "\u375A\u375B\u375C\u375D\u375E\u375F\u3760\u3761"+
+ "\u3762\u3763\u3764\u3765\u3766\u3767\u3768\u3769"+
+ "\u376A\u376B\u376C\u376D\u376E\u376F\u3770\u3771"+
+ "\u3772\u3773\u3774\u3775\u3776\u3777\u3778\u3779"+
+ "\u377A\u377B\u377C\u377D\u377E\u377F\u3780\u3781"+
+ "\u3782\u3783\u3784\u3785\u3786\u3787\u3788\u3789"+
+ "\u378A\u378B\u378C\u378D\u378E\u378F\u3790\u3791"+
+ "\u3792\u3793\u3794\u3795\u3796\u3797\u3798\u3799"+
+ "\u379A\u379B\u379C\u379D\u379E\u379F\u37A0\u37A1"+
+ "\u37A2\u37A3\u37A4\u37A5\u37A6\u37A7\u37A8\u37A9"+
+ "\u37AA\u37AB\u37AC\u37AD\u37AE\u37AF\u37B0\u37B1"+
+ "\u37B2\u37B3\u37B4\u37B5\u37B6\u37B7\u37B8\u37B9"+
+ "\u37BA\u37BB\u37BC\u37BD\u37BE\u37BF\u37C0\u37C1"+
+ "\u37C2\u37C3\u37C4\u37C5\u37C6\u37C7\u37C8\u37C9"+
+ "\u37CA\u37CB\u37CC\u37CD\u37CE\u37CF\u37D0\u37D1"+
+ "\u37D2\u37D3\u37D4\u37D5\u37D6\u37D7\u37D8\u37D9"+
+ "\u37DA\u37DB\u37DC\u37DD\u37DE\u37DF\u37E0\u37E1"+
+ "\u37E2\u37E3\u37E4\u37E5\u37E6\u37E7\u37E8\u37E9"+
+ "\u37EA\u37EB\u37EC\u37ED\u37EE\u37EF\u37F0\u37F1"+
+ "\u37F2\u37F3\u37F4\u37F5\u37F6\u37F7\u37F8\u37F9"+
+ "\u37FA\u37FB\u37FC\u37FD\u37FE\u37FF\u3800\u3801"+
+ "\u3802\u3803\u3804\u3805\u3806\u3807\u3808\u3809"+
+ "\u380A\u380B\u380C\u380D\u380E\u380F\u3810\u3811"+
+ "\u3812\u3813\u3814\u3815\u3816\u3817\u3818\u3819"+
+ "\u381A\u381B\u381C\u381D\u381E\u381F\u3820\u3821"+
+ "\u3822\u3823\u3824\u3825\u3826\u3827\u3828\u3829"+
+ "\u382A\u382B\u382C\u382D\u382E\u382F\u3830\u3831"+
+ "\u3832\u3833\u3834\u3835\u3836\u3837\u3838\u3839"+
+ "\u383A\u383B\u383C\u383D\u383E\u383F\u3840\u3841"+
+ "\u3842\u3843\u3844\u3845\u3846\u3847\u3848\u3849"+
+ "\u384A\u384B\u384C\u384D\u384E\u384F\u3850\u3851"+
+ "\u3852\u3853\u3854\u3855\u3856\u3857\u3858\u3859"+
+ "\u385A\u385B\u385C\u385D\u385E\u385F\u3860\u3861"+
+ "\u3862\u3863\u3864\u3865\u3866\u3867\u3868\u3869"+
+ "\u386A\u386B\u386C\u386D\u386E\u386F\u3870\u3871"+
+ "\u3872\u3873\u3874\u3875\u3876\u3877\u3878\u3879"+
+ "\u387A\u387B\u387C\u387D\u387E\u387F\u3880\u3881"+
+ "\u3882\u3883\u3884\u3885\u3886\u3887\u3888\u3889"+
+ "\u388A\u388B\u388C\u388D\u388E\u388F\u3890\u3891"+
+ "\u3892\u3893\u3894\u3895\u3896\u3897\u3898\u3899"+
+ "\u389A\u389B\u389C\u389D\u389E\u389F\u38A0\u38A1"+
+ "\u38A2\u38A3\u38A4\u38A5\u38A6\u38A7\u38A8\u38A9"+
+ "\u38AA\u38AB\u38AC\u38AD\u38AE\u38AF\u38B0\u38B1"+
+ "\u38B2\u38B3\u38B4\u38B5\u38B6\u38B7\u38B8\u38B9"+
+ "\u38BA\u38BB\u38BC\u38BD\u38BE\u38BF\u38C0\u38C1"+
+ "\u38C2\u38C3\u38C4\u38C5\u38C6\u38C7\u38C8\u38C9"+
+ "\u38CA\u38CB\u38CC\u38CD\u38CE\u38CF\u38D0\u38D1"+
+ "\u38D2\u38D3\u38D4\u38D5\u38D6\u38D7\u38D8\u38D9"+
+ "\u38DA\u38DB\u38DC\u38DD\u38DE\u38DF\u38E0\u38E1"+
+ "\u38E2\u38E3\u38E4\u38E5\u38E6\u38E7\u38E8\u38E9"+
+ "\u38EA\u38EB\u38EC\u38ED\u38EE\u38EF\u38F0\u38F1"+
+ "\u38F2\u38F3\u38F4\u38F5\u38F6\u38F7\u38F8\u38F9"+
+ "\u38FA\u38FB\u38FC\u38FD\u38FE\u38FF\u3900\u3901"+
+ "\u3902\u3903\u3904\u3905\u3906\u3907\u3908\u3909"+
+ "\u390A\u390B\u390C\u390D\u390E\u390F\u3910\u3911"+
+ "\u3912\u3913\u3914\u3915\u3916\u3917\u3918\u3919"+
+ "\u391A\u391B\u391C\u391D\u391E\u391F\u3920\u3921"+
+ "\u3922\u3923\u3924\u3925\u3926\u3927\u3928\u3929"+
+ "\u392A\u392B\u392C\u392D\u392E\u392F\u3930\u3931"+
+ "\u3932\u3933\u3934\u3935\u3936\u3937\u3938\u3939"+
+ "\u393A\u393B\u393C\u393D\u393E\u393F\u3940\u3941"+
+ "\u3942\u3943\u3944\u3945\u3946\u3947\u3948\u3949"+
+ "\u394A\u394B\u394C\u394D\u394E\u394F\u3950\u3951"+
+ "\u3952\u3953\u3954\u3955\u3956\u3957\u3958\u3959"+
+ "\u395A\u395B\u395C\u395D\u395E\u395F\u3960\u3961"+
+ "\u3962\u3963\u3964\u3965\u3966\u3967\u3968\u3969"+
+ "\u396A\u396B\u396C\u396D\u396E\u396F\u3970\u3971"+
+ "\u3972\u3973\u3974\u3975\u3976\u3977\u3978\u3979"+
+ "\u397A\u397B\u397C\u397D\u397E\u397F\u3980\u3981"+
+ "\u3982\u3983\u3984\u3985\u3986\u3987\u3988\u3989"+
+ "\u398A\u398B\u398C\u398D\u398E\u398F\u3990\u3991"+
+ "\u3992\u3993\u3994\u3995\u3996\u3997\u3998\u3999"+
+ "\u399A\u399B\u399C\u399D\u399E\u399F\u39A0\u39A1"+
+ "\u39A2\u39A3\u39A4\u39A5\u39A6\u39A7\u39A8\u39A9"+
+ "\u39AA\u39AB\u39AC\u39AD\u39AE\u39AF\u39B0\u39B1"+
+ "\u39B2\u39B3\u39B4\u39B5\u39B6\u39B7\u39B8\u39B9"+
+ "\u39BA\u39BB\u39BC\u39BD\u39BE\u39BF\u39C0\u39C1"+
+ "\u39C2\u39C3\u39C4\u39C5\u39C6\u39C7\u39C8\u39C9"+
+ "\u39CA\u39CB\u39CC\u39CD\u39CE\u39CF\u39D0\u39D1"+
+ "\u39D2\u39D3\u39D4\u39D5\u39D6\u39D7\u39D8\u39D9"+
+ "\u39DA\u39DB\u39DC\u39DD\u39DE\u39DF\u39E0\u39E1"+
+ "\u39E2\u39E3\u39E4\u39E5\u39E6\u39E7\u39E8\u39E9"+
+ "\u39EA\u39EB\u39EC\u39ED\u39EE\u39EF\u39F0\u39F1"+
+ "\u39F2\u39F3\u39F4\u39F5\u39F6\u39F7\u39F8\u39F9"+
+ "\u39FA\u39FB\u39FC\u39FD\u39FE\u39FF\u3A00\u3A01"+
+ "\u3A02\u3A03\u3A04\u3A05\u3A06\u3A07\u3A08\u3A09"+
+ "\u3A0A\u3A0B\u3A0C\u3A0D\u3A0E\u3A0F\u3A10\u3A11"+
+ "\u3A12\u3A13\u3A14\u3A15\u3A16\u3A17\u3A18\u3A19"+
+ "\u3A1A\u3A1B\u3A1C\u3A1D\u3A1E\u3A1F\u3A20\u3A21"+
+ "\u3A22\u3A23\u3A24\u3A25\u3A26\u3A27\u3A28\u3A29"+
+ "\u3A2A\u3A2B\u3A2C\u3A2D\u3A2E\u3A2F\u3A30\u3A31"+
+ "\u3A32\u3A33\u3A34\u3A35\u3A36\u3A37\u3A38\u3A39"+
+ "\u3A3A\u3A3B\u3A3C\u3A3D\u3A3E\u3A3F\u3A40\u3A41"+
+ "\u3A42\u3A43\u3A44\u3A45\u3A46\u3A47\u3A48\u3A49"+
+ "\u3A4A\u3A4B\u3A4C\u3A4D\u3A4E\u3A4F\u3A50\u3A51"+
+ "\u3A52\u3A53\u3A54\u3A55\u3A56\u3A57\u3A58\u3A59"+
+ "\u3A5A\u3A5B\u3A5C\u3A5D\u3A5E\u3A5F\u3A60\u3A61"+
+ "\u3A62\u3A63\u3A64\u3A65\u3A66\u3A67\u3A68\u3A69"+
+ "\u3A6A\u3A6B\u3A6C\u3A6D\u3A6E\u3A6F\u3A70\u3A71"+
+ "\u3A72\u3A73\u3A74\u3A75\u3A76\u3A77\u3A78\u3A79"+
+ "\u3A7A\u3A7B\u3A7C\u3A7D\u3A7E\u3A7F\u3A80\u3A81"+
+ "\u3A82\u3A83\u3A84\u3A85\u3A86\u3A87\u3A88\u3A89"+
+ "\u3A8A\u3A8B\u3A8C\u3A8D\u3A8E\u3A8F\u3A90\u3A91"+
+ "\u3A92\u3A93\u3A94\u3A95\u3A96\u3A97\u3A98\u3A99"+
+ "\u3A9A\u3A9B\u3A9C\u3A9D\u3A9E\u3A9F\u3AA0\u3AA1"+
+ "\u3AA2\u3AA3\u3AA4\u3AA5\u3AA6\u3AA7\u3AA8\u3AA9"+
+ "\u3AAA\u3AAB\u3AAC\u3AAD\u3AAE\u3AAF\u3AB0\u3AB1"+
+ "\u3AB2\u3AB3\u3AB4\u3AB5\u3AB6\u3AB7\u3AB8\u3AB9"+
+ "\u3ABA\u3ABB\u3ABC\u3ABD\u3ABE\u3ABF\u3AC0\u3AC1"+
+ "\u3AC2\u3AC3\u3AC4\u3AC5\u3AC6\u3AC7\u3AC8\u3AC9"+
+ "\u3ACA\u3ACB\u3ACC\u3ACD\u3ACE\u3ACF\u3AD0\u3AD1"+
+ "\u3AD2\u3AD3\u3AD4\u3AD5\u3AD6\u3AD7\u3AD8\u3AD9"+
+ "\u3ADA\u3ADB\u3ADC\u3ADD\u3ADE\u3ADF\u3AE0\u3AE1"+
+ "\u3AE2\u3AE3\u3AE4\u3AE5\u3AE6\u3AE7\u3AE8\u3AE9"+
+ "\u3AEA\u3AEB\u3AEC\u3AED\u3AEE\u3AEF\u3AF0\u3AF1"+
+ "\u3AF2\u3AF3\u3AF4\u3AF5\u3AF6\u3AF7\u3AF8\u3AF9"+
+ "\u3AFA\u3AFB\u3AFC\u3AFD\u3AFE\u3AFF\u3B00\u3B01"+
+ "\u3B02\u3B03\u3B04\u3B05\u3B06\u3B07\u3B08\u3B09"+
+ "\u3B0A\u3B0B\u3B0C\u3B0D\u3B0E\u3B0F\u3B10\u3B11"+
+ "\u3B12\u3B13\u3B14\u3B15\u3B16\u3B17\u3B18\u3B19"+
+ "\u3B1A\u3B1B\u3B1C\u3B1D\u3B1E\u3B1F\u3B20\u3B21"+
+ "\u3B22\u3B23\u3B24\u3B25\u3B26\u3B27\u3B28\u3B29"+
+ "\u3B2A\u3B2B\u3B2C\u3B2D\u3B2E\u3B2F\u3B30\u3B31"+
+ "\u3B32\u3B33\u3B34\u3B35\u3B36\u3B37\u3B38\u3B39"+
+ "\u3B3A\u3B3B\u3B3C\u3B3D\u3B3E\u3B3F\u3B40\u3B41"+
+ "\u3B42\u3B43\u3B44\u3B45\u3B46\u3B47\u3B48\u3B49"+
+ "\u3B4A\u3B4B\u3B4C\u3B4D\u3B4E\u3B4F\u3B50\u3B51"+
+ "\u3B52\u3B53\u3B54\u3B55\u3B56\u3B57\u3B58\u3B59"+
+ "\u3B5A\u3B5B\u3B5C\u3B5D\u3B5E\u3B5F\u3B60\u3B61"+
+ "\u3B62\u3B63\u3B64\u3B65\u3B66\u3B67\u3B68\u3B69"+
+ "\u3B6A\u3B6B\u3B6C\u3B6D\u3B6E\u3B6F\u3B70\u3B71"+
+ "\u3B72\u3B73\u3B74\u3B75\u3B76\u3B77\u3B78\u3B79"+
+ "\u3B7A\u3B7B\u3B7C\u3B7D\u3B7E\u3B7F\u3B80\u3B81"+
+ "\u3B82\u3B83\u3B84\u3B85\u3B86\u3B87\u3B88\u3B89"+
+ "\u3B8A\u3B8B\u3B8C\u3B8D\u3B8E\u3B8F\u3B90\u3B91"+
+ "\u3B92\u3B93\u3B94\u3B95\u3B96\u3B97\u3B98\u3B99"+
+ "\u3B9A\u3B9B\u3B9C\u3B9D\u3B9E\u3B9F\u3BA0\u3BA1"+
+ "\u3BA2\u3BA3\u3BA4\u3BA5\u3BA6\u3BA7\u3BA8\u3BA9"+
+ "\u3BAA\u3BAB\u3BAC\u3BAD\u3BAE\u3BAF\u3BB0\u3BB1"+
+ "\u3BB2\u3BB3\u3BB4\u3BB5\u3BB6\u3BB7\u3BB8\u3BB9"+
+ "\u3BBA\u3BBB\u3BBC\u3BBD\u3BBE\u3BBF\u3BC0\u3BC1"+
+ "\u3BC2\u3BC3\u3BC4\u3BC5\u3BC6\u3BC7\u3BC8\u3BC9"+
+ "\u3BCA\u3BCB\u3BCC\u3BCD\u3BCE\u3BCF\u3BD0\u3BD1"+
+ "\u3BD2\u3BD3\u3BD4\u3BD5\u3BD6\u3BD7\u3BD8\u3BD9"+
+ "\u3BDA\u3BDB\u3BDC\u3BDD\u3BDE\u3BDF\u3BE0\u3BE1"+
+ "\u3BE2\u3BE3\u3BE4\u3BE5\u3BE6\u3BE7\u3BE8\u3BE9"+
+ "\u3BEA\u3BEB\u3BEC\u3BED\u3BEE\u3BEF\u3BF0\u3BF1"+
+ "\u3BF2\u3BF3\u3BF4\u3BF5\u3BF6\u3BF7\u3BF8\u3BF9"+
+ "\u3BFA\u3BFB\u3BFC\u3BFD\u3BFE\u3BFF\u3C00\u3C01"+
+ "\u3C02\u3C03\u3C04\u3C05\u3C06\u3C07\u3C08\u3C09"+
+ "\u3C0A\u3C0B\u3C0C\u3C0D\u3C0E\u3C0F\u3C10\u3C11"+
+ "\u3C12\u3C13\u3C14\u3C15\u3C16\u3C17\u3C18\u3C19"+
+ "\u3C1A\u3C1B\u3C1C\u3C1D\u3C1E\u3C1F\u3C20\u3C21"+
+ "\u3C22\u3C23\u3C24\u3C25\u3C26\u3C27\u3C28\u3C29"+
+ "\u3C2A\u3C2B\u3C2C\u3C2D\u3C2E\u3C2F\u3C30\u3C31"+
+ "\u3C32\u3C33\u3C34\u3C35\u3C36\u3C37\u3C38\u3C39"+
+ "\u3C3A\u3C3B\u3C3C\u3C3D\u3C3E\u3C3F\u3C40\u3C41"+
+ "\u3C42\u3C43\u3C44\u3C45\u3C46\u3C47\u3C48\u3C49"+
+ "\u3C4A\u3C4B\u3C4C\u3C4D\u3C4E\u3C4F\u3C50\u3C51"+
+ "\u3C52\u3C53\u3C54\u3C55\u3C56\u3C57\u3C58\u3C59"+
+ "\u3C5A\u3C5B\u3C5C\u3C5D\u3C5E\u3C5F\u3C60\u3C61"+
+ "\u3C62\u3C63\u3C64\u3C65\u3C66\u3C67\u3C68\u3C69"+
+ "\u3C6A\u3C6B\u3C6C\u3C6D\u3C6E\u3C6F\u3C70\u3C71"+
+ "\u3C72\u3C73\u3C74\u3C75\u3C76\u3C77\u3C78\u3C79"+
+ "\u3C7A\u3C7B\u3C7C\u3C7D\u3C7E\u3C7F\u3C80\u3C81"+
+ "\u3C82\u3C83\u3C84\u3C85\u3C86\u3C87\u3C88\u3C89"+
+ "\u3C8A\u3C8B\u3C8C\u3C8D\u3C8E\u3C8F\u3C90\u3C91"+
+ "\u3C92\u3C93\u3C94\u3C95\u3C96\u3C97\u3C98\u3C99"+
+ "\u3C9A\u3C9B\u3C9C\u3C9D\u3C9E\u3C9F\u3CA0\u3CA1"+
+ "\u3CA2\u3CA3\u3CA4\u3CA5\u3CA6\u3CA7\u3CA8\u3CA9"+
+ "\u3CAA\u3CAB\u3CAC\u3CAD\u3CAE\u3CAF\u3CB0\u3CB1"+
+ "\u3CB2\u3CB3\u3CB4\u3CB5\u3CB6\u3CB7\u3CB8\u3CB9"+
+ "\u3CBA\u3CBB\u3CBC\u3CBD\u3CBE\u3CBF\u3CC0\u3CC1"+
+ "\u3CC2\u3CC3\u3CC4\u3CC5\u3CC6\u3CC7\u3CC8\u3CC9"+
+ "\u3CCA\u3CCB\u3CCC\u3CCD\u3CCE\u3CCF\u3CD0\u3CD1"+
+ "\u3CD2\u3CD3\u3CD4\u3CD5\u3CD6\u3CD7\u3CD8\u3CD9"+
+ "\u3CDA\u3CDB\u3CDC\u3CDD\u3CDE\u3CDF\u3CE0\u3CE1"+
+ "\u3CE2\u3CE3\u3CE4\u3CE5\u3CE6\u3CE7\u3CE8\u3CE9"+
+ "\u3CEA\u3CEB\u3CEC\u3CED\u3CEE\u3CEF\u3CF0\u3CF1"+
+ "\u3CF2\u3CF3\u3CF4\u3CF5\u3CF6\u3CF7\u3CF8\u3CF9"+
+ "\u3CFA\u3CFB\u3CFC\u3CFD\u3CFE\u3CFF\u3D00\u3D01"+
+ "\u3D02\u3D03\u3D04\u3D05\u3D06\u3D07\u3D08\u3D09"+
+ "\u3D0A\u3D0B\u3D0C\u3D0D\u3D0E\u3D0F\u3D10\u3D11"+
+ "\u3D12\u3D13\u3D14\u3D15\u3D16\u3D17\u3D18\u3D19"+
+ "\u3D1A\u3D1B\u3D1C\u3D1D\u3D1E\u3D1F\u3D20\u3D21"+
+ "\u3D22\u3D23\u3D24\u3D25\u3D26\u3D27\u3D28\u3D29"+
+ "\u3D2A\u3D2B\u3D2C\u3D2D\u3D2E\u3D2F\u3D30\u3D31"+
+ "\u3D32\u3D33\u3D34\u3D35\u3D36\u3D37\u3D38\u3D39"+
+ "\u3D3A\u3D3B\u3D3C\u3D3D\u3D3E\u3D3F\u3D40\u3D41"+
+ "\u3D42\u3D43\u3D44\u3D45\u3D46\u3D47\u3D48\u3D49"+
+ "\u3D4A\u3D4B\u3D4C\u3D4D\u3D4E\u3D4F\u3D50\u3D51"+
+ "\u3D52\u3D53\u3D54\u3D55\u3D56\u3D57\u3D58\u3D59"+
+ "\u3D5A\u3D5B\u3D5C\u3D5D\u3D5E\u3D5F\u3D60\u3D61"+
+ "\u3D62\u3D63\u3D64\u3D65\u3D66\u3D67\u3D68\u3D69"+
+ "\u3D6A\u3D6B\u3D6C\u3D6D\u3D6E\u3D6F\u3D70\u3D71"+
+ "\u3D72\u3D73\u3D74\u3D75\u3D76\u3D77\u3D78\u3D79"+
+ "\u3D7A\u3D7B\u3D7C\u3D7D\u3D7E\u3D7F\u3D80\u3D81"+
+ "\u3D82\u3D83\u3D84\u3D85\u3D86\u3D87\u3D88\u3D89"+
+ "\u3D8A\u3D8B\u3D8C\u3D8D\u3D8E\u3D8F\u3D90\u3D91"+
+ "\u3D92\u3D93\u3D94\u3D95\u3D96\u3D97\u3D98\u3D99"+
+ "\u3D9A\u3D9B\u3D9C\u3D9D\u3D9E\u3D9F\u3DA0\u3DA1"+
+ "\u3DA2\u3DA3\u3DA4\u3DA5\u3DA6\u3DA7\u3DA8\u3DA9"+
+ "\u3DAA\u3DAB\u3DAC\u3DAD\u3DAE\u3DAF\u3DB0\u3DB1"+
+ "\u3DB2\u3DB3\u3DB4\u3DB5\u3DB6\u3DB7\u3DB8\u3DB9"+
+ "\u3DBA\u3DBB\u3DBC\u3DBD\u3DBE\u3DBF\u3DC0\u3DC1"+
+ "\u3DC2\u3DC3\u3DC4\u3DC5\u3DC6\u3DC7\u3DC8\u3DC9"+
+ "\u3DCA\u3DCB\u3DCC\u3DCD\u3DCE\u3DCF\u3DD0\u3DD1"+
+ "\u3DD2\u3DD3\u3DD4\u3DD5\u3DD6\u3DD7\u3DD8\u3DD9"+
+ "\u3DDA\u3DDB\u3DDC\u3DDD\u3DDE\u3DDF\u3DE0\u3DE1"+
+ "\u3DE2\u3DE3\u3DE4\u3DE5\u3DE6\u3DE7\u3DE8\u3DE9"+
+ "\u3DEA\u3DEB\u3DEC\u3DED\u3DEE\u3DEF\u3DF0\u3DF1"+
+ "\u3DF2\u3DF3\u3DF4\u3DF5\u3DF6\u3DF7\u3DF8\u3DF9"+
+ "\u3DFA\u3DFB\u3DFC\u3DFD\u3DFE\u3DFF\u3E00\u3E01"+
+ "\u3E02\u3E03\u3E04\u3E05\u3E06\u3E07\u3E08\u3E09"+
+ "\u3E0A\u3E0B\u3E0C\u3E0D\u3E0E\u3E0F\u3E10\u3E11"+
+ "\u3E12\u3E13\u3E14\u3E15\u3E16\u3E17\u3E18\u3E19"+
+ "\u3E1A\u3E1B\u3E1C\u3E1D\u3E1E\u3E1F\u3E20\u3E21"+
+ "\u3E22\u3E23\u3E24\u3E25\u3E26\u3E27\u3E28\u3E29"+
+ "\u3E2A\u3E2B\u3E2C\u3E2D\u3E2E\u3E2F\u3E30\u3E31"+
+ "\u3E32\u3E33\u3E34\u3E35\u3E36\u3E37\u3E38\u3E39"+
+ "\u3E3A\u3E3B\u3E3C\u3E3D\u3E3E\u3E3F\u3E40\u3E41"+
+ "\u3E42\u3E43\u3E44\u3E45\u3E46\u3E47\u3E48\u3E49"+
+ "\u3E4A\u3E4B\u3E4C\u3E4D\u3E4E\u3E4F\u3E50\u3E51"+
+ "\u3E52\u3E53\u3E54\u3E55\u3E56\u3E57\u3E58\u3E59"+
+ "\u3E5A\u3E5B\u3E5C\u3E5D\u3E5E\u3E5F\u3E60\u3E61"+
+ "\u3E62\u3E63\u3E64\u3E65\u3E66\u3E67\u3E68\u3E69"+
+ "\u3E6A\u3E6B\u3E6C\u3E6D\u3E6E\u3E6F\u3E70\u3E71"+
+ "\u3E72\u3E73\u3E74\u3E75\u3E76\u3E77\u3E78\u3E79"+
+ "\u3E7A\u3E7B\u3E7C\u3E7D\u3E7E\u3E7F\u3E80\u3E81"+
+ "\u3E82\u3E83\u3E84\u3E85\u3E86\u3E87\u3E88\u3E89"+
+ "\u3E8A\u3E8B\u3E8C\u3E8D\u3E8E\u3E8F\u3E90\u3E91"+
+ "\u3E92\u3E93\u3E94\u3E95\u3E96\u3E97\u3E98\u3E99"+
+ "\u3E9A\u3E9B\u3E9C\u3E9D\u3E9E\u3E9F\u3EA0\u3EA1"+
+ "\u3EA2\u3EA3\u3EA4\u3EA5\u3EA6\u3EA7\u3EA8\u3EA9"+
+ "\u3EAA\u3EAB\u3EAC\u3EAD\u3EAE\u3EAF\u3EB0\u3EB1"+
+ "\u3EB2\u3EB3\u3EB4\u3EB5\u3EB6\u3EB7\u3EB8\u3EB9"+
+ "\u3EBA\u3EBB\u3EBC\u3EBD\u3EBE\u3EBF\u3EC0\u3EC1"+
+ "\u3EC2\u3EC3\u3EC4\u3EC5\u3EC6\u3EC7\u3EC8\u3EC9"+
+ "\u3ECA\u3ECB\u3ECC\u3ECD\u3ECE\u3ECF\u3ED0\u3ED1"+
+ "\u3ED2\u3ED3\u3ED4\u3ED5\u3ED6\u3ED7\u3ED8\u3ED9"+
+ "\u3EDA\u3EDB\u3EDC\u3EDD\u3EDE\u3EDF\u3EE0\u3EE1";
+
+ private final static String innerEncoderIndex2=
+ "\u3EE2\u3EE3\u3EE4\u3EE5\u3EE6\u3EE7\u3EE8\u3EE9"+
+ "\u3EEA\u3EEB\u3EEC\u3EED\u3EEE\u3EEF\u3EF0\u3EF1"+
+ "\uA95C\u3EF2\u3EF3\uA843\uA1AA\uA844\uA1AC\u3EF4"+
+ "\uA1AE\uA1AF\u3EF5\u3EF6\uA1B0\uA1B1\u3EF7\u3EF8"+
+ "\u3EF9\u3EFA\u3EFB\u3EFC\u3EFD\uA845\uA1AD\u3EFE"+
+ "\u3EFF\u3F00\u3F01\u3F02\u3F03\u3F04\u3F05\u3F06"+
+ "\uA1EB\u3F07\uA1E4\uA1E5\u3F08\uA846\u3F09\u3F0A"+
+ "\u3F0B\u3F0C\u3F0D\uA1F9\u3F0E\u3F0F\u3F10\u3F11"+
+ "\u3F12\u3F13\u3F14\u3F15\u3F16\u3F17\u3F18\u3F19"+
+ "\u3F1A\u3F1B\u3F1C\u3F1D\u3F1E\u3F1F\u3F20\u3F21"+
+ "\u3F22\u3F23\u3F24\u3F25\u3F26\u3F27\u3F28\u3F29"+
+ "\u3F2A\u3F2B\u3F2C\u3F2D\u3F2E\u3F2F\u3F30\u3F31"+
+ "\u3F32\u3F33\u3F34\u3F35\u3F36\u3F37\u3F38\u3F39"+
+ "\u3F3A\u3F3B\u3F3C\u3F3D\u3F3E\u3F3F\u3F40\u3F41"+
+ "\u3F42\u3F43\u3F44\u3F45\u3F46\u3F47\u3F48\u3F49"+
+ "\u3F4A\u3F4B\u3F4C\u3F4D\u3F4E\u3F4F\u3F50\u3F51"+
+ "\u3F52\u3F53\u3F54\u3F55\u3F56\u3F57\u3F58\u3F59"+
+ "\u3F5A\u3F5B\u3F5C\u3F5D\u3F5E\u3F5F\u3F60\u3F61"+
+ "\u3F62\u3F63\u3F64\u3F65\u3F66\u3F67\u3F68\u3F69"+
+ "\u3F6A\u3F6B\u3F6C\u3F6D\u3F6E\u3F6F\u3F70\u3F71"+
+ "\u3F72\u3F73\u3F74\u3F75\u3F76\u3F77\u3F78\u3F79"+
+ "\u3F7A\u3F7B\u3F7C\u3F7D\uA2E3\u3F7E\u3F7F\u3F80"+
+ "\u3F81\u3F82\u3F83\u3F84\u3F85\u3F86\u3F87\u3F88"+
+ "\u3F89\u3F8A\u3F8B\u3F8C\u3F8D\u3F8E\u3F8F\u3F90"+
+ "\u3F91\u3F92\u3F93\u3F94\u3F95\u3F96\u3F97\u3F98"+
+ "\u3F99\u3F9A\u3F9B\u3F9C\u3F9D\u3F9E\u3F9F\u3FA0"+
+ "\u3FA1\u3FA2\u3FA3\u3FA4\u3FA5\u3FA6\u3FA7\u3FA8"+
+ "\u3FA9\u3FAA\u3FAB\u3FAC\u3FAD\u3FAE\u3FAF\u3FB0"+
+ "\u3FB1\u3FB2\u3FB3\u3FB4\u3FB5\u3FB6\u3FB7\u3FB8"+
+ "\u3FB9\u3FBA\u3FBB\u3FBC\u3FBD\u3FBE\u3FBF\u3FC0"+
+ "\u3FC1\u3FC2\u3FC3\u3FC4\u3FC5\u3FC6\u3FC7\u3FC8"+
+ "\u3FC9\u3FCA\u3FCB\u3FCC\u3FCD\u3FCE\u3FCF\u3FD0"+
+ "\u3FD1\u3FD2\u3FD3\uA1E6\u3FD4\uA847\u3FD5\u3FD6"+
+ "\u3FD7\uA848\u3FD8\u3FD9\u3FDA\u3FDB\u3FDC\u3FDD"+
+ "\u3FDE\u3FDF\u3FE0\u3FE1\u3FE2\u3FE3\uA1ED\u3FE4"+
+ "\u3FE5\u3FE6\u3FE7\u3FE8\u3FE9\u3FEA\u3FEB\u3FEC"+
+ "\u3FED\uA959\u3FEE\u3FEF\u3FF0\u3FF1\u3FF2\u3FF3"+
+ "\u3FF4\u3FF5\u3FF6\u3FF7\u3FF8\u3FF9\u3FFA\u3FFB"+
+ "\u3FFC\u3FFD\u3FFE\u3FFF\u4000\u4001\u4002\u4003"+
+ "\u4004\u4005\u4006\u4007\u4008\u4009\u400A\u400B"+
+ "\u400C\u400D\u400E\u400F\u4010\u4011\u4012\u4013"+
+ "\u4014\u4015\u4016\u4017\u4018\u4019\u401A\u401B"+
+ "\u401C\u401D\u401E\u401F\u4020\u4021\u4022\u4023"+
+ "\u4024\u4025\u4026\u4027\u4028\u4029\u402A\u402B"+
+ "\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7\uA2F8"+
+ "\uA2F9\uA2FA\uA2FB\uA2FC\u402C\u402D\u402E\u402F"+
+ "\uA2A1\uA2A2\uA2A3\uA2A4\uA2A5\uA2A6\uA2A7\uA2A8"+
+ "\uA2A9\uA2AA\u4030\u4031\u4032\u4033\u4034\u4035"+
+ "\u4036\u4037\u4038\u4039\u403A\u403B\u403C\u403D"+
+ "\u403E\u403F\u4040\u4041\u4042\u4043\u4044\u4045"+
+ "\uA1FB\uA1FC\uA1FA\uA1FD\u4046\u4047\uA849\uA84A"+
+ "\uA84B\uA84C\u4048\u4049\u404A\u404B\u404C\u404D"+
+ "\u404E\u404F\u4050\u4051\u4052\u4053\u4054\u4055"+
+ "\u4056\u4057\u4058\u4059\u405A\u405B\u405C\u405D"+
+ "\u405E\u405F\u4060\u4061\u4062\u4063\u4064\u4065"+
+ "\u4066\u4067\u4068\u4069\u406A\u406B\u406C\u406D"+
+ "\u406E\u406F\u4070\u4071\u4072\u4073\u4074\u4075"+
+ "\u4076\u4077\u4078\u4079\u407A\u407B\u407C\u407D"+
+ "\u407E\u407F\u4080\u4081\u4082\u4083\u4084\u4085"+
+ "\u4086\u4087\u4088\u4089\u408A\u408B\u408C\u408D"+
+ "\u408E\u408F\u4090\u4091\u4092\u4093\u4094\u4095"+
+ "\u4096\u4097\u4098\u4099\u409A\u409B\u409C\u409D"+
+ "\u409E\u409F\u40A0\u40A1\u40A2\u40A3\u40A4\u40A5"+
+ "\u40A6\u40A7\u40A8\u40A9\u40AA\u40AB\u40AC\u40AD"+
+ "\u40AE\u40AF\u40B0\u40B1\u40B2\u40B3\u40B4\u40B5"+
+ "\uA1CA\u40B6\u40B7\u40B8\u40B9\u40BA\u40BB\uA1C7"+
+ "\u40BC\uA1C6\u40BD\u40BE\u40BF\uA84D\u40C0\u40C1"+
+ "\u40C2\u40C3\uA1CC\u40C4\u40C5\uA1D8\uA1DE\uA84E"+
+ "\uA1CF\u40C6\u40C7\uA84F\u40C8\uA1CE\u40C9\uA1C4"+
+ "\uA1C5\uA1C9\uA1C8\uA1D2\u40CA\u40CB\uA1D3\u40CC"+
+ "\u40CD\u40CE\u40CF\u40D0\uA1E0\uA1DF\uA1C3\uA1CB"+
+ "\u40D1\u40D2\u40D3\u40D4\u40D5\uA1D7\u40D6\u40D7"+
+ "\u40D8\u40D9\u40DA\u40DB\u40DC\u40DD\u40DE\u40DF"+
+ "\uA1D6\u40E0\u40E1\u40E2\uA1D5\u40E3\u40E4\u40E5"+
+ "\u40E6\u40E7\uA850\u40E8\u40E9\u40EA\u40EB\u40EC"+
+ "\u40ED\u40EE\u40EF\u40F0\u40F1\u40F2\u40F3\u40F4"+
+ "\uA1D9\uA1D4\u40F5\u40F6\uA1DC\uA1DD\uA851\uA852"+
+ "\u40F7\u40F8\u40F9\u40FA\u40FB\u40FC\uA1DA\uA1DB"+
+ "\u40FD\u40FE\u40FF\u4100\u4101\u4102\u4103\u4104"+
+ "\u4105\u4106\u4107\u4108\u4109\u410A\u410B\u410C"+
+ "\u410D\u410E\u410F\u4110\u4111\u4112\u4113\u4114"+
+ "\u4115\u4116\u4117\u4118\u4119\u411A\u411B\u411C"+
+ "\u411D\u411E\u411F\u4120\u4121\uA892\u4122\u4123"+
+ "\u4124\uA1D1\u4125\u4126\u4127\u4128\u4129\u412A"+
+ "\u412B\u412C\u412D\u412E\u412F\uA1CD\u4130\u4131"+
+ "\u4132\u4133\u4134\u4135\u4136\u4137\u4138\u4139"+
+ "\u413A\u413B\u413C\u413D\u413E\u413F\u4140\u4141"+
+ "\u4142\u4143\u4144\u4145\u4146\u4147\u4148\uA853"+
+ "\u4149\u414A\u414B\u414C\u414D\u414E\u414F\u4150"+
+ "\u4151\u4152\u4153\u4154\u4155\u4156\u4157\u4158"+
+ "\u4159\u415A\u415B\u415C\u415D\u415E\u415F\u4160"+
+ "\u4161\u4162\u4163\u4164\u4165\u4166\u4167\u4168"+
+ "\u4169\u416A\u416B\u416C\u416D\u416E\u416F\u4170"+
+ "\u4171\u4172\u4173\u4174\u4175\u4176\u4177\u4178"+
+ "\u4179\u417A\u417B\u417C\u417D\u417E\u417F\u4180"+
+ "\u4181\u4182\u4183\u4184\u4185\u4186\u4187\u4188"+
+ "\u4189\u418A\u418B\u418C\u418D\u418E\u418F\u4190"+
+ "\u4191\u4192\u4193\u4194\u4195\u4196\u4197\u4198"+
+ "\u4199\u419A\uA1D0\u419B\u419C\u419D\u419E\u419F"+
+ "\u41A0\u41A1\u41A2\u41A3\u41A4\u41A5\u41A6\u41A7"+
+ "\u41A8\u41A9\u41AA\u41AB\u41AC\u41AD\u41AE\u41AF"+
+ "\u41B0\u41B1\u41B2\u41B3\u41B4\u41B5\u41B6\u41B7"+
+ "\u41B8\u41B9\u41BA\u41BB\u41BC\u41BD\u41BE\u41BF"+
+ "\u41C0\u41C1\u41C2\u41C3\u41C4\u41C5\u41C6\u41C7"+
+ "\u41C8\u41C9\u41CA\u41CB\u41CC\u41CD\u41CE\u41CF"+
+ "\u41D0\u41D1\u41D2\u41D3\u41D4\u41D5\u41D6\u41D7"+
+ "\u41D8\u41D9\u41DA\u41DB\u41DC\u41DD\u41DE\u41DF"+
+ "\u41E0\u41E1\u41E2\u41E3\u41E4\u41E5\u41E6\u41E7"+
+ "\u41E8\u41E9\u41EA\u41EB\u41EC\u41ED\u41EE\u41EF"+
+ "\u41F0\u41F1\u41F2\u41F3\u41F4\u41F5\u41F6\u41F7"+
+ "\u41F8\u41F9\u41FA\u41FB\u41FC\u41FD\u41FE\u41FF"+
+ "\u4200\u4201\u4202\u4203\u4204\u4205\u4206\u4207"+
+ "\u4208\u4209\u420A\u420B\u420C\u420D\u420E\u420F"+
+ "\u4210\u4211\u4212\u4213\u4214\u4215\u4216\u4217"+
+ "\u4218\u4219\u421A\u421B\u421C\u421D\u421E\u421F"+
+ "\u4220\u4221\u4222\u4223\u4224\u4225\u4226\u4227"+
+ "\u4228\u4229\u422A\u422B\u422C\u422D\u422E\u422F"+
+ "\u4230\u4231\u4232\u4233\u4234\u4235\u4236\u4237"+
+ "\u4238\u4239\u423A\u423B\u423C\u423D\u423E\u423F"+
+ "\u4240\u4241\u4242\u4243\u4244\u4245\u4246\u4247"+
+ "\u4248\u4249\u424A\u424B\u424C\u424D\u424E\u424F"+
+ "\u4250\u4251\u4252\u4253\u4254\u4255\u4256\u4257"+
+ "\u4258\u4259\u425A\u425B\u425C\u425D\u425E\u425F"+
+ "\u4260\u4261\u4262\u4263\u4264\u4265\u4266\u4267"+
+ "\u4268\u4269\u426A\u426B\u426C\u426D\u426E\u426F"+
+ "\u4270\u4271\u4272\u4273\u4274\u4275\u4276\u4277"+
+ "\u4278\u4279\u427A\u427B\u427C\u427D\u427E\u427F"+
+ "\u4280\u4281\u4282\u4283\u4284\u4285\u4286\u4287"+
+ "\u4288\u4289\u428A\u428B\u428C\u428D\u428E\u428F"+
+ "\u4290\u4291\u4292\u4293\u4294\u4295\u4296\u4297"+
+ "\u4298\u4299\u429A\u429B\u429C\u429D\u429E\u429F"+
+ "\u42A0\u42A1\u42A2\u42A3\u42A4\u42A5\u42A6\u42A7"+
+ "\u42A8\u42A9\u42AA\u42AB\u42AC\u42AD\u42AE\u42AF"+
+ "\u42B0\u42B1\u42B2\u42B3\u42B4\u42B5\u42B6\u42B7"+
+ "\u42B8\u42B9\u42BA\u42BB\u42BC\u42BD\u42BE\u42BF"+
+ "\u42C0\u42C1\u42C2\u42C3\u42C4\u42C5\u42C6\u42C7"+
+ "\u42C8\u42C9\u42CA\u42CB\u42CC\u42CD\u42CE\u42CF"+
+ "\u42D0\u42D1\u42D2\u42D3\u42D4\u42D5\u42D6\u42D7"+
+ "\u42D8\u42D9\u42DA\u42DB\u42DC\u42DD\u42DE\u42DF"+
+ "\u42E0\u42E1\u42E2\u42E3\u42E4\u42E5\u42E6\u42E7"+
+ "\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD\uA2DE\uA2DF\uA2E0"+
+ "\uA2E1\uA2E2\u42E8\u42E9\u42EA\u42EB\u42EC\u42ED"+
+ "\u42EE\u42EF\u42F0\u42F1\uA2C5\uA2C6\uA2C7\uA2C8"+
+ "\uA2C9\uA2CA\uA2CB\uA2CC\uA2CD\uA2CE\uA2CF\uA2D0"+
+ "\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5\uA2D6\uA2D7\uA2D8"+
+ "\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6\uA2B7\uA2B8"+
+ "\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0"+
+ "\uA2C1\uA2C2\uA2C3\uA2C4\u42F2\u42F3\u42F4\u42F5"+
+ "\u42F6\u42F7\u42F8\u42F9\u42FA\u42FB\u42FC\u42FD"+
+ "\u42FE\u42FF\u4300\u4301\u4302\u4303\u4304\u4305"+
+ "\u4306\u4307\u4308\u4309\u430A\u430B\u430C\u430D"+
+ "\u430E\u430F\u4310\u4311\u4312\u4313\u4314\u4315"+
+ "\u4316\u4317\u4318\u4319\u431A\u431B\u431C\u431D"+
+ "\u431E\u431F\u4320\u4321\u4322\u4323\u4324\u4325"+
+ "\u4326\u4327\u4328\u4329\u432A\u432B\u432C\u432D"+
+ "\u432E\u432F\u4330\u4331\u4332\u4333\u4334\u4335"+
+ "\u4336\u4337\u4338\u4339\u433A\u433B\u433C\u433D"+
+ "\u433E\u433F\u4340\u4341\u4342\u4343\u4344\u4345"+
+ "\u4346\u4347\u4348\u4349\u434A\u434B\u434C\u434D"+
+ "\u434E\u434F\u4350\u4351\u4352\u4353\u4354\u4355"+
+ "\uA9A4\uA9A5\uA9A6\uA9A7\uA9A8\uA9A9\uA9AA\uA9AB"+
+ "\uA9AC\uA9AD\uA9AE\uA9AF\uA9B0\uA9B1\uA9B2\uA9B3"+
+ "\uA9B4\uA9B5\uA9B6\uA9B7\uA9B8\uA9B9\uA9BA\uA9BB"+
+ "\uA9BC\uA9BD\uA9BE\uA9BF\uA9C0\uA9C1\uA9C2\uA9C3"+
+ "\uA9C4\uA9C5\uA9C6\uA9C7\uA9C8\uA9C9\uA9CA\uA9CB"+
+ "\uA9CC\uA9CD\uA9CE\uA9CF\uA9D0\uA9D1\uA9D2\uA9D3"+
+ "\uA9D4\uA9D5\uA9D6\uA9D7\uA9D8\uA9D9\uA9DA\uA9DB"+
+ "\uA9DC\uA9DD\uA9DE\uA9DF\uA9E0\uA9E1\uA9E2\uA9E3"+
+ "\uA9E4\uA9E5\uA9E6\uA9E7\uA9E8\uA9E9\uA9EA\uA9EB"+
+ "\uA9EC\uA9ED\uA9EE\uA9EF\u4356\u4357\u4358\u4359"+
+ "\uA854\uA855\uA856\uA857\uA858\uA859\uA85A\uA85B"+
+ "\uA85C\uA85D\uA85E\uA85F\uA860\uA861\uA862\uA863"+
+ "\uA864\uA865\uA866\uA867\uA868\uA869\uA86A\uA86B"+
+ "\uA86C\uA86D\uA86E\uA86F\uA870\uA871\uA872\uA873"+
+ "\uA874\uA875\uA876\uA877\u435A\u435B\u435C\u435D"+
+ "\u435E\u435F\u4360\u4361\u4362\u4363\u4364\u4365"+
+ "\u4366\uA878\uA879\uA87A\uA87B\uA87C\uA87D\uA87E"+
+ "\uA880\uA881\uA882\uA883\uA884\uA885\uA886\uA887"+
+ "\u4367\u4368\u4369\uA888\uA889\uA88A\u436A\u436B"+
+ "\u436C\u436D\u436E\u436F\u4370\u4371\u4372\u4373"+
+ "\uA1F6\uA1F5\u4374\u4375\u4376\u4377\u4378\u4379"+
+ "\u437A\u437B\u437C\u437D\u437E\u437F\u4380\u4381"+
+ "\u4382\u4383\uA1F8\uA1F7\u4384\u4385\u4386\u4387"+
+ "\u4388\u4389\u438A\u438B\uA88B\uA88C\u438C\u438D"+
+ "\u438E\u438F\u4390\u4391\u4392\u4393\uA1F4\uA1F3"+
+ "\u4394\u4395\u4396\uA1F0\u4397\u4398\uA1F2\uA1F1"+
+ "\u4399\u439A\u439B\u439C\u439D\u439E\u439F\u43A0"+
+ "\u43A1\u43A2\u43A3\u43A4\u43A5\u43A6\u43A7\u43A8"+
+ "\u43A9\u43AA\uA88D\uA88E\uA88F\uA890\u43AB\u43AC"+
+ "\u43AD\u43AE\u43AF\u43B0\u43B1\u43B2\u43B3\u43B4"+
+ "\u43B5\u43B6\u43B7\u43B8\u43B9\u43BA\u43BB\u43BC"+
+ "\u43BD\u43BE\u43BF\u43C0\u43C1\u43C2\u43C3\u43C4"+
+ "\u43C5\u43C6\u43C7\u43C8\u43C9\uA1EF\uA1EE\u43CA"+
+ "\u43CB\uA891\u43CC\u43CD\u43CE\u43CF\u43D0\u43D1"+
+ "\u43D2\u43D3\u43D4\u43D5\u43D6\u43D7\u43D8\u43D9"+
+ "\u43DA\u43DB\u43DC\u43DD\u43DE\u43DF\u43E0\u43E1"+
+ "\u43E2\u43E3\u43E4\u43E5\u43E6\u43E7\u43E8\u43E9"+
+ "\u43EA\u43EB\u43EC\u43ED\u43EE\u43EF\u43F0\u43F1"+
+ "\u43F2\u43F3\u43F4\u43F5\u43F6\u43F7\u43F8\u43F9"+
+ "\u43FA\u43FB\u43FC\u43FD\u43FE\u43FF\u4400\u4401"+
+ "\uA1E2\u4402\uA1E1\u4403\u4404\u4405\u4406\u4407"+
+ "\u4408\u4409\u440A\u440B\u440C\u440D\u440E\u440F"+
+ "\u4410\u4411\u4412\u4413\u4414\u4415\u4416\u4417"+
+ "\u4418\u4419\u441A\u441B\u441C\u441D\u441E\u441F"+
+ "\u4420\u4421\u4422\u4423\u4424\u4425\u4426\u4427"+
+ "\u4428\u4429\u442A\u442B\u442C\u442D\u442E\u442F"+
+ "\u4430\u4431\u4432\u4433\u4434\u4435\u4436\u4437"+
+ "\u4438\u4439\u443A\u443B\u443C\u443D\u443E\u443F"+
+ "\u4440\u4441\u4442\u4443\u4444\u4445\u4446\u4447"+
+ "\u4448\u4449\u444A\u444B\u444C\u444D\u444E\u444F"+
+ "\u4450\u4451\u4452\u4453\u4454\u4455\u4456\u4457"+
+ "\u4458\u4459\u445A\u445B\u445C\u445D\u445E\u445F"+
+ "\u4460\u4461\u4462\u4463\u4464\u4465\u4466\u4467"+
+ "\u4468\u4469\u446A\u446B\u446C\u446D\u446E\u446F"+
+ "\u4470\u4471\u4472\u4473\u4474\u4475\u4476\u4477"+
+ "\u4478\u4479\u447A\u447B\u447C\u447D\u447E\u447F"+
+ "\u4480\u4481\u4482\u4483\u4484\u4485\u4486\u4487"+
+ "\u4488\u4489\u448A\u448B\u448C\u448D\u448E\u448F"+
+ "\u4490\u4491\u4492\u4493\u4494\u4495\u4496\u4497"+
+ "\u4498\u4499\u449A\u449B\u449C\u449D\u449E\u449F"+
+ "\u44A0\u44A1\u44A2\u44A3\u44A4\u44A5\u44A6\u44A7"+
+ "\u44A8\u44A9\u44AA\u44AB\u44AC\u44AD\u44AE\u44AF"+
+ "\u44B0\u44B1\u44B2\u44B3\u44B4\u44B5\u44B6\u44B7"+
+ "\u44B8\u44B9\u44BA\u44BB\u44BC\u44BD\u44BE\u44BF"+
+ "\u44C0\u44C1\u44C2\u44C3\u44C4\u44C5\u44C6\u44C7"+
+ "\u44C8\u44C9\u44CA\u44CB\u44CC\u44CD\u44CE\u44CF"+
+ "\u44D0\u44D1\u44D2\u44D3\u44D4\u44D5\u44D6\u44D7"+
+ "\u44D8\u44D9\u44DA\u44DB\u44DC\u44DD\u44DE\u44DF"+
+ "\u44E0\u44E1\u44E2\u44E3\u44E4\u44E5\u44E6\u44E7"+
+ "\u44E8\u44E9\u44EA\u44EB\u44EC\u44ED\u44EE\u44EF"+
+ "\u44F0\u44F1\u44F2\u44F3\u44F4\u44F5\u44F6\u44F7"+
+ "\u44F8\u44F9\u44FA\u44FB\u44FC\u44FD\u44FE\u44FF"+
+ "\u4500\u4501\u4502\u4503\u4504\u4505\u4506\u4507"+
+ "\u4508\u4509\u450A\u450B\u450C\u450D\u450E\u450F"+
+ "\u4510\u4511\u4512\u4513\u4514\u4515\u4516\u4517"+
+ "\u4518\u4519\u451A\u451B\u451C\u451D\u451E\u451F"+
+ "\u4520\u4521\u4522\u4523\u4524\u4525\u4526\u4527"+
+ "\u4528\u4529\u452A\u452B\u452C\u452D\u452E\u452F"+
+ "\u4530\u4531\u4532\u4533\u4534\u4535\u4536\u4537"+
+ "\u4538\u4539\u453A\u453B\u453C\u453D\u453E\u453F"+
+ "\u4540\u4541\u4542\u4543\u4544\u4545\u4546\u4547"+
+ "\u4548\u4549\u454A\u454B\u454C\u454D\u454E\u454F"+
+ "\u4550\u4551\u4552\u4553\u4554\u4555\u4556\u4557"+
+ "\u4558\u4559\u455A\u455B\u455C\u455D\u455E\u455F"+
+ "\u4560\u4561\u4562\u4563\u4564\u4565\u4566\u4567"+
+ "\u4568\u4569\u456A\u456B\u456C\u456D\u456E\u456F"+
+ "\u4570\u4571\u4572\u4573\u4574\u4575\u4576\u4577"+
+ "\u4578\u4579\u457A\u457B\u457C\u457D\u457E\u457F"+
+ "\u4580\u4581\u4582\u4583\u4584\u4585\u4586\u4587"+
+ "\u4588\u4589\u458A\u458B\u458C\u458D\u458E\u458F"+
+ "\u4590\u4591\u4592\u4593\u4594\u4595\u4596\u4597"+
+ "\u4598\u4599\u459A\u459B\u459C\u459D\u459E\u459F"+
+ "\u45A0\u45A1\u45A2\u45A3\u45A4\u45A5\u45A6\u45A7"+
+ "\u45A8\u45A9\u45AA\u45AB\u45AC\u45AD\u45AE\u45AF"+
+ "\u45B0\u45B1\u45B2\u45B3\u45B4\u45B5\u45B6\u45B7"+
+ "\u45B8\u45B9\u45BA\u45BB\u45BC\u45BD\u45BE\u45BF"+
+ "\u45C0\u45C1\u45C2\u45C3\u45C4\u45C5\u45C6\u45C7"+
+ "\u45C8\u45C9\u45CA\u45CB\u45CC\u45CD\u45CE\u45CF"+
+ "\u45D0\u45D1\u45D2\u45D3\u45D4\u45D5\u45D6\u45D7"+
+ "\u45D8\u45D9\u45DA\u45DB\u45DC\u45DD\u45DE\u45DF"+
+ "\u45E0\u45E1\u45E2\u45E3\u45E4\u45E5\u45E6\u45E7"+
+ "\u45E8\u45E9\u45EA\u45EB\u45EC\u45ED\u45EE\u45EF"+
+ "\u45F0\u45F1\u45F2\u45F3\u45F4\u45F5\u45F6\u45F7"+
+ "\u45F8\u45F9\u45FA\u45FB\u45FC\u45FD\u45FE\u45FF"+
+ "\u4600\u4601\u4602\u4603\u4604\u4605\u4606\u4607"+
+ "\u4608\u4609\u460A\u460B\u460C\u460D\u460E\u460F"+
+ "\u4610\u4611\u4612\u4613\u4614\u4615\u4616\u4617"+
+ "\u4618\u4619\u461A\u461B\u461C\u461D\u461E\u461F"+
+ "\u4620\u4621\u4622\u4623\u4624\u4625\u4626\u4627"+
+ "\u4628\u4629\u462A\u462B\u462C\u462D\u462E\u462F"+
+ "\u4630\u4631\u4632\u4633\u4634\u4635\u4636\u4637"+
+ "\u4638\u4639\u463A\u463B\u463C\u463D\u463E\u463F"+
+ "\u4640\u4641\u4642\u4643\u4644\u4645\u4646\u4647"+
+ "\u4648\u4649\u464A\u464B\u464C\u464D\u464E\u464F"+
+ "\u4650\u4651\u4652\u4653\u4654\u4655\u4656\u4657"+
+ "\u4658\u4659\u465A\u465B\u465C\u465D\u465E\u465F"+
+ "\u4660\u4661\u4662\u4663\u4664\u4665\u4666\u4667"+
+ "\u4668\u4669\u466A\u466B\u466C\u466D\u466E\u466F"+
+ "\u4670\u4671\u4672\u4673\u4674\u4675\u4676\u4677"+
+ "\u4678\u4679\u467A\u467B\u467C\u467D\u467E\u467F"+
+ "\u4680\u4681\u4682\u4683\u4684\u4685\u4686\u4687"+
+ "\u4688\u4689\u468A\u468B\u468C\u468D\u468E\u468F"+
+ "\u4690\u4691\u4692\u4693\u4694\u4695\u4696\u4697"+
+ "\u4698\u4699\u469A\u469B\u469C\u469D\u469E\u469F"+
+ "\u46A0\u46A1\u46A2\u46A3\u46A4\u46A5\u46A6\u46A7"+
+ "\u46A8\u46A9\u46AA\u46AB\u46AC\u46AD\u46AE\u46AF"+
+ "\u46B0\u46B1\u46B2\u46B3\u46B4\u46B5\u46B6\u46B7"+
+ "\u46B8\u46B9\u46BA\u46BB\u46BC\u46BD\u46BE\u46BF"+
+ "\u46C0\u46C1\u46C2\u46C3\u46C4\u46C5\u46C6\u46C7"+
+ "\u46C8\u46C9\u46CA\u46CB\u46CC\u46CD\u46CE\u46CF"+
+ "\u46D0\u46D1\u46D2\u46D3\u46D4\u46D5\u46D6\u46D7"+
+ "\u46D8\u46D9\u46DA\u46DB\u46DC\u46DD\u46DE\u46DF"+
+ "\u46E0\u46E1\u46E2\u46E3\u46E4\u46E5\u46E6\u46E7"+
+ "\u46E8\u46E9\u46EA\u46EB\u46EC\u46ED\u46EE\u46EF"+
+ "\u46F0\u46F1\u46F2\u46F3\u46F4\u46F5\u46F6\u46F7"+
+ "\u46F8\u46F9\u46FA\u46FB\u46FC\u46FD\u46FE\u46FF"+
+ "\u4700\u4701\u4702\u4703\u4704\u4705\u4706\u4707"+
+ "\u4708\u4709\u470A\u470B\u470C\u470D\u470E\u470F"+
+ "\u4710\u4711\u4712\u4713\u4714\u4715\u4716\u4717"+
+ "\u4718\u4719\u471A\u471B\u471C\u471D\u471E\u471F"+
+ "\u4720\u4721\u4722\u4723\u4724\u4725\u4726\u4727"+
+ "\u4728\u4729\u472A\u472B\u472C\u472D\u472E\u472F"+
+ "\u4730\u4731\u4732\u4733\u4734\u4735\u4736\u4737"+
+ "\u4738\u4739\u473A\u473B\u473C\u473D\u473E\u473F"+
+ "\u4740\u4741\u4742\u4743\u4744\u4745\u4746\u4747"+
+ "\u4748\u4749\u474A\u474B\u474C\u474D\u474E\u474F"+
+ "\u4750\u4751\u4752\u4753\u4754\u4755\u4756\u4757"+
+ "\u4758\u4759\u475A\u475B\u475C\u475D\u475E\u475F"+
+ "\u4760\u4761\u4762\u4763\u4764\u4765\u4766\u4767"+
+ "\u4768\u4769\u476A\u476B\u476C\u476D\u476E\u476F"+
+ "\u4770\u4771\u4772\u4773\u4774\u4775\u4776\u4777"+
+ "\u4778\u4779\u477A\u477B\u477C\u477D\u477E\u477F"+
+ "\u4780\u4781\u4782\u4783\u4784\u4785\u4786\u4787"+
+ "\u4788\u4789\u478A\u478B\u478C\u478D\u478E\u478F"+
+ "\u4790\u4791\u4792\u4793\u4794\u4795\u4796\u4797"+
+ "\u4798\u4799\u479A\u479B\u479C\u479D\u479E\u479F"+
+ "\u47A0\u47A1\u47A2\u47A3\u47A4\u47A5\u47A6\u47A7"+
+ "\u47A8\u47A9\u47AA\u47AB\u47AC\u47AD\u47AE\u47AF"+
+ "\u47B0\u47B1\u47B2\u47B3\u47B4\u47B5\u47B6\u47B7"+
+ "\u47B8\u47B9\u47BA\u47BB\u47BC\u47BD\u47BE\u47BF"+
+ "\u47C0\u47C1\u47C2\u47C3\u47C4\u47C5\u47C6\u47C7"+
+ "\u47C8\u47C9\u47CA\u47CB\u47CC\u47CD\u47CE\u47CF"+
+ "\u47D0\u47D1\u47D2\u47D3\u47D4\u47D5\u47D6\u47D7"+
+ "\u47D8\u47D9\u47DA\u47DB\u47DC\u47DD\u47DE\u47DF"+
+ "\u47E0\u47E1\u47E2\u47E3\u47E4\u47E5\u47E6\u47E7"+
+ "\u47E8\u47E9\u47EA\u47EB\u47EC\u47ED\u47EE\u47EF"+
+ "\u47F0\u47F1\u47F2\u47F3\u47F4\u47F5\u47F6\u47F7"+
+ "\u47F8\u47F9\u47FA\u47FB\u47FC\u47FD\u47FE\u47FF"+
+ "\u4800\u4801\u4802\u4803\u4804\u4805\u4806\u4807"+
+ "\u4808\u4809\u480A\u480B\u480C\u480D\u480E\u480F"+
+ "\u4810\u4811\u4812\u4813\u4814\u4815\u4816\u4817"+
+ "\u4818\u4819\u481A\u481B\u481C\u481D\u481E\u481F"+
+ "\u4820\u4821\u4822\u4823\u4824\u4825\u4826\u4827"+
+ "\u4828\u4829\u482A\u482B\u482C\u482D\u482E\u482F"+
+ "\u4830\u4831\u4832\u4833\u4834\u4835\u4836\u4837"+
+ "\u4838\u4839\u483A\u483B\u483C\u483D\u483E\u483F"+
+ "\u4840\u4841\u4842\u4843\u4844\u4845\u4846\u4847"+
+ "\u4848\u4849\u484A\u484B\u484C\u484D\u484E\u484F"+
+ "\u4850\u4851\u4852\u4853\u4854\u4855\u4856\u4857"+
+ "\u4858\u4859\u485A\u485B\u485C\u485D\u485E\u485F"+
+ "\u4860\u4861\u4862\u4863\u4864\u4865\u4866\u4867"+
+ "\u4868\u4869\u486A\u486B\u486C\u486D\u486E\u486F"+
+ "\u4870\u4871\u4872\u4873\u4874\u4875\u4876\u4877"+
+ "\u4878\u4879\u487A\u487B\u487C\u487D\u487E\u487F"+
+ "\u4880\u4881\u4882\u4883\u4884\u4885\u4886\u4887"+
+ "\u4888\u4889\u488A\u488B\u488C\u488D\u488E\u488F"+
+ "\u4890\u4891\u4892\u4893\u4894\u4895\u4896\u4897"+
+ "\u4898\u4899\u489A\u489B\u489C\u489D\u489E\u489F"+
+ "\u48A0\u48A1\u48A2\u48A3\u48A4\u48A5\u48A6\u48A7"+
+ "\u48A8\u48A9\u48AA\u48AB\u48AC\u48AD\u48AE\u48AF"+
+ "\u48B0\u48B1\u48B2\u48B3\u48B4\u48B5\u48B6\u48B7"+
+ "\u48B8\u48B9\u48BA\u48BB\u48BC\u48BD\u48BE\u48BF"+
+ "\u48C0\u48C1\u48C2\u48C3\u48C4\u48C5\u48C6\u48C7"+
+ "\u48C8\u48C9\u48CA\u48CB\u48CC\u48CD\u48CE\u48CF"+
+ "\u48D0\u48D1\u48D2\u48D3\u48D4\u48D5\u48D6\u48D7"+
+ "\u48D8\u48D9\u48DA\u48DB\u48DC\u48DD\u48DE\u48DF"+
+ "\u48E0\u48E1\u48E2\u48E3\u48E4\u48E5\u48E6\u48E7"+
+ "\u48E8\u48E9\u48EA\u48EB\u48EC\u48ED\u48EE\u48EF"+
+ "\u48F0\u48F1\u48F2\u48F3\u48F4\u48F5\u48F6\u48F7"+
+ "\u48F8\u48F9\u48FA\u48FB\u48FC\u48FD\u48FE\u48FF"+
+ "\u4900\u4901\u4902\u4903\u4904\u4905\u4906\u4907"+
+ "\u4908\u4909\u490A\u490B\u490C\u490D\u490E\u490F"+
+ "\u4910\u4911\u4912\u4913\u4914\u4915\u4916\u4917"+
+ "\u4918\u4919\u491A\u491B\u491C\u491D\u491E\u491F"+
+ "\u4920\u4921\u4922\u4923\u4924\u4925\u4926\u4927"+
+ "\u4928\u4929\u492A\u492B\u492C\u492D\u492E\u492F"+
+ "\u4930\u4931\u4932\u4933\u4934\u4935\u4936\u4937"+
+ "\u4938\u4939\u493A\u493B\u493C\u493D\u493E\u493F"+
+ "\u4940\u4941\u4942\u4943\u4944\u4945\u4946\u4947"+
+ "\u4948\u4949\u494A\u494B\u494C\u494D\u494E\u494F"+
+ "\u4950\u4951\u4952\u4953\u4954\u4955\u4956\u4957"+
+ "\u4958\u4959\u495A\u495B\u495C\u495D\u495E\u495F"+
+ "\u4960\u4961\u4962\u4963\u4964\u4965\u4966\u4967"+
+ "\u4968\u4969\u496A\u496B\u496C\u496D\u496E\u496F"+
+ "\u4970\u4971\u4972\u4973\u4974\u4975\u4976\u4977"+
+ "\u4978\u4979\u497A\u497B\u497C\u497D\u497E\u497F"+
+ "\u4980\u4981\u4982\u4983\u4984\u4985\u4986\u4987"+
+ "\u4988\u4989\u498A\u498B\u498C\u498D\u498E\u498F"+
+ "\u4990\u4991\u4992\u4993\u4994\u4995\u4996\u4997"+
+ "\u4998\u4999\u499A\u499B\u499C\u499D\u499E\u499F"+
+ "\u49A0\u49A1\u49A2\u49A3\u49A4\u49A5\u49A6\u49A7"+
+ "\u49A8\u49A9\u49AA\u49AB\u49AC\u49AD\u49AE\u49AF"+
+ "\u49B0\u49B1\u49B2\u49B3\u49B4\u49B5\u49B6\u49B7"+
+ "\u49B8\u49B9\u49BA\u49BB\u49BC\u49BD\u49BE\u49BF"+
+ "\u49C0\u49C1\u49C2\u49C3\u49C4\u49C5\u49C6\u49C7"+
+ "\u49C8\u49C9\u49CA\u49CB\u49CC\u49CD\u49CE\u49CF"+
+ "\u49D0\u49D1\u49D2\u49D3\u49D4\u49D5\u49D6\u49D7"+
+ "\u49D8\u49D9\u49DA\u49DB\u49DC\u49DD\u49DE\u49DF"+
+ "\u49E0\u49E1\u49E2\u49E3\u49E4\u49E5\u49E6\u49E7"+
+ "\u49E8\u49E9\u49EA\u49EB\u49EC\u49ED\u49EE\u49EF"+
+ "\u49F0\u49F1\u49F2\u49F3\u49F4\u49F5\u49F6\u49F7"+
+ "\u49F8\u49F9\u49FA\u49FB\u49FC\u49FD\u49FE\u49FF"+
+ "\u4A00\u4A01\u4A02\u4A03\u4A04\u4A05\u4A06\u4A07"+
+ "\u4A08\u4A09\u4A0A\u4A0B\u4A0C\u4A0D\u4A0E\u4A0F"+
+ "\u4A10\u4A11\u4A12\u4A13\u4A14\u4A15\u4A16\u4A17"+
+ "\u4A18\u4A19\u4A1A\u4A1B\u4A1C\u4A1D\u4A1E\u4A1F"+
+ "\u4A20\u4A21\u4A22\u4A23\u4A24\u4A25\u4A26\u4A27"+
+ "\u4A28\u4A29\u4A2A\u4A2B\u4A2C\u4A2D\u4A2E\u4A2F"+
+ "\u4A30\u4A31\u4A32\u4A33\u4A34\u4A35\u4A36\u4A37"+
+ "\u4A38\u4A39\u4A3A\u4A3B\u4A3C\u4A3D\u4A3E\u4A3F"+
+ "\u4A40\u4A41\u4A42\u4A43\u4A44\u4A45\u4A46\u4A47"+
+ "\u4A48\u4A49\u4A4A\u4A4B\u4A4C\u4A4D\u4A4E\u4A4F"+
+ "\u4A50\u4A51\u4A52\u4A53\u4A54\u4A55\u4A56\u4A57"+
+ "\u4A58\u4A59\u4A5A\u4A5B\u4A5C\u4A5D\u4A5E\u4A5F"+
+ "\u4A60\u4A61\u4A62\u4A63\u4A64\u4A65\u4A66\u4A67"+
+ "\u4A68\u4A69\u4A6A\u4A6B\u4A6C\u4A6D\u4A6E\u4A6F"+
+ "\u4A70\u4A71\u4A72\u4A73\u4A74\u4A75\u4A76\u4A77"+
+ "\u4A78\u4A79\u4A7A\u4A7B\u4A7C\u4A7D\u4A7E\u4A7F"+
+ "\u4A80\u4A81\u4A82\u4A83\u4A84\u4A85\u4A86\u4A87"+
+ "\u4A88\u4A89\u4A8A\u4A8B\u4A8C\u4A8D\u4A8E\u4A8F"+
+ "\u4A90\u4A91\u4A92\u4A93\u4A94\u4A95\u4A96\u4A97"+
+ "\u4A98\u4A99\u4A9A\u4A9B\u4A9C\u4A9D\u4A9E\u4A9F"+
+ "\u4AA0\u4AA1\u4AA2\u4AA3\u4AA4\u4AA5\u4AA6\u4AA7"+
+ "\u4AA8\u4AA9\u4AAA\u4AAB\u4AAC\u4AAD\u4AAE\u4AAF"+
+ "\u4AB0\u4AB1\u4AB2\u4AB3\u4AB4\u4AB5\u4AB6\u4AB7"+
+ "\u4AB8\u4AB9\u4ABA\u4ABB\u4ABC\u4ABD\u4ABE\u4ABF"+
+ "\u4AC0\u4AC1\u4AC2\u4AC3\u4AC4\u4AC5\u4AC6\u4AC7"+
+ "\u4AC8\u4AC9\u4ACA\u4ACB\u4ACC\u4ACD\u4ACE\u4ACF"+
+ "\u4AD0\u4AD1\u4AD2\u4AD3\u4AD4\u4AD5\u4AD6\u4AD7"+
+ "\u4AD8\u4AD9\u4ADA\u4ADB\u4ADC\u4ADD\u4ADE\u4ADF"+
+ "\u4AE0\u4AE1\u4AE2\u4AE3\u4AE4\u4AE5\u4AE6\u4AE7"+
+ "\u4AE8\u4AE9\u4AEA\u4AEB\u4AEC\u4AED\u4AEE\u4AEF"+
+ "\u4AF0\u4AF1\u4AF2\u4AF3\u4AF4\u4AF5\u4AF6\u4AF7"+
+ "\u4AF8\u4AF9\u4AFA\u4AFB\u4AFC\u4AFD\u4AFE\u4AFF"+
+ "\u4B00\u4B01\u4B02\u4B03\u4B04\u4B05\u4B06\u4B07"+
+ "\u4B08\u4B09\u4B0A\u4B0B\u4B0C\u4B0D\u4B0E\u4B0F"+
+ "\u4B10\u4B11\u4B12\u4B13\u4B14\u4B15\u4B16\u4B17"+
+ "\u4B18\u4B19\u4B1A\u4B1B\u4B1C\u4B1D\u4B1E\u4B1F"+
+ "\u4B20\u4B21\u4B22\u4B23\u4B24\u4B25\u4B26\u4B27"+
+ "\u4B28\u4B29\u4B2A\u4B2B\u4B2C\u4B2D\u4B2E\u4B2F"+
+ "\u4B30\u4B31\u4B32\u4B33\u4B34\u4B35\u4B36\u4B37"+
+ "\u4B38\u4B39\u4B3A\u4B3B\u4B3C\u4B3D\u4B3E\u4B3F"+
+ "\u4B40\u4B41\u4B42\u4B43\u4B44\u4B45\u4B46\u4B47"+
+ "\u4B48\u4B49\u4B4A\u4B4B\u4B4C\u4B4D\u4B4E\u4B4F"+
+ "\u4B50\u4B51\u4B52\u4B53\u4B54\u4B55\u4B56\u4B57"+
+ "\u4B58\u4B59\u4B5A\u4B5B\u4B5C\u4B5D\u4B5E\u4B5F"+
+ "\u4B60\u4B61\u4B62\u4B63\u4B64\u4B65\u4B66\u4B67"+
+ "\u4B68\u4B69\u4B6A\u4B6B\u4B6C\u4B6D\u4B6E\u4B6F"+
+ "\u4B70\u4B71\u4B72\u4B73\u4B74\u4B75\u4B76\u4B77"+
+ "\u4B78\u4B79\u4B7A\u4B7B\u4B7C\u4B7D\u4B7E\u4B7F"+
+ "\u4B80\u4B81\u4B82\u4B83\u4B84\u4B85\u4B86\u4B87"+
+ "\u4B88\u4B89\u4B8A\u4B8B\u4B8C\u4B8D\u4B8E\u4B8F"+
+ "\u4B90\u4B91\u4B92\u4B93\u4B94\u4B95\u4B96\u4B97"+
+ "\u4B98\u4B99\u4B9A\u4B9B\u4B9C\u4B9D\u4B9E\u4B9F"+
+ "\u4BA0\u4BA1\u4BA2\u4BA3\u4BA4\u4BA5\u4BA6\u4BA7"+
+ "\u4BA8\u4BA9\u4BAA\u4BAB\u4BAC\u4BAD\u4BAE\u4BAF"+
+ "\u4BB0\u4BB1\u4BB2\u4BB3\u4BB4\u4BB5\u4BB6\u4BB7"+
+ "\u4BB8\u4BB9\u4BBA\u4BBB\u4BBC\u4BBD\u4BBE\u4BBF"+
+ "\u4BC0\u4BC1\u4BC2\u4BC3\u4BC4\u4BC5\u4BC6\u4BC7"+
+ "\u4BC8\u4BC9\u4BCA\u4BCB\u4BCC\u4BCD\u4BCE\u4BCF"+
+ "\u4BD0\u4BD1\u4BD2\u4BD3\u4BD4\u4BD5\u4BD6\u4BD7"+
+ "\u4BD8\u4BD9\u4BDA\u4BDB\u4BDC\u4BDD\u4BDE\u4BDF"+
+ "\u4BE0\u4BE1\u4BE2\u4BE3\u4BE4\u4BE5\u4BE6\u4BE7"+
+ "\u4BE8\u4BE9\u4BEA\u4BEB\u4BEC\u4BED\u4BEE\u4BEF"+
+ "\u4BF0\u4BF1\u4BF2\u4BF3\u4BF4\u4BF5\u4BF6\u4BF7"+
+ "\u4BF8\u4BF9\u4BFA\u4BFB\u4BFC\u4BFD\u4BFE\u4BFF"+
+ "\u4C00\u4C01\u4C02\u4C03\u4C04\u4C05\u4C06\u4C07"+
+ "\u4C08\u4C09\u4C0A\u4C0B\u4C0C\u4C0D\u4C0E\u4C0F"+
+ "\u4C10\u4C11\u4C12\u4C13\u4C14\u4C15\u4C16\u4C17"+
+ "\u4C18\u4C19\u4C1A\u4C1B\u4C1C\u4C1D\u4C1E\u4C1F"+
+ "\u4C20\u4C21\u4C22\u4C23\u4C24\u4C25\u4C26\u4C27"+
+ "\u4C28\u4C29\u4C2A\u4C2B\u4C2C\u4C2D\u4C2E\u4C2F"+
+ "\u4C30\u4C31\u4C32\u4C33\u4C34\u4C35\u4C36\u4C37"+
+ "\u4C38\u4C39\u4C3A\u4C3B\u4C3C\u4C3D\u4C3E\u4C3F"+
+ "\u4C40\uFE50\u4C41\u4C42\uFE54\u4C43\u4C44\u4C45"+
+ "\uFE57\u4C46\u4C47\uFE58\uFE5D\u4C48\u4C49\u4C4A"+
+ "\u4C4B\u4C4C\u4C4D\u4C4E\u4C4F\u4C50\u4C51\uFE5E"+
+ "\u4C52\u4C53\u4C54\u4C55\u4C56\u4C57\u4C58\u4C59"+
+ "\u4C5A\u4C5B\u4C5C\u4C5D\u4C5E\u4C5F\u4C60\uFE6B"+
+ "\u4C61\u4C62\uFE6E\u4C63\u4C64\u4C65\uFE71\u4C66"+
+ "\u4C67\u4C68\u4C69\uFE73\u4C6A\u4C6B\uFE74\uFE75"+
+ "\u4C6C\u4C6D\u4C6E\uFE79\u4C6F\u4C70\u4C71\u4C72"+
+ "\u4C73\u4C74\u4C75\u4C76\u4C77\u4C78\u4C79\u4C7A"+
+ "\u4C7B\u4C7C\uFE84\u4C7D\u4C7E\u4C7F\u4C80\u4C81"+
+ "\u4C82\u4C83\u4C84\u4C85\u4C86\u4C87\u4C88\u4C89"+
+ "\u4C8A\u4C8B\u4C8C\u4C8D\u4C8E\u4C8F\u4C90\u4C91"+
+ "\u4C92\u4C93\u4C94\u4C95\u4C96\u4C97\u4C98\u4C99"+
+ "\u4C9A\u4C9B\u4C9C\u4C9D\u4C9E\u4C9F\u4CA0\u4CA1"+
+ "\u4CA2\u4CA3\u4CA4\u4CA5\u4CA6\u4CA7\u4CA8\u4CA9"+
+ "\u4CAA\u4CAB\u4CAC\u4CAD\u4CAE\u4CAF\u4CB0\u4CB1"+
+ "\u4CB2\u4CB3\u4CB4\u4CB5\u4CB6\u4CB7\u4CB8\u4CB9"+
+ "\u4CBA\u4CBB\u4CBC\u4CBD\u4CBE\u4CBF\u4CC0\u4CC1"+
+ "\u4CC2\u4CC3\u4CC4\u4CC5\u4CC6\u4CC7\u4CC8\u4CC9"+
+ "\u4CCA\u4CCB\u4CCC\u4CCD\u4CCE\u4CCF\u4CD0\u4CD1"+
+ "\u4CD2\u4CD3\u4CD4\u4CD5\u4CD6\u4CD7\u4CD8\u4CD9"+
+ "\u4CDA\u4CDB\u4CDC\u4CDD\u4CDE\u4CDF\u4CE0\u4CE1"+
+ "\u4CE2\u4CE3\u4CE4\u4CE5\u4CE6\u4CE7\u4CE8\u4CE9"+
+ "\u4CEA\u4CEB\u4CEC\u4CED\u4CEE\u4CEF\u4CF0\u4CF1"+
+ "\u4CF2\u4CF3\u4CF4\u4CF5\u4CF6\u4CF7\u4CF8\u4CF9"+
+ "\u4CFA\u4CFB\u4CFC\u4CFD\u4CFE\u4CFF\u4D00\u4D01"+
+ "\u4D02\u4D03\u4D04\u4D05\u4D06\u4D07\u4D08\u4D09"+
+ "\u4D0A\u4D0B\u4D0C\u4D0D\u4D0E\u4D0F\u4D10\u4D11"+
+ "\u4D12\u4D13\u4D14\u4D15\u4D16\u4D17\u4D18\u4D19"+
+ "\u4D1A\u4D1B\u4D1C\u4D1D\u4D1E\u4D1F\u4D20\u4D21"+
+ "\u4D22\u4D23\u4D24\u4D25\u4D26\u4D27\u4D28\u4D29"+
+ "\u4D2A\u4D2B\u4D2C\u4D2D\u4D2E\u4D2F\u4D30\u4D31"+
+ "\u4D32\u4D33\u4D34\u4D35\u4D36\u4D37\u4D38\u4D39"+
+ "\u4D3A\u4D3B\u4D3C\u4D3D\u4D3E\u4D3F\u4D40\u4D41"+
+ "\u4D42\u4D43\u4D44\u4D45\u4D46\u4D47\u4D48\u4D49"+
+ "\u4D4A\u4D4B\u4D4C\u4D4D\u4D4E\u4D4F\u4D50\u4D51"+
+ "\u4D52\u4D53\u4D54\u4D55\u4D56\u4D57\u4D58\u4D59"+
+ "\u4D5A\u4D5B\u4D5C\u4D5D\u4D5E\u4D5F\u4D60\u4D61"+
+ "\u4D62\u4D63\u4D64\u4D65\u4D66\u4D67\u4D68\u4D69"+
+ "\u4D6A\u4D6B\u4D6C\u4D6D\u4D6E\u4D6F\u4D70\u4D71"+
+ "\u4D72\u4D73\u4D74\u4D75\u4D76\u4D77\u4D78\u4D79"+
+ "\u4D7A\u4D7B\u4D7C\u4D7D\u4D7E\u4D7F\u4D80\u4D81"+
+ "\u4D82\u4D83\u4D84\u4D85\u4D86\u4D87\u4D88\u4D89"+
+ "\u4D8A\u4D8B\u4D8C\u4D8D\u4D8E\u4D8F\u4D90\u4D91"+
+ "\u4D92\u4D93\u4D94\u4D95\u4D96\u4D97\u4D98\u4D99"+
+ "\u4D9A\u4D9B\u4D9C\u4D9D\u4D9E\u4D9F\u4DA0\u4DA1"+
+ "\uA98A\uA98B\uA98C\uA98D\uA98E\uA98F\uA990\uA991"+
+ "\uA992\uA993\uA994\uA995\u4DA2\u4DA3\u4DA4\u4DA5";
+
+ private final static String innerEncoderIndex3=
+ "\uA1A1\uA1A2\uA1A3\uA1A8\u4DA6\uA1A9\uA965\uA996"+
+ "\uA1B4\uA1B5\uA1B6\uA1B7\uA1B8\uA1B9\uA1BA\uA1BB"+
+ "\uA1BE\uA1BF\uA893\uA1FE\uA1B2\uA1B3\uA1BC\uA1BD"+
+ "\u4DA7\u4DA8\u4DA9\u4DAA\u4DAB\uA894\uA895\u4DAC"+
+ "\u4DAD\uA940\uA941\uA942\uA943\uA944\uA945\uA946"+
+ "\uA947\uA948\u4DAE\u4DAF\u4DB0\u4DB1\u4DB2\u4DB3"+
+ "\u4DB4\u4DB5\u4DB6\u4DB7\u4DB8\u4DB9\u4DBA\u4DBB"+
+ "\u4DBC\u4DBD\u4DBE\u4DBF\u4DC0\u4DC1\uA989\u4DC2"+
+ "\u4DC3\uA4A1\uA4A2\uA4A3\uA4A4\uA4A5\uA4A6\uA4A7"+
+ "\uA4A8\uA4A9\uA4AA\uA4AB\uA4AC\uA4AD\uA4AE\uA4AF"+
+ "\uA4B0\uA4B1\uA4B2\uA4B3\uA4B4\uA4B5\uA4B6\uA4B7"+
+ "\uA4B8\uA4B9\uA4BA\uA4BB\uA4BC\uA4BD\uA4BE\uA4BF"+
+ "\uA4C0\uA4C1\uA4C2\uA4C3\uA4C4\uA4C5\uA4C6\uA4C7"+
+ "\uA4C8\uA4C9\uA4CA\uA4CB\uA4CC\uA4CD\uA4CE\uA4CF"+
+ "\uA4D0\uA4D1\uA4D2\uA4D3\uA4D4\uA4D5\uA4D6\uA4D7"+
+ "\uA4D8\uA4D9\uA4DA\uA4DB\uA4DC\uA4DD\uA4DE\uA4DF"+
+ "\uA4E0\uA4E1\uA4E2\uA4E3\uA4E4\uA4E5\uA4E6\uA4E7"+
+ "\uA4E8\uA4E9\uA4EA\uA4EB\uA4EC\uA4ED\uA4EE\uA4EF"+
+ "\uA4F0\uA4F1\uA4F2\uA4F3\u4DC4\u4DC5\u4DC6\u4DC7"+
+ "\u4DC8\u4DC9\u4DCA\uA961\uA962\uA966\uA967\u4DCB"+
+ "\u4DCC\uA5A1\uA5A2\uA5A3\uA5A4\uA5A5\uA5A6\uA5A7"+
+ "\uA5A8\uA5A9\uA5AA\uA5AB\uA5AC\uA5AD\uA5AE\uA5AF"+
+ "\uA5B0\uA5B1\uA5B2\uA5B3\uA5B4\uA5B5\uA5B6\uA5B7"+
+ "\uA5B8\uA5B9\uA5BA\uA5BB\uA5BC\uA5BD\uA5BE\uA5BF"+
+ "\uA5C0\uA5C1\uA5C2\uA5C3\uA5C4\uA5C5\uA5C6\uA5C7"+
+ "\uA5C8\uA5C9\uA5CA\uA5CB\uA5CC\uA5CD\uA5CE\uA5CF"+
+ "\uA5D0\uA5D1\uA5D2\uA5D3\uA5D4\uA5D5\uA5D6\uA5D7"+
+ "\uA5D8\uA5D9\uA5DA\uA5DB\uA5DC\uA5DD\uA5DE\uA5DF"+
+ "\uA5E0\uA5E1\uA5E2\uA5E3\uA5E4\uA5E5\uA5E6\uA5E7"+
+ "\uA5E8\uA5E9\uA5EA\uA5EB\uA5EC\uA5ED\uA5EE\uA5EF"+
+ "\uA5F0\uA5F1\uA5F2\uA5F3\uA5F4\uA5F5\uA5F6\u4DCD"+
+ "\u4DCE\u4DCF\u4DD0\u4DD1\uA960\uA963\uA964\u4DD2"+
+ "\u4DD3\u4DD4\u4DD5\u4DD6\u4DD7\uA8C5\uA8C6\uA8C7"+
+ "\uA8C8\uA8C9\uA8CA\uA8CB\uA8CC\uA8CD\uA8CE\uA8CF"+
+ "\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7"+
+ "\uA8D8\uA8D9\uA8DA\uA8DB\uA8DC\uA8DD\uA8DE\uA8DF"+
+ "\uA8E0\uA8E1\uA8E2\uA8E3\uA8E4\uA8E5\uA8E6\uA8E7"+
+ "\uA8E8\uA8E9\u4DD8\u4DD9\u4DDA\u4DDB\u4DDC\u4DDD"+
+ "\u4DDE\u4DDF\u4DE0\u4DE1\u4DE2\u4DE3\u4DE4\u4DE5"+
+ "\u4DE6\u4DE7\u4DE8\u4DE9\u4DEA\u4DEB\u4DEC\u4DED"+
+ "\u4DEE\u4DEF\u4DF0\u4DF1\u4DF2\u4DF3\u4DF4\u4DF5"+
+ "\u4DF6\u4DF7\u4DF8\u4DF9\u4DFA\u4DFB\u4DFC\u4DFD"+
+ "\u4DFE\u4DFF\u4E00\u4E01\u4E02\u4E03\u4E04\u4E05"+
+ "\u4E06\u4E07\u4E08\u4E09\u4E0A\u4E0B\u4E0C\u4E0D"+
+ "\u4E0E\u4E0F\u4E10\u4E11\u4E12\u4E13\u4E14\u4E15"+
+ "\u4E16\u4E17\u4E18\u4E19\u4E1A\u4E1B\u4E1C\u4E1D"+
+ "\u4E1E\u4E1F\u4E20\u4E21\u4E22\u4E23\u4E24\u4E25"+
+ "\u4E26\u4E27\u4E28\u4E29\u4E2A\u4E2B\u4E2C\u4E2D"+
+ "\u4E2E\u4E2F\u4E30\u4E31\u4E32\u4E33\u4E34\u4E35"+
+ "\u4E36\u4E37\u4E38\u4E39\u4E3A\u4E3B\u4E3C\u4E3D"+
+ "\u4E3E\u4E3F\u4E40\u4E41\u4E42\u4E43\u4E44\u4E45"+
+ "\u4E46\u4E47\u4E48\u4E49\u4E4A\u4E4B\u4E4C\u4E4D"+
+ "\u4E4E\u4E4F\u4E50\u4E51\u4E52\u4E53\u4E54\u4E55"+
+ "\u4E56\u4E57\u4E58\u4E59\u4E5A\u4E5B\u4E5C\u4E5D"+
+ "\u4E5E\u4E5F\u4E60\u4E61\u4E62\u4E63\u4E64\u4E65"+
+ "\u4E66\u4E67\u4E68\u4E69\u4E6A\u4E6B\u4E6C\u4E6D"+
+ "\u4E6E\u4E6F\u4E70\u4E71\u4E72\u4E73\u4E74\u4E75"+
+ "\u4E76\u4E77\u4E78\u4E79\u4E7A\u4E7B\u4E7C\u4E7D"+
+ "\u4E7E\u4E7F\u4E80\u4E81\u4E82\u4E83\u4E84\u4E85"+
+ "\u4E86\u4E87\u4E88\u4E89\u4E8A\u4E8B\u4E8C\u4E8D"+
+ "\u4E8E\u4E8F\u4E90\u4E91\u4E92\u4E93\u4E94\u4E95"+
+ "\u4E96\u4E97\u4E98\u4E99\u4E9A\u4E9B\u4E9C\u4E9D"+
+ "\u4E9E\u4E9F\u4EA0\u4EA1\u4EA2\u4EA3\u4EA4\u4EA5"+
+ "\u4EA6\u4EA7\u4EA8\u4EA9\u4EAA\u4EAB\u4EAC\u4EAD"+
+ "\u4EAE\u4EAF\u4EB0\u4EB1\u4EB2\u4EB3\u4EB4\u4EB5"+
+ "\u4EB6\u4EB7\u4EB8\u4EB9\u4EBA\u4EBB\u4EBC\u4EBD"+
+ "\u4EBE\u4EBF\u4EC0\u4EC1\u4EC2\u4EC3\u4EC4\u4EC5"+
+ "\u4EC6\u4EC7\u4EC8\u4EC9\u4ECA\u4ECB\u4ECC\u4ECD"+
+ "\uA2E5\uA2E6\uA2E7\uA2E8\uA2E9\uA2EA\uA2EB\uA2EC"+
+ "\uA2ED\uA2EE\u4ECE\u4ECF\u4ED0\u4ED1\u4ED2\u4ED3"+
+ "\u4ED4\uA95A\u4ED5\u4ED6\u4ED7\u4ED8\u4ED9\u4EDA"+
+ "\u4EDB\u4EDC\u4EDD\u4EDE\u4EDF\u4EE0\u4EE1\u4EE2"+
+ "\u4EE3\u4EE4\u4EE5\u4EE6\u4EE7\u4EE8\u4EE9\u4EEA"+
+ "\u4EEB\u4EEC\u4EED\u4EEE\u4EEF\u4EF0\u4EF1\u4EF2"+
+ "\u4EF3\u4EF4\u4EF5\u4EF6\u4EF7\u4EF8\u4EF9\u4EFA"+
+ "\u4EFB\u4EFC\u4EFD\u4EFE\u4EFF\u4F00\u4F01\u4F02"+
+ "\u4F03\u4F04\u4F05\u4F06\u4F07\u4F08\u4F09\u4F0A"+
+ "\u4F0B\u4F0C\u4F0D\u4F0E\u4F0F\u4F10\u4F11\u4F12"+
+ "\u4F13\u4F14\u4F15\u4F16\u4F17\u4F18\u4F19\u4F1A"+
+ "\u4F1B\u4F1C\u4F1D\u4F1E\u4F1F\u4F20\u4F21\u4F22"+
+ "\u4F23\u4F24\u4F25\u4F26\u4F27\u4F28\u4F29\u4F2A"+
+ "\u4F2B\u4F2C\u4F2D\u4F2E\u4F2F\u4F30\u4F31\u4F32"+
+ "\u4F33\u4F34\u4F35\u4F36\u4F37\u4F38\u4F39\u4F3A"+
+ "\u4F3B\u4F3C\u4F3D\u4F3E\u4F3F\u4F40\u4F41\u4F42"+
+ "\u4F43\u4F44\u4F45\uA949\u4F46\u4F47\u4F48\u4F49"+
+ "\u4F4A\u4F4B\u4F4C\u4F4D\u4F4E\u4F4F\u4F50\u4F51"+
+ "\u4F52\u4F53\u4F54\u4F55\u4F56\u4F57\u4F58\u4F59"+
+ "\u4F5A\u4F5B\u4F5C\u4F5D\u4F5E\u4F5F\u4F60\u4F61"+
+ "\u4F62\u4F63\u4F64\u4F65\u4F66\u4F67\u4F68\u4F69"+
+ "\u4F6A\u4F6B\u4F6C\u4F6D\u4F6E\u4F6F\u4F70\u4F71"+
+ "\u4F72\u4F73\u4F74\u4F75\u4F76\u4F77\u4F78\u4F79"+
+ "\u4F7A\u4F7B\u4F7C\u4F7D\u4F7E\u4F7F\u4F80\u4F81"+
+ "\u4F82\u4F83\u4F84\u4F85\u4F86\u4F87\u4F88\u4F89"+
+ "\u4F8A\u4F8B\u4F8C\u4F8D\u4F8E\u4F8F\u4F90\u4F91"+
+ "\u4F92\u4F93\u4F94\u4F95\u4F96\u4F97\u4F98\u4F99"+
+ "\u4F9A\u4F9B\u4F9C\u4F9D\u4F9E\u4F9F\u4FA0\u4FA1"+
+ "\u4FA2\u4FA3\u4FA4\u4FA5\u4FA6\u4FA7\u4FA8\u4FA9"+
+ "\u4FAA\u4FAB\u4FAC\u4FAD\u4FAE\u4FAF\u4FB0\u4FB1"+
+ "\u4FB2\u4FB3\u4FB4\u4FB5\u4FB6\u4FB7\u4FB8\u4FB9"+
+ "\u4FBA\u4FBB\u4FBC\u4FBD\u4FBE\u4FBF\u4FC0\u4FC1"+
+ "\u4FC2\u4FC3\u4FC4\u4FC5\u4FC6\u4FC7\u4FC8\u4FC9"+
+ "\u4FCA\u4FCB\u4FCC\u4FCD\u4FCE\u4FCF\u4FD0\u4FD1"+
+ "\u4FD2\u4FD3\u4FD4\u4FD5\u4FD6\u4FD7\u4FD8\u4FD9"+
+ "\u4FDA\u4FDB\u4FDC\u4FDD\u4FDE\u4FDF\u4FE0\u4FE1"+
+ "\u4FE2\u4FE3\u4FE4\u4FE5\u4FE6\u4FE7\u4FE8\u4FE9"+
+ "\u4FEA\u4FEB\u4FEC\u4FED\u4FEE\u4FEF\u4FF0\u4FF1"+
+ "\u4FF2\u4FF3\u4FF4\u4FF5\u4FF6\u4FF7\u4FF8\u4FF9"+
+ "\u4FFA\u4FFB\u4FFC\u4FFD\u4FFE\u4FFF\u5000\u5001"+
+ "\u5002\u5003\u5004\u5005\u5006\u5007\u5008\u5009"+
+ "\u500A\u500B\u500C\u500D\u500E\u500F\u5010\u5011"+
+ "\u5012\u5013\u5014\u5015\u5016\u5017\u5018\u5019"+
+ "\u501A\u501B\u501C\u501D\u501E\u501F\u5020\u5021"+
+ "\u5022\u5023\u5024\u5025\u5026\u5027\u5028\u5029"+
+ "\u502A\u502B\u502C\u502D\u502E\u502F\uA94A\uA94B"+
+ "\u5030\u5031\u5032\u5033\u5034\u5035\u5036\u5037"+
+ "\u5038\u5039\u503A\u503B\uA94C\uA94D\uA94E\u503C"+
+ "\u503D\uA94F\u503E\u503F\u5040\u5041\u5042\u5043"+
+ "\u5044\u5045\u5046\u5047\u5048\u5049\u504A\u504B"+
+ "\u504C\u504D\u504E\u504F\u5050\u5051\u5052\u5053"+
+ "\u5054\u5055\u5056\u5057\u5058\u5059\u505A\u505B"+
+ "\u505C\u505D\u505E\u505F\uA950\u5060\u5061\u5062"+
+ "\u5063\u5064\u5065\u5066\u5067\u5068\uA951\u5069"+
+ "\u506A\uA952\uA953\u506B\u506C\uA954\u506D\u506E"+
+ "\u506F\u5070\u5071\u5072\u5073\u5074\u5075\u5076"+
+ "\u5077\u5078\u5079\u507A\u507B\u507C\u507D\u507E"+
+ "\u507F\u5080\u5081\u5082\u5083\u5084\u5085\u5086"+
+ "\u5087\u5088\u5089\u508A\u508B\u508C\u508D\u508E"+
+ "\u508F\u5090\u5091\u5092\u5093\u5094\u5095\u5096"+
+ "\u5097\u5098\u5099\u509A\u509B\u509C\u509D\u509E"+
+ "\u509F\u50A0\u50A1\u50A2\u50A3\u50A4\u50A5\u50A6"+
+ "\u50A7\u50A8\u50A9\u50AA\u50AB\u50AC\u50AD\u50AE"+
+ "\u50AF\u50B0\u50B1\u50B2\u50B3\u50B4\u50B5\u50B6"+
+ "\u50B7\u50B8\u50B9\u50BA\u50BB\u50BC\u50BD\u50BE"+
+ "\u50BF\u50C0\u50C1\u50C2\u50C3\u50C4\u50C5\u50C6"+
+ "\u50C7\u50C8\u50C9\u50CA\u50CB\u50CC\u50CD\u50CE"+
+ "\u50CF\u50D0\u50D1\u50D2\u50D3\u50D4\u50D5\u50D6"+
+ "\u50D7\u50D8\u50D9\u50DA\u50DB\u50DC\u50DD\uFE56"+
+ "\u50DE\u50DF\u50E0\u50E1\u50E2\u50E3\u50E4\u50E5"+
+ "\u50E6\u50E7\u50E8\u50E9\u50EA\u50EB\u50EC\u50ED"+
+ "\u50EE\u50EF\u50F0\u50F1\u50F2\u50F3\u50F4\u50F5"+
+ "\u50F6\u50F7\u50F8\u50F9\u50FA\u50FB\u50FC\u50FD"+
+ "\u50FE\u50FF\u5100\u5101\u5102\u5103\u5104\u5105"+
+ "\u5106\u5107\u5108\uFE55\u5109\u510A\u510B\u510C"+
+ "\u510D\u510E\u510F\u5110\u5111\u5112\u5113\u5114"+
+ "\u5115\u5116\u5117\u5118\u5119\u511A\u511B\u511C"+
+ "\u511D\u511E\u511F\u5120\u5121\u5122\u5123\u5124"+
+ "\u5125\u5126\u5127\u5128\u5129\u512A\u512B\u512C"+
+ "\u512D\u512E\u512F\u5130\u5131\u5132\u5133\u5134"+
+ "\u5135\u5136\u5137\u5138\u5139\u513A\u513B\u513C"+
+ "\u513D\u513E\u513F\u5140\u5141\u5142\u5143\u5144"+
+ "\u5145\u5146\u5147\u5148\u5149\u514A\u514B\u514C"+
+ "\u514D\u514E\u514F\u5150\u5151\u5152\u5153\u5154"+
+ "\u5155\u5156\u5157\u5158\u5159\u515A\u515B\u515C"+
+ "\u515D\u515E\u515F\u5160\u5161\u5162\u5163\u5164"+
+ "\u5165\u5166\u5167\u5168\u5169\u516A\u516B\u516C"+
+ "\u516D\u516E\u516F\u5170\u5171\u5172\u5173\u5174"+
+ "\u5175\u5176\u5177\u5178\u5179\u517A\u517B\u517C"+
+ "\u517D\u517E\u517F\u5180\u5181\u5182\u5183\u5184"+
+ "\u5185\u5186\u5187\u5188\u5189\u518A\u518B\u518C"+
+ "\u518D\u518E\u518F\u5190\u5191\u5192\u5193\u5194"+
+ "\u5195\u5196\u5197\u5198\u5199\u519A\u519B\u519C"+
+ "\u519D\u519E\u519F\u51A0\u51A1\u51A2\u51A3\u51A4"+
+ "\u51A5\u51A6\u51A7\u51A8\u51A9\u51AA\u51AB\u51AC"+
+ "\u51AD\u51AE\u51AF\u51B0\u51B1\u51B2\u51B3\u51B4"+
+ "\u51B5\u51B6\u51B7\u51B8\u51B9\u51BA\u51BB\u51BC"+
+ "\u51BD\u51BE\u51BF\u51C0\u51C1\u51C2\u51C3\u51C4"+
+ "\u51C5\u51C6\u51C7\u51C8\u51C9\u51CA\u51CB\u51CC"+
+ "\u51CD\u51CE\u51CF\u51D0\u51D1\u51D2\u51D3\u51D4"+
+ "\u51D5\u51D6\u51D7\u51D8\u51D9\u51DA\u51DB\u51DC"+
+ "\u51DD\u51DE\u51DF\u51E0\u51E1\u51E2\u51E3\u51E4"+
+ "\u51E5\u51E6\u51E7\u51E8\u51E9\u51EA\u51EB\u51EC"+
+ "\u51ED\u51EE\u51EF\u51F0\u51F1\u51F2\u51F3\u51F4"+
+ "\u51F5\u51F6\u51F7\u51F8\u51F9\u51FA\u51FB\u51FC"+
+ "\u51FD\u51FE\u51FF\u5200\u5201\u5202\u5203\u5204"+
+ "\u5205\u5206\u5207\u5208\u5209\u520A\u520B\u520C"+
+ "\u520D\u520E\u520F\u5210\u5211\u5212\u5213\u5214"+
+ "\u5215\u5216\u5217\u5218\u5219\u521A\u521B\u521C"+
+ "\u521D\u521E\u521F\u5220\u5221\u5222\u5223\u5224"+
+ "\u5225\u5226\u5227\u5228\u5229\u522A\u522B\u522C"+
+ "\u522D\u522E\u522F\u5230\u5231\u5232\uFE5A\u5233"+
+ "\u5234\u5235\u5236\u5237\u5238\u5239\u523A\u523B"+
+ "\u523C\u523D\u523E\u523F\u5240\u5241\u5242\u5243"+
+ "\u5244\u5245\u5246\u5247\u5248\u5249\u524A\u524B"+
+ "\u524C\u524D\u524E\u524F\u5250\u5251\u5252\u5253"+
+ "\u5254\u5255\u5256\u5257\u5258\u5259\u525A\u525B"+
+ "\u525C\u525D\u525E\u525F\u5260\u5261\u5262\u5263"+
+ "\u5264\u5265\u5266\u5267\u5268\u5269\u526A\u526B"+
+ "\u526C\u526D\u526E\u526F\u5270\u5271\u5272\u5273"+
+ "\u5274\u5275\u5276\u5277\u5278\u5279\u527A\u527B"+
+ "\u527C\u527D\u527E\u527F\u5280\u5281\u5282\u5283"+
+ "\u5284\u5285\u5286\u5287\u5288\u5289\u528A\u528B"+
+ "\u528C\u528D\u528E\u528F\u5290\u5291\u5292\u5293"+
+ "\u5294\u5295\u5296\u5297\u5298\u5299\u529A\u529B"+
+ "\u529C\u529D\u529E\u529F\u52A0\u52A1\uFE5C\u52A2"+
+ "\u52A3\u52A4\u52A5\u52A6\u52A7\u52A8\u52A9\u52AA"+
+ "\u52AB\u52AC\uFE5B\u52AD\u52AE\u52AF\u52B0\u52B1"+
+ "\u52B2\u52B3\u52B4\u52B5\u52B6\u52B7\u52B8\u52B9"+
+ "\u52BA\u52BB\u52BC\u52BD\u52BE\u52BF\u52C0\u52C1"+
+ "\u52C2\u52C3\u52C4\u52C5\u52C6\u52C7\u52C8\u52C9"+
+ "\u52CA\u52CB\u52CC\u52CD\u52CE\u52CF\u52D0\u52D1"+
+ "\u52D2\u52D3\u52D4\u52D5\u52D6\u52D7\u52D8\u52D9"+
+ "\u52DA\u52DB\u52DC\u52DD\u52DE\u52DF\u52E0\u52E1"+
+ "\u52E2\u52E3\u52E4\u52E5\u52E6\u52E7\u52E8\u52E9"+
+ "\u52EA\u52EB\u52EC\u52ED\u52EE\u52EF\u52F0\u52F1"+
+ "\u52F2\u52F3\u52F4\u52F5\u52F6\u52F7\u52F8\u52F9"+
+ "\u52FA\u52FB\u52FC\u52FD\u52FE\u52FF\u5300\u5301"+
+ "\u5302\u5303\u5304\u5305\u5306\u5307\u5308\u5309"+
+ "\u530A\u530B\u530C\u530D\u530E\u530F\u5310\u5311"+
+ "\u5312\u5313\u5314\u5315\u5316\u5317\u5318\u5319"+
+ "\u531A\u531B\u531C\u531D\u531E\u531F\u5320\u5321"+
+ "\u5322\u5323\u5324\u5325\u5326\u5327\u5328\u5329"+
+ "\u532A\u532B\u532C\u532D\u532E\u532F\u5330\u5331"+
+ "\u5332\u5333\u5334\u5335\u5336\u5337\u5338\u5339"+
+ "\u533A\u533B\u533C\u533D\u533E\u533F\u5340\u5341"+
+ "\u5342\u5343\u5344\u5345\u5346\u5347\u5348\u5349"+
+ "\u534A\u534B\u534C\u534D\u534E\u534F\u5350\u5351"+
+ "\u5352\u5353\u5354\u5355\u5356\u5357\u5358\u5359"+
+ "\u535A\u535B\u535C\u535D\u535E\u535F\u5360\u5361"+
+ "\u5362\u5363\u5364\u5365\u5366\u5367\u5368\u5369"+
+ "\u536A\u536B\u536C\u536D\u536E\u536F\u5370\u5371"+
+ "\u5372\u5373\u5374\u5375\u5376\u5377\u5378\u5379"+
+ "\u537A\u537B\u537C\u537D\u537E\u537F\u5380\u5381"+
+ "\u5382\u5383\u5384\u5385\u5386\u5387\u5388\u5389"+
+ "\u538A\u538B\u538C\u538D\u538E\u538F\u5390\u5391"+
+ "\u5392\u5393\u5394\u5395\u5396\u5397\u5398\u5399"+
+ "\u539A\u539B\u539C\u539D\u539E\u539F\u53A0\u53A1"+
+ "\u53A2\u53A3\u53A4\u53A5\u53A6\u53A7\u53A8\u53A9"+
+ "\u53AA\u53AB\u53AC\u53AD\u53AE\u53AF\u53B0\u53B1"+
+ "\u53B2\u53B3\u53B4\u53B5\u53B6\u53B7\u53B8\u53B9"+
+ "\u53BA\u53BB\u53BC\u53BD\u53BE\u53BF\u53C0\u53C1"+
+ "\u53C2\u53C3\u53C4\u53C5\u53C6\u53C7\u53C8\u53C9"+
+ "\u53CA\u53CB\u53CC\u53CD\u53CE\u53CF\u53D0\u53D1"+
+ "\u53D2\u53D3\u53D4\u53D5\u53D6\u53D7\u53D8\u53D9"+
+ "\u53DA\u53DB\u53DC\u53DD\u53DE\u53DF\u53E0\u53E1"+
+ "\u53E2\u53E3\u53E4\u53E5\u53E6\u53E7\u53E8\u53E9"+
+ "\u53EA\u53EB\u53EC\u53ED\u53EE\u53EF\u53F0\u53F1"+
+ "\u53F2\u53F3\u53F4\u53F5\u53F6\u53F7\u53F8\u53F9"+
+ "\u53FA\u53FB\u53FC\u53FD\u53FE\u53FF\u5400\u5401"+
+ "\u5402\u5403\u5404\u5405\u5406\u5407\u5408\u5409"+
+ "\u540A\u540B\u540C\u540D\u540E\u540F\u5410\u5411"+
+ "\u5412\u5413\u5414\u5415\u5416\u5417\u5418\u5419"+
+ "\u541A\u541B\u541C\u541D\u541E\u541F\u5420\u5421"+
+ "\u5422\u5423\u5424\u5425\u5426\u5427\u5428\u5429"+
+ "\u542A\u542B\u542C\u542D\u542E\u542F\u5430\u5431"+
+ "\u5432\u5433\u5434\u5435\u5436\u5437\u5438\u5439"+
+ "\u543A\u543B\u543C\u543D\u543E\u543F\u5440\u5441"+
+ "\u5442\u5443\u5444\u5445\u5446\u5447\u5448\u5449"+
+ "\u544A\u544B\u544C\u544D\u544E\u544F\u5450\u5451"+
+ "\u5452\u5453\u5454\u5455\u5456\u5457\u5458\u5459"+
+ "\u545A\u545B\u545C\u545D\u545E\u545F\u5460\u5461"+
+ "\u5462\u5463\u5464\u5465\u5466\u5467\u5468\u5469"+
+ "\u546A\u546B\u546C\u546D\u546E\u546F\u5470\u5471"+
+ "\u5472\u5473\u5474\u5475\u5476\u5477\u5478\u5479"+
+ "\u547A\u547B\u547C\u547D\u547E\u547F\u5480\u5481"+
+ "\u5482\u5483\u5484\u5485\u5486\u5487\u5488\u5489"+
+ "\u548A\u548B\u548C\u548D\u548E\u548F\u5490\u5491"+
+ "\u5492\u5493\u5494\u5495\u5496\u5497\u5498\u5499"+
+ "\u549A\u549B\u549C\u549D\u549E\u549F\u54A0\u54A1"+
+ "\u54A2\u54A3\u54A4\u54A5\u54A6\u54A7\u54A8\u54A9"+
+ "\u54AA\u54AB\u54AC\u54AD\u54AE\u54AF\u54B0\u54B1"+
+ "\u54B2\u54B3\u54B4\u54B5\u54B6\u54B7\u54B8\u54B9"+
+ "\u54BA\u54BB\u54BC\u54BD\u54BE\u54BF\u54C0\u54C1"+
+ "\u54C2\u54C3\u54C4\u54C5\u54C6\u54C7\u54C8\u54C9"+
+ "\u54CA\u54CB\u54CC\u54CD\u54CE\u54CF\u54D0\u54D1"+
+ "\u54D2\u54D3\u54D4\u54D5\u54D6\u54D7\u54D8\u54D9"+
+ "\u54DA\u54DB\u54DC\u54DD\u54DE\u54DF\u54E0\u54E1"+
+ "\u54E2\u54E3\u54E4\u54E5\u54E6\u54E7\u54E8\u54E9"+
+ "\u54EA\u54EB\u54EC\u54ED\u54EE\u54EF\u54F0\u54F1"+
+ "\u54F2\u54F3\u54F4\u54F5\u54F6\u54F7\u54F8\u54F9"+
+ "\u54FA\u54FB\u54FC\u54FD\u54FE\u54FF\u5500\u5501"+
+ "\u5502\u5503\u5504\u5505\u5506\u5507\u5508\u5509"+
+ "\u550A\u550B\u550C\u550D\u550E\u550F\u5510\u5511"+
+ "\u5512\u5513\u5514\u5515\u5516\u5517\u5518\u5519"+
+ "\u551A\u551B\u551C\u551D\u551E\u551F\u5520\u5521"+
+ "\u5522\u5523\u5524\u5525\u5526\u5527\u5528\u5529"+
+ "\u552A\u552B\u552C\u552D\u552E\u552F\u5530\u5531"+
+ "\u5532\u5533\u5534\u5535\u5536\u5537\u5538\u5539"+
+ "\u553A\u553B\u553C\u553D\u553E\u553F\u5540\u5541"+
+ "\u5542\u5543\u5544\u5545\u5546\u5547\u5548\u5549"+
+ "\u554A\u554B\u554C\u554D\u554E\u554F\u5550\u5551"+
+ "\u5552\u5553\u5554\u5555\u5556\u5557\u5558\u5559"+
+ "\u555A\u555B\u555C\u555D\u555E\u555F\u5560\u5561"+
+ "\u5562\u5563\u5564\u5565\u5566\u5567\u5568\u5569"+
+ "\u556A\u556B\u556C\u556D\u556E\u556F\u5570\u5571"+
+ "\u5572\u5573\u5574\u5575\u5576\u5577\u5578\u5579"+
+ "\u557A\u557B\u557C\u557D\u557E\u557F\u5580\u5581"+
+ "\u5582\u5583\u5584\u5585\u5586\u5587\u5588\u5589"+
+ "\u558A\u558B\u558C\u558D\u558E\u558F\u5590\u5591"+
+ "\u5592\u5593\u5594\u5595\u5596\u5597\u5598\u5599"+
+ "\u559A\u559B\u559C\u559D\u559E\u559F\u55A0\u55A1"+
+ "\u55A2\u55A3\u55A4\u55A5\u55A6\u55A7\u55A8\u55A9"+
+ "\uFE60\u55AA\u55AB\u55AC\u55AD\u55AE\u55AF\u55B0"+
+ "\u55B1\u55B2\u55B3\u55B4\u55B5\u55B6\u55B7\u55B8"+
+ "\u55B9\u55BA\u55BB\u55BC\u55BD\u55BE\u55BF\u55C0"+
+ "\u55C1\u55C2\u55C3\u55C4\u55C5\u55C6\u55C7\u55C8"+
+ "\u55C9\u55CA\u55CB\u55CC\u55CD\u55CE\u55CF\u55D0"+
+ "\u55D1\u55D2\u55D3\u55D4\u55D5\u55D6\u55D7\u55D8"+
+ "\u55D9\u55DA\u55DB\u55DC\u55DD\u55DE\u55DF\u55E0"+
+ "\u55E1\u55E2\u55E3\u55E4\u55E5\u55E6\u55E7\u55E8"+
+ "\u55E9\u55EA\u55EB\u55EC\u55ED\u55EE\u55EF\u55F0"+
+ "\u55F1\u55F2\u55F3\u55F4\u55F5\u55F6\u55F7\u55F8"+
+ "\u55F9\u55FA\u55FB\u55FC\u55FD\u55FE\uFE5F\u55FF"+
+ "\u5600\u5601\u5602\u5603\u5604\u5605\u5606\u5607"+
+ "\u5608\u5609\u560A\u560B\u560C\u560D\u560E\u560F"+
+ "\u5610\u5611\u5612\u5613\u5614\u5615\u5616\u5617"+
+ "\u5618\u5619\u561A\u561B\u561C\u561D\u561E\u561F"+
+ "\u5620\u5621\u5622\u5623\u5624\u5625\u5626\u5627"+
+ "\u5628\u5629\u562A\u562B\u562C\u562D\u562E\u562F"+
+ "\u5630\u5631\u5632\u5633\u5634\u5635\u5636\u5637"+
+ "\u5638\u5639\u563A\u563B\u563C\u563D\u563E\u563F"+
+ "\u5640\u5641\u5642\u5643\u5644\u5645\u5646\u5647"+
+ "\u5648\u5649\u564A\u564B\u564C\u564D\u564E\u564F"+
+ "\u5650\u5651\u5652\u5653\u5654\u5655\u5656\u5657"+
+ "\u5658\u5659\u565A\u565B\u565C\u565D\u565E\uFE62"+
+ "\uFE65\u565F\u5660\u5661\u5662\u5663\u5664\u5665"+
+ "\u5666\u5667\u5668\u5669\u566A\u566B\u566C\uFE63"+
+ "\u566D\u566E\u566F\u5670\u5671\u5672\u5673\u5674"+
+ "\u5675\u5676\u5677\u5678\u5679\u567A\u567B\u567C"+
+ "\u567D\u567E\u567F\u5680\u5681\u5682\u5683\u5684"+
+ "\u5685\u5686\u5687\u5688\u5689\u568A\u568B\u568C"+
+ "\u568D\u568E\u568F\u5690\u5691\u5692\u5693\u5694"+
+ "\u5695\u5696\u5697\u5698\u5699\u569A\u569B\u569C"+
+ "\u569D\u569E\u569F\u56A0\u56A1\u56A2\u56A3\u56A4"+
+ "\u56A5\u56A6\u56A7\u56A8\u56A9\u56AA\u56AB\u56AC"+
+ "\u56AD\u56AE\u56AF\u56B0\u56B1\u56B2\u56B3\u56B4"+
+ "\u56B5\u56B6\u56B7\u56B8\u56B9\u56BA\u56BB\u56BC"+
+ "\u56BD\u56BE\u56BF\u56C0\u56C1\u56C2\u56C3\u56C4"+
+ "\u56C5\u56C6\u56C7\u56C8\u56C9\u56CA\u56CB\u56CC"+
+ "\u56CD\u56CE\u56CF\u56D0\u56D1\u56D2\u56D3\u56D4"+
+ "\u56D5\u56D6\u56D7\u56D8\u56D9\u56DA\u56DB\u56DC"+
+ "\u56DD\u56DE\u56DF\u56E0\u56E1\u56E2\u56E3\u56E4"+
+ "\u56E5\u56E6\u56E7\u56E8\u56E9\u56EA\u56EB\u56EC"+
+ "\u56ED\u56EE\u56EF\u56F0\u56F1\u56F2\u56F3\u56F4"+
+ "\u56F5\u56F6\u56F7\u56F8\u56F9\u56FA\u56FB\u56FC"+
+ "\u56FD\u56FE\u56FF\uFE64\u5700\u5701\u5702\u5703"+
+ "\u5704\u5705\u5706\u5707\u5708\u5709\u570A\u570B"+
+ "\u570C\u570D\u570E\u570F\u5710\u5711\u5712\u5713"+
+ "\u5714\u5715\u5716\u5717\u5718\u5719\u571A\u571B"+
+ "\u571C\u571D\u571E\u571F\u5720\u5721\u5722\u5723"+
+ "\u5724\u5725\u5726\u5727\u5728\u5729\u572A\u572B"+
+ "\u572C\u572D\u572E\u572F\u5730\u5731\u5732\u5733"+
+ "\u5734\u5735\u5736\u5737\u5738\u5739\u573A\u573B"+
+ "\u573C\u573D\u573E\u573F\u5740\u5741\u5742\u5743"+
+ "\u5744\u5745\u5746\u5747\u5748\u5749\u574A\u574B"+
+ "\u574C\u574D\u574E\u574F\u5750\u5751\u5752\u5753"+
+ "\u5754\u5755\u5756\u5757\u5758\u5759\u575A\u575B"+
+ "\u575C\u575D\u575E\u575F\u5760\u5761\u5762\u5763"+
+ "\u5764\u5765\u5766\u5767\u5768\u5769\u576A\u576B"+
+ "\u576C\u576D\u576E\u576F\u5770\u5771\u5772\u5773"+
+ "\u5774\u5775\u5776\u5777\u5778\u5779\u577A\u577B"+
+ "\u577C\u577D\u577E\u577F\u5780\u5781\u5782\u5783"+
+ "\u5784\u5785\u5786\u5787\u5788\u5789\u578A\u578B"+
+ "\u578C\u578D\u578E\u578F\u5790\u5791\u5792\u5793"+
+ "\u5794\u5795\u5796\u5797\u5798\u5799\u579A\u579B"+
+ "\u579C\u579D\u579E\u579F\u57A0\u57A1\u57A2\u57A3"+
+ "\u57A4\u57A5\u57A6\u57A7\u57A8\u57A9\u57AA\u57AB"+
+ "\u57AC\u57AD\u57AE\u57AF\u57B0\u57B1\u57B2\u57B3"+
+ "\u57B4\u57B5\u57B6\u57B7\u57B8\u57B9\u57BA\u57BB"+
+ "\u57BC\u57BD\u57BE\u57BF\u57C0\u57C1\u57C2\u57C3"+
+ "\u57C4\u57C5\u57C6\u57C7\u57C8\u57C9\u57CA\u57CB"+
+ "\u57CC\u57CD\u57CE\u57CF\u57D0\u57D1\u57D2\u57D3"+
+ "\u57D4\u57D5\u57D6\u57D7\u57D8\u57D9\uFE68\u57DA"+
+ "\u57DB\u57DC\u57DD\u57DE\u57DF\u57E0\u57E1\u57E2"+
+ "\u57E3\u57E4\u57E5\u57E6\u57E7\u57E8\u57E9\u57EA"+
+ "\u57EB\u57EC\u57ED\u57EE\u57EF\u57F0\u57F1\u57F2"+
+ "\u57F3\u57F4\u57F5\u57F6\u57F7\u57F8\u57F9\u57FA"+
+ "\u57FB\u57FC\u57FD\u57FE\u57FF\u5800\u5801\u5802"+
+ "\u5803\u5804\u5805\u5806\u5807\u5808\u5809\u580A"+
+ "\u580B\u580C\u580D\u580E\u580F\u5810\u5811\u5812"+
+ "\u5813\u5814\u5815\u5816\u5817\u5818\u5819\u581A"+
+ "\u581B\u581C\u581D\u581E\u581F\u5820\u5821\u5822"+
+ "\u5823\u5824\u5825\u5826\u5827\u5828\u5829\u582A"+
+ "\u582B\u582C\u582D\u582E\u582F\u5830\u5831\u5832"+
+ "\u5833\u5834\u5835\u5836\u5837\u5838\u5839\u583A"+
+ "\u583B\u583C\u583D\u583E\u583F\u5840\u5841\u5842"+
+ "\u5843\u5844\u5845\u5846\u5847\u5848\u5849\u584A"+
+ "\u584B\u584C\u584D\u584E\u584F\u5850\u5851\u5852"+
+ "\u5853\u5854\u5855\u5856\u5857\u5858\u5859\u585A"+
+ "\u585B\u585C\u585D\u585E\u585F\u5860\u5861\u5862"+
+ "\u5863\u5864\u5865\u5866\u5867\u5868\u5869\u586A"+
+ "\u586B\u586C\u586D\u586E\u586F\u5870\u5871\u5872"+
+ "\u5873\u5874\u5875\u5876\u5877\u5878\u5879\u587A"+
+ "\u587B\u587C\u587D\u587E\u587F\u5880\u5881\u5882"+
+ "\u5883\u5884\u5885\u5886\u5887\u5888\u5889\u588A"+
+ "\u588B\u588C\u588D\u588E\u588F\u5890\u5891\u5892"+
+ "\u5893\u5894\u5895\u5896\u5897\u5898\u5899\u589A"+
+ "\u589B\u589C\u589D\u589E\u589F\u58A0\u58A1\u58A2"+
+ "\u58A3\u58A4\u58A5\u58A6\u58A7\u58A8\u58A9\u58AA"+
+ "\u58AB\u58AC\u58AD\u58AE\u58AF\u58B0\u58B1\u58B2"+
+ "\u58B3\u58B4\u58B5\u58B6\u58B7\u58B8\u58B9\u58BA"+
+ "\u58BB\u58BC\u58BD\u58BE\u58BF\u58C0\u58C1\u58C2"+
+ "\u58C3\u58C4\u58C5\u58C6\u58C7\u58C8\u58C9\u58CA"+
+ "\u58CB\u58CC\u58CD\u58CE\u58CF\u58D0\u58D1\u58D2"+
+ "\u58D3\u58D4\u58D5\u58D6\u58D7\u58D8\u58D9\u58DA"+
+ "\u58DB\u58DC\u58DD\u58DE\u58DF\u58E0\u58E1\u58E2"+
+ "\u58E3\u58E4\u58E5\u58E6\u58E7\u58E8\u58E9\u58EA"+
+ "\u58EB\u58EC\u58ED\u58EE\u58EF\u58F0\u58F1\u58F2"+
+ "\u58F3\u58F4\u58F5\u58F6\u58F7\u58F8\uFE69\u58F9"+
+ "\u58FA\u58FB\u58FC\u58FD\u58FE\u58FF\u5900\u5901"+
+ "\u5902\u5903\u5904\u5905\u5906\u5907\u5908\u5909"+
+ "\u590A\u590B\u590C\u590D\u590E\u590F\u5910\u5911"+
+ "\u5912\u5913\u5914\u5915\u5916\u5917\u5918\u5919"+
+ "\u591A\u591B\u591C\u591D\u591E\u591F\u5920\u5921"+
+ "\u5922\u5923\u5924\u5925\u5926\u5927\u5928\u5929"+
+ "\u592A\u592B\u592C\u592D\u592E\u592F\u5930\u5931"+
+ "\u5932\u5933\u5934\u5935\u5936\u5937\u5938\u5939"+
+ "\u593A\u593B\u593C\u593D\u593E\u593F\u5940\u5941"+
+ "\u5942\u5943\u5944\u5945\u5946\u5947\u5948\u5949"+
+ "\u594A\u594B\u594C\u594D\u594E\u594F\u5950\u5951"+
+ "\u5952\u5953\u5954\u5955\u5956\u5957\u5958\u5959"+
+ "\u595A\u595B\u595C\u595D\u595E\u595F\u5960\u5961"+
+ "\u5962\u5963\u5964\u5965\u5966\u5967\u5968\u5969"+
+ "\uFE6A\u596A\u596B\u596C\u596D\u596E\u596F\u5970"+
+ "\u5971\u5972\u5973\u5974\u5975\u5976\u5977\u5978"+
+ "\u5979\u597A\u597B\u597C\u597D\u597E\u597F\u5980"+
+ "\u5981\u5982\u5983\u5984\u5985\u5986\u5987\u5988"+
+ "\u5989\u598A\u598B\u598C\u598D\u598E\u598F\u5990"+
+ "\u5991\u5992\u5993\u5994\u5995\u5996\u5997\u5998"+
+ "\u5999\u599A\u599B\u599C\u599D\u599E\u599F\u59A0"+
+ "\u59A1\u59A2\u59A3\u59A4\u59A5\u59A6\u59A7\u59A8"+
+ "\u59A9\u59AA\u59AB\u59AC\u59AD\u59AE\u59AF\u59B0"+
+ "\u59B1\u59B2\u59B3\u59B4\u59B5\u59B6\u59B7\u59B8"+
+ "\u59B9\u59BA\u59BB\u59BC\u59BD\u59BE\u59BF\u59C0"+
+ "\u59C1\u59C2\u59C3\u59C4\u59C5\u59C6\u59C7\u59C8"+
+ "\u59C9\u59CA\u59CB\u59CC\u59CD\u59CE\u59CF\u59D0"+
+ "\u59D1\u59D2\u59D3\u59D4\u59D5\u59D6\u59D7\u59D8"+
+ "\u59D9\u59DA\u59DB\u59DC\u59DD\u59DE\u59DF\u59E0"+
+ "\u59E1\u59E2\u59E3\u59E4\u59E5\u59E6\u59E7\u59E8"+
+ "\u59E9\u59EA\u59EB\u59EC\u59ED\u59EE\u59EF\u59F0"+
+ "\u59F1\u59F2\u59F3\u59F4\u59F5\u59F6\u59F7\u59F8"+
+ "\u59F9\u59FA\u59FB\u59FC\u59FD\u59FE\u59FF\u5A00"+
+ "\u5A01\u5A02\u5A03\u5A04\u5A05\u5A06\u5A07\u5A08"+
+ "\u5A09\u5A0A\u5A0B\u5A0C\u5A0D\u5A0E\u5A0F\u5A10"+
+ "\u5A11\u5A12\u5A13\u5A14\u5A15\u5A16\u5A17\u5A18"+
+ "\u5A19\u5A1A\u5A1B\u5A1C\u5A1D\u5A1E\u5A1F\u5A20"+
+ "\u5A21\u5A22\u5A23\u5A24\u5A25\u5A26\u5A27\u5A28"+
+ "\u5A29\u5A2A\u5A2B\u5A2C\u5A2D\u5A2E\u5A2F\u5A30"+
+ "\u5A31\u5A32\u5A33\u5A34\u5A35\u5A36\u5A37\u5A38"+
+ "\u5A39\u5A3A\u5A3B\u5A3C\u5A3D\u5A3E\u5A3F\u5A40"+
+ "\u5A41\u5A42\u5A43\u5A44\u5A45\u5A46\u5A47\u5A48"+
+ "\u5A49\u5A4A\u5A4B\u5A4C\u5A4D\u5A4E\u5A4F\u5A50"+
+ "\u5A51\u5A52\u5A53\u5A54\u5A55\u5A56\u5A57\u5A58"+
+ "\u5A59\u5A5A\u5A5B\u5A5C\u5A5D\u5A5E\u5A5F\u5A60"+
+ "\u5A61\u5A62\u5A63\u5A64\u5A65\u5A66\u5A67\u5A68"+
+ "\u5A69\u5A6A\u5A6B\u5A6C\u5A6D\u5A6E\u5A6F\u5A70"+
+ "\u5A71\u5A72\u5A73\u5A74\u5A75\u5A76\u5A77\u5A78"+
+ "\u5A79\u5A7A\u5A7B\u5A7C\u5A7D\u5A7E\u5A7F\u5A80"+
+ "\u5A81\u5A82\u5A83\u5A84\u5A85\u5A86\u5A87\u5A88"+
+ "\u5A89\u5A8A\u5A8B\u5A8C\u5A8D\u5A8E\u5A8F\u5A90"+
+ "\u5A91\u5A92\u5A93\u5A94\u5A95\u5A96\u5A97\u5A98"+
+ "\u5A99\u5A9A\u5A9B\u5A9C\u5A9D\u5A9E\u5A9F\u5AA0"+
+ "\u5AA1\u5AA2\u5AA3\u5AA4\u5AA5\u5AA6\u5AA7\u5AA8"+
+ "\u5AA9\u5AAA\u5AAB\u5AAC\u5AAD\u5AAE\u5AAF\u5AB0"+
+ "\u5AB1\u5AB2\u5AB3\u5AB4\u5AB5\u5AB6\u5AB7\u5AB8"+
+ "\u5AB9\u5ABA\u5ABB\u5ABC\u5ABD\u5ABE\u5ABF\u5AC0"+
+ "\u5AC1\u5AC2\u5AC3\u5AC4\u5AC5\u5AC6\u5AC7\u5AC8"+
+ "\u5AC9\u5ACA\u5ACB\u5ACC\u5ACD\u5ACE\u5ACF\u5AD0"+
+ "\u5AD1\u5AD2\u5AD3\u5AD4\u5AD5\u5AD6\u5AD7\u5AD8"+
+ "\u5AD9\u5ADA\u5ADB\u5ADC\u5ADD\u5ADE\u5ADF\u5AE0"+
+ "\u5AE1\u5AE2\u5AE3\u5AE4\u5AE5\u5AE6\u5AE7\u5AE8"+
+ "\u5AE9\u5AEA\u5AEB\u5AEC\u5AED\u5AEE\u5AEF\u5AF0"+
+ "\u5AF1\u5AF2\u5AF3\u5AF4\u5AF5\u5AF6\u5AF7\u5AF8"+
+ "\u5AF9\u5AFA\u5AFB\u5AFC\u5AFD\u5AFE\u5AFF\u5B00"+
+ "\u5B01\u5B02\u5B03\u5B04\u5B05\u5B06\u5B07\u5B08"+
+ "\u5B09\u5B0A\u5B0B\u5B0C\u5B0D\u5B0E\u5B0F\u5B10"+
+ "\u5B11\u5B12\u5B13\u5B14\u5B15\u5B16\u5B17\u5B18"+
+ "\u5B19\u5B1A\u5B1B\u5B1C\u5B1D\u5B1E\u5B1F\u5B20"+
+ "\u5B21\u5B22\u5B23\u5B24\u5B25\u5B26\u5B27\u5B28"+
+ "\u5B29\u5B2A\u5B2B\u5B2C\u5B2D\u5B2E\u5B2F\u5B30"+
+ "\u5B31\u5B32\u5B33\u5B34\u5B35\u5B36\u5B37\u5B38"+
+ "\u5B39\u5B3A\u5B3B\u5B3C\u5B3D\u5B3E\u5B3F\u5B40"+
+ "\u5B41\u5B42\u5B43\u5B44\u5B45\u5B46\u5B47\u5B48"+
+ "\u5B49\u5B4A\u5B4B\u5B4C\u5B4D\u5B4E\u5B4F\u5B50"+
+ "\u5B51\u5B52\u5B53\u5B54\u5B55\u5B56\u5B57\u5B58"+
+ "\u5B59\u5B5A\u5B5B\u5B5C\u5B5D\u5B5E\u5B5F\u5B60"+
+ "\u5B61\u5B62\u5B63\u5B64\u5B65\u5B66\u5B67\u5B68"+
+ "\u5B69\u5B6A\u5B6B\u5B6C\u5B6D\u5B6E\u5B6F\u5B70"+
+ "\u5B71\u5B72\u5B73\u5B74\u5B75\u5B76\u5B77\u5B78"+
+ "\u5B79\u5B7A\u5B7B\u5B7C\u5B7D\u5B7E\u5B7F\u5B80"+
+ "\u5B81\u5B82\u5B83\u5B84\u5B85\u5B86\u5B87\u5B88"+
+ "\u5B89\u5B8A\u5B8B\u5B8C\u5B8D\u5B8E\u5B8F\u5B90"+
+ "\u5B91\u5B92\u5B93\u5B94\u5B95\u5B96\u5B97\u5B98"+
+ "\u5B99\u5B9A\u5B9B\u5B9C\u5B9D\u5B9E\u5B9F\u5BA0"+
+ "\u5BA1\u5BA2\u5BA3\u5BA4\u5BA5\u5BA6\u5BA7\u5BA8"+
+ "\u5BA9\u5BAA\u5BAB\u5BAC\u5BAD\u5BAE\u5BAF\u5BB0"+
+ "\u5BB1\u5BB2\u5BB3\u5BB4\u5BB5\u5BB6\u5BB7\u5BB8"+
+ "\u5BB9\u5BBA\u5BBB\u5BBC\u5BBD\u5BBE\u5BBF\u5BC0"+
+ "\u5BC1\u5BC2\u5BC3\u5BC4\u5BC5\u5BC6\u5BC7\u5BC8"+
+ "\u5BC9\u5BCA\u5BCB\u5BCC\u5BCD\u5BCE\u5BCF\u5BD0"+
+ "\u5BD1\u5BD2\u5BD3\u5BD4\u5BD5\u5BD6\u5BD7\u5BD8"+
+ "\u5BD9\u5BDA\u5BDB\u5BDC\u5BDD\u5BDE\u5BDF\u5BE0"+
+ "\u5BE1\u5BE2\u5BE3\u5BE4\u5BE5\u5BE6\u5BE7\u5BE8"+
+ "\u5BE9\u5BEA\u5BEB\u5BEC\u5BED\u5BEE\u5BEF\u5BF0"+
+ "\u5BF1\u5BF2\u5BF3\u5BF4\u5BF5\u5BF6\u5BF7\u5BF8"+
+ "\u5BF9\u5BFA\u5BFB\u5BFC\u5BFD\u5BFE\u5BFF\u5C00"+
+ "\u5C01\u5C02\u5C03\u5C04\u5C05\u5C06\u5C07\u5C08"+
+ "\u5C09\u5C0A\u5C0B\u5C0C\u5C0D\u5C0E\u5C0F\u5C10"+
+ "\u5C11\u5C12\u5C13\u5C14\u5C15\u5C16\u5C17\u5C18"+
+ "\u5C19\u5C1A\u5C1B\u5C1C\u5C1D\u5C1E\u5C1F\u5C20"+
+ "\u5C21\u5C22\u5C23\u5C24\u5C25\u5C26\u5C27\u5C28"+
+ "\u5C29\u5C2A\u5C2B\u5C2C\u5C2D\u5C2E\u5C2F\u5C30"+
+ "\u5C31\u5C32\u5C33\u5C34\u5C35\u5C36\u5C37\u5C38"+
+ "\u5C39\u5C3A\u5C3B\u5C3C\u5C3D\u5C3E\u5C3F\u5C40"+
+ "\u5C41\u5C42\u5C43\u5C44\u5C45\u5C46\u5C47\u5C48"+
+ "\u5C49\u5C4A\u5C4B\u5C4C\u5C4D\u5C4E\u5C4F\u5C50"+
+ "\u5C51\u5C52\u5C53\u5C54\u5C55\u5C56\u5C57\u5C58"+
+ "\u5C59\u5C5A\u5C5B\u5C5C\u5C5D\u5C5E\u5C5F\u5C60"+
+ "\u5C61\u5C62\u5C63\u5C64\u5C65\u5C66\u5C67\u5C68"+
+ "\u5C69\u5C6A\u5C6B\u5C6C\u5C6D\u5C6E\u5C6F\u5C70"+
+ "\u5C71\u5C72\u5C73\u5C74\u5C75\u5C76\u5C77\u5C78"+
+ "\u5C79\u5C7A\u5C7B\u5C7C\u5C7D\u5C7E\u5C7F\u5C80"+
+ "\u5C81\u5C82\u5C83\u5C84\u5C85\u5C86\u5C87\u5C88";
+
+ private final static String innerEncoderIndex4=
+ "\u5C89\u5C8A\u5C8B\u5C8C\u5C8D\u5C8E\u5C8F\u5C90"+
+ "\u5C91\u5C92\u5C93\u5C94\u5C95\u5C96\u5C97\u5C98"+
+ "\u5C99\u5C9A\u5C9B\u5C9C\u5C9D\u5C9E\u5C9F\u5CA0"+
+ "\u5CA1\u5CA2\u5CA3\u5CA4\u5CA5\u5CA6\u5CA7\u5CA8"+
+ "\u5CA9\u5CAA\u5CAB\u5CAC\u5CAD\u5CAE\u5CAF\u5CB0"+
+ "\u5CB1\u5CB2\u5CB3\u5CB4\u5CB5\u5CB6\u5CB7\u5CB8"+
+ "\u5CB9\u5CBA\u5CBB\u5CBC\u5CBD\u5CBE\u5CBF\u5CC0"+
+ "\u5CC1\u5CC2\u5CC3\u5CC4\u5CC5\u5CC6\u5CC7\u5CC8"+
+ "\u5CC9\u5CCA\u5CCB\u5CCC\u5CCD\u5CCE\u5CCF\u5CD0"+
+ "\u5CD1\u5CD2\u5CD3\u5CD4\u5CD5\u5CD6\u5CD7\u5CD8"+
+ "\u5CD9\u5CDA\u5CDB\u5CDC\u5CDD\u5CDE\uFE6F\u5CDF"+
+ "\u5CE0\u5CE1\u5CE2\u5CE3\u5CE4\u5CE5\u5CE6\u5CE7"+
+ "\u5CE8\u5CE9\u5CEA\u5CEB\u5CEC\u5CED\u5CEE\u5CEF"+
+ "\u5CF0\u5CF1\u5CF2\u5CF3\u5CF4\u5CF5\u5CF6\u5CF7"+
+ "\u5CF8\u5CF9\u5CFA\u5CFB\u5CFC\u5CFD\u5CFE\u5CFF"+
+ "\u5D00\u5D01\u5D02\u5D03\u5D04\u5D05\u5D06\u5D07"+
+ "\u5D08\u5D09\u5D0A\u5D0B\u5D0C\u5D0D\u5D0E\u5D0F"+
+ "\u5D10\u5D11\u5D12\u5D13\u5D14\u5D15\u5D16\u5D17"+
+ "\u5D18\u5D19\u5D1A\u5D1B\u5D1C\u5D1D\u5D1E\u5D1F"+
+ "\u5D20\u5D21\u5D22\u5D23\u5D24\u5D25\u5D26\u5D27"+
+ "\u5D28\u5D29\u5D2A\u5D2B\u5D2C\u5D2D\u5D2E\u5D2F"+
+ "\u5D30\u5D31\u5D32\u5D33\u5D34\u5D35\u5D36\u5D37"+
+ "\u5D38\u5D39\u5D3A\u5D3B\u5D3C\u5D3D\u5D3E\u5D3F"+
+ "\u5D40\u5D41\u5D42\u5D43\u5D44\u5D45\u5D46\u5D47"+
+ "\u5D48\u5D49\u5D4A\u5D4B\u5D4C\u5D4D\u5D4E\u5D4F"+
+ "\u5D50\u5D51\u5D52\u5D53\u5D54\u5D55\u5D56\u5D57"+
+ "\u5D58\u5D59\u5D5A\u5D5B\u5D5C\u5D5D\u5D5E\u5D5F"+
+ "\u5D60\u5D61\u5D62\u5D63\u5D64\u5D65\u5D66\u5D67"+
+ "\u5D68\u5D69\u5D6A\u5D6B\u5D6C\u5D6D\u5D6E\u5D6F"+
+ "\u5D70\u5D71\u5D72\u5D73\u5D74\u5D75\u5D76\u5D77"+
+ "\u5D78\u5D79\u5D7A\u5D7B\u5D7C\u5D7D\u5D7E\u5D7F"+
+ "\u5D80\u5D81\u5D82\u5D83\u5D84\u5D85\u5D86\u5D87"+
+ "\u5D88\u5D89\u5D8A\u5D8B\u5D8C\u5D8D\u5D8E\u5D8F"+
+ "\u5D90\u5D91\u5D92\u5D93\u5D94\u5D95\u5D96\u5D97"+
+ "\u5D98\u5D99\u5D9A\u5D9B\u5D9C\u5D9D\u5D9E\u5D9F"+
+ "\u5DA0\u5DA1\u5DA2\u5DA3\u5DA4\u5DA5\u5DA6\u5DA7"+
+ "\u5DA8\u5DA9\u5DAA\u5DAB\u5DAC\u5DAD\u5DAE\u5DAF"+
+ "\u5DB0\u5DB1\u5DB2\u5DB3\u5DB4\u5DB5\u5DB6\u5DB7"+
+ "\u5DB8\u5DB9\u5DBA\u5DBB\u5DBC\u5DBD\u5DBE\u5DBF"+
+ "\u5DC0\u5DC1\u5DC2\u5DC3\u5DC4\u5DC5\u5DC6\u5DC7"+
+ "\u5DC8\u5DC9\u5DCA\u5DCB\u5DCC\u5DCD\u5DCE\u5DCF"+
+ "\u5DD0\u5DD1\u5DD2\u5DD3\u5DD4\u5DD5\u5DD6\u5DD7"+
+ "\u5DD8\u5DD9\u5DDA\u5DDB\u5DDC\u5DDD\u5DDE\u5DDF"+
+ "\u5DE0\u5DE1\u5DE2\u5DE3\u5DE4\u5DE5\u5DE6\uFE70"+
+ "\u5DE7\u5DE8\u5DE9\u5DEA\u5DEB\u5DEC\u5DED\u5DEE"+
+ "\u5DEF\u5DF0\u5DF1\u5DF2\u5DF3\u5DF4\u5DF5\u5DF6"+
+ "\u5DF7\u5DF8\u5DF9\u5DFA\u5DFB\u5DFC\u5DFD\u5DFE"+
+ "\u5DFF\u5E00\u5E01\u5E02\u5E03\u5E04\u5E05\u5E06"+
+ "\u5E07\u5E08\u5E09\u5E0A\u5E0B\u5E0C\u5E0D\u5E0E"+
+ "\u5E0F\u5E10\u5E11\u5E12\u5E13\u5E14\u5E15\u5E16"+
+ "\u5E17\u5E18\u5E19\u5E1A\u5E1B\u5E1C\u5E1D\u5E1E"+
+ "\u5E1F\u5E20\u5E21\u5E22\u5E23\u5E24\u5E25\u5E26"+
+ "\u5E27\u5E28\u5E29\u5E2A\u5E2B\u5E2C\u5E2D\u5E2E"+
+ "\u5E2F\u5E30\u5E31\u5E32\u5E33\u5E34\u5E35\u5E36"+
+ "\u5E37\u5E38\u5E39\u5E3A\u5E3B\u5E3C\u5E3D\u5E3E"+
+ "\u5E3F\u5E40\u5E41\u5E42\u5E43\u5E44\u5E45\u5E46"+
+ "\u5E47\u5E48\u5E49\u5E4A\u5E4B\u5E4C\u5E4D\u5E4E"+
+ "\u5E4F\u5E50\u5E51\u5E52\u5E53\u5E54\u5E55\u5E56"+
+ "\u5E57\u5E58\u5E59\u5E5A\u5E5B\u5E5C\u5E5D\u5E5E"+
+ "\u5E5F\u5E60\u5E61\u5E62\u5E63\u5E64\u5E65\u5E66"+
+ "\u5E67\u5E68\u5E69\u5E6A\u5E6B\u5E6C\u5E6D\u5E6E"+
+ "\u5E6F\u5E70\u5E71\u5E72\u5E73\u5E74\u5E75\u5E76"+
+ "\u5E77\u5E78\u5E79\u5E7A\u5E7B\u5E7C\u5E7D\u5E7E"+
+ "\u5E7F\u5E80\u5E81\u5E82\u5E83\u5E84\u5E85\u5E86"+
+ "\u5E87\u5E88\u5E89\u5E8A\u5E8B\u5E8C\u5E8D\u5E8E"+
+ "\u5E8F\u5E90\u5E91\u5E92\u5E93\u5E94\u5E95\u5E96"+
+ "\u5E97\u5E98\u5E99\u5E9A\u5E9B\u5E9C\u5E9D\u5E9E"+
+ "\u5E9F\u5EA0\u5EA1\u5EA2\u5EA3\u5EA4\u5EA5\u5EA6"+
+ "\u5EA7\u5EA8\u5EA9\u5EAA\u5EAB\u5EAC\u5EAD\u5EAE"+
+ "\u5EAF\u5EB0\u5EB1\u5EB2\u5EB3\u5EB4\u5EB5\u5EB6"+
+ "\u5EB7\u5EB8\u5EB9\u5EBA\u5EBB\u5EBC\u5EBD\u5EBE"+
+ "\u5EBF\u5EC0\u5EC1\u5EC2\u5EC3\u5EC4\u5EC5\u5EC6"+
+ "\u5EC7\u5EC8\u5EC9\u5ECA\u5ECB\u5ECC\u5ECD\u5ECE"+
+ "\u5ECF\u5ED0\u5ED1\u5ED2\u5ED3\u5ED4\u5ED5\u5ED6"+
+ "\u5ED7\u5ED8\u5ED9\u5EDA\u5EDB\u5EDC\u5EDD\u5EDE"+
+ "\u5EDF\u5EE0\u5EE1\u5EE2\u5EE3\u5EE4\u5EE5\u5EE6"+
+ "\u5EE7\u5EE8\u5EE9\u5EEA\u5EEB\u5EEC\u5EED\u5EEE"+
+ "\u5EEF\u5EF0\u5EF1\u5EF2\u5EF3\u5EF4\u5EF5\u5EF6"+
+ "\u5EF7\u5EF8\u5EF9\u5EFA\u5EFB\u5EFC\u5EFD\u5EFE"+
+ "\u5EFF\u5F00\u5F01\u5F02\u5F03\u5F04\u5F05\u5F06"+
+ "\u5F07\u5F08\u5F09\u5F0A\u5F0B\u5F0C\u5F0D\u5F0E"+
+ "\u5F0F\u5F10\u5F11\u5F12\u5F13\u5F14\u5F15\u5F16"+
+ "\u5F17\u5F18\u5F19\u5F1A\u5F1B\u5F1C\u5F1D\u5F1E"+
+ "\u5F1F\u5F20\u5F21\u5F22\u5F23\u5F24\u5F25\u5F26"+
+ "\u5F27\u5F28\u5F29\u5F2A\u5F2B\u5F2C\u5F2D\u5F2E"+
+ "\u5F2F\u5F30\u5F31\u5F32\u5F33\u5F34\u5F35\u5F36"+
+ "\u5F37\u5F38\u5F39\u5F3A\u5F3B\u5F3C\u5F3D\u5F3E"+
+ "\u5F3F\u5F40\u5F41\u5F42\u5F43\u5F44\u5F45\u5F46"+
+ "\u5F47\u5F48\u5F49\u5F4A\u5F4B\u5F4C\u5F4D\u5F4E"+
+ "\u5F4F\u5F50\u5F51\u5F52\u5F53\u5F54\u5F55\u5F56"+
+ "\u5F57\u5F58\u5F59\u5F5A\u5F5B\u5F5C\u5F5D\u5F5E"+
+ "\u5F5F\u5F60\u5F61\u5F62\u5F63\u5F64\u5F65\u5F66"+
+ "\u5F67\u5F68\u5F69\u5F6A\u5F6B\u5F6C\u5F6D\u5F6E"+
+ "\u5F6F\u5F70\u5F71\u5F72\u5F73\u5F74\u5F75\u5F76"+
+ "\u5F77\u5F78\u5F79\u5F7A\u5F7B\u5F7C\u5F7D\u5F7E"+
+ "\u5F7F\u5F80\u5F81\u5F82\u5F83\u5F84\u5F85\u5F86"+
+ "\u5F87\u5F88\u5F89\u5F8A\u5F8B\u5F8C\u5F8D\u5F8E"+
+ "\u5F8F\u5F90\u5F91\u5F92\u5F93\u5F94\u5F95\u5F96"+
+ "\u5F97\u5F98\u5F99\u5F9A\u5F9B\u5F9C\u5F9D\u5F9E"+
+ "\u5F9F\u5FA0\u5FA1\u5FA2\u5FA3\u5FA4\u5FA5\u5FA6"+
+ "\u5FA7\u5FA8\u5FA9\u5FAA\u5FAB\u5FAC\u5FAD\u5FAE"+
+ "\u5FAF\u5FB0\u5FB1\u5FB2\u5FB3\u5FB4\u5FB5\u5FB6"+
+ "\u5FB7\u5FB8\u5FB9\u5FBA\u5FBB\u5FBC\u5FBD\uFE72"+
+ "\u5FBE\u5FBF\u5FC0\u5FC1\u5FC2\u5FC3\u5FC4\u5FC5"+
+ "\u5FC6\u5FC7\u5FC8\u5FC9\u5FCA\u5FCB\u5FCC\u5FCD"+
+ "\u5FCE\u5FCF\u5FD0\u5FD1\u5FD2\u5FD3\u5FD4\u5FD5"+
+ "\u5FD6\u5FD7\u5FD8\u5FD9\u5FDA\u5FDB\u5FDC\u5FDD"+
+ "\u5FDE\u5FDF\u5FE0\u5FE1\u5FE2\u5FE3\u5FE4\u5FE5"+
+ "\u5FE6\u5FE7\u5FE8\u5FE9\u5FEA\u5FEB\u5FEC\u5FED"+
+ "\u5FEE\u5FEF\u5FF0\u5FF1\u5FF2\u5FF3\u5FF4\u5FF5"+
+ "\u5FF6\u5FF7\u5FF8\u5FF9\u5FFA\u5FFB\u5FFC\u5FFD"+
+ "\u5FFE\u5FFF\u6000\u6001\u6002\u6003\u6004\u6005"+
+ "\u6006\u6007\u6008\u6009\u600A\u600B\u600C\u600D"+
+ "\u600E\u600F\u6010\u6011\u6012\u6013\u6014\u6015"+
+ "\u6016\u6017\u6018\u6019\u601A\u601B\u601C\u601D"+
+ "\u601E\u601F\u6020\u6021\u6022\u6023\u6024\u6025"+
+ "\u6026\u6027\u6028\u6029\u602A\u602B\u602C\u602D"+
+ "\u602E\u602F\u6030\u6031\uFE78\u6032\u6033\u6034"+
+ "\u6035\uFE77\u6036\u6037\u6038\u6039\u603A\u603B"+
+ "\u603C\u603D\u603E\u603F\u6040\u6041\u6042\u6043"+
+ "\u6044\u6045\u6046\u6047\u6048\u6049\u604A\u604B"+
+ "\u604C\u604D\u604E\u604F\u6050\u6051\u6052\u6053"+
+ "\u6054\u6055\u6056\u6057\u6058\u6059\u605A\u605B"+
+ "\u605C\u605D\u605E\u605F\u6060\uFE7A\u6061\u6062"+
+ "\u6063\u6064\u6065\u6066\u6067\u6068\u6069\u606A"+
+ "\u606B\u606C\u606D\u606E\u606F\u6070\u6071\u6072"+
+ "\u6073\u6074\u6075\u6076\u6077\u6078\u6079\u607A"+
+ "\u607B\u607C\u607D\u607E\u607F\u6080\u6081\u6082"+
+ "\u6083\u6084\u6085\u6086\u6087\u6088\u6089\u608A"+
+ "\u608B\u608C\u608D\u608E\u608F\u6090\u6091\u6092"+
+ "\u6093\u6094\u6095\u6096\u6097\u6098\u6099\u609A"+
+ "\u609B\u609C\u609D\u609E\u609F\u60A0\u60A1\u60A2"+
+ "\u60A3\u60A4\u60A5\u60A6\u60A7\u60A8\u60A9\u60AA"+
+ "\u60AB\u60AC\u60AD\u60AE\u60AF\u60B0\u60B1\u60B2"+
+ "\u60B3\u60B4\u60B5\u60B6\u60B7\u60B8\u60B9\u60BA"+
+ "\u60BB\u60BC\u60BD\u60BE\u60BF\u60C0\u60C1\u60C2"+
+ "\u60C3\u60C4\u60C5\u60C6\u60C7\u60C8\u60C9\u60CA"+
+ "\u60CB\u60CC\u60CD\u60CE\u60CF\u60D0\u60D1\u60D2"+
+ "\u60D3\u60D4\u60D5\u60D6\u60D7\u60D8\u60D9\u60DA"+
+ "\u60DB\u60DC\u60DD\u60DE\u60DF\u60E0\u60E1\u60E2"+
+ "\u60E3\u60E4\u60E5\u60E6\u60E7\u60E8\u60E9\u60EA"+
+ "\u60EB\u60EC\u60ED\u60EE\u60EF\u60F0\u60F1\u60F2"+
+ "\u60F3\u60F4\u60F5\u60F6\u60F7\u60F8\u60F9\u60FA"+
+ "\u60FB\u60FC\u60FD\u60FE\u60FF\u6100\u6101\u6102"+
+ "\u6103\u6104\u6105\u6106\u6107\u6108\u6109\u610A"+
+ "\u610B\u610C\u610D\u610E\u610F\u6110\u6111\u6112"+
+ "\u6113\u6114\u6115\u6116\u6117\u6118\u6119\u611A"+
+ "\u611B\u611C\u611D\u611E\u611F\u6120\u6121\u6122"+
+ "\u6123\u6124\u6125\u6126\u6127\u6128\u6129\u612A"+
+ "\u612B\u612C\u612D\u612E\u612F\u6130\u6131\u6132"+
+ "\u6133\u6134\u6135\u6136\u6137\u6138\u6139\u613A"+
+ "\u613B\u613C\u613D\u613E\u613F\u6140\u6141\u6142"+
+ "\u6143\u6144\u6145\u6146\u6147\u6148\u6149\u614A"+
+ "\u614B\u614C\u614D\u614E\u614F\u6150\u6151\u6152"+
+ "\u6153\u6154\u6155\u6156\u6157\u6158\uFE7B\u6159"+
+ "\u615A\u615B\u615C\u615D\u615E\u615F\u6160\u6161"+
+ "\u6162\u6163\u6164\u6165\u6166\u6167\u6168\u6169"+
+ "\u616A\u616B\u616C\u616D\u616E\u616F\u6170\u6171"+
+ "\u6172\u6173\u6174\u6175\u6176\u6177\u6178\u6179"+
+ "\u617A\u617B\u617C\u617D\u617E\u617F\u6180\u6181"+
+ "\u6182\u6183\u6184\u6185\u6186\u6187\u6188\u6189"+
+ "\u618A\u618B\u618C\u618D\u618E\u618F\u6190\u6191"+
+ "\u6192\u6193\u6194\u6195\u6196\u6197\u6198\u6199"+
+ "\u619A\u619B\u619C\u619D\u619E\u619F\u61A0\u61A1"+
+ "\u61A2\u61A3\u61A4\u61A5\u61A6\u61A7\u61A8\u61A9"+
+ "\u61AA\u61AB\u61AC\u61AD\u61AE\u61AF\u61B0\u61B1"+
+ "\u61B2\u61B3\u61B4\u61B5\u61B6\u61B7\u61B8\u61B9"+
+ "\u61BA\u61BB\u61BC\u61BD\u61BE\u61BF\u61C0\u61C1"+
+ "\u61C2\u61C3\u61C4\u61C5\u61C6\u61C7\u61C8\u61C9"+
+ "\u61CA\u61CB\u61CC\u61CD\u61CE\u61CF\u61D0\u61D1"+
+ "\u61D2\u61D3\u61D4\u61D5\u61D6\u61D7\u61D8\u61D9"+
+ "\u61DA\u61DB\u61DC\u61DD\u61DE\u61DF\u61E0\u61E1"+
+ "\u61E2\u61E3\u61E4\u61E5\u61E6\u61E7\u61E8\u61E9"+
+ "\u61EA\u61EB\u61EC\u61ED\u61EE\u61EF\u61F0\u61F1"+
+ "\u61F2\u61F3\u61F4\u61F5\u61F6\u61F7\u61F8\u61F9"+
+ "\u61FA\u61FB\u61FC\u61FD\u61FE\u61FF\u6200\u6201"+
+ "\u6202\u6203\u6204\u6205\u6206\u6207\u6208\u6209"+
+ "\u620A\u620B\u620C\u620D\u620E\u620F\u6210\u6211"+
+ "\u6212\u6213\u6214\u6215\u6216\u6217\u6218\u6219"+
+ "\u621A\u621B\u621C\u621D\u621E\u621F\u6220\u6221"+
+ "\u6222\u6223\u6224\u6225\u6226\u6227\u6228\u6229"+
+ "\u622A\u622B\u622C\u622D\u622E\u622F\u6230\u6231"+
+ "\u6232\u6233\u6234\u6235\u6236\u6237\u6238\u6239"+
+ "\u623A\u623B\u623C\u623D\u623E\u623F\u6240\u6241"+
+ "\u6242\u6243\u6244\u6245\u6246\u6247\u6248\u6249"+
+ "\u624A\u624B\u624C\u624D\u624E\u624F\u6250\u6251"+
+ "\u6252\u6253\u6254\u6255\u6256\u6257\u6258\u6259"+
+ "\u625A\u625B\u625C\u625D\u625E\u625F\u6260\u6261"+
+ "\u6262\u6263\u6264\u6265\u6266\u6267\u6268\u6269"+
+ "\u626A\u626B\u626C\u626D\u626E\u626F\u6270\u6271"+
+ "\u6272\u6273\u6274\u6275\u6276\u6277\u6278\u6279"+
+ "\u627A\u627B\u627C\u627D\u627E\u627F\u6280\u6281"+
+ "\u6282\u6283\u6284\u6285\u6286\u6287\u6288\u6289"+
+ "\u628A\u628B\u628C\u628D\u628E\u628F\u6290\u6291"+
+ "\u6292\u6293\u6294\u6295\u6296\u6297\u6298\u6299"+
+ "\u629A\u629B\u629C\u629D\u629E\u629F\u62A0\u62A1"+
+ "\u62A2\u62A3\u62A4\u62A5\u62A6\u62A7\u62A8\u62A9"+
+ "\u62AA\u62AB\u62AC\u62AD\u62AE\u62AF\u62B0\u62B1"+
+ "\u62B2\u62B3\u62B4\u62B5\u62B6\u62B7\u62B8\u62B9"+
+ "\u62BA\u62BB\u62BC\u62BD\u62BE\u62BF\u62C0\u62C1"+
+ "\u62C2\u62C3\u62C4\u62C5\u62C6\u62C7\u62C8\u62C9"+
+ "\u62CA\u62CB\u62CC\u62CD\uFE7D\u62CE\u62CF\u62D0"+
+ "\u62D1\u62D2\u62D3\u62D4\u62D5\u62D6\u62D7\u62D8"+
+ "\u62D9\u62DA\u62DB\u62DC\u62DD\u62DE\u62DF\u62E0"+
+ "\u62E1\uFE7C\u62E2\u62E3\u62E4\u62E5\u62E6\u62E7"+
+ "\u62E8\u62E9\u62EA\u62EB\u62EC\u62ED\u62EE\u62EF"+
+ "\u62F0\u62F1\u62F2\u62F3\u62F4\u62F5\u62F6\u62F7"+
+ "\u62F8\u62F9\u62FA\u62FB\u62FC\u62FD\u62FE\u62FF"+
+ "\u6300\u6301\u6302\u6303\u6304\u6305\u6306\u6307"+
+ "\u6308\u6309\u630A\u630B\u630C\u630D\u630E\u630F"+
+ "\u6310\u6311\u6312\u6313\u6314\u6315\u6316\u6317"+
+ "\u6318\u6319\u631A\u631B\u631C\u631D\u631E\u631F"+
+ "\u6320\u6321\u6322\u6323\u6324\u6325\u6326\u6327"+
+ "\u6328\u6329\u632A\u632B\u632C\u632D\u632E\u632F"+
+ "\u6330\u6331\u6332\u6333\u6334\u6335\u6336\u6337"+
+ "\u6338\u6339\u633A\u633B\u633C\u633D\u633E\u633F"+
+ "\u6340\u6341\u6342\u6343\u6344\u6345\u6346\u6347"+
+ "\u6348\u6349\u634A\u634B\u634C\u634D\u634E\u634F"+
+ "\u6350\u6351\u6352\u6353\u6354\u6355\u6356\u6357"+
+ "\u6358\u6359\u635A\u635B\u635C\u635D\u635E\u635F"+
+ "\u6360\u6361\u6362\u6363\u6364\u6365\u6366\u6367"+
+ "\u6368\u6369\u636A\u636B\u636C\u636D\u636E\u636F"+
+ "\u6370\u6371\u6372\u6373\u6374\u6375\u6376\u6377"+
+ "\u6378\u6379\u637A\u637B\u637C\u637D\u637E\u637F"+
+ "\u6380\u6381\u6382\u6383\u6384\u6385\u6386\u6387"+
+ "\u6388\u6389\u638A\u638B\u638C\u638D\u638E\u638F"+
+ "\u6390\u6391\u6392\u6393\u6394\u6395\u6396\u6397"+
+ "\u6398\u6399\u639A\u639B\u639C\u639D\u639E\u639F"+
+ "\u63A0\u63A1\u63A2\uFE80\u63A3\u63A4\u63A5\u63A6"+
+ "\u63A7\uFE81\u63A8\u63A9\u63AA\u63AB\u63AC\u63AD"+
+ "\u63AE\u63AF\u63B0\u63B1\u63B2\u63B3\u63B4\u63B5"+
+ "\u63B6\u63B7\u63B8\u63B9\u63BA\u63BB\u63BC\u63BD"+
+ "\u63BE\u63BF\u63C0\u63C1\u63C2\u63C3\u63C4\u63C5"+
+ "\u63C6\u63C7\u63C8\u63C9\u63CA\u63CB\u63CC\u63CD"+
+ "\u63CE\u63CF\u63D0\u63D1\u63D2\u63D3\u63D4\u63D5"+
+ "\u63D6\u63D7\u63D8\u63D9\u63DA\u63DB\u63DC\u63DD"+
+ "\u63DE\u63DF\u63E0\u63E1\u63E2\u63E3\u63E4\u63E5"+
+ "\u63E6\u63E7\u63E8\u63E9\u63EA\u63EB\u63EC\u63ED"+
+ "\u63EE\u63EF\u63F0\u63F1\u63F2\u63F3\u63F4\u63F5"+
+ "\u63F6\u63F7\u63F8\u63F9\uFE82\u63FA\u63FB\u63FC"+
+ "\u63FD\u63FE\u63FF\u6400\u6401\u6402\u6403\u6404"+
+ "\u6405\u6406\u6407\u6408\u6409\uFE83\u640A\u640B"+
+ "\u640C\u640D\u640E\u640F\u6410\u6411\u6412\u6413"+
+ "\u6414\u6415\u6416\u6417\u6418\u6419\u641A\u641B"+
+ "\u641C\u641D\u641E\u641F\u6420\u6421\u6422\u6423"+
+ "\u6424\u6425\u6426\u6427\u6428\u6429\u642A\u642B"+
+ "\u642C\u642D\u642E\u642F\u6430\u6431\u6432\u6433"+
+ "\u6434\u6435\u6436\u6437\u6438\u6439\u643A\u643B"+
+ "\u643C\u643D\u643E\u643F\u6440\u6441\u6442\u6443"+
+ "\u6444\u6445\u6446\u6447\u6448\u6449\u644A\u644B"+
+ "\u644C\u644D\u644E\u644F\u6450\u6451\u6452\u6453"+
+ "\u6454\u6455\u6456\u6457\u6458\u6459\u645A\u645B"+
+ "\u645C\u645D\u645E\u645F\u6460\u6461\u6462\u6463"+
+ "\u6464\u6465\u6466\u6467\u6468\u6469\u646A\u646B"+
+ "\u646C\u646D\u646E\u646F\u6470\u6471\u6472\u6473"+
+ "\u6474\u6475\u6476\u6477\u6478\u6479\u647A\u647B"+
+ "\u647C\u647D\u647E\u647F\u6480\u6481\u6482\u6483"+
+ "\u6484\u6485\u6486\u6487\u6488\u6489\u648A\u648B"+
+ "\u648C\u648D\u648E\u648F\u6490\u6491\u6492\u6493"+
+ "\u6494\u6495\u6496\u6497\u6498\u6499\u649A\u649B"+
+ "\u649C\u649D\u649E\u649F\u64A0\u64A1\u64A2\u64A3"+
+ "\u64A4\u64A5\u64A6\u64A7\u64A8\u64A9\u64AA\u64AB"+
+ "\u64AC\u64AD\u64AE\u64AF\u64B0\u64B1\u64B2\u64B3"+
+ "\u64B4\u64B5\u64B6\u64B7\u64B8\u64B9\u64BA\u64BB"+
+ "\u64BC\u64BD\u64BE\u64BF\u64C0\u64C1\u64C2\u64C3"+
+ "\u64C4\u64C5\u64C6\u64C7\u64C8\u64C9\u64CA\u64CB"+
+ "\u64CC\u64CD\u64CE\u64CF\u64D0\u64D1\u64D2\u64D3"+
+ "\u64D4\u64D5\u64D6\u64D7\u64D8\u64D9\u64DA\u64DB"+
+ "\u64DC\u64DD\u64DE\u64DF\u64E0\u64E1\u64E2\u64E3"+
+ "\u64E4\u64E5\u64E6\u64E7\u64E8\u64E9\u64EA\u64EB"+
+ "\u64EC\u64ED\u64EE\u64EF\u64F0\u64F1\u64F2\u64F3"+
+ "\u64F4\u64F5\u64F6\u64F7\u64F8\u64F9\u64FA\u64FB"+
+ "\u64FC\u64FD\u64FE\u64FF\u6500\u6501\u6502\u6503"+
+ "\u6504\u6505\u6506\u6507\u6508\u6509\u650A\u650B"+
+ "\u650C\u650D\u650E\u650F\u6510\u6511\u6512\u6513"+
+ "\u6514\u6515\u6516\u6517\u6518\u6519\u651A\u651B"+
+ "\u651C\u651D\u651E\u651F\u6520\u6521\u6522\u6523"+
+ "\u6524\u6525\u6526\u6527\u6528\u6529\u652A\u652B"+
+ "\u652C\u652D\u652E\u652F\u6530\u6531\u6532\u6533"+
+ "\u6534\u6535\u6536\u6537\u6538\u6539\u653A\u653B"+
+ "\u653C\u653D\u653E\u653F\u6540\u6541\u6542\u6543"+
+ "\u6544\u6545\u6546\u6547\u6548\u6549\u654A\u654B"+
+ "\u654C\u654D\u654E\u654F\u6550\u6551\u6552\u6553"+
+ "\u6554\u6555\u6556\u6557\u6558\u6559\u655A\u655B"+
+ "\u655C\u655D\u655E\u655F\u6560\u6561\u6562\u6563"+
+ "\u6564\u6565\u6566\u6567\u6568\u6569\u656A\u656B"+
+ "\u656C\u656D\u656E\u656F\u6570\u6571\u6572\u6573"+
+ "\u6574\u6575\u6576\u6577\u6578\u6579\u657A\u657B"+
+ "\u657C\u657D\u657E\u657F\u6580\u6581\u6582\u6583"+
+ "\u6584\u6585\u6586\u6587\u6588\u6589\u658A\u658B"+
+ "\u658C\u658D\u658E\u658F\u6590\u6591\u6592\u6593"+
+ "\u6594\u6595\u6596\u6597\u6598\u6599\u659A\u659B"+
+ "\u659C\u659D\u659E\u659F\u65A0\u65A1\u65A2\u65A3"+
+ "\u65A4\u65A5\u65A6\u65A7\u65A8\u65A9\u65AA\u65AB"+
+ "\u65AC\u65AD\u65AE\u65AF\u65B0\u65B1\u65B2\u65B3"+
+ "\u65B4\u65B5\u65B6\u65B7\u65B8\u65B9\u65BA\u65BB"+
+ "\u65BC\u65BD\u65BE\u65BF\u65C0\u65C1\u65C2\uFE85"+
+ "\u65C3\u65C4\u65C5\u65C6\u65C7\u65C8\u65C9\u65CA"+
+ "\u65CB\u65CC\u65CD\u65CE\u65CF\u65D0\u65D1\u65D2"+
+ "\u65D3\u65D4\u65D5\u65D6\u65D7\u65D8\u65D9\u65DA"+
+ "\u65DB\u65DC\u65DD\u65DE\u65DF\u65E0\u65E1\u65E2"+
+ "\u65E3\u65E4\u65E5\u65E6\u65E7\u65E8\u65E9\u65EA"+
+ "\u65EB\u65EC\u65ED\u65EE\u65EF\u65F0\u65F1\u65F2"+
+ "\u65F3\u65F4\uFE86\u65F5\u65F6\uFE87\u65F7\u65F8"+
+ "\u65F9\u65FA\uFE88\uFE89\u65FB\uFE8A\uFE8B\u65FC"+
+ "\u65FD\u65FE\u65FF\u6600\u6601\u6602\u6603\u6604"+
+ "\u6605\u6606\u6607\u6608\u6609\u660A\u660B\u660C"+
+ "\u660D\u660E\u660F\uFE8D\u6610\u6611\u6612\uFE8C"+
+ "\u6613\u6614\u6615\u6616\u6617\u6618\u6619\u661A"+
+ "\u661B\u661C\u661D\u661E\u661F\u6620\u6621\u6622"+
+ "\u6623\u6624\u6625\u6626\u6627\u6628\uFE8F\uFE8E"+
+ "\u6629\u662A\u662B\u662C\u662D\u662E\u662F\u6630"+
+ "\u6631\u6632\u6633\u6634\u6635\u6636\u6637\u6638"+
+ "\u6639\u663A\u663B\u663C\u663D\u663E\u663F\u6640"+
+ "\u6641\u6642\u6643\u6644\u6645\u6646\u6647\u6648"+
+ "\u6649\u664A\u664B\u664C\u664D\u664E\u664F\u6650"+
+ "\u6651\u6652\u6653\u6654\u6655\u6656\u6657\u6658"+
+ "\u6659\u665A\u665B\u665C\u665D\u665E\u665F\u6660"+
+ "\u6661\u6662\u6663\u6664\u6665\u6666\u6667\u6668"+
+ "\u6669\u666A\u666B\u666C\u666D\u666E\u666F\u6670"+
+ "\u6671\u6672\u6673\u6674\u6675\u6676\u6677\u6678"+
+ "\u6679\u667A\u667B\u667C\u667D\u667E\u667F\u6680"+
+ "\u6681\u6682\u6683\u6684\u6685\u6686\u6687\u6688"+
+ "\u6689\u668A\u668B\u668C\u668D\u668E\u668F\u6690"+
+ "\u6691\u6692\u6693\u6694\u6695\u6696\u6697\u6698"+
+ "\u6699\u669A\u669B\u669C\u669D\u669E\u669F\u66A0"+
+ "\u66A1\u66A2\u66A3\u66A4\u66A5\u66A6\u66A7\u66A8"+
+ "\u66A9\u66AA\u66AB\u66AC\u66AD\u66AE\u66AF\u66B0"+
+ "\u66B1\u66B2\u66B3\u66B4\u66B5\u66B6\u66B7\u66B8"+
+ "\u66B9\u66BA\u66BB\u66BC\u66BD\u66BE\u66BF\u66C0"+
+ "\u66C1\u66C2\u66C3\u66C4\u66C5\u66C6\u66C7\u66C8"+
+ "\u66C9\u66CA\u66CB\u66CC\u66CD\u66CE\u66CF\u66D0"+
+ "\u66D1\u66D2\u66D3\u66D4\u66D5\u66D6\u66D7\u66D8"+
+ "\u66D9\u66DA\u66DB\u66DC\u66DD\u66DE\u66DF\u66E0"+
+ "\u66E1\u66E2\u66E3\u66E4\u66E5\u66E6\u66E7\u66E8"+
+ "\u66E9\u66EA\u66EB\u66EC\u66ED\u66EE\u66EF\u66F0"+
+ "\u66F1\u66F2\u66F3\u66F4\u66F5\u66F6\u66F7\u66F8"+
+ "\u66F9\u66FA\u66FB\u66FC\u66FD\u66FE\u66FF\u6700"+
+ "\u6701\u6702\u6703\u6704\u6705\u6706\u6707\u6708"+
+ "\u6709\u670A\u670B\u670C\u670D\u670E\u670F\u6710"+
+ "\u6711\u6712\u6713\u6714\u6715\u6716\u6717\u6718"+
+ "\u6719\u671A\u671B\u671C\u671D\u671E\u671F\u6720"+
+ "\u6721\u6722\u6723\u6724\u6725\u6726\u6727\u6728"+
+ "\u6729\u672A\u672B\u672C\u672D\u672E\u672F\u6730"+
+ "\u6731\u6732\u6733\u6734\u6735\u6736\u6737\u6738"+
+ "\u6739\u673A\u673B\u673C\u673D\u673E\u673F\u6740"+
+ "\u6741\u6742\u6743\u6744\u6745\u6746\u6747\u6748"+
+ "\u6749\u674A\u674B\u674C\u674D\u674E\u674F\u6750"+
+ "\u6751\u6752\u6753\u6754\u6755\u6756\u6757\u6758"+
+ "\u6759\u675A\u675B\u675C\u675D\u675E\u675F\u6760"+
+ "\u6761\u6762\u6763\u6764\u6765\u6766\u6767\u6768"+
+ "\u6769\u676A\u676B\u676C\u676D\u676E\u676F\u6770"+
+ "\u6771\u6772\u6773\u6774\u6775\u6776\u6777\u6778"+
+ "\u6779\u677A\u677B\u677C\u677D\u677E\u677F\u6780"+
+ "\u6781\u6782\u6783\u6784\u6785\u6786\u6787\u6788"+
+ "\u6789\u678A\u678B\u678C\u678D\u678E\u678F\u6790"+
+ "\u6791\u6792\u6793\u6794\u6795\u6796\u6797\u6798"+
+ "\u6799\u679A\u679B\u679C\u679D\u679E\u679F\u67A0"+
+ "\u67A1\u67A2\u67A3\u67A4\u67A5\u67A6\u67A7\u67A8"+
+ "\u67A9\u67AA\u67AB\u67AC\u67AD\u67AE\u67AF\u67B0"+
+ "\u67B1\u67B2\u67B3\u67B4\u67B5\u67B6\u67B7\u67B8"+
+ "\u67B9\u67BA\u67BB\u67BC\u67BD\u67BE\u67BF\u67C0"+
+ "\u67C1\u67C2\u67C3\u67C4\u67C5\u67C6\u67C7\u67C8"+
+ "\u67C9\u67CA\u67CB\u67CC\u67CD\u67CE\u67CF\u67D0"+
+ "\u67D1\u67D2\u67D3\u67D4\u67D5\u67D6\u67D7\u67D8"+
+ "\u67D9\u67DA\u67DB\u67DC\u67DD\u67DE\u67DF\u67E0"+
+ "\u67E1\u67E2\u67E3\u67E4\u67E5\u67E6\u67E7\u67E8"+
+ "\u67E9\u67EA\u67EB\u67EC\u67ED\u67EE\u67EF\u67F0"+
+ "\u67F1\u67F2\u67F3\u67F4\u67F5\u67F6\u67F7\u67F8"+
+ "\u67F9\u67FA\u67FB\u67FC\u67FD\u67FE\u67FF\u6800"+
+ "\u6801\u6802\u6803\u6804\u6805\u6806\u6807\u6808"+
+ "\u6809\u680A\u680B\u680C\u680D\u680E\u680F\u6810"+
+ "\u6811\u6812\u6813\u6814\u6815\u6816\u6817\u6818"+
+ "\u6819\u681A\u681B\u681C\u681D\u681E\u681F\u6820"+
+ "\u6821\u6822\u6823\u6824\u6825\u6826\u6827\u6828"+
+ "\u6829\u682A\u682B\u682C\u682D\u682E\u682F\u6830"+
+ "\u6831\u6832\u6833\u6834\u6835\u6836\u6837\u6838"+
+ "\u6839\u683A\u683B\u683C\u683D\u683E\u683F\u6840"+
+ "\u6841\u6842\u6843\u6844\u6845\u6846\u6847\u6848"+
+ "\u6849\u684A\u684B\u684C\u684D\u684E\u684F\u6850"+
+ "\u6851\u6852\u6853\u6854\u6855\u6856\u6857\u6858"+
+ "\u6859\u685A\u685B\u685C\u685D\u685E\u685F\u6860"+
+ "\u6861\u6862\u6863\u6864\u6865\u6866\u6867\u6868"+
+ "\u6869\u686A\u686B\u686C\u686D\u686E\u686F\u6870"+
+ "\u6871\u6872\u6873\u6874\u6875\u6876\u6877\u6878"+
+ "\u6879\u687A\u687B\u687C\u687D\u687E\u687F\u6880"+
+ "\u6881\u6882\u6883\u6884\u6885\u6886\u6887\u6888"+
+ "\u6889\u688A\u688B\u688C\u688D\u688E\u688F\u6890"+
+ "\u6891\u6892\u6893\u6894\u6895\u6896\u6897\u6898"+
+ "\u6899\u689A\u689B\u689C\u689D\u689E\u689F\u68A0"+
+ "\u68A1\u68A2\u68A3\u68A4\u68A5\u68A6\u68A7\u68A8"+
+ "\u68A9\u68AA\u68AB\u68AC\u68AD\u68AE\u68AF\u68B0"+
+ "\u68B1\u68B2\u68B3\u68B4\u68B5\u68B6\u68B7\u68B8"+
+ "\u68B9\u68BA\u68BB\u68BC\u68BD\u68BE\u68BF\u68C0"+
+ "\u68C1\u68C2\u68C3\u68C4\u68C5\u68C6\u68C7\u68C8"+
+ "\u68C9\u68CA\u68CB\u68CC\u68CD\u68CE\u68CF\u68D0"+
+ "\u68D1\u68D2\u68D3\u68D4\u68D5\u68D6\u68D7\u68D8"+
+ "\u68D9\u68DA\u68DB\u68DC\u68DD\u68DE\u68DF\u68E0"+
+ "\u68E1\u68E2\u68E3\u68E4\u68E5\u68E6\u68E7\uFE96"+
+ "\u68E8\u68E9\u68EA\u68EB\u68EC\u68ED\u68EE\u68EF"+
+ "\u68F0\u68F1\u68F2\u68F3\u68F4\u68F5\u68F6\u68F7"+
+ "\u68F8\u68F9\u68FA\u68FB\u68FC\u68FD\u68FE\u68FF"+
+ "\u6900\u6901\u6902\u6903\u6904\u6905\u6906\u6907"+
+ "\u6908\u6909\u690A\u690B\u690C\u690D\u690E\uFE93"+
+ "\uFE94\uFE95\uFE97\uFE92\u690F\u6910\u6911\u6912"+
+ "\u6913\u6914\u6915\u6916\u6917\u6918\u6919\u691A"+
+ "\u691B\u691C\u691D\u691E\u691F\u6920\u6921\u6922"+
+ "\u6923\u6924\u6925\u6926\u6927\u6928\u6929\u692A"+
+ "\u692B\u692C\u692D\u692E\u692F\u6930\u6931\u6932"+
+ "\u6933\u6934\u6935\u6936\u6937\u6938\u6939\u693A"+
+ "\u693B\u693C\u693D\u693E\u693F\u6940\u6941\u6942"+
+ "\u6943\u6944\u6945\u6946\u6947\u6948\u6949\u694A"+
+ "\u694B\u694C\u694D\u694E\u694F\u6950\u6951\u6952"+
+ "\u6953\u6954\u6955\u6956\u6957\u6958\u6959\u695A"+
+ "\u695B\u695C\u695D\u695E\u695F\u6960\u6961\u6962"+
+ "\u6963\u6964\u6965\u6966\u6967\u6968\u6969\u696A"+
+ "\u696B\u696C\u696D\u696E\u696F\u6970\u6971\u6972"+
+ "\u6973\u6974\u6975\u6976\u6977\u6978\u6979\u697A"+
+ "\u697B\u697C\u697D\uFE98\uFE99\uFE9A\uFE9B\uFE9C"+
+ "\uFE9D\uFE9E\u697E\u697F\u6980\u6981\u6982\u6983"+
+ "\u6984\u6985\u6986\u6987\u6988\u6989\u698A\u698B"+
+ "\u698C\u698D\u698E\u698F\u6990\u6991\u6992\u6993"+
+ "\u6994\u6995\u6996\u6997\u6998\u6999\u699A\u699B"+
+ "\u699C\u699D\u699E\u699F\u69A0\u69A1\u69A2\u69A3"+
+ "\u69A4\u69A5\u69A6\u69A7\u69A8\u69A9\u69AA\u69AB"+
+ "\u69AC\u69AD\u69AE\u69AF\u69B0\u69B1\u69B2\u69B3"+
+ "\u69B4\u69B5\u69B6\u69B7\u69B8\u69B9\u69BA\u69BB"+
+ "\u69BC\u69BD\u69BE\u69BF\u69C0\u69C1\u69C2\u69C3"+
+ "\u69C4\u69C5\u69C6\u69C7\u69C8\u69C9\u69CA\u69CB"+
+ "\u69CC\u69CD\u69CE\u69CF\u69D0\u69D1\u69D2\u69D3"+
+ "\u69D4\u69D5\u69D6\u69D7\u69D8\u69D9\u69DA\u69DB"+
+ "\u69DC\u69DD\u69DE\u69DF\u69E0\u69E1\u69E2\u69E3"+
+ "\u69E4\u69E5\u69E6\u69E7\u69E8\u69E9\u69EA\u69EB"+
+ "\u69EC\u69ED\u69EE\u69EF\u69F0\u69F1\u69F2\u69F3"+
+ "\u69F4\u69F5\u69F6\u69F7\u69F8\u69F9\u69FA\u69FB"+
+ "\u69FC\u69FD\u69FE\u69FF\u6A00\u6A01\u6A02\u6A03"+
+ "\u6A04\u6A05\u6A06\u6A07\u6A08\u6A09\u6A0A\u6A0B"+
+ "\u6A0C\u6A0D\u6A0E\u6A0F\u6A10\u6A11\uFE9F\u6A12"+
+ "\u6A13\u6A14\u6A15\u6A16\u6A17\u6A18\u6A19\u6A1A"+
+ "\u6A1B\u6A1C\u6A1D\u6A1E\u6A1F\u6A20\u6A21\u6A22"+
+ "\u6A23\u6A24\u6A25\u6A26\u6A27\u6A28\u6A29\u6A2A"+
+ "\u6A2B\u6A2C\u6A2D\u6A2E\u6A2F\u6A30\u6A31\u6A32"+
+ "\u6A33\u6A34\u6A35\u6A36\u6A37\u6A38\u6A39\u6A3A"+
+ "\u6A3B\u6A3C\u6A3D\u6A3E\u6A3F\u6A40\u6A41\u6A42"+
+ "\u6A43\u6A44\u6A45\u6A46\u6A47\u6A48\u6A49\u6A4A"+
+ "\u6A4B\u6A4C\u6A4D\u6A4E\u6A4F\u6A50\u6A51\u6A52"+
+ "\u6A53\u6A54\u6A55\u6A56\u6A57\u6A58\u6A59\u6A5A"+
+ "\u6A5B\u6A5C\u6A5D\u6A5E\u6A5F\u6A60\u6A61\u6A62"+
+ "\uD2BB\uB6A1\u8140\uC6DF\u8141\u8142\u8143\uCDF2"+
+ "\uD5C9\uC8FD\uC9CF\uCFC2\uD8A2\uB2BB\uD3EB\u8144"+
+ "\uD8A4\uB3F3\u8145\uD7A8\uC7D2\uD8A7\uCAC0\u8146"+
+ "\uC7F0\uB1FB\uD2B5\uB4D4\uB6AB\uCBBF\uD8A9\u8147"+
+ "\u8148\u8149\uB6AA\u814A\uC1BD\uD1CF\u814B\uC9A5"+
+ "\uD8AD\u814C\uB8F6\uD1BE\uE3DC\uD6D0\u814D\u814E"+
+ "\uB7E1\u814F\uB4AE\u8150\uC1D9\u8151\uD8BC\u8152"+
+ "\uCDE8\uB5A4\uCEAA\uD6F7\u8153\uC0F6\uBED9\uD8AF"+
+ "\u8154\u8155\u8156\uC4CB\u8157\uBEC3\u8158\uD8B1"+
+ "\uC3B4\uD2E5\u8159\uD6AE\uCEDA\uD5A7\uBAF5\uB7A6"+
+ "\uC0D6\u815A\uC6B9\uC5D2\uC7C7\u815B\uB9D4\u815C"+
+ "\uB3CB\uD2D2\u815D\u815E\uD8BF\uBEC5\uC6F2\uD2B2"+
+ "\uCFB0\uCFE7\u815F\u8160\u8161\u8162\uCAE9\u8163"+
+ "\u8164\uD8C0\u8165\u8166\u8167\u8168\u8169\u816A"+
+ "\uC2F2\uC2D2\u816B\uC8E9\u816C\u816D\u816E\u816F"+
+ "\u8170\u8171\u8172\u8173\u8174\u8175\uC7AC\u8176"+
+ "\u8177\u8178\u8179\u817A\u817B\u817C\uC1CB\u817D"+
+ "\uD3E8\uD5F9\u817E\uCAC2\uB6FE\uD8A1\uD3DA\uBFF7"+
+ "\u8180\uD4C6\uBBA5\uD8C1\uCEE5\uBEAE\u8181\u8182"+
+ "\uD8A8\u8183\uD1C7\uD0A9\u8184\u8185\u8186\uD8BD"+
+ "\uD9EF\uCDF6\uBFBA\u8187\uBDBB\uBAA5\uD2E0\uB2FA"+
+ "\uBAE0\uC4B6\u8188\uCFED\uBEA9\uCDA4\uC1C1\u8189"+
+ "\u818A\u818B\uC7D7\uD9F1\u818C\uD9F4\u818D\u818E"+
+ "\u818F\u8190\uC8CB\uD8E9\u8191\u8192\u8193\uD2DA"+
+ "\uCAB2\uC8CA\uD8EC\uD8EA\uD8C6\uBDF6\uC6CD\uB3F0"+
+ "\u8194\uD8EB\uBDF1\uBDE9\u8195\uC8D4\uB4D3\u8196"+
+ "\u8197\uC2D8\u8198\uB2D6\uD7D0\uCACB\uCBFB\uD5CC"+
+ "\uB8B6\uCFC9\u8199\u819A\u819B\uD9DA\uD8F0\uC7AA"+
+ "\u819C\uD8EE\u819D\uB4FA\uC1EE\uD2D4\u819E\u819F"+
+ "\uD8ED\u81A0\uD2C7\uD8EF\uC3C7\u81A1\u81A2\u81A3"+
+ "\uD1F6\u81A4\uD6D9\uD8F2\u81A5\uD8F5\uBCFE\uBCDB"+
+ "\u81A6\u81A7\u81A8\uC8CE\u81A9\uB7DD\u81AA\uB7C2"+
+ "\u81AB\uC6F3\u81AC\u81AD\u81AE\u81AF\u81B0\u81B1"+
+ "\u81B2\uD8F8\uD2C1\u81B3\u81B4\uCEE9\uBCBF\uB7FC"+
+ "\uB7A5\uD0DD\u81B5\u81B6\u81B7\u81B8\u81B9\uD6DA"+
+ "\uD3C5\uBBEF\uBBE1\uD8F1\u81BA\u81BB\uC9A1\uCEB0"+
+ "\uB4AB\u81BC\uD8F3\u81BD\uC9CB\uD8F6\uC2D7\uD8F7"+
+ "\u81BE\u81BF\uCEB1\uD8F9\u81C0\u81C1\u81C2\uB2AE"+
+ "\uB9C0\u81C3\uD9A3\u81C4\uB0E9\u81C5\uC1E6\u81C6"+
+ "\uC9EC\u81C7\uCBC5\u81C8\uCBC6\uD9A4\u81C9\u81CA"+
+ "\u81CB\u81CC\u81CD\uB5E8\u81CE\u81CF\uB5AB\u81D0"+
+ "\u81D1\u81D2\u81D3\u81D4\u81D5\uCEBB\uB5CD\uD7A1"+
+ "\uD7F4\uD3D3\u81D6\uCCE5\u81D7\uBACE\u81D8\uD9A2"+
+ "\uD9DC\uD3E0\uD8FD\uB7F0\uD7F7\uD8FE\uD8FA\uD9A1"+
+ "\uC4E3\u81D9\u81DA\uD3B6\uD8F4\uD9DD\u81DB\uD8FB"+
+ "\u81DC\uC5E5\u81DD\u81DE\uC0D0\u81DF\u81E0\uD1F0"+
+ "\uB0DB\u81E1\u81E2\uBCD1\uD9A6\u81E3\uD9A5\u81E4"+
+ "\u81E5\u81E6\u81E7\uD9AC\uD9AE\u81E8\uD9AB\uCAB9"+
+ "\u81E9\u81EA\u81EB\uD9A9\uD6B6\u81EC\u81ED\u81EE"+
+ "\uB3DE\uD9A8\u81EF\uC0FD\u81F0\uCACC\u81F1\uD9AA"+
+ "\u81F2\uD9A7\u81F3\u81F4\uD9B0\u81F5\u81F6\uB6B1"+
+ "\u81F7\u81F8\u81F9\uB9A9\u81FA\uD2C0\u81FB\u81FC"+
+ "\uCFC0\u81FD\u81FE\uC2C2\u8240\uBDC4\uD5EC\uB2E0"+
+ "\uC7C8\uBFEB\uD9AD\u8241\uD9AF\u8242\uCEEA\uBAEE"+
+ "\u8243\u8244\u8245\u8246\u8247\uC7D6\u8248\u8249"+
+ "\u824A\u824B\u824C\u824D\u824E\u824F\u8250\uB1E3"+
+ "\u8251\u8252\u8253\uB4D9\uB6ED\uD9B4\u8254\u8255"+
+ "\u8256\u8257\uBFA1\u8258\u8259\u825A\uD9DE\uC7CE"+
+ "\uC0FE\uD9B8\u825B\u825C\u825D\u825E\u825F\uCBD7"+
+ "\uB7FD\u8260\uD9B5\u8261\uD9B7\uB1A3\uD3E1\uD9B9"+
+ "\u8262\uD0C5\u8263\uD9B6\u8264\u8265\uD9B1\u8266"+
+ "\uD9B2\uC1A9\uD9B3\u8267\u8268\uBCF3\uD0DE\uB8A9"+
+ "\u8269\uBEE3\u826A\uD9BD\u826B\u826C\u826D\u826E"+
+ "\uD9BA\u826F\uB0B3\u8270\u8271\u8272\uD9C2\u8273";
+
+ private final static String innerEncoderIndex5=
+ "\u8274\u8275\u8276\u8277\u8278\u8279\u827A\u827B"+
+ "\u827C\u827D\u827E\u8280\uD9C4\uB1B6\u8281\uD9BF"+
+ "\u8282\u8283\uB5B9\u8284\uBEF3\u8285\u8286\u8287"+
+ "\uCCC8\uBAF2\uD2D0\u8288\uD9C3\u8289\u828A\uBDE8"+
+ "\u828B\uB3AB\u828C\u828D\u828E\uD9C5\uBEEB\u828F"+
+ "\uD9C6\uD9BB\uC4DF\u8290\uD9BE\uD9C1\uD9C0\u8291"+
+ "\u8292\u8293\u8294\u8295\u8296\u8297\u8298\u8299"+
+ "\u829A\u829B\uD5AE\u829C\uD6B5\u829D\uC7E3\u829E"+
+ "\u829F\u82A0\u82A1\uD9C8\u82A2\u82A3\u82A4\uBCD9"+
+ "\uD9CA\u82A5\u82A6\u82A7\uD9BC\u82A8\uD9CB\uC6AB"+
+ "\u82A9\u82AA\u82AB\u82AC\u82AD\uD9C9\u82AE\u82AF"+
+ "\u82B0\u82B1\uD7F6\u82B2\uCDA3\u82B3\u82B4\u82B5"+
+ "\u82B6\u82B7\u82B8\u82B9\u82BA\uBDA1\u82BB\u82BC"+
+ "\u82BD\u82BE\u82BF\u82C0\uD9CC\u82C1\u82C2\u82C3"+
+ "\u82C4\u82C5\u82C6\u82C7\u82C8\u82C9\uC5BC\uCDB5"+
+ "\u82CA\u82CB\u82CC\uD9CD\u82CD\u82CE\uD9C7\uB3A5"+
+ "\uBFFE\u82CF\u82D0\u82D1\u82D2\uB8B5\u82D3\u82D4"+
+ "\uC0FC\u82D5\u82D6\u82D7\u82D8\uB0F8\u82D9\u82DA"+
+ "\u82DB\u82DC\u82DD\u82DE\u82DF\u82E0\u82E1\u82E2"+
+ "\u82E3\u82E4\u82E5\u82E6\u82E7\u82E8\u82E9\u82EA"+
+ "\u82EB\u82EC\u82ED\uB4F6\u82EE\uD9CE\u82EF\uD9CF"+
+ "\uB4A2\uD9D0\u82F0\u82F1\uB4DF\u82F2\u82F3\u82F4"+
+ "\u82F5\u82F6\uB0C1\u82F7\u82F8\u82F9\u82FA\u82FB"+
+ "\u82FC\u82FD\uD9D1\uC9B5\u82FE\u8340\u8341\u8342"+
+ "\u8343\u8344\u8345\u8346\u8347\u8348\u8349\u834A"+
+ "\u834B\u834C\u834D\u834E\u834F\u8350\u8351\uCFF1"+
+ "\u8352\u8353\u8354\u8355\u8356\u8357\uD9D2\u8358"+
+ "\u8359\u835A\uC1C5\u835B\u835C\u835D\u835E\u835F"+
+ "\u8360\u8361\u8362\u8363\u8364\u8365\uD9D6\uC9AE"+
+ "\u8366\u8367\u8368\u8369\uD9D5\uD9D4\uD9D7\u836A"+
+ "\u836B\u836C\u836D\uCBDB\u836E\uBDA9\u836F\u8370"+
+ "\u8371\u8372\u8373\uC6A7\u8374\u8375\u8376\u8377"+
+ "\u8378\u8379\u837A\u837B\u837C\u837D\uD9D3\uD9D8"+
+ "\u837E\u8380\u8381\uD9D9\u8382\u8383\u8384\u8385"+
+ "\u8386\u8387\uC8E5\u8388\u8389\u838A\u838B\u838C"+
+ "\u838D\u838E\u838F\u8390\u8391\u8392\u8393\u8394"+
+ "\u8395\uC0DC\u8396\u8397\u8398\u8399\u839A\u839B"+
+ "\u839C\u839D\u839E\u839F\u83A0\u83A1\u83A2\u83A3"+
+ "\u83A4\u83A5\u83A6\u83A7\u83A8\u83A9\u83AA\u83AB"+
+ "\u83AC\u83AD\u83AE\u83AF\u83B0\u83B1\u83B2\uB6F9"+
+ "\uD8A3\uD4CA\u83B3\uD4AA\uD0D6\uB3E4\uD5D7\u83B4"+
+ "\uCFC8\uB9E2\u83B5\uBFCB\u83B6\uC3E2\u83B7\u83B8"+
+ "\u83B9\uB6D2\u83BA\u83BB\uCDC3\uD9EE\uD9F0\u83BC"+
+ "\u83BD\u83BE\uB5B3\u83BF\uB6B5\u83C0\u83C1\u83C2"+
+ "\u83C3\u83C4\uBEA4\u83C5\u83C6\uC8EB\u83C7\u83C8"+
+ "\uC8AB\u83C9\u83CA\uB0CB\uB9AB\uC1F9\uD9E2\u83CB"+
+ "\uC0BC\uB9B2\u83CC\uB9D8\uD0CB\uB1F8\uC6E4\uBEDF"+
+ "\uB5E4\uD7C8\u83CD\uD1F8\uBCE6\uCADE\u83CE\u83CF"+
+ "\uBCBD\uD9E6\uD8E7\u83D0\u83D1\uC4DA\u83D2\u83D3"+
+ "\uB8D4\uC8BD\u83D4\u83D5\uB2E1\uD4D9\u83D6\u83D7"+
+ "\u83D8\u83D9\uC3B0\u83DA\u83DB\uC3E1\uDAA2\uC8DF"+
+ "\u83DC\uD0B4\u83DD\uBEFC\uC5A9\u83DE\u83DF\u83E0"+
+ "\uB9DA\u83E1\uDAA3\u83E2\uD4A9\uDAA4\u83E3\u83E4"+
+ "\u83E5\u83E6\u83E7\uD9FB\uB6AC\u83E8\u83E9\uB7EB"+
+ "\uB1F9\uD9FC\uB3E5\uBEF6\u83EA\uBFF6\uD2B1\uC0E4"+
+ "\u83EB\u83EC\u83ED\uB6B3\uD9FE\uD9FD\u83EE\u83EF"+
+ "\uBEBB\u83F0\u83F1\u83F2\uC6E0\u83F3\uD7BC\uDAA1"+
+ "\u83F4\uC1B9\u83F5\uB5F2\uC1E8\u83F6\u83F7\uBCF5"+
+ "\u83F8\uB4D5\u83F9\u83FA\u83FB\u83FC\u83FD\u83FE"+
+ "\u8440\u8441\u8442\uC1DD\u8443\uC4FD\u8444\u8445"+
+ "\uBCB8\uB7B2\u8446\u8447\uB7EF\u8448\u8449\u844A"+
+ "\u844B\u844C\u844D\uD9EC\u844E\uC6BE\u844F\uBFAD"+
+ "\uBBCB\u8450\u8451\uB5CA\u8452\uDBC9\uD0D7\u8453"+
+ "\uCDB9\uB0BC\uB3F6\uBBF7\uDBCA\uBAAF\u8454\uD4E4"+
+ "\uB5B6\uB5F3\uD8D6\uC8D0\u8455\u8456\uB7D6\uC7D0"+
+ "\uD8D7\u8457\uBFAF\u8458\u8459\uDBBB\uD8D8\u845A"+
+ "\u845B\uD0CC\uBBAE\u845C\u845D\u845E\uEBBE\uC1D0"+
+ "\uC1F5\uD4F2\uB8D5\uB4B4\u845F\uB3F5\u8460\u8461"+
+ "\uC9BE\u8462\u8463\u8464\uC5D0\u8465\u8466\u8467"+
+ "\uC5D9\uC0FB\u8468\uB1F0\u8469\uD8D9\uB9CE\u846A"+
+ "\uB5BD\u846B\u846C\uD8DA\u846D\u846E\uD6C6\uCBA2"+
+ "\uC8AF\uC9B2\uB4CC\uBFCC\u846F\uB9F4\u8470\uD8DB"+
+ "\uD8DC\uB6E7\uBCC1\uCCEA\u8471\u8472\u8473\u8474"+
+ "\u8475\u8476\uCFF7\u8477\uD8DD\uC7B0\u8478\u8479"+
+ "\uB9D0\uBDA3\u847A\u847B\uCCDE\u847C\uC6CA\u847D"+
+ "\u847E\u8480\u8481\u8482\uD8E0\u8483\uD8DE\u8484"+
+ "\u8485\uD8DF\u8486\u8487\u8488\uB0FE\u8489\uBEE7"+
+ "\u848A\uCAA3\uBCF4\u848B\u848C\u848D\u848E\uB8B1"+
+ "\u848F\u8490\uB8EE\u8491\u8492\u8493\u8494\u8495"+
+ "\u8496\u8497\u8498\u8499\u849A\uD8E2\u849B\uBDCB"+
+ "\u849C\uD8E4\uD8E3\u849D\u849E\u849F\u84A0\u84A1"+
+ "\uC5FC\u84A2\u84A3\u84A4\u84A5\u84A6\u84A7\u84A8"+
+ "\uD8E5\u84A9\u84AA\uD8E6\u84AB\u84AC\u84AD\u84AE"+
+ "\u84AF\u84B0\u84B1\uC1A6\u84B2\uC8B0\uB0EC\uB9A6"+
+ "\uBCD3\uCEF1\uDBBD\uC1D3\u84B3\u84B4\u84B5\u84B6"+
+ "\uB6AF\uD6FA\uC5AC\uBDD9\uDBBE\uDBBF\u84B7\u84B8"+
+ "\u84B9\uC0F8\uBEA2\uC0CD\u84BA\u84BB\u84BC\u84BD"+
+ "\u84BE\u84BF\u84C0\u84C1\u84C2\u84C3\uDBC0\uCAC6"+
+ "\u84C4\u84C5\u84C6\uB2AA\u84C7\u84C8\u84C9\uD3C2"+
+ "\u84CA\uC3E3\u84CB\uD1AB\u84CC\u84CD\u84CE\u84CF"+
+ "\uDBC2\u84D0\uC0D5\u84D1\u84D2\u84D3\uDBC3\u84D4"+
+ "\uBFB1\u84D5\u84D6\u84D7\u84D8\u84D9\u84DA\uC4BC"+
+ "\u84DB\u84DC\u84DD\u84DE\uC7DA\u84DF\u84E0\u84E1"+
+ "\u84E2\u84E3\u84E4\u84E5\u84E6\u84E7\u84E8\u84E9"+
+ "\uDBC4\u84EA\u84EB\u84EC\u84ED\u84EE\u84EF\u84F0"+
+ "\u84F1\uD9E8\uC9D7\u84F2\u84F3\u84F4\uB9B4\uCEF0"+
+ "\uD4C8\u84F5\u84F6\u84F7\u84F8\uB0FC\uB4D2\u84F9"+
+ "\uD0D9\u84FA\u84FB\u84FC\u84FD\uD9E9\u84FE\uDECB"+
+ "\uD9EB\u8540\u8541\u8542\u8543\uD8B0\uBBAF\uB1B1"+
+ "\u8544\uB3D7\uD8CE\u8545\u8546\uD4D1\u8547\u8548"+
+ "\uBDB3\uBFEF\u8549\uCFBB\u854A\u854B\uD8D0\u854C"+
+ "\u854D\u854E\uB7CB\u854F\u8550\u8551\uD8D1\u8552"+
+ "\u8553\u8554\u8555\u8556\u8557\u8558\u8559\u855A"+
+ "\u855B\uC6A5\uC7F8\uD2BD\u855C\u855D\uD8D2\uC4E4"+
+ "\u855E\uCAAE\u855F\uC7A7\u8560\uD8A6\u8561\uC9FD"+
+ "\uCEE7\uBBDC\uB0EB\u8562\u8563\u8564\uBBAA\uD0AD"+
+ "\u8565\uB1B0\uD7E4\uD7BF\u8566\uB5A5\uC2F4\uC4CF"+
+ "\u8567\u8568\uB2A9\u8569\uB2B7\u856A\uB1E5\uDFB2"+
+ "\uD5BC\uBFA8\uC2AC\uD8D5\uC2B1\u856B\uD8D4\uCED4"+
+ "\u856C\uDAE0\u856D\uCEC0\u856E\u856F\uD8B4\uC3AE"+
+ "\uD3A1\uCEA3\u8570\uBCB4\uC8B4\uC2D1\u8571\uBEED"+
+ "\uD0B6\u8572\uDAE1\u8573\u8574\u8575\u8576\uC7E4"+
+ "\u8577\u8578\uB3A7\u8579\uB6F2\uCCFC\uC0FA\u857A"+
+ "\u857B\uC0F7\u857C\uD1B9\uD1E1\uD8C7\u857D\u857E"+
+ "\u8580\u8581\u8582\u8583\u8584\uB2DE\u8585\u8586"+
+ "\uC0E5\u8587\uBAF1\u8588\u8589\uD8C8\u858A\uD4AD"+
+ "\u858B\u858C\uCFE1\uD8C9\u858D\uD8CA\uCFC3\u858E"+
+ "\uB3F8\uBEC7\u858F\u8590\u8591\u8592\uD8CB\u8593"+
+ "\u8594\u8595\u8596\u8597\u8598\u8599\uDBCC\u859A"+
+ "\u859B\u859C\u859D\uC8A5\u859E\u859F\u85A0\uCFD8"+
+ "\u85A1\uC8FE\uB2CE\u85A2\u85A3\u85A4\u85A5\u85A6"+
+ "\uD3D6\uB2E6\uBCB0\uD3D1\uCBAB\uB7B4\u85A7\u85A8"+
+ "\u85A9\uB7A2\u85AA\u85AB\uCAE5\u85AC\uC8A1\uCADC"+
+ "\uB1E4\uD0F0\u85AD\uC5D1\u85AE\u85AF\u85B0\uDBC5"+
+ "\uB5FE\u85B1\u85B2\uBFDA\uB9C5\uBEE4\uC1ED\u85B3"+
+ "\uDFB6\uDFB5\uD6BB\uBDD0\uD5D9\uB0C8\uB6A3\uBFC9"+
+ "\uCCA8\uDFB3\uCAB7\uD3D2\u85B4\uD8CF\uD2B6\uBAC5"+
+ "\uCBBE\uCCBE\u85B5\uDFB7\uB5F0\uDFB4\u85B6\u85B7"+
+ "\u85B8\uD3F5\u85B9\uB3D4\uB8F7\u85BA\uDFBA\u85BB"+
+ "\uBACF\uBCAA\uB5F5\u85BC\uCDAC\uC3FB\uBAF3\uC0F4"+
+ "\uCDC2\uCFF2\uDFB8\uCFC5\u85BD\uC2C0\uDFB9\uC2F0"+
+ "\u85BE\u85BF\u85C0\uBEFD\u85C1\uC1DF\uCDCC\uD2F7"+
+ "\uB7CD\uDFC1\u85C2\uDFC4\u85C3\u85C4\uB7F1\uB0C9"+
+ "\uB6D6\uB7D4\u85C5\uBAAC\uCCFD\uBFD4\uCBB1\uC6F4"+
+ "\u85C6\uD6A8\uDFC5\u85C7\uCEE2\uB3B3\u85C8\u85C9"+
+ "\uCEFC\uB4B5\u85CA\uCEC7\uBAF0\u85CB\uCEE1\u85CC"+
+ "\uD1BD\u85CD\u85CE\uDFC0\u85CF\u85D0\uB4F4\u85D1"+
+ "\uB3CA\u85D2\uB8E6\uDFBB\u85D3\u85D4\u85D5\u85D6"+
+ "\uC4C5\u85D7\uDFBC\uDFBD\uDFBE\uC5BB\uDFBF\uDFC2"+
+ "\uD4B1\uDFC3\u85D8\uC7BA\uCED8\u85D9\u85DA\u85DB"+
+ "\u85DC\u85DD\uC4D8\u85DE\uDFCA\u85DF\uDFCF\u85E0"+
+ "\uD6DC\u85E1\u85E2\u85E3\u85E4\u85E5\u85E6\u85E7"+
+ "\u85E8\uDFC9\uDFDA\uCEB6\u85E9\uBAC7\uDFCE\uDFC8"+
+ "\uC5DE\u85EA\u85EB\uC9EB\uBAF4\uC3FC\u85EC\u85ED"+
+ "\uBED7\u85EE\uDFC6\u85EF\uDFCD\u85F0\uC5D8\u85F1"+
+ "\u85F2\u85F3\u85F4\uD5A6\uBACD\u85F5\uBECC\uD3BD"+
+ "\uB8C0\u85F6\uD6E4\u85F7\uDFC7\uB9BE\uBFA7\u85F8"+
+ "\u85F9\uC1FC\uDFCB\uDFCC\u85FA\uDFD0\u85FB\u85FC"+
+ "\u85FD\u85FE\u8640\uDFDB\uDFE5\u8641\uDFD7\uDFD6"+
+ "\uD7C9\uDFE3\uDFE4\uE5EB\uD2A7\uDFD2\u8642\uBFA9"+
+ "\u8643\uD4DB\u8644\uBFC8\uDFD4\u8645\u8646\u8647"+
+ "\uCFCC\u8648\u8649\uDFDD\u864A\uD1CA\u864B\uDFDE"+
+ "\uB0A7\uC6B7\uDFD3\u864C\uBAE5\u864D\uB6DF\uCDDB"+
+ "\uB9FE\uD4D5\u864E\u864F\uDFDF\uCFEC\uB0A5\uDFE7"+
+ "\uDFD1\uD1C6\uDFD5\uDFD8\uDFD9\uDFDC\u8650\uBBA9"+
+ "\u8651\uDFE0\uDFE1\u8652\uDFE2\uDFE6\uDFE8\uD3B4"+
+ "\u8653\u8654\u8655\u8656\u8657\uB8E7\uC5B6\uDFEA"+
+ "\uC9DA\uC1A8\uC4C4\u8658\u8659\uBFDE\uCFF8\u865A"+
+ "\u865B\u865C\uD5DC\uDFEE\u865D\u865E\u865F\u8660"+
+ "\u8661\u8662\uB2B8\u8663\uBADF\uDFEC\u8664\uDBC1"+
+ "\u8665\uD1E4\u8666\u8667\u8668\u8669\uCBF4\uB4BD"+
+ "\u866A\uB0A6\u866B\u866C\u866D\u866E\u866F\uDFF1"+
+ "\uCCC6\uDFF2\u8670\u8671\uDFED\u8672\u8673\u8674"+
+ "\u8675\u8676\u8677\uDFE9\u8678\u8679\u867A\u867B"+
+ "\uDFEB\u867C\uDFEF\uDFF0\uBBBD\u867D\u867E\uDFF3"+
+ "\u8680\u8681\uDFF4\u8682\uBBA3\u8683\uCADB\uCEA8"+
+ "\uE0A7\uB3AA\u8684\uE0A6\u8685\u8686\u8687\uE0A1"+
+ "\u8688\u8689\u868A\u868B\uDFFE\u868C\uCDD9\uDFFC"+
+ "\u868D\uDFFA\u868E\uBFD0\uD7C4\u868F\uC9CC\u8690"+
+ "\u8691\uDFF8\uB0A1\u8692\u8693\u8694\u8695\u8696"+
+ "\uDFFD\u8697\u8698\u8699\u869A\uDFFB\uE0A2\u869B"+
+ "\u869C\u869D\u869E\u869F\uE0A8\u86A0\u86A1\u86A2"+
+ "\u86A3\uB7C8\u86A4\u86A5\uC6A1\uC9B6\uC0B2\uDFF5"+
+ "\u86A6\u86A7\uC5BE\u86A8\uD8C4\uDFF9\uC4F6\u86A9"+
+ "\u86AA\u86AB\u86AC\u86AD\u86AE\uE0A3\uE0A4\uE0A5"+
+ "\uD0A5\u86AF\u86B0\uE0B4\uCCE4\u86B1\uE0B1\u86B2"+
+ "\uBFA6\uE0AF\uCEB9\uE0AB\uC9C6\u86B3\u86B4\uC0AE"+
+ "\uE0AE\uBAED\uBAB0\uE0A9\u86B5\u86B6\u86B7\uDFF6"+
+ "\u86B8\uE0B3\u86B9\u86BA\uE0B8\u86BB\u86BC\u86BD"+
+ "\uB4AD\uE0B9\u86BE\u86BF\uCFB2\uBAC8\u86C0\uE0B0"+
+ "\u86C1\u86C2\u86C3\u86C4\u86C5\u86C6\u86C7\uD0FA"+
+ "\u86C8\u86C9\u86CA\u86CB\u86CC\u86CD\u86CE\u86CF"+
+ "\u86D0\uE0AC\u86D1\uD4FB\u86D2\uDFF7\u86D3\uC5E7"+
+ "\u86D4\uE0AD\u86D5\uD3F7\u86D6\uE0B6\uE0B7\u86D7"+
+ "\u86D8\u86D9\u86DA\u86DB\uE0C4\uD0E1\u86DC\u86DD"+
+ "\u86DE\uE0BC\u86DF\u86E0\uE0C9\uE0CA\u86E1\u86E2"+
+ "\u86E3\uE0BE\uE0AA\uC9A4\uE0C1\u86E4\uE0B2\u86E5"+
+ "\u86E6\u86E7\u86E8\u86E9\uCAC8\uE0C3\u86EA\uE0B5"+
+ "\u86EB\uCECB\u86EC\uCBC3\uE0CD\uE0C6\uE0C2\u86ED"+
+ "\uE0CB\u86EE\uE0BA\uE0BF\uE0C0\u86EF\u86F0\uE0C5"+
+ "\u86F1\u86F2\uE0C7\uE0C8\u86F3\uE0CC\u86F4\uE0BB"+
+ "\u86F5\u86F6\u86F7\u86F8\u86F9\uCBD4\uE0D5\u86FA"+
+ "\uE0D6\uE0D2\u86FB\u86FC\u86FD\u86FE\u8740\u8741"+
+ "\uE0D0\uBCCE\u8742\u8743\uE0D1\u8744\uB8C2\uD8C5"+
+ "\u8745\u8746\u8747\u8748\u8749\u874A\u874B\u874C"+
+ "\uD0EA\u874D\u874E\uC2EF\u874F\u8750\uE0CF\uE0BD"+
+ "\u8751\u8752\u8753\uE0D4\uE0D3\u8754\u8755\uE0D7"+
+ "\u8756\u8757\u8758\u8759\uE0DC\uE0D8\u875A\u875B"+
+ "\u875C\uD6F6\uB3B0\u875D\uD7EC\u875E\uCBBB\u875F"+
+ "\u8760\uE0DA\u8761\uCEFB\u8762\u8763\u8764\uBAD9"+
+ "\u8765\u8766\u8767\u8768\u8769\u876A\u876B\u876C"+
+ "\u876D\u876E\u876F\u8770\uE0E1\uE0DD\uD2AD\u8771"+
+ "\u8772\u8773\u8774\u8775\uE0E2\u8776\u8777\uE0DB"+
+ "\uE0D9\uE0DF\u8778\u8779\uE0E0\u877A\u877B\u877C"+
+ "\u877D\u877E\uE0DE\u8780\uE0E4\u8781\u8782\u8783"+
+ "\uC6F7\uD8AC\uD4EB\uE0E6\uCAC9\u8784\u8785\u8786"+
+ "\u8787\uE0E5\u8788\u8789\u878A\u878B\uB8C1\u878C"+
+ "\u878D\u878E\u878F\uE0E7\uE0E8\u8790\u8791\u8792"+
+ "\u8793\u8794\u8795\u8796\u8797\uE0E9\uE0E3\u8798"+
+ "\u8799\u879A\u879B\u879C\u879D\u879E\uBABF\uCCE7"+
+ "\u879F\u87A0\u87A1\uE0EA\u87A2\u87A3\u87A4\u87A5"+
+ "\u87A6\u87A7\u87A8\u87A9\u87AA\u87AB\u87AC\u87AD"+
+ "\u87AE\u87AF\u87B0\uCFF9\u87B1\u87B2\u87B3\u87B4"+
+ "\u87B5\u87B6\u87B7\u87B8\u87B9\u87BA\u87BB\uE0EB"+
+ "\u87BC\u87BD\u87BE\u87BF\u87C0\u87C1\u87C2\uC8C2"+
+ "\u87C3\u87C4\u87C5\u87C6\uBDC0\u87C7\u87C8\u87C9"+
+ "\u87CA\u87CB\u87CC\u87CD\u87CE\u87CF\u87D0\u87D1"+
+ "\u87D2\u87D3\uC4D2\u87D4\u87D5\u87D6\u87D7\u87D8"+
+ "\u87D9\u87DA\u87DB\u87DC\uE0EC\u87DD\u87DE\uE0ED"+
+ "\u87DF\u87E0\uC7F4\uCBC4\u87E1\uE0EE\uBBD8\uD8B6"+
+ "\uD2F2\uE0EF\uCDC5\u87E2\uB6DA\u87E3\u87E4\u87E5"+
+ "\u87E6\u87E7\u87E8\uE0F1\u87E9\uD4B0\u87EA\u87EB"+
+ "\uC0A7\uB4D1\u87EC\u87ED\uCEA7\uE0F0\u87EE\u87EF"+
+ "\u87F0\uE0F2\uB9CC\u87F1\u87F2\uB9FA\uCDBC\uE0F3"+
+ "\u87F3\u87F4\u87F5\uC6D4\uE0F4\u87F6\uD4B2\u87F7"+
+ "\uC8A6\uE0F6\uE0F5\u87F8\u87F9\u87FA\u87FB\u87FC"+
+ "\u87FD\u87FE\u8840\u8841\u8842\u8843\u8844\u8845"+
+ "\u8846\u8847\u8848\u8849\uE0F7\u884A\u884B\uCDC1"+
+ "\u884C\u884D\u884E\uCAA5\u884F\u8850\u8851\u8852"+
+ "\uD4DA\uDBD7\uDBD9\u8853\uDBD8\uB9E7\uDBDC\uDBDD"+
+ "\uB5D8\u8854\u8855\uDBDA\u8856\u8857\u8858\u8859"+
+ "\u885A\uDBDB\uB3A1\uDBDF\u885B\u885C\uBBF8\u885D"+
+ "\uD6B7\u885E\uDBE0\u885F\u8860\u8861\u8862\uBEF9"+
+ "\u8863\u8864\uB7BB\u8865\uDBD0\uCCAE\uBFB2\uBBB5"+
+ "\uD7F8\uBFD3\u8866\u8867\u8868\u8869\u886A\uBFE9"+
+ "\u886B\u886C\uBCE1\uCCB3\uDBDE\uB0D3\uCEEB\uB7D8"+
+ "\uD7B9\uC6C2\u886D\u886E\uC0A4\u886F\uCCB9\u8870"+
+ "\uDBE7\uDBE1\uC6BA\uDBE3\u8871\uDBE8\u8872\uC5F7"+
+ "\u8873\u8874\u8875\uDBEA\u8876\u8877\uDBE9\uBFC0"+
+ "\u8878\u8879\u887A\uDBE6\uDBE5\u887B\u887C\u887D"+
+ "\u887E\u8880\uB4B9\uC0AC\uC2A2\uDBE2\uDBE4\u8881"+
+ "\u8882\u8883\u8884\uD0CD\uDBED\u8885\u8886\u8887"+
+ "\u8888\u8889\uC0DD\uDBF2\u888A\u888B\u888C\u888D"+
+ "\u888E\u888F\u8890\uB6E2\u8891\u8892\u8893\u8894"+
+ "\uDBF3\uDBD2\uB9B8\uD4AB\uDBEC\u8895\uBFD1\uDBF0"+
+ "\u8896\uDBD1\u8897\uB5E6\u8898\uDBEB\uBFE5\u8899"+
+ "\u889A\u889B\uDBEE\u889C\uDBF1\u889D\u889E\u889F"+
+ "\uDBF9\u88A0\u88A1\u88A2\u88A3\u88A4\u88A5\u88A6"+
+ "\u88A7\u88A8\uB9A1\uB0A3\u88A9\u88AA\u88AB\u88AC"+
+ "\u88AD\u88AE\u88AF\uC2F1\u88B0\u88B1\uB3C7\uDBEF"+
+ "\u88B2\u88B3\uDBF8\u88B4\uC6D2\uDBF4\u88B5\u88B6"+
+ "\uDBF5\uDBF7\uDBF6\u88B7\u88B8\uDBFE\u88B9\uD3F2"+
+ "\uB2BA\u88BA\u88BB\u88BC\uDBFD\u88BD\u88BE\u88BF"+
+ "\u88C0\u88C1\u88C2\u88C3\u88C4\uDCA4\u88C5\uDBFB"+
+ "\u88C6\u88C7\u88C8\u88C9\uDBFA\u88CA\u88CB\u88CC"+
+ "\uDBFC\uC5E0\uBBF9\u88CD\u88CE\uDCA3\u88CF\u88D0"+
+ "\uDCA5\u88D1\uCCC3\u88D2\u88D3\u88D4\uB6D1\uDDC0"+
+ "\u88D5\u88D6\u88D7\uDCA1\u88D8\uDCA2\u88D9\u88DA"+
+ "\u88DB\uC7B5\u88DC\u88DD\u88DE\uB6E9\u88DF\u88E0"+
+ "\u88E1\uDCA7\u88E2\u88E3\u88E4\u88E5\uDCA6\u88E6"+
+ "\uDCA9\uB1A4\u88E7\u88E8\uB5CC\u88E9\u88EA\u88EB"+
+ "\u88EC\u88ED\uBFB0\u88EE\u88EF\u88F0\u88F1\u88F2"+
+ "\uD1DF\u88F3\u88F4\u88F5\u88F6\uB6C2\u88F7\u88F8"+
+ "\u88F9\u88FA\u88FB\u88FC\u88FD\u88FE\u8940\u8941"+
+ "\u8942\u8943\u8944\u8945\uDCA8\u8946\u8947\u8948"+
+ "\u8949\u894A\u894B\u894C\uCBFA\uEBF3\u894D\u894E"+
+ "\u894F\uCBDC\u8950\u8951\uCBFE\u8952\u8953\u8954"+
+ "\uCCC1\u8955\u8956\u8957\u8958\u8959\uC8FB\u895A"+
+ "\u895B\u895C\u895D\u895E\u895F\uDCAA\u8960\u8961"+
+ "\u8962\u8963\u8964\uCCEE\uDCAB\u8965\u8966\u8967"+
+ "\u8968\u8969\u896A\u896B\u896C\u896D\u896E\u896F"+
+ "\u8970\u8971\u8972\u8973\u8974\u8975\uDBD3\u8976"+
+ "\uDCAF\uDCAC\u8977\uBEB3\u8978\uCAFB\u8979\u897A"+
+ "\u897B\uDCAD\u897C\u897D\u897E\u8980\u8981\u8982"+
+ "\u8983\u8984\uC9CA\uC4B9\u8985\u8986\u8987\u8988"+
+ "\u8989\uC7BD\uDCAE\u898A\u898B\u898C\uD4F6\uD0E6"+
+ "\u898D\u898E\u898F\u8990\u8991\u8992\u8993\u8994"+
+ "\uC4AB\uB6D5\u8995\u8996\u8997\u8998\u8999\u899A"+
+ "\u899B\u899C\u899D\u899E\u899F\u89A0\u89A1\u89A2"+
+ "\u89A3\u89A4\u89A5\u89A6\uDBD4\u89A7\u89A8\u89A9"+
+ "\u89AA\uB1DA\u89AB\u89AC\u89AD\uDBD5\u89AE\u89AF"+
+ "\u89B0\u89B1\u89B2\u89B3\u89B4\u89B5\u89B6\u89B7"+
+ "\u89B8\uDBD6\u89B9\u89BA\u89BB\uBABE\u89BC\u89BD"+
+ "\u89BE\u89BF\u89C0\u89C1\u89C2\u89C3\u89C4\u89C5"+
+ "\u89C6\u89C7\u89C8\u89C9\uC8C0\u89CA\u89CB\u89CC"+
+ "\u89CD\u89CE\u89CF\uCABF\uC8C9\u89D0\uD7B3\u89D1"+
+ "\uC9F9\u89D2\u89D3\uBFC7\u89D4\u89D5\uBAF8\u89D6"+
+ "\u89D7\uD2BC\u89D8\u89D9\u89DA\u89DB\u89DC\u89DD"+
+ "\u89DE\u89DF\uE2BA\u89E0\uB4A6\u89E1\u89E2\uB1B8"+
+ "\u89E3\u89E4\u89E5\u89E6\u89E7\uB8B4\u89E8\uCFC4"+
+ "\u89E9\u89EA\u89EB\u89EC\uD9E7\uCFA6\uCDE2\u89ED"+
+ "\u89EE\uD9ED\uB6E0\u89EF\uD2B9\u89F0\u89F1\uB9BB"+
+ "\u89F2\u89F3\u89F4\u89F5\uE2B9\uE2B7\u89F6\uB4F3"+
+ "\u89F7\uCCEC\uCCAB\uB7F2\u89F8\uD8B2\uD1EB\uBABB"+
+ "\u89F9\uCAA7\u89FA\u89FB\uCDB7\u89FC\u89FD\uD2C4"+
+ "\uBFE4\uBCD0\uB6E1\u89FE\uDEC5\u8A40\u8A41\u8A42"+
+ "\u8A43\uDEC6\uDBBC\u8A44\uD1D9\u8A45\u8A46\uC6E6"+
+ "\uC4CE\uB7EE\u8A47\uB7DC\u8A48\u8A49\uBFFC\uD7E0"+
+ "\u8A4A\uC6F5\u8A4B\u8A4C\uB1BC\uDEC8\uBDB1\uCCD7"+
+ "\uDECA\u8A4D\uDEC9\u8A4E\u8A4F\u8A50\u8A51\u8A52"+
+ "\uB5EC\u8A53\uC9DD\u8A54\u8A55\uB0C2\u8A56\u8A57"+
+ "\u8A58\u8A59\u8A5A\u8A5B\u8A5C\u8A5D\u8A5E\u8A5F"+
+ "\u8A60\u8A61\u8A62\uC5AE\uC5AB\u8A63\uC4CC\u8A64"+
+ "\uBCE9\uCBFD\u8A65\u8A66\u8A67\uBAC3\u8A68\u8A69"+
+ "\u8A6A\uE5F9\uC8E7\uE5FA\uCDFD\u8A6B\uD7B1\uB8BE"+
+ "\uC2E8\u8A6C\uC8D1\u8A6D\u8A6E\uE5FB\u8A6F\u8A70"+
+ "\u8A71\u8A72\uB6CA\uBCCB\u8A73\u8A74\uD1FD\uE6A1"+
+ "\u8A75\uC3EE\u8A76\u8A77\u8A78\u8A79\uE6A4\u8A7A"+
+ "\u8A7B\u8A7C\u8A7D\uE5FE\uE6A5\uCDD7\u8A7E\u8A80"+
+ "\uB7C1\uE5FC\uE5FD\uE6A3\u8A81\u8A82\uC4DD\uE6A8"+
+ "\u8A83\u8A84\uE6A7\u8A85\u8A86\u8A87\u8A88\u8A89"+
+ "\u8A8A\uC3C3\u8A8B\uC6DE\u8A8C\u8A8D\uE6AA\u8A8E"+
+ "\u8A8F\u8A90\u8A91\u8A92\u8A93\u8A94\uC4B7\u8A95"+
+ "\u8A96\u8A97\uE6A2\uCABC\u8A98\u8A99\u8A9A\u8A9B"+
+ "\uBDE3\uB9C3\uE6A6\uD0D5\uCEAF\u8A9C\u8A9D\uE6A9"+
+ "\uE6B0\u8A9E\uD2A6\u8A9F\uBDAA\uE6AD\u8AA0\u8AA1"+
+ "\u8AA2\u8AA3\u8AA4\uE6AF\u8AA5\uC0D1\u8AA6\u8AA7"+
+ "\uD2CC\u8AA8\u8AA9\u8AAA\uBCA7\u8AAB\u8AAC\u8AAD"+
+ "\u8AAE\u8AAF\u8AB0\u8AB1\u8AB2\u8AB3\u8AB4\u8AB5"+
+ "\u8AB6\uE6B1\u8AB7\uD2F6\u8AB8\u8AB9\u8ABA\uD7CB"+
+ "\u8ABB\uCDFE\u8ABC\uCDDE\uC2A6\uE6AB\uE6AC\uBDBF"+
+ "\uE6AE\uE6B3\u8ABD\u8ABE\uE6B2\u8ABF\u8AC0\u8AC1"+
+ "\u8AC2\uE6B6\u8AC3\uE6B8\u8AC4\u8AC5\u8AC6\u8AC7"+
+ "\uC4EF\u8AC8\u8AC9\u8ACA\uC4C8\u8ACB\u8ACC\uBEEA"+
+ "\uC9EF\u8ACD\u8ACE\uE6B7\u8ACF\uB6F0\u8AD0\u8AD1"+
+ "\u8AD2\uC3E4\u8AD3\u8AD4\u8AD5\u8AD6\u8AD7\u8AD8"+
+ "\u8AD9\uD3E9\uE6B4\u8ADA\uE6B5\u8ADB\uC8A2\u8ADC"+
+ "\u8ADD\u8ADE\u8ADF\u8AE0\uE6BD\u8AE1\u8AE2\u8AE3"+
+ "\uE6B9\u8AE4\u8AE5\u8AE6\u8AE7\u8AE8\uC6C5\u8AE9"+
+ "\u8AEA\uCDF1\uE6BB\u8AEB\u8AEC\u8AED\u8AEE\u8AEF"+
+ "\u8AF0\u8AF1\u8AF2\u8AF3\u8AF4\uE6BC\u8AF5\u8AF6"+
+ "\u8AF7\u8AF8\uBBE9\u8AF9\u8AFA\u8AFB\u8AFC\u8AFD"+
+ "\u8AFE\u8B40\uE6BE\u8B41\u8B42\u8B43\u8B44\uE6BA"+
+ "\u8B45\u8B46\uC0B7\u8B47\u8B48\u8B49\u8B4A\u8B4B"+
+ "\u8B4C\u8B4D\u8B4E\u8B4F\uD3A4\uE6BF\uC9F4\uE6C3"+
+ "\u8B50\u8B51\uE6C4\u8B52\u8B53\u8B54\u8B55\uD0F6"+
+ "\u8B56\u8B57\u8B58\u8B59\u8B5A\u8B5B\u8B5C\u8B5D"+
+ "\u8B5E\u8B5F\u8B60\u8B61\u8B62\u8B63\u8B64\u8B65"+
+ "\u8B66\u8B67\uC3BD\u8B68\u8B69\u8B6A\u8B6B\u8B6C"+
+ "\u8B6D\u8B6E\uC3C4\uE6C2\u8B6F\u8B70\u8B71\u8B72"+
+ "\u8B73\u8B74\u8B75\u8B76\u8B77\u8B78\u8B79\u8B7A"+
+ "\u8B7B\u8B7C\uE6C1\u8B7D\u8B7E\u8B80\u8B81\u8B82"+
+ "\u8B83\u8B84\uE6C7\uCFB1\u8B85\uEBF4\u8B86\u8B87"+
+ "\uE6CA\u8B88\u8B89\u8B8A\u8B8B\u8B8C\uE6C5\u8B8D"+
+ "\u8B8E\uBCDE\uC9A9\u8B8F\u8B90\u8B91\u8B92\u8B93"+
+ "\u8B94\uBCB5\u8B95\u8B96\uCFD3\u8B97\u8B98\u8B99"+
+ "\u8B9A\u8B9B\uE6C8\u8B9C\uE6C9\u8B9D\uE6CE\u8B9E"+
+ "\uE6D0\u8B9F\u8BA0\u8BA1\uE6D1\u8BA2\u8BA3\u8BA4"+
+ "\uE6CB\uB5D5\u8BA5\uE6CC\u8BA6\u8BA7\uE6CF\u8BA8"+
+ "\u8BA9\uC4DB\u8BAA\uE6C6\u8BAB\u8BAC\u8BAD\u8BAE"+
+ "\u8BAF\uE6CD\u8BB0\u8BB1\u8BB2\u8BB3\u8BB4\u8BB5"+
+ "\u8BB6\u8BB7\u8BB8\u8BB9\u8BBA\u8BBB\u8BBC\u8BBD"+
+ "\u8BBE\u8BBF\u8BC0\u8BC1\u8BC2\u8BC3\u8BC4\u8BC5"+
+ "\u8BC6\uE6D2\u8BC7\u8BC8\u8BC9\u8BCA\u8BCB\u8BCC"+
+ "\u8BCD\u8BCE\u8BCF\u8BD0\u8BD1\u8BD2\uE6D4\uE6D3"+
+ "\u8BD3\u8BD4\u8BD5\u8BD6\u8BD7\u8BD8\u8BD9\u8BDA"+
+ "\u8BDB\u8BDC\u8BDD\u8BDE\u8BDF\u8BE0\u8BE1\u8BE2"+
+ "\u8BE3\u8BE4\u8BE5\u8BE6\u8BE7\u8BE8\u8BE9\u8BEA"+
+ "\u8BEB\u8BEC\uE6D5\u8BED\uD9F8\u8BEE\u8BEF\uE6D6"+
+ "\u8BF0\u8BF1\u8BF2\u8BF3\u8BF4\u8BF5\u8BF6\u8BF7"+
+ "\uE6D7\u8BF8\u8BF9\u8BFA\u8BFB\u8BFC\u8BFD\u8BFE"+
+ "\u8C40\u8C41\u8C42\u8C43\u8C44\u8C45\u8C46\u8C47"+
+ "\uD7D3\uE6DD\u8C48\uE6DE\uBFD7\uD4D0\u8C49\uD7D6"+
+ "\uB4E6\uCBEF\uE6DA\uD8C3\uD7CE\uD0A2\u8C4A\uC3CF"+
+ "\u8C4B\u8C4C\uE6DF\uBCBE\uB9C2\uE6DB\uD1A7\u8C4D"+
+ "\u8C4E\uBAA2\uC2CF\u8C4F\uD8AB\u8C50\u8C51\u8C52"+
+ "\uCAEB\uE5EE\u8C53\uE6DC\u8C54\uB7F5\u8C55\u8C56"+
+ "\u8C57\u8C58\uC8E6\u8C59\u8C5A\uC4F5\u8C5B\u8C5C"+
+ "\uE5B2\uC4FE\u8C5D\uCBFC\uE5B3\uD5AC\u8C5E\uD3EE"+
+ "\uCAD8\uB0B2\u8C5F\uCBCE\uCDEA\u8C60\u8C61\uBAEA"+
+ "\u8C62\u8C63\u8C64\uE5B5\u8C65\uE5B4\u8C66\uD7DA"+
+ "\uB9D9\uD6E6\uB6A8\uCDF0\uD2CB\uB1A6\uCAB5\u8C67"+
+ "\uB3E8\uC9F3\uBFCD\uD0FB\uCAD2\uE5B6\uBBC2\u8C68"+
+ "\u8C69\u8C6A\uCFDC\uB9AC\u8C6B\u8C6C\u8C6D\u8C6E"+
+ "\uD4D7\u8C6F\u8C70\uBAA6\uD1E7\uCFFC\uBCD2\u8C71"+
+ "\uE5B7\uC8DD\u8C72\u8C73\u8C74\uBFED\uB1F6\uCBDE"+
+ "\u8C75\u8C76\uBCC5\u8C77\uBCC4\uD2FA\uC3DC\uBFDC"+
+ "\u8C78\u8C79\u8C7A\u8C7B\uB8BB\u8C7C\u8C7D\u8C7E"+
+ "\uC3C2\u8C80\uBAAE\uD4A2\u8C81\u8C82\u8C83\u8C84"+
+ "\u8C85\u8C86\u8C87\u8C88\u8C89\uC7DE\uC4AF\uB2EC"+
+ "\u8C8A\uB9D1\u8C8B\u8C8C\uE5BB\uC1C8\u8C8D\u8C8E"+
+ "\uD5AF\u8C8F\u8C90\u8C91\u8C92\u8C93\uE5BC\u8C94"+
+ "\uE5BE\u8C95\u8C96\u8C97\u8C98\u8C99\u8C9A\u8C9B"+
+ "\uB4E7\uB6D4\uCBC2\uD1B0\uB5BC\u8C9C\u8C9D\uCAD9"+
+ "\u8C9E\uB7E2\u8C9F\u8CA0\uC9E4\u8CA1\uBDAB\u8CA2"+
+ "\u8CA3\uCEBE\uD7F0\u8CA4\u8CA5\u8CA6\u8CA7\uD0A1"+
+ "\u8CA8\uC9D9\u8CA9\u8CAA\uB6FB\uE6D8\uBCE2\u8CAB"+
+ "\uB3BE\u8CAC\uC9D0\u8CAD\uE6D9\uB3A2\u8CAE\u8CAF"+
+ "\u8CB0\u8CB1\uDECC\u8CB2\uD3C8\uDECD\u8CB3\uD2A2"+
+ "\u8CB4\u8CB5\u8CB6\u8CB7\uDECE\u8CB8\u8CB9\u8CBA"+
+ "\u8CBB\uBECD\u8CBC\u8CBD\uDECF\u8CBE\u8CBF\u8CC0"+
+ "\uCAAC\uD2FC\uB3DF\uE5EA\uC4E1\uBEA1\uCEB2\uC4F2"+
+ "\uBED6\uC6A8\uB2E3\u8CC1\u8CC2\uBED3\u8CC3\u8CC4"+
+ "\uC7FC\uCCEB\uBDEC\uCEDD\u8CC5\u8CC6\uCABA\uC6C1"+
+ "\uE5EC\uD0BC\u8CC7\u8CC8\u8CC9\uD5B9\u8CCA\u8CCB"+
+ "\u8CCC\uE5ED\u8CCD\u8CCE\u8CCF\u8CD0\uCAF4\u8CD1"+
+ "\uCDC0\uC2C5\u8CD2\uE5EF\u8CD3\uC2C4\uE5F0\u8CD4"+
+ "\u8CD5\u8CD6\u8CD7\u8CD8\u8CD9\u8CDA\uE5F8\uCDCD"+
+ "\u8CDB\uC9BD\u8CDC\u8CDD\u8CDE\u8CDF\u8CE0\u8CE1"+
+ "\u8CE2\uD2D9\uE1A8\u8CE3\u8CE4\u8CE5\u8CE6\uD3EC"+
+ "\u8CE7\uCBEA\uC6F1\u8CE8\u8CE9\u8CEA\u8CEB\u8CEC"+
+ "\uE1AC\u8CED\u8CEE\u8CEF\uE1A7\uE1A9\u8CF0\u8CF1"+
+ "\uE1AA\uE1AF\u8CF2\u8CF3\uB2ED\u8CF4\uE1AB\uB8DA"+
+ "\uE1AD\uE1AE\uE1B0\uB5BA\uE1B1\u8CF5\u8CF6\u8CF7"+
+ "\u8CF8\u8CF9\uE1B3\uE1B8\u8CFA\u8CFB\u8CFC\u8CFD"+
+ "\u8CFE\uD1D2\u8D40\uE1B6\uE1B5\uC1EB\u8D41\u8D42"+
+ "\u8D43\uE1B7\u8D44\uD4C0\u8D45\uE1B2\u8D46\uE1BA"+
+ "\uB0B6\u8D47\u8D48\u8D49\u8D4A\uE1B4\u8D4B\uBFF9"+
+ "\u8D4C\uE1B9\u8D4D\u8D4E\uE1BB\u8D4F\u8D50\u8D51"+
+ "\u8D52\u8D53\u8D54\uE1BE\u8D55\u8D56\u8D57\u8D58"+
+ "\u8D59\u8D5A\uE1BC\u8D5B\u8D5C\u8D5D\u8D5E\u8D5F"+
+ "\u8D60\uD6C5\u8D61\u8D62\u8D63\u8D64\u8D65\u8D66"+
+ "\u8D67\uCFBF\u8D68\u8D69\uE1BD\uE1BF\uC2CD\u8D6A"+
+ "\uB6EB\u8D6B\uD3F8\u8D6C\u8D6D\uC7CD\u8D6E\u8D6F"+
+ "\uB7E5\u8D70\u8D71\u8D72\u8D73\u8D74\u8D75\u8D76"+
+ "\u8D77\u8D78\u8D79\uBEFE\u8D7A\u8D7B\u8D7C\u8D7D"+
+ "\u8D7E\u8D80\uE1C0\uE1C1\u8D81\u8D82\uE1C7\uB3E7"+
+ "\u8D83\u8D84\u8D85\u8D86\u8D87\u8D88\uC6E9\u8D89"+
+ "\u8D8A\u8D8B\u8D8C\u8D8D\uB4DE\u8D8E\uD1C2\u8D8F"+
+ "\u8D90\u8D91\u8D92\uE1C8\u8D93\u8D94\uE1C6\u8D95"+
+ "\u8D96\u8D97\u8D98\u8D99\uE1C5\u8D9A\uE1C3\uE1C2"+
+ "\u8D9B\uB1C0\u8D9C\u8D9D\u8D9E\uD5B8\uE1C4\u8D9F"+
+ "\u8DA0\u8DA1\u8DA2\u8DA3\uE1CB\u8DA4\u8DA5\u8DA6"+
+ "\u8DA7\u8DA8\u8DA9\u8DAA\u8DAB\uE1CC\uE1CA\u8DAC"+
+ "\u8DAD\u8DAE\u8DAF\u8DB0\u8DB1\u8DB2\u8DB3\uEFFA"+
+ "\u8DB4\u8DB5\uE1D3\uE1D2\uC7B6\u8DB6\u8DB7\u8DB8"+
+ "\u8DB9\u8DBA\u8DBB\u8DBC\u8DBD\u8DBE\u8DBF\u8DC0"+
+ "\uE1C9\u8DC1\u8DC2\uE1CE\u8DC3\uE1D0\u8DC4\u8DC5"+
+ "\u8DC6\u8DC7\u8DC8\u8DC9\u8DCA\u8DCB\u8DCC\u8DCD"+
+ "\u8DCE\uE1D4\u8DCF\uE1D1\uE1CD\u8DD0\u8DD1\uE1CF"+
+ "\u8DD2\u8DD3\u8DD4\u8DD5\uE1D5\u8DD6\u8DD7\u8DD8"+
+ "\u8DD9\u8DDA\u8DDB\u8DDC\u8DDD\u8DDE\u8DDF\u8DE0"+
+ "\u8DE1\u8DE2\uE1D6\u8DE3\u8DE4\u8DE5\u8DE6\u8DE7"+
+ "\u8DE8\u8DE9\u8DEA\u8DEB\u8DEC\u8DED\u8DEE\u8DEF"+
+ "\u8DF0\u8DF1\u8DF2\u8DF3\u8DF4\u8DF5\u8DF6\u8DF7"+
+ "\u8DF8\uE1D7\u8DF9\u8DFA\u8DFB\uE1D8\u8DFC\u8DFD"+
+ "\u8DFE\u8E40\u8E41\u8E42\u8E43\u8E44\u8E45\u8E46"+
+ "\u8E47\u8E48\u8E49\u8E4A\u8E4B\u8E4C\u8E4D\u8E4E"+
+ "\u8E4F\u8E50\u8E51\u8E52\u8E53\u8E54\u8E55\uE1DA"+
+ "\u8E56\u8E57\u8E58\u8E59\u8E5A\u8E5B\u8E5C\u8E5D"+
+ "\u8E5E\u8E5F\u8E60\u8E61\u8E62\uE1DB\u8E63\u8E64"+
+ "\u8E65\u8E66\u8E67\u8E68\u8E69\uCEA1\u8E6A\u8E6B"+
+ "\u8E6C\u8E6D\u8E6E\u8E6F\u8E70\u8E71\u8E72\u8E73"+
+ "\u8E74\u8E75\u8E76\uE7DD\u8E77\uB4A8\uD6DD\u8E78"+
+ "\u8E79\uD1B2\uB3B2\u8E7A\u8E7B\uB9A4\uD7F3\uC7C9"+
+ "\uBEDE\uB9AE\u8E7C\uCED7\u8E7D\u8E7E\uB2EE\uDBCF"+
+ "\u8E80\uBCBA\uD2D1\uCBC8\uB0CD\u8E81\u8E82\uCFEF"+
+ "\u8E83\u8E84\u8E85\u8E86\u8E87\uD9E3\uBDED\u8E88"+
+ "\u8E89\uB1D2\uCAD0\uB2BC\u8E8A\uCBA7\uB7AB\u8E8B"+
+ "\uCAA6\u8E8C\u8E8D\u8E8E\uCFA3\u8E8F\u8E90\uE0F8"+
+ "\uD5CA\uE0FB\u8E91\u8E92\uE0FA\uC5C1\uCCFB\u8E93"+
+ "\uC1B1\uE0F9\uD6E3\uB2AF\uD6C4\uB5DB\u8E94\u8E95"+
+ "\u8E96\u8E97\u8E98\u8E99\u8E9A\u8E9B\uB4F8\uD6A1"+
+ "\u8E9C\u8E9D\u8E9E\u8E9F\u8EA0\uCFAF\uB0EF\u8EA1"+
+ "\u8EA2\uE0FC\u8EA3\u8EA4\u8EA5\u8EA6\u8EA7\uE1A1"+
+ "\uB3A3\u8EA8\u8EA9\uE0FD\uE0FE\uC3B1\u8EAA\u8EAB"+
+ "\u8EAC\u8EAD\uC3DD\u8EAE\uE1A2\uB7F9\u8EAF\u8EB0"+
+ "\u8EB1\u8EB2\u8EB3\u8EB4\uBBCF\u8EB5\u8EB6\u8EB7"+
+ "\u8EB8\u8EB9\u8EBA\u8EBB\uE1A3\uC4BB\u8EBC\u8EBD"+
+ "\u8EBE\u8EBF\u8EC0\uE1A4\u8EC1\u8EC2\uE1A5\u8EC3"+
+ "\u8EC4\uE1A6\uB4B1\u8EC5\u8EC6\u8EC7\u8EC8\u8EC9"+
+ "\u8ECA\u8ECB\u8ECC\u8ECD\u8ECE\u8ECF\u8ED0\u8ED1"+
+ "\u8ED2\u8ED3\uB8C9\uC6BD\uC4EA\u8ED4\uB2A2\u8ED5"+
+ "\uD0D2\u8ED6\uE7DB\uBBC3\uD3D7\uD3C4\u8ED7\uB9E3"+
+ "\uE2CF\u8ED8\u8ED9\u8EDA\uD7AF\u8EDB\uC7EC\uB1D3"+
+ "\u8EDC\u8EDD\uB4B2\uE2D1\u8EDE\u8EDF\u8EE0\uD0F2"+
+ "\uC2AE\uE2D0\u8EE1\uBFE2\uD3A6\uB5D7\uE2D2\uB5EA"+
+ "\u8EE2\uC3ED\uB8FD\u8EE3\uB8AE\u8EE4\uC5D3\uB7CF"+
+ "\uE2D4\u8EE5\u8EE6\u8EE7\u8EE8\uE2D3\uB6C8\uD7F9"+
+ "\u8EE9\u8EEA\u8EEB\u8EEC\u8EED\uCDA5\u8EEE\u8EEF"+
+ "\u8EF0\u8EF1\u8EF2\uE2D8\u8EF3\uE2D6\uCAFC\uBFB5"+
+ "\uD3B9\uE2D5\u8EF4\u8EF5\u8EF6\u8EF7\uE2D7\u8EF8"+
+ "\u8EF9\u8EFA\u8EFB\u8EFC\u8EFD\u8EFE\u8F40\u8F41"+
+ "\u8F42\uC1AE\uC0C8\u8F43\u8F44\u8F45\u8F46\u8F47"+
+ "\u8F48\uE2DB\uE2DA\uC0AA\u8F49\u8F4A\uC1CE\u8F4B"+
+ "\u8F4C\u8F4D\u8F4E\uE2DC\u8F4F\u8F50\u8F51\u8F52"+
+ "\u8F53\u8F54\u8F55\u8F56\u8F57\u8F58\u8F59\u8F5A"+
+ "\uE2DD\u8F5B\uE2DE\u8F5C\u8F5D\u8F5E\u8F5F\u8F60"+
+ "\u8F61\u8F62\u8F63\u8F64\uDBC8\u8F65\uD1D3\uCDA2"+
+ "\u8F66\u8F67\uBDA8\u8F68\u8F69\u8F6A\uDEC3\uD8A5"+
+ "\uBFAA\uDBCD\uD2EC\uC6FA\uC5AA\u8F6B\u8F6C\u8F6D"+
+ "\uDEC4\u8F6E\uB1D7\uDFAE\u8F6F\u8F70\u8F71\uCABD"+
+ "\u8F72\uDFB1\u8F73\uB9AD\u8F74\uD2FD\u8F75\uB8A5"+
+ "\uBAEB\u8F76\u8F77\uB3DA\u8F78\u8F79\u8F7A\uB5DC"+
+ "\uD5C5\u8F7B\u8F7C\u8F7D\u8F7E\uC3D6\uCFD2\uBBA1"+
+ "\u8F80\uE5F3\uE5F2\u8F81\u8F82\uE5F4\u8F83\uCDE4"+
+ "\u8F84\uC8F5\u8F85\u8F86\u8F87\u8F88\u8F89\u8F8A"+
+ "\u8F8B\uB5AF\uC7BF\u8F8C\uE5F6\u8F8D\u8F8E\u8F8F"+
+ "\uECB0\u8F90\u8F91\u8F92\u8F93\u8F94\u8F95\u8F96"+
+ "\u8F97\u8F98\u8F99\u8F9A\u8F9B\u8F9C\u8F9D\u8F9E"+
+ "\uE5E6\u8F9F\uB9E9\uB5B1\u8FA0\uC2BC\uE5E8\uE5E7"+
+ "\uE5E9\u8FA1\u8FA2\u8FA3\u8FA4\uD2CD\u8FA5\u8FA6"+
+ "\u8FA7\uE1EA\uD0CE\u8FA8\uCDAE\u8FA9\uD1E5\u8FAA"+
+ "\u8FAB\uB2CA\uB1EB\u8FAC\uB1F2\uC5ED\u8FAD\u8FAE"+
+ "\uD5C3\uD3B0\u8FAF\uE1DC\u8FB0\u8FB1\u8FB2\uE1DD"+
+ "\u8FB3\uD2DB\u8FB4\uB3B9\uB1CB\u8FB5\u8FB6\u8FB7"+
+ "\uCDF9\uD5F7\uE1DE\u8FB8\uBEB6\uB4FD\u8FB9\uE1DF"+
+ "\uBADC\uE1E0\uBBB2\uC2C9\uE1E1\u8FBA\u8FBB\u8FBC"+
+ "\uD0EC\u8FBD\uCDBD\u8FBE\u8FBF\uE1E2\u8FC0\uB5C3"+
+ "\uC5C7\uE1E3\u8FC1\u8FC2\uE1E4\u8FC3\u8FC4\u8FC5"+
+ "\u8FC6\uD3F9\u8FC7\u8FC8\u8FC9\u8FCA\u8FCB\u8FCC"+
+ "\uE1E5\u8FCD\uD1AD\u8FCE\u8FCF\uE1E6\uCEA2\u8FD0"+
+ "\u8FD1\u8FD2\u8FD3\u8FD4\u8FD5\uE1E7\u8FD6\uB5C2"+
+ "\u8FD7\u8FD8\u8FD9\u8FDA\uE1E8\uBBD5\u8FDB\u8FDC"+
+ "\u8FDD\u8FDE\u8FDF\uD0C4\uE2E0\uB1D8\uD2E4\u8FE0"+
+ "\u8FE1\uE2E1\u8FE2\u8FE3\uBCC9\uC8CC\u8FE4\uE2E3"+
+ "\uECFE\uECFD\uDFAF\u8FE5\u8FE6\u8FE7\uE2E2\uD6BE"+
+ "\uCDFC\uC3A6\u8FE8\u8FE9\u8FEA\uE3C3\u8FEB\u8FEC"+
+ "\uD6D2\uE2E7\u8FED\u8FEE\uE2E8\u8FEF\u8FF0\uD3C7"+
+ "\u8FF1\u8FF2\uE2EC\uBFEC\u8FF3\uE2ED\uE2E5\u8FF4"+
+ "\u8FF5\uB3C0\u8FF6\u8FF7\u8FF8\uC4EE\u8FF9\u8FFA"+
+ "\uE2EE\u8FFB\u8FFC\uD0C3\u8FFD\uBAF6\uE2E9\uB7DE";
+
+ private final static String innerEncoderIndex6=
+ "\uBBB3\uCCAC\uCBCB\uE2E4\uE2E6\uE2EA\uE2EB\u8FFE"+
+ "\u9040\u9041\uE2F7\u9042\u9043\uE2F4\uD4F5\uE2F3"+
+ "\u9044\u9045\uC5AD\u9046\uD5FA\uC5C2\uB2C0\u9047"+
+ "\u9048\uE2EF\u9049\uE2F2\uC1AF\uCBBC\u904A\u904B"+
+ "\uB5A1\uE2F9\u904C\u904D\u904E\uBCB1\uE2F1\uD0D4"+
+ "\uD4B9\uE2F5\uB9D6\uE2F6\u904F\u9050\u9051\uC7D3"+
+ "\u9052\u9053\u9054\u9055\u9056\uE2F0\u9057\u9058"+
+ "\u9059\u905A\u905B\uD7DC\uEDA1\u905C\u905D\uE2F8"+
+ "\u905E\uEDA5\uE2FE\uCAD1\u905F\u9060\u9061\u9062"+
+ "\u9063\u9064\u9065\uC1B5\u9066\uBBD0\u9067\u9068"+
+ "\uBFD6\u9069\uBAE3\u906A\u906B\uCBA1\u906C\u906D"+
+ "\u906E\uEDA6\uEDA3\u906F\u9070\uEDA2\u9071\u9072"+
+ "\u9073\u9074\uBBD6\uEDA7\uD0F4\u9075\u9076\uEDA4"+
+ "\uBADE\uB6F7\uE3A1\uB6B2\uCCF1\uB9A7\u9077\uCFA2"+
+ "\uC7A1\u9078\u9079\uBFD2\u907A\u907B\uB6F1\u907C"+
+ "\uE2FA\uE2FB\uE2FD\uE2FC\uC4D5\uE3A2\u907D\uD3C1"+
+ "\u907E\u9080\u9081\uE3A7\uC7C4\u9082\u9083\u9084"+
+ "\u9085\uCFA4\u9086\u9087\uE3A9\uBAB7\u9088\u9089"+
+ "\u908A\u908B\uE3A8\u908C\uBBDA\u908D\uE3A3\u908E"+
+ "\u908F\u9090\uE3A4\uE3AA\u9091\uE3A6\u9092\uCEF2"+
+ "\uD3C6\u9093\u9094\uBBBC\u9095\u9096\uD4C3\u9097"+
+ "\uC4FA\u9098\u9099\uEDA8\uD0FC\uE3A5\u909A\uC3F5"+
+ "\u909B\uE3AD\uB1AF\u909C\uE3B2\u909D\u909E\u909F"+
+ "\uBCC2\u90A0\u90A1\uE3AC\uB5BF\u90A2\u90A3\u90A4"+
+ "\u90A5\u90A6\u90A7\u90A8\u90A9\uC7E9\uE3B0\u90AA"+
+ "\u90AB\u90AC\uBEAA\uCDEF\u90AD\u90AE\u90AF\u90B0"+
+ "\u90B1\uBBF3\u90B2\u90B3\u90B4\uCCE8\u90B5\u90B6"+
+ "\uE3AF\u90B7\uE3B1\u90B8\uCFA7\uE3AE\u90B9\uCEA9"+
+ "\uBBDD\u90BA\u90BB\u90BC\u90BD\u90BE\uB5EB\uBEE5"+
+ "\uB2D2\uB3CD\u90BF\uB1B9\uE3AB\uB2D1\uB5AC\uB9DF"+
+ "\uB6E8\u90C0\u90C1\uCFEB\uE3B7\u90C2\uBBCC\u90C3"+
+ "\u90C4\uC8C7\uD0CA\u90C5\u90C6\u90C7\u90C8\u90C9"+
+ "\uE3B8\uB3EE\u90CA\u90CB\u90CC\u90CD\uEDA9\u90CE"+
+ "\uD3FA\uD3E4\u90CF\u90D0\u90D1\uEDAA\uE3B9\uD2E2"+
+ "\u90D2\u90D3\u90D4\u90D5\u90D6\uE3B5\u90D7\u90D8"+
+ "\u90D9\u90DA\uD3DE\u90DB\u90DC\u90DD\u90DE\uB8D0"+
+ "\uE3B3\u90DF\u90E0\uE3B6\uB7DF\u90E1\uE3B4\uC0A2"+
+ "\u90E2\u90E3\u90E4\uE3BA\u90E5\u90E6\u90E7\u90E8"+
+ "\u90E9\u90EA\u90EB\u90EC\u90ED\u90EE\u90EF\u90F0"+
+ "\u90F1\u90F2\u90F3\u90F4\u90F5\u90F6\u90F7\uD4B8"+
+ "\u90F8\u90F9\u90FA\u90FB\u90FC\u90FD\u90FE\u9140"+
+ "\uB4C8\u9141\uE3BB\u9142\uBBC5\u9143\uC9F7\u9144"+
+ "\u9145\uC9E5\u9146\u9147\u9148\uC4BD\u9149\u914A"+
+ "\u914B\u914C\u914D\u914E\u914F\uEDAB\u9150\u9151"+
+ "\u9152\u9153\uC2FD\u9154\u9155\u9156\u9157\uBBDB"+
+ "\uBFAE\u9158\u9159\u915A\u915B\u915C\u915D\u915E"+
+ "\uCEBF\u915F\u9160\u9161\u9162\uE3BC\u9163\uBFB6"+
+ "\u9164\u9165\u9166\u9167\u9168\u9169\u916A\u916B"+
+ "\u916C\u916D\u916E\u916F\u9170\u9171\u9172\u9173"+
+ "\u9174\u9175\u9176\uB1EF\u9177\u9178\uD4F7\u9179"+
+ "\u917A\u917B\u917C\u917D\uE3BE\u917E\u9180\u9181"+
+ "\u9182\u9183\u9184\u9185\u9186\uEDAD\u9187\u9188"+
+ "\u9189\u918A\u918B\u918C\u918D\u918E\u918F\uE3BF"+
+ "\uBAA9\uEDAC\u9190\u9191\uE3BD\u9192\u9193\u9194"+
+ "\u9195\u9196\u9197\u9198\u9199\u919A\u919B\uE3C0"+
+ "\u919C\u919D\u919E\u919F\u91A0\u91A1\uBAB6\u91A2"+
+ "\u91A3\u91A4\uB6AE\u91A5\u91A6\u91A7\u91A8\u91A9"+
+ "\uD0B8\u91AA\uB0C3\uEDAE\u91AB\u91AC\u91AD\u91AE"+
+ "\u91AF\uEDAF\uC0C1\u91B0\uE3C1\u91B1\u91B2\u91B3"+
+ "\u91B4\u91B5\u91B6\u91B7\u91B8\u91B9\u91BA\u91BB"+
+ "\u91BC\u91BD\u91BE\u91BF\u91C0\u91C1\uC5B3\u91C2"+
+ "\u91C3\u91C4\u91C5\u91C6\u91C7\u91C8\u91C9\u91CA"+
+ "\u91CB\u91CC\u91CD\u91CE\u91CF\uE3C2\u91D0\u91D1"+
+ "\u91D2\u91D3\u91D4\u91D5\u91D6\u91D7\u91D8\uDCB2"+
+ "\u91D9\u91DA\u91DB\u91DC\u91DD\u91DE\uEDB0\u91DF"+
+ "\uB8EA\u91E0\uCEEC\uEAA7\uD0E7\uCAF9\uC8D6\uCFB7"+
+ "\uB3C9\uCED2\uBDE4\u91E1\u91E2\uE3DE\uBBF2\uEAA8"+
+ "\uD5BD\u91E3\uC6DD\uEAA9\u91E4\u91E5\u91E6\uEAAA"+
+ "\u91E7\uEAAC\uEAAB\u91E8\uEAAE\uEAAD\u91E9\u91EA"+
+ "\u91EB\u91EC\uBDD8\u91ED\uEAAF\u91EE\uC2BE\u91EF"+
+ "\u91F0\u91F1\u91F2\uB4C1\uB4F7\u91F3\u91F4\uBBA7"+
+ "\u91F5\u91F6\u91F7\u91F8\u91F9\uECE6\uECE5\uB7BF"+
+ "\uCBF9\uB1E2\u91FA\uECE7\u91FB\u91FC\u91FD\uC9C8"+
+ "\uECE8\uECE9\u91FE\uCAD6\uDED0\uB2C5\uD4FA\u9240"+
+ "\u9241\uC6CB\uB0C7\uB4F2\uC8D3\u9242\u9243\u9244"+
+ "\uCDD0\u9245\u9246\uBFB8\u9247\u9248\u9249\u924A"+
+ "\u924B\u924C\u924D\uBFDB\u924E\u924F\uC7A4\uD6B4"+
+ "\u9250\uC0A9\uDED1\uC9A8\uD1EF\uC5A4\uB0E7\uB3B6"+
+ "\uC8C5\u9251\u9252\uB0E2\u9253\u9254\uB7F6\u9255"+
+ "\u9256\uC5FA\u9257\u9258\uB6F3\u9259\uD5D2\uB3D0"+
+ "\uBCBC\u925A\u925B\u925C\uB3AD\u925D\u925E\u925F"+
+ "\u9260\uBEF1\uB0D1\u9261\u9262\u9263\u9264\u9265"+
+ "\u9266\uD2D6\uCAE3\uD7A5\u9267\uCDB6\uB6B6\uBFB9"+
+ "\uD5DB\u9268\uB8A7\uC5D7\u9269\u926A\u926B\uDED2"+
+ "\uBFD9\uC2D5\uC7C0\u926C\uBBA4\uB1A8\u926D\u926E"+
+ "\uC5EA\u926F\u9270\uC5FB\uCCA7\u9271\u9272\u9273"+
+ "\u9274\uB1A7\u9275\u9276\u9277\uB5D6\u9278\u9279"+
+ "\u927A\uC4A8\u927B\uDED3\uD1BA\uB3E9\u927C\uC3F2"+
+ "\u927D\u927E\uB7F7\u9280\uD6F4\uB5A3\uB2F0\uC4B4"+
+ "\uC4E9\uC0AD\uDED4\u9281\uB0E8\uC5C4\uC1E0\u9282"+
+ "\uB9D5\u9283\uBEDC\uCDD8\uB0CE\u9284\uCDCF\uDED6"+
+ "\uBED0\uD7BE\uDED5\uD5D0\uB0DD\u9285\u9286\uC4E2"+
+ "\u9287\u9288\uC2A3\uBCF0\u9289\uD3B5\uC0B9\uC5A1"+
+ "\uB2A6\uD4F1\u928A\u928B\uC0A8\uCAC3\uDED7\uD5FC"+
+ "\u928C\uB9B0\u928D\uC8AD\uCBA9\u928E\uDED9\uBFBD"+
+ "\u928F\u9290\u9291\u9292\uC6B4\uD7A7\uCAB0\uC4C3"+
+ "\u9293\uB3D6\uB9D2\u9294\u9295\u9296\u9297\uD6B8"+
+ "\uEAFC\uB0B4\u9298\u9299\u929A\u929B\uBFE6\u929C"+
+ "\u929D\uCCF4\u929E\u929F\u92A0\u92A1\uCDDA\u92A2"+
+ "\u92A3\u92A4\uD6BF\uC2CE\u92A5\uCECE\uCCA2\uD0AE"+
+ "\uC4D3\uB5B2\uDED8\uD5F5\uBCB7\uBBD3\u92A6\u92A7"+
+ "\uB0A4\u92A8\uC5B2\uB4EC\u92A9\u92AA\u92AB\uD5F1"+
+ "\u92AC\u92AD\uEAFD\u92AE\u92AF\u92B0\u92B1\u92B2"+
+ "\u92B3\uDEDA\uCDA6\u92B4\u92B5\uCDEC\u92B6\u92B7"+
+ "\u92B8\u92B9\uCEE6\uDEDC\u92BA\uCDB1\uC0A6\u92BB"+
+ "\u92BC\uD7BD\u92BD\uDEDB\uB0C6\uBAB4\uC9D3\uC4F3"+
+ "\uBEE8\u92BE\u92BF\u92C0\u92C1\uB2B6\u92C2\u92C3"+
+ "\u92C4\u92C5\u92C6\u92C7\u92C8\u92C9\uC0CC\uCBF0"+
+ "\u92CA\uBCF1\uBBBB\uB5B7\u92CB\u92CC\u92CD\uC5F5"+
+ "\u92CE\uDEE6\u92CF\u92D0\u92D1\uDEE3\uBEDD\u92D2"+
+ "\u92D3\uDEDF\u92D4\u92D5\u92D6\u92D7\uB4B7\uBDDD"+
+ "\u92D8\u92D9\uDEE0\uC4ED\u92DA\u92DB\u92DC\u92DD"+
+ "\uCFC6\u92DE\uB5E0\u92DF\u92E0\u92E1\u92E2\uB6DE"+
+ "\uCADA\uB5F4\uDEE5\u92E3\uD5C6\u92E4\uDEE1\uCCCD"+
+ "\uC6FE\u92E5\uC5C5\u92E6\u92E7\u92E8\uD2B4\u92E9"+
+ "\uBEF2\u92EA\u92EB\u92EC\u92ED\u92EE\u92EF\u92F0"+
+ "\uC2D3\u92F1\uCCBD\uB3B8\u92F2\uBDD3\u92F3\uBFD8"+
+ "\uCDC6\uD1DA\uB4EB\u92F4\uDEE4\uDEDD\uDEE7\u92F5"+
+ "\uEAFE\u92F6\u92F7\uC2B0\uDEE2\u92F8\u92F9\uD6C0"+
+ "\uB5A7\u92FA\uB2F4\u92FB\uDEE8\u92FC\uDEF2\u92FD"+
+ "\u92FE\u9340\u9341\u9342\uDEED\u9343\uDEF1\u9344"+
+ "\u9345\uC8E0\u9346\u9347\u9348\uD7E1\uDEEF\uC3E8"+
+ "\uCCE1\u9349\uB2E5\u934A\u934B\u934C\uD2BE\u934D"+
+ "\u934E\u934F\u9350\u9351\u9352\u9353\uDEEE\u9354"+
+ "\uDEEB\uCED5\u9355\uB4A7\u9356\u9357\u9358\u9359"+
+ "\u935A\uBFAB\uBEBE\u935B\u935C\uBDD2\u935D\u935E"+
+ "\u935F\u9360\uDEE9\u9361\uD4AE\u9362\uDEDE\u9363"+
+ "\uDEEA\u9364\u9365\u9366\u9367\uC0BF\u9368\uDEEC"+
+ "\uB2F3\uB8E9\uC2A7\u9369\u936A\uBDC1\u936B\u936C"+
+ "\u936D\u936E\u936F\uDEF5\uDEF8\u9370\u9371\uB2AB"+
+ "\uB4A4\u9372\u9373\uB4EA\uC9A6\u9374\u9375\u9376"+
+ "\u9377\u9378\u9379\uDEF6\uCBD1\u937A\uB8E3\u937B"+
+ "\uDEF7\uDEFA\u937C\u937D\u937E\u9380\uDEF9\u9381"+
+ "\u9382\u9383\uCCC2\u9384\uB0E1\uB4EE\u9385\u9386"+
+ "\u9387\u9388\u9389\u938A\uE5BA\u938B\u938C\u938D"+
+ "\u938E\u938F\uD0AF\u9390\u9391\uB2EB\u9392\uEBA1"+
+ "\u9393\uDEF4\u9394\u9395\uC9E3\uDEF3\uB0DA\uD2A1"+
+ "\uB1F7\u9396\uCCAF\u9397\u9398\u9399\u939A\u939B"+
+ "\u939C\u939D\uDEF0\u939E\uCBA4\u939F\u93A0\u93A1"+
+ "\uD5AA\u93A2\u93A3\u93A4\u93A5\u93A6\uDEFB\u93A7"+
+ "\u93A8\u93A9\u93AA\u93AB\u93AC\u93AD\u93AE\uB4DD"+
+ "\u93AF\uC4A6\u93B0\u93B1\u93B2\uDEFD\u93B3\u93B4"+
+ "\u93B5\u93B6\u93B7\u93B8\u93B9\u93BA\u93BB\u93BC"+
+ "\uC3FE\uC4A1\uDFA1\u93BD\u93BE\u93BF\u93C0\u93C1"+
+ "\u93C2\u93C3\uC1CC\u93C4\uDEFC\uBEEF\u93C5\uC6B2"+
+ "\u93C6\u93C7\u93C8\u93C9\u93CA\u93CB\u93CC\u93CD"+
+ "\u93CE\uB3C5\uC8F6\u93CF\u93D0\uCBBA\uDEFE\u93D1"+
+ "\u93D2\uDFA4\u93D3\u93D4\u93D5\u93D6\uD7B2\u93D7"+
+ "\u93D8\u93D9\u93DA\u93DB\uB3B7\u93DC\u93DD\u93DE"+
+ "\u93DF\uC1C3\u93E0\u93E1\uC7CB\uB2A5\uB4E9\u93E2"+
+ "\uD7AB\u93E3\u93E4\u93E5\u93E6\uC4EC\u93E7\uDFA2"+
+ "\uDFA3\u93E8\uDFA5\u93E9\uBAB3\u93EA\u93EB\u93EC"+
+ "\uDFA6\u93ED\uC0DE\u93EE\u93EF\uC9C3\u93F0\u93F1"+
+ "\u93F2\u93F3\u93F4\u93F5\u93F6\uB2D9\uC7E6\u93F7"+
+ "\uDFA7\u93F8\uC7DC\u93F9\u93FA\u93FB\u93FC\uDFA8"+
+ "\uEBA2\u93FD\u93FE\u9440\u9441\u9442\uCBD3\u9443"+
+ "\u9444\u9445\uDFAA\u9446\uDFA9\u9447\uB2C1\u9448"+
+ "\u9449\u944A\u944B\u944C\u944D\u944E\u944F\u9450"+
+ "\u9451\u9452\u9453\u9454\u9455\u9456\u9457\u9458"+
+ "\u9459\u945A\u945B\u945C\u945D\u945E\u945F\u9460"+
+ "\uC5CA\u9461\u9462\u9463\u9464\u9465\u9466\u9467"+
+ "\u9468\uDFAB\u9469\u946A\u946B\u946C\u946D\u946E"+
+ "\u946F\u9470\uD4DC\u9471\u9472\u9473\u9474\u9475"+
+ "\uC8C1\u9476\u9477\u9478\u9479\u947A\u947B\u947C"+
+ "\u947D\u947E\u9480\u9481\u9482\uDFAC\u9483\u9484"+
+ "\u9485\u9486\u9487\uBEF0\u9488\u9489\uDFAD\uD6A7"+
+ "\u948A\u948B\u948C\u948D\uEAB7\uEBB6\uCAD5\u948E"+
+ "\uD8FC\uB8C4\u948F\uB9A5\u9490\u9491\uB7C5\uD5FE"+
+ "\u9492\u9493\u9494\u9495\u9496\uB9CA\u9497\u9498"+
+ "\uD0A7\uF4CD\u9499\u949A\uB5D0\u949B\u949C\uC3F4"+
+ "\u949D\uBEC8\u949E\u949F\u94A0\uEBB7\uB0BD\u94A1"+
+ "\u94A2\uBDCC\u94A3\uC1B2\u94A4\uB1D6\uB3A8\u94A5"+
+ "\u94A6\u94A7\uB8D2\uC9A2\u94A8\u94A9\uB6D8\u94AA"+
+ "\u94AB\u94AC\u94AD\uEBB8\uBEB4\u94AE\u94AF\u94B0"+
+ "\uCAFD\u94B1\uC7C3\u94B2\uD5FB\u94B3\u94B4\uB7F3"+
+ "\u94B5\u94B6\u94B7\u94B8\u94B9\u94BA\u94BB\u94BC"+
+ "\u94BD\u94BE\u94BF\u94C0\u94C1\u94C2\u94C3\uCEC4"+
+ "\u94C4\u94C5\u94C6\uD5AB\uB1F3\u94C7\u94C8\u94C9"+
+ "\uECB3\uB0DF\u94CA\uECB5\u94CB\u94CC\u94CD\uB6B7"+
+ "\u94CE\uC1CF\u94CF\uF5FA\uD0B1\u94D0\u94D1\uD5E5"+
+ "\u94D2\uCED3\u94D3\u94D4\uBDEF\uB3E2\u94D5\uB8AB"+
+ "\u94D6\uD5B6\u94D7\uEDBD\u94D8\uB6CF\u94D9\uCBB9"+
+ "\uD0C2\u94DA\u94DB\u94DC\u94DD\u94DE\u94DF\u94E0"+
+ "\u94E1\uB7BD\u94E2\u94E3\uECB6\uCAA9\u94E4\u94E5"+
+ "\u94E6\uC5D4\u94E7\uECB9\uECB8\uC2C3\uECB7\u94E8"+
+ "\u94E9\u94EA\u94EB\uD0FD\uECBA\u94EC\uECBB\uD7E5"+
+ "\u94ED\u94EE\uECBC\u94EF\u94F0\u94F1\uECBD\uC6EC"+
+ "\u94F2\u94F3\u94F4\u94F5\u94F6\u94F7\u94F8\u94F9"+
+ "\uCEDE\u94FA\uBCC8\u94FB\u94FC\uC8D5\uB5A9\uBEC9"+
+ "\uD6BC\uD4E7\u94FD\u94FE\uD1AE\uD0F1\uEAB8\uEAB9"+
+ "\uEABA\uBAB5\u9540\u9541\u9542\u9543\uCAB1\uBFF5"+
+ "\u9544\u9545\uCDFA\u9546\u9547\u9548\u9549\u954A"+
+ "\uEAC0\u954B\uB0BA\uEABE\u954C\u954D\uC0A5\u954E"+
+ "\u954F\u9550\uEABB\u9551\uB2FD\u9552\uC3F7\uBBE8"+
+ "\u9553\u9554\u9555\uD2D7\uCEF4\uEABF\u9556\u9557"+
+ "\u9558\uEABC\u9559\u955A\u955B\uEAC3\u955C\uD0C7"+
+ "\uD3B3\u955D\u955E\u955F\u9560\uB4BA\u9561\uC3C1"+
+ "\uD7F2\u9562\u9563\u9564\u9565\uD5D1\u9566\uCAC7"+
+ "\u9567\uEAC5\u9568\u9569\uEAC4\uEAC7\uEAC6\u956A"+
+ "\u956B\u956C\u956D\u956E\uD6E7\u956F\uCFD4\u9570"+
+ "\u9571\uEACB\u9572\uBBCE\u9573\u9574\u9575\u9576"+
+ "\u9577\u9578\u9579\uBDFA\uC9CE\u957A\u957B\uEACC"+
+ "\u957C\u957D\uC9B9\uCFFE\uEACA\uD4CE\uEACD\uEACF"+
+ "\u957E\u9580\uCDED\u9581\u9582\u9583\u9584\uEAC9"+
+ "\u9585\uEACE\u9586\u9587\uCEEE\u9588\uBBDE\u9589"+
+ "\uB3BF\u958A\u958B\u958C\u958D\u958E\uC6D5\uBEB0"+
+ "\uCEFA\u958F\u9590\u9591\uC7E7\u9592\uBEA7\uEAD0"+
+ "\u9593\u9594\uD6C7\u9595\u9596\u9597\uC1C0\u9598"+
+ "\u9599\u959A\uD4DD\u959B\uEAD1\u959C\u959D\uCFBE"+
+ "\u959E\u959F\u95A0\u95A1\uEAD2\u95A2\u95A3\u95A4"+
+ "\u95A5\uCAEE\u95A6\u95A7\u95A8\u95A9\uC5AF\uB0B5"+
+ "\u95AA\u95AB\u95AC\u95AD\u95AE\uEAD4\u95AF\u95B0"+
+ "\u95B1\u95B2\u95B3\u95B4\u95B5\u95B6\u95B7\uEAD3"+
+ "\uF4DF\u95B8\u95B9\u95BA\u95BB\u95BC\uC4BA\u95BD"+
+ "\u95BE\u95BF\u95C0\u95C1\uB1A9\u95C2\u95C3\u95C4"+
+ "\u95C5\uE5DF\u95C6\u95C7\u95C8\u95C9\uEAD5\u95CA"+
+ "\u95CB\u95CC\u95CD\u95CE\u95CF\u95D0\u95D1\u95D2"+
+ "\u95D3\u95D4\u95D5\u95D6\u95D7\u95D8\u95D9\u95DA"+
+ "\u95DB\u95DC\u95DD\u95DE\u95DF\u95E0\u95E1\u95E2"+
+ "\u95E3\uCAEF\u95E4\uEAD6\uEAD7\uC6D8\u95E5\u95E6"+
+ "\u95E7\u95E8\u95E9\u95EA\u95EB\u95EC\uEAD8\u95ED"+
+ "\u95EE\uEAD9\u95EF\u95F0\u95F1\u95F2\u95F3\u95F4"+
+ "\uD4BB\u95F5\uC7FA\uD2B7\uB8FC\u95F6\u95F7\uEAC2"+
+ "\u95F8\uB2DC\u95F9\u95FA\uC2FC\u95FB\uD4F8\uCCE6"+
+ "\uD7EE\u95FC\u95FD\u95FE\u9640\u9641\u9642\u9643"+
+ "\uD4C2\uD3D0\uEBC3\uC5F3\u9644\uB7FE\u9645\u9646"+
+ "\uEBD4\u9647\u9648\u9649\uCBB7\uEBDE\u964A\uC0CA"+
+ "\u964B\u964C\u964D\uCDFB\u964E\uB3AF\u964F\uC6DA"+
+ "\u9650\u9651\u9652\u9653\u9654\u9655\uEBFC\u9656"+
+ "\uC4BE\u9657\uCEB4\uC4A9\uB1BE\uD4FD\u9658\uCAF5"+
+ "\u9659\uD6EC\u965A\u965B\uC6D3\uB6E4\u965C\u965D"+
+ "\u965E\u965F\uBBFA\u9660\u9661\uD0E0\u9662\u9663"+
+ "\uC9B1\u9664\uD4D3\uC8A8\u9665\u9666\uB8CB\u9667"+
+ "\uE8BE\uC9BC\u9668\u9669\uE8BB\u966A\uC0EE\uD0D3"+
+ "\uB2C4\uB4E5\u966B\uE8BC\u966C\u966D\uD5C8\u966E"+
+ "\u966F\u9670\u9671\u9672\uB6C5\u9673\uE8BD\uCAF8"+
+ "\uB8DC\uCCF5\u9674\u9675\u9676\uC0B4\u9677\u9678"+
+ "\uD1EE\uE8BF\uE8C2\u9679\u967A\uBABC\u967B\uB1AD"+
+ "\uBDDC\u967C\uEABD\uE8C3\u967D\uE8C6\u967E\uE8CB"+
+ "\u9680\u9681\u9682\u9683\uE8CC\u9684\uCBC9\uB0E5"+
+ "\u9685\uBCAB\u9686\u9687\uB9B9\u9688\u9689\uE8C1"+
+ "\u968A\uCDF7\u968B\uE8CA\u968C\u968D\u968E\u968F"+
+ "\uCEF6\u9690\u9691\u9692\u9693\uD5ED\u9694\uC1D6"+
+ "\uE8C4\u9695\uC3B6\u9696\uB9FB\uD6A6\uE8C8\u9697"+
+ "\u9698\u9699\uCAE0\uD4E6\u969A\uE8C0\u969B\uE8C5"+
+ "\uE8C7\u969C\uC7B9\uB7E3\u969D\uE8C9\u969E\uBFDD"+
+ "\uE8D2\u969F\u96A0\uE8D7\u96A1\uE8D5\uBCDC\uBCCF"+
+ "\uE8DB\u96A2\u96A3\u96A4\u96A5\u96A6\u96A7\u96A8"+
+ "\u96A9\uE8DE\u96AA\uE8DA\uB1FA\u96AB\u96AC\u96AD"+
+ "\u96AE\u96AF\u96B0\u96B1\u96B2\u96B3\u96B4\uB0D8"+
+ "\uC4B3\uB8CC\uC6E2\uC8BE\uC8E1\u96B5\u96B6\u96B7"+
+ "\uE8CF\uE8D4\uE8D6\u96B8\uB9F1\uE8D8\uD7F5\u96B9"+
+ "\uC4FB\u96BA\uE8DC\u96BB\u96BC\uB2E9\u96BD\u96BE"+
+ "\u96BF\uE8D1\u96C0\u96C1\uBCED\u96C2\u96C3\uBFC2"+
+ "\uE8CD\uD6F9\u96C4\uC1F8\uB2F1\u96C5\u96C6\u96C7"+
+ "\u96C8\u96C9\u96CA\u96CB\u96CC\uE8DF\u96CD\uCAC1"+
+ "\uE8D9\u96CE\u96CF\u96D0\u96D1\uD5A4\u96D2\uB1EA"+
+ "\uD5BB\uE8CE\uE8D0\uB6B0\uE8D3\u96D3\uE8DD\uC0B8"+
+ "\u96D4\uCAF7\u96D5\uCBA8\u96D6\u96D7\uC6DC\uC0F5"+
+ "\u96D8\u96D9\u96DA\u96DB\u96DC\uE8E9\u96DD\u96DE"+
+ "\u96DF\uD0A3\u96E0\u96E1\u96E2\u96E3\u96E4\u96E5"+
+ "\u96E6\uE8F2\uD6EA\u96E7\u96E8\u96E9\u96EA\u96EB"+
+ "\u96EC\u96ED\uE8E0\uE8E1\u96EE\u96EF\u96F0\uD1F9"+
+ "\uBACB\uB8F9\u96F1\u96F2\uB8F1\uD4D4\uE8EF\u96F3"+
+ "\uE8EE\uE8EC\uB9F0\uCCD2\uE8E6\uCEA6\uBFF2\u96F4"+
+ "\uB0B8\uE8F1\uE8F0\u96F5\uD7C0\u96F6\uE8E4\u96F7"+
+ "\uCDA9\uC9A3\u96F8\uBBB8\uBDDB\uE8EA\u96F9\u96FA"+
+ "\u96FB\u96FC\u96FD\u96FE\u9740\u9741\u9742\u9743"+
+ "\uE8E2\uE8E3\uE8E5\uB5B5\uE8E7\uC7C5\uE8EB\uE8ED"+
+ "\uBDB0\uD7AE\u9744\uE8F8\u9745\u9746\u9747\u9748"+
+ "\u9749\u974A\u974B\u974C\uE8F5\u974D\uCDB0\uE8F6"+
+ "\u974E\u974F\u9750\u9751\u9752\u9753\u9754\u9755"+
+ "\u9756\uC1BA\u9757\uE8E8\u9758\uC3B7\uB0F0\u9759"+
+ "\u975A\u975B\u975C\u975D\u975E\u975F\u9760\uE8F4"+
+ "\u9761\u9762\u9763\uE8F7\u9764\u9765\u9766\uB9A3"+
+ "\u9767\u9768\u9769\u976A\u976B\u976C\u976D\u976E"+
+ "\u976F\u9770\uC9D2\u9771\u9772\u9773\uC3CE\uCEE0"+
+ "\uC0E6\u9774\u9775\u9776\u9777\uCBF3\u9778\uCCDD"+
+ "\uD0B5\u9779\u977A\uCAE1\u977B\uE8F3\u977C\u977D"+
+ "\u977E\u9780\u9781\u9782\u9783\u9784\u9785\u9786"+
+ "\uBCEC\u9787\uE8F9\u9788\u9789\u978A\u978B\u978C"+
+ "\u978D\uC3DE\u978E\uC6E5\u978F\uB9F7\u9790\u9791"+
+ "\u9792\u9793\uB0F4\u9794\u9795\uD7D8\u9796\u9797"+
+ "\uBCAC\u9798\uC5EF\u9799\u979A\u979B\u979C\u979D"+
+ "\uCCC4\u979E\u979F\uE9A6\u97A0\u97A1\u97A2\u97A3"+
+ "\u97A4\u97A5\u97A6\u97A7\u97A8\u97A9\uC9AD\u97AA"+
+ "\uE9A2\uC0E2\u97AB\u97AC\u97AD\uBFC3\u97AE\u97AF"+
+ "\u97B0\uE8FE\uB9D7\u97B1\uE8FB\u97B2\u97B3\u97B4"+
+ "\u97B5\uE9A4\u97B6\u97B7\u97B8\uD2CE\u97B9\u97BA"+
+ "\u97BB\u97BC\u97BD\uE9A3\u97BE\uD6B2\uD7B5\u97BF"+
+ "\uE9A7\u97C0\uBDB7\u97C1\u97C2\u97C3\u97C4\u97C5"+
+ "\u97C6\u97C7\u97C8\u97C9\u97CA\u97CB\u97CC\uE8FC"+
+ "\uE8FD\u97CD\u97CE\u97CF\uE9A1\u97D0\u97D1\u97D2"+
+ "\u97D3\u97D4\u97D5\u97D6\u97D7\uCDD6\u97D8\u97D9"+
+ "\uD2AC\u97DA\u97DB\u97DC\uE9B2\u97DD\u97DE\u97DF"+
+ "\u97E0\uE9A9\u97E1\u97E2\u97E3\uB4AA\u97E4\uB4BB"+
+ "\u97E5\u97E6\uE9AB\u97E7\u97E8\u97E9\u97EA\u97EB"+
+ "\u97EC\u97ED\u97EE\u97EF\u97F0\u97F1\u97F2\u97F3"+
+ "\u97F4\u97F5\u97F6\u97F7\uD0A8\u97F8\u97F9\uE9A5"+
+ "\u97FA\u97FB\uB3FE\u97FC\u97FD\uE9AC\uC0E3\u97FE"+
+ "\uE9AA\u9840\u9841\uE9B9\u9842\u9843\uE9B8\u9844"+
+ "\u9845\u9846\u9847\uE9AE\u9848\u9849\uE8FA\u984A"+
+ "\u984B\uE9A8\u984C\u984D\u984E\u984F\u9850\uBFAC"+
+ "\uE9B1\uE9BA\u9851\u9852\uC2A5\u9853\u9854\u9855"+
+ "\uE9AF\u9856\uB8C5\u9857\uE9AD\u9858\uD3DC\uE9B4"+
+ "\uE9B5\uE9B7\u9859\u985A\u985B\uE9C7\u985C\u985D"+
+ "\u985E\u985F\u9860\u9861\uC0C6\uE9C5\u9862\u9863"+
+ "\uE9B0\u9864\u9865\uE9BB\uB0F1\u9866\u9867\u9868"+
+ "\u9869\u986A\u986B\u986C\u986D\u986E\u986F\uE9BC"+
+ "\uD5A5\u9870\u9871\uE9BE\u9872\uE9BF\u9873\u9874"+
+ "\u9875\uE9C1\u9876\u9877\uC1F1\u9878\u9879\uC8B6"+
+ "\u987A\u987B\u987C\uE9BD\u987D\u987E\u9880\u9881"+
+ "\u9882\uE9C2\u9883\u9884\u9885\u9886\u9887\u9888"+
+ "\u9889\u988A\uE9C3\u988B\uE9B3\u988C\uE9B6\u988D"+
+ "\uBBB1\u988E\u988F\u9890\uE9C0\u9891\u9892\u9893"+
+ "\u9894\u9895\u9896\uBCF7\u9897\u9898\u9899\uE9C4"+
+ "\uE9C6\u989A\u989B\u989C\u989D\u989E\u989F\u98A0"+
+ "\u98A1\u98A2\u98A3\u98A4\u98A5\uE9CA\u98A6\u98A7"+
+ "\u98A8\u98A9\uE9CE\u98AA\u98AB\u98AC\u98AD\u98AE"+
+ "\u98AF\u98B0\u98B1\u98B2\u98B3\uB2DB\u98B4\uE9C8"+
+ "\u98B5\u98B6\u98B7\u98B8\u98B9\u98BA\u98BB\u98BC"+
+ "\u98BD\u98BE\uB7AE\u98BF\u98C0\u98C1\u98C2\u98C3"+
+ "\u98C4\u98C5\u98C6\u98C7\u98C8\u98C9\u98CA\uE9CB"+
+ "\uE9CC\u98CB\u98CC\u98CD\u98CE\u98CF\u98D0\uD5C1"+
+ "\u98D1\uC4A3\u98D2\u98D3\u98D4\u98D5\u98D6\u98D7"+
+ "\uE9D8\u98D8\uBAE1\u98D9\u98DA\u98DB\u98DC\uE9C9"+
+ "\u98DD\uD3A3\u98DE\u98DF\u98E0\uE9D4\u98E1\u98E2"+
+ "\u98E3\u98E4\u98E5\u98E6\u98E7\uE9D7\uE9D0\u98E8"+
+ "\u98E9\u98EA\u98EB\u98EC\uE9CF\u98ED\u98EE\uC7C1"+
+ "\u98EF\u98F0\u98F1\u98F2\u98F3\u98F4\u98F5\u98F6"+
+ "\uE9D2\u98F7\u98F8\u98F9\u98FA\u98FB\u98FC\u98FD"+
+ "\uE9D9\uB3C8\u98FE\uE9D3\u9940\u9941\u9942\u9943"+
+ "\u9944\uCFF0\u9945\u9946\u9947\uE9CD\u9948\u9949"+
+ "\u994A\u994B\u994C\u994D\u994E\u994F\u9950\u9951"+
+ "\u9952\uB3F7\u9953\u9954\u9955\u9956\u9957\u9958"+
+ "\u9959\uE9D6\u995A\u995B\uE9DA\u995C\u995D\u995E"+
+ "\uCCB4\u995F\u9960\u9961\uCFAD\u9962\u9963\u9964"+
+ "\u9965\u9966\u9967\u9968\u9969\u996A\uE9D5\u996B"+
+ "\uE9DC\uE9DB\u996C\u996D\u996E\u996F\u9970\uE9DE"+
+ "\u9971\u9972\u9973\u9974\u9975\u9976\u9977\u9978"+
+ "\uE9D1\u9979\u997A\u997B\u997C\u997D\u997E\u9980"+
+ "\u9981\uE9DD\u9982\uE9DF\uC3CA\u9983\u9984\u9985"+
+ "\u9986\u9987\u9988\u9989\u998A\u998B\u998C\u998D"+
+ "\u998E\u998F\u9990\u9991\u9992\u9993\u9994\u9995"+
+ "\u9996\u9997\u9998\u9999\u999A\u999B\u999C\u999D"+
+ "\u999E\u999F\u99A0\u99A1\u99A2\u99A3\u99A4\u99A5"+
+ "\u99A6\u99A7\u99A8\u99A9\u99AA\u99AB\u99AC\u99AD"+
+ "\u99AE\u99AF\u99B0\u99B1\u99B2\u99B3\u99B4\u99B5"+
+ "\u99B6\u99B7\u99B8\u99B9\u99BA\u99BB\u99BC\u99BD"+
+ "\u99BE\u99BF\u99C0\u99C1\u99C2\u99C3\u99C4\u99C5"+
+ "\u99C6\u99C7\u99C8\u99C9\u99CA\u99CB\u99CC\u99CD"+
+ "\u99CE\u99CF\u99D0\u99D1\u99D2\u99D3\u99D4\u99D5"+
+ "\u99D6\u99D7\u99D8\u99D9\u99DA\u99DB\u99DC\u99DD"+
+ "\u99DE\u99DF\u99E0\u99E1\u99E2\u99E3\u99E4\u99E5"+
+ "\u99E6\u99E7\u99E8\u99E9\u99EA\u99EB\u99EC\u99ED"+
+ "\u99EE\u99EF\u99F0\u99F1\u99F2\u99F3\u99F4\u99F5"+
+ "\uC7B7\uB4CE\uBBB6\uD0C0\uECA3\u99F6\u99F7\uC5B7"+
+ "\u99F8\u99F9\u99FA\u99FB\u99FC\u99FD\u99FE\u9A40"+
+ "\u9A41\u9A42\uD3FB\u9A43\u9A44\u9A45\u9A46\uECA4"+
+ "\u9A47\uECA5\uC6DB\u9A48\u9A49\u9A4A\uBFEE\u9A4B"+
+ "\u9A4C\u9A4D\u9A4E\uECA6\u9A4F\u9A50\uECA7\uD0AA"+
+ "\u9A51\uC7B8\u9A52\u9A53\uB8E8\u9A54\u9A55\u9A56"+
+ "\u9A57\u9A58\u9A59\u9A5A\u9A5B\u9A5C\u9A5D\u9A5E"+
+ "\u9A5F\uECA8\u9A60\u9A61\u9A62\u9A63\u9A64\u9A65"+
+ "\u9A66\u9A67\uD6B9\uD5FD\uB4CB\uB2BD\uCEE4\uC6E7"+
+ "\u9A68\u9A69\uCDE1\u9A6A\u9A6B\u9A6C\u9A6D\u9A6E"+
+ "\u9A6F\u9A70\u9A71\u9A72\u9A73\u9A74\u9A75\u9A76"+
+ "\u9A77\uB4F5\u9A78\uCBC0\uBCDF\u9A79\u9A7A\u9A7B"+
+ "\u9A7C\uE9E2\uE9E3\uD1EA\uE9E5\u9A7D\uB4F9\uE9E4"+
+ "\u9A7E\uD1B3\uCAE2\uB2D0\u9A80\uE9E8\u9A81\u9A82"+
+ "\u9A83\u9A84\uE9E6\uE9E7\u9A85\u9A86\uD6B3\u9A87"+
+ "\u9A88\u9A89\uE9E9\uE9EA\u9A8A\u9A8B\u9A8C\u9A8D"+
+ "\u9A8E\uE9EB\u9A8F\u9A90\u9A91\u9A92\u9A93\u9A94"+
+ "\u9A95\u9A96\uE9EC\u9A97\u9A98\u9A99\u9A9A\u9A9B"+
+ "\u9A9C\u9A9D\u9A9E\uECAF\uC5B9\uB6CE\u9A9F\uD2F3"+
+ "\u9AA0\u9AA1\u9AA2\u9AA3\u9AA4\u9AA5\u9AA6\uB5EE"+
+ "\u9AA7\uBBD9\uECB1\u9AA8\u9AA9\uD2E3\u9AAA\u9AAB"+
+ "\u9AAC\u9AAD\u9AAE\uCEE3\u9AAF\uC4B8\u9AB0\uC3BF"+
+ "\u9AB1\u9AB2\uB6BE\uD8B9\uB1C8\uB1CF\uB1D1\uC5FE"+
+ "\u9AB3\uB1D0\u9AB4\uC3AB\u9AB5\u9AB6\u9AB7\u9AB8"+
+ "\u9AB9\uD5B1\u9ABA\u9ABB\u9ABC\u9ABD\u9ABE\u9ABF"+
+ "\u9AC0\u9AC1\uEBA4\uBAC1\u9AC2\u9AC3\u9AC4\uCCBA"+
+ "\u9AC5\u9AC6\u9AC7\uEBA5\u9AC8\uEBA7\u9AC9\u9ACA"+
+ "\u9ACB\uEBA8\u9ACC\u9ACD\u9ACE\uEBA6\u9ACF\u9AD0"+
+ "\u9AD1\u9AD2\u9AD3\u9AD4\u9AD5\uEBA9\uEBAB\uEBAA"+
+ "\u9AD6\u9AD7\u9AD8\u9AD9\u9ADA\uEBAC\u9ADB\uCACF"+
+ "\uD8B5\uC3F1\u9ADC\uC3A5\uC6F8\uEBAD\uC4CA\u9ADD"+
+ "\uEBAE\uEBAF\uEBB0\uB7D5\u9ADE\u9ADF\u9AE0\uB7FA"+
+ "\u9AE1\uEBB1\uC7E2\u9AE2\uEBB3\u9AE3\uBAA4\uD1F5"+
+ "\uB0B1\uEBB2\uEBB4\u9AE4\u9AE5\u9AE6\uB5AA\uC2C8"+
+ "\uC7E8\u9AE7\uEBB5\u9AE8\uCBAE\uE3DF\u9AE9\u9AEA"+
+ "\uD3C0\u9AEB\u9AEC\u9AED\u9AEE\uD9DB\u9AEF\u9AF0"+
+ "\uCDA1\uD6AD\uC7F3\u9AF1\u9AF2\u9AF3\uD9E0\uBBE3"+
+ "\u9AF4\uBABA\uE3E2\u9AF5\u9AF6\u9AF7\u9AF8\u9AF9"+
+ "\uCFAB\u9AFA\u9AFB\u9AFC\uE3E0\uC9C7\u9AFD\uBAB9"+
+ "\u9AFE\u9B40\u9B41\uD1B4\uE3E1\uC8EA\uB9AF\uBDAD"+
+ "\uB3D8\uCEDB\u9B42\u9B43\uCCC0\u9B44\u9B45\u9B46"+
+ "\uE3E8\uE3E9\uCDF4\u9B47\u9B48\u9B49\u9B4A\u9B4B"+
+ "\uCCAD\u9B4C\uBCB3\u9B4D\uE3EA\u9B4E\uE3EB\u9B4F"+
+ "\u9B50\uD0DA\u9B51\u9B52\u9B53\uC6FB\uB7DA\u9B54"+
+ "\u9B55\uC7DF\uD2CA\uCED6\u9B56\uE3E4\uE3EC\u9B57"+
+ "\uC9F2\uB3C1\u9B58\u9B59\uE3E7\u9B5A\u9B5B\uC6E3"+
+ "\uE3E5\u9B5C\u9B5D\uEDB3\uE3E6\u9B5E\u9B5F\u9B60"+
+ "\u9B61\uC9B3\u9B62\uC5E6\u9B63\u9B64\u9B65\uB9B5"+
+ "\u9B66\uC3BB\u9B67\uE3E3\uC5BD\uC1A4\uC2D9\uB2D7"+
+ "\u9B68\uE3ED\uBBA6\uC4AD\u9B69\uE3F0\uBEDA\u9B6A"+
+ "\u9B6B\uE3FB\uE3F5\uBAD3\u9B6C\u9B6D\u9B6E\u9B6F"+
+ "\uB7D0\uD3CD\u9B70\uD6CE\uD5D3\uB9C1\uD5B4\uD1D8"+
+ "\u9B71\u9B72\u9B73\u9B74\uD0B9\uC7F6\u9B75\u9B76"+
+ "\u9B77\uC8AA\uB2B4\u9B78\uC3DA\u9B79\u9B7A\u9B7B"+
+ "\uE3EE\u9B7C\u9B7D\uE3FC\uE3EF\uB7A8\uE3F7\uE3F4"+
+ "\u9B7E\u9B80\u9B81\uB7BA\u9B82\u9B83\uC5A2\u9B84"+
+ "\uE3F6\uC5DD\uB2A8\uC6FC\u9B85\uC4E0\u9B86\u9B87"+
+ "\uD7A2\u9B88\uC0E1\uE3F9\u9B89\u9B8A\uE3FA\uE3FD"+
+ "\uCCA9\uE3F3\u9B8B\uD3BE\u9B8C\uB1C3\uEDB4\uE3F1"+
+ "\uE3F2\u9B8D\uE3F8\uD0BA\uC6C3\uD4F3\uE3FE\u9B8E"+
+ "\u9B8F\uBDE0\u9B90\u9B91\uE4A7\u9B92\u9B93\uE4A6"+
+ "\u9B94\u9B95\u9B96\uD1F3\uE4A3\u9B97\uE4A9\u9B98"+
+ "\u9B99\u9B9A\uC8F7\u9B9B\u9B9C\u9B9D\u9B9E\uCFB4"+
+ "\u9B9F\uE4A8\uE4AE\uC2E5\u9BA0\u9BA1\uB6B4\u9BA2"+
+ "\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7\uBDF2\u9BA8\uE4A2"+
+ "\u9BA9\u9BAA\uBAE9\uE4AA\u9BAB\u9BAC\uE4AC\u9BAD"+
+ "\u9BAE\uB6FD\uD6DE\uE4B2\u9BAF\uE4AD\u9BB0\u9BB1"+
+ "\u9BB2\uE4A1\u9BB3\uBBEE\uCDDD\uC7A2\uC5C9\u9BB4"+
+ "\u9BB5\uC1F7\u9BB6\uE4A4\u9BB7\uC7B3\uBDAC\uBDBD"+
+ "\uE4A5\u9BB8\uD7C7\uB2E2\u9BB9\uE4AB\uBCC3\uE4AF"+
+ "\u9BBA\uBBEB\uE4B0\uC5A8\uE4B1\u9BBB\u9BBC\u9BBD"+
+ "\u9BBE\uD5E3\uBFA3\u9BBF\uE4BA\u9BC0\uE4B7\u9BC1"+
+ "\uE4BB\u9BC2\u9BC3\uE4BD\u9BC4\u9BC5\uC6D6\u9BC6"+
+ "\u9BC7\uBAC6\uC0CB\u9BC8\u9BC9\u9BCA\uB8A1\uE4B4"+
+ "\u9BCB\u9BCC\u9BCD\u9BCE\uD4A1\u9BCF\u9BD0\uBAA3"+
+ "\uBDFE\u9BD1\u9BD2\u9BD3\uE4BC\u9BD4\u9BD5\u9BD6"+
+ "\u9BD7\u9BD8\uCDBF\u9BD9\u9BDA\uC4F9\u9BDB\u9BDC"+
+ "\uCFFB\uC9E6\u9BDD\u9BDE\uD3BF\u9BDF\uCFD1\u9BE0"+
+ "\u9BE1\uE4B3\u9BE2\uE4B8\uE4B9\uCCE9\u9BE3\u9BE4"+
+ "\u9BE5\u9BE6\u9BE7\uCCCE\u9BE8\uC0D4\uE4B5\uC1B0"+
+ "\uE4B6\uCED0\u9BE9\uBBC1\uB5D3\u9BEA\uC8F3\uBDA7"+
+ "\uD5C7\uC9AC\uB8A2\uE4CA\u9BEB\u9BEC\uE4CC\uD1C4"+
+ "\u9BED\u9BEE\uD2BA\u9BEF\u9BF0\uBAAD\u9BF1\u9BF2"+
+ "\uBAD4\u9BF3\u9BF4\u9BF5\u9BF6\u9BF7\u9BF8\uE4C3"+
+ "\uB5ED\u9BF9\u9BFA\u9BFB\uD7CD\uE4C0\uCFFD\uE4BF"+
+ "\u9BFC\u9BFD\u9BFE\uC1DC\uCCCA\u9C40\u9C41\u9C42"+
+ "\u9C43\uCAE7\u9C44\u9C45\u9C46\u9C47\uC4D7\u9C48"+
+ "\uCCD4\uE4C8\u9C49\u9C4A\u9C4B\uE4C7\uE4C1\u9C4C"+
+ "\uE4C4\uB5AD\u9C4D\u9C4E\uD3D9\u9C4F\uE4C6\u9C50"+
+ "\u9C51\u9C52\u9C53\uD2F9\uB4E3\u9C54\uBBB4\u9C55"+
+ "\u9C56\uC9EE\u9C57\uB4BE\u9C58\u9C59\u9C5A\uBBEC"+
+ "\u9C5B\uD1CD\u9C5C\uCCED\uEDB5\u9C5D\u9C5E\u9C5F"+
+ "\u9C60\u9C61\u9C62\u9C63\u9C64\uC7E5\u9C65\u9C66"+
+ "\u9C67\u9C68\uD4A8\u9C69\uE4CB\uD7D5\uE4C2\u9C6A"+
+ "\uBDA5\uE4C5\u9C6B\u9C6C\uD3E6\u9C6D\uE4C9\uC9F8"+
+ "\u9C6E\u9C6F\uE4BE\u9C70\u9C71\uD3E5\u9C72\u9C73"+
+ "\uC7FE\uB6C9\u9C74\uD4FC\uB2B3\uE4D7\u9C75\u9C76"+
+ "\u9C77\uCEC2\u9C78\uE4CD\u9C79\uCEBC\u9C7A\uB8DB"+
+ "\u9C7B\u9C7C\uE4D6\u9C7D\uBFCA\u9C7E\u9C80\u9C81"+
+ "\uD3CE\u9C82\uC3EC\u9C83\u9C84\u9C85\u9C86\u9C87"+
+ "\u9C88\u9C89\u9C8A\uC5C8\uE4D8\u9C8B\u9C8C\u9C8D"+
+ "\u9C8E\u9C8F\u9C90\u9C91\u9C92\uCDC4\uE4CF\u9C93"+
+ "\u9C94\u9C95\u9C96\uE4D4\uE4D5\u9C97\uBAFE\u9C98"+
+ "\uCFE6\u9C99\u9C9A\uD5BF\u9C9B\u9C9C\u9C9D\uE4D2"+
+ "\u9C9E\u9C9F\u9CA0\u9CA1\u9CA2\u9CA3\u9CA4\u9CA5"+
+ "\u9CA6\u9CA7\u9CA8\uE4D0\u9CA9\u9CAA\uE4CE\u9CAB"+
+ "\u9CAC\u9CAD\u9CAE\u9CAF\u9CB0\u9CB1\u9CB2\u9CB3"+
+ "\u9CB4\u9CB5\u9CB6\u9CB7\u9CB8\u9CB9\uCDE5\uCAAA"+
+ "\u9CBA\u9CBB\u9CBC\uC0A3\u9CBD\uBDA6\uE4D3\u9CBE"+
+ "\u9CBF\uB8C8\u9CC0\u9CC1\u9CC2\u9CC3\u9CC4\uE4E7"+
+ "\uD4B4\u9CC5\u9CC6\u9CC7\u9CC8\u9CC9\u9CCA\u9CCB"+
+ "\uE4DB\u9CCC\u9CCD\u9CCE\uC1EF\u9CCF\u9CD0\uE4E9"+
+ "\u9CD1\u9CD2\uD2E7\u9CD3\u9CD4\uE4DF\u9CD5\uE4E0"+
+ "\u9CD6\u9CD7\uCFAA\u9CD8\u9CD9\u9CDA\u9CDB\uCBDD"+
+ "\u9CDC\uE4DA\uE4D1\u9CDD\uE4E5\u9CDE\uC8DC\uE4E3"+
+ "\u9CDF\u9CE0\uC4E7\uE4E2\u9CE1\uE4E1\u9CE2\u9CE3"+
+ "\u9CE4\uB3FC\uE4E8\u9CE5\u9CE6\u9CE7\u9CE8\uB5E1"+
+ "\u9CE9\u9CEA\u9CEB\uD7CC\u9CEC\u9CED\u9CEE\uE4E6"+
+ "\u9CEF\uBBAC\u9CF0\uD7D2\uCCCF\uEBF8\u9CF1\uE4E4"+
+ "\u9CF2\u9CF3\uB9F6\u9CF4\u9CF5\u9CF6\uD6CD\uE4D9"+
+ "\uE4DC\uC2FA\uE4DE\u9CF7\uC2CB\uC0C4\uC2D0\u9CF8"+
+ "\uB1F5\uCCB2\u9CF9\u9CFA\u9CFB\u9CFC\u9CFD\u9CFE"+
+ "\u9D40\u9D41\u9D42\u9D43\uB5CE\u9D44\u9D45\u9D46"+
+ "\u9D47\uE4EF\u9D48\u9D49\u9D4A\u9D4B\u9D4C\u9D4D"+
+ "\u9D4E\u9D4F\uC6AF\u9D50\u9D51\u9D52\uC6E1\u9D53"+
+ "\u9D54\uE4F5\u9D55\u9D56\u9D57\u9D58\u9D59\uC2A9"+
+ "\u9D5A\u9D5B\u9D5C\uC0EC\uD1DD\uE4EE\u9D5D\u9D5E"+
+ "\u9D5F\u9D60\u9D61\u9D62\u9D63\u9D64\u9D65\u9D66"+
+ "\uC4AE\u9D67\u9D68\u9D69\uE4ED\u9D6A\u9D6B\u9D6C"+
+ "\u9D6D\uE4F6\uE4F4\uC2FE\u9D6E\uE4DD\u9D6F\uE4F0"+
+ "\u9D70\uCAFE\u9D71\uD5C4\u9D72\u9D73\uE4F1\u9D74"+
+ "\u9D75\u9D76\u9D77\u9D78\u9D79\u9D7A\uD1FA\u9D7B"+
+ "\u9D7C\u9D7D\u9D7E\u9D80\u9D81\u9D82\uE4EB\uE4EC"+
+ "\u9D83\u9D84\u9D85\uE4F2\u9D86\uCEAB\u9D87\u9D88"+
+ "\u9D89\u9D8A\u9D8B\u9D8C\u9D8D\u9D8E\u9D8F\u9D90"+
+ "\uC5CB\u9D91\u9D92\u9D93\uC7B1\u9D94\uC2BA\u9D95"+
+ "\u9D96\u9D97\uE4EA\u9D98\u9D99\u9D9A\uC1CA\u9D9B"+
+ "\u9D9C\u9D9D\u9D9E\u9D9F\u9DA0\uCCB6\uB3B1\u9DA1"+
+ "\u9DA2\u9DA3\uE4FB\u9DA4\uE4F3\u9DA5\u9DA6\u9DA7"+
+ "\uE4FA\u9DA8\uE4FD\u9DA9\uE4FC\u9DAA\u9DAB\u9DAC"+
+ "\u9DAD\u9DAE\u9DAF\u9DB0\uB3CE\u9DB1\u9DB2\u9DB3"+
+ "\uB3BA\uE4F7\u9DB4\u9DB5\uE4F9\uE4F8\uC5EC\u9DB6"+
+ "\u9DB7\u9DB8\u9DB9\u9DBA\u9DBB\u9DBC\u9DBD\u9DBE"+
+ "\u9DBF\u9DC0\u9DC1\u9DC2\uC0BD\u9DC3\u9DC4\u9DC5"+
+ "\u9DC6\uD4E8\u9DC7\u9DC8\u9DC9\u9DCA\u9DCB\uE5A2"+
+ "\u9DCC\u9DCD\u9DCE\u9DCF\u9DD0\u9DD1\u9DD2\u9DD3"+
+ "\u9DD4\u9DD5\u9DD6\uB0C4\u9DD7\u9DD8\uE5A4\u9DD9"+
+ "\u9DDA\uE5A3\u9DDB\u9DDC\u9DDD\u9DDE\u9DDF\u9DE0"+
+ "\uBCA4\u9DE1\uE5A5\u9DE2\u9DE3\u9DE4\u9DE5\u9DE6"+
+ "\u9DE7\uE5A1\u9DE8\u9DE9\u9DEA\u9DEB\u9DEC\u9DED"+
+ "\u9DEE\uE4FE\uB1F4\u9DEF\u9DF0\u9DF1\u9DF2\u9DF3"+
+ "\u9DF4\u9DF5\u9DF6\u9DF7\u9DF8\u9DF9\uE5A8\u9DFA"+
+ "\uE5A9\uE5A6\u9DFB\u9DFC\u9DFD\u9DFE\u9E40\u9E41"+
+ "\u9E42\u9E43\u9E44\u9E45\u9E46\u9E47\uE5A7\uE5AA"+
+ "\u9E48\u9E49\u9E4A\u9E4B\u9E4C\u9E4D\u9E4E\u9E4F"+
+ "\u9E50\u9E51\u9E52\u9E53\u9E54\u9E55\u9E56\u9E57";
+
+ private final static String innerEncoderIndex7=
+ "\u9E58\u9E59\u9E5A\u9E5B\u9E5C\u9E5D\u9E5E\u9E5F"+
+ "\u9E60\u9E61\u9E62\u9E63\u9E64\u9E65\u9E66\u9E67"+
+ "\u9E68\uC6D9\u9E69\u9E6A\u9E6B\u9E6C\u9E6D\u9E6E"+
+ "\u9E6F\u9E70\uE5AB\uE5AD\u9E71\u9E72\u9E73\u9E74"+
+ "\u9E75\u9E76\u9E77\uE5AC\u9E78\u9E79\u9E7A\u9E7B"+
+ "\u9E7C\u9E7D\u9E7E\u9E80\u9E81\u9E82\u9E83\u9E84"+
+ "\u9E85\u9E86\u9E87\u9E88\u9E89\uE5AF\u9E8A\u9E8B"+
+ "\u9E8C\uE5AE\u9E8D\u9E8E\u9E8F\u9E90\u9E91\u9E92"+
+ "\u9E93\u9E94\u9E95\u9E96\u9E97\u9E98\u9E99\u9E9A"+
+ "\u9E9B\u9E9C\u9E9D\u9E9E\uB9E0\u9E9F\u9EA0\uE5B0"+
+ "\u9EA1\u9EA2\u9EA3\u9EA4\u9EA5\u9EA6\u9EA7\u9EA8"+
+ "\u9EA9\u9EAA\u9EAB\u9EAC\u9EAD\u9EAE\uE5B1\u9EAF"+
+ "\u9EB0\u9EB1\u9EB2\u9EB3\u9EB4\u9EB5\u9EB6\u9EB7"+
+ "\u9EB8\u9EB9\u9EBA\uBBF0\uECE1\uC3F0\u9EBB\uB5C6"+
+ "\uBBD2\u9EBC\u9EBD\u9EBE\u9EBF\uC1E9\uD4EE\u9EC0"+
+ "\uBEC4\u9EC1\u9EC2\u9EC3\uD7C6\u9EC4\uD4D6\uB2D3"+
+ "\uECBE\u9EC5\u9EC6\u9EC7\u9EC8\uEAC1\u9EC9\u9ECA"+
+ "\u9ECB\uC2AF\uB4B6\u9ECC\u9ECD\u9ECE\uD1D7\u9ECF"+
+ "\u9ED0\u9ED1\uB3B4\u9ED2\uC8B2\uBFBB\uECC0\u9ED3"+
+ "\u9ED4\uD6CB\u9ED5\u9ED6\uECBF\uECC1\u9ED7\u9ED8"+
+ "\u9ED9\u9EDA\u9EDB\u9EDC\u9EDD\u9EDE\u9EDF\u9EE0"+
+ "\u9EE1\u9EE2\u9EE3\uECC5\uBEE6\uCCBF\uC5DA\uBEBC"+
+ "\u9EE4\uECC6\u9EE5\uB1FE\u9EE6\u9EE7\u9EE8\uECC4"+
+ "\uD5A8\uB5E3\u9EE9\uECC2\uC1B6\uB3E3\u9EEA\u9EEB"+
+ "\uECC3\uCBB8\uC0C3\uCCFE\u9EEC\u9EED\u9EEE\u9EEF"+
+ "\uC1D2\u9EF0\uECC8\u9EF1\u9EF2\u9EF3\u9EF4\u9EF5"+
+ "\u9EF6\u9EF7\u9EF8\u9EF9\u9EFA\u9EFB\u9EFC\u9EFD"+
+ "\uBAE6\uC0D3\u9EFE\uD6F2\u9F40\u9F41\u9F42\uD1CC"+
+ "\u9F43\u9F44\u9F45\u9F46\uBFBE\u9F47\uB7B3\uC9D5"+
+ "\uECC7\uBBE2\u9F48\uCCCC\uBDFD\uC8C8\u9F49\uCFA9"+
+ "\u9F4A\u9F4B\u9F4C\u9F4D\u9F4E\u9F4F\u9F50\uCDE9"+
+ "\u9F51\uC5EB\u9F52\u9F53\u9F54\uB7E9\u9F55\u9F56"+
+ "\u9F57\u9F58\u9F59\u9F5A\u9F5B\u9F5C\u9F5D\u9F5E"+
+ "\u9F5F\uD1C9\uBAB8\u9F60\u9F61\u9F62\u9F63\u9F64"+
+ "\uECC9\u9F65\u9F66\uECCA\u9F67\uBBC0\uECCB\u9F68"+
+ "\uECE2\uB1BA\uB7D9\u9F69\u9F6A\u9F6B\u9F6C\u9F6D"+
+ "\u9F6E\u9F6F\u9F70\u9F71\u9F72\u9F73\uBDB9\u9F74"+
+ "\u9F75\u9F76\u9F77\u9F78\u9F79\u9F7A\u9F7B\uECCC"+
+ "\uD1E6\uECCD\u9F7C\u9F7D\u9F7E\u9F80\uC8BB\u9F81"+
+ "\u9F82\u9F83\u9F84\u9F85\u9F86\u9F87\u9F88\u9F89"+
+ "\u9F8A\u9F8B\u9F8C\u9F8D\u9F8E\uECD1\u9F8F\u9F90"+
+ "\u9F91\u9F92\uECD3\u9F93\uBBCD\u9F94\uBCE5\u9F95"+
+ "\u9F96\u9F97\u9F98\u9F99\u9F9A\u9F9B\u9F9C\u9F9D"+
+ "\u9F9E\u9F9F\u9FA0\u9FA1\uECCF\u9FA2\uC9B7\u9FA3"+
+ "\u9FA4\u9FA5\u9FA6\u9FA7\uC3BA\u9FA8\uECE3\uD5D5"+
+ "\uECD0\u9FA9\u9FAA\u9FAB\u9FAC\u9FAD\uD6F3\u9FAE"+
+ "\u9FAF\u9FB0\uECD2\uECCE\u9FB1\u9FB2\u9FB3\u9FB4"+
+ "\uECD4\u9FB5\uECD5\u9FB6\u9FB7\uC9BF\u9FB8\u9FB9"+
+ "\u9FBA\u9FBB\u9FBC\u9FBD\uCFA8\u9FBE\u9FBF\u9FC0"+
+ "\u9FC1\u9FC2\uD0DC\u9FC3\u9FC4\u9FC5\u9FC6\uD1AC"+
+ "\u9FC7\u9FC8\u9FC9\u9FCA\uC8DB\u9FCB\u9FCC\u9FCD"+
+ "\uECD6\uCEF5\u9FCE\u9FCF\u9FD0\u9FD1\u9FD2\uCAEC"+
+ "\uECDA\u9FD3\u9FD4\u9FD5\u9FD6\u9FD7\u9FD8\u9FD9"+
+ "\uECD9\u9FDA\u9FDB\u9FDC\uB0BE\u9FDD\u9FDE\u9FDF"+
+ "\u9FE0\u9FE1\u9FE2\uECD7\u9FE3\uECD8\u9FE4\u9FE5"+
+ "\u9FE6\uECE4\u9FE7\u9FE8\u9FE9\u9FEA\u9FEB\u9FEC"+
+ "\u9FED\u9FEE\u9FEF\uC8BC\u9FF0\u9FF1\u9FF2\u9FF3"+
+ "\u9FF4\u9FF5\u9FF6\u9FF7\u9FF8\u9FF9\uC1C7\u9FFA"+
+ "\u9FFB\u9FFC\u9FFD\u9FFE\uECDC\uD1E0\uA040\uA041"+
+ "\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049"+
+ "\uECDB\uA04A\uA04B\uA04C\uA04D\uD4EF\uA04E\uECDD"+
+ "\uA04F\uA050\uA051\uA052\uA053\uA054\uDBC6\uA055"+
+ "\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D"+
+ "\uA05E\uECDE\uA05F\uA060\uA061\uA062\uA063\uA064"+
+ "\uA065\uA066\uA067\uA068\uA069\uA06A\uB1AC\uA06B"+
+ "\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073"+
+ "\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B"+
+ "\uA07C\uA07D\uA07E\uA080\uA081\uECDF\uA082\uA083"+
+ "\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B"+
+ "\uECE0\uA08C\uD7A6\uA08D\uC5C0\uA08E\uA08F\uA090"+
+ "\uEBBC\uB0AE\uA091\uA092\uA093\uBEF4\uB8B8\uD2AF"+
+ "\uB0D6\uB5F9\uA094\uD8B3\uA095\uCBAC\uA096\uE3DD"+
+ "\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uC6AC"+
+ "\uB0E6\uA09E\uA09F\uA0A0\uC5C6\uEBB9\uA0A1\uA0A2"+
+ "\uA0A3\uA0A4\uEBBA\uA0A5\uA0A6\uA0A7\uEBBB\uA0A8"+
+ "\uA0A9\uD1C0\uA0AA\uC5A3\uA0AB\uEAF2\uA0AC\uC4B2"+
+ "\uA0AD\uC4B5\uC0CE\uA0AE\uA0AF\uA0B0\uEAF3\uC4C1"+
+ "\uA0B1\uCEEF\uA0B2\uA0B3\uA0B4\uA0B5\uEAF0\uEAF4"+
+ "\uA0B6\uA0B7\uC9FC\uA0B8\uA0B9\uC7A3\uA0BA\uA0BB"+
+ "\uA0BC\uCCD8\uCEFE\uA0BD\uA0BE\uA0BF\uEAF5\uEAF6"+
+ "\uCFAC\uC0E7\uA0C0\uA0C1\uEAF7\uA0C2\uA0C3\uA0C4"+
+ "\uA0C5\uA0C6\uB6BF\uEAF8\uA0C7\uEAF9\uA0C8\uEAFA"+
+ "\uA0C9\uA0CA\uEAFB\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF"+
+ "\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uEAF1"+
+ "\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE"+
+ "\uA0DF\uA0E0\uA0E1\uA0E2\uC8AE\uE1EB\uA0E3\uB7B8"+
+ "\uE1EC\uA0E4\uA0E5\uA0E6\uE1ED\uA0E7\uD7B4\uE1EE"+
+ "\uE1EF\uD3CC\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED"+
+ "\uA0EE\uE1F1\uBFF1\uE1F0\uB5D2\uA0EF\uA0F0\uA0F1"+
+ "\uB1B7\uA0F2\uA0F3\uA0F4\uA0F5\uE1F3\uE1F2\uA0F6"+
+ "\uBAFC\uA0F7\uE1F4\uA0F8\uA0F9\uA0FA\uA0FB\uB9B7"+
+ "\uA0FC\uBED1\uA0FD\uA0FE\uAA40\uAA41\uC4FC\uAA42"+
+ "\uBADD\uBDC6\uAA43\uAA44\uAA45\uAA46\uAA47\uAA48"+
+ "\uE1F5\uE1F7\uAA49\uAA4A\uB6C0\uCFC1\uCAA8\uE1F6"+
+ "\uD5F8\uD3FC\uE1F8\uE1FC\uE1F9\uAA4B\uAA4C\uE1FA"+
+ "\uC0EA\uAA4D\uE1FE\uE2A1\uC0C7\uAA4E\uAA4F\uAA50"+
+ "\uAA51\uE1FB\uAA52\uE1FD\uAA53\uAA54\uAA55\uAA56"+
+ "\uAA57\uAA58\uE2A5\uAA59\uAA5A\uAA5B\uC1D4\uAA5C"+
+ "\uAA5D\uAA5E\uAA5F\uE2A3\uAA60\uE2A8\uB2FE\uE2A2"+
+ "\uAA61\uAA62\uAA63\uC3CD\uB2C2\uE2A7\uE2A6\uAA64"+
+ "\uAA65\uE2A4\uE2A9\uAA66\uAA67\uE2AB\uAA68\uAA69"+
+ "\uAA6A\uD0C9\uD6ED\uC3A8\uE2AC\uAA6B\uCFD7\uAA6C"+
+ "\uAA6D\uE2AE\uAA6E\uAA6F\uBAEF\uAA70\uAA71\uE9E0"+
+ "\uE2AD\uE2AA\uAA72\uAA73\uAA74\uAA75\uBBAB\uD4B3"+
+ "\uAA76\uAA77\uAA78\uAA79\uAA7A\uAA7B\uAA7C\uAA7D"+
+ "\uAA7E\uAA80\uAA81\uAA82\uAA83\uE2B0\uAA84\uAA85"+
+ "\uE2AF\uAA86\uE9E1\uAA87\uAA88\uAA89\uAA8A\uE2B1"+
+ "\uAA8B\uAA8C\uAA8D\uAA8E\uAA8F\uAA90\uAA91\uAA92"+
+ "\uE2B2\uAA93\uAA94\uAA95\uAA96\uAA97\uAA98\uAA99"+
+ "\uAA9A\uAA9B\uAA9C\uAA9D\uE2B3\uCCA1\uAA9E\uE2B4"+
+ "\uAA9F\uAAA0\uAB40\uAB41\uAB42\uAB43\uAB44\uAB45"+
+ "\uAB46\uAB47\uAB48\uAB49\uAB4A\uAB4B\uE2B5\uAB4C"+
+ "\uAB4D\uAB4E\uAB4F\uAB50\uD0FE\uAB51\uAB52\uC2CA"+
+ "\uAB53\uD3F1\uAB54\uCDF5\uAB55\uAB56\uE7E0\uAB57"+
+ "\uAB58\uE7E1\uAB59\uAB5A\uAB5B\uAB5C\uBEC1\uAB5D"+
+ "\uAB5E\uAB5F\uAB60\uC2EA\uAB61\uAB62\uAB63\uE7E4"+
+ "\uAB64\uAB65\uE7E3\uAB66\uAB67\uAB68\uAB69\uAB6A"+
+ "\uAB6B\uCDE6\uAB6C\uC3B5\uAB6D\uAB6E\uE7E2\uBBB7"+
+ "\uCFD6\uAB6F\uC1E1\uE7E9\uAB70\uAB71\uAB72\uE7E8"+
+ "\uAB73\uAB74\uE7F4\uB2A3\uAB75\uAB76\uAB77\uAB78"+
+ "\uE7EA\uAB79\uE7E6\uAB7A\uAB7B\uAB7C\uAB7D\uAB7E"+
+ "\uE7EC\uE7EB\uC9BA\uAB80\uAB81\uD5E4\uAB82\uE7E5"+
+ "\uB7A9\uE7E7\uAB83\uAB84\uAB85\uAB86\uAB87\uAB88"+
+ "\uAB89\uE7EE\uAB8A\uAB8B\uAB8C\uAB8D\uE7F3\uAB8E"+
+ "\uD6E9\uAB8F\uAB90\uAB91\uAB92\uE7ED\uAB93\uE7F2"+
+ "\uAB94\uE7F1\uAB95\uAB96\uAB97\uB0E0\uAB98\uAB99"+
+ "\uAB9A\uAB9B\uE7F5\uAB9C\uAB9D\uAB9E\uAB9F\uABA0"+
+ "\uAC40\uAC41\uAC42\uAC43\uAC44\uAC45\uAC46\uAC47"+
+ "\uAC48\uAC49\uAC4A\uC7F2\uAC4B\uC0C5\uC0ED\uAC4C"+
+ "\uAC4D\uC1F0\uE7F0\uAC4E\uAC4F\uAC50\uAC51\uE7F6"+
+ "\uCBF6\uAC52\uAC53\uAC54\uAC55\uAC56\uAC57\uAC58"+
+ "\uAC59\uAC5A\uE8A2\uE8A1\uAC5B\uAC5C\uAC5D\uAC5E"+
+ "\uAC5F\uAC60\uD7C1\uAC61\uAC62\uE7FA\uE7F9\uAC63"+
+ "\uE7FB\uAC64\uE7F7\uAC65\uE7FE\uAC66\uE7FD\uAC67"+
+ "\uE7FC\uAC68\uAC69\uC1D5\uC7D9\uC5FD\uC5C3\uAC6A"+
+ "\uAC6B\uAC6C\uAC6D\uAC6E\uC7ED\uAC6F\uAC70\uAC71"+
+ "\uAC72\uE8A3\uAC73\uAC74\uAC75\uAC76\uAC77\uAC78"+
+ "\uAC79\uAC7A\uAC7B\uAC7C\uAC7D\uAC7E\uAC80\uAC81"+
+ "\uAC82\uAC83\uAC84\uAC85\uAC86\uE8A6\uAC87\uE8A5"+
+ "\uAC88\uE8A7\uBAF7\uE7F8\uE8A4\uAC89\uC8F0\uC9AA"+
+ "\uAC8A\uAC8B\uAC8C\uAC8D\uAC8E\uAC8F\uAC90\uAC91"+
+ "\uAC92\uAC93\uAC94\uAC95\uAC96\uE8A9\uAC97\uAC98"+
+ "\uB9E5\uAC99\uAC9A\uAC9B\uAC9C\uAC9D\uD1FE\uE8A8"+
+ "\uAC9E\uAC9F\uACA0\uAD40\uAD41\uAD42\uE8AA\uAD43"+
+ "\uE8AD\uE8AE\uAD44\uC1A7\uAD45\uAD46\uAD47\uE8AF"+
+ "\uAD48\uAD49\uAD4A\uE8B0\uAD4B\uAD4C\uE8AC\uAD4D"+
+ "\uE8B4\uAD4E\uAD4F\uAD50\uAD51\uAD52\uAD53\uAD54"+
+ "\uAD55\uAD56\uAD57\uAD58\uE8AB\uAD59\uE8B1\uAD5A"+
+ "\uAD5B\uAD5C\uAD5D\uAD5E\uAD5F\uAD60\uAD61\uE8B5"+
+ "\uE8B2\uE8B3\uAD62\uAD63\uAD64\uAD65\uAD66\uAD67"+
+ "\uAD68\uAD69\uAD6A\uAD6B\uAD6C\uAD6D\uAD6E\uAD6F"+
+ "\uAD70\uAD71\uE8B7\uAD72\uAD73\uAD74\uAD75\uAD76"+
+ "\uAD77\uAD78\uAD79\uAD7A\uAD7B\uAD7C\uAD7D\uAD7E"+
+ "\uAD80\uAD81\uAD82\uAD83\uAD84\uAD85\uAD86\uAD87"+
+ "\uAD88\uAD89\uE8B6\uAD8A\uAD8B\uAD8C\uAD8D\uAD8E"+
+ "\uAD8F\uAD90\uAD91\uAD92\uB9CF\uAD93\uF0AC\uAD94"+
+ "\uF0AD\uAD95\uC6B0\uB0EA\uC8BF\uAD96\uCDDF\uAD97"+
+ "\uAD98\uAD99\uAD9A\uAD9B\uAD9C\uAD9D\uCECD\uEAB1"+
+ "\uAD9E\uAD9F\uADA0\uAE40\uEAB2\uAE41\uC6BF\uB4C9"+
+ "\uAE42\uAE43\uAE44\uAE45\uAE46\uAE47\uAE48\uEAB3"+
+ "\uAE49\uAE4A\uAE4B\uAE4C\uD5E7\uAE4D\uAE4E\uAE4F"+
+ "\uAE50\uAE51\uAE52\uAE53\uAE54\uDDF9\uAE55\uEAB4"+
+ "\uAE56\uEAB5\uAE57\uEAB6\uAE58\uAE59\uAE5A\uAE5B"+
+ "\uB8CA\uDFB0\uC9F5\uAE5C\uCCF0\uAE5D\uAE5E\uC9FA"+
+ "\uAE5F\uAE60\uAE61\uAE62\uAE63\uC9FB\uAE64\uAE65"+
+ "\uD3C3\uCBA6\uAE66\uB8A6\uF0AE\uB1C2\uAE67\uE5B8"+
+ "\uCCEF\uD3C9\uBCD7\uC9EA\uAE68\uB5E7\uAE69\uC4D0"+
+ "\uB5E9\uAE6A\uEEAE\uBBAD\uAE6B\uAE6C\uE7DE\uAE6D"+
+ "\uEEAF\uAE6E\uAE6F\uAE70\uAE71\uB3A9\uAE72\uAE73"+
+ "\uEEB2\uAE74\uAE75\uEEB1\uBDE7\uAE76\uEEB0\uCEB7"+
+ "\uAE77\uAE78\uAE79\uAE7A\uC5CF\uAE7B\uAE7C\uAE7D"+
+ "\uAE7E\uC1F4\uDBCE\uEEB3\uD0F3\uAE80\uAE81\uAE82"+
+ "\uAE83\uAE84\uAE85\uAE86\uAE87\uC2D4\uC6E8\uAE88"+
+ "\uAE89\uAE8A\uB7AC\uAE8B\uAE8C\uAE8D\uAE8E\uAE8F"+
+ "\uAE90\uAE91\uEEB4\uAE92\uB3EB\uAE93\uAE94\uAE95"+
+ "\uBBFB\uEEB5\uAE96\uAE97\uAE98\uAE99\uAE9A\uE7DC"+
+ "\uAE9B\uAE9C\uAE9D\uEEB6\uAE9E\uAE9F\uBDAE\uAEA0"+
+ "\uAF40\uAF41\uAF42\uF1E2\uAF43\uAF44\uAF45\uCAE8"+
+ "\uAF46\uD2C9\uF0DA\uAF47\uF0DB\uAF48\uF0DC\uC1C6"+
+ "\uAF49\uB8ED\uBECE\uAF4A\uAF4B\uF0DE\uAF4C\uC5B1"+
+ "\uF0DD\uD1F1\uAF4D\uF0E0\uB0CC\uBDEA\uAF4E\uAF4F"+
+ "\uAF50\uAF51\uAF52\uD2DF\uF0DF\uAF53\uB4AF\uB7E8"+
+ "\uF0E6\uF0E5\uC6A3\uF0E1\uF0E2\uB4C3\uAF54\uAF55"+
+ "\uF0E3\uD5EE\uAF56\uAF57\uCCDB\uBED2\uBCB2\uAF58"+
+ "\uAF59\uAF5A\uF0E8\uF0E7\uF0E4\uB2A1\uAF5B\uD6A2"+
+ "\uD3B8\uBEB7\uC8AC\uAF5C\uAF5D\uF0EA\uAF5E\uAF5F"+
+ "\uAF60\uAF61\uD1F7\uAF62\uD6CC\uBADB\uF0E9\uAF63"+
+ "\uB6BB\uAF64\uAF65\uCDB4\uAF66\uAF67\uC6A6\uAF68"+
+ "\uAF69\uAF6A\uC1A1\uF0EB\uF0EE\uAF6B\uF0ED\uF0F0"+
+ "\uF0EC\uAF6C\uBBBE\uF0EF\uAF6D\uAF6E\uAF6F\uAF70"+
+ "\uCCB5\uF0F2\uAF71\uAF72\uB3D5\uAF73\uAF74\uAF75"+
+ "\uAF76\uB1D4\uAF77\uAF78\uF0F3\uAF79\uAF7A\uF0F4"+
+ "\uF0F6\uB4E1\uAF7B\uF0F1\uAF7C\uF0F7\uAF7D\uAF7E"+
+ "\uAF80\uAF81\uF0FA\uAF82\uF0F8\uAF83\uAF84\uAF85"+
+ "\uF0F5\uAF86\uAF87\uAF88\uAF89\uF0FD\uAF8A\uF0F9"+
+ "\uF0FC\uF0FE\uAF8B\uF1A1\uAF8C\uAF8D\uAF8E\uCEC1"+
+ "\uF1A4\uAF8F\uF1A3\uAF90\uC1F6\uF0FB\uCADD\uAF91"+
+ "\uAF92\uB4F1\uB1F1\uCCB1\uAF93\uF1A6\uAF94\uAF95"+
+ "\uF1A7\uAF96\uAF97\uF1AC\uD5CE\uF1A9\uAF98\uAF99"+
+ "\uC8B3\uAF9A\uAF9B\uAF9C\uF1A2\uAF9D\uF1AB\uF1A8"+
+ "\uF1A5\uAF9E\uAF9F\uF1AA\uAFA0\uB040\uB041\uB042"+
+ "\uB043\uB044\uB045\uB046\uB0A9\uF1AD\uB047\uB048"+
+ "\uB049\uB04A\uB04B\uB04C\uF1AF\uB04D\uF1B1\uB04E"+
+ "\uB04F\uB050\uB051\uB052\uF1B0\uB053\uF1AE\uB054"+
+ "\uB055\uB056\uB057\uD1A2\uB058\uB059\uB05A\uB05B"+
+ "\uB05C\uB05D\uB05E\uF1B2\uB05F\uB060\uB061\uF1B3"+
+ "\uB062\uB063\uB064\uB065\uB066\uB067\uB068\uB069"+
+ "\uB9EF\uB06A\uB06B\uB5C7\uB06C\uB0D7\uB0D9\uB06D"+
+ "\uB06E\uB06F\uD4ED\uB070\uB5C4\uB071\uBDD4\uBBCA"+
+ "\uF0A7\uB072\uB073\uB8DE\uB074\uB075\uF0A8\uB076"+
+ "\uB077\uB0A8\uB078\uF0A9\uB079\uB07A\uCDEE\uB07B"+
+ "\uB07C\uF0AA\uB07D\uB07E\uB080\uB081\uB082\uB083"+
+ "\uB084\uB085\uB086\uB087\uF0AB\uB088\uB089\uB08A"+
+ "\uB08B\uB08C\uB08D\uB08E\uB08F\uB090\uC6A4\uB091"+
+ "\uB092\uD6E5\uF1E4\uB093\uF1E5\uB094\uB095\uB096"+
+ "\uB097\uB098\uB099\uB09A\uB09B\uB09C\uB09D\uC3F3"+
+ "\uB09E\uB09F\uD3DB\uB0A0\uB140\uD6D1\uC5E8\uB141"+
+ "\uD3AF\uB142\uD2E6\uB143\uB144\uEEC1\uB0BB\uD5B5"+
+ "\uD1CE\uBCE0\uBAD0\uB145\uBFF8\uB146\uB8C7\uB5C1"+
+ "\uC5CC\uB147\uB148\uCAA2\uB149\uB14A\uB14B\uC3CB"+
+ "\uB14C\uB14D\uB14E\uB14F\uB150\uEEC2\uB151\uB152"+
+ "\uB153\uB154\uB155\uB156\uB157\uB158\uC4BF\uB6A2"+
+ "\uB159\uEDEC\uC3A4\uB15A\uD6B1\uB15B\uB15C\uB15D"+
+ "\uCFE0\uEDEF\uB15E\uB15F\uC5CE\uB160\uB6DC\uB161"+
+ "\uB162\uCAA1\uB163\uB164\uEDED\uB165\uB166\uEDF0"+
+ "\uEDF1\uC3BC\uB167\uBFB4\uB168\uEDEE\uB169\uB16A"+
+ "\uB16B\uB16C\uB16D\uB16E\uB16F\uB170\uB171\uB172"+
+ "\uB173\uEDF4\uEDF2\uB174\uB175\uB176\uB177\uD5E6"+
+ "\uC3DF\uB178\uEDF3\uB179\uB17A\uB17B\uEDF6\uB17C"+
+ "\uD5A3\uD1A3\uB17D\uB17E\uB180\uEDF5\uB181\uC3D0"+
+ "\uB182\uB183\uB184\uB185\uB186\uEDF7\uBFF4\uBEEC"+
+ "\uEDF8\uB187\uCCF7\uB188\uD1DB\uB189\uB18A\uB18B"+
+ "\uD7C5\uD5F6\uB18C\uEDFC\uB18D\uB18E\uB18F\uEDFB"+
+ "\uB190\uB191\uB192\uB193\uB194\uB195\uB196\uB197"+
+ "\uEDF9\uEDFA\uB198\uB199\uB19A\uB19B\uB19C\uB19D"+
+ "\uB19E\uB19F\uEDFD\uBEA6\uB1A0\uB240\uB241\uB242"+
+ "\uB243\uCBAF\uEEA1\uB6BD\uB244\uEEA2\uC4C0\uB245"+
+ "\uEDFE\uB246\uB247\uBDDE\uB2C7\uB248\uB249\uB24A"+
+ "\uB24B\uB24C\uB24D\uB24E\uB24F\uB250\uB251\uB252"+
+ "\uB253\uB6C3\uB254\uB255\uB256\uEEA5\uD8BA\uEEA3"+
+ "\uEEA6\uB257\uB258\uB259\uC3E9\uB3F2\uB25A\uB25B"+
+ "\uB25C\uB25D\uB25E\uB25F\uEEA7\uEEA4\uCFB9\uB260"+
+ "\uB261\uEEA8\uC2F7\uB262\uB263\uB264\uB265\uB266"+
+ "\uB267\uB268\uB269\uB26A\uB26B\uB26C\uB26D\uEEA9"+
+ "\uEEAA\uB26E\uDEAB\uB26F\uB270\uC6B3\uB271\uC7C6"+
+ "\uB272\uD6F5\uB5C9\uB273\uCBB2\uB274\uB275\uB276"+
+ "\uEEAB\uB277\uB278\uCDAB\uB279\uEEAC\uB27A\uB27B"+
+ "\uB27C\uB27D\uB27E\uD5B0\uB280\uEEAD\uB281\uF6C4"+
+ "\uB282\uB283\uB284\uB285\uB286\uB287\uB288\uB289"+
+ "\uB28A\uB28B\uB28C\uB28D\uB28E\uDBC7\uB28F\uB290"+
+ "\uB291\uB292\uB293\uB294\uB295\uB296\uB297\uB4A3"+
+ "\uB298\uB299\uB29A\uC3AC\uF1E6\uB29B\uB29C\uB29D"+
+ "\uB29E\uB29F\uCAB8\uD2D3\uB2A0\uD6AA\uB340\uEFF2"+
+ "\uB341\uBED8\uB342\uBDC3\uEFF3\uB6CC\uB0AB\uB343"+
+ "\uB344\uB345\uB346\uCAAF\uB347\uB348\uEDB6\uB349"+
+ "\uEDB7\uB34A\uB34B\uB34C\uB34D\uCEF9\uB7AF\uBFF3"+
+ "\uEDB8\uC2EB\uC9B0\uB34E\uB34F\uB350\uB351\uB352"+
+ "\uB353\uEDB9\uB354\uB355\uC6F6\uBFB3\uB356\uB357"+
+ "\uB358\uEDBC\uC5F8\uB359\uD1D0\uB35A\uD7A9\uEDBA"+
+ "\uEDBB\uB35B\uD1E2\uB35C\uEDBF\uEDC0\uB35D\uEDC4"+
+ "\uB35E\uB35F\uB360\uEDC8\uB361\uEDC6\uEDCE\uD5E8"+
+ "\uB362\uEDC9\uB363\uB364\uEDC7\uEDBE\uB365\uB366"+
+ "\uC5E9\uB367\uB368\uB369\uC6C6\uB36A\uB36B\uC9E9"+
+ "\uD4D2\uEDC1\uEDC2\uEDC3\uEDC5\uB36C\uC0F9\uB36D"+
+ "\uB4A1\uB36E\uB36F\uB370\uB371\uB9E8\uB372\uEDD0"+
+ "\uB373\uB374\uB375\uB376\uEDD1\uB377\uEDCA\uB378"+
+ "\uEDCF\uB379\uCEF8\uB37A\uB37B\uCBB6\uEDCC\uEDCD"+
+ "\uB37C\uB37D\uB37E\uB380\uB381\uCFF5\uB382\uB383"+
+ "\uB384\uB385\uB386\uB387\uB388\uB389\uB38A\uB38B"+
+ "\uB38C\uB38D\uEDD2\uC1F2\uD3B2\uEDCB\uC8B7\uB38E"+
+ "\uB38F\uB390\uB391\uB392\uB393\uB394\uB395\uBCEF"+
+ "\uB396\uB397\uB398\uB399\uC5F0\uB39A\uB39B\uB39C"+
+ "\uB39D\uB39E\uB39F\uB3A0\uB440\uB441\uB442\uEDD6"+
+ "\uB443\uB5EF\uB444\uB445\uC2B5\uB0AD\uCBE9\uB446"+
+ "\uB447\uB1AE\uB448\uEDD4\uB449\uB44A\uB44B\uCDEB"+
+ "\uB5E2\uB44C\uEDD5\uEDD3\uEDD7\uB44D\uB44E\uB5FA"+
+ "\uB44F\uEDD8\uB450\uEDD9\uB451\uEDDC\uB452\uB1CC"+
+ "\uB453\uB454\uB455\uB456\uB457\uB458\uB459\uB45A"+
+ "\uC5F6\uBCEE\uEDDA\uCCBC\uB2EA\uB45B\uB45C\uB45D"+
+ "\uB45E\uEDDB\uB45F\uB460\uB461\uB462\uC4EB\uB463"+
+ "\uB464\uB4C5\uB465\uB466\uB467\uB0F5\uB468\uB469"+
+ "\uB46A\uEDDF\uC0DA\uB4E8\uB46B\uB46C\uB46D\uB46E"+
+ "\uC5CD\uB46F\uB470\uB471\uEDDD\uBFC4\uB472\uB473"+
+ "\uB474\uEDDE\uB475\uB476\uB477\uB478\uB479\uB47A"+
+ "\uB47B\uB47C\uB47D\uB47E\uB480\uB481\uB482\uB483"+
+ "\uC4A5\uB484\uB485\uB486\uEDE0\uB487\uB488\uB489"+
+ "\uB48A\uB48B\uEDE1\uB48C\uEDE3\uB48D\uB48E\uC1D7"+
+ "\uB48F\uB490\uBBC7\uB491\uB492\uB493\uB494\uB495"+
+ "\uB496\uBDB8\uB497\uB498\uB499\uEDE2\uB49A\uB49B"+
+ "\uB49C\uB49D\uB49E\uB49F\uB4A0\uB540\uB541\uB542"+
+ "\uB543\uB544\uB545\uEDE4\uB546\uB547\uB548\uB549"+
+ "\uB54A\uB54B\uB54C\uB54D\uB54E\uB54F\uEDE6\uB550"+
+ "\uB551\uB552\uB553\uB554\uEDE5\uB555\uB556\uB557"+
+ "\uB558\uB559\uB55A\uB55B\uB55C\uB55D\uB55E\uB55F"+
+ "\uB560\uB561\uB562\uB563\uEDE7\uB564\uB565\uB566"+
+ "\uB567\uB568\uCABE\uECEA\uC0F1\uB569\uC9E7\uB56A"+
+ "\uECEB\uC6EE\uB56B\uB56C\uB56D\uB56E\uECEC\uB56F"+
+ "\uC6ED\uECED\uB570\uB571\uB572\uB573\uB574\uB575"+
+ "\uB576\uB577\uB578\uECF0\uB579\uB57A\uD7E6\uECF3"+
+ "\uB57B\uB57C\uECF1\uECEE\uECEF\uD7A3\uC9F1\uCBEE"+
+ "\uECF4\uB57D\uECF2\uB57E\uB580\uCFE9\uB581\uECF6"+
+ "\uC6B1\uB582\uB583\uB584\uB585\uBCC0\uB586\uECF5"+
+ "\uB587\uB588\uB589\uB58A\uB58B\uB58C\uB58D\uB5BB"+
+ "\uBBF6\uB58E\uECF7\uB58F\uB590\uB591\uB592\uB593"+
+ "\uD9F7\uBDFB\uB594\uB595\uC2BB\uECF8\uB596\uB597"+
+ "\uB598\uB599\uECF9\uB59A\uB59B\uB59C\uB59D\uB8A3"+
+ "\uB59E\uB59F\uB5A0\uB640\uB641\uB642\uB643\uB644"+
+ "\uB645\uB646\uECFA\uB647\uB648\uB649\uB64A\uB64B"+
+ "\uB64C\uB64D\uB64E\uB64F\uB650\uB651\uB652\uECFB"+
+ "\uB653\uB654\uB655\uB656\uB657\uB658\uB659\uB65A"+
+ "\uB65B\uB65C\uB65D\uECFC\uB65E\uB65F\uB660\uB661"+
+ "\uB662\uD3ED\uD8AE\uC0EB\uB663\uC7DD\uBACC\uB664"+
+ "\uD0E3\uCBBD\uB665\uCDBA\uB666\uB667\uB8D1\uB668"+
+ "\uB669\uB1FC\uB66A\uC7EF\uB66B\uD6D6\uB66C\uB66D"+
+ "\uB66E\uBFC6\uC3EB\uB66F\uB670\uEFF5\uB671\uB672"+
+ "\uC3D8\uB673\uB674\uB675\uB676\uB677\uB678\uD7E2"+
+ "\uB679\uB67A\uB67B\uEFF7\uB3D3\uB67C\uC7D8\uD1ED"+
+ "\uB67D\uD6C8\uB67E\uEFF8\uB680\uEFF6\uB681\uBBFD"+
+ "\uB3C6\uB682\uB683\uB684\uB685\uB686\uB687\uB688"+
+ "\uBDD5\uB689\uB68A\uD2C6\uB68B\uBBE0\uB68C\uB68D"+
+ "\uCFA1\uB68E\uEFFC\uEFFB\uB68F\uB690\uEFF9\uB691"+
+ "\uB692\uB693\uB694\uB3CC\uB695\uC9D4\uCBB0\uB696"+
+ "\uB697\uB698\uB699\uB69A\uEFFE\uB69B\uB69C\uB0DE"+
+ "\uB69D\uB69E\uD6C9\uB69F\uB6A0\uB740\uEFFD\uB741"+
+ "\uB3ED\uB742\uB743\uF6D5\uB744\uB745\uB746\uB747"+
+ "\uB748\uB749\uB74A\uB74B\uB74C\uB74D\uB74E\uB74F"+
+ "\uB750\uB751\uB752\uCEC8\uB753\uB754\uB755\uF0A2"+
+ "\uB756\uF0A1\uB757\uB5BE\uBCDA\uBBFC\uB758\uB8E5"+
+ "\uB759\uB75A\uB75B\uB75C\uB75D\uB75E\uC4C2\uB75F"+
+ "\uB760\uB761\uB762\uB763\uB764\uB765\uB766\uB767"+
+ "\uB768\uF0A3\uB769\uB76A\uB76B\uB76C\uB76D\uCBEB"+
+ "\uB76E\uB76F\uB770\uB771\uB772\uB773\uB774\uB775"+
+ "\uB776\uB777\uB778\uB779\uB77A\uB77B\uB77C\uB77D"+
+ "\uB77E\uB780\uB781\uB782\uB783\uB784\uB785\uB786"+
+ "\uF0A6\uB787\uB788\uB789\uD1A8\uB78A\uBEBF\uC7EE"+
+ "\uF1B6\uF1B7\uBFD5\uB78B\uB78C\uB78D\uB78E\uB4A9"+
+ "\uF1B8\uCDBB\uB78F\uC7D4\uD5AD\uB790\uF1B9\uB791"+
+ "\uF1BA\uB792\uB793\uB794\uB795\uC7CF\uB796\uB797"+
+ "\uB798\uD2A4\uD6CF\uB799\uB79A\uF1BB\uBDD1\uB4B0"+
+ "\uBEBD\uB79B\uB79C\uB79D\uB4DC\uCED1\uB79E\uBFDF"+
+ "\uF1BD\uB79F\uB7A0\uB840\uB841\uBFFA\uF1BC\uB842"+
+ "\uF1BF\uB843\uB844\uB845\uF1BE\uF1C0\uB846\uB847"+
+ "\uB848\uB849\uB84A\uF1C1\uB84B\uB84C\uB84D\uB84E"+
+ "\uB84F\uB850\uB851\uB852\uB853\uB854\uB855\uC1FE"+
+ "\uB856\uB857\uB858\uB859\uB85A\uB85B\uB85C\uB85D"+
+ "\uB85E\uB85F\uB860\uC1A2\uB861\uB862\uB863\uB864"+
+ "\uB865\uB866\uB867\uB868\uB869\uB86A\uCAFA\uB86B"+
+ "\uB86C\uD5BE\uB86D\uB86E\uB86F\uB870\uBEBA\uBEB9"+
+ "\uD5C2\uB871\uB872\uBFA2\uB873\uCDAF\uF1B5\uB874"+
+ "\uB875\uB876\uB877\uB878\uB879\uBDDF\uB87A\uB6CB"+
+ "\uB87B\uB87C\uB87D\uB87E\uB880\uB881\uB882\uB883"+
+ "\uB884\uD6F1\uF3C3\uB885\uB886\uF3C4\uB887\uB8CD"+
+ "\uB888\uB889\uB88A\uF3C6\uF3C7\uB88B\uB0CA\uB88C"+
+ "\uF3C5\uB88D\uF3C9\uCBF1\uB88E\uB88F\uB890\uF3CB"+
+ "\uB891\uD0A6\uB892\uB893\uB1CA\uF3C8\uB894\uB895"+
+ "\uB896\uF3CF\uB897\uB5D1\uB898\uB899\uF3D7\uB89A"+
+ "\uF3D2\uB89B\uB89C\uB89D\uF3D4\uF3D3\uB7FB\uB89E"+
+ "\uB1BF\uB89F\uF3CE\uF3CA\uB5DA\uB8A0\uF3D0\uB940"+
+ "\uB941\uF3D1\uB942\uF3D5\uB943\uB944\uB945\uB946"+
+ "\uF3CD\uB947\uBCE3\uB948\uC1FD\uB949\uF3D6\uB94A"+
+ "\uB94B\uB94C\uB94D\uB94E\uB94F\uF3DA\uB950\uF3CC"+
+ "\uB951\uB5C8\uB952\uBDEE\uF3DC\uB953\uB954\uB7A4"+
+ "\uBFF0\uD6FE\uCDB2\uB955\uB4F0\uB956\uB2DF\uB957"+
+ "\uF3D8\uB958\uF3D9\uC9B8\uB959\uF3DD\uB95A\uB95B"+
+ "\uF3DE\uB95C\uF3E1\uB95D\uB95E\uB95F\uB960\uB961"+
+ "\uB962\uB963\uB964\uB965\uB966\uB967\uF3DF\uB968"+
+ "\uB969\uF3E3\uF3E2\uB96A\uB96B\uF3DB\uB96C\uBFEA"+
+ "\uB96D\uB3EF\uB96E\uF3E0\uB96F\uB970\uC7A9\uB971"+
+ "\uBCF2\uB972\uB973\uB974\uB975\uF3EB\uB976\uB977"+
+ "\uB978\uB979\uB97A\uB97B\uB97C\uB9BF\uB97D\uB97E"+
+ "\uF3E4\uB980\uB981\uB982\uB2AD\uBBFE\uB983\uCBE3"+
+ "\uB984\uB985\uB986\uB987\uF3ED\uF3E9\uB988\uB989"+
+ "\uB98A\uB9DC\uF3EE\uB98B\uB98C\uB98D\uF3E5\uF3E6"+
+ "\uF3EA\uC2E1\uF3EC\uF3EF\uF3E8\uBCFD\uB98E\uB98F"+
+ "\uB990\uCFE4\uB991\uB992\uF3F0\uB993\uB994\uB995"+
+ "\uF3E7\uB996\uB997\uB998\uB999\uB99A\uB99B\uB99C"+
+ "\uB99D\uF3F2\uB99E\uB99F\uB9A0\uBA40\uD7AD\uC6AA"+
+ "\uBA41\uBA42\uBA43\uBA44\uF3F3\uBA45\uBA46\uBA47"+
+ "\uBA48\uF3F1\uBA49\uC2A8\uBA4A\uBA4B\uBA4C\uBA4D"+
+ "\uBA4E\uB8DD\uF3F5\uBA4F\uBA50\uF3F4\uBA51\uBA52"+
+ "\uBA53\uB4DB\uBA54\uBA55\uBA56\uF3F6\uF3F7\uBA57"+
+ "\uBA58\uBA59\uF3F8\uBA5A\uBA5B\uBA5C\uC0BA\uBA5D"+
+ "\uBA5E\uC0E9\uBA5F\uBA60\uBA61\uBA62\uBA63\uC5F1"+
+ "\uBA64\uBA65\uBA66\uBA67\uF3FB\uBA68\uF3FA\uBA69"+
+ "\uBA6A\uBA6B\uBA6C\uBA6D\uBA6E\uBA6F\uBA70\uB4D8"+
+ "\uBA71\uBA72\uBA73\uF3FE\uF3F9\uBA74\uBA75\uF3FC"+
+ "\uBA76\uBA77\uBA78\uBA79\uBA7A\uBA7B\uF3FD\uBA7C"+
+ "\uBA7D\uBA7E\uBA80\uBA81\uBA82\uBA83\uBA84\uF4A1"+
+ "\uBA85\uBA86\uBA87\uBA88\uBA89\uBA8A\uF4A3\uBBC9"+
+ "\uBA8B\uBA8C\uF4A2\uBA8D\uBA8E\uBA8F\uBA90\uBA91"+
+ "\uBA92\uBA93\uBA94\uBA95\uBA96\uBA97\uBA98\uBA99"+
+ "\uF4A4\uBA9A\uBA9B\uBA9C\uBA9D\uBA9E\uBA9F\uB2BE"+
+ "\uF4A6\uF4A5\uBAA0\uBB40\uBB41\uBB42\uBB43\uBB44"+
+ "\uBB45\uBB46\uBB47\uBB48\uBB49\uBCAE\uBB4A\uBB4B"+
+ "\uBB4C\uBB4D\uBB4E\uBB4F\uBB50\uBB51\uBB52\uBB53"+
+ "\uBB54\uBB55\uBB56\uBB57\uBB58\uBB59\uBB5A\uBB5B"+
+ "\uBB5C\uBB5D\uBB5E\uBB5F\uBB60\uBB61\uBB62\uBB63"+
+ "\uBB64\uBB65\uBB66\uBB67\uBB68\uBB69\uBB6A\uBB6B"+
+ "\uBB6C\uBB6D\uBB6E\uC3D7\uD9E1\uBB6F\uBB70\uBB71"+
+ "\uBB72\uBB73\uBB74\uC0E0\uF4CC\uD7D1\uBB75\uBB76"+
+ "\uBB77\uBB78\uBB79\uBB7A\uBB7B\uBB7C\uBB7D\uBB7E"+
+ "\uBB80\uB7DB\uBB81\uBB82\uBB83\uBB84\uBB85\uBB86"+
+ "\uBB87\uF4CE\uC1A3\uBB88\uBB89\uC6C9\uBB8A\uB4D6"+
+ "\uD5B3\uBB8B\uBB8C\uBB8D\uF4D0\uF4CF\uF4D1\uCBDA"+
+ "\uBB8E\uBB8F\uF4D2\uBB90\uD4C1\uD6E0\uBB91\uBB92"+
+ "\uBB93\uBB94\uB7E0\uBB95\uBB96\uBB97\uC1B8\uBB98"+
+ "\uBB99\uC1BB\uF4D3\uBEAC\uBB9A\uBB9B\uBB9C\uBB9D"+
+ "\uBB9E\uB4E2\uBB9F\uBBA0\uF4D4\uF4D5\uBEAB\uBC40"+
+ "\uBC41\uF4D6\uBC42\uBC43\uBC44\uF4DB\uBC45\uF4D7"+
+ "\uF4DA\uBC46\uBAFD\uBC47\uF4D8\uF4D9\uBC48\uBC49"+
+ "\uBC4A\uBC4B\uBC4C\uBC4D\uBC4E\uB8E2\uCCC7\uF4DC"+
+ "\uBC4F\uB2DA\uBC50\uBC51\uC3D3\uBC52\uBC53\uD4E3"+
+ "\uBFB7\uBC54\uBC55\uBC56\uBC57\uBC58\uBC59\uBC5A"+
+ "\uF4DD\uBC5B\uBC5C\uBC5D\uBC5E\uBC5F\uBC60\uC5B4"+
+ "\uBC61\uBC62\uBC63\uBC64\uBC65\uBC66\uBC67\uBC68"+
+ "\uF4E9\uBC69\uBC6A\uCFB5\uBC6B\uBC6C\uBC6D\uBC6E"+
+ "\uBC6F\uBC70\uBC71\uBC72\uBC73\uBC74\uBC75\uBC76"+
+ "\uBC77\uBC78\uCEC9\uBC79\uBC7A\uBC7B\uBC7C\uBC7D"+
+ "\uBC7E\uBC80\uBC81\uBC82\uBC83\uBC84\uBC85\uBC86"+
+ "\uBC87\uBC88\uBC89\uBC8A\uBC8B\uBC8C\uBC8D\uBC8E"+
+ "\uCBD8\uBC8F\uCBF7\uBC90\uBC91\uBC92\uBC93\uBDF4"+
+ "\uBC94\uBC95\uBC96\uD7CF\uBC97\uBC98\uBC99\uC0DB"+
+ "\uBC9A\uBC9B\uBC9C\uBC9D\uBC9E\uBC9F\uBCA0\uBD40"+
+ "\uBD41\uBD42\uBD43\uBD44\uBD45\uBD46\uBD47\uBD48"+
+ "\uBD49\uBD4A\uBD4B\uBD4C\uBD4D\uBD4E\uBD4F\uBD50"+
+ "\uBD51\uBD52\uBD53\uBD54\uBD55\uBD56\uBD57\uBD58"+
+ "\uBD59\uBD5A\uBD5B\uBD5C\uBD5D\uBD5E\uBD5F\uBD60"+
+ "\uBD61\uBD62\uBD63\uBD64\uBD65\uBD66\uBD67\uBD68"+
+ "\uBD69\uBD6A\uBD6B\uBD6C\uBD6D\uBD6E\uBD6F\uBD70"+
+ "\uBD71\uBD72\uBD73\uBD74\uBD75\uBD76\uD0F5\uBD77"+
+ "\uBD78\uBD79\uBD7A\uBD7B\uBD7C\uBD7D\uBD7E\uF4EA"+
+ "\uBD80\uBD81\uBD82\uBD83\uBD84\uBD85\uBD86\uBD87"+
+ "\uBD88\uBD89\uBD8A\uBD8B\uBD8C\uBD8D\uBD8E\uBD8F"+
+ "\uBD90\uBD91\uBD92\uBD93\uBD94\uBD95\uBD96\uBD97"+
+ "\uBD98\uBD99\uBD9A\uBD9B\uBD9C\uBD9D\uBD9E\uBD9F"+
+ "\uBDA0\uBE40\uBE41\uBE42\uBE43\uBE44\uBE45\uBE46"+
+ "\uBE47\uBE48\uBE49\uBE4A\uBE4B\uBE4C\uF4EB\uBE4D"+
+ "\uBE4E\uBE4F\uBE50\uBE51\uBE52\uBE53\uF4EC\uBE54"+
+ "\uBE55\uBE56\uBE57\uBE58\uBE59\uBE5A\uBE5B\uBE5C"+
+ "\uBE5D\uBE5E\uBE5F\uBE60\uBE61\uBE62\uBE63\uBE64"+
+ "\uBE65\uBE66\uBE67\uBE68\uBE69\uBE6A\uBE6B\uBE6C"+
+ "\uBE6D\uBE6E\uBE6F\uBE70\uBE71\uBE72\uBE73\uBE74"+
+ "\uBE75\uBE76\uBE77\uBE78\uBE79\uBE7A\uBE7B\uBE7C"+
+ "\uBE7D\uBE7E\uBE80\uBE81\uBE82\uBE83\uBE84\uBE85"+
+ "\uBE86\uBE87\uBE88\uBE89\uBE8A\uBE8B\uBE8C\uBE8D"+
+ "\uBE8E\uBE8F\uBE90\uBE91\uBE92\uBE93\uBE94\uBE95"+
+ "\uBE96\uBE97\uBE98\uBE99\uBE9A\uBE9B\uBE9C\uBE9D"+
+ "\uBE9E\uBE9F\uBEA0\uBF40\uBF41\uBF42\uBF43\uBF44"+
+ "\uBF45\uBF46\uBF47\uBF48\uBF49\uBF4A\uBF4B\uBF4C"+
+ "\uBF4D\uBF4E\uBF4F\uBF50\uBF51\uBF52\uBF53\uBF54"+
+ "\uBF55\uBF56\uBF57\uBF58\uBF59\uBF5A\uBF5B\uBF5C"+
+ "\uBF5D\uBF5E\uBF5F\uBF60\uBF61\uBF62\uBF63\uBF64"+
+ "\uBF65\uBF66\uBF67\uBF68\uBF69\uBF6A\uBF6B\uBF6C"+
+ "\uBF6D\uBF6E\uBF6F\uBF70\uBF71\uBF72\uBF73\uBF74"+
+ "\uBF75\uBF76\uBF77\uBF78\uBF79\uBF7A\uBF7B\uBF7C"+
+ "\uBF7D\uBF7E\uBF80\uF7E3\uBF81\uBF82\uBF83\uBF84"+
+ "\uBF85\uB7B1\uBF86\uBF87\uBF88\uBF89\uBF8A\uF4ED"+
+ "\uBF8B\uBF8C\uBF8D\uBF8E\uBF8F\uBF90\uBF91\uBF92"+
+ "\uBF93\uBF94\uBF95\uBF96\uBF97\uBF98\uBF99\uBF9A"+
+ "\uBF9B\uBF9C\uBF9D\uBF9E\uBF9F\uBFA0\uC040\uC041"+
+ "\uC042\uC043\uC044\uC045\uC046\uC047\uC048\uC049"+
+ "\uC04A\uC04B\uC04C\uC04D\uC04E\uC04F\uC050\uC051"+
+ "\uC052\uC053\uC054\uC055\uC056\uC057\uC058\uC059"+
+ "\uC05A\uC05B\uC05C\uC05D\uC05E\uC05F\uC060\uC061"+
+ "\uC062\uC063\uD7EB\uC064\uC065\uC066\uC067\uC068"+
+ "\uC069\uC06A\uC06B\uC06C\uC06D\uC06E\uC06F\uC070"+
+ "\uC071\uC072\uC073\uC074\uC075\uC076\uC077\uC078"+
+ "\uC079\uC07A\uC07B\uF4EE\uC07C\uC07D\uC07E\uE6F9"+
+ "\uBEC0\uE6FA\uBAEC\uE6FB\uCFCB\uE6FC\uD4BC\uBCB6"+
+ "\uE6FD\uE6FE\uBCCD\uC8D2\uCEB3\uE7A1\uC080\uB4BF"+
+ "\uE7A2\uC9B4\uB8D9\uC4C9\uC081\uD7DD\uC2DA\uB7D7"+
+ "\uD6BD\uCEC6\uB7C4\uC082\uC083\uC5A6\uE7A3\uCFDF"+
+ "\uE7A4\uE7A5\uE7A6\uC1B7\uD7E9\uC9F0\uCFB8\uD6AF"+
+ "\uD6D5\uE7A7\uB0ED\uE7A8\uE7A9\uC9DC\uD2EF\uBEAD"+
+ "\uE7AA\uB0F3\uC8DE\uBDE1\uE7AB\uC8C6\uC084\uE7AC"+
+ "\uBBE6\uB8F8\uD1A4\uE7AD\uC2E7\uBEF8\uBDCA\uCDB3"+
+ "\uE7AE\uE7AF\uBEEE\uD0E5\uC085\uCBE7\uCCD0\uBCCC"+
+ "\uE7B0\uBCA8\uD0F7\uE7B1\uC086\uD0F8\uE7B2\uE7B3"+
+ "\uB4C2\uE7B4\uE7B5\uC9FE\uCEAC\uC3E0\uE7B7\uB1C1"+
+ "\uB3F1\uC087\uE7B8\uE7B9\uD7DB\uD5C0\uE7BA\uC2CC"+
+ "\uD7BA\uE7BB\uE7BC\uE7BD\uBCEA\uC3E5\uC0C2\uE7BE"+
+ "\uE7BF\uBCA9\uC088\uE7C0\uE7C1\uE7B6\uB6D0\uE7C2"+
+ "\uC089\uE7C3\uE7C4\uBBBA\uB5DE\uC2C6\uB1E0\uE7C5"+
+ "\uD4B5\uE7C6\uB8BF\uE7C8\uE7C7\uB7EC\uC08A\uE7C9"+
+ "\uB2F8\uE7CA\uE7CB\uE7CC\uE7CD\uE7CE\uE7CF\uE7D0"+
+ "\uD3A7\uCBF5\uE7D1\uE7D2\uE7D3\uE7D4\uC9C9\uE7D5"+
+ "\uE7D6\uE7D7\uE7D8\uE7D9\uBDC9\uE7DA\uF3BE\uC08B"+
+ "\uB8D7\uC08C\uC8B1\uC08D\uC08E\uC08F\uC090\uC091"+
+ "\uC092\uC093\uF3BF\uC094\uF3C0\uF3C1\uC095\uC096"+
+ "\uC097\uC098\uC099\uC09A\uC09B\uC09C\uC09D\uC09E"+
+ "\uB9DE\uCDF8\uC09F\uC0A0\uD8E8\uBAB1\uC140\uC2DE"+
+ "\uEEB7\uC141\uB7A3\uC142\uC143\uC144\uC145\uEEB9"+
+ "\uC146\uEEB8\uB0D5\uC147\uC148\uC149\uC14A\uC14B"+
+ "\uEEBB\uD5D6\uD7EF\uC14C\uC14D\uC14E\uD6C3\uC14F"+
+ "\uC150\uEEBD\uCAF0\uC151\uEEBC\uC152\uC153\uC154"+
+ "\uC155\uEEBE\uC156\uC157\uC158\uC159\uEEC0\uC15A"+
+ "\uC15B\uEEBF\uC15C\uC15D\uC15E\uC15F\uC160\uC161"+
+ "\uC162\uC163\uD1F2\uC164\uC7BC\uC165\uC3C0\uC166"+
+ "\uC167\uC168\uC169\uC16A\uB8E1\uC16B\uC16C\uC16D"+
+ "\uC16E\uC16F\uC1E7\uC170\uC171\uF4C6\uD0DF\uF4C7"+
+ "\uC172\uCFDB\uC173\uC174\uC8BA\uC175\uC176\uF4C8"+
+ "\uC177\uC178\uC179\uC17A\uC17B\uC17C\uC17D\uF4C9"+
+ "\uF4CA\uC17E\uF4CB\uC180\uC181\uC182\uC183\uC184"+
+ "\uD9FA\uB8FE\uC185\uC186\uE5F1\uD3F0\uC187\uF4E0"+
+ "\uC188\uCECC\uC189\uC18A\uC18B\uB3E1\uC18C\uC18D"+
+ "\uC18E\uC18F\uF1B4\uC190\uD2EE\uC191\uF4E1\uC192"+
+ "\uC193\uC194\uC195\uC196\uCFE8\uF4E2\uC197\uC198"+
+ "\uC7CC\uC199\uC19A\uC19B\uC19C\uC19D\uC19E\uB5D4"+
+ "\uB4E4\uF4E4\uC19F\uC1A0\uC240\uF4E3\uF4E5\uC241"+
+ "\uC242\uF4E6\uC243\uC244\uC245\uC246\uF4E7\uC247"+
+ "\uBAB2\uB0BF\uC248\uF4E8\uC249\uC24A\uC24B\uC24C"+
+ "\uC24D\uC24E\uC24F\uB7AD\uD2ED\uC250\uC251\uC252";
+
+ private final static String innerEncoderIndex8=
+ "\uD2AB\uC0CF\uC253\uBFBC\uEBA3\uD5DF\uEAC8\uC254"+
+ "\uC255\uC256\uC257\uF1F3\uB6F8\uCBA3\uC258\uC259"+
+ "\uC4CD\uC25A\uF1E7\uC25B\uF1E8\uB8FB\uF1E9\uBAC4"+
+ "\uD4C5\uB0D2\uC25C\uC25D\uF1EA\uC25E\uC25F\uC260"+
+ "\uF1EB\uC261\uF1EC\uC262\uC263\uF1ED\uF1EE\uF1EF"+
+ "\uF1F1\uF1F0\uC5D5\uC264\uC265\uC266\uC267\uC268"+
+ "\uC269\uF1F2\uC26A\uB6FA\uC26B\uF1F4\uD2AE\uDEC7"+
+ "\uCBCA\uC26C\uC26D\uB3DC\uC26E\uB5A2\uC26F\uB9A2"+
+ "\uC270\uC271\uC4F4\uF1F5\uC272\uC273\uF1F6\uC274"+
+ "\uC275\uC276\uC1C4\uC1FB\uD6B0\uF1F7\uC277\uC278"+
+ "\uC279\uC27A\uF1F8\uC27B\uC1AA\uC27C\uC27D\uC27E"+
+ "\uC6B8\uC280\uBEDB\uC281\uC282\uC283\uC284\uC285"+
+ "\uC286\uC287\uC288\uC289\uC28A\uC28B\uC28C\uC28D"+
+ "\uC28E\uF1F9\uB4CF\uC28F\uC290\uC291\uC292\uC293"+
+ "\uC294\uF1FA\uC295\uC296\uC297\uC298\uC299\uC29A"+
+ "\uC29B\uC29C\uC29D\uC29E\uC29F\uC2A0\uC340\uEDB2"+
+ "\uEDB1\uC341\uC342\uCBE0\uD2DE\uC343\uCBC1\uD5D8"+
+ "\uC344\uC8E2\uC345\uC0DF\uBCA1\uC346\uC347\uC348"+
+ "\uC349\uC34A\uC34B\uEBC1\uC34C\uC34D\uD0A4\uC34E"+
+ "\uD6E2\uC34F\uB6C7\uB8D8\uEBC0\uB8CE\uC350\uEBBF"+
+ "\uB3A6\uB9C9\uD6AB\uC351\uB7F4\uB7CA\uC352\uC353"+
+ "\uC354\uBCE7\uB7BE\uEBC6\uC355\uEBC7\uB0B9\uBFCF"+
+ "\uC356\uEBC5\uD3FD\uC357\uEBC8\uC358\uC359\uEBC9"+
+ "\uC35A\uC35B\uB7CE\uC35C\uEBC2\uEBC4\uC9F6\uD6D7"+
+ "\uD5CD\uD0B2\uEBCF\uCEB8\uEBD0\uC35D\uB5A8\uC35E"+
+ "\uC35F\uC360\uC361\uC362\uB1B3\uEBD2\uCCA5\uC363"+
+ "\uC364\uC365\uC366\uC367\uC368\uC369\uC5D6\uEBD3"+
+ "\uC36A\uEBD1\uC5DF\uEBCE\uCAA4\uEBD5\uB0FB\uC36B"+
+ "\uC36C\uBAFA\uC36D\uC36E\uD8B7\uF1E3\uC36F\uEBCA"+
+ "\uEBCB\uEBCC\uEBCD\uEBD6\uE6C0\uEBD9\uC370\uBFE8"+
+ "\uD2C8\uEBD7\uEBDC\uB8EC\uEBD8\uC371\uBDBA\uC372"+
+ "\uD0D8\uC373\uB0B7\uC374\uEBDD\uC4DC\uC375\uC376"+
+ "\uC377\uC378\uD6AC\uC379\uC37A\uC37B\uB4E0\uC37C"+
+ "\uC37D\uC2F6\uBCB9\uC37E\uC380\uEBDA\uEBDB\uD4E0"+
+ "\uC6EA\uC4D4\uEBDF\uC5A7\uD9F5\uC381\uB2B1\uC382"+
+ "\uEBE4\uC383\uBDC5\uC384\uC385\uC386\uEBE2\uC387"+
+ "\uC388\uC389\uC38A\uC38B\uC38C\uC38D\uC38E\uC38F"+
+ "\uC390\uC391\uC392\uC393\uEBE3\uC394\uC395\uB8AC"+
+ "\uC396\uCDD1\uEBE5\uC397\uC398\uC399\uEBE1\uC39A"+
+ "\uC1B3\uC39B\uC39C\uC39D\uC39E\uC39F\uC6A2\uC3A0"+
+ "\uC440\uC441\uC442\uC443\uC444\uC445\uCCF3\uC446"+
+ "\uEBE6\uC447\uC0B0\uD2B8\uEBE7\uC448\uC449\uC44A"+
+ "\uB8AF\uB8AD\uC44B\uEBE8\uC7BB\uCDF3\uC44C\uC44D"+
+ "\uC44E\uEBEA\uEBEB\uC44F\uC450\uC451\uC452\uC453"+
+ "\uEBED\uC454\uC455\uC456\uC457\uD0C8\uC458\uEBF2"+
+ "\uC459\uEBEE\uC45A\uC45B\uC45C\uEBF1\uC8F9\uC45D"+
+ "\uD1FC\uEBEC\uC45E\uC45F\uEBE9\uC460\uC461\uC462"+
+ "\uC463\uB8B9\uCFD9\uC4E5\uEBEF\uEBF0\uCCDA\uCDC8"+
+ "\uB0F2\uC464\uEBF6\uC465\uC466\uC467\uC468\uC469"+
+ "\uEBF5\uC46A\uB2B2\uC46B\uC46C\uC46D\uC46E\uB8E0"+
+ "\uC46F\uEBF7\uC470\uC471\uC472\uC473\uC474\uC475"+
+ "\uB1EC\uC476\uC477\uCCC5\uC4A4\uCFA5\uC478\uC479"+
+ "\uC47A\uC47B\uC47C\uEBF9\uC47D\uC47E\uECA2\uC480"+
+ "\uC5F2\uC481\uEBFA\uC482\uC483\uC484\uC485\uC486"+
+ "\uC487\uC488\uC489\uC9C5\uC48A\uC48B\uC48C\uC48D"+
+ "\uC48E\uC48F\uE2DF\uEBFE\uC490\uC491\uC492\uC493"+
+ "\uCDCE\uECA1\uB1DB\uD3B7\uC494\uC495\uD2DC\uC496"+
+ "\uC497\uC498\uEBFD\uC499\uEBFB\uC49A\uC49B\uC49C"+
+ "\uC49D\uC49E\uC49F\uC4A0\uC540\uC541\uC542\uC543"+
+ "\uC544\uC545\uC546\uC547\uC548\uC549\uC54A\uC54B"+
+ "\uC54C\uC54D\uC54E\uB3BC\uC54F\uC550\uC551\uEAB0"+
+ "\uC552\uC553\uD7D4\uC554\uF4AB\uB3F4\uC555\uC556"+
+ "\uC557\uC558\uC559\uD6C1\uD6C2\uC55A\uC55B\uC55C"+
+ "\uC55D\uC55E\uC55F\uD5E9\uBECA\uC560\uF4A7\uC561"+
+ "\uD2A8\uF4A8\uF4A9\uC562\uF4AA\uBECB\uD3DF\uC563"+
+ "\uC564\uC565\uC566\uC567\uC9E0\uC9E1\uC568\uC569"+
+ "\uF3C2\uC56A\uCAE6\uC56B\uCCF2\uC56C\uC56D\uC56E"+
+ "\uC56F\uC570\uC571\uE2B6\uCBB4\uC572\uCEE8\uD6DB"+
+ "\uC573\uF4AD\uF4AE\uF4AF\uC574\uC575\uC576\uC577"+
+ "\uF4B2\uC578\uBABD\uF4B3\uB0E3\uF4B0\uC579\uF4B1"+
+ "\uBDA2\uB2D5\uC57A\uF4B6\uF4B7\uB6E6\uB2B0\uCFCF"+
+ "\uF4B4\uB4AC\uC57B\uF4B5\uC57C\uC57D\uF4B8\uC57E"+
+ "\uC580\uC581\uC582\uC583\uF4B9\uC584\uC585\uCDA7"+
+ "\uC586\uF4BA\uC587\uF4BB\uC588\uC589\uC58A\uF4BC"+
+ "\uC58B\uC58C\uC58D\uC58E\uC58F\uC590\uC591\uC592"+
+ "\uCBD2\uC593\uF4BD\uC594\uC595\uC596\uC597\uF4BE"+
+ "\uC598\uC599\uC59A\uC59B\uC59C\uC59D\uC59E\uC59F"+
+ "\uF4BF\uC5A0\uC640\uC641\uC642\uC643\uF4DE\uC1BC"+
+ "\uBCE8\uC644\uC9AB\uD1DE\uE5F5\uC645\uC646\uC647"+
+ "\uC648\uDCB3\uD2D5\uC649\uC64A\uDCB4\uB0AC\uDCB5"+
+ "\uC64B\uC64C\uBDDA\uC64D\uDCB9\uC64E\uC64F\uC650"+
+ "\uD8C2\uC651\uDCB7\uD3F3\uC652\uC9D6\uDCBA\uDCB6"+
+ "\uC653\uDCBB\uC3A2\uC654\uC655\uC656\uC657\uDCBC"+
+ "\uDCC5\uDCBD\uC658\uC659\uCEDF\uD6A5\uC65A\uDCCF"+
+ "\uC65B\uDCCD\uC65C\uC65D\uDCD2\uBDE6\uC2AB\uC65E"+
+ "\uDCB8\uDCCB\uDCCE\uDCBE\uB7D2\uB0C5\uDCC7\uD0BE"+
+ "\uDCC1\uBBA8\uC65F\uB7BC\uDCCC\uC660\uC661\uDCC6"+
+ "\uDCBF\uC7DB\uC662\uC663\uC664\uD1BF\uDCC0\uC665"+
+ "\uC666\uDCCA\uC667\uC668\uDCD0\uC669\uC66A\uCEAD"+
+ "\uDCC2\uC66B\uDCC3\uDCC8\uDCC9\uB2D4\uDCD1\uCBD5"+
+ "\uC66C\uD4B7\uDCDB\uDCDF\uCCA6\uDCE6\uC66D\uC3E7"+
+ "\uDCDC\uC66E\uC66F\uBFC1\uDCD9\uC670\uB0FA\uB9B6"+
+ "\uDCE5\uDCD3\uC671\uDCC4\uDCD6\uC8F4\uBFE0\uC672"+
+ "\uC673\uC674\uC675\uC9BB\uC676\uC677\uC678\uB1BD"+
+ "\uC679\uD3A2\uC67A\uC67B\uDCDA\uC67C\uC67D\uDCD5"+
+ "\uC67E\uC6BB\uC680\uDCDE\uC681\uC682\uC683\uC684"+
+ "\uC685\uD7C2\uC3AF\uB7B6\uC7D1\uC3A9\uDCE2\uDCD8"+
+ "\uDCEB\uDCD4\uC686\uC687\uDCDD\uC688\uBEA5\uDCD7"+
+ "\uC689\uDCE0\uC68A\uC68B\uDCE3\uDCE4\uC68C\uDCF8"+
+ "\uC68D\uC68E\uDCE1\uDDA2\uDCE7\uC68F\uC690\uC691"+
+ "\uC692\uC693\uC694\uC695\uC696\uC697\uC698\uBCEB"+
+ "\uB4C4\uC699\uC69A\uC3A3\uB2E7\uDCFA\uC69B\uDCF2"+
+ "\uC69C\uDCEF\uC69D\uDCFC\uDCEE\uD2F0\uB2E8\uC69E"+
+ "\uC8D7\uC8E3\uDCFB\uC69F\uDCED\uC6A0\uC740\uC741"+
+ "\uDCF7\uC742\uC743\uDCF5\uC744\uC745\uBEA3\uDCF4"+
+ "\uC746\uB2DD\uC747\uC748\uC749\uC74A\uC74B\uDCF3"+
+ "\uBCF6\uDCE8\uBBC4\uC74C\uC0F3\uC74D\uC74E\uC74F"+
+ "\uC750\uC751\uBCD4\uDCE9\uDCEA\uC752\uDCF1\uDCF6"+
+ "\uDCF9\uB5B4\uC753\uC8D9\uBBE7\uDCFE\uDCFD\uD3AB"+
+ "\uDDA1\uDDA3\uDDA5\uD2F1\uDDA4\uDDA6\uDDA7\uD2A9"+
+ "\uC754\uC755\uC756\uC757\uC758\uC759\uC75A\uBAC9"+
+ "\uDDA9\uC75B\uC75C\uDDB6\uDDB1\uDDB4\uC75D\uC75E"+
+ "\uC75F\uC760\uC761\uC762\uC763\uDDB0\uC6CE\uC764"+
+ "\uC765\uC0F2\uC766\uC767\uC768\uC769\uC9AF\uC76A"+
+ "\uC76B\uC76C\uDCEC\uDDAE\uC76D\uC76E\uC76F\uC770"+
+ "\uDDB7\uC771\uC772\uDCF0\uDDAF\uC773\uDDB8\uC774"+
+ "\uDDAC\uC775\uC776\uC777\uC778\uC779\uC77A\uC77B"+
+ "\uDDB9\uDDB3\uDDAD\uC4AA\uC77C\uC77D\uC77E\uC780"+
+ "\uDDA8\uC0B3\uC1AB\uDDAA\uDDAB\uC781\uDDB2\uBBF1"+
+ "\uDDB5\uD3A8\uDDBA\uC782\uDDBB\uC3A7\uC783\uC784"+
+ "\uDDD2\uDDBC\uC785\uC786\uC787\uDDD1\uC788\uB9BD"+
+ "\uC789\uC78A\uBED5\uC78B\uBEFA\uC78C\uC78D\uBACA"+
+ "\uC78E\uC78F\uC790\uC791\uDDCA\uC792\uDDC5\uC793"+
+ "\uDDBF\uC794\uC795\uC796\uB2CB\uDDC3\uC797\uDDCB"+
+ "\uB2A4\uDDD5\uC798\uC799\uC79A\uDDBE\uC79B\uC79C"+
+ "\uC79D\uC6D0\uDDD0\uC79E\uC79F\uC7A0\uC840\uC841"+
+ "\uDDD4\uC1E2\uB7C6\uC842\uC843\uC844\uC845\uC846"+
+ "\uDDCE\uDDCF\uC847\uC848\uC849\uDDC4\uC84A\uC84B"+
+ "\uC84C\uDDBD\uC84D\uDDCD\uCCD1\uC84E\uDDC9\uC84F"+
+ "\uC850\uC851\uC852\uDDC2\uC3C8\uC6BC\uCEAE\uDDCC"+
+ "\uC853\uDDC8\uC854\uC855\uC856\uC857\uC858\uC859"+
+ "\uDDC1\uC85A\uC85B\uC85C\uDDC6\uC2DC\uC85D\uC85E"+
+ "\uC85F\uC860\uC861\uC862\uD3A9\uD3AA\uDDD3\uCFF4"+
+ "\uC8F8\uC863\uC864\uC865\uC866\uC867\uC868\uC869"+
+ "\uC86A\uDDE6\uC86B\uC86C\uC86D\uC86E\uC86F\uC870"+
+ "\uDDC7\uC871\uC872\uC873\uDDE0\uC2E4\uC874\uC875"+
+ "\uC876\uC877\uC878\uC879\uC87A\uC87B\uDDE1\uC87C"+
+ "\uC87D\uC87E\uC880\uC881\uC882\uC883\uC884\uC885"+
+ "\uC886\uDDD7\uC887\uC888\uC889\uC88A\uC88B\uD6F8"+
+ "\uC88C\uDDD9\uDDD8\uB8F0\uDDD6\uC88D\uC88E\uC88F"+
+ "\uC890\uC6CF\uC891\uB6AD\uC892\uC893\uC894\uC895"+
+ "\uC896\uDDE2\uC897\uBAF9\uD4E1\uDDE7\uC898\uC899"+
+ "\uC89A\uB4D0\uC89B\uDDDA\uC89C\uBFFB\uDDE3\uC89D"+
+ "\uDDDF\uC89E\uDDDD\uC89F\uC8A0\uC940\uC941\uC942"+
+ "\uC943\uC944\uB5D9\uC945\uC946\uC947\uC948\uDDDB"+
+ "\uDDDC\uDDDE\uC949\uBDAF\uDDE4\uC94A\uDDE5\uC94B"+
+ "\uC94C\uC94D\uC94E\uC94F\uC950\uC951\uC952\uDDF5"+
+ "\uC953\uC3C9\uC954\uC955\uCBE2\uC956\uC957\uC958"+
+ "\uC959\uDDF2\uC95A\uC95B\uC95C\uC95D\uC95E\uC95F"+
+ "\uC960\uC961\uC962\uC963\uC964\uC965\uC966\uD8E1"+
+ "\uC967\uC968\uC6D1\uC969\uDDF4\uC96A\uC96B\uC96C"+
+ "\uD5F4\uDDF3\uDDF0\uC96D\uC96E\uDDEC\uC96F\uDDEF"+
+ "\uC970\uDDE8\uC971\uC972\uD0EE\uC973\uC974\uC975"+
+ "\uC976\uC8D8\uDDEE\uC977\uC978\uDDE9\uC979\uC97A"+
+ "\uDDEA\uCBF2\uC97B\uDDED\uC97C\uC97D\uB1CD\uC97E"+
+ "\uC980\uC981\uC982\uC983\uC984\uC0B6\uC985\uBCBB"+
+ "\uDDF1\uC986\uC987\uDDF7\uC988\uDDF6\uDDEB\uC989"+
+ "\uC98A\uC98B\uC98C\uC98D\uC5EE\uC98E\uC98F\uC990"+
+ "\uDDFB\uC991\uC992\uC993\uC994\uC995\uC996\uC997"+
+ "\uC998\uC999\uC99A\uC99B\uDEA4\uC99C\uC99D\uDEA3"+
+ "\uC99E\uC99F\uC9A0\uCA40\uCA41\uCA42\uCA43\uCA44"+
+ "\uCA45\uCA46\uCA47\uCA48\uDDF8\uCA49\uCA4A\uCA4B"+
+ "\uCA4C\uC3EF\uCA4D\uC2FB\uCA4E\uCA4F\uCA50\uD5E1"+
+ "\uCA51\uCA52\uCEB5\uCA53\uCA54\uCA55\uCA56\uDDFD"+
+ "\uCA57\uB2CC\uCA58\uCA59\uCA5A\uCA5B\uCA5C\uCA5D"+
+ "\uCA5E\uCA5F\uCA60\uC4E8\uCADF\uCA61\uCA62\uCA63"+
+ "\uCA64\uCA65\uCA66\uCA67\uCA68\uCA69\uCA6A\uC7BE"+
+ "\uDDFA\uDDFC\uDDFE\uDEA2\uB0AA\uB1CE\uCA6B\uCA6C"+
+ "\uCA6D\uCA6E\uCA6F\uDEAC\uCA70\uCA71\uCA72\uCA73"+
+ "\uDEA6\uBDB6\uC8EF\uCA74\uCA75\uCA76\uCA77\uCA78"+
+ "\uCA79\uCA7A\uCA7B\uCA7C\uCA7D\uCA7E\uDEA1\uCA80"+
+ "\uCA81\uDEA5\uCA82\uCA83\uCA84\uCA85\uDEA9\uCA86"+
+ "\uCA87\uCA88\uCA89\uCA8A\uDEA8\uCA8B\uCA8C\uCA8D"+
+ "\uDEA7\uCA8E\uCA8F\uCA90\uCA91\uCA92\uCA93\uCA94"+
+ "\uCA95\uCA96\uDEAD\uCA97\uD4CC\uCA98\uCA99\uCA9A"+
+ "\uCA9B\uDEB3\uDEAA\uDEAE\uCA9C\uCA9D\uC0D9\uCA9E"+
+ "\uCA9F\uCAA0\uCB40\uCB41\uB1A1\uDEB6\uCB42\uDEB1"+
+ "\uCB43\uCB44\uCB45\uCB46\uCB47\uCB48\uCB49\uDEB2"+
+ "\uCB4A\uCB4B\uCB4C\uCB4D\uCB4E\uCB4F\uCB50\uCB51"+
+ "\uCB52\uCB53\uCB54\uD1A6\uDEB5\uCB55\uCB56\uCB57"+
+ "\uCB58\uCB59\uCB5A\uCB5B\uDEAF\uCB5C\uCB5D\uCB5E"+
+ "\uDEB0\uCB5F\uD0BD\uCB60\uCB61\uCB62\uDEB4\uCAED"+
+ "\uDEB9\uCB63\uCB64\uCB65\uCB66\uCB67\uCB68\uDEB8"+
+ "\uCB69\uDEB7\uCB6A\uCB6B\uCB6C\uCB6D\uCB6E\uCB6F"+
+ "\uCB70\uDEBB\uCB71\uCB72\uCB73\uCB74\uCB75\uCB76"+
+ "\uCB77\uBDE5\uCB78\uCB79\uCB7A\uCB7B\uCB7C\uB2D8"+
+ "\uC3EA\uCB7D\uCB7E\uDEBA\uCB80\uC5BA\uCB81\uCB82"+
+ "\uCB83\uCB84\uCB85\uCB86\uDEBC\uCB87\uCB88\uCB89"+
+ "\uCB8A\uCB8B\uCB8C\uCB8D\uCCD9\uCB8E\uCB8F\uCB90"+
+ "\uCB91\uB7AA\uCB92\uCB93\uCB94\uCB95\uCB96\uCB97"+
+ "\uCB98\uCB99\uCB9A\uCB9B\uCB9C\uCB9D\uCB9E\uCB9F"+
+ "\uCBA0\uCC40\uCC41\uD4E5\uCC42\uCC43\uCC44\uDEBD"+
+ "\uCC45\uCC46\uCC47\uCC48\uCC49\uDEBF\uCC4A\uCC4B"+
+ "\uCC4C\uCC4D\uCC4E\uCC4F\uCC50\uCC51\uCC52\uCC53"+
+ "\uCC54\uC4A2\uCC55\uCC56\uCC57\uCC58\uDEC1\uCC59"+
+ "\uCC5A\uCC5B\uCC5C\uCC5D\uCC5E\uCC5F\uCC60\uCC61"+
+ "\uCC62\uCC63\uCC64\uCC65\uCC66\uCC67\uCC68\uDEBE"+
+ "\uCC69\uDEC0\uCC6A\uCC6B\uCC6C\uCC6D\uCC6E\uCC6F"+
+ "\uCC70\uCC71\uCC72\uCC73\uCC74\uCC75\uCC76\uCC77"+
+ "\uD5BA\uCC78\uCC79\uCC7A\uDEC2\uCC7B\uCC7C\uCC7D"+
+ "\uCC7E\uCC80\uCC81\uCC82\uCC83\uCC84\uCC85\uCC86"+
+ "\uCC87\uCC88\uCC89\uCC8A\uCC8B\uF2AE\uBBA2\uC2B2"+
+ "\uC5B0\uC2C7\uCC8C\uCC8D\uF2AF\uCC8E\uCC8F\uCC90"+
+ "\uCC91\uCC92\uD0E9\uCC93\uCC94\uCC95\uD3DD\uCC96"+
+ "\uCC97\uCC98\uEBBD\uCC99\uCC9A\uCC9B\uCC9C\uCC9D"+
+ "\uCC9E\uCC9F\uCCA0\uB3E6\uF2B0\uCD40\uF2B1\uCD41"+
+ "\uCD42\uCAAD\uCD43\uCD44\uCD45\uCD46\uCD47\uCD48"+
+ "\uCD49\uBAE7\uF2B3\uF2B5\uF2B4\uCBE4\uCFBA\uF2B2"+
+ "\uCAB4\uD2CF\uC2EC\uCD4A\uCD4B\uCD4C\uCD4D\uCD4E"+
+ "\uCD4F\uCD50\uCEC3\uF2B8\uB0F6\uF2B7\uCD51\uCD52"+
+ "\uCD53\uCD54\uCD55\uF2BE\uCD56\uB2CF\uCD57\uCD58"+
+ "\uCD59\uCD5A\uCD5B\uCD5C\uD1C1\uF2BA\uCD5D\uCD5E"+
+ "\uCD5F\uCD60\uCD61\uF2BC\uD4E9\uCD62\uCD63\uF2BB"+
+ "\uF2B6\uF2BF\uF2BD\uCD64\uF2B9\uCD65\uCD66\uF2C7"+
+ "\uF2C4\uF2C6\uCD67\uCD68\uF2CA\uF2C2\uF2C0\uCD69"+
+ "\uCD6A\uCD6B\uF2C5\uCD6C\uCD6D\uCD6E\uCD6F\uCD70"+
+ "\uD6FB\uCD71\uCD72\uCD73\uF2C1\uCD74\uC7F9\uC9DF"+
+ "\uCD75\uF2C8\uB9C6\uB5B0\uCD76\uCD77\uF2C3\uF2C9"+
+ "\uF2D0\uF2D6\uCD78\uCD79\uBBD7\uCD7A\uCD7B\uCD7C"+
+ "\uF2D5\uCDDC\uCD7D\uD6EB\uCD7E\uCD80\uF2D2\uF2D4"+
+ "\uCD81\uCD82\uCD83\uCD84\uB8F2\uCD85\uCD86\uCD87"+
+ "\uCD88\uF2CB\uCD89\uCD8A\uCD8B\uF2CE\uC2F9\uCD8C"+
+ "\uD5DD\uF2CC\uF2CD\uF2CF\uF2D3\uCD8D\uCD8E\uCD8F"+
+ "\uF2D9\uD3BC\uCD90\uCD91\uCD92\uCD93\uB6EA\uCD94"+
+ "\uCAF1\uCD95\uB7E4\uF2D7\uCD96\uCD97\uCD98\uF2D8"+
+ "\uF2DA\uF2DD\uF2DB\uCD99\uCD9A\uF2DC\uCD9B\uCD9C"+
+ "\uCD9D\uCD9E\uD1D1\uF2D1\uCD9F\uCDC9\uCDA0\uCECF"+
+ "\uD6A9\uCE40\uF2E3\uCE41\uC3DB\uCE42\uF2E0\uCE43"+
+ "\uCE44\uC0AF\uF2EC\uF2DE\uCE45\uF2E1\uCE46\uCE47"+
+ "\uCE48\uF2E8\uCE49\uCE4A\uCE4B\uCE4C\uF2E2\uCE4D"+
+ "\uCE4E\uF2E7\uCE4F\uCE50\uF2E6\uCE51\uCE52\uF2E9"+
+ "\uCE53\uCE54\uCE55\uF2DF\uCE56\uCE57\uF2E4\uF2EA"+
+ "\uCE58\uCE59\uCE5A\uCE5B\uCE5C\uCE5D\uCE5E\uD3AC"+
+ "\uF2E5\uB2F5\uCE5F\uCE60\uF2F2\uCE61\uD0AB\uCE62"+
+ "\uCE63\uCE64\uCE65\uF2F5\uCE66\uCE67\uCE68\uBBC8"+
+ "\uCE69\uF2F9\uCE6A\uCE6B\uCE6C\uCE6D\uCE6E\uCE6F"+
+ "\uF2F0\uCE70\uCE71\uF2F6\uF2F8\uF2FA\uCE72\uCE73"+
+ "\uCE74\uCE75\uCE76\uCE77\uCE78\uCE79\uF2F3\uCE7A"+
+ "\uF2F1\uCE7B\uCE7C\uCE7D\uBAFB\uCE7E\uB5FB\uCE80"+
+ "\uCE81\uCE82\uCE83\uF2EF\uF2F7\uF2ED\uF2EE\uCE84"+
+ "\uCE85\uCE86\uF2EB\uF3A6\uCE87\uF3A3\uCE88\uCE89"+
+ "\uF3A2\uCE8A\uCE8B\uF2F4\uCE8C\uC8DA\uCE8D\uCE8E"+
+ "\uCE8F\uCE90\uCE91\uF2FB\uCE92\uCE93\uCE94\uF3A5"+
+ "\uCE95\uCE96\uCE97\uCE98\uCE99\uCE9A\uCE9B\uC3F8"+
+ "\uCE9C\uCE9D\uCE9E\uCE9F\uCEA0\uCF40\uCF41\uCF42"+
+ "\uF2FD\uCF43\uCF44\uF3A7\uF3A9\uF3A4\uCF45\uF2FC"+
+ "\uCF46\uCF47\uCF48\uF3AB\uCF49\uF3AA\uCF4A\uCF4B"+
+ "\uCF4C\uCF4D\uC2DD\uCF4E\uCF4F\uF3AE\uCF50\uCF51"+
+ "\uF3B0\uCF52\uCF53\uCF54\uCF55\uCF56\uF3A1\uCF57"+
+ "\uCF58\uCF59\uF3B1\uF3AC\uCF5A\uCF5B\uCF5C\uCF5D"+
+ "\uCF5E\uF3AF\uF2FE\uF3AD\uCF5F\uCF60\uCF61\uCF62"+
+ "\uCF63\uCF64\uCF65\uF3B2\uCF66\uCF67\uCF68\uCF69"+
+ "\uF3B4\uCF6A\uCF6B\uCF6C\uCF6D\uF3A8\uCF6E\uCF6F"+
+ "\uCF70\uCF71\uF3B3\uCF72\uCF73\uCF74\uF3B5\uCF75"+
+ "\uCF76\uCF77\uCF78\uCF79\uCF7A\uCF7B\uCF7C\uCF7D"+
+ "\uCF7E\uD0B7\uCF80\uCF81\uCF82\uCF83\uF3B8\uCF84"+
+ "\uCF85\uCF86\uCF87\uD9F9\uCF88\uCF89\uCF8A\uCF8B"+
+ "\uCF8C\uCF8D\uF3B9\uCF8E\uCF8F\uCF90\uCF91\uCF92"+
+ "\uCF93\uCF94\uCF95\uF3B7\uCF96\uC8E4\uF3B6\uCF97"+
+ "\uCF98\uCF99\uCF9A\uF3BA\uCF9B\uCF9C\uCF9D\uCF9E"+
+ "\uCF9F\uF3BB\uB4C0\uCFA0\uD040\uD041\uD042\uD043"+
+ "\uD044\uD045\uD046\uD047\uD048\uD049\uD04A\uD04B"+
+ "\uD04C\uD04D\uEEC3\uD04E\uD04F\uD050\uD051\uD052"+
+ "\uD053\uF3BC\uD054\uD055\uF3BD\uD056\uD057\uD058"+
+ "\uD1AA\uD059\uD05A\uD05B\uF4AC\uD0C6\uD05C\uD05D"+
+ "\uD05E\uD05F\uD060\uD061\uD0D0\uD1DC\uD062\uD063"+
+ "\uD064\uD065\uD066\uD067\uCFCE\uD068\uD069\uBDD6"+
+ "\uD06A\uD1C3\uD06B\uD06C\uD06D\uD06E\uD06F\uD070"+
+ "\uD071\uBAE2\uE1E9\uD2C2\uF1C2\uB2B9\uD072\uD073"+
+ "\uB1ED\uF1C3\uD074\uC9C0\uB3C4\uD075\uD9F2\uD076"+
+ "\uCBA5\uD077\uF1C4\uD078\uD079\uD07A\uD07B\uD6D4"+
+ "\uD07C\uD07D\uD07E\uD080\uD081\uF1C5\uF4C0\uF1C6"+
+ "\uD082\uD4AC\uF1C7\uD083\uB0C0\uF4C1\uD084\uD085"+
+ "\uF4C2\uD086\uD087\uB4FC\uD088\uC5DB\uD089\uD08A"+
+ "\uD08B\uD08C\uCCBB\uD08D\uD08E\uD08F\uD0E4\uD090"+
+ "\uD091\uD092\uD093\uD094\uCDE0\uD095\uD096\uD097"+
+ "\uD098\uD099\uF1C8\uD09A\uD9F3\uD09B\uD09C\uD09D"+
+ "\uD09E\uD09F\uD0A0\uB1BB\uD140\uCFAE\uD141\uD142"+
+ "\uD143\uB8A4\uD144\uD145\uD146\uD147\uD148\uF1CA"+
+ "\uD149\uD14A\uD14B\uD14C\uF1CB\uD14D\uD14E\uD14F"+
+ "\uD150\uB2C3\uC1D1\uD151\uD152\uD7B0\uF1C9\uD153"+
+ "\uD154\uF1CC\uD155\uD156\uD157\uD158\uF1CE\uD159"+
+ "\uD15A\uD15B\uD9F6\uD15C\uD2E1\uD4A3\uD15D\uD15E"+
+ "\uF4C3\uC8B9\uD15F\uD160\uD161\uD162\uD163\uF4C4"+
+ "\uD164\uD165\uF1CD\uF1CF\uBFE3\uF1D0\uD166\uD167"+
+ "\uF1D4\uD168\uD169\uD16A\uD16B\uD16C\uD16D\uD16E"+
+ "\uF1D6\uF1D1\uD16F\uC9D1\uC5E1\uD170\uD171\uD172"+
+ "\uC2E3\uB9FC\uD173\uD174\uF1D3\uD175\uF1D5\uD176"+
+ "\uD177\uD178\uB9D3\uD179\uD17A\uD17B\uD17C\uD17D"+
+ "\uD17E\uD180\uF1DB\uD181\uD182\uD183\uD184\uD185"+
+ "\uBAD6\uD186\uB0FD\uF1D9\uD187\uD188\uD189\uD18A"+
+ "\uD18B\uF1D8\uF1D2\uF1DA\uD18C\uD18D\uD18E\uD18F"+
+ "\uD190\uF1D7\uD191\uD192\uD193\uC8EC\uD194\uD195"+
+ "\uD196\uD197\uCDCA\uF1DD\uD198\uD199\uD19A\uD19B"+
+ "\uE5BD\uD19C\uD19D\uD19E\uF1DC\uD19F\uF1DE\uD1A0"+
+ "\uD240\uD241\uD242\uD243\uD244\uD245\uD246\uD247"+
+ "\uD248\uF1DF\uD249\uD24A\uCFE5\uD24B\uD24C\uD24D"+
+ "\uD24E\uD24F\uD250\uD251\uD252\uD253\uD254\uD255"+
+ "\uD256\uD257\uD258\uD259\uD25A\uD25B\uD25C\uD25D"+
+ "\uD25E\uD25F\uD260\uD261\uD262\uD263\uF4C5\uBDF3"+
+ "\uD264\uD265\uD266\uD267\uD268\uD269\uF1E0\uD26A"+
+ "\uD26B\uD26C\uD26D\uD26E\uD26F\uD270\uD271\uD272"+
+ "\uD273\uD274\uD275\uD276\uD277\uD278\uD279\uD27A"+
+ "\uD27B\uD27C\uD27D\uF1E1\uD27E\uD280\uD281\uCEF7"+
+ "\uD282\uD2AA\uD283\uF1FB\uD284\uD285\uB8B2\uD286"+
+ "\uD287\uD288\uD289\uD28A\uD28B\uD28C\uD28D\uD28E"+
+ "\uD28F\uD290\uD291\uD292\uD293\uD294\uD295\uD296"+
+ "\uD297\uD298\uD299\uD29A\uD29B\uD29C\uD29D\uD29E"+
+ "\uD29F\uD2A0\uD340\uD341\uD342\uD343\uD344\uD345"+
+ "\uD346\uD347\uD348\uD349\uD34A\uD34B\uD34C\uD34D"+
+ "\uD34E\uD34F\uD350\uD351\uD352\uD353\uD354\uD355"+
+ "\uD356\uD357\uD358\uD359\uD35A\uD35B\uD35C\uD35D"+
+ "\uD35E\uBCFB\uB9DB\uD35F\uB9E6\uC3D9\uCAD3\uEAE8"+
+ "\uC0C0\uBEF5\uEAE9\uEAEA\uEAEB\uD360\uEAEC\uEAED"+
+ "\uEAEE\uEAEF\uBDC7\uD361\uD362\uD363\uF5FB\uD364"+
+ "\uD365\uD366\uF5FD\uD367\uF5FE\uD368\uF5FC\uD369"+
+ "\uD36A\uD36B\uD36C\uBDE2\uD36D\uF6A1\uB4A5\uD36E"+
+ "\uD36F\uD370\uD371\uF6A2\uD372\uD373\uD374\uF6A3"+
+ "\uD375\uD376\uD377\uECB2\uD378\uD379\uD37A\uD37B"+
+ "\uD37C\uD37D\uD37E\uD380\uD381\uD382\uD383\uD384"+
+ "\uD1D4\uD385\uD386\uD387\uD388\uD389\uD38A\uD9EA"+
+ "\uD38B\uD38C\uD38D\uD38E\uD38F\uD390\uD391\uD392"+
+ "\uD393\uD394\uD395\uD396\uD397\uD398\uD399\uD39A"+
+ "\uD39B\uD39C\uD39D\uD39E\uD39F\uD3A0\uD440\uD441"+
+ "\uD442\uD443\uD444\uD445\uD446\uD447\uD448\uD449"+
+ "\uD44A\uD44B\uD44C\uD44D\uD44E\uD44F\uD450\uD451"+
+ "\uD452\uD453\uD454\uD455\uD456\uD457\uD458\uD459"+
+ "\uD45A\uD45B\uD45C\uD45D\uD45E\uD45F\uF6A4\uD460"+
+ "\uD461\uD462\uD463\uD464\uD465\uD466\uD467\uD468"+
+ "\uEEBA\uD469\uD46A\uD46B\uD46C\uD46D\uD46E\uD46F"+
+ "\uD470\uD471\uD472\uD473\uD474\uD475\uD476\uD477"+
+ "\uD478\uD479\uD47A\uD47B\uD47C\uD47D\uD47E\uD480"+
+ "\uD481\uD482\uD483\uD484\uD485\uD486\uD487\uD488"+
+ "\uD489\uD48A\uD48B\uD48C\uD48D\uD48E\uD48F\uD490"+
+ "\uD491\uD492\uD493\uD494\uD495\uD496\uD497\uD498"+
+ "\uD499\uD5B2\uD49A\uD49B\uD49C\uD49D\uD49E\uD49F"+
+ "\uD4A0\uD540\uD541\uD542\uD543\uD544\uD545\uD546"+
+ "\uD547\uD3FE\uCCDC\uD548\uD549\uD54A\uD54B\uD54C"+
+ "\uD54D\uD54E\uD54F\uCAC4\uD550\uD551\uD552\uD553"+
+ "\uD554\uD555\uD556\uD557\uD558\uD559\uD55A\uD55B"+
+ "\uD55C\uD55D\uD55E\uD55F\uD560\uD561\uD562\uD563"+
+ "\uD564\uD565\uD566\uD567\uD568\uD569\uD56A\uD56B"+
+ "\uD56C\uD56D\uD56E\uD56F\uD570\uD571\uD572\uD573"+
+ "\uD574\uD575\uD576\uD577\uD578\uD579\uD57A\uD57B"+
+ "\uD57C\uD57D\uD57E\uD580\uD581\uD582\uD583\uD584"+
+ "\uD585\uD586\uD587\uD588\uD589\uD58A\uD58B\uD58C"+
+ "\uD58D\uD58E\uD58F\uD590\uD591\uD592\uD593\uD594"+
+ "\uD595\uD596\uD597\uD598\uD599\uD59A\uD59B\uD59C"+
+ "\uD59D\uD59E\uD59F\uD5A0\uD640\uD641\uD642\uD643"+
+ "\uD644\uD645\uD646\uD647\uD648\uD649\uD64A\uD64B"+
+ "\uD64C\uD64D\uD64E\uD64F\uD650\uD651\uD652\uD653"+
+ "\uD654\uD655\uD656\uD657\uD658\uD659\uD65A\uD65B"+
+ "\uD65C\uD65D\uD65E\uD65F\uD660\uD661\uD662\uE5C0"+
+ "\uD663\uD664\uD665\uD666\uD667\uD668\uD669\uD66A"+
+ "\uD66B\uD66C\uD66D\uD66E\uD66F\uD670\uD671\uD672"+
+ "\uD673\uD674\uD675\uD676\uD677\uD678\uD679\uD67A"+
+ "\uD67B\uD67C\uD67D\uD67E\uD680\uD681\uF6A5\uD682"+
+ "\uD683\uD684\uD685\uD686\uD687\uD688\uD689\uD68A"+
+ "\uD68B\uD68C\uD68D\uD68E\uD68F\uD690\uD691\uD692"+
+ "\uD693\uD694\uD695\uD696\uD697\uD698\uD699\uD69A"+
+ "\uD69B\uD69C\uD69D\uD69E\uD69F\uD6A0\uD740\uD741"+
+ "\uD742\uD743\uD744\uD745\uD746\uD747\uD748\uD749"+
+ "\uD74A\uD74B\uD74C\uD74D\uD74E\uD74F\uD750\uD751"+
+ "\uD752\uD753\uD754\uD755\uD756\uD757\uD758\uD759"+
+ "\uD75A\uD75B\uD75C\uD75D\uD75E\uD75F\uBEAF\uD760"+
+ "\uD761\uD762\uD763\uD764\uC6A9\uD765\uD766\uD767"+
+ "\uD768\uD769\uD76A\uD76B\uD76C\uD76D\uD76E\uD76F"+
+ "\uD770\uD771\uD772\uD773\uD774\uD775\uD776\uD777"+
+ "\uD778\uD779\uD77A\uD77B\uD77C\uD77D\uD77E\uD780"+
+ "\uD781\uD782\uD783\uD784\uD785\uD786\uD787\uD788"+
+ "\uD789\uD78A\uD78B\uD78C\uD78D\uD78E\uD78F\uD790"+
+ "\uD791\uD792\uD793\uD794\uD795\uD796\uD797\uD798"+
+ "\uDAA5\uBCC6\uB6A9\uB8BC\uC8CF\uBCA5\uDAA6\uDAA7"+
+ "\uCCD6\uC8C3\uDAA8\uC6FD\uD799\uD1B5\uD2E9\uD1B6"+
+ "\uBCC7\uD79A\uBDB2\uBBE4\uDAA9\uDAAA\uD1C8\uDAAB"+
+ "\uD0ED\uB6EF\uC2DB\uD79B\uCBCF\uB7ED\uC9E8\uB7C3"+
+ "\uBEF7\uD6A4\uDAAC\uDAAD\uC6C0\uD7E7\uCAB6\uD79C"+
+ "\uD5A9\uCBDF\uD5EF\uDAAE\uD6DF\uB4CA\uDAB0\uDAAF"+
+ "\uD79D\uD2EB\uDAB1\uDAB2\uDAB3\uCAD4\uDAB4\uCAAB"+
+ "\uDAB5\uDAB6\uB3CF\uD6EF\uDAB7\uBBB0\uB5AE\uDAB8"+
+ "\uDAB9\uB9EE\uD1AF\uD2E8\uDABA\uB8C3\uCFEA\uB2EF"+
+ "\uDABB\uDABC\uD79E\uBDEB\uCEDC\uD3EF\uDABD\uCEF3"+
+ "\uDABE\uD3D5\uBBE5\uDABF\uCBB5\uCBD0\uDAC0\uC7EB"+
+ "\uD6EE\uDAC1\uC5B5\uB6C1\uDAC2\uB7CC\uBFCE\uDAC3"+
+ "\uDAC4\uCBAD\uDAC5\uB5F7\uDAC6\uC1C2\uD7BB\uDAC7"+
+ "\uCCB8\uD79F\uD2EA\uC4B1\uDAC8\uB5FD\uBBD1\uDAC9"+
+ "\uD0B3\uDACA\uDACB\uCEBD\uDACC\uDACD\uDACE\uB2F7"+
+ "\uDAD1\uDACF\uD1E8\uDAD0\uC3D5\uDAD2\uD7A0\uDAD3"+
+ "\uDAD4\uDAD5\uD0BB\uD2A5\uB0F9\uDAD6\uC7AB\uDAD7"+
+ "\uBDF7\uC3A1\uDAD8\uDAD9\uC3FD\uCCB7\uDADA\uDADB"+
+ "\uC0BE\uC6D7\uDADC\uDADD\uC7B4\uDADE\uDADF\uB9C8"+
+ "\uD840\uD841\uD842\uD843\uD844\uD845\uD846\uD847"+
+ "\uD848\uBBED\uD849\uD84A\uD84B\uD84C\uB6B9\uF4F8"+
+ "\uD84D\uF4F9\uD84E\uD84F\uCDE3\uD850\uD851\uD852"+
+ "\uD853\uD854\uD855\uD856\uD857\uF5B9\uD858\uD859"+
+ "\uD85A\uD85B\uEBE0\uD85C\uD85D\uD85E\uD85F\uD860"+
+ "\uD861\uCFF3\uBBBF\uD862\uD863\uD864\uD865\uD866"+
+ "\uD867\uD868\uBAC0\uD4A5\uD869\uD86A\uD86B\uD86C"+
+ "\uD86D\uD86E\uD86F\uE1D9\uD870\uD871\uD872\uD873"+
+ "\uF5F4\uB1AA\uB2F2\uD874\uD875\uD876\uD877\uD878"+
+ "\uD879\uD87A\uF5F5\uD87B\uD87C\uF5F7\uD87D\uD87E"+
+ "\uD880\uBAD1\uF5F6\uD881\uC3B2\uD882\uD883\uD884"+
+ "\uD885\uD886\uD887\uD888\uF5F9\uD889\uD88A\uD88B"+
+ "\uF5F8\uD88C\uD88D\uD88E\uD88F\uD890\uD891\uD892"+
+ "\uD893\uD894\uD895\uD896\uD897\uD898\uD899\uD89A"+
+ "\uD89B\uD89C\uD89D\uD89E\uD89F\uD8A0\uD940\uD941"+
+ "\uD942\uD943\uD944\uD945\uD946\uD947\uD948\uD949"+
+ "\uD94A\uD94B\uD94C\uD94D\uD94E\uD94F\uD950\uD951"+
+ "\uD952\uD953\uD954\uD955\uD956\uD957\uD958\uD959"+
+ "\uD95A\uD95B\uD95C\uD95D\uD95E\uD95F\uD960\uD961"+
+ "\uD962\uD963\uD964\uD965\uD966\uD967\uD968\uD969"+
+ "\uD96A\uD96B\uD96C\uD96D\uD96E\uD96F\uD970\uD971"+
+ "\uD972\uD973\uD974\uD975\uD976\uD977\uD978\uD979"+
+ "\uD97A\uD97B\uD97C\uD97D\uD97E\uD980\uD981\uD982"+
+ "\uD983\uD984\uD985\uD986\uD987\uD988\uD989\uD98A"+
+ "\uD98B\uD98C\uD98D\uD98E\uD98F\uD990\uD991\uD992"+
+ "\uD993\uD994\uD995\uD996\uD997\uD998\uD999\uD99A"+
+ "\uD99B\uD99C\uD99D\uD99E\uD99F\uD9A0\uDA40\uDA41"+
+ "\uDA42\uDA43\uDA44\uDA45\uDA46\uDA47\uDA48\uDA49"+
+ "\uDA4A\uDA4B\uDA4C\uDA4D\uDA4E\uB1B4\uD5EA\uB8BA"+
+ "\uDA4F\uB9B1\uB2C6\uD4F0\uCFCD\uB0DC\uD5CB\uBBF5"+
+ "\uD6CA\uB7B7\uCCB0\uC6B6\uB1E1\uB9BA\uD6FC\uB9E1"+
+ "\uB7A1\uBCFA\uEADA\uEADB\uCCF9\uB9F3\uEADC\uB4FB"+
+ "\uC3B3\uB7D1\uBAD8\uEADD\uD4F4\uEADE\uBCD6\uBBDF"+
+ "\uEADF\uC1DE\uC2B8\uD4DF\uD7CA\uEAE0\uEAE1\uEAE4"+
+ "\uEAE2\uEAE3\uC9DE\uB8B3\uB6C4\uEAE5\uCAEA\uC9CD"+
+ "\uB4CD\uDA50\uDA51\uE2D9\uC5E2\uEAE6\uC0B5\uDA52"+
+ "\uD7B8\uEAE7\uD7AC\uC8FC\uD8D3\uD8CD\uD4DE\uDA53"+
+ "\uD4F9\uC9C4\uD3AE\uB8D3\uB3E0\uDA54\uC9E2\uF4F6"+
+ "\uDA55\uDA56\uDA57\uBAD5\uDA58\uF4F7\uDA59\uDA5A"+
+ "\uD7DF\uDA5B\uDA5C\uF4F1\uB8B0\uD5D4\uB8CF\uC6F0"+
+ "\uDA5D\uDA5E\uDA5F\uDA60\uDA61\uDA62\uDA63\uDA64"+
+ "\uDA65\uB3C3\uDA66\uDA67\uF4F2\uB3AC\uDA68\uDA69"+
+ "\uDA6A\uDA6B\uD4BD\uC7F7\uDA6C\uDA6D\uDA6E\uDA6F"+
+ "\uDA70\uF4F4\uDA71\uDA72\uF4F3\uDA73\uDA74\uDA75"+
+ "\uDA76\uDA77\uDA78\uDA79\uDA7A\uDA7B\uDA7C\uCCCB"+
+ "\uDA7D\uDA7E\uDA80\uC8A4\uDA81\uDA82\uDA83\uDA84"+
+ "\uDA85\uDA86\uDA87\uDA88\uDA89\uDA8A\uDA8B\uDA8C"+
+ "\uDA8D\uF4F5\uDA8E\uD7E3\uC5BF\uF5C0\uDA8F\uDA90"+
+ "\uF5BB\uDA91\uF5C3\uDA92\uF5C2\uDA93\uD6BA\uF5C1"+
+ "\uDA94\uDA95\uDA96\uD4BE\uF5C4\uDA97\uF5CC\uDA98"+
+ "\uDA99\uDA9A\uDA9B\uB0CF\uB5F8\uDA9C\uF5C9\uF5CA"+
+ "\uDA9D\uC5DC\uDA9E\uDA9F\uDAA0\uDB40\uF5C5\uF5C6"+
+ "\uDB41\uDB42\uF5C7\uF5CB\uDB43\uBEE0\uF5C8\uB8FA"+
+ "\uDB44\uDB45\uDB46\uF5D0\uF5D3\uDB47\uDB48\uDB49"+
+ "\uBFE7\uDB4A\uB9F2\uF5BC\uF5CD\uDB4B\uDB4C\uC2B7"+
+ "\uDB4D\uDB4E\uDB4F\uCCF8\uDB50\uBCF9\uDB51\uF5CE"+
+ "\uF5CF\uF5D1\uB6E5\uF5D2\uDB52\uF5D5\uDB53\uDB54"+
+ "\uDB55\uDB56\uDB57\uDB58\uDB59\uF5BD\uDB5A\uDB5B"+
+ "\uDB5C\uF5D4\uD3BB\uDB5D\uB3EC\uDB5E\uDB5F\uCCA4"+
+ "\uDB60\uDB61\uDB62\uDB63\uF5D6\uDB64\uDB65\uDB66"+
+ "\uDB67\uDB68\uDB69\uDB6A\uDB6B\uF5D7\uBEE1\uF5D8"+
+ "\uDB6C\uDB6D\uCCDF\uF5DB\uDB6E\uDB6F\uDB70\uDB71"+
+ "\uDB72\uB2C8\uD7D9\uDB73\uF5D9\uDB74\uF5DA\uF5DC"+
+ "\uDB75\uF5E2\uDB76\uDB77\uDB78\uF5E0\uDB79\uDB7A"+
+ "\uDB7B\uF5DF\uF5DD\uDB7C\uDB7D\uF5E1\uDB7E\uDB80"+
+ "\uF5DE\uF5E4\uF5E5\uDB81\uCCE3\uDB82\uDB83\uE5BF"+
+ "\uB5B8\uF5E3\uF5E8\uCCA3\uDB84\uDB85\uDB86\uDB87"+
+ "\uDB88\uF5E6\uF5E7\uDB89\uDB8A\uDB8B\uDB8C\uDB8D"+
+ "\uDB8E\uF5BE\uDB8F\uDB90\uDB91\uDB92\uDB93\uDB94"+
+ "\uDB95\uDB96\uDB97\uDB98\uDB99\uDB9A\uB1C4\uDB9B"+
+ "\uDB9C\uF5BF\uDB9D\uDB9E\uB5C5\uB2E4\uDB9F\uF5EC"+
+ "\uF5E9\uDBA0\uB6D7\uDC40\uF5ED\uDC41\uF5EA\uDC42"+
+ "\uDC43\uDC44\uDC45\uDC46\uF5EB\uDC47\uDC48\uB4DA"+
+ "\uDC49\uD4EA\uDC4A\uDC4B\uDC4C\uF5EE\uDC4D\uB3F9"+
+ "\uDC4E\uDC4F\uDC50\uDC51\uDC52\uDC53\uDC54\uF5EF"+
+ "\uF5F1\uDC55\uDC56\uDC57\uF5F0\uDC58\uDC59\uDC5A"+
+ "\uDC5B\uDC5C\uDC5D\uDC5E\uF5F2\uDC5F\uF5F3\uDC60"+
+ "\uDC61\uDC62\uDC63\uDC64\uDC65\uDC66\uDC67\uDC68"+
+ "\uDC69\uDC6A\uDC6B\uC9ED\uB9AA\uDC6C\uDC6D\uC7FB"+
+ "\uDC6E\uDC6F\uB6E3\uDC70\uDC71\uDC72\uDC73\uDC74"+
+ "\uDC75\uDC76\uCCC9\uDC77\uDC78\uDC79\uDC7A\uDC7B"+
+ "\uDC7C\uDC7D\uDC7E\uDC80\uDC81\uDC82\uDC83\uDC84"+
+ "\uDC85\uDC86\uDC87\uDC88\uDC89\uDC8A\uEAA6\uDC8B"+
+ "\uDC8C\uDC8D\uDC8E\uDC8F\uDC90\uDC91\uDC92\uDC93"+
+ "\uDC94\uDC95\uDC96\uDC97\uDC98\uDC99\uDC9A\uDC9B"+
+ "\uDC9C\uDC9D\uDC9E\uDC9F\uDCA0\uDD40\uDD41\uDD42"+
+ "\uDD43\uDD44\uDD45\uDD46\uDD47\uDD48\uDD49\uDD4A"+
+ "\uDD4B\uDD4C\uDD4D\uDD4E\uDD4F\uDD50\uDD51\uDD52"+
+ "\uDD53\uDD54\uDD55\uDD56\uDD57\uDD58\uDD59\uDD5A"+
+ "\uDD5B\uDD5C\uDD5D\uDD5E\uDD5F\uDD60\uDD61\uDD62"+
+ "\uDD63\uDD64\uDD65\uDD66\uDD67\uDD68\uDD69\uDD6A"+
+ "\uDD6B\uDD6C\uDD6D\uDD6E\uDD6F\uDD70\uDD71\uDD72"+
+ "\uDD73\uDD74\uDD75\uDD76\uDD77\uDD78\uDD79\uDD7A"+
+ "\uDD7B\uDD7C\uDD7D\uDD7E\uDD80\uDD81\uDD82\uDD83"+
+ "\uDD84\uDD85\uDD86\uDD87\uDD88\uDD89\uDD8A\uDD8B"+
+ "\uDD8C\uDD8D\uDD8E\uDD8F\uDD90\uDD91\uDD92\uDD93"+
+ "\uDD94\uDD95\uDD96\uDD97\uDD98\uDD99\uDD9A\uDD9B"+
+ "\uDD9C\uDD9D\uDD9E\uDD9F\uDDA0\uDE40\uDE41\uDE42"+
+ "\uDE43\uDE44\uDE45\uDE46\uDE47\uDE48\uDE49\uDE4A"+
+ "\uDE4B\uDE4C\uDE4D\uDE4E\uDE4F\uDE50\uDE51\uDE52"+
+ "\uDE53\uDE54\uDE55\uDE56\uDE57\uDE58\uDE59\uDE5A"+
+ "\uDE5B\uDE5C\uDE5D\uDE5E\uDE5F\uDE60\uB3B5\uD4FE"+
+ "\uB9EC\uD0F9\uDE61\uE9ED\uD7AA\uE9EE\uC2D6\uC8ED"+
+ "\uBAE4\uE9EF\uE9F0\uE9F1\uD6E1\uE9F2\uE9F3\uE9F5"+
+ "\uE9F4\uE9F6\uE9F7\uC7E1\uE9F8\uD4D8\uE9F9\uBDCE"+
+ "\uDE62\uE9FA\uE9FB\uBDCF\uE9FC\uB8A8\uC1BE\uE9FD"+
+ "\uB1B2\uBBD4\uB9F5\uE9FE\uDE63\uEAA1\uEAA2\uEAA3"+
+ "\uB7F8\uBCAD\uDE64\uCAE4\uE0CE\uD4AF\uCFBD\uD5B7"+
+ "\uEAA4\uD5DE\uEAA5\uD0C1\uB9BC\uDE65\uB4C7\uB1D9"+
+ "\uDE66\uDE67\uDE68\uC0B1\uDE69\uDE6A\uDE6B\uDE6C"+
+ "\uB1E6\uB1E7\uDE6D\uB1E8\uDE6E\uDE6F\uDE70\uDE71"+
+ "\uB3BD\uC8E8\uDE72\uDE73\uDE74\uDE75\uE5C1\uDE76"+
+ "\uDE77\uB1DF\uDE78\uDE79\uDE7A\uC1C9\uB4EF\uDE7B"+
+ "\uDE7C\uC7A8\uD3D8\uDE7D\uC6F9\uD1B8\uDE7E\uB9FD"+
+ "\uC2F5\uDE80\uDE81\uDE82\uDE83\uDE84\uD3AD\uDE85"+
+ "\uD4CB\uBDFC\uDE86\uE5C2\uB7B5\uE5C3\uDE87\uDE88"+
+ "\uBBB9\uD5E2\uDE89\uBDF8\uD4B6\uCEA5\uC1AC\uB3D9"+
+ "\uDE8A\uDE8B\uCCF6\uDE8C\uE5C6\uE5C4\uE5C8\uDE8D"+
+ "\uE5CA\uE5C7\uB5CF\uC6C8\uDE8E\uB5FC\uE5C5\uDE8F"+
+ "\uCAF6\uDE90\uDE91\uE5C9\uDE92\uDE93\uDE94\uC3D4"+
+ "\uB1C5\uBCA3\uDE95\uDE96\uDE97\uD7B7\uDE98\uDE99";
+
+ private final static String innerEncoderIndex9=
+ "\uCDCB\uCBCD\uCACA\uCCD3\uE5CC\uE5CB\uC4E6\uDE9A"+
+ "\uDE9B\uD1A1\uD1B7\uE5CD\uDE9C\uE5D0\uDE9D\uCDB8"+
+ "\uD6F0\uE5CF\uB5DD\uDE9E\uCDBE\uDE9F\uE5D1\uB6BA"+
+ "\uDEA0\uDF40\uCDA8\uB9E4\uDF41\uCAC5\uB3D1\uCBD9"+
+ "\uD4EC\uE5D2\uB7EA\uDF42\uDF43\uDF44\uE5CE\uDF45"+
+ "\uDF46\uDF47\uDF48\uDF49\uDF4A\uE5D5\uB4FE\uE5D6"+
+ "\uDF4B\uDF4C\uDF4D\uDF4E\uDF4F\uE5D3\uE5D4\uDF50"+
+ "\uD2DD\uDF51\uDF52\uC2DF\uB1C6\uDF53\uD3E2\uDF54"+
+ "\uDF55\uB6DD\uCBEC\uDF56\uE5D7\uDF57\uDF58\uD3F6"+
+ "\uDF59\uDF5A\uDF5B\uDF5C\uDF5D\uB1E9\uDF5E\uB6F4"+
+ "\uE5DA\uE5D8\uE5D9\uB5C0\uDF5F\uDF60\uDF61\uD2C5"+
+ "\uE5DC\uDF62\uDF63\uE5DE\uDF64\uDF65\uDF66\uDF67"+
+ "\uDF68\uDF69\uE5DD\uC7B2\uDF6A\uD2A3\uDF6B\uDF6C"+
+ "\uE5DB\uDF6D\uDF6E\uDF6F\uDF70\uD4E2\uD5DA\uDF71"+
+ "\uDF72\uDF73\uDF74\uDF75\uE5E0\uD7F1\uDF76\uDF77"+
+ "\uDF78\uDF79\uDF7A\uDF7B\uDF7C\uE5E1\uDF7D\uB1DC"+
+ "\uD1FB\uDF7E\uE5E2\uE5E4\uDF80\uDF81\uDF82\uDF83"+
+ "\uE5E3\uDF84\uDF85\uE5E5\uDF86\uDF87\uDF88\uDF89"+
+ "\uDF8A\uD2D8\uDF8B\uB5CB\uDF8C\uE7DF\uDF8D\uDAF5"+
+ "\uDF8E\uDAF8\uDF8F\uDAF6\uDF90\uDAF7\uDF91\uDF92"+
+ "\uDF93\uDAFA\uD0CF\uC4C7\uDF94\uDF95\uB0EE\uDF96"+
+ "\uDF97\uDF98\uD0B0\uDF99\uDAF9\uDF9A\uD3CA\uBAAA"+
+ "\uDBA2\uC7F1\uDF9B\uDAFC\uDAFB\uC9DB\uDAFD\uDF9C"+
+ "\uDBA1\uD7DE\uDAFE\uC1DA\uDF9D\uDF9E\uDBA5\uDF9F"+
+ "\uDFA0\uD3F4\uE040\uE041\uDBA7\uDBA4\uE042\uDBA8"+
+ "\uE043\uE044\uBDBC\uE045\uE046\uE047\uC0C9\uDBA3"+
+ "\uDBA6\uD6A3\uE048\uDBA9\uE049\uE04A\uE04B\uDBAD"+
+ "\uE04C\uE04D\uE04E\uDBAE\uDBAC\uBAC2\uE04F\uE050"+
+ "\uE051\uBFA4\uDBAB\uE052\uE053\uE054\uDBAA\uD4C7"+
+ "\uB2BF\uE055\uE056\uDBAF\uE057\uB9F9\uE058\uDBB0"+
+ "\uE059\uE05A\uE05B\uE05C\uB3BB\uE05D\uE05E\uE05F"+
+ "\uB5A6\uE060\uE061\uE062\uE063\uB6BC\uDBB1\uE064"+
+ "\uE065\uE066\uB6F5\uE067\uDBB2\uE068\uE069\uE06A"+
+ "\uE06B\uE06C\uE06D\uE06E\uE06F\uE070\uE071\uE072"+
+ "\uE073\uE074\uE075\uE076\uE077\uE078\uE079\uE07A"+
+ "\uE07B\uB1C9\uE07C\uE07D\uE07E\uE080\uDBB4\uE081"+
+ "\uE082\uE083\uDBB3\uDBB5\uE084\uE085\uE086\uE087"+
+ "\uE088\uE089\uE08A\uE08B\uE08C\uE08D\uE08E\uDBB7"+
+ "\uE08F\uDBB6\uE090\uE091\uE092\uE093\uE094\uE095"+
+ "\uE096\uDBB8\uE097\uE098\uE099\uE09A\uE09B\uE09C"+
+ "\uE09D\uE09E\uE09F\uDBB9\uE0A0\uE140\uDBBA\uE141"+
+ "\uE142\uD3CF\uF4FA\uC7F5\uD7C3\uC5E4\uF4FC\uF4FD"+
+ "\uF4FB\uE143\uBEC6\uE144\uE145\uE146\uE147\uD0EF"+
+ "\uE148\uE149\uB7D3\uE14A\uE14B\uD4CD\uCCAA\uE14C"+
+ "\uE14D\uF5A2\uF5A1\uBAA8\uF4FE\uCBD6\uE14E\uE14F"+
+ "\uE150\uF5A4\uC0D2\uE151\uB3EA\uE152\uCDAA\uF5A5"+
+ "\uF5A3\uBDB4\uF5A8\uE153\uF5A9\uBDCD\uC3B8\uBFE1"+
+ "\uCBE1\uF5AA\uE154\uE155\uE156\uF5A6\uF5A7\uC4F0"+
+ "\uE157\uE158\uE159\uE15A\uE15B\uF5AC\uE15C\uB4BC"+
+ "\uE15D\uD7ED\uE15E\uB4D7\uF5AB\uF5AE\uE15F\uE160"+
+ "\uF5AD\uF5AF\uD0D1\uE161\uE162\uE163\uE164\uE165"+
+ "\uE166\uE167\uC3D1\uC8A9\uE168\uE169\uE16A\uE16B"+
+ "\uE16C\uE16D\uF5B0\uF5B1\uE16E\uE16F\uE170\uE171"+
+ "\uE172\uE173\uF5B2\uE174\uE175\uF5B3\uF5B4\uF5B5"+
+ "\uE176\uE177\uE178\uE179\uF5B7\uF5B6\uE17A\uE17B"+
+ "\uE17C\uE17D\uF5B8\uE17E\uE180\uE181\uE182\uE183"+
+ "\uE184\uE185\uE186\uE187\uE188\uE189\uE18A\uB2C9"+
+ "\uE18B\uD3D4\uCACD\uE18C\uC0EF\uD6D8\uD2B0\uC1BF"+
+ "\uE18D\uBDF0\uE18E\uE18F\uE190\uE191\uE192\uE193"+
+ "\uE194\uE195\uE196\uE197\uB8AA\uE198\uE199\uE19A"+
+ "\uE19B\uE19C\uE19D\uE19E\uE19F\uE1A0\uE240\uE241"+
+ "\uE242\uE243\uE244\uE245\uE246\uE247\uE248\uE249"+
+ "\uE24A\uE24B\uE24C\uE24D\uE24E\uE24F\uE250\uE251"+
+ "\uE252\uE253\uE254\uE255\uE256\uE257\uE258\uE259"+
+ "\uE25A\uE25B\uE25C\uE25D\uE25E\uE25F\uE260\uE261"+
+ "\uE262\uE263\uE264\uE265\uE266\uE267\uE268\uE269"+
+ "\uE26A\uE26B\uE26C\uE26D\uE26E\uE26F\uE270\uE271"+
+ "\uE272\uE273\uE274\uE275\uE276\uE277\uE278\uE279"+
+ "\uE27A\uE27B\uE27C\uE27D\uE27E\uE280\uE281\uE282"+
+ "\uE283\uE284\uE285\uE286\uE287\uE288\uE289\uE28A"+
+ "\uE28B\uE28C\uE28D\uE28E\uE28F\uE290\uE291\uE292"+
+ "\uE293\uE294\uE295\uE296\uE297\uE298\uE299\uE29A"+
+ "\uE29B\uE29C\uE29D\uE29E\uE29F\uE2A0\uE340\uE341"+
+ "\uE342\uE343\uE344\uE345\uE346\uE347\uE348\uE349"+
+ "\uE34A\uE34B\uE34C\uE34D\uE34E\uE34F\uE350\uE351"+
+ "\uE352\uE353\uE354\uE355\uE356\uE357\uE358\uE359"+
+ "\uE35A\uE35B\uE35C\uE35D\uE35E\uE35F\uE360\uE361"+
+ "\uE362\uE363\uE364\uE365\uE366\uE367\uE368\uE369"+
+ "\uE36A\uE36B\uE36C\uE36D\uBCF8\uE36E\uE36F\uE370"+
+ "\uE371\uE372\uE373\uE374\uE375\uE376\uE377\uE378"+
+ "\uE379\uE37A\uE37B\uE37C\uE37D\uE37E\uE380\uE381"+
+ "\uE382\uE383\uE384\uE385\uE386\uE387\uF6C6\uE388"+
+ "\uE389\uE38A\uE38B\uE38C\uE38D\uE38E\uE38F\uE390"+
+ "\uE391\uE392\uE393\uE394\uE395\uE396\uE397\uE398"+
+ "\uE399\uE39A\uE39B\uE39C\uE39D\uE39E\uE39F\uE3A0"+
+ "\uE440\uE441\uE442\uE443\uE444\uE445\uF6C7\uE446"+
+ "\uE447\uE448\uE449\uE44A\uE44B\uE44C\uE44D\uE44E"+
+ "\uE44F\uE450\uE451\uE452\uE453\uE454\uE455\uE456"+
+ "\uE457\uE458\uE459\uE45A\uE45B\uE45C\uE45D\uE45E"+
+ "\uF6C8\uE45F\uE460\uE461\uE462\uE463\uE464\uE465"+
+ "\uE466\uE467\uE468\uE469\uE46A\uE46B\uE46C\uE46D"+
+ "\uE46E\uE46F\uE470\uE471\uE472\uE473\uE474\uE475"+
+ "\uE476\uE477\uE478\uE479\uE47A\uE47B\uE47C\uE47D"+
+ "\uE47E\uE480\uE481\uE482\uE483\uE484\uE485\uE486"+
+ "\uE487\uE488\uE489\uE48A\uE48B\uE48C\uE48D\uE48E"+
+ "\uE48F\uE490\uE491\uE492\uE493\uE494\uE495\uE496"+
+ "\uE497\uE498\uE499\uE49A\uE49B\uE49C\uE49D\uE49E"+
+ "\uE49F\uE4A0\uE540\uE541\uE542\uE543\uE544\uE545"+
+ "\uE546\uE547\uE548\uE549\uE54A\uE54B\uE54C\uE54D"+
+ "\uE54E\uE54F\uE550\uE551\uE552\uE553\uE554\uE555"+
+ "\uE556\uE557\uE558\uE559\uE55A\uE55B\uE55C\uE55D"+
+ "\uE55E\uE55F\uE560\uE561\uE562\uE563\uE564\uE565"+
+ "\uE566\uE567\uE568\uE569\uE56A\uE56B\uE56C\uE56D"+
+ "\uE56E\uE56F\uE570\uE571\uE572\uE573\uF6C9\uE574"+
+ "\uE575\uE576\uE577\uE578\uE579\uE57A\uE57B\uE57C"+
+ "\uE57D\uE57E\uE580\uE581\uE582\uE583\uE584\uE585"+
+ "\uE586\uE587\uE588\uE589\uE58A\uE58B\uE58C\uE58D"+
+ "\uE58E\uE58F\uE590\uE591\uE592\uE593\uE594\uE595"+
+ "\uE596\uE597\uE598\uE599\uE59A\uE59B\uE59C\uE59D"+
+ "\uE59E\uE59F\uF6CA\uE5A0\uE640\uE641\uE642\uE643"+
+ "\uE644\uE645\uE646\uE647\uE648\uE649\uE64A\uE64B"+
+ "\uE64C\uE64D\uE64E\uE64F\uE650\uE651\uE652\uE653"+
+ "\uE654\uE655\uE656\uE657\uE658\uE659\uE65A\uE65B"+
+ "\uE65C\uE65D\uE65E\uE65F\uE660\uE661\uE662\uF6CC"+
+ "\uE663\uE664\uE665\uE666\uE667\uE668\uE669\uE66A"+
+ "\uE66B\uE66C\uE66D\uE66E\uE66F\uE670\uE671\uE672"+
+ "\uE673\uE674\uE675\uE676\uE677\uE678\uE679\uE67A"+
+ "\uE67B\uE67C\uE67D\uE67E\uE680\uE681\uE682\uE683"+
+ "\uE684\uE685\uE686\uE687\uE688\uE689\uE68A\uE68B"+
+ "\uE68C\uE68D\uE68E\uE68F\uE690\uE691\uE692\uE693"+
+ "\uE694\uE695\uE696\uE697\uE698\uE699\uE69A\uE69B"+
+ "\uE69C\uE69D\uF6CB\uE69E\uE69F\uE6A0\uE740\uE741"+
+ "\uE742\uE743\uE744\uE745\uE746\uE747\uF7E9\uE748"+
+ "\uE749\uE74A\uE74B\uE74C\uE74D\uE74E\uE74F\uE750"+
+ "\uE751\uE752\uE753\uE754\uE755\uE756\uE757\uE758"+
+ "\uE759\uE75A\uE75B\uE75C\uE75D\uE75E\uE75F\uE760"+
+ "\uE761\uE762\uE763\uE764\uE765\uE766\uE767\uE768"+
+ "\uE769\uE76A\uE76B\uE76C\uE76D\uE76E\uE76F\uE770"+
+ "\uE771\uE772\uE773\uE774\uE775\uE776\uE777\uE778"+
+ "\uE779\uE77A\uE77B\uE77C\uE77D\uE77E\uE780\uE781"+
+ "\uE782\uE783\uE784\uE785\uE786\uE787\uE788\uE789"+
+ "\uE78A\uE78B\uE78C\uE78D\uE78E\uE78F\uE790\uE791"+
+ "\uE792\uE793\uE794\uE795\uE796\uE797\uE798\uE799"+
+ "\uE79A\uE79B\uE79C\uE79D\uE79E\uE79F\uE7A0\uE840"+
+ "\uE841\uE842\uE843\uE844\uE845\uE846\uE847\uE848"+
+ "\uE849\uE84A\uE84B\uE84C\uE84D\uE84E\uF6CD\uE84F"+
+ "\uE850\uE851\uE852\uE853\uE854\uE855\uE856\uE857"+
+ "\uE858\uE859\uE85A\uE85B\uE85C\uE85D\uE85E\uE85F"+
+ "\uE860\uE861\uE862\uE863\uE864\uE865\uE866\uE867"+
+ "\uE868\uE869\uE86A\uE86B\uE86C\uE86D\uE86E\uE86F"+
+ "\uE870\uE871\uE872\uE873\uE874\uE875\uE876\uE877"+
+ "\uE878\uE879\uE87A\uF6CE\uE87B\uE87C\uE87D\uE87E"+
+ "\uE880\uE881\uE882\uE883\uE884\uE885\uE886\uE887"+
+ "\uE888\uE889\uE88A\uE88B\uE88C\uE88D\uE88E\uE88F"+
+ "\uE890\uE891\uE892\uE893\uE894\uEEC4\uEEC5\uEEC6"+
+ "\uD5EB\uB6A4\uEEC8\uEEC7\uEEC9\uEECA\uC7A5\uEECB"+
+ "\uEECC\uE895\uB7B0\uB5F6\uEECD\uEECF\uE896\uEECE"+
+ "\uE897\uB8C6\uEED0\uEED1\uEED2\uB6DB\uB3AE\uD6D3"+
+ "\uC4C6\uB1B5\uB8D6\uEED3\uEED4\uD4BF\uC7D5\uBEFB"+
+ "\uCED9\uB9B3\uEED6\uEED5\uEED8\uEED7\uC5A5\uEED9"+
+ "\uEEDA\uC7AE\uEEDB\uC7AF\uEEDC\uB2A7\uEEDD\uEEDE"+
+ "\uEEDF\uEEE0\uEEE1\uD7EA\uEEE2\uEEE3\uBCD8\uEEE4"+
+ "\uD3CB\uCCFA\uB2AC\uC1E5\uEEE5\uC7A6\uC3AD\uE898"+
+ "\uEEE6\uEEE7\uEEE8\uEEE9\uEEEA\uEEEB\uEEEC\uE899"+
+ "\uEEED\uEEEE\uEEEF\uE89A\uE89B\uEEF0\uEEF1\uEEF2"+
+ "\uEEF4\uEEF3\uE89C\uEEF5\uCDAD\uC2C1\uEEF6\uEEF7"+
+ "\uEEF8\uD5A1\uEEF9\uCFB3\uEEFA\uEEFB\uE89D\uEEFC"+
+ "\uEEFD\uEFA1\uEEFE\uEFA2\uB8F5\uC3FA\uEFA3\uEFA4"+
+ "\uBDC2\uD2BF\uB2F9\uEFA5\uEFA6\uEFA7\uD2F8\uEFA8"+
+ "\uD6FD\uEFA9\uC6CC\uE89E\uEFAA\uEFAB\uC1B4\uEFAC"+
+ "\uCFFA\uCBF8\uEFAE\uEFAD\uB3FA\uB9F8\uEFAF\uEFB0"+
+ "\uD0E2\uEFB1\uEFB2\uB7E6\uD0BF\uEFB3\uEFB4\uEFB5"+
+ "\uC8F1\uCCE0\uEFB6\uEFB7\uEFB8\uEFB9\uEFBA\uD5E0"+
+ "\uEFBB\uB4ED\uC3AA\uEFBC\uE89F\uEFBD\uEFBE\uEFBF"+
+ "\uE8A0\uCEFD\uEFC0\uC2E0\uB4B8\uD7B6\uBDF5\uE940"+
+ "\uCFC7\uEFC3\uEFC1\uEFC2\uEFC4\uB6A7\uBCFC\uBEE2"+
+ "\uC3CC\uEFC5\uEFC6\uE941\uEFC7\uEFCF\uEFC8\uEFC9"+
+ "\uEFCA\uC7C2\uEFF1\uB6CD\uEFCB\uE942\uEFCC\uEFCD"+
+ "\uB6C6\uC3BE\uEFCE\uE943\uEFD0\uEFD1\uEFD2\uD5F2"+
+ "\uE944\uEFD3\uC4F7\uE945\uEFD4\uC4F8\uEFD5\uEFD6"+
+ "\uB8E4\uB0F7\uEFD7\uEFD8\uEFD9\uE946\uEFDA\uEFDB"+
+ "\uEFDC\uEFDD\uE947\uEFDE\uBEB5\uEFE1\uEFDF\uEFE0"+
+ "\uE948\uEFE2\uEFE3\uC1CD\uEFE4\uEFE5\uEFE6\uEFE7"+
+ "\uEFE8\uEFE9\uEFEA\uEFEB\uEFEC\uC0D8\uE949\uEFED"+
+ "\uC1AD\uEFEE\uEFEF\uEFF0\uE94A\uE94B\uCFE2\uE94C"+
+ "\uE94D\uE94E\uE94F\uE950\uE951\uE952\uE953\uB3A4"+
+ "\uE954\uE955\uE956\uE957\uE958\uE959\uE95A\uE95B"+
+ "\uE95C\uE95D\uE95E\uE95F\uE960\uE961\uE962\uE963"+
+ "\uE964\uE965\uE966\uE967\uE968\uE969\uE96A\uE96B"+
+ "\uE96C\uE96D\uE96E\uE96F\uE970\uE971\uE972\uE973"+
+ "\uE974\uE975\uE976\uE977\uE978\uE979\uE97A\uE97B"+
+ "\uE97C\uE97D\uE97E\uE980\uE981\uE982\uE983\uE984"+
+ "\uE985\uE986\uE987\uE988\uE989\uE98A\uE98B\uE98C"+
+ "\uE98D\uE98E\uE98F\uE990\uE991\uE992\uE993\uE994"+
+ "\uE995\uE996\uE997\uE998\uE999\uE99A\uE99B\uE99C"+
+ "\uE99D\uE99E\uE99F\uE9A0\uEA40\uEA41\uEA42\uEA43"+
+ "\uEA44\uEA45\uEA46\uEA47\uEA48\uEA49\uEA4A\uEA4B"+
+ "\uEA4C\uEA4D\uEA4E\uEA4F\uEA50\uEA51\uEA52\uEA53"+
+ "\uEA54\uEA55\uEA56\uEA57\uEA58\uEA59\uEA5A\uEA5B"+
+ "\uC3C5\uE3C5\uC9C1\uE3C6\uEA5C\uB1D5\uCECA\uB4B3"+
+ "\uC8F2\uE3C7\uCFD0\uE3C8\uBCE4\uE3C9\uE3CA\uC3C6"+
+ "\uD5A2\uC4D6\uB9EB\uCEC5\uE3CB\uC3F6\uE3CC\uEA5D"+
+ "\uB7A7\uB8F3\uBAD2\uE3CD\uE3CE\uD4C4\uE3CF\uEA5E"+
+ "\uE3D0\uD1CB\uE3D1\uE3D2\uE3D3\uE3D4\uD1D6\uE3D5"+
+ "\uB2FB\uC0BB\uE3D6\uEA5F\uC0AB\uE3D7\uE3D8\uE3D9"+
+ "\uEA60\uE3DA\uE3DB\uEA61\uB8B7\uDAE2\uEA62\uB6D3"+
+ "\uEA63\uDAE4\uDAE3\uEA64\uEA65\uEA66\uEA67\uEA68"+
+ "\uEA69\uEA6A\uDAE6\uEA6B\uEA6C\uEA6D\uC8EE\uEA6E"+
+ "\uEA6F\uDAE5\uB7C0\uD1F4\uD2F5\uD5F3\uBDD7\uEA70"+
+ "\uEA71\uEA72\uEA73\uD7E8\uDAE8\uDAE7\uEA74\uB0A2"+
+ "\uCDD3\uEA75\uDAE9\uEA76\uB8BD\uBCCA\uC2BD\uC2A4"+
+ "\uB3C2\uDAEA\uEA77\uC2AA\uC4B0\uBDB5\uEA78\uEA79"+
+ "\uCFDE\uEA7A\uEA7B\uEA7C\uDAEB\uC9C2\uEA7D\uEA7E"+
+ "\uEA80\uEA81\uEA82\uB1DD\uEA83\uEA84\uEA85\uDAEC"+
+ "\uEA86\uB6B8\uD4BA\uEA87\uB3FD\uEA88\uEA89\uDAED"+
+ "\uD4C9\uCFD5\uC5E3\uEA8A\uDAEE\uEA8B\uEA8C\uEA8D"+
+ "\uEA8E\uEA8F\uDAEF\uEA90\uDAF0\uC1EA\uCCD5\uCFDD"+
+ "\uEA91\uEA92\uEA93\uEA94\uEA95\uEA96\uEA97\uEA98"+
+ "\uEA99\uEA9A\uEA9B\uEA9C\uEA9D\uD3E7\uC2A1\uEA9E"+
+ "\uDAF1\uEA9F\uEAA0\uCBE5\uEB40\uDAF2\uEB41\uCBE6"+
+ "\uD2FE\uEB42\uEB43\uEB44\uB8F4\uEB45\uEB46\uDAF3"+
+ "\uB0AF\uCFB6\uEB47\uEB48\uD5CF\uEB49\uEB4A\uEB4B"+
+ "\uEB4C\uEB4D\uEB4E\uEB4F\uEB50\uEB51\uEB52\uCBED"+
+ "\uEB53\uEB54\uEB55\uEB56\uEB57\uEB58\uEB59\uEB5A"+
+ "\uDAF4\uEB5B\uEB5C\uE3C4\uEB5D\uEB5E\uC1A5\uEB5F"+
+ "\uEB60\uF6BF\uEB61\uEB62\uF6C0\uF6C1\uC4D1\uEB63"+
+ "\uC8B8\uD1E3\uEB64\uEB65\uD0DB\uD1C5\uBCAF\uB9CD"+
+ "\uEB66\uEFF4\uEB67\uEB68\uB4C6\uD3BA\uF6C2\uB3FB"+
+ "\uEB69\uEB6A\uF6C3\uEB6B\uEB6C\uB5F1\uEB6D\uEB6E"+
+ "\uEB6F\uEB70\uEB71\uEB72\uEB73\uEB74\uEB75\uEB76"+
+ "\uF6C5\uEB77\uEB78\uEB79\uEB7A\uEB7B\uEB7C\uEB7D"+
+ "\uD3EA\uF6A7\uD1A9\uEB7E\uEB80\uEB81\uEB82\uF6A9"+
+ "\uEB83\uEB84\uEB85\uF6A8\uEB86\uEB87\uC1E3\uC0D7"+
+ "\uEB88\uB1A2\uEB89\uEB8A\uEB8B\uEB8C\uCEED\uEB8D"+
+ "\uD0E8\uF6AB\uEB8E\uEB8F\uCFF6\uEB90\uF6AA\uD5F0"+
+ "\uF6AC\uC3B9\uEB91\uEB92\uEB93\uBBF4\uF6AE\uF6AD"+
+ "\uEB94\uEB95\uEB96\uC4DE\uEB97\uEB98\uC1D8\uEB99"+
+ "\uEB9A\uEB9B\uEB9C\uEB9D\uCBAA\uEB9E\uCFBC\uEB9F"+
+ "\uEBA0\uEC40\uEC41\uEC42\uEC43\uEC44\uEC45\uEC46"+
+ "\uEC47\uEC48\uF6AF\uEC49\uEC4A\uF6B0\uEC4B\uEC4C"+
+ "\uF6B1\uEC4D\uC2B6\uEC4E\uEC4F\uEC50\uEC51\uEC52"+
+ "\uB0D4\uC5F9\uEC53\uEC54\uEC55\uEC56\uF6B2\uEC57"+
+ "\uEC58\uEC59\uEC5A\uEC5B\uEC5C\uEC5D\uEC5E\uEC5F"+
+ "\uEC60\uEC61\uEC62\uEC63\uEC64\uEC65\uEC66\uEC67"+
+ "\uEC68\uEC69\uC7E0\uF6A6\uEC6A\uEC6B\uBEB8\uEC6C"+
+ "\uEC6D\uBEB2\uEC6E\uB5E5\uEC6F\uEC70\uB7C7\uEC71"+
+ "\uBFBF\uC3D2\uC3E6\uEC72\uEC73\uD8CC\uEC74\uEC75"+
+ "\uEC76\uB8EF\uEC77\uEC78\uEC79\uEC7A\uEC7B\uEC7C"+
+ "\uEC7D\uEC7E\uEC80\uBDF9\uD1A5\uEC81\uB0D0\uEC82"+
+ "\uEC83\uEC84\uEC85\uEC86\uF7B0\uEC87\uEC88\uEC89"+
+ "\uEC8A\uEC8B\uEC8C\uEC8D\uEC8E\uF7B1\uEC8F\uEC90"+
+ "\uEC91\uEC92\uEC93\uD0AC\uEC94\uB0B0\uEC95\uEC96"+
+ "\uEC97\uF7B2\uF7B3\uEC98\uF7B4\uEC99\uEC9A\uEC9B"+
+ "\uC7CA\uEC9C\uEC9D\uEC9E\uEC9F\uECA0\uED40\uED41"+
+ "\uBECF\uED42\uED43\uF7B7\uED44\uED45\uED46\uED47"+
+ "\uED48\uED49\uED4A\uF7B6\uED4B\uB1DE\uED4C\uF7B5"+
+ "\uED4D\uED4E\uF7B8\uED4F\uF7B9\uED50\uED51\uED52"+
+ "\uED53\uED54\uED55\uED56\uED57\uED58\uED59\uED5A"+
+ "\uED5B\uED5C\uED5D\uED5E\uED5F\uED60\uED61\uED62"+
+ "\uED63\uED64\uED65\uED66\uED67\uED68\uED69\uED6A"+
+ "\uED6B\uED6C\uED6D\uED6E\uED6F\uED70\uED71\uED72"+
+ "\uED73\uED74\uED75\uED76\uED77\uED78\uED79\uED7A"+
+ "\uED7B\uED7C\uED7D\uED7E\uED80\uED81\uCEA4\uC8CD"+
+ "\uED82\uBAAB\uE8B8\uE8B9\uE8BA\uBEC2\uED83\uED84"+
+ "\uED85\uED86\uED87\uD2F4\uED88\uD4CF\uC9D8\uED89"+
+ "\uED8A\uED8B\uED8C\uED8D\uED8E\uED8F\uED90\uED91"+
+ "\uED92\uED93\uED94\uED95\uED96\uED97\uED98\uED99"+
+ "\uED9A\uED9B\uED9C\uED9D\uED9E\uED9F\uEDA0\uEE40"+
+ "\uEE41\uEE42\uEE43\uEE44\uEE45\uEE46\uEE47\uEE48"+
+ "\uEE49\uEE4A\uEE4B\uEE4C\uEE4D\uEE4E\uEE4F\uEE50"+
+ "\uEE51\uEE52\uEE53\uEE54\uEE55\uEE56\uEE57\uEE58"+
+ "\uEE59\uEE5A\uEE5B\uEE5C\uEE5D\uEE5E\uEE5F\uEE60"+
+ "\uEE61\uEE62\uEE63\uEE64\uEE65\uEE66\uEE67\uEE68"+
+ "\uEE69\uEE6A\uEE6B\uEE6C\uEE6D\uEE6E\uEE6F\uEE70"+
+ "\uEE71\uEE72\uEE73\uEE74\uEE75\uEE76\uEE77\uEE78"+
+ "\uEE79\uEE7A\uEE7B\uEE7C\uEE7D\uEE7E\uEE80\uEE81"+
+ "\uEE82\uEE83\uEE84\uEE85\uEE86\uEE87\uEE88\uEE89"+
+ "\uEE8A\uEE8B\uEE8C\uEE8D\uEE8E\uEE8F\uEE90\uEE91"+
+ "\uEE92\uEE93\uEE94\uEE95\uEE96\uEE97\uEE98\uEE99"+
+ "\uEE9A\uEE9B\uEE9C\uEE9D\uEE9E\uEE9F\uEEA0\uEF40"+
+ "\uEF41\uEF42\uEF43\uEF44\uEF45\uD2B3\uB6A5\uC7EA"+
+ "\uF1FC\uCFEE\uCBB3\uD0EB\uE7EF\uCDE7\uB9CB\uB6D9"+
+ "\uF1FD\uB0E4\uCBCC\uF1FE\uD4A4\uC2AD\uC1EC\uC6C4"+
+ "\uBEB1\uF2A1\uBCD5\uEF46\uF2A2\uF2A3\uEF47\uF2A4"+
+ "\uD2C3\uC6B5\uEF48\uCDC7\uF2A5\uEF49\uD3B1\uBFC5"+
+ "\uCCE2\uEF4A\uF2A6\uF2A7\uD1D5\uB6EE\uF2A8\uF2A9"+
+ "\uB5DF\uF2AA\uF2AB\uEF4B\uB2FC\uF2AC\uF2AD\uC8A7"+
+ "\uEF4C\uEF4D\uEF4E\uEF4F\uEF50\uEF51\uEF52\uEF53"+
+ "\uEF54\uEF55\uEF56\uEF57\uEF58\uEF59\uEF5A\uEF5B"+
+ "\uEF5C\uEF5D\uEF5E\uEF5F\uEF60\uEF61\uEF62\uEF63"+
+ "\uEF64\uEF65\uEF66\uEF67\uEF68\uEF69\uEF6A\uEF6B"+
+ "\uEF6C\uEF6D\uEF6E\uEF6F\uEF70\uEF71\uB7E7\uEF72"+
+ "\uEF73\uECA9\uECAA\uECAB\uEF74\uECAC\uEF75\uEF76"+
+ "\uC6AE\uECAD\uECAE\uEF77\uEF78\uEF79\uB7C9\uCAB3"+
+ "\uEF7A\uEF7B\uEF7C\uEF7D\uEF7E\uEF80\uEF81\uE2B8"+
+ "\uF7CF\uEF82\uEF83\uEF84\uEF85\uEF86\uEF87\uEF88"+
+ "\uEF89\uEF8A\uEF8B\uEF8C\uEF8D\uEF8E\uEF8F\uEF90"+
+ "\uEF91\uEF92\uEF93\uEF94\uEF95\uEF96\uEF97\uEF98"+
+ "\uEF99\uEF9A\uEF9B\uEF9C\uEF9D\uEF9E\uEF9F\uEFA0"+
+ "\uF040\uF041\uF042\uF043\uF044\uF7D0\uF045\uF046"+
+ "\uB2CD\uF047\uF048\uF049\uF04A\uF04B\uF04C\uF04D"+
+ "\uF04E\uF04F\uF050\uF051\uF052\uF053\uF054\uF055"+
+ "\uF056\uF057\uF058\uF059\uF05A\uF05B\uF05C\uF05D"+
+ "\uF05E\uF05F\uF060\uF061\uF062\uF063\uF7D1\uF064"+
+ "\uF065\uF066\uF067\uF068\uF069\uF06A\uF06B\uF06C"+
+ "\uF06D\uF06E\uF06F\uF070\uF071\uF072\uF073\uF074"+
+ "\uF075\uF076\uF077\uF078\uF079\uF07A\uF07B\uF07C"+
+ "\uF07D\uF07E\uF080\uF081\uF082\uF083\uF084\uF085"+
+ "\uF086\uF087\uF088\uF089\uF7D3\uF7D2\uF08A\uF08B"+
+ "\uF08C\uF08D\uF08E\uF08F\uF090\uF091\uF092\uF093"+
+ "\uF094\uF095\uF096\uE2BB\uF097\uBCA2\uF098\uE2BC"+
+ "\uE2BD\uE2BE\uE2BF\uE2C0\uE2C1\uB7B9\uD2FB\uBDA4"+
+ "\uCACE\uB1A5\uCBC7\uF099\uE2C2\uB6FC\uC8C4\uE2C3"+
+ "\uF09A\uF09B\uBDC8\uF09C\uB1FD\uE2C4\uF09D\uB6F6"+
+ "\uE2C5\uC4D9\uF09E\uF09F\uE2C6\uCFDA\uB9DD\uE2C7"+
+ "\uC0A1\uF0A0\uE2C8\uB2F6\uF140\uE2C9\uF141\uC1F3"+
+ "\uE2CA\uE2CB\uC2F8\uE2CC\uE2CD\uE2CE\uCAD7\uD8B8"+
+ "\uD9E5\uCFE3\uF142\uF143\uF144\uF145\uF146\uF147"+
+ "\uF148\uF149\uF14A\uF14B\uF14C\uF0A5\uF14D\uF14E"+
+ "\uDCB0\uF14F\uF150\uF151\uF152\uF153\uF154\uF155"+
+ "\uF156\uF157\uF158\uF159\uF15A\uF15B\uF15C\uF15D"+
+ "\uF15E\uF15F\uF160\uF161\uF162\uF163\uF164\uF165"+
+ "\uF166\uF167\uF168\uF169\uF16A\uF16B\uF16C\uF16D"+
+ "\uF16E\uF16F\uF170\uF171\uF172\uF173\uF174\uF175"+
+ "\uF176\uF177\uF178\uF179\uF17A\uF17B\uF17C\uF17D"+
+ "\uF17E\uF180\uF181\uF182\uF183\uF184\uF185\uF186"+
+ "\uF187\uF188\uF189\uF18A\uF18B\uF18C\uF18D\uF18E"+
+ "\uF18F\uF190\uF191\uF192\uF193\uF194\uF195\uF196"+
+ "\uF197\uF198\uF199\uF19A\uF19B\uF19C\uF19D\uF19E"+
+ "\uF19F\uF1A0\uF240\uF241\uF242\uF243\uF244\uF245"+
+ "\uF246\uF247\uF248\uF249\uF24A\uF24B\uF24C\uF24D"+
+ "\uF24E\uF24F\uF250\uF251\uF252\uF253\uF254\uF255"+
+ "\uF256\uF257\uF258\uF259\uF25A\uF25B\uF25C\uF25D"+
+ "\uF25E\uF25F\uF260\uF261\uF262\uF263\uF264\uF265"+
+ "\uF266\uF267\uF268\uF269\uF26A\uF26B\uF26C\uF26D"+
+ "\uF26E\uF26F\uF270\uF271\uF272\uF273\uF274\uF275"+
+ "\uF276\uF277\uF278\uF279\uF27A\uF27B\uF27C\uF27D"+
+ "\uF27E\uF280\uF281\uF282\uF283\uF284\uF285\uF286"+
+ "\uF287\uF288\uF289\uF28A\uF28B\uF28C\uF28D\uF28E"+
+ "\uF28F\uF290\uF291\uF292\uF293\uF294\uF295\uF296"+
+ "\uF297\uF298\uF299\uF29A\uF29B\uF29C\uF29D\uF29E"+
+ "\uF29F\uF2A0\uF340\uF341\uF342\uF343\uF344\uF345"+
+ "\uF346\uF347\uF348\uF349\uF34A\uF34B\uF34C\uF34D"+
+ "\uF34E\uF34F\uF350\uF351\uC2ED\uD4A6\uCDD4\uD1B1"+
+ "\uB3DB\uC7FD\uF352\uB2B5\uC2BF\uE6E0\uCABB\uE6E1"+
+ "\uE6E2\uBED4\uE6E3\uD7A4\uCDD5\uE6E5\uBCDD\uE6E4"+
+ "\uE6E6\uE6E7\uC2EE\uF353\uBDBE\uE6E8\uC2E6\uBAA7"+
+ "\uE6E9\uF354\uE6EA\uB3D2\uD1E9\uF355\uF356\uBFA5"+
+ "\uE6EB\uC6EF\uE6EC\uE6ED\uF357\uF358\uE6EE\uC6AD"+
+ "\uE6EF\uF359\uC9A7\uE6F0\uE6F1\uE6F2\uE5B9\uE6F3"+
+ "\uE6F4\uC2E2\uE6F5\uE6F6\uD6E8\uE6F7\uF35A\uE6F8"+
+ "\uB9C7\uF35B\uF35C\uF35D\uF35E\uF35F\uF360\uF361"+
+ "\uF7BB\uF7BA\uF362\uF363\uF364\uF365\uF7BE\uF7BC"+
+ "\uBAA1\uF366\uF7BF\uF367\uF7C0\uF368\uF369\uF36A"+
+ "\uF7C2\uF7C1\uF7C4\uF36B\uF36C\uF7C3\uF36D\uF36E"+
+ "\uF36F\uF370\uF371\uF7C5\uF7C6\uF372\uF373\uF374"+
+ "\uF375\uF7C7\uF376\uCBE8\uF377\uF378\uF379\uF37A"+
+ "\uB8DF\uF37B\uF37C\uF37D\uF37E\uF380\uF381\uF7D4"+
+ "\uF382\uF7D5\uF383\uF384\uF385\uF386\uF7D6\uF387"+
+ "\uF388\uF389\uF38A\uF7D8\uF38B\uF7DA\uF38C\uF7D7"+
+ "\uF38D\uF38E\uF38F\uF390\uF391\uF392\uF393\uF394"+
+ "\uF395\uF7DB\uF396\uF7D9\uF397\uF398\uF399\uF39A"+
+ "\uF39B\uF39C\uF39D\uD7D7\uF39E\uF39F\uF3A0\uF440"+
+ "\uF7DC\uF441\uF442\uF443\uF444\uF445\uF446\uF7DD"+
+ "\uF447\uF448\uF449\uF7DE\uF44A\uF44B\uF44C\uF44D"+
+ "\uF44E\uF44F\uF450\uF451\uF452\uF453\uF454\uF7DF"+
+ "\uF455\uF456\uF457\uF7E0\uF458\uF459\uF45A\uF45B"+
+ "\uF45C\uF45D\uF45E\uF45F\uF460\uF461\uF462\uDBCB"+
+ "\uF463\uF464\uD8AA\uF465\uF466\uF467\uF468\uF469"+
+ "\uF46A\uF46B\uF46C\uE5F7\uB9ED\uF46D\uF46E\uF46F"+
+ "\uF470\uBFFD\uBBEA\uF7C9\uC6C7\uF7C8\uF471\uF7CA"+
+ "\uF7CC\uF7CB\uF472\uF473\uF474\uF7CD\uF475\uCEBA"+
+ "\uF476\uF7CE\uF477\uF478\uC4A7\uF479\uF47A\uF47B"+
+ "\uF47C\uF47D\uF47E\uF480\uF481\uF482\uF483\uF484"+
+ "\uF485\uF486\uF487\uF488\uF489\uF48A\uF48B\uF48C"+
+ "\uF48D\uF48E\uF48F\uF490\uF491\uF492\uF493\uF494"+
+ "\uF495\uF496\uF497\uF498\uF499\uF49A\uF49B\uF49C"+
+ "\uF49D\uF49E\uF49F\uF4A0\uF540\uF541\uF542\uF543"+
+ "\uF544\uF545\uF546\uF547\uF548\uF549\uF54A\uF54B"+
+ "\uF54C\uF54D\uF54E\uF54F\uF550\uF551\uF552\uF553"+
+ "\uF554\uF555\uF556\uF557\uF558\uF559\uF55A\uF55B"+
+ "\uF55C\uF55D\uF55E\uF55F\uF560\uF561\uF562\uF563"+
+ "\uF564\uF565\uF566\uF567\uF568\uF569\uF56A\uF56B"+
+ "\uF56C\uF56D\uF56E\uF56F\uF570\uF571\uF572\uF573"+
+ "\uF574\uF575\uF576\uF577\uF578\uF579\uF57A\uF57B"+
+ "\uF57C\uF57D\uF57E\uF580\uF581\uF582\uF583\uF584"+
+ "\uF585\uF586\uF587\uF588\uF589\uF58A\uF58B\uF58C"+
+ "\uF58D\uF58E\uF58F\uF590\uF591\uF592\uF593\uF594"+
+ "\uF595\uF596\uF597\uF598\uF599\uF59A\uF59B\uF59C"+
+ "\uF59D\uF59E\uF59F\uF5A0\uF640\uF641\uF642\uF643"+
+ "\uF644\uF645\uF646\uF647\uF648\uF649\uF64A\uF64B"+
+ "\uF64C\uF64D\uF64E\uF64F\uF650\uF651\uF652\uF653"+
+ "\uF654\uF655\uF656\uF657\uF658\uF659\uF65A\uF65B"+
+ "\uF65C\uF65D\uF65E\uF65F\uF660\uF661\uF662\uF663"+
+ "\uF664\uF665\uF666\uF667\uF668\uF669\uF66A\uF66B"+
+ "\uF66C\uF66D\uF66E\uF66F\uF670\uF671\uF672\uF673"+
+ "\uF674\uF675\uF676\uF677\uF678\uF679\uF67A\uF67B"+
+ "\uF67C\uF67D\uF67E\uF680\uF681\uF682\uF683\uF684"+
+ "\uF685\uF686\uF687\uF688\uF689\uF68A\uF68B\uF68C"+
+ "\uF68D\uF68E\uF68F\uF690\uF691\uF692\uF693\uF694"+
+ "\uF695\uF696\uF697\uF698\uF699\uF69A\uF69B\uF69C"+
+ "\uF69D\uF69E\uF69F\uF6A0\uF740\uF741\uF742\uF743"+
+ "\uF744\uF745\uF746\uF747\uF748\uF749\uF74A\uF74B"+
+ "\uF74C\uF74D\uF74E\uF74F\uF750\uF751\uF752\uF753"+
+ "\uF754\uF755\uF756\uF757\uF758\uF759\uF75A\uF75B"+
+ "\uF75C\uF75D\uF75E\uF75F\uF760\uF761\uF762\uF763"+
+ "\uF764\uF765\uF766\uF767\uF768\uF769\uF76A\uF76B"+
+ "\uF76C\uF76D\uF76E\uF76F\uF770\uF771\uF772\uF773"+
+ "\uF774\uF775\uF776\uF777\uF778\uF779\uF77A\uF77B"+
+ "\uF77C\uF77D\uF77E\uF780\uD3E3\uF781\uF782\uF6CF"+
+ "\uF783\uC2B3\uF6D0\uF784\uF785\uF6D1\uF6D2\uF6D3"+
+ "\uF6D4\uF786\uF787\uF6D6\uF788\uB1AB\uF6D7\uF789"+
+ "\uF6D8\uF6D9\uF6DA\uF78A\uF6DB\uF6DC\uF78B\uF78C"+
+ "\uF78D\uF78E\uF6DD\uF6DE\uCFCA\uF78F\uF6DF\uF6E0"+
+ "\uF6E1\uF6E2\uF6E3\uF6E4\uC0F0\uF6E5\uF6E6\uF6E7"+
+ "\uF6E8\uF6E9\uF790\uF6EA\uF791\uF6EB\uF6EC\uF792"+
+ "\uF6ED\uF6EE\uF6EF\uF6F0\uF6F1\uF6F2\uF6F3\uF6F4"+
+ "\uBEA8\uF793\uF6F5\uF6F6\uF6F7\uF6F8\uF794\uF795"+
+ "\uF796\uF797\uF798\uC8FA\uF6F9\uF6FA\uF6FB\uF6FC"+
+ "\uF799\uF79A\uF6FD\uF6FE\uF7A1\uF7A2\uF7A3\uF7A4"+
+ "\uF7A5\uF79B\uF79C\uF7A6\uF7A7\uF7A8\uB1EE\uF7A9"+
+ "\uF7AA\uF7AB\uF79D\uF79E\uF7AC\uF7AD\uC1DB\uF7AE"+
+ "\uF79F\uF7A0\uF7AF\uF840\uF841\uF842\uF843\uF844"+
+ "\uF845\uF846\uF847\uF848\uF849\uF84A\uF84B\uF84C"+
+ "\uF84D\uF84E\uF84F\uF850\uF851\uF852\uF853\uF854"+
+ "\uF855\uF856\uF857\uF858\uF859\uF85A\uF85B\uF85C"+
+ "\uF85D\uF85E\uF85F\uF860\uF861\uF862\uF863\uF864"+
+ "\uF865\uF866\uF867\uF868\uF869\uF86A\uF86B\uF86C"+
+ "\uF86D\uF86E\uF86F\uF870\uF871\uF872\uF873\uF874"+
+ "\uF875\uF876\uF877\uF878\uF879\uF87A\uF87B\uF87C"+
+ "\uF87D\uF87E\uF880\uF881\uF882\uF883\uF884\uF885"+
+ "\uF886\uF887\uF888\uF889\uF88A\uF88B\uF88C\uF88D"+
+ "\uF88E\uF88F\uF890\uF891\uF892\uF893\uF894\uF895"+
+ "\uF896\uF897\uF898\uF899\uF89A\uF89B\uF89C\uF89D"+
+ "\uF89E\uF89F\uF8A0\uF940\uF941\uF942\uF943\uF944"+
+ "\uF945\uF946\uF947\uF948\uF949\uF94A\uF94B\uF94C"+
+ "\uF94D\uF94E\uF94F\uF950\uF951\uF952\uF953\uF954"+
+ "\uF955\uF956\uF957\uF958\uF959\uF95A\uF95B\uF95C"+
+ "\uF95D\uF95E\uF95F\uF960\uF961\uF962\uF963\uF964"+
+ "\uF965\uF966\uF967\uF968\uF969\uF96A\uF96B\uF96C"+
+ "\uF96D\uF96E\uF96F\uF970\uF971\uF972\uF973\uF974"+
+ "\uF975\uF976\uF977\uF978\uF979\uF97A\uF97B\uF97C"+
+ "\uF97D\uF97E\uF980\uF981\uF982\uF983\uF984\uF985"+
+ "\uF986\uF987\uF988\uF989\uF98A\uF98B\uF98C\uF98D"+
+ "\uF98E\uF98F\uF990\uF991\uF992\uF993\uF994\uF995"+
+ "\uF996\uF997\uF998\uF999\uF99A\uF99B\uF99C\uF99D"+
+ "\uF99E\uF99F\uF9A0\uFA40\uFA41\uFA42\uFA43\uFA44"+
+ "\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B\uFA4C"+
+ "\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53\uFA54"+
+ "\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B\uFA5C"+
+ "\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63\uFA64"+
+ "\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA6B\uFA6C"+
+ "\uFA6D\uFA6E\uFA6F\uFA70\uFA71\uFA72\uFA73\uFA74"+
+ "\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B\uFA7C"+
+ "\uFA7D\uFA7E\uFA80\uFA81\uFA82\uFA83\uFA84\uFA85"+
+ "\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B\uFA8C\uFA8D"+
+ "\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93\uFA94\uFA95"+
+ "\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B\uFA9C\uFA9D"+
+ "\uFA9E\uFA9F\uFAA0\uFB40\uFB41\uFB42\uFB43\uFB44"+
+ "\uFB45\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B\uFB4C"+
+ "\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53\uFB54"+
+ "\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B\uC4F1"+
+ "\uF0AF\uBCA6\uF0B0\uC3F9\uFB5C\uC5B8\uD1BB\uFB5D"+
+ "\uF0B1\uF0B2\uF0B3\uF0B4\uF0B5\uD1BC\uFB5E\uD1EC"+
+ "\uFB5F\uF0B7\uF0B6\uD4A7\uFB60\uCDD2\uF0B8\uF0BA"+
+ "\uF0B9\uF0BB\uF0BC\uFB61\uFB62\uB8EB\uF0BD\uBAE8"+
+ "\uFB63\uF0BE\uF0BF\uBEE9\uF0C0\uB6EC\uF0C1\uF0C2"+
+ "\uF0C3\uF0C4\uC8B5\uF0C5\uF0C6\uFB64\uF0C7\uC5F4"+
+ "\uFB65\uF0C8\uFB66\uFB67\uFB68\uF0C9\uFB69\uF0CA"+
+ "\uF7BD\uFB6A\uF0CB\uF0CC\uF0CD\uFB6B\uF0CE\uFB6C"+
+ "\uFB6D\uFB6E\uFB6F\uF0CF\uBAD7\uFB70\uF0D0\uF0D1"+
+ "\uF0D2\uF0D3\uF0D4\uF0D5\uF0D6\uF0D8\uFB71\uFB72"+
+ "\uD3A5\uF0D7\uFB73\uF0D9\uFB74\uFB75\uFB76\uFB77"+
+ "\uFB78\uFB79\uFB7A\uFB7B\uFB7C\uFB7D\uF5BA\uC2B9"+
+ "\uFB7E\uFB80\uF7E4\uFB81\uFB82\uFB83\uFB84\uF7E5"+
+ "\uF7E6\uFB85\uFB86\uF7E7\uFB87\uFB88\uFB89\uFB8A"+
+ "\uFB8B\uFB8C\uF7E8\uC2B4\uFB8D\uFB8E\uFB8F\uFB90"+
+ "\uFB91\uFB92\uFB93\uFB94\uFB95\uF7EA\uFB96\uF7EB"+
+ "\uFB97\uFB98\uFB99\uFB9A\uFB9B\uFB9C\uC2F3\uFB9D"+
+ "\uFB9E\uFB9F\uFBA0\uFC40\uFC41\uFC42\uFC43\uFC44"+
+ "\uFC45\uFC46\uFC47\uFC48\uF4F0\uFC49\uFC4A\uFC4B"+
+ "\uF4EF\uFC4C\uFC4D\uC2E9\uFC4E\uF7E1\uF7E2\uFC4F"+
+ "\uFC50\uFC51\uFC52\uFC53\uBBC6\uFC54\uFC55\uFC56"+
+ "\uFC57\uD9E4\uFC58\uFC59\uFC5A\uCAF2\uC0E8\uF0A4"+
+ "\uFC5B\uBADA\uFC5C\uFC5D\uC7AD\uFC5E\uFC5F\uFC60"+
+ "\uC4AC\uFC61\uFC62\uF7EC\uF7ED\uF7EE\uFC63\uF7F0"+
+ "\uF7EF\uFC64\uF7F1\uFC65\uFC66\uF7F4\uFC67\uF7F3"+
+ "\uFC68\uF7F2\uF7F5\uFC69\uFC6A\uFC6B\uFC6C\uF7F6"+
+ "\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73\uFC74"+
+ "\uFC75\uEDE9\uFC76\uEDEA\uEDEB\uFC77\uF6BC\uFC78"+
+ "\uFC79\uFC7A\uFC7B\uFC7C\uFC7D\uFC7E\uFC80\uFC81"+
+ "\uFC82\uFC83\uFC84\uF6BD\uFC85\uF6BE\uB6A6\uFC86"+
+ "\uD8BE\uFC87\uFC88\uB9C4\uFC89\uFC8A\uFC8B\uD8BB"+
+ "\uFC8C\uDCB1\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92"+
+ "\uCAF3\uFC93\uF7F7\uFC94\uFC95\uFC96\uFC97\uFC98"+
+ "\uFC99\uFC9A\uFC9B\uFC9C\uF7F8\uFC9D\uFC9E\uF7F9"+
+ "\uFC9F\uFCA0\uFD40\uFD41\uFD42\uFD43\uFD44\uF7FB"+
+ "\uFD45\uF7FA\uFD46\uB1C7\uFD47\uF7FC\uF7FD\uFD48"+
+ "\uFD49\uFD4A\uFD4B\uFD4C\uF7FE\uFD4D\uFD4E\uFD4F"+
+ "\uFD50\uFD51\uFD52\uFD53\uFD54\uFD55\uFD56\uFD57"+
+ "\uC6EB\uECB4\uFD58\uFD59\uFD5A\uFD5B\uFD5C\uFD5D"+
+ "\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63\uFD64\uFD65"+
+ "\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B\uFD6C\uFD6D"+
+ "\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73\uFD74\uFD75"+
+ "\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B\uFD7C\uFD7D"+
+ "\uFD7E\uFD80\uFD81\uFD82\uFD83\uFD84\uFD85\uB3DD"+
+ "\uF6B3\uFD86\uFD87\uF6B4\uC1E4\uF6B5\uF6B6\uF6B7"+
+ "\uF6B8\uF6B9\uF6BA\uC8A3\uF6BB\uFD88\uFD89\uFD8A"+
+ "\uFD8B\uFD8C\uFD8D\uFD8E\uFD8F\uFD90\uFD91\uFD92"+
+ "\uFD93\uC1FA\uB9A8\uEDE8\uFD94\uFD95\uFD96\uB9EA"+
+ "\uD9DF\uFD97\uFD98\uFD99\uFD9A\uFD9B\u6A63\u6A64"+
+ "\u6A65\u6A66\u6A67\u6A68\u6A69\u6A6A\u6A6B\u6A6C"+
+ "\u6A6D\u6A6E\u6A6F\u6A70\u6A71\u6A72\u6A73\u6A74"+
+ "\u6A75\u6A76\u6A77\u6A78\u6A79\u6A7A\u6A7B\u6A7C"+
+ "\u6A7D\u6A7E\u6A7F\u6A80\u6A81\u6A82\u6A83\u6A84"+
+ "\u6A85\u6A86\u6A87\u6A88\u6A89\u6A8A\u6A8B\u6A8C"+
+ "\u6A8D\u6A8E\u6A8F\u6A90\u6A91\u6A92\u6A93\u6A94"+
+ "\u6A95\u6A96\u6A97\u6A98\u6A99\u6A9A\u6A9B\u6A9C"+
+ "\u6A9D\u6A9E\u6A9F\u6AA0\u6AA1\u6AA2\u6AA3\u6AA4"+
+ "\u6AA5\u6AA6\u6AA7\u6AA8\u6AA9\u6AAA\u6AAB\u6AAC"+
+ "\u6AAD\u6AAE\u6AAF\u6AB0\u6AB1\u6AB2\u6AB3\u6AB4"+
+ "\u6AB5\u6AB6\u6AB7\u6AB8\u6AB9\u6ABA\u6ABB\u6ABC";
+
+ private final static String innerEncoderIndex10=
+ "\u6ABD\u6ABE\u6ABF\u6AC0\u6AC1\u6AC2\u6AC3\u6AC4"+
+ "\u6AC5\u6AC6\u6AC7\u6AC8\u6AC9\u6ACA\u6ACB\u6ACC"+
+ "\u6ACD\u6ACE\u6ACF\u6AD0\u6AD1\u6AD2\u6AD3\u6AD4"+
+ "\u6AD5\u6AD6\u6AD7\u6AD8\u6AD9\u6ADA\u6ADB\u6ADC"+
+ "\u6ADD\u6ADE\u6ADF\u6AE0\u6AE1\u6AE2\u6AE3\u6AE4"+
+ "\u6AE5\u6AE6\u6AE7\u6AE8\u6AE9\u6AEA\u6AEB\u6AEC"+
+ "\u6AED\u6AEE\u6AEF\u6AF0\u6AF1\u6AF2\u6AF3\u6AF4"+
+ "\u6AF5\u6AF6\u6AF7\u6AF8\u6AF9\u6AFA\u6AFB\u6AFC"+
+ "\u6AFD\u6AFE\u6AFF\u6B00\u6B01\u6B02\u6B03\u6B04"+
+ "\u6B05\u6B06\u6B07\u6B08\u6B09\u6B0A\u6B0B\u6B0C"+
+ "\u6B0D\u6B0E\u6B0F\u6B10\u6B11\u6B12\u6B13\u6B14"+
+ "\u6B15\u6B16\u6B17\u6B18\u6B19\u6B1A\u6B1B\u6B1C"+
+ "\u6B1D\u6B1E\u6B1F\u6B20\u6B21\u6B22\u6B23\u6B24"+
+ "\u6B25\u6B26\u6B27\u6B28\u6B29\u6B2A\u6B2B\u6B2C"+
+ "\u6B2D\u6B2E\u6B2F\u6B30\u6B31\u6B32\u6B33\u6B34"+
+ "\u6B35\u6B36\u6B37\u6B38\u6B39\u6B3A\u6B3B\u6B3C"+
+ "\u6B3D\u6B3E\u6B3F\u6B40\u6B41\u6B42\u6B43\u6B44"+
+ "\u6B45\u6B46\u6B47\u6B48\u6B49\u6B4A\u6B4B\u6B4C"+
+ "\u6B4D\u6B4E\u6B4F\u6B50\u6B51\u6B52\u6B53\u6B54"+
+ "\u6B55\u6B56\u6B57\u6B58\u6B59\u6B5A\u6B5B\u6B5C"+
+ "\u6B5D\u6B5E\u6B5F\u6B60\u6B61\u6B62\u6B63\u6B64"+
+ "\u6B65\u6B66\u6B67\u6B68\u6B69\u6B6A\u6B6B\u6B6C"+
+ "\u6B6D\u6B6E\u6B6F\u6B70\u6B71\u6B72\u6B73\u6B74"+
+ "\u6B75\u6B76\u6B77\u6B78\u6B79\u6B7A\u6B7B\u6B7C"+
+ "\u6B7D\u6B7E\u6B7F\u6B80\u6B81\u6B82\u6B83\u6B84"+
+ "\u6B85\u6B86\u6B87\u6B88\u6B89\u6B8A\u6B8B\u6B8C"+
+ "\u6B8D\u6B8E\u6B8F\u6B90\u6B91\u6B92\u6B93\u6B94"+
+ "\u6B95\u6B96\u6B97\u6B98\u6B99\u6B9A\u6B9B\u6B9C"+
+ "\u6B9D\u6B9E\u6B9F\u6BA0\u6BA1\u6BA2\u6BA3\u6BA4"+
+ "\u6BA5\u6BA6\u6BA7\u6BA8\u6BA9\u6BAA\u6BAB\u6BAC"+
+ "\u6BAD\u6BAE\u6BAF\u6BB0\u6BB1\u6BB2\u6BB3\u6BB4"+
+ "\u6BB5\u6BB6\u6BB7\u6BB8\u6BB9\u6BBA\u6BBB\u6BBC"+
+ "\u6BBD\u6BBE\u6BBF\u6BC0\u6BC1\u6BC2\u6BC3\u6BC4"+
+ "\u6BC5\u6BC6\u6BC7\u6BC8\u6BC9\u6BCA\u6BCB\u6BCC"+
+ "\u6BCD\u6BCE\u6BCF\u6BD0\u6BD1\u6BD2\u6BD3\u6BD4"+
+ "\u6BD5\u6BD6\u6BD7\u6BD8\u6BD9\u6BDA\u6BDB\u6BDC"+
+ "\u6BDD\u6BDE\u6BDF\u6BE0\u6BE1\u6BE2\u6BE3\u6BE4"+
+ "\u6BE5\u6BE6\u6BE7\u6BE8\u6BE9\u6BEA\u6BEB\u6BEC"+
+ "\u6BED\u6BEE\u6BEF\u6BF0\u6BF1\u6BF2\u6BF3\u6BF4"+
+ "\u6BF5\u6BF6\u6BF7\u6BF8\u6BF9\u6BFA\u6BFB\u6BFC"+
+ "\u6BFD\u6BFE\u6BFF\u6C00\u6C01\u6C02\u6C03\u6C04"+
+ "\u6C05\u6C06\u6C07\u6C08\u6C09\u6C0A\u6C0B\u6C0C"+
+ "\u6C0D\u6C0E\u6C0F\u6C10\u6C11\u6C12\u6C13\u6C14"+
+ "\u6C15\u6C16\u6C17\u6C18\u6C19\u6C1A\u6C1B\u6C1C"+
+ "\u6C1D\u6C1E\u6C1F\u6C20\u6C21\u6C22\u6C23\u6C24"+
+ "\u6C25\u6C26\u6C27\u6C28\u6C29\u6C2A\u6C2B\u6C2C"+
+ "\u6C2D\u6C2E\u6C2F\u6C30\u6C31\u6C32\u6C33\u6C34"+
+ "\u6C35\u6C36\u6C37\u6C38\u6C39\u6C3A\u6C3B\u6C3C"+
+ "\u6C3D\u6C3E\u6C3F\u6C40\u6C41\u6C42\u6C43\u6C44"+
+ "\u6C45\u6C46\u6C47\u6C48\u6C49\u6C4A\u6C4B\u6C4C"+
+ "\u6C4D\u6C4E\u6C4F\u6C50\u6C51\u6C52\u6C53\u6C54"+
+ "\u6C55\u6C56\u6C57\u6C58\u6C59\u6C5A\u6C5B\u6C5C"+
+ "\u6C5D\u6C5E\u6C5F\u6C60\u6C61\u6C62\u6C63\u6C64"+
+ "\u6C65\u6C66\u6C67\u6C68\u6C69\u6C6A\u6C6B\u6C6C"+
+ "\u6C6D\u6C6E\u6C6F\u6C70\u6C71\u6C72\u6C73\u6C74"+
+ "\u6C75\u6C76\u6C77\u6C78\u6C79\u6C7A\u6C7B\u6C7C"+
+ "\u6C7D\u6C7E\u6C7F\u6C80\u6C81\u6C82\u6C83\u6C84"+
+ "\u6C85\u6C86\u6C87\u6C88\u6C89\u6C8A\u6C8B\u6C8C"+
+ "\u6C8D\u6C8E\u6C8F\u6C90\u6C91\u6C92\u6C93\u6C94"+
+ "\u6C95\u6C96\u6C97\u6C98\u6C99\u6C9A\u6C9B\u6C9C"+
+ "\u6C9D\u6C9E\u6C9F\u6CA0\u6CA1\u6CA2\u6CA3\u6CA4"+
+ "\u6CA5\u6CA6\u6CA7\u6CA8\u6CA9\u6CAA\u6CAB\u6CAC"+
+ "\u6CAD\u6CAE\u6CAF\u6CB0\u6CB1\u6CB2\u6CB3\u6CB4"+
+ "\u6CB5\u6CB6\u6CB7\u6CB8\u6CB9\u6CBA\u6CBB\u6CBC"+
+ "\u6CBD\u6CBE\u6CBF\u6CC0\u6CC1\u6CC2\u6CC3\u6CC4"+
+ "\u6CC5\u6CC6\u6CC7\u6CC8\u6CC9\u6CCA\u6CCB\u6CCC"+
+ "\u6CCD\u6CCE\u6CCF\u6CD0\u6CD1\u6CD2\u6CD3\u6CD4"+
+ "\u6CD5\u6CD6\u6CD7\u6CD8\u6CD9\u6CDA\u6CDB\u6CDC"+
+ "\u6CDD\u6CDE\u6CDF\u6CE0\u6CE1\u6CE2\u6CE3\u6CE4"+
+ "\u6CE5\u6CE6\u6CE7\u6CE8\u6CE9\u6CEA\u6CEB\u6CEC"+
+ "\u6CED\u6CEE\u6CEF\u6CF0\u6CF1\u6CF2\u6CF3\u6CF4"+
+ "\u6CF5\u6CF6\u6CF7\u6CF8\u6CF9\u6CFA\u6CFB\u6CFC"+
+ "\u6CFD\u6CFE\u6CFF\u6D00\u6D01\u6D02\u6D03\u6D04"+
+ "\u6D05\u6D06\u6D07\u6D08\u6D09\u6D0A\u6D0B\u6D0C"+
+ "\u6D0D\u6D0E\u6D0F\u6D10\u6D11\u6D12\u6D13\u6D14"+
+ "\u6D15\u6D16\u6D17\u6D18\u6D19\u6D1A\u6D1B\u6D1C"+
+ "\u6D1D\u6D1E\u6D1F\u6D20\u6D21\u6D22\u6D23\u6D24"+
+ "\u6D25\u6D26\u6D27\u6D28\u6D29\u6D2A\u6D2B\u6D2C"+
+ "\u6D2D\u6D2E\u6D2F\u6D30\u6D31\u6D32\u6D33\u6D34"+
+ "\u6D35\u6D36\u6D37\u6D38\u6D39\u6D3A\u6D3B\u6D3C"+
+ "\u6D3D\u6D3E\u6D3F\u6D40\u6D41\u6D42\u6D43\u6D44"+
+ "\u6D45\u6D46\u6D47\u6D48\u6D49\u6D4A\u6D4B\u6D4C"+
+ "\u6D4D\u6D4E\u6D4F\u6D50\u6D51\u6D52\u6D53\u6D54"+
+ "\u6D55\u6D56\u6D57\u6D58\u6D59\u6D5A\u6D5B\u6D5C"+
+ "\u6D5D\u6D5E\u6D5F\u6D60\u6D61\u6D62\u6D63\u6D64"+
+ "\u6D65\u6D66\u6D67\u6D68\u6D69\u6D6A\u6D6B\u6D6C"+
+ "\u6D6D\u6D6E\u6D6F\u6D70\u6D71\u6D72\u6D73\u6D74"+
+ "\u6D75\u6D76\u6D77\u6D78\u6D79\u6D7A\u6D7B\u6D7C"+
+ "\u6D7D\u6D7E\u6D7F\u6D80\u6D81\u6D82\u6D83\u6D84"+
+ "\u6D85\u6D86\u6D87\u6D88\u6D89\u6D8A\u6D8B\u6D8C"+
+ "\u6D8D\u6D8E\u6D8F\u6D90\u6D91\u6D92\u6D93\u6D94"+
+ "\u6D95\u6D96\u6D97\u6D98\u6D99\u6D9A\u6D9B\u6D9C"+
+ "\u6D9D\u6D9E\u6D9F\u6DA0\u6DA1\u6DA2\u6DA3\u6DA4"+
+ "\u6DA5\u6DA6\u6DA7\u6DA8\u6DA9\u6DAA\u6DAB\u6DAC"+
+ "\u6DAD\u6DAE\u6DAF\u6DB0\u6DB1\u6DB2\u6DB3\u6DB4"+
+ "\u6DB5\u6DB6\u6DB7\u6DB8\u6DB9\u6DBA\u6DBB\u6DBC"+
+ "\u6DBD\u6DBE\u6DBF\u6DC0\u6DC1\u6DC2\u6DC3\u6DC4"+
+ "\u6DC5\u6DC6\u6DC7\u6DC8\u6DC9\u6DCA\u6DCB\u6DCC"+
+ "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD1\u6DD2\u6DD3\u6DD4"+
+ "\u6DD5\u6DD6\u6DD7\u6DD8\u6DD9\u6DDA\u6DDB\u6DDC"+
+ "\u6DDD\u6DDE\u6DDF\u6DE0\u6DE1\u6DE2\u6DE3\u6DE4"+
+ "\u6DE5\u6DE6\u6DE7\u6DE8\u6DE9\u6DEA\u6DEB\u6DEC"+
+ "\u6DED\u6DEE\u6DEF\u6DF0\u6DF1\u6DF2\u6DF3\u6DF4"+
+ "\u6DF5\u6DF6\u6DF7\u6DF8\u6DF9\u6DFA\u6DFB\u6DFC"+
+ "\u6DFD\u6DFE\u6DFF\u6E00\u6E01\u6E02\u6E03\u6E04"+
+ "\u6E05\u6E06\u6E07\u6E08\u6E09\u6E0A\u6E0B\u6E0C"+
+ "\u6E0D\u6E0E\u6E0F\u6E10\u6E11\u6E12\u6E13\u6E14"+
+ "\u6E15\u6E16\u6E17\u6E18\u6E19\u6E1A\u6E1B\u6E1C"+
+ "\u6E1D\u6E1E\u6E1F\u6E20\u6E21\u6E22\u6E23\u6E24"+
+ "\u6E25\u6E26\u6E27\u6E28\u6E29\u6E2A\u6E2B\u6E2C"+
+ "\u6E2D\u6E2E\u6E2F\u6E30\u6E31\u6E32\u6E33\u6E34"+
+ "\u6E35\u6E36\u6E37\u6E38\u6E39\u6E3A\u6E3B\u6E3C"+
+ "\u6E3D\u6E3E\u6E3F\u6E40\u6E41\u6E42\u6E43\u6E44"+
+ "\u6E45\u6E46\u6E47\u6E48\u6E49\u6E4A\u6E4B\u6E4C"+
+ "\u6E4D\u6E4E\u6E4F\u6E50\u6E51\u6E52\u6E53\u6E54"+
+ "\u6E55\u6E56\u6E57\u6E58\u6E59\u6E5A\u6E5B\u6E5C"+
+ "\u6E5D\u6E5E\u6E5F\u6E60\u6E61\u6E62\u6E63\u6E64"+
+ "\u6E65\u6E66\u6E67\u6E68\u6E69\u6E6A\u6E6B\u6E6C"+
+ "\u6E6D\u6E6E\u6E6F\u6E70\u6E71\u6E72\u6E73\u6E74"+
+ "\u6E75\u6E76\u6E77\u6E78\u6E79\u6E7A\u6E7B\u6E7C"+
+ "\u6E7D\u6E7E\u6E7F\u6E80\u6E81\u6E82\u6E83\u6E84"+
+ "\u6E85\u6E86\u6E87\u6E88\u6E89\u6E8A\u6E8B\u6E8C"+
+ "\u6E8D\u6E8E\u6E8F\u6E90\u6E91\u6E92\u6E93\u6E94"+
+ "\u6E95\u6E96\u6E97\u6E98\u6E99\u6E9A\u6E9B\u6E9C"+
+ "\u6E9D\u6E9E\u6E9F\u6EA0\u6EA1\u6EA2\u6EA3\u6EA4"+
+ "\u6EA5\u6EA6\u6EA7\u6EA8\u6EA9\u6EAA\u6EAB\u6EAC"+
+ "\u6EAD\u6EAE\u6EAF\u6EB0\u6EB1\u6EB2\u6EB3\u6EB4"+
+ "\u6EB5\u6EB6\u6EB7\u6EB8\u6EB9\u6EBA\u6EBB\u6EBC"+
+ "\u6EBD\u6EBE\u6EBF\u6EC0\u6EC1\u6EC2\u6EC3\u6EC4"+
+ "\u6EC5\u6EC6\u6EC7\u6EC8\u6EC9\u6ECA\u6ECB\u6ECC"+
+ "\u6ECD\u6ECE\u6ECF\u6ED0\u6ED1\u6ED2\u6ED3\u6ED4"+
+ "\u6ED5\u6ED6\u6ED7\u6ED8\u6ED9\u6EDA\u6EDB\u6EDC"+
+ "\u6EDD\u6EDE\u6EDF\u6EE0\u6EE1\u6EE2\u6EE3\u6EE4"+
+ "\u6EE5\u6EE6\u6EE7\u6EE8\u6EE9\u6EEA\u6EEB\u6EEC"+
+ "\u6EED\u6EEE\u6EEF\u6EF0\u6EF1\u6EF2\u6EF3\u6EF4"+
+ "\u6EF5\u6EF6\u6EF7\u6EF8\u6EF9\u6EFA\u6EFB\u6EFC"+
+ "\u6EFD\u6EFE\u6EFF\u6F00\u6F01\u6F02\u6F03\u6F04"+
+ "\u6F05\u6F06\u6F07\u6F08\u6F09\u6F0A\u6F0B\u6F0C"+
+ "\u6F0D\u6F0E\u6F0F\u6F10\u6F11\u6F12\u6F13\u6F14"+
+ "\u6F15\u6F16\u6F17\u6F18\u6F19\u6F1A\u6F1B\u6F1C"+
+ "\u6F1D\u6F1E\u6F1F\u6F20\u6F21\u6F22\u6F23\u6F24"+
+ "\u6F25\u6F26\u6F27\u6F28\u6F29\u6F2A\u6F2B\u6F2C"+
+ "\u6F2D\u6F2E\u6F2F\u6F30\u6F31\u6F32\u6F33\u6F34"+
+ "\u6F35\u6F36\u6F37\u6F38\u6F39\u6F3A\u6F3B\u6F3C"+
+ "\u6F3D\u6F3E\u6F3F\u6F40\u6F41\u6F42\u6F43\u6F44"+
+ "\u6F45\u6F46\u6F47\u6F48\u6F49\u6F4A\u6F4B\u6F4C"+
+ "\u6F4D\u6F4E\u6F4F\u6F50\u6F51\u6F52\u6F53\u6F54"+
+ "\u6F55\u6F56\u6F57\u6F58\u6F59\u6F5A\u6F5B\u6F5C"+
+ "\u6F5D\u6F5E\u6F5F\u6F60\u6F61\u6F62\u6F63\u6F64"+
+ "\u6F65\u6F66\u6F67\u6F68\u6F69\u6F6A\u6F6B\u6F6C"+
+ "\u6F6D\u6F6E\u6F6F\u6F70\u6F71\u6F72\u6F73\u6F74"+
+ "\u6F75\u6F76\u6F77\u6F78\u6F79\u6F7A\u6F7B\u6F7C"+
+ "\u6F7D\u6F7E\u6F7F\u6F80\u6F81\u6F82\u6F83\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
+ "\uAAA1\uAAA2\uAAA3\uAAA4\uAAA5\uAAA6\uAAA7\uAAA8"+
+ "\uAAA9\uAAAA\uAAAB\uAAAC\uAAAD\uAAAE\uAAAF\uAAB0"+
+ "\uAAB1\uAAB2\uAAB3\uAAB4\uAAB5\uAAB6\uAAB7\uAAB8"+
+ "\uAAB9\uAABA\uAABB\uAABC\uAABD\uAABE\uAABF\uAAC0"+
+ "\uAAC1\uAAC2\uAAC3\uAAC4\uAAC5\uAAC6\uAAC7\uAAC8"+
+ "\uAAC9\uAACA\uAACB\uAACC\uAACD\uAACE\uAACF\uAAD0"+
+ "\uAAD1\uAAD2\uAAD3\uAAD4\uAAD5\uAAD6\uAAD7\uAAD8"+
+ "\uAAD9\uAADA\uAADB\uAADC\uAADD\uAADE\uAADF\uAAE0"+
+ "\uAAE1\uAAE2\uAAE3\uAAE4\uAAE5\uAAE6\uAAE7\uAAE8"+
+ "\uAAE9\uAAEA\uAAEB\uAAEC\uAAED\uAAEE\uAAEF\uAAF0"+
+ "\uAAF1\uAAF2\uAAF3\uAAF4\uAAF5\uAAF6\uAAF7\uAAF8"+
+ "\uAAF9\uAAFA\uAAFB\uAAFC\uAAFD\uAAFE\uABA1\uABA2"+
+ "\uABA3\uABA4\uABA5\uABA6\uABA7\uABA8\uABA9\uABAA"+
+ "\uABAB\uABAC\uABAD\uABAE\uABAF\uABB0\uABB1\uABB2"+
+ "\uABB3\uABB4\uABB5\uABB6\uABB7\uABB8\uABB9\uABBA"+
+ "\uABBB\uABBC\uABBD\uABBE\uABBF\uABC0\uABC1\uABC2"+
+ "\uABC3\uABC4\uABC5\uABC6\uABC7\uABC8\uABC9\uABCA"+
+ "\uABCB\uABCC\uABCD\uABCE\uABCF\uABD0\uABD1\uABD2"+
+ "\uABD3\uABD4\uABD5\uABD6\uABD7\uABD8\uABD9\uABDA"+
+ "\uABDB\uABDC\uABDD\uABDE\uABDF\uABE0\uABE1\uABE2"+
+ "\uABE3\uABE4\uABE5\uABE6\uABE7\uABE8\uABE9\uABEA"+
+ "\uABEB\uABEC\uABED\uABEE\uABEF\uABF0\uABF1\uABF2"+
+ "\uABF3\uABF4\uABF5\uABF6\uABF7\uABF8\uABF9\uABFA"+
+ "\uABFB\uABFC\uABFD\uABFE\uACA1\uACA2\uACA3\uACA4"+
+ "\uACA5\uACA6\uACA7\uACA8\uACA9\uACAA\uACAB\uACAC"+
+ "\uACAD\uACAE\uACAF\uACB0\uACB1\uACB2\uACB3\uACB4"+
+ "\uACB5\uACB6\uACB7\uACB8\uACB9\uACBA\uACBB\uACBC"+
+ "\uACBD\uACBE\uACBF\uACC0\uACC1\uACC2\uACC3\uACC4"+
+ "\uACC5\uACC6\uACC7\uACC8\uACC9\uACCA\uACCB\uACCC"+
+ "\uACCD\uACCE\uACCF\uACD0\uACD1\uACD2\uACD3\uACD4"+
+ "\uACD5\uACD6\uACD7\uACD8\uACD9\uACDA\uACDB\uACDC"+
+ "\uACDD\uACDE\uACDF\uACE0\uACE1\uACE2\uACE3\uACE4"+
+ "\uACE5\uACE6\uACE7\uACE8\uACE9\uACEA\uACEB\uACEC"+
+ "\uACED\uACEE\uACEF\uACF0\uACF1\uACF2\uACF3\uACF4"+
+ "\uACF5\uACF6\uACF7\uACF8\uACF9\uACFA\uACFB\uACFC"+
+ "\uACFD\uACFE\uADA1\uADA2\uADA3\uADA4\uADA5\uADA6"+
+ "\uADA7\uADA8\uADA9\uADAA\uADAB\uADAC\uADAD\uADAE"+
+ "\uADAF\uADB0\uADB1\uADB2\uADB3\uADB4\uADB5\uADB6"+
+ "\uADB7\uADB8\uADB9\uADBA\uADBB\uADBC\uADBD\uADBE"+
+ "\uADBF\uADC0\uADC1\uADC2\uADC3\uADC4\uADC5\uADC6"+
+ "\uADC7\uADC8\uADC9\uADCA\uADCB\uADCC\uADCD\uADCE"+
+ "\uADCF\uADD0\uADD1\uADD2\uADD3\uADD4\uADD5\uADD6"+
+ "\uADD7\uADD8\uADD9\uADDA\uADDB\uADDC\uADDD\uADDE"+
+ "\uADDF\uADE0\uADE1\uADE2\uADE3\uADE4\uADE5\uADE6"+
+ "\uADE7\uADE8\uADE9\uADEA\uADEB\uADEC\uADED\uADEE"+
+ "\uADEF\uADF0\uADF1\uADF2\uADF3\uADF4\uADF5\uADF6"+
+ "\uADF7\uADF8\uADF9\uADFA\uADFB\uADFC\uADFD\uADFE"+
+ "\uAEA1\uAEA2\uAEA3\uAEA4\uAEA5\uAEA6\uAEA7\uAEA8"+
+ "\uAEA9\uAEAA\uAEAB\uAEAC\uAEAD\uAEAE\uAEAF\uAEB0"+
+ "\uAEB1\uAEB2\uAEB3\uAEB4\uAEB5\uAEB6\uAEB7\uAEB8"+
+ "\uAEB9\uAEBA\uAEBB\uAEBC\uAEBD\uAEBE\uAEBF\uAEC0"+
+ "\uAEC1\uAEC2\uAEC3\uAEC4\uAEC5\uAEC6\uAEC7\uAEC8"+
+ "\uAEC9\uAECA\uAECB\uAECC\uAECD\uAECE\uAECF\uAED0"+
+ "\uAED1\uAED2\uAED3\uAED4\uAED5\uAED6\uAED7\uAED8"+
+ "\uAED9\uAEDA\uAEDB\uAEDC\uAEDD\uAEDE\uAEDF\uAEE0"+
+ "\uAEE1\uAEE2\uAEE3\uAEE4\uAEE5\uAEE6\uAEE7\uAEE8"+
+ "\uAEE9\uAEEA\uAEEB\uAEEC\uAEED\uAEEE\uAEEF\uAEF0"+
+ "\uAEF1\uAEF2\uAEF3\uAEF4\uAEF5\uAEF6\uAEF7\uAEF8"+
+ "\uAEF9\uAEFA\uAEFB\uAEFC\uAEFD\uAEFE\uAFA1\uAFA2"+
+ "\uAFA3\uAFA4\uAFA5\uAFA6\uAFA7\uAFA8\uAFA9\uAFAA"+
+ "\uAFAB\uAFAC\uAFAD\uAFAE\uAFAF\uAFB0\uAFB1\uAFB2"+
+ "\uAFB3\uAFB4\uAFB5\uAFB6\uAFB7\uAFB8\uAFB9\uAFBA"+
+ "\uAFBB\uAFBC\uAFBD\uAFBE\uAFBF\uAFC0\uAFC1\uAFC2"+
+ "\uAFC3\uAFC4\uAFC5\uAFC6\uAFC7\uAFC8\uAFC9\uAFCA"+
+ "\uAFCB\uAFCC\uAFCD\uAFCE\uAFCF\uAFD0\uAFD1\uAFD2"+
+ "\uAFD3\uAFD4\uAFD5\uAFD6\uAFD7\uAFD8\uAFD9\uAFDA"+
+ "\uAFDB\uAFDC\uAFDD\uAFDE\uAFDF\uAFE0\uAFE1\uAFE2"+
+ "\uAFE3\uAFE4\uAFE5\uAFE6\uAFE7\uAFE8\uAFE9\uAFEA"+
+ "\uAFEB\uAFEC\uAFED\uAFEE\uAFEF\uAFF0\uAFF1\uAFF2"+
+ "\uAFF3\uAFF4\uAFF5\uAFF6\uAFF7\uAFF8\uAFF9\uAFFA"+
+ "\uAFFB\uAFFC\uAFFD\uAFFE\uF8A1\uF8A2\uF8A3\uF8A4"+
+ "\uF8A5\uF8A6\uF8A7\uF8A8\uF8A9\uF8AA\uF8AB\uF8AC"+
+ "\uF8AD\uF8AE\uF8AF\uF8B0\uF8B1\uF8B2\uF8B3\uF8B4"+
+ "\uF8B5\uF8B6\uF8B7\uF8B8\uF8B9\uF8BA\uF8BB\uF8BC"+
+ "\uF8BD\uF8BE\uF8BF\uF8C0\uF8C1\uF8C2\uF8C3\uF8C4"+
+ "\uF8C5\uF8C6\uF8C7\uF8C8\uF8C9\uF8CA\uF8CB\uF8CC"+
+ "\uF8CD\uF8CE\uF8CF\uF8D0\uF8D1\uF8D2\uF8D3\uF8D4"+
+ "\uF8D5\uF8D6\uF8D7\uF8D8\uF8D9\uF8DA\uF8DB\uF8DC"+
+ "\uF8DD\uF8DE\uF8DF\uF8E0\uF8E1\uF8E2\uF8E3\uF8E4"+
+ "\uF8E5\uF8E6\uF8E7\uF8E8\uF8E9\uF8EA\uF8EB\uF8EC"+
+ "\uF8ED\uF8EE\uF8EF\uF8F0\uF8F1\uF8F2\uF8F3\uF8F4"+
+ "\uF8F5\uF8F6\uF8F7\uF8F8\uF8F9\uF8FA\uF8FB\uF8FC"+
+ "\uF8FD\uF8FE\uF9A1\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6"+
+ "\uF9A7\uF9A8\uF9A9\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE"+
+ "\uF9AF\uF9B0\uF9B1\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6"+
+ "\uF9B7\uF9B8\uF9B9\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE"+
+ "\uF9BF\uF9C0\uF9C1\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6"+
+ "\uF9C7\uF9C8\uF9C9\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE"+
+ "\uF9CF\uF9D0\uF9D1\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6"+
+ "\uF9D7\uF9D8\uF9D9\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE"+
+ "\uF9DF\uF9E0\uF9E1\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6"+
+ "\uF9E7\uF9E8\uF9E9\uF9EA\uF9EB\uF9EC\uF9ED\uF9EE"+
+ "\uF9EF\uF9F0\uF9F1\uF9F2\uF9F3\uF9F4\uF9F5\uF9F6"+
+ "\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB\uF9FC\uF9FD\uF9FE"+
+ "\uFAA1\uFAA2\uFAA3\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8"+
+ "\uFAA9\uFAAA\uFAAB\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0"+
+ "\uFAB1\uFAB2\uFAB3\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8"+
+ "\uFAB9\uFABA\uFABB\uFABC\uFABD\uFABE\uFABF\uFAC0"+
+ "\uFAC1\uFAC2\uFAC3\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8"+
+ "\uFAC9\uFACA\uFACB\uFACC\uFACD\uFACE\uFACF\uFAD0"+
+ "\uFAD1\uFAD2\uFAD3\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8"+
+ "\uFAD9\uFADA\uFADB\uFADC\uFADD\uFADE\uFADF\uFAE0"+
+ "\uFAE1\uFAE2\uFAE3\uFAE4\uFAE5\uFAE6\uFAE7\uFAE8"+
+ "\uFAE9\uFAEA\uFAEB\uFAEC\uFAED\uFAEE\uFAEF\uFAF0"+
+ "\uFAF1\uFAF2\uFAF3\uFAF4\uFAF5\uFAF6\uFAF7\uFAF8"+
+ "\uFAF9\uFAFA\uFAFB\uFAFC\uFAFD\uFAFE\uFBA1\uFBA2"+
+ "\uFBA3\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA"+
+ "\uFBAB\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBB2"+
+ "\uFBB3\uFBB4\uFBB5\uFBB6\uFBB7\uFBB8\uFBB9\uFBBA"+
+ "\uFBBB\uFBBC\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2"+
+ "\uFBC3\uFBC4\uFBC5\uFBC6\uFBC7\uFBC8\uFBC9\uFBCA"+
+ "\uFBCB\uFBCC\uFBCD\uFBCE\uFBCF\uFBD0\uFBD1\uFBD2"+
+ "\uFBD3\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA"+
+ "\uFBDB\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2"+
+ "\uFBE3\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA"+
+ "\uFBEB\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2"+
+ "\uFBF3\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA"+
+ "\uFBFB\uFBFC\uFBFD\uFBFE\uFCA1\uFCA2\uFCA3\uFCA4"+
+ "\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB\uFCAC"+
+ "\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3\uFCB4"+
+ "\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB\uFCBC"+
+ "\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3\uFCC4"+
+ "\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB\uFCCC"+
+ "\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3\uFCD4"+
+ "\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB\uFCDC"+
+ "\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3\uFCE4"+
+ "\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB\uFCEC"+
+ "\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3\uFCF4"+
+ "\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB\uFCFC"+
+ "\uFCFD\uFCFE\uFDA1\uFDA2\uFDA3\uFDA4\uFDA5\uFDA6"+
+ "\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB\uFDAC\uFDAD\uFDAE"+
+ "\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3\uFDB4\uFDB5\uFDB6"+
+ "\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB\uFDBC\uFDBD\uFDBE"+
+ "\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3\uFDC4\uFDC5\uFDC6"+
+ "\uFDC7\uFDC8\uFDC9\uFDCA\uFDCB\uFDCC\uFDCD\uFDCE"+
+ "\uFDCF\uFDD0\uFDD1\uFDD2\uFDD3\uFDD4\uFDD5\uFDD6"+
+ "\uFDD7\uFDD8\uFDD9\uFDDA\uFDDB\uFDDC\uFDDD\uFDDE"+
+ "\uFDDF\uFDE0\uFDE1\uFDE2\uFDE3\uFDE4\uFDE5\uFDE6"+
+ "\uFDE7\uFDE8\uFDE9\uFDEA\uFDEB\uFDEC\uFDED\uFDEE"+
+ "\uFDEF\uFDF0\uFDF1\uFDF2\uFDF3\uFDF4\uFDF5\uFDF6"+
+ "\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB\uFDFC\uFDFD\uFDFE"+
+ "\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7\uFEA8"+
+ "\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF\uFEB0"+
+ "\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7\uFEB8"+
+ "\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF\uFEC0"+
+ "\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7\uFEC8"+
+ "\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0"+
+ "\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7\uFED8"+
+ "\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF\uFEE0"+
+ "\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7\uFEE8"+
+ "\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF\uFEF0"+
+ "\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7\uFEF8"+
+ "\uFEF9\uFEFA\uFEFB\uFEFC\uFEFD\uFEFE\uA140\uA141"+
+ "\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149"+
+ "\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151"+
+ "\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159"+
+ "\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161"+
+ "\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169"+
+ "\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171"+
+ "\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179"+
+ "\uA17A\uA17B\uA17C\uA17D\uA17E\uA180\uA181\uA182"+
+ "\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A"+
+ "\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192"+
+ "\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A"+
+ "\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA240\uA241"+
+ "\uA242\uA243\uA244\uA245\uA246\uA247\uA248\uA249"+
+ "\uA24A\uA24B\uA24C\uA24D\uA24E\uA24F\uA250\uA251"+
+ "\uA252\uA253\uA254\uA255\uA256\uA257\uA258\uA259"+
+ "\uA25A\uA25B\uA25C\uA25D\uA25E\uA25F\uA260\uA261"+
+ "\uA262\uA263\uA264\uA265\uA266\uA267\uA268\uA269"+
+ "\uA26A\uA26B\uA26C\uA26D\uA26E\uA26F\uA270\uA271"+
+ "\uA272\uA273\uA274\uA275\uA276\uA277\uA278\uA279"+
+ "\uA27A\uA27B\uA27C\uA27D\uA27E\uA280\uA281\uA282"+
+ "\uA283\uA284\uA285\uA286\uA287\uA288\uA289\uA28A"+
+ "\uA28B\uA28C\uA28D\uA28E\uA28F\uA290\uA291\uA292"+
+ "\uA293\uA294\uA295\uA296\uA297\uA298\uA299\uA29A"+
+ "\uA29B\uA29C\uA29D\uA29E\uA29F\uA2A0\uA340\uA341"+
+ "\uA342\uA343\uA344\uA345\uA346\uA347\uA348\uA349"+
+ "\uA34A\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351"+
+ "\uA352\uA353\uA354\uA355\uA356\uA357\uA358\uA359"+
+ "\uA35A\uA35B\uA35C\uA35D\uA35E\uA35F\uA360\uA361"+
+ "\uA362\uA363\uA364\uA365\uA366\uA367\uA368\uA369"+
+ "\uA36A\uA36B\uA36C\uA36D\uA36E\uA36F\uA370\uA371"+
+ "\uA372\uA373\uA374\uA375\uA376\uA377\uA378\uA379"+
+ "\uA37A\uA37B\uA37C\uA37D\uA37E\uA380\uA381\uA382"+
+ "\uA383\uA384\uA385\uA386\uA387\uA388\uA389\uA38A"+
+ "\uA38B\uA38C\uA38D\uA38E\uA38F\uA390\uA391\uA392"+
+ "\uA393\uA394\uA395\uA396\uA397\uA398\uA399\uA39A"+
+ "\uA39B\uA39C\uA39D\uA39E\uA39F\uA3A0\uA440\uA441"+
+ "\uA442\uA443\uA444\uA445\uA446\uA447\uA448\uA449"+
+ "\uA44A\uA44B\uA44C\uA44D\uA44E\uA44F\uA450\uA451"+
+ "\uA452\uA453\uA454\uA455\uA456\uA457\uA458\uA459"+
+ "\uA45A\uA45B\uA45C\uA45D\uA45E\uA45F\uA460\uA461"+
+ "\uA462\uA463\uA464\uA465\uA466\uA467\uA468\uA469"+
+ "\uA46A\uA46B\uA46C\uA46D\uA46E\uA46F\uA470\uA471"+
+ "\uA472\uA473\uA474\uA475\uA476\uA477\uA478\uA479"+
+ "\uA47A\uA47B\uA47C\uA47D\uA47E\uA480\uA481\uA482"+
+ "\uA483\uA484\uA485\uA486\uA487\uA488\uA489\uA48A"+
+ "\uA48B\uA48C\uA48D\uA48E\uA48F\uA490\uA491\uA492"+
+ "\uA493\uA494\uA495\uA496\uA497\uA498\uA499\uA49A"+
+ "\uA49B\uA49C\uA49D\uA49E\uA49F\uA4A0\uA540\uA541"+
+ "\uA542\uA543\uA544\uA545\uA546\uA547\uA548\uA549"+
+ "\uA54A\uA54B\uA54C\uA54D\uA54E\uA54F\uA550\uA551"+
+ "\uA552\uA553\uA554\uA555\uA556\uA557\uA558\uA559"+
+ "\uA55A\uA55B\uA55C\uA55D\uA55E\uA55F\uA560\uA561"+
+ "\uA562\uA563\uA564\uA565\uA566\uA567\uA568\uA569"+
+ "\uA56A\uA56B\uA56C\uA56D\uA56E\uA56F\uA570\uA571"+
+ "\uA572\uA573\uA574\uA575\uA576\uA577\uA578\uA579"+
+ "\uA57A\uA57B\uA57C\uA57D\uA57E\uA580\uA581\uA582"+
+ "\uA583\uA584\uA585\uA586\uA587\uA588\uA589\uA58A"+
+ "\uA58B\uA58C\uA58D\uA58E\uA58F\uA590\uA591\uA592"+
+ "\uA593\uA594\uA595\uA596\uA597\uA598\uA599\uA59A"+
+ "\uA59B\uA59C\uA59D\uA59E\uA59F\uA5A0\uA640\uA641"+
+ "\uA642\uA643\uA644\uA645\uA646\uA647\uA648\uA649"+
+ "\uA64A\uA64B\uA64C\uA64D\uA64E\uA64F\uA650\uA651"+
+ "\uA652\uA653\uA654\uA655\uA656\uA657\uA658\uA659"+
+ "\uA65A\uA65B\uA65C\uA65D\uA65E\uA65F\uA660\uA661"+
+ "\uA662\uA663\uA664\uA665\uA666\uA667\uA668\uA669"+
+ "\uA66A\uA66B\uA66C\uA66D\uA66E\uA66F\uA670\uA671"+
+ "\uA672\uA673\uA674\uA675\uA676\uA677\uA678\uA679"+
+ "\uA67A\uA67B\uA67C\uA67D\uA67E\uA680\uA681\uA682"+
+ "\uA683\uA684\uA685\uA686\uA687\uA688\uA689\uA68A"+
+ "\uA68B\uA68C\uA68D\uA68E\uA68F\uA690\uA691\uA692"+
+ "\uA693\uA694\uA695\uA696\uA697\uA698\uA699\uA69A"+
+ "\uA69B\uA69C\uA69D\uA69E\uA69F\uA6A0\uA740\uA741"+
+ "\uA742\uA743\uA744\uA745\uA746\uA747\uA748\uA749"+
+ "\uA74A\uA74B\uA74C\uA74D\uA74E\uA74F\uA750\uA751"+
+ "\uA752\uA753\uA754\uA755\uA756\uA757\uA758\uA759"+
+ "\uA75A\uA75B\uA75C\uA75D\uA75E\uA75F\uA760\uA761"+
+ "\uA762\uA763\uA764\uA765\uA766\uA767\uA768\uA769"+
+ "\uA76A\uA76B\uA76C\uA76D\uA76E\uA76F\uA770\uA771"+
+ "\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA779"+
+ "\uA77A\uA77B\uA77C\uA77D\uA77E\uA780\uA781\uA782"+
+ "\uA783\uA784\uA785\uA786\uA787\uA788\uA789\uA78A"+
+ "\uA78B\uA78C\uA78D\uA78E\uA78F\uA790\uA791\uA792"+
+ "\uA793\uA794\uA795\uA796\uA797\uA798\uA799\uA79A"+
+ "\uA79B\uA79C\uA79D\uA79E\uA79F\uA7A0\uA2AB\uA2AC"+
+ "\uA2AD\uA2AE\uA2AF\uA2B0\u2000\uA2E4\uA2EF\uA2F0"+
+ "\uA2FD\uA2FE\uA4F4\uA4F5\uA4F6\uA4F7\uA4F8\uA4F9"+
+ "\uA4FA\uA4FB\uA4FC\uA4FD\uA4FE\uA5F7\uA5F8\uA5F9"+
+ "\uA5FA\uA5FB\uA5FC\uA5FD\uA5FE\uA6B9\uA6BA\uA6BB"+
+ "\uA6BC\uA6BD\uA6BE\uA6BF\uA6C0\uA6D9\uA6DA\uA6DB"+
+ "\uA6DC\uA6DD\uA6DE\uA6DF\uA6EC\uA6ED\uA6F3\uA6F6"+
+ "\uA6F7\uA6F8\uA6F9\uA6FA\uA6FB\uA6FC\uA6FD\uA6FE"+
+ "\uA7C2\uA7C3\uA7C4\uA7C5\uA7C6\uA7C7\uA7C8\uA7C9"+
+ "\uA7CA\uA7CB\uA7CC\uA7CD\uA7CE\uA7CF\uA7D0\uA7F2"+
+ "\uA7F3\uA7F4\uA7F5\uA7F6\uA7F7\uA7F8\uA7F9\uA7FA"+
+ "\uA7FB\uA7FC\uA7FD\uA7FE\uA896\uA897\uA898\uA899"+
+ "\uA89A\uA89B\uA89C\uA89D\uA89E\uA89F\uA8A0\uA8BC"+
+ "\u2001\uA8C1\uA8C2\uA8C3\uA8C4\uA8EA\uA8EB\uA8EC"+
+ "\uA8ED\uA8EE\uA8EF\uA8F0\uA8F1\uA8F2\uA8F3\uA8F4"+
+ "\uA8F5\uA8F6\uA8F7\uA8F8\uA8F9\uA8FA\uA8FB\uA8FC"+
+ "\uA8FD\uA8FE\uA958\uA95B\uA95D\uA95E\uA95F\u2002"+
+ "\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A"+
+ "\u200B\u200C\u200D\u200E\uA997\uA998\uA999\uA99A"+
+ "\uA99B\uA99C\uA99D\uA99E\uA99F\uA9A0\uA9A1\uA9A2"+
+ "\uA9A3\uA9F0\uA9F1\uA9F2\uA9F3\uA9F4\uA9F5\uA9F6"+
+ "\uA9F7\uA9F8\uA9F9\uA9FA\uA9FB\uA9FC\uA9FD\uA9FE"+
+ "\uD7FA\uD7FB\uD7FC\uD7FD\uD7FE\u200F\uFE51\uFE52"+
+ "\uFE53\u2010\u2011\u2012\u2013\u2014\uFE59\u2015"+
+ "\u2016\u2017\u2018\u2019\u201A\u201B\uFE61\u201C"+
+ "\u201D\u201E\u201F\uFE66\uFE67\u2020\u2021\u2022"+
+ "\u2023\uFE6C\uFE6D\u2024\u2025\u2026\u2027\u2028"+
+ "\u2029\u202A\u202B\uFE76\u202C\u202D\u202E\u202F"+
+ "\u2030\u2031\u2032\uFE7E\u2033\u2034\u2035\u2036"+
+ "\u2037\u2038\u2039\u203A\u203B\u203C\u203D\u203E"+
+ "\u203F\u2040\u2041\u2042\uFE90\uFE91\u2043\u2044"+
+ "\u2045\u2046\u2047\u2048\u2049\u204A\u204B\u204C"+
+ "\u204D\u204E\u204F\u2050\uFEA0\u2051\u2052\u2053"+
+ "\u2054\u2055\u2056\u2057\u2058\u2059\u205A\u205B"+
+ "\u205C\u205D\u205E\u205F\u2060\u2061\u2062\u2063"+
+ "\u2064\u2065\u2066\u2067\u2068\u2069\u206A\u206B"+
+ "\u206C\u206D\u206E\u206F\u2070\u2071\u2072\u2073"+
+ "\u2074\u2075\u2076\u2077\u2078\u2079\u207A\u207B"+
+ "\u207C\u207D\u207E\u207F\u2080\u2081\u2082\u2083"+
+ "\u2084\u2085\u2086\u2087\u2088\u2089\u208A\u208B"+
+ "\u208C\u208D\u208E\u208F\u2090\u2091\u2092\u2093"+
+ "\u2094\u2095\u2096\u2097\u2098\u2099\u209A\u209B"+
+ "\u209C\u209D\u209E\u209F\u20A0\u20A1\u20A2\u20A3"+
+ "\u20A4\u20A5\u20A6\u20A7\u20A8\u20A9\u20AA\u20AB"+
+ "\u20AC\u20AD\u20AE\u20AF\u20B0\u20B1\u20B2\u20B3"+
+ "\u20B4\u20B5\u20B6\u20B7\u20B8\u20B9\u20BA\u20BB"+
+ "\u20BC\u20BD\u20BE\u20BF\u20C0\u20C1\u20C2\u20C3"+
+ "\u20C4\u20C5\u20C6\u20C7\u20C8\u20C9\u20CA\u20CB"+
+ "\u20CC\u20CD\u20CE\u20CF\u20D0\u20D1\u20D2\u20D3"+
+ "\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB"+
+ "\u20DC\u20DD\u20DE\u20DF\u20E0\u20E1\u20E2\u20E3"+
+ "\u20E4\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB"+
+ "\u20EC\u20ED\u20EE\u20EF\u20F0\u20F1\u20F2\u20F3"+
+ "\u20F4\u20F5\u20F6\u20F7\u20F8\u20F9\u20FA\u20FB"+
+ "\u20FC\u20FD\u20FE\u20FF\u2100\u2101\u2102\u2103"+
+ "\u2104\u2105\u2106\u2107\u2108\u2109\u210A\u210B"+
+ "\u210C\u210D\u210E\u210F\u2110\u2111\u2112\u2113"+
+ "\u2114\u2115\u2116\u2117\u2118\u2119\u211A\u211B"+
+ "\u211C\u211D\u211E\u211F\u2120\u2121\u2122\u2123"+
+ "\u2124\u2125\u2126\u2127\u2128\u2129\u212A\u212B"+
+ "\u212C\u212D\u212E\u212F\u2130\u2131\u2132\u2133"+
+ "\u2134\u2135\u2136\u2137\u2138\u2139\u213A\u213B"+
+ "\u213C\u213D\u213E\u213F\u2140\u2141\u2142\u2143"+
+ "\u2144\u2145\u2146\u2147\u2148\u2149\u214A\u214B"+
+ "\u214C\u214D\u214E\u214F\u2150\u2151\u2152\u2153"+
+ "\u2154\u2155\u2156\u2157\u2158\u2159\u215A\u215B"+
+ "\u215C\u215D\u215E\u215F\u2160\u2161\u2162\u2163"+
+ "\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B"+
+ "\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173"+
+ "\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B"+
+ "\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2183"+
+ "\u2184\u2185\u2186\u2187\u2188\u2189\u218A\u218B"+
+ "\u218C\u218D\u218E\u218F\u2190\u2191\u2192\u2193"+
+ "\u2194\u2195\u2196\u2197\u2198\u2199\u219A\u219B"+
+ "\u219C\u219D\u219E\u219F\u21A0\u21A1\u21A2\u21A3"+
+ "\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9\u21AA\u21AB"+
+ "\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1\u21B2\u21B3"+
+ "\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9\u21BA\u21BB"+
+ "\u21BC\u21BD\u21BE\u21BF\u21C0\u21C1\u21C2\u21C3"+
+ "\u21C4\u21C5\u21C6\u21C7\u21C8\u21C9\u21CA\u21CB"+
+ "\u21CC\u21CD\u21CE\u21CF\u21D0\u21D1\u21D2\u21D3"+
+ "\u21D4\u21D5\u21D6\u21D7\u21D8\u21D9\u21DA\u21DB"+
+ "\u21DC\u21DD\u21DE\u21DF\u21E0\u21E1\u21E2\u21E3"+
+ "\u21E4\u21E5\u21E6\u21E7\u21E8\u21E9\u21EA\u21EB"+
+ "\u21EC\u21ED\u21EE\u21EF\u21F0\u21F1\u21F2\u21F3"+
+ "\u21F4\u21F5\u21F6\u21F7\u21F8\u21F9\u21FA\u21FB"+
+ "\u21FC\u21FD\u21FE\u21FF\u2200\u2201\u2202\u2203"+
+ "\u2204\u2205\u2206\u2207\u2208\u2209\u220A\u220B"+
+ "\u220C\u220D\u220E\u220F\u2210\u2211\u2212\u2213"+
+ "\u2214\u2215\u2216\u2217\u2218\u2219\u221A\u221B"+
+ "\u221C\u221D\u221E\u221F\u2220\u2221\u2222\u2223"+
+ "\u2224\u2225\u2226\u2227\u2228\u2229\u222A\u222B"+
+ "\u222C\u222D\u222E\u222F\u2230\u2231\u2232\u2233"+
+ "\u2234\u2235\u2236\u2237\u2238\u2239\u223A\u223B"+
+ "\u223C\u223D\u223E\u223F\u2240\u2241\u2242\u2243"+
+ "\u2244\u2245\u2246\u2247\u2248\u2249\u224A\u224B"+
+ "\u224C\u224D\u224E\u224F\u2250\u2251\u2252\u2253"+
+ "\u2254\u2255\u2256\u2257\u2258\u2259\u225A\u225B"+
+ "\u225C\u225D\u225E\u225F\u2260\u2261\u2262\u2263"+
+ "\u2264\u2265\u2266\u2267\u2268\u2269\u226A\u226B"+
+ "\u226C\u226D\u226E\u226F\u2270\u2271\u2272\u2273"+
+ "\u2274\u2275\u2276\u2277\u2278\u2279\u227A\u227B"+
+ "\u227C\u227D\u227E\u227F\u2280\u2281\u2282\u2283"+
+ "\u2284\u2285\u2286\u2287\u2288\u2289\u228A\u228B"+
+ "\u228C\u228D\u228E\u228F\u2290\u2291\u2292\u2293"+
+ "\u2294\u2295\u2296\u2297\u2298\u2299\u229A\u229B"+
+ "\u229C\u229D\u229E\u229F\u22A0\u22A1\u22A2\u22A3"+
+ "\u22A4\u22A5\u22A6\u22A7\u22A8\u22A9\u22AA\u22AB"+
+ "\u22AC\u22AD\u22AE\u22AF\u22B0\u22B1\u22B2\u22B3"+
+ "\u22B4\u22B5\u22B6\u22B7\u22B8\u22B9\u22BA\u22BB"+
+ "\u22BC\u22BD\u22BE\u22BF\u22C0\u22C1\u22C2\u22C3"+
+ "\u22C4\u22C5\u22C6\u22C7\u22C8\u22C9\u22CA\u22CB"+
+ "\u22CC\u22CD\u22CE\u22CF\u22D0\u22D1\u22D2\u22D3"+
+ "\u22D4\u22D5\u22D6\u22D7\u22D8\u22D9\u22DA\u22DB"+
+ "\u22DC\u22DD\u22DE\u22DF\u22E0\u22E1\u22E2\u22E3"+
+ "\u22E4\u22E5\u22E6\u22E7\u22E8\u22E9\u22EA\u22EB";
+
+ private final static String innerEncoderIndex11=
+ "\u22EC\u22ED\u22EE\u22EF\u22F0\u22F1\u22F2\u22F3"+
+ "\u22F4\u22F5\u22F6\u22F7\u22F8\u22F9\u22FA\u22FB"+
+ "\u22FC\u22FD\u22FE\u22FF\u2300\u2301\u2302\u2303"+
+ "\u2304\u2305\u2306\u2307\u2308\u2309\u230A\u230B"+
+ "\u230C\u230D\u230E\u230F\u2310\u2311\u2312\u2313"+
+ "\u2314\u2315\u2316\u2317\u2318\u2319\u231A\u231B"+
+ "\u231C\u231D\u231E\u231F\u2320\u2321\u2322\u2323"+
+ "\u2324\u2325\u2326\u2327\u2328\u2329\u232A\u232B"+
+ "\u232C\u232D\u232E\u232F\u2330\u2331\u2332\u2333"+
+ "\u2334\u2335\u2336\u2337\u2338\u2339\u233A\u233B"+
+ "\u233C\u233D\u233E\u233F\u2340\u2341\u2342\u2343"+
+ "\u2344\u2345\u2346\u2347\u2348\u2349\u234A\u234B"+
+ "\u234C\u234D\u234E\u234F\u2350\u2351\u2352\u2353"+
+ "\u2354\u2355\u2356\u2357\u2358\u2359\u235A\u235B"+
+ "\u235C\u235D\u235E\u235F\u2360\u2361\u2362\u2363"+
+ "\u2364\u2365\u2366\u2367\u2368\u2369\u236A\u236B"+
+ "\u236C\u236D\u236E\u236F\u2370\u2371\u2372\u2373"+
+ "\u2374\u2375\u2376\u2377\u2378\u2379\u237A\u237B"+
+ "\u237C\u237D\u237E\u237F\u2380\u2381\u2382\u2383"+
+ "\u2384\u2385\u2386\u2387\u2388\u2389\u238A\u238B"+
+ "\u238C\u238D\u238E\u238F\u2390\u2391\u2392\u2393"+
+ "\u2394\u2395\u2396\u2397\u2398\u2399\u239A\u239B"+
+ "\u239C\u239D\u239E\u239F\u23A0\u23A1\u23A2\u23A3"+
+ "\u23A4\u23A5\u23A6\u23A7\u23A8\u23A9\u23AA\u23AB"+
+ "\u23AC\u23AD\u23AE\u23AF\u23B0\u23B1\u23B2\u23B3"+
+ "\u23B4\u23B5\u23B6\u23B7\u23B8\u23B9\u23BA\u23BB"+
+ "\u23BC\u23BD\u23BE\u23BF\u23C0\u23C1\u23C2\u23C3"+
+ "\u23C4\u23C5\u23C6\u23C7\u23C8\u23C9\u23CA\u23CB"+
+ "\u23CC\u23CD\u23CE\u23CF\u23D0\u23D1\u23D2\u23D3"+
+ "\u23D4\u23D5\u23D6\u23D7\u23D8\u23D9\u23DA\u23DB"+
+ "\u23DC\u23DD\u23DE\u23DF\u23E0\u23E1\u23E2\u23E3"+
+ "\u23E4\u23E5\u23E6\u23E7\u23E8\u23E9\u23EA\u23EB"+
+ "\u23EC\u23ED\u23EE\u23EF\u23F0\u23F1\u23F2\u23F3"+
+ "\u23F4\u23F5\u23F6\u23F7\u23F8\u23F9\u23FA\u23FB"+
+ "\u23FC\u23FD\u23FE\u23FF\u2400\u2401\u2402\u2403"+
+ "\u2404\u2405\u2406\u2407\u2408\u2409\u240A\u240B"+
+ "\u240C\u240D\u240E\u240F\u2410\u2411\u2412\u2413"+
+ "\u2414\u2415\u2416\u2417\u2418\u2419\u241A\u241B"+
+ "\u241C\u241D\u241E\u241F\u2420\u2421\u2422\u2423"+
+ "\u2424\u2425\u2426\u2427\u2428\u2429\u242A\u242B"+
+ "\u242C\u242D\u242E\u242F\u2430\u2431\u2432\u2433"+
+ "\u2434\u2435\u2436\u2437\u2438\u2439\u243A\u243B"+
+ "\u243C\u243D\u243E\u243F\u2440\u2441\u2442\u2443"+
+ "\u2444\u2445\u2446\u2447\u2448\u2449\u244A\u244B"+
+ "\u244C\u244D\u244E\u244F\u2450\u2451\u2452\u2453"+
+ "\u2454\u2455\u2456\u2457\u2458\u2459\u245A\u245B"+
+ "\u245C\u245D\u245E\u245F\u2460\u2461\u2462\u2463"+
+ "\u2464\u2465\u2466\u2467\u2468\u2469\u246A\u246B"+
+ "\u246C\u246D\u246E\u246F\u2470\u2471\u2472\u2473"+
+ "\u2474\u2475\u2476\u2477\u2478\u2479\u247A\u247B"+
+ "\u247C\u247D\u247E\u247F\u2480\u2481\u2482\u2483"+
+ "\u2484\u2485\u2486\u2487\u2488\u2489\u248A\u248B"+
+ "\u248C\u248D\u248E\u248F\u2490\u2491\u2492\u2493"+
+ "\u2494\u2495\u2496\u2497\u2498\u2499\u249A\u249B"+
+ "\u249C\u249D\u249E\u249F\u24A0\u24A1\u24A2\u24A3"+
+ "\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9\u24AA\u24AB"+
+ "\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1\u24B2\u24B3"+
+ "\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9\u24BA\u24BB"+
+ "\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1\u24C2\u24C3"+
+ "\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9\u24CA\u24CB"+
+ "\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1\u24D2\u24D3"+
+ "\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9\u24DA\u24DB"+
+ "\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1\u24E2\u24E3"+
+ "\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9\u24EA\u24EB"+
+ "\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1\u24F2\u24F3"+
+ "\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9\u24FA\u24FB"+
+ "\u24FC\u24FD\u24FE\u24FF\u2500\u2501\u2502\u2503"+
+ "\u2504\u2505\u2506\u2507\u2508\u2509\u250A\u250B"+
+ "\u250C\u250D\u250E\u250F\u2510\u2511\u2512\u2513"+
+ "\u2514\u2515\u2516\u2517\u2518\u2519\u251A\u251B"+
+ "\u251C\u251D\u251E\u251F\u2520\u2521\u2522\u2523"+
+ "\u2524\u2525\u2526\u2527\u2528\u2529\u252A\u252B"+
+ "\u252C\u252D\u252E\u252F\u2530\u2531\u2532\u2533"+
+ "\u2534\u2535\u2536\u2537\u2538\u2539\u253A\u253B"+
+ "\u253C\u253D\u253E\u253F\u2540\u2541\u2542\u2543"+
+ "\u2544\u2545\u2546\u2547\u2548\u2549\u254A\u254B"+
+ "\u254C\u254D\u254E\u254F\u2550\u2551\u2552\u2553"+
+ "\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B"+
+ "\u255C\u255D\u255E\u255F\u2560\u2561\u2562\u2563"+
+ "\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B"+
+ "\u256C\u256D\u256E\u256F\u2570\u2571\u2572\u2573"+
+ "\u2574\u2575\u2576\u2577\u2578\u2579\u257A\u257B"+
+ "\u257C\u257D\u257E\u257F\u2580\u2581\u2582\u2583"+
+ "\u2584\u2585\u2586\u2587\u2588\u2589\u258A\u258B"+
+ "\u258C\u258D\u258E\u258F\u2590\u2591\u2592\u2593"+
+ "\u2594\u2595\u2596\u2597\u2598\u2599\u259A\u259B"+
+ "\u259C\u259D\u259E\u259F\u25A0\u25A1\u25A2\u25A3"+
+ "\u25A4\u25A5\u25A6\u25A7\u25A8\u25A9\u25AA\u25AB"+
+ "\u25AC\u25AD\u25AE\u25AF\u25B0\u25B1\u25B2\u25B3"+
+ "\u25B4\u25B5\u25B6\u25B7\u25B8\u25B9\u25BA\u25BB"+
+ "\u25BC\u25BD\u25BE\u25BF\u25C0\u25C1\u25C2\u25C3"+
+ "\u25C4\u25C5\u25C6\u25C7\u25C8\u25C9\u25CA\u25CB"+
+ "\u25CC\u25CD\u25CE\u25CF\u25D0\u25D1\u25D2\u25D3"+
+ "\u25D4\u25D5\u25D6\u25D7\u25D8\u25D9\u25DA\u25DB"+
+ "\u25DC\u25DD\u25DE\u25DF\u25E0\u25E1\u25E2\u25E3"+
+ "\u25E4\u25E5\u25E6\u25E7\u25E8\u25E9\u25EA\u25EB"+
+ "\u25EC\u25ED\u25EE\u25EF\u25F0\u25F1\u25F2\u25F3"+
+ "\u25F4\u25F5\u25F6\u25F7\u25F8\u25F9\u25FA\u25FB"+
+ "\u25FC\u25FD\u25FE\u25FF\u2600\u2601\u2602\u2603"+
+ "\u2604\u2605\u2606\u2607\u2608\u2609\u260A\u260B"+
+ "\u260C\u260D\u260E\u260F\u2610\u2611\u2612\u2613"+
+ "\u2614\u2615\u2616\u2617\u2618\u2619\u261A\u261B"+
+ "\u261C\u261D\u261E\u261F\u2620\u2621\u2622\u2623"+
+ "\u2624\u2625\u2626\u2627\u2628\u2629\u262A\u262B"+
+ "\u262C\u262D\u262E\u262F\u2630\u2631\u2632\u2633"+
+ "\u2634\u2635\u2636\u2637\u2638\u2639\u263A\u263B"+
+ "\u263C\u263D\u263E\u263F\u2640\u2641\u2642\u2643"+
+ "\u2644\u2645\u2646\u2647\u2648\u2649\u264A\u264B"+
+ "\u264C\u264D\u264E\u264F\u2650\u2651\u2652\u2653"+
+ "\u2654\u2655\u2656\u2657\u2658\u2659\u265A\u265B"+
+ "\u265C\u265D\u265E\u265F\u2660\u2661\u2662\u2663"+
+ "\u2664\u2665\u2666\u2667\u2668\u2669\u266A\u266B"+
+ "\u266C\u266D\u266E\u266F\u2670\u2671\u2672\u2673"+
+ "\u2674\u2675\u2676\u2677\u2678\u2679\u267A\u267B"+
+ "\u267C\u267D\u267E\u267F\u2680\u2681\u2682\u2683"+
+ "\u2684\u2685\u2686\u2687\u2688\u2689\u268A\u268B"+
+ "\u268C\u268D\u268E\u268F\u2690\u2691\u2692\u2693"+
+ "\u2694\u2695\u2696\u2697\u2698\u2699\u269A\u269B"+
+ "\u269C\u269D\u269E\u269F\u26A0\u26A1\u26A2\u26A3"+
+ "\u26A4\u26A5\u26A6\u26A7\u26A8\u26A9\u26AA\u26AB"+
+ "\u26AC\u26AD\u26AE\u26AF\u26B0\u26B1\u26B2\u26B3"+
+ "\u26B4\u26B5\u26B6\u26B7\u26B8\u26B9\u26BA\u26BB"+
+ "\u26BC\u26BD\u26BE\u26BF\u26C0\u26C1\u26C2\u26C3"+
+ "\u26C4\u26C5\u26C6\u26C7\u26C8\u26C9\u26CA\u26CB"+
+ "\u26CC\u26CD\u26CE\u26CF\u26D0\u26D1\u26D2\u26D3"+
+ "\u26D4\u26D5\u26D6\u26D7\u26D8\u26D9\u26DA\u26DB"+
+ "\u26DC\u26DD\u26DE\u26DF\u26E0\u26E1\u26E2\u26E3"+
+ "\u26E4\u26E5\u26E6\u26E7\u26E8\u26E9\u26EA\u26EB"+
+ "\u26EC\u26ED\u26EE\u26EF\u26F0\u26F1\u26F2\u26F3"+
+ "\u26F4\u26F5\u26F6\u26F7\u26F8\u26F9\u26FA\u26FB"+
+ "\u26FC\u26FD\u26FE\u26FF\u2700\u2701\u2702\u2703"+
+ "\u2704\u2705\u2706\u2707\u2708\u2709\u270A\u270B"+
+ "\u270C\u270D\u270E\u270F\u2710\u2711\u2712\u2713"+
+ "\u2714\u2715\u2716\u2717\u2718\u2719\u271A\u271B"+
+ "\u271C\u271D\u271E\u271F\u2720\u2721\u2722\u2723"+
+ "\u2724\u2725\u2726\u2727\u2728\u2729\u272A\u272B"+
+ "\u272C\u272D\u272E\u272F\u2730\u2731\u2732\u2733"+
+ "\u2734\u2735\u2736\u2737\u2738\u2739\u273A\u273B"+
+ "\u273C\u273D\u273E\u273F\u2740\u2741\u2742\u2743"+
+ "\u2744\u2745\u2746\u2747\u2748\u2749\u274A\u274B"+
+ "\u274C\u274D\u274E\u274F\u2750\u2751\u2752\u2753"+
+ "\u2754\u2755\u2756\u2757\u2758\u2759\u275A\u275B"+
+ "\u275C\u275D\u275E\u275F\u2760\u2761\u2762\u2763"+
+ "\u2764\u2765\u2766\u2767\u2768\u2769\u276A\u276B"+
+ "\u276C\u276D\u276E\u276F\u2770\u2771\u2772\u2773"+
+ "\u2774\u2775\u2776\u2777\u2778\u2779\u277A\u277B"+
+ "\u277C\u277D\u277E\u277F\u2780\u2781\u2782\u2783"+
+ "\u2784\u2785\u2786\u2787\u2788\u2789\u278A\u278B"+
+ "\u278C\u278D\u278E\u278F\u2790\u2791\u2792\u2793"+
+ "\u2794\u2795\u2796\u2797\u2798\u2799\u279A\u279B"+
+ "\u279C\u279D\u279E\u279F\u27A0\u27A1\u27A2\u27A3"+
+ "\u27A4\u27A5\u27A6\u27A7\u27A8\u27A9\u27AA\u27AB"+
+ "\u27AC\u27AD\u27AE\u27AF\u27B0\u27B1\u27B2\u27B3"+
+ "\u27B4\u27B5\u27B6\u27B7\u27B8\u27B9\u27BA\u27BB"+
+ "\u27BC\u27BD\u27BE\u27BF\u27C0\u27C1\u27C2\u27C3"+
+ "\u27C4\u27C5\u27C6\u27C7\u27C8\u27C9\u27CA\u27CB"+
+ "\u27CC\u27CD\u27CE\u27CF\u27D0\u27D1\u27D2\u27D3"+
+ "\u27D4\u27D5\u27D6\u27D7\u27D8\u27D9\u27DA\u27DB"+
+ "\u27DC\u27DD\u27DE\u27DF\u27E0\u27E1\u27E2\u27E3"+
+ "\u27E4\u27E5\u27E6\u27E7\u27E8\u27E9\u27EA\u27EB"+
+ "\u27EC\u27ED\u27EE\u27EF\u27F0\u27F1\u27F2\u27F3"+
+ "\u27F4\u27F5\u27F6\u27F7\u27F8\u27F9\u27FA\u27FB"+
+ "\u27FC\u27FD\u27FE\u27FF\u2800\u2801\u2802\u2803"+
+ "\u2804\u2805\u2806\u2807\u2808\u2809\u280A\u280B"+
+ "\u280C\u280D\u280E\u280F\u2810\u2811\u2812\u2813"+
+ "\u2814\u2815\u2816\u2817\u2818\u2819\u281A\u281B"+
+ "\u281C\u281D\u281E\u281F\u2820\u2821\u2822\u2823"+
+ "\u2824\u2825\u2826\u2827\u2828\u2829\u282A\u282B"+
+ "\u282C\u282D\u282E\u282F\u2830\u2831\u2832\u2833"+
+ "\u2834\u2835\u2836\u2837\u2838\u2839\u283A\u283B"+
+ "\u283C\u283D\u283E\u283F\u2840\u2841\u2842\u2843"+
+ "\u2844\u2845\u2846\u2847\u2848\u2849\u284A\u284B"+
+ "\u284C\u284D\u284E\u284F\u2850\u2851\u2852\u2853"+
+ "\u2854\u2855\u2856\u2857\u2858\u2859\u285A\u285B"+
+ "\u285C\u285D\u285E\u285F\u2860\u2861\u2862\u2863"+
+ "\u2864\u2865\u2866\u2867\u2868\u2869\u286A\u286B"+
+ "\u286C\u286D\u286E\u286F\u2870\u2871\u2872\u2873"+
+ "\u2874\u2875\u2876\u2877\u2878\u2879\u287A\u287B"+
+ "\u287C\u287D\u287E\u287F\u2880\u2881\u2882\u2883"+
+ "\u2884\u2885\u2886\u2887\u2888\u2889\u288A\u288B"+
+ "\u288C\u288D\u288E\u288F\u2890\u2891\u2892\u2893"+
+ "\u2894\u2895\u2896\u2897\u2898\u2899\u289A\u289B"+
+ "\u289C\u289D\u289E\u289F\u28A0\u28A1\u28A2\u28A3"+
+ "\u28A4\u28A5\u28A6\u28A7\u28A8\u28A9\u28AA\u28AB"+
+ "\u28AC\u28AD\u28AE\u28AF\u28B0\u28B1\u28B2\u28B3"+
+ "\u28B4\u28B5\u28B6\u28B7\u28B8\u28B9\u28BA\u28BB"+
+ "\u28BC\u28BD\u28BE\u28BF\u28C0\u28C1\u28C2\u28C3"+
+ "\u28C4\u28C5\u28C6\u28C7\u28C8\u28C9\u28CA\u28CB"+
+ "\u28CC\u28CD\u28CE\u28CF\u28D0\u28D1\u28D2\u28D3"+
+ "\u28D4\u28D5\u28D6\u28D7\u28D8\u28D9\u28DA\u28DB"+
+ "\u28DC\u28DD\u28DE\u28DF\u28E0\u28E1\u28E2\u28E3"+
+ "\u28E4\u28E5\u28E6\u28E7\u28E8\u28E9\u28EA\u28EB"+
+ "\u28EC\u28ED\u28EE\u28EF\u28F0\u28F1\u28F2\u28F3"+
+ "\u28F4\u28F5\u28F6\u28F7\u28F8\u28F9\u28FA\u28FB"+
+ "\u28FC\u28FD\u28FE\u28FF\u2900\u2901\u2902\u2903"+
+ "\u2904\u2905\u2906\u2907\u2908\u2909\u290A\u290B"+
+ "\u290C\u290D\u290E\u290F\u2910\u2911\u2912\u2913"+
+ "\u2914\u2915\u2916\u2917\u2918\u2919\u291A\u291B"+
+ "\u291C\u291D\u291E\u291F\u2920\u2921\u2922\u2923"+
+ "\u2924\u2925\u2926\u2927\u2928\u2929\u292A\u292B"+
+ "\u292C\u292D\u292E\u292F\u2930\u2931\u2932\u2933"+
+ "\u2934\u2935\u2936\u2937\u2938\u2939\u293A\u293B"+
+ "\u293C\u293D\u293E\u293F\u2940\u2941\u2942\u2943"+
+ "\u2944\u2945\u2946\u2947\u2948\u2949\u294A\u294B"+
+ "\u294C\u294D\u294E\u294F\u2950\u2951\u2952\u2953"+
+ "\u2954\u2955\u2956\u2957\u2958\u2959\u295A\u295B"+
+ "\u295C\u295D\u295E\u295F\u2960\u2961\u2962\u2963"+
+ "\u2964\u2965\u2966\u2967\u2968\u2969\u296A\u296B"+
+ "\u296C\u296D\u296E\u296F\u2970\u2971\u2972\u2973"+
+ "\u2974\u2975\u2976\u2977\u2978\u2979\u297A\u297B"+
+ "\u297C\u297D\u297E\u297F\u2980\u2981\u2982\u2983"+
+ "\u2984\u2985\u2986\u2987\u2988\u2989\u298A\u298B"+
+ "\u298C\u298D\u298E\u298F\u2990\u2991\u2992\u2993"+
+ "\u2994\u2995\u2996\u2997\u2998\u2999\u299A\u299B"+
+ "\u299C\u299D\u299E\u299F\u29A0\u29A1\u29A2\u29A3"+
+ "\u29A4\u29A5\u29A6\u29A7\u29A8\u29A9\u29AA\u29AB"+
+ "\u29AC\u29AD\u29AE\u29AF\u29B0\u29B1\u29B2\u29B3"+
+ "\u29B4\u29B5\u29B6\u29B7\u29B8\u29B9\u29BA\u29BB"+
+ "\u29BC\u29BD\u29BE\u29BF\u29C0\u29C1\u29C2\u29C3"+
+ "\u29C4\u29C5\u29C6\u29C7\u29C8\u29C9\u29CA\u29CB"+
+ "\u29CC\u29CD\u29CE\u29CF\u29D0\u29D1\u29D2\u29D3"+
+ "\u29D4\u29D5\u29D6\u29D7\u29D8\u29D9\u29DA\u29DB"+
+ "\u29DC\u29DD\u29DE\u29DF\u29E0\u29E1\u29E2\u29E3"+
+ "\u29E4\u29E5\u29E6\u29E7\u29E8\u29E9\u29EA\u29EB"+
+ "\u29EC\u29ED\u29EE\u29EF\u29F0\u29F1\u29F2\u29F3"+
+ "\u29F4\u29F5\u29F6\u29F7\u29F8\u29F9\u29FA\u29FB"+
+ "\u29FC\u29FD\u29FE\u29FF\u2A00\u2A01\u2A02\u2A03"+
+ "\u2A04\u2A05\u2A06\u2A07\u2A08\u2A09\u2A0A\u2A0B"+
+ "\u2A0C\u2A0D\u2A0E\u2A0F\u2A10\u2A11\u2A12\u2A13"+
+ "\u2A14\u2A15\u2A16\u2A17\u2A18\u2A19\u2A1A\u2A1B"+
+ "\u2A1C\u2A1D\u2A1E\u2A1F\u2A20\u2A21\u2A22\u2A23"+
+ "\u2A24\u2A25\u2A26\u2A27\u2A28\u2A29\u2A2A\u2A2B"+
+ "\u2A2C\u2A2D\u2A2E\u2A2F\u2A30\u2A31\u2A32\u2A33"+
+ "\u2A34\u2A35\u2A36\u2A37\u2A38\u2A39\u2A3A\u2A3B"+
+ "\u2A3C\u2A3D\u2A3E\u2A3F\u2A40\u2A41\u2A42\u2A43"+
+ "\u2A44\u2A45\u2A46\u2A47\u2A48\u2A49\u2A4A\u2A4B"+
+ "\u2A4C\u2A4D\u2A4E\u2A4F\u2A50\u2A51\u2A52\u2A53"+
+ "\u2A54\u2A55\u2A56\u2A57\u2A58\u2A59\u2A5A\u2A5B"+
+ "\u2A5C\u2A5D\u2A5E\u2A5F\u2A60\u2A61\u2A62\u2A63"+
+ "\u2A64\u2A65\u2A66\u2A67\u2A68\u2A69\u2A6A\u2A6B"+
+ "\u2A6C\u2A6D\u2A6E\u2A6F\u2A70\u2A71\u2A72\u2A73"+
+ "\u2A74\u2A75\u2A76\u2A77\u2A78\u2A79\u2A7A\u2A7B"+
+ "\u2A7C\u2A7D\u2A7E\u2A7F\u2A80\u2A81\u2A82\u2A83"+
+ "\u2A84\u2A85\u2A86\u2A87\u2A88\u2A89\u2A8A\u2A8B"+
+ "\u2A8C\u2A8D\u2A8E\u2A8F\u2A90\u2A91\u2A92\u2A93"+
+ "\u2A94\u2A95\u2A96\u2A97\u2A98\u2A99\u2A9A\u2A9B"+
+ "\u2A9C\u2A9D\u2A9E\u2A9F\u2AA0\u2AA1\u2AA2\u2AA3"+
+ "\u2AA4\u2AA5\u2AA6\u2AA7\u2AA8\u2AA9\u2AAA\u2AAB"+
+ "\u2AAC\u2AAD\u2AAE\u2AAF\u2AB0\u2AB1\u2AB2\u2AB3"+
+ "\u2AB4\u2AB5\u2AB6\u2AB7\u2AB8\u2AB9\u2ABA\u2ABB"+
+ "\u2ABC\u2ABD\u2ABE\u2ABF\u2AC0\u2AC1\u2AC2\u2AC3"+
+ "\u2AC4\u2AC5\u2AC6\u2AC7\u2AC8\u2AC9\u2ACA\u2ACB"+
+ "\u2ACC\u2ACD\u2ACE\u2ACF\u2AD0\u2AD1\u2AD2\u2AD3"+
+ "\u2AD4\u2AD5\u2AD6\u2AD7\u2AD8\u2AD9\u2ADA\u2ADB"+
+ "\u2ADC\u2ADD\u2ADE\u2ADF\u2AE0\u2AE1\u2AE2\u2AE3"+
+ "\u2AE4\u2AE5\u2AE6\u2AE7\u2AE8\u2AE9\u2AEA\u2AEB"+
+ "\u2AEC\u2AED\u2AEE\u2AEF\u2AF0\u2AF1\u2AF2\u2AF3"+
+ "\u2AF4\u2AF5\u2AF6\u2AF7\u2AF8\u2AF9\u2AFA\u2AFB"+
+ "\u2AFC\u2AFD\u2AFE\u2AFF\u2B00\u2B01\u2B02\u2B03"+
+ "\u2B04\u2B05\u2B06\u2B07\u2B08\u2B09\u2B0A\u2B0B"+
+ "\u2B0C\u2B0D\u2B0E\u2B0F\u2B10\u2B11\u2B12\u2B13"+
+ "\u2B14\u2B15\u2B16\u2B17\u2B18\u2B19\u2B1A\u2B1B"+
+ "\u2B1C\u2B1D\u2B1E\u2B1F\u2B20\u2B21\u2B22\u2B23"+
+ "\u2B24\u2B25\u2B26\u2B27\u2B28\u2B29\u2B2A\u2B2B"+
+ "\u2B2C\u2B2D\u2B2E\u2B2F\u2B30\u2B31\u2B32\u2B33"+
+ "\u2B34\u2B35\u2B36\u2B37\u2B38\u2B39\u2B3A\u2B3B"+
+ "\u2B3C\u2B3D\u2B3E\u2B3F\u2B40\u2B41\u2B42\u2B43"+
+ "\u2B44\u2B45\u2B46\u2B47\u2B48\u2B49\u2B4A\u2B4B"+
+ "\u2B4C\u2B4D\u2B4E\u2B4F\u2B50\u2B51\u2B52\u2B53"+
+ "\u2B54\u2B55\u2B56\u2B57\u2B58\u2B59\u2B5A\u2B5B"+
+ "\u2B5C\u2B5D\u2B5E\u2B5F\u2B60\u2B61\u2B62\u2B63"+
+ "\u2B64\u2B65\u2B66\u2B67\u2B68\u2B69\u2B6A\u2B6B"+
+ "\u2B6C\u2B6D\u2B6E\u2B6F\u2B70\u2B71\u2B72\u2B73"+
+ "\u2B74\u2B75\u2B76\u2B77\u2B78\u2B79\u2B7A\u2B7B"+
+ "\u2B7C\u2B7D\u2B7E\u2B7F\u2B80\u2B81\u2B82\u2B83"+
+ "\u2B84\u2B85\u2B86\u2B87\u2B88\u2B89\u2B8A\u2B8B"+
+ "\u2B8C\u2B8D\u2B8E\u2B8F\u2B90\u2B91\u2B92\u2B93"+
+ "\u2B94\u2B95\u2B96\u2B97\u2B98\u2B99\u2B9A\u2B9B"+
+ "\u2B9C\u2B9D\u2B9E\u2B9F\u2BA0\u2BA1\u2BA2\u2BA3"+
+ "\u2BA4\u2BA5\u2BA6\u2BA7\u2BA8\u2BA9\u2BAA\u2BAB"+
+ "\u2BAC\u2BAD\u2BAE\u2BAF\u2BB0\u2BB1\u2BB2\u2BB3"+
+ "\u2BB4\u2BB5\u2BB6\u2BB7\u2BB8\u2BB9\u2BBA\u2BBB"+
+ "\u2BBC\u2BBD\u2BBE\u2BBF\u2BC0\u2BC1\u2BC2\u2BC3"+
+ "\u2BC4\u2BC5\u2BC6\u2BC7\u2BC8\u2BC9\u2BCA\u2BCB"+
+ "\u2BCC\u2BCD\u2BCE\u2BCF\u2BD0\u2BD1\u2BD2\u2BD3"+
+ "\u2BD4\u2BD5\u2BD6\u2BD7\u2BD8\u2BD9\u2BDA\u2BDB"+
+ "\u2BDC\u2BDD\u2BDE\u2BDF\u2BE0\u2BE1\u2BE2\u2BE3"+
+ "\u2BE4\u2BE5\u2BE6\u2BE7\u2BE8\u2BE9\u2BEA\u2BEB"+
+ "\u2BEC\u2BED\u2BEE\u2BEF\u2BF0\u2BF1\u2BF2\u2BF3"+
+ "\u2BF4\u2BF5\u2BF6\u2BF7\u2BF8\u2BF9\u2BFA\u2BFB"+
+ "\u2BFC\u2BFD\u2BFE\u2BFF\u2C00\u2C01\u2C02\u2C03"+
+ "\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B"+
+ "\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13"+
+ "\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B"+
+ "\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23"+
+ "\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B"+
+ "\u2C2C\u2C2D\u2C2E\u2C2F\u2C30\u2C31\u2C32\u2C33"+
+ "\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B"+
+ "\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43"+
+ "\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B"+
+ "\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53"+
+ "\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B"+
+ "\u2C5C\u2C5D\u2C5E\u2C5F\u2C60\u2C61\u2C62\u2C63"+
+ "\u2C64\u2C65\u2C66\u2C67\u2C68\u2C69\u2C6A\u2C6B"+
+ "\u2C6C\u2C6D\u2C6E\u2C6F\u2C70\u2C71\u2C72\u2C73"+
+ "\u2C74\u2C75\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B"+
+ "\u2C7C\u2C7D\u2C7E\u2C7F\u2C80\u2C81\u2C82\u2C83"+
+ "\u2C84\u2C85\u2C86\u2C87\u2C88\u2C89\u2C8A\u2C8B"+
+ "\u2C8C\u2C8D\u2C8E\u2C8F\u2C90\u2C91\u2C92\u2C93"+
+ "\u2C94\u2C95\u2C96\u2C97\u2C98\u2C99\u2C9A\u2C9B"+
+ "\u2C9C\u2C9D\u2C9E\u2C9F\u2CA0\u2CA1\u2CA2\u2CA3"+
+ "\u2CA4\u2CA5\u2CA6\u2CA7\u2CA8\u2CA9\u2CAA\u2CAB"+
+ "\u2CAC\u2CAD\u2CAE\u2CAF\u2CB0\u2CB1\u2CB2\u2CB3"+
+ "\u2CB4\u2CB5\u2CB6\u2CB7\u2CB8\u2CB9\u2CBA\u2CBB"+
+ "\u2CBC\u2CBD\u2CBE\u2CBF\u2CC0\u2CC1\u2CC2\u2CC3"+
+ "\u2CC4\u2CC5\u2CC6\u2CC7\u2CC8\u2CC9\u2CCA\u2CCB"+
+ "\u2CCC\u2CCD\u2CCE\u2CCF\u2CD0\u2CD1\u2CD2\u2CD3"+
+ "\u2CD4\u2CD5\u2CD6\u2CD7\u2CD8\u2CD9\u2CDA\u2CDB"+
+ "\u2CDC\u2CDD\u2CDE\u2CDF\u2CE0\u2CE1\u2CE2\u2CE3"+
+ "\u2CE4\u2CE5\u2CE6\u2CE7\u2CE8\u2CE9\u2CEA\u2CEB"+
+ "\u2CEC\u2CED\u2CEE\u2CEF\u2CF0\u2CF1\u2CF2\u2CF3"+
+ "\u2CF4\u2CF5\u2CF6\u2CF7\u2CF8\u2CF9\u2CFA\u2CFB"+
+ "\u2CFC\u2CFD\u2CFE\u2CFF\u2D00\u2D01\u2D02\u2D03"+
+ "\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B"+
+ "\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13"+
+ "\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B"+
+ "\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23"+
+ "\u2D24\u2D25\u2D26\u2D27\u2D28\u2D29\u2D2A\u2D2B"+
+ "\u2D2C\u2D2D\u2D2E\u2D2F\u2D30\u2D31\u2D32\u2D33"+
+ "\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B"+
+ "\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43"+
+ "\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B"+
+ "\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53"+
+ "\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B"+
+ "\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63"+
+ "\u2D64\u2D65\u2D66\u2D67\u2D68\u2D69\u2D6A\u2D6B"+
+ "\u2D6C\u2D6D\u2D6E\u2D6F\u2D70\u2D71\u2D72\u2D73"+
+ "\u2D74\u2D75\u2D76\u2D77\u2D78\u2D79\u2D7A\u2D7B"+
+ "\u2D7C\u2D7D\u2D7E\u2D7F\u2D80\u2D81\u2D82\u2D83"+
+ "\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B"+
+ "\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93"+
+ "\u2D94\u2D95\u2D96\u2D97\u2D98\u2D99\u2D9A\u2D9B"+
+ "\u2D9C\u2D9D\u2D9E\u2D9F\u2DA0\u2DA1\u2DA2\u2DA3"+
+ "\u2DA4\u2DA5\u2DA6\u2DA7\u2DA8\u2DA9\u2DAA\u2DAB"+
+ "\u2DAC\u2DAD\u2DAE\u2DAF\u2DB0\u2DB1\u2DB2\u2DB3"+
+ "\u2DB4\u2DB5\u2DB6\u2DB7\u2DB8\u2DB9\u2DBA\u2DBB"+
+ "\u2DBC\u2DBD\u2DBE\u2DBF\u2DC0\u2DC1\u2DC2\u2DC3"+
+ "\u2DC4\u2DC5\u2DC6\u2DC7\u2DC8\u2DC9\u2DCA\u2DCB"+
+ "\u2DCC\u2DCD\u2DCE\u2DCF\u2DD0\u2DD1\u2DD2\u2DD3"+
+ "\u2DD4\u2DD5\u2DD6\u2DD7\u2DD8\u2DD9\u2DDA\u2DDB"+
+ "\u2DDC\u2DDD\u2DDE\u2DDF\u2DE0\u2DE1\u2DE2\u2DE3"+
+ "\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB"+
+ "\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3"+
+ "\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB"+
+ "\u2DFC\u2DFD\u2DFE\u2DFF\u2E00\u2E01\u2E02\u2E03"+
+ "\u2E04\u2E05\u2E06\u2E07\u2E08\u2E09\u2E0A\u2E0B"+
+ "\u2E0C\u2E0D\u2E0E\u2E0F\u2E10\u2E11\u2E12\u2E13"+
+ "\u2E14\u2E15\u2E16\u2E17\u2E18\u2E19\u2E1A\u2E1B"+
+ "\u2E1C\u2E1D\u2E1E\u2E1F\u2E20\u2E21\u2E22\u2E23"+
+ "\u2E24\u2E25\u2E26\u2E27\u2E28\u2E29\u2E2A\u2E2B"+
+ "\u2E2C\u2E2D\u2E2E\u2E2F\u2E30\u2E31\u2E32\u2E33"+
+ "\u2E34\u2E35\u2E36\u2E37\u2E38\u2E39\u2E3A\u2E3B"+
+ "\u2E3C\u2E3D\u2E3E\u2E3F\u2E40\u2E41\u2E42\u2E43"+
+ "\u2E44\u2E45\u2E46\u2E47\u2E48\u2E49\u2E4A\u2E4B"+
+ "\u2E4C\u2E4D\u2E4E\u2E4F\u2E50\u2E51\u2E52\u2E53"+
+ "\u2E54\u2E55\u2E56\u2E57\u2E58\u2E59\u2E5A\u2E5B"+
+ "\u2E5C\u2E5D\u2E5E\u2E5F\u2E60\u2E61\u2E62\u2E63"+
+ "\u2E64\u2E65\u2E66\u2E67\u2E68\u2E69\u2E6A\u2E6B"+
+ "\u2E6C\u2E6D\u2E6E\u2E6F\u2E70\u2E71\u2E72\u2E73"+
+ "\u2E74\u2E75\u2E76\u2E77\u2E78\u2E79\u2E7A\u2E7B"+
+ "\u2E7C\u2E7D\u2E7E\u2E7F\u2E80\u2E81\u2E82\u2E83"+
+ "\u2E84\u2E85\u2E86\u2E87\u2E88\u2E89\u2E8A\u2E8B"+
+ "\u2E8C\u2E8D\u2E8E\u2E8F\u2E90\u2E91\u2E92\u2E93"+
+ "\u2E94\u2E95\u2E96\u2E97\u2E98\u2E99\u2E9A\u2E9B"+
+ "\u2E9C\u2E9D\u2E9E\u2E9F\u2EA0\u2EA1\u2EA2\u2EA3"+
+ "\u2EA4\u2EA5\u2EA6\u2EA7\u2EA8\u2EA9\u2EAA\u2EAB"+
+ "\u2EAC\u2EAD\u2EAE\u2EAF\u2EB0\u2EB1\u2EB2\u2EB3"+
+ "\u2EB4\u2EB5\u2EB6\u2EB7\u2EB8\u2EB9\u2EBA\u2EBB"+
+ "\u2EBC\u2EBD\u2EBE\u2EBF\u2EC0\u2EC1\u2EC2\u2EC3"+
+ "\u2EC4\u2EC5\u2EC6\u2EC7\u2EC8\u2EC9\u2ECA\u2ECB"+
+ "\u2ECC\u2ECD\u2ECE\u2ECF\u2ED0\u2ED1\u2ED2\u2ED3"+
+ "\u2ED4\u2ED5\u2ED6\u2ED7\u2ED8\u2ED9\u2EDA\u2EDB"+
+ "\u2EDC\u2EDD\u2EDE\u2EDF\u2EE0\u2EE1\u2EE2\u2EE3"+
+ "\u2EE4\u2EE5\u2EE6\u2EE7\u2EE8\u2EE9\u2EEA\u2EEB"+
+ "\u2EEC\u2EED\u2EEE\u2EEF\u2EF0\u2EF1\u2EF2\u2EF3"+
+ "\u2EF4\u2EF5\u2EF6\u2EF7\u2EF8\u2EF9\u2EFA\u2EFB"+
+ "\u2EFC\u2EFD\u2EFE\u2EFF\u2F00\u2F01\u2F02\u2F03"+
+ "\u2F04\u2F05\u2F06\u2F07\u2F08\u2F09\u2F0A\u2F0B"+
+ "\u2F0C\u2F0D\u2F0E\u2F0F\u2F10\u2F11\u2F12\u2F13"+
+ "\u2F14\u2F15\u2F16\u2F17\u2F18\u2F19\u2F1A\u2F1B"+
+ "\u2F1C\u2F1D\u2F1E\u2F1F\u2F20\u2F21\u2F22\u2F23"+
+ "\u2F24\u2F25\u2F26\u2F27\u2F28\u2F29\u2F2A\u2F2B"+
+ "\u2F2C\u2F2D\u2F2E\u2F2F\u2F30\u2F31\u2F32\u2F33"+
+ "\u2F34\u2F35\u2F36\u2F37\u2F38\u2F39\u2F3A\u2F3B"+
+ "\u2F3C\u2F3D\u2F3E\u2F3F\u2F40\u2F41\u2F42\u2F43"+
+ "\u2F44\u2F45\u2F46\u2F47\u2F48\u2F49\u2F4A\u2F4B"+
+ "\u2F4C\u2F4D\u2F4E\u2F4F\u2F50\u2F51\u2F52\u2F53"+
+ "\u2F54\u2F55\u2F56\u2F57\u2F58\u2F59\u2F5A\u2F5B"+
+ "\u2F5C\u2F5D\u2F5E\u2F5F\u2F60\u2F61\u2F62\u2F63"+
+ "\u2F64\u2F65\u2F66\u2F67\u2F68\u2F69\u2F6A\u2F6B"+
+ "\u2F6C\u2F6D\u2F6E\u2F6F\u2F70\u2F71\u2F72\u2F73"+
+ "\u2F74\u2F75\u2F76\u2F77\u2F78\u2F79\u2F7A\u2F7B"+
+ "\u2F7C\u2F7D\u2F7E\u2F7F\u2F80\u2F81\u2F82\u2F83"+
+ "\u2F84\u2F85\u2F86\u2F87\u2F88\u2F89\u2F8A\u2F8B"+
+ "\u2F8C\u2F8D\u2F8E\u2F8F\u2F90\u2F91\u2F92\u2F93"+
+ "\u2F94\u2F95\u2F96\u2F97\u2F98\u2F99\u2F9A\u2F9B"+
+ "\u2F9C\u2F9D\u2F9E\u2F9F\u2FA0\u2FA1\u2FA2\u2FA3"+
+ "\u2FA4\u2FA5\u2FA6\u2FA7\u2FA8\u2FA9\u2FAA\u2FAB"+
+ "\u2FAC\u2FAD\u2FAE\u2FAF\u2FB0\u2FB1\u2FB2\u2FB3"+
+ "\u2FB4\u2FB5\u2FB6\u2FB7\u2FB8\u2FB9\u2FBA\u2FBB"+
+ "\u2FBC\u2FBD\u2FBE\u2FBF\u2FC0\u2FC1\u2FC2\u2FC3"+
+ "\u2FC4\u2FC5\u2FC6\u2FC7\u2FC8\u2FC9\u2FCA\u2FCB"+
+ "\u2FCC\u2FCD\u2FCE\u2FCF\u2FD0\u2FD1\u2FD2\u2FD3"+
+ "\u2FD4\u2FD5\u2FD6\u2FD7\u2FD8\u2FD9\u2FDA\u2FDB"+
+ "\u2FDC\u2FDD\u2FDE\u2FDF\u2FE0\u2FE1\u2FE2\u2FE3"+
+ "\u2FE4\u2FE5\u2FE6\u2FE7\u2FE8\u2FE9\u2FEA\u2FEB"+
+ "\u2FEC\u2FED\u2FEE\u2FEF\u2FF0\u2FF1\u2FF2\u2FF3"+
+ "\u2FF4\u2FF5\u2FF6\u2FF7\u2FF8\u2FF9\u2FFA\u2FFB"+
+ "\u2FFC\u2FFD\u2FFE\u2FFF\u3000\u3001\u3002\u3003"+
+ "\u3004\u3005\u3006\u3007\u3008\u3009\u300A\u300B"+
+ "\u300C\u300D\u300E\u300F\u3010\u3011\u3012\u3013"+
+ "\u3014\u3015\u3016\u3017\u3018\u3019\u301A\u301B"+
+ "\u301C\u301D\u301E\u301F\u3020\u3021\u3022\u3023"+
+ "\u3024\u3025\u3026\u3027\u3028\u3029\u302A\u302B"+
+ "\u302C\u302D\u302E\u302F\u3030\u3031\u3032\u3033"+
+ "\u3034\u3035\u3036\u3037\u3038\u3039\u303A\u303B"+
+ "\u303C\u303D\u303E\u303F\u3040\u3041\u3042\u3043"+
+ "\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B"+
+ "\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053"+
+ "\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B"+
+ "\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063"+
+ "\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B"+
+ "\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073"+
+ "\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B"+
+ "\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083"+
+ "\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B"+
+ "\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093"+
+ "\u3094\u3095\u3096\u3097\u3098\u3099\u309A\u309B"+
+ "\u309C\u309D\u309E\u309F\u30A0\u30A1\u30A2\u30A3"+
+ "\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB"+
+ "\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3"+
+ "\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB"+
+ "\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3"+
+ "\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB"+
+ "\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3"+
+ "\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB"+
+ "\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3"+
+ "\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB"+
+ "\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007"+
+ "\u2008\u2009\u200A\u200B\u200C\u200D\u200E\u200F"+
+ "\u2010\u2011\u2012\u2013\u2014\u2015\u2016\u2017"+
+ "\u2018\u2019\u201A\u201B\u201C\u201D\u201E\u201F"+
+ "\u2020\u2021\u2022\u2023\u2024\u2025\u2026\u2027"+
+ "\u2028\u2029\u202A\u202B\uFD9C\u202C\u202D\u202E"+
+ "\u202F\u2030\u2031\u2032\u2033\u2034\u2035\u2036"+
+ "\u2037\u2038\u2039\u203A\u203B\u203C\u203D\u203E"+
+ "\u203F\u2040\u2041\u2042\u2043\u2044\u2045\u2046"+
+ "\u2047\u2048\u2049\u204A\u204B\u204C\u204D\u204E"+
+ "\u204F\u2050\u2051\u2052\u2053\u2054\u2055\u2056"+
+ "\u2057\u2058\u2059\u205A\u205B\u205C\u205D\u205E"+
+ "\u205F\u2060\u2061\u2062\u2063\u2064\u2065\u2066"+
+ "\u2067\u2068\u2069\u206A\u206B\u206C\u206D\u206E"+
+ "\u206F\u2070\u2071\u2072\u2073\u2074\u2075\u2076"+
+ "\u2077\uFD9D\u2078\u2079\u207A\u207B\u207C\u207D"+
+ "\u207E\u207F\u2080\u2081\u2082\u2083\u2084\u2085"+
+ "\u2086\u2087\u2088\u2089\u208A\u208B\u208C\u208D"+
+ "\u208E\u208F\u2090\u2091\u2092\uFD9E\u2093\u2094"+
+ "\u2095\u2096\u2097\u2098\u2099\u209A\u209B\u209C"+
+ "\u209D\u209E\u209F\u20A0\u20A1\u20A2\u20A3\u20A4"+
+ "\u20A5\u20A6\u20A7\u20A8\u20A9\u20AA\u20AB\u20AC"+
+ "\u20AD\u20AE\u20AF\u20B0\u20B1\u20B2\u20B3\u20B4"+
+ "\u20B5\u20B6\u20B7\u20B8\u20B9\u20BA\u20BB\u20BC"+
+ "\u20BD\u20BE\u20BF\u20C0\u20C1\u20C2\u20C3\u20C4"+
+ "\u20C5\u20C6\u20C7\u20C8\u20C9\u20CA\u20CB\u20CC"+
+ "\u20CD\u20CE\u20CF\u20D0\u20D1\u20D2\u20D3\u20D4"+
+ "\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC"+
+ "\u20DD\u20DE\u20DF\u20E0\u20E1\u20E2\u20E3\uFD9F"+
+ "\u20E4\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB"+
+ "\u20EC\uFDA0\u20ED\u20EE\u20EF\u20F0\u20F1\u20F2"+
+ "\u20F3\u20F4\u20F5\u20F6\u20F7\u20F8\u20F9\u20FA"+
+ "\u20FB\u20FC\u20FD\u20FE\u20FF\u2100\u2101\u2102"+
+ "\u2103\u2104\u2105\u2106\uFE40\uFE41\uFE42\uFE43"+
+ "\u2107\uFE44\u2108\uFE45\uFE46\u2109\u210A\u210B"+
+ "\uFE47\u210C\u210D\u210E\u210F\u2110\u2111\uFE48"+
+ "\uFE49\uFE4A\u2112\uFE4B\uFE4C\u2113\u2114\uFE4D"+
+ "\uFE4E\uFE4F\u2115\u2116\u2117\u2118\u2119\u211A"+
+ "\u211B\u211C\u211D\u211E\u211F\u2120\u2121\u2122"+
+ "\u2123\u2124\u2125\u2126\u2127\u2128\u2129\u212A"+
+ "\u212B\u212C\u212D\u212E\u212F\u2130\u2131\u2132"+
+ "\u2133\u2134\u2135\u2136\u2137\u2138\u2139\u213A"+
+ "\u213B\u213C\u213D\u213E\u213F\u2140\u2141\u2142"+
+ "\u2143\u2144\u2145\u2146\u2147\u2148\u2149\u214A"+
+ "\u214B\u214C\u214D\u214E\u214F\u2150\u2151\u2152"+
+ "\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215A"+
+ "\u215B\u215C\u215D\u215E\u215F\u2160\u2161\u2162"+
+ "\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A"+
+ "\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172"+
+ "\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A"+
+ "\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182"+
+ "\u2183\u2184\u2185\u2186\u2187\u2188\u2189\u218A"+
+ "\u218B\u218C\u218D\u218E\u218F\u2190\u2191\u2192"+
+ "\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219A"+
+ "\u219B\u219C\u219D\u219E\u219F\u21A0\u21A1\u21A2"+
+ "\u21A3\u21A4\u21A5\u21A6\u21A7\u21A8\u21A9\u21AA"+
+ "\u21AB\u21AC\u21AD\u21AE\u21AF\u21B0\u21B1\u21B2"+
+ "\u21B3\u21B4\u21B5\u21B6\u21B7\u21B8\u21B9\u21BA"+
+ "\u21BB\u21BC\u21BD\u21BE\u21BF\u21C0\u21C1\u21C2"+
+ "\u21C3\u21C4\u21C5\u21C6\u21C7\u21C8\u21C9\u21CA"+
+ "\u21CB\u21CC\u21CD\u21CE\u21CF\u21D0\u21D1\u21D2"+
+ "\u21D3\u21D4\u21D5\u21D6\u21D7\u21D8\u21D9\u21DA"+
+ "\u21DB\u21DC\u21DD\u21DE\u21DF\u21E0\u21E1\u21E2"+
+ "\u21E3\u21E4\u21E5\u21E6\u21E7\u21E8\u21E9\u21EA";
+
+ private final static String innerEncoderIndex12=
+ "\u21EB\u21EC\u21ED\u21EE\u21EF\u21F0\u21F1\u21F2"+
+ "\u21F3\u21F4\u21F5\u21F6\u21F7\u21F8\u21F9\u21FA"+
+ "\u21FB\u21FC\u21FD\u21FE\u21FF\u2200\u2201\u2202"+
+ "\u2203\u2204\u2205\u2206\u2207\u2208\u2209\u220A"+
+ "\u220B\u220C\u220D\u220E\u220F\u2210\u2211\u2212"+
+ "\u2213\u2214\u2215\u2216\u2217\u2218\u2219\u221A"+
+ "\u221B\u221C\u221D\u221E\u221F\u2220\u2221\u2222"+
+ "\u2223\u2224\u2225\u2226\u2227\u2228\u2229\u222A"+
+ "\u222B\u222C\u222D\u222E\u222F\u2230\u2231\u2232"+
+ "\u2233\u2234\u2235\u2236\u2237\u2238\u2239\u223A"+
+ "\u223B\u223C\u223D\u223E\u223F\u2240\u2241\u2242"+
+ "\u2243\u2244\u2245\u2246\u2247\u2248\u2249\u224A"+
+ "\u224B\u224C\u224D\u224E\u224F\u2250\u2251\u2252"+
+ "\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225A"+
+ "\u225B\u225C\u225D\u225E\u225F\u2260\u2261\u2262"+
+ "\u2263\u2264\u2265\u2266\u2267\u2268\u2269\u226A"+
+ "\u226B\u226C\u226D\u226E\u226F\u2270\u2271\u2272"+
+ "\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227A"+
+ "\u227B\u227C\u227D\u227E\u227F\u2280\u2281\u2282"+
+ "\u2283\u2284\u2285\u2286\u2287\u2288\u2289\u228A"+
+ "\u228B\u228C\u228D\u228E\u228F\u2290\u2291\u2292"+
+ "\u2293\u2294\u2295\u2296\u2297\u2298\u2299\u229A"+
+ "\u229B\u229C\u229D\u229E\u229F\u22A0\u22A1\u22A2"+
+ "\u22A3\u22A4\u22A5\u22A6\u22A7\u22A8\u22A9\u22AA"+
+ "\u22AB\u22AC\u22AD\u22AE\u22AF\u22B0\u22B1\u22B2"+
+ "\u22B3\u22B4\u22B5\u22B6\u22B7\u22B8\u22B9\u22BA"+
+ "\u22BB\u22BC\u22BD\u22BE\u22BF\u22C0\u22C1\u22C2"+
+ "\u22C3\u22C4\u22C5\u22C6\u22C7\u22C8\u22C9\u22CA"+
+ "\u22CB\u22CC\u22CD\u22CE\u22CF\u22D0\u22D1\u22D2"+
+ "\u22D3\u22D4\u22D5\u22D6\u22D7\u22D8\u22D9\u22DA"+
+ "\u22DB\u22DC\u22DD\u22DE\u22DF\u22E0\u22E1\u22E2"+
+ "\u22E3\u22E4\u22E5\u22E6\u22E7\u22E8\u22E9\u22EA"+
+ "\u22EB\u22EC\u22ED\u22EE\u22EF\u22F0\u22F1\u22F2"+
+ "\u22F3\u22F4\u22F5\u22F6\u22F7\u22F8\u22F9\u22FA"+
+ "\u22FB\u22FC\u22FD\u22FE\u22FF\u2300\u2301\u2302"+
+ "\u2303\u2304\u2305\u2306\u2307\u2308\u2309\u230A"+
+ "\u230B\u230C\u230D\u230E\u230F\u2310\u2311\u2312"+
+ "\u2313\u2314\u2315\u2316\u2317\u2318\u2319\u231A"+
+ "\u231B\u231C\u231D\u231E\u231F\u2320\u2321\u2322"+
+ "\u2323\u2324\u2325\u2326\u2327\u2328\u2329\u232A"+
+ "\u232B\u232C\u232D\u232E\u232F\u2330\u2331\u2332"+
+ "\u2333\u2334\u2335\u2336\u2337\u2338\u2339\u233A"+
+ "\u233B\u233C\u233D\u233E\u233F\u2340\u2341\u2342"+
+ "\u2343\u2344\u2345\u2346\u2347\u2348\u2349\u234A"+
+ "\u234B\u234C\u234D\u234E\u234F\u2350\u2351\u2352"+
+ "\u2353\u2354\u2355\u2356\u2357\u2358\u2359\u235A"+
+ "\u235B\u235C\u235D\u235E\u235F\u2360\u2361\u2362"+
+ "\u2363\u2364\u2365\u2366\u2367\u2368\u2369\u236A"+
+ "\u236B\u236C\u236D\u236E\u236F\u2370\u2371\u2372"+
+ "\u2373\u2374\u2375\u2376\u2377\u2378\u2379\u237A"+
+ "\u237B\u237C\u237D\u237E\u237F\u2380\u2381\u2382"+
+ "\u2383\u2384\u2385\u2386\u2387\u2388\u2389\u238A"+
+ "\u238B\u238C\u238D\u238E\u238F\u2390\u2391\u2392"+
+ "\u2393\u2394\u2395\u2396\u2397\u2398\u2399\u239A"+
+ "\u239B\u239C\u239D\u239E\u239F\u23A0\u23A1\u23A2"+
+ "\u23A3\u23A4\u23A5\u23A6\u23A7\u23A8\u23A9\u23AA"+
+ "\u23AB\u23AC\u23AD\u23AE\u23AF\u23B0\u23B1\u23B2"+
+ "\u23B3\u23B4\u23B5\u23B6\u23B7\u23B8\u23B9\u23BA"+
+ "\u23BB\u23BC\u23BD\u23BE\u23BF\u23C0\u23C1\u23C2"+
+ "\u23C3\u23C4\u23C5\u23C6\u23C7\u23C8\u23C9\u23CA"+
+ "\u23CB\u23CC\u23CD\u23CE\u23CF\u23D0\u23D1\u23D2"+
+ "\u23D3\u23D4\u23D5\u23D6\u23D7\u23D8\u23D9\u23DA"+
+ "\u23DB\u23DC\u23DD\u23DE\u23DF\u23E0\u23E1\u23E2"+
+ "\u23E3\u23E4\u23E5\u23E6\u23E7\u23E8\u23E9\u23EA"+
+ "\u23EB\u23EC\u23ED\u23EE\u23EF\u23F0\u23F1\u23F2"+
+ "\u23F3\u23F4\u23F5\u23F6\u23F7\u23F8\u23F9\u23FA"+
+ "\u23FB\u23FC\u23FD\u23FE\u23FF\u2400\u2401\u2402"+
+ "\u2403\u2404\u2405\u2406\u2407\u2408\u2409\u240A"+
+ "\u240B\u240C\u240D\u240E\u240F\u2410\u2411\u2412"+
+ "\u2413\u2414\u2415\u2416\u2417\u2418\u2419\u241A"+
+ "\u241B\u241C\u241D\u241E\u241F\u2420\u2421\u2422"+
+ "\u2423\u2424\u2425\u2426\u2427\u2428\u2429\u242A"+
+ "\u242B\u242C\u242D\u242E\u242F\u2430\u2431\u2432"+
+ "\u2433\u2434\u2435\u2436\u2437\u2438\u2439\u243A"+
+ "\u243B\u243C\u243D\u243E\u243F\u2440\u2441\u2442"+
+ "\u2443\u2444\u2445\u2446\u2447\u2448\u2449\u244A"+
+ "\u244B\u244C\u244D\u244E\u244F\u2450\u2451\u2452"+
+ "\u2453\u2454\u2455\u2456\u2457\u2458\u2459\u245A"+
+ "\u245B\u245C\u245D\u245E\u245F\u2460\u2461\u2462"+
+ "\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246A"+
+ "\u246B\u246C\u246D\u246E\u246F\u2470\u2471\u2472"+
+ "\u2473\u2474\u2475\u2476\u2477\u2478\u2479\u247A"+
+ "\u247B\u247C\u247D\u247E\u247F\u2480\u2481\u2482"+
+ "\u2483\u2484\u2485\u2486\u2487\u2488\u2489\u248A"+
+ "\u248B\u248C\u248D\u248E\u248F\u2490\u2491\u2492"+
+ "\u2493\u2494\u2495\u2496\u2497\u2498\u2499\u249A"+
+ "\u249B\u249C\u249D\u249E\u249F\u24A0\u24A1\u24A2"+
+ "\u24A3\u24A4\u24A5\u24A6\u24A7\u24A8\u24A9\u24AA"+
+ "\u24AB\u24AC\u24AD\u24AE\u24AF\u24B0\u24B1\u24B2"+
+ "\u24B3\u24B4\u24B5\u24B6\u24B7\u24B8\u24B9\u24BA"+
+ "\u24BB\u24BC\u24BD\u24BE\u24BF\u24C0\u24C1\u24C2"+
+ "\u24C3\u24C4\u24C5\u24C6\u24C7\u24C8\u24C9\u24CA"+
+ "\u24CB\u24CC\u24CD\u24CE\u24CF\u24D0\u24D1\u24D2"+
+ "\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9\u24DA"+
+ "\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1\u24E2"+
+ "\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9\u24EA"+
+ "\u24EB\u24EC\u24ED\u24EE\u24EF\u24F0\u24F1\u24F2"+
+ "\u24F3\u24F4\u24F5\u24F6\u24F7\u24F8\u24F9\u24FA"+
+ "\u24FB\u24FC\u24FD\u24FE\u24FF\u2500\u2501\u2502"+
+ "\u2503\u2504\u2505\u2506\u2507\u2508\u2509\u250A"+
+ "\u250B\u250C\u250D\u250E\u250F\u2510\u2511\u2512"+
+ "\u2513\u2514\u2515\u2516\u2517\u2518\u2519\u251A"+
+ "\uA955\uA6F2\u251B\uA6F4\uA6F5\uA6E0\uA6E1\uA6F0"+
+ "\uA6F1\uA6E2\uA6E3\uA6EE\uA6EF\uA6E6\uA6E7\uA6E4"+
+ "\uA6E5\uA6E8\uA6E9\uA6EA\uA6EB\u251C\u251D\u251E"+
+ "\u251F\uA968\uA969\uA96A\uA96B\uA96C\uA96D\uA96E"+
+ "\uA96F\uA970\uA971\u2520\uA972\uA973\uA974\uA975"+
+ "\u2521\uA976\uA977\uA978\uA979\uA97A\uA97B\uA97C"+
+ "\uA97D\uA97E\uA980\uA981\uA982\uA983\uA984\u2522"+
+ "\uA985\uA986\uA987\uA988\u2523\u2524\u2525\u2526"+
+ "\u2527\u2528\u2529\u252A\u252B\u252C\u252D\u252E"+
+ "\u252F\u2530\u2531\u2532\u2533\u2534\u2535\u2536"+
+ "\u2537\u2538\u2539\u253A\u253B\u253C\u253D\u253E"+
+ "\u253F\u2540\u2541\u2542\u2543\u2544\u2545\u2546"+
+ "\u2547\u2548\u2549\u254A\u254B\u254C\u254D\u254E"+
+ "\u254F\u2550\u2551\u2552\u2553\u2554\u2555\u2556"+
+ "\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E"+
+ "\u255F\u2560\u2561\u2562\u2563\u2564\u2565\u2566"+
+ "\u2567\u2568\u2569\u256A\u256B\u256C\u256D\u256E"+
+ "\u256F\u2570\u2571\u2572\u2573\u2574\u2575\u2576"+
+ "\u2577\u2578\u2579\u257A\u257B\u257C\u257D\u257E"+
+ "\u257F\u2580\u2581\u2582\u2583\u2584\u2585\u2586"+
+ "\u2587\u2588\u2589\u258A\u258B\u258C\u258D\u258E"+
+ "\u258F\u2590\u2591\u2592\u2593\u2594\u2595\u2596"+
+ "\u2597\u2598\u2599\u259A\u259B\u259C\u259D\u259E"+
+ "\u259F\u25A0\u25A1\u25A2\u25A3\u25A4\u25A5\u25A6"+
+ "\u25A7\u25A8\u25A9\u25AA\u25AB\u25AC\u25AD\u25AE"+
+ "\u25AF\u25B0\u25B1\u25B2\u25B3\u25B4\u25B5\u25B6"+
+ "\u25B7\uA3A1\uA3A2\uA3A3\uA1E7\uA3A5\uA3A6\uA3A7"+
+ "\uA3A8\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF"+
+ "\uA3B0\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7"+
+ "\uA3B8\uA3B9\uA3BA\uA3BB\uA3BC\uA3BD\uA3BE\uA3BF"+
+ "\uA3C0\uA3C1\uA3C2\uA3C3\uA3C4\uA3C5\uA3C6\uA3C7"+
+ "\uA3C8\uA3C9\uA3CA\uA3CB\uA3CC\uA3CD\uA3CE\uA3CF"+
+ "\uA3D0\uA3D1\uA3D2\uA3D3\uA3D4\uA3D5\uA3D6\uA3D7"+
+ "\uA3D8\uA3D9\uA3DA\uA3DB\uA3DC\uA3DD\uA3DE\uA3DF"+
+ "\uA3E0\uA3E1\uA3E2\uA3E3\uA3E4\uA3E5\uA3E6\uA3E7"+
+ "\uA3E8\uA3E9\uA3EA\uA3EB\uA3EC\uA3ED\uA3EE\uA3EF"+
+ "\uA3F0\uA3F1\uA3F2\uA3F3\uA3F4\uA3F5\uA3F6\uA3F7"+
+ "\uA3F8\uA3F9\uA3FA\uA3FB\uA3FC\uA3FD\uA1AB\u25B8"+
+ "\u25B9\u25BA\u25BB\u25BC\u25BD\u25BE\u25BF\u25C0"+
+ "\u25C1\u25C2\u25C3\u25C4\u25C5\u25C6\u25C7\u25C8"+
+ "\u25C9\u25CA\u25CB\u25CC\u25CD\u25CE\u25CF\u25D0"+
+ "\u25D1\u25D2\u25D3\u25D4\u25D5\u25D6\u25D7\u25D8"+
+ "\u25D9\u25DA\u25DB\u25DC\u25DD\u25DE\u25DF\u25E0"+
+ "\u25E1\u25E2\u25E3\u25E4\u25E5\u25E6\u25E7\u25E8"+
+ "\u25E9\u25EA\u25EB\u25EC\u25ED\u25EE\u25EF\u25F0"+
+ "\u25F1\u25F2\u25F3\u25F4\u25F5\u25F6\u25F7\u25F8"+
+ "\u25F9\u25FA\u25FB\u25FC\u25FD\u25FE\u25FF\u2600"+
+ "\u2601\u2602\u2603\u2604\u2605\u2606\u2607\u2608"+
+ "\u2609\u260A\u260B\u260C\u260D\u260E\u260F\u2610"+
+ "\u2611\u2612\u2613\u2614\u2615\u2616\u2617\u2618"+
+ "\u2619\u261A\u261B\u261C\u261D\u261E\u261F\u2620"+
+ "\u2621\u2622\u2623\u2624\u2625\u2626\u2627\u2628"+
+ "\u2629\u262A\u262B\u262C\u262D\u262E\u262F\u2630"+
+ "\u2631\u2632\u2633\u2634\u2635\u2636\u2637\u2638"+
+ "\uA1E9\uA1EA\uA956\uA3FE\uA957\uA3A4\u2639\u263A"+
+ "\u263B\u263C\u263D\u263E\u263F\u2640\u2641\u2642"+
+ "\u2643\u2644\u2645\u2646\u2647\u2648\u2649\u264A"+
+ "\u264B\u264C\u264D\u264E\u264F\u2650\u2651\u2652";
+
+ private final static short encoderIndex1[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196
+ };
+
+ static String encoderIndex2[] = {
+ innerEncoderIndex0,
+ innerEncoderIndex1,
+ innerEncoderIndex2,
+ innerEncoderIndex3,
+ innerEncoderIndex4,
+ innerEncoderIndex5,
+ innerEncoderIndex6,
+ innerEncoderIndex7,
+ innerEncoderIndex8,
+ innerEncoderIndex9,
+ innerEncoderIndex10,
+ innerEncoderIndex11,
+ innerEncoderIndex12
+ };
+ private static class Decoder extends CharsetDecoder {
+
+ private static final char REPLACE_CHAR = '\uFFFD';
+ private int currentState = GB18030_DOUBLE_BYTE;
+
+ private Decoder(Charset cs) {
+ super(cs, 1.0f, 2.0f);
+ }
+
+ private char getChar(int offset) {
+ int byte1 = (offset >>8) & 0xFF;
+ int byte2 = (offset & 0xFF);
+ int start = 0, end = 0xFF;
+
+ if (((byte1 < 0) || (byte1 > decoderIndex1.length))
+ || ((byte2 < start) || (byte2 > end))) {
+ return REPLACE_CHAR;
+ }
+
+ int n = (decoderIndex1[byte1] & 0xf) * (end - start + 1) + (byte2 - start);
+ return decoderIndex2[decoderIndex1[byte1] >> 4].charAt(n);
+ }
+
+ protected char decodeDouble(int byte1, int byte2) {
+ int start = 0x40, end = 0xFE;
+ if (((byte1 < 0) || (byte1 > index1.length))
+ || ((byte2 < start) || (byte2 > end)))
+ return '\uFFFD';
+
+ int n = (index1[byte1] & 0xf) * (end - start + 1) + (byte2 - start);
+ return index2[index1[byte1] >> 4].charAt(n);
+ }
+
+ protected void implReset() {
+ currentState = GB18030_DOUBLE_BYTE;
+ }
+
+ private CoderResult decodeArrayLoop(ByteBuffer src,
+ CharBuffer dst)
+ {
+ byte[] sa = src.array();
+ int sp = src.arrayOffset() + src.position();
+ int sl = src.arrayOffset() + src.limit();
+ assert (sp <= sl);
+ sp = (sp <= sl ? sp : sl);
+
+ char[] da = dst.array();
+ int dp = dst.arrayOffset() + dst.position();
+ int dl = dst.arrayOffset() + dst.limit();
+ assert (dp <= dl);
+ dp = (dp <= dl ? dp : dl);
+
+ int inputSize = 1;
+
+ try {
+ while (sp < sl) {
+ int byte1 = 0 , byte2 = 0, byte3 = 0, byte4 = 0;
+ // Get the input byte
+ byte1 = sa[sp] & 0xFF;
+ inputSize = 1;
+
+ if ((byte1 & (byte)0x80) == 0){ // US-ASCII range
+ currentState = GB18030_SINGLE_BYTE;
+ }
+ else if (byte1 < 0x81 || byte1 > 0xfe) {
+ return CoderResult.malformedForLength(1);
+ }
+ else { // Either 2 or 4 byte sequence follows
+ if ( sl - sp < 2 )
+ return CoderResult.UNDERFLOW;
+ byte2 = sa[sp + 1] & 0xFF;
+ inputSize = 2;
+
+ if (byte2 < 0x30)
+ return CoderResult.malformedForLength(1);
+ else if (byte2 >= 0x30 && byte2 <= 0x39) {
+ currentState = GB18030_FOUR_BYTE;
+
+ if (sl - sp < 4)
+ return CoderResult.UNDERFLOW;
+
+ byte3 = sa[sp + 2] & 0xFF;
+ if (byte3 < 0x81 || byte3 > 0xfe)
+ return CoderResult.malformedForLength(3);
+
+ byte4 = sa[sp + 3] & 0xFF;
+ inputSize = 4;
+
+ if (byte4 < 0x30 || byte4 > 0x39)
+ return CoderResult.malformedForLength(4);
+ }
+ else if (byte2 == 0x7f || byte2 == 0xff ||
+ (byte2 < 0x40 )) {
+ return CoderResult.malformedForLength(2);
+ }
+ else
+ currentState = GB18030_DOUBLE_BYTE;
+ }
+
+ if (dl - dp < 1)
+ return CoderResult.OVERFLOW;
+ switch (currentState){
+ case GB18030_SINGLE_BYTE:
+ da[dp++] = (char)byte1;
+ break;
+ case GB18030_DOUBLE_BYTE:
+ da[dp++] = decodeDouble(byte1, byte2);
+ break;
+ case GB18030_FOUR_BYTE:
+ int offset = (((byte1 - 0x81) * 10 +
+ (byte2 - 0x30)) * 126 +
+ byte3 - 0x81) * 10 + byte4 - 0x30;
+ int hiByte = (offset >>8) & 0xFF;
+ int lowByte = (offset & 0xFF);
+
+ // Mixture of table lookups and algorithmic calculation
+ // of character values.
+
+ // BMP Ranges
+ if (offset <= 0x4A62)
+ da[dp++] = getChar(offset);
+ else if (offset > 0x4A62 && offset <= 0x82BC)
+ da[dp++] = (char)(offset + 0x5543);
+ else if (offset >= 0x82BD && offset <= 0x830D)
+ da[dp++] = getChar(offset);
+ else if (offset >= 0x830D && offset <= 0x93A8)
+ da[dp++] = (char)(offset + 0x6557);
+ else if (offset >= 0x93A9 && offset <= 0x99FB)
+ da[dp++] = getChar(offset);
+ // Supplemental UCS planes handled via surrogates
+ else if (offset >= 0x2E248 && offset < 0x12E248) {
+ if (offset >= 0x12E248)
+ return CoderResult.malformedForLength(4);
+ offset -= 0x1e248;
+ if ( dl - dp < 2)
+ return CoderResult.OVERFLOW;
+ // emit high + low surrogate
+ da[dp++] = (char)((offset - 0x10000) / 0x400 + 0xD800);
+ da[dp++] = (char)((offset - 0x10000) % 0x400 + 0xDC00);
+ }
+ else
+ return CoderResult.malformedForLength(inputSize);
+ break;
+ }
+ sp += inputSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(sp - src.arrayOffset());
+ dst.position(dp - dst.arrayOffset());
+ }
+ }
+
+ private CoderResult decodeBufferLoop(ByteBuffer src,
+ CharBuffer dst)
+ {
+ int mark = src.position();
+
+ try {
+ while (src.hasRemaining()) {
+ int byte1 = 0, byte2 = 0, byte3 = 0, byte4 = 0;
+ byte1 = src.get() & 0xFF;
+ int inputSize = 1;
+
+ if ((byte1 & (byte)0x80) == 0){ // US-ASCII range
+ currentState = GB18030_SINGLE_BYTE;
+ }
+ else if (byte1 < 0x81 || byte1 > 0xfe) {
+ return CoderResult.malformedForLength(1);
+ }
+ else { // Either 2 or 4 byte sequence follows
+ if ( src.remaining() < 1 )
+ return CoderResult.UNDERFLOW;
+ byte2 = src.get() & 0xFF;
+ inputSize = 2;
+
+ if (byte2 < 0x30)
+ return CoderResult.malformedForLength(1);
+ else if (byte2 >= 0x30 && byte2 <= 0x39) {
+ currentState = GB18030_FOUR_BYTE;
+
+ if (src.remaining() < 2)
+ return CoderResult.UNDERFLOW;
+
+ byte3 = src.get() & 0xFF;
+ if (byte3 < 0x81 || byte3 > 0xfe)
+ return CoderResult.malformedForLength(3);
+
+ byte4 = src.get() & 0xFF;
+ inputSize = 4;
+
+ if (byte4 < 0x30 || byte4 > 0x39)
+ return CoderResult.malformedForLength(4);
+ }
+ else if (byte2 == 0x7f || byte2 == 0xff ||
+ (byte2 < 0x40 )) {
+ return CoderResult.malformedForLength(2);
+ }
+ else
+ currentState = GB18030_DOUBLE_BYTE;
+ }
+
+ if (dst.remaining() < 1)
+ return CoderResult.OVERFLOW;
+ switch (currentState){
+ case GB18030_SINGLE_BYTE:
+ dst.put((char)byte1);
+ break;
+ case GB18030_DOUBLE_BYTE:
+ dst.put(decodeDouble(byte1, byte2));
+ break;
+ case GB18030_FOUR_BYTE:
+ int offset = (((byte1 - 0x81) * 10 +
+ (byte2 - 0x30)) * 126 +
+ byte3 - 0x81) * 10 + byte4 - 0x30;
+ int hiByte = (offset >>8) & 0xFF;
+ int lowByte = (offset & 0xFF);
+
+ // Mixture of table lookups and algorithmic calculation
+ // of character values.
+
+ // BMP Ranges
+ if (offset <= 0x4A62)
+ dst.put(getChar(offset));
+ else if (offset > 0x4A62 && offset <= 0x82BC)
+ dst.put((char)(offset + 0x5543));
+ else if (offset >= 0x82BD && offset <= 0x830D)
+ dst.put(getChar(offset));
+ else if (offset >= 0x830D && offset <= 0x93A8)
+ dst.put((char)(offset + 0x6557));
+ else if (offset >= 0x93A9 && offset <= 0x99F9)
+ dst.put(getChar(offset));
+ // Supplemental UCS planes handled via surrogates
+ else if (offset >= 0x2E248 && offset < 0x12E248) {
+ if (offset >= 0x12E248)
+ return CoderResult.malformedForLength(4);
+ offset -= 0x1e248;
+ if ( dst.remaining() < 2)
+ return CoderResult.OVERFLOW;
+ // emit high + low surrogate
+ dst.put((char)((offset - 0x10000) / 0x400 + 0xD800));
+ dst.put((char)((offset - 0x10000) % 0x400 + 0xDC00));
+ } else {
+ return CoderResult.malformedForLength(inputSize);
+ }
+ }
+ mark += inputSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(mark);
+ }
+ }
+
+
+ protected CoderResult decodeLoop(ByteBuffer src,
+ CharBuffer dst)
+ {
+ if (src.hasArray() && dst.hasArray())
+ return decodeArrayLoop(src, dst);
+ else
+ return decodeBufferLoop(src, dst);
+ }
+ }
+
+ private static class Encoder extends CharsetEncoder {
+
+ private int currentState = GB18030_DOUBLE_BYTE;
+
+ private Encoder(Charset cs) {
+ super(cs, 4.0f, 4.0f); // max of 4 bytes per char
+ }
+
+ public boolean canEncode(char c) {
+ return ! Character.isSurrogate(c);
+ }
+
+ private final Surrogate.Parser sgp = new Surrogate.Parser();
+
+ private int getGB18030(short[] outerIndex, String[] innerEncoderIndex,
+ char ch) {
+ int offset = outerIndex[((ch & 0xff00) >> 8 )] << 8;
+ return innerEncoderIndex[offset >> 12].charAt((offset & 0xfff) +
+ (ch & 0xff));
+ }
+
+ protected void implReset() {
+ currentState = GB18030_DOUBLE_BYTE;
+ }
+
+ private CoderResult encodeArrayLoop(CharBuffer src,
+ ByteBuffer dst)
+ {
+ char[] sa = src.array();
+ int sp = src.arrayOffset() + src.position();
+ int sl = src.arrayOffset() + src.limit();
+ assert (sp <= sl);
+ sp = (sp <= sl ? sp : sl);
+ byte[] da = dst.array();
+ int dp = dst.arrayOffset() + dst.position();
+ int dl = dst.arrayOffset() + dst.limit();
+ assert (dp <= dl);
+ dp = (dp <= dl ? dp : dl);
+
+ int condensedKey = 0; // expands to a four byte sequence
+ int hiByte = 0, loByte = 0;
+ currentState = GB18030_DOUBLE_BYTE;
+
+ try {
+ while (sp < sl) {
+ int inputSize = 1;
+ char c = sa[sp];
+
+ if (Character.isSurrogate(c)) {
+ if ((condensedKey=sgp.parse(c, sa, sp, sl)) < 0)
+ return sgp.error();
+ // Character.toCodePoint looks like
+ // (((high & 0x3ff) << 10) | (low & 0x3ff)) + 0x10000;
+ // so we add (0x2e248 - 0x10000) to get the "key".
+ condensedKey += 0x1E248;
+ currentState = GB18030_FOUR_BYTE;
+ inputSize = sgp.increment();
+ }
+ else if (c >= 0x0000 && c <= 0x007F) {
+ currentState = GB18030_SINGLE_BYTE;
+ }
+ else if (c <= 0xA4C6 || c >= 0xE000) {
+ int outByteVal = getGB18030(encoderIndex1,
+ encoderIndex2,
+ c);
+ if (outByteVal == 0xFFFD )
+ return CoderResult.unmappableForLength(1);
+
+ hiByte = (outByteVal & 0xFF00) >> 8;
+ loByte = (outByteVal & 0xFF);
+
+ condensedKey = (hiByte - 0x20) * 256 + loByte;
+
+ if (c >= 0xE000 && c < 0xF900)
+ condensedKey += 0x82BD;
+ else if (c >= 0xF900)
+ condensedKey += 0x93A9;
+
+ if (hiByte > 0x80)
+ currentState = GB18030_DOUBLE_BYTE;
+ else
+ currentState = GB18030_FOUR_BYTE;
+ }
+ else if (c >= 0xA4C7 && c <= 0xD7FF) {
+ condensedKey = c - 0x5543;
+ currentState = GB18030_FOUR_BYTE;
+ }
+
+ switch(currentState) {
+ case GB18030_SINGLE_BYTE:
+ if (dl - dp < 1)
+ return CoderResult.OVERFLOW;
+ da[dp++] = (byte)c;
+ break;
+
+ case GB18030_DOUBLE_BYTE:
+ if (dl - dp < 2)
+ return CoderResult.OVERFLOW;
+ da[dp++] = (byte)hiByte;
+ da[dp++] = (byte)loByte;
+ break;
+
+ case GB18030_FOUR_BYTE: // Four Byte encoding
+ byte b1, b2, b3, b4;
+
+ if (dl - dp < 4)
+ return CoderResult.OVERFLOW;
+ // Decompose the condensed key into its 4 byte equivalent
+ b4 = (byte)((condensedKey % 10) + 0x30);
+ condensedKey /= 10;
+ b3 = (byte)((condensedKey % 126) + 0x81);
+ condensedKey /= 126;
+ b2 = (byte)((condensedKey % 10) + 0x30);
+ b1 = (byte)((condensedKey / 10) + 0x81);
+ da[dp++] = b1;
+ da[dp++] = b2;
+ da[dp++] = b3;
+ da[dp++] = b4;
+ break;
+ default:
+ assert(false);
+ }
+ sp += inputSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(sp - src.arrayOffset());
+ dst.position(dp - dst.arrayOffset());
+ }
+ }
+
+ private CoderResult encodeBufferLoop(CharBuffer src,
+ ByteBuffer dst)
+ {
+ int condensedKey = 0;
+ int hiByte = 0, loByte = 0;
+ currentState = GB18030_DOUBLE_BYTE;
+ int mark = src.position();
+ try {
+ while (src.hasRemaining()) {
+ char c = src.get();
+ int inputSize = 1;
+ if (Character.isSurrogate(c)) {
+ if ((condensedKey = sgp.parse(c, src))<0)
+ return sgp.error();
+ condensedKey += 0x1e248;
+ currentState = GB18030_FOUR_BYTE;
+ inputSize = 2;
+ }
+ else if (c >= 0x0000 && c <= 0x007F) {
+ currentState = GB18030_SINGLE_BYTE;
+ }
+ else if (c <= 0xA4C6 || c >= 0xE000) {
+ int outByteVal = getGB18030(encoderIndex1,
+ encoderIndex2,
+ c);
+ if (outByteVal == 0xFFFD )
+ return CoderResult.unmappableForLength(1);
+
+ hiByte = (outByteVal & 0xFF00) >> 8;
+ loByte = (outByteVal & 0xFF);
+
+ condensedKey = (hiByte - 0x20) * 256 + loByte;
+
+ if (c >= 0xE000 && c < 0xF900)
+ condensedKey += 0x82BD;
+ else if (c >= 0xF900)
+ condensedKey += 0x93A9;
+
+ if (hiByte > 0x80)
+ currentState = GB18030_DOUBLE_BYTE;
+ else
+ currentState = GB18030_FOUR_BYTE;
+ }
+ else if (c >= 0xA4C7 && c <= 0xD7FF) {
+ condensedKey = c - 0x5543;
+ currentState = GB18030_FOUR_BYTE;
+ }
+
+ if (currentState == GB18030_SINGLE_BYTE) {
+ if (dst.remaining() < 1)
+ return CoderResult.OVERFLOW;
+ dst.put((byte)c);
+ } else if (currentState == GB18030_DOUBLE_BYTE) {
+ if (dst.remaining() < 2)
+ return CoderResult.OVERFLOW;
+ dst.put((byte)hiByte);
+ dst.put((byte)loByte);
+ }
+ else { // Four Byte encoding
+ byte b1, b2, b3, b4;
+
+ if (dst.remaining() < 4)
+ return CoderResult.OVERFLOW;
+ // Decompose the condensed key into its 4 byte equivalent
+ b4 = (byte)((condensedKey % 10) + 0x30);
+ condensedKey /= 10;
+ b3 = (byte)((condensedKey % 126) + 0x81);
+ condensedKey /= 126;
+ b2 = (byte)((condensedKey % 10) + 0x30);
+ b1 = (byte)((condensedKey / 10) + 0x81);
+ dst.put(b1);
+ dst.put(b2);
+ dst.put(b3);
+ dst.put(b4);
+ }
+ mark += inputSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(mark);
+ }
+ }
+ protected CoderResult encodeLoop(CharBuffer src,
+ ByteBuffer dst)
+ {
+ if (src.hasArray() && dst.hasArray())
+ return encodeArrayLoop(src, dst);
+ else
+ return encodeBufferLoop(src, dst);
+ }
+ }
+}
--- a/jdk/src/jdk.crypto.pkcs11/share/classes/sun/security/pkcs11/wrapper/CK_CREATEMUTEX.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/src/jdk.crypto.pkcs11/share/classes/sun/security/pkcs11/wrapper/CK_CREATEMUTEX.java Mon Aug 03 16:33:06 2015 -0700
@@ -50,17 +50,16 @@
/**
- * interface CK_CREATEMUTEX.<p>
+ * interface CK_CREATEMUTEX.
*
- * @author Karl Scheibelhofer <Karl.Scheibelhofer@iaik.at>
- * @author Martin Schlaeffer <schlaeff@sbox.tugraz.at>
+ * @author Karl Scheibelhofer <Karl.Scheibelhofer@iaik.at>
+ * @author Martin Schlaeffer <schlaeff@sbox.tugraz.at>
*/
public interface CK_CREATEMUTEX {
/**
* Method CK_CREATEMUTEX
*
- * @param ppMutex
* @return The mutex (lock) object.
* @exception PKCS11Exception
*/
--- a/jdk/test/TEST.groups Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/TEST.groups Mon Aug 03 16:33:06 2015 -0700
@@ -43,7 +43,8 @@
tier3 = \
:jdk_rmi \
- :jdk_beans
+ :jdk_beans \
+ :jdk_imageio
###############################################################################
#
--- a/jdk/test/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java Mon Aug 03 16:33:06 2015 -0700
@@ -63,13 +63,18 @@
createJavaProcessBuilder(
"-XX:+UseConcMarkSweepGC", // this will cause UseParNewGC to be FLAG_SET_ERGO
"-XX:+PrintGCDetails",
+ "-XX:+UseCerealGC", // Should be ignored.
"-XX:Flags=" + flagsFile.getAbsolutePath(),
"-cp", System.getProperty("test.class.path"),
"CheckOrigin",
"-runtests");
Map<String, String> env = pb.environment();
- env.put("_JAVA_OPTIONS", "-XX:+PrintOopAddress");
+ // "UseCMSGC" should be ignored.
+ env.put("_JAVA_OPTIONS", "-XX:+TraceExceptions -XX:+UseCMSGC");
+ // "UseGOneGC" should be ignored.
+ env.put("JAVA_TOOL_OPTIONS", "-XX:+IgnoreUnrecognizedVMOptions "
+ + "-XX:+PrintVMOptions -XX:+UseGOneGC");
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
@@ -94,7 +99,10 @@
// Set on the command line
checkOrigin("PrintGCDetails", Origin.VM_CREATION);
// Set in _JAVA_OPTIONS
- checkOrigin("PrintOopAddress", Origin.ENVIRON_VAR);
+ checkOrigin("TraceExceptions", Origin.ENVIRON_VAR);
+ // Set in JAVA_TOOL_OPTIONS
+ checkOrigin("IgnoreUnrecognizedVMOptions", Origin.ENVIRON_VAR);
+ checkOrigin("PrintVMOptions", Origin.ENVIRON_VAR);
// Set in -XX:Flags file
checkOrigin("PrintSafepointStatistics", Origin.CONFIG_FILE);
// Set through j.l.m
--- a/jdk/test/java/nio/Buffer/Basic.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/java/nio/Buffer/Basic.java Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
* @summary Unit test for buffers
* @bug 4413135 4414911 4416536 4416562 4418782 4471053 4472779 4490253 4523725
* 4526177 4463011 4660660 4661219 4663521 4782970 4804304 4938424 6231529
- * 6221101 6234263 6535542 6591971 6593946 6795561 7190219 7199551
+ * 6221101 6234263 6535542 6591971 6593946 6795561 7190219 7199551 8065556
* @author Mark Reinhold
*/
--- a/jdk/test/java/nio/file/FileStore/Basic.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/java/nio/file/FileStore/Basic.java Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -116,9 +116,15 @@
store.type());
// check space attributes are accessible
- store.getTotalSpace();
- store.getUnallocatedSpace();
- store.getUsableSpace();
+ try {
+ store.getTotalSpace();
+ store.getUnallocatedSpace();
+ store.getUsableSpace();
+ } catch (NoSuchFileException nsfe) {
+ // ignore exception as the store could have been
+ // deleted since the iterator was instantiated
+ System.err.format("%s was not found\n", store);
+ }
// two distinct FileStores should not be equal
assertTrue(!store.equals(prev));
--- a/jdk/test/java/security/KeyStore/EntryMethods.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/java/security/KeyStore/EntryMethods.java Mon Aug 03 16:33:06 2015 -0700
@@ -23,7 +23,7 @@
/*
* @test 1.5, 03/06/24
- * @bug 4850376
+ * @bug 4850376 8130850
* @summary Provide generic storage KeyStore storage facilities
*/
@@ -50,6 +50,20 @@
}
}
+ public static class MyLoadStoreParameter
+ implements KeyStore.LoadStoreParameter {
+
+ private KeyStore.ProtectionParameter protection;
+
+ MyLoadStoreParameter(KeyStore.ProtectionParameter protection) {
+ this.protection = protection;
+ }
+
+ public KeyStore.ProtectionParameter getProtectionParameter() {
+ return protection;
+ }
+ }
+
public static class FooEntry implements KeyStore.Entry { }
public EntryMethods() throws Exception {
@@ -103,9 +117,17 @@
throw new SecurityException("[Pre1.5] test " + tNum + " failed");
} catch (UnsupportedOperationException uoe) {
System.out.println("[Pre1.5] test " + tNum++ + " passed");
+ } catch (NoSuchAlgorithmException nsae) {
+ System.out.println("[Pre1.5] test " + tNum++ + " passed");
}
+ // TEST load custom param
+ ks.load(new MyLoadStoreParameter(
+ new KeyStore.PasswordProtection(password)));
+ System.out.println("[Pre1.5] test " + tNum++ + " passed");
+
+
// TEST store random param
ks.load(pre15fis, password);
--- a/jdk/test/java/util/Currency/tablea1.txt Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/java/util/Currency/tablea1.txt Mon Aug 03 16:33:06 2015 -0700
@@ -1,12 +1,12 @@
#
#
-# Amendments up until ISO 4217 AMENDMENT NUMBER 159
-# (As of 15 August 2014)
+# Amendments up until ISO 4217 AMENDMENT NUMBER 160
+# (As of 19 June 2015)
#
# Version
FILEVERSION=2
-DATAVERSION=159
+DATAVERSION=160
# ISO 4217 currency data
AF AFN 971 2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/ResourceBundle/UTF8Properties/CodePointTest.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 8027607
+ * @summary Test UTF-8 based properties files can be loaded successfully,
+ * @run main CodePointTest
+ * @run main/othervm -Djava.util.PropertyResourceBundle.encoding=ISO-8859-1 CodePointTest
+ * @run main/othervm -Djava.util.PropertyResourceBundle.encoding=UTF-8 CodePointTest
+ */
+
+import java.io.*;
+import java.nio.charset.*;
+import java.nio.file.*;
+import java.util.*;
+import static java.util.ResourceBundle.Control;
+import java.util.stream.*;
+
+/*
+ * Dumps every legal characters in ISO-8859-1/UTF-8 into
+ * a <CharSet>.properties file. Each entry has a form of
+ * "keyXXXX=c", where "XXXX" is a code point (variable length)
+ * and "c" is the character encoded in the passed character set.
+ * Then, load it with ResourceBundle.Control.newBundle() and compare both
+ * contents. This confirms the following two functions:
+ * - For UTF-8.properties, UTF-8 code points are loaded correctly
+ * - For ISO-8859-1.properties, UTF-8->ISO-8859-1 fallback works
+ *
+ * Does the same test with "java.util.PropertyResourceBundle.encoding"
+ * to "ISO-8859-1", and confirms only UTF-8 properties loading fails.
+ */
+public class CodePointTest {
+ static final Charset[] props = {StandardCharsets.ISO_8859_1,
+ StandardCharsets.UTF_8,
+ StandardCharsets.US_ASCII};
+ static final String encoding =
+ System.getProperty("java.util.PropertyResourceBundle.encoding", "");
+
+ public static void main(String[] args) {
+ for (Charset cs : props) {
+ try {
+ checkProps(cs,
+ cs == StandardCharsets.UTF_8 &&
+ encoding.equals("ISO-8859-1"));
+
+ if (cs == StandardCharsets.ISO_8859_1 &&
+ encoding.equals("UTF-8")) {
+ // should not happen
+ throw new RuntimeException("Reading ISO-8859-1 properties in "+
+ "strict UTF-8 encoding should throw an exception");
+ }
+ } catch (IOException e) {
+ if ((e instanceof MalformedInputException ||
+ e instanceof UnmappableCharacterException) &&
+ cs == StandardCharsets.ISO_8859_1 &&
+ encoding.equals("UTF-8")) {
+ // Expected exception is correctly detected.
+ } else {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ }
+
+ static void checkProps(Charset cs, boolean shouldFail) throws IOException {
+ int start = Character.MIN_CODE_POINT;
+ int end= 0;
+
+ switch (cs.name()) {
+ case "ISO-8859-1":
+ end = 0xff;
+ break;
+ case "UTF-8":
+ end = Character.MAX_CODE_POINT;
+ break;
+ case "US-ASCII":
+ end = 0x7f;
+ break;
+ default:
+ assert false;
+ }
+
+ Properties p = new Properties();
+ String outputName = cs.name() + ".properties";
+
+ // Forget previous test artifacts
+ ResourceBundle.clearCache();
+
+ IntStream.range(start, end+1).forEach(c ->
+ {
+ if (Character.isDefined(c) &&
+ (Character.isSupplementaryCodePoint(c) ||
+ !Character.isSurrogate((char)c))) {
+ p.setProperty("key"+Integer.toHexString(c),
+ Character.isSupplementaryCodePoint(c) ?
+ String.valueOf(Character.toChars(c)) :
+ Character.toString((char)c));
+ }
+ }
+ );
+
+ try (BufferedWriter bw = Files.newBufferedWriter(
+ FileSystems.getDefault().getPath(System.getProperty("test.classes", "."),
+ outputName), cs)) {
+ p.store(bw, null);
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+
+ // try loading it
+ Control c = Control.getControl(Control.FORMAT_PROPERTIES);
+ ResourceBundle rb;
+ try {
+ rb = c.newBundle(cs.name(), Locale.ROOT, "java.properties",
+ CodePointTest.class.getClassLoader(), false);
+ } catch (IllegalAccessException |
+ InstantiationException ex) {
+ throw new RuntimeException(ex);
+ }
+ Properties result = new Properties();
+ rb.keySet().stream().forEach((key) -> {
+ result.setProperty(key, rb.getString(key));
+ });
+
+ if (!p.equals(result) && !shouldFail) {
+ System.out.println("Charset: "+cs);
+ rb.keySet().stream().sorted().forEach((key) -> {
+ if (!p.getProperty(key).equals(result.getProperty(key))) {
+ System.out.println(key+": file: "+p.getProperty(key)+", RB: "+result.getProperty(key));
+ }
+ });
+ throw new RuntimeException("not equal!");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/ResourceBundle/UTF8Properties/IllegalSequenceTest.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 8027607
+ * @summary Test whether illegal UTF-8 sequences are handled correctly.
+ * @run main/othervm -Djava.util.PropertyResourceBundle.encoding=UTF-8 IllegalSequenceTest
+ */
+
+import java.io.*;
+import java.nio.charset.*;
+import java.util.*;
+
+public class IllegalSequenceTest {
+ static final byte[][] illegalSequences = {
+ {(byte)0xc0, (byte)0xaf}, // non-shortest UTF-8
+ {(byte)0xc2, (byte)0xe0}, // consecutive leading bytes
+ {(byte)0xc2, (byte)0x80, (byte)0x80}, // two byte leading + 2 trailing
+ {(byte)0xe0, (byte)0x80}, // three byte leading + 1 trailing
+ {(byte)0xf4, (byte)0x90, (byte)0x80, (byte)0x80}, // 0x110000 (over U+10FFFF)
+ };
+
+ public static void main(String[] args) throws IOException {
+ for (byte[] illegalSec: illegalSequences) {
+ try (InputStream is = new ByteArrayInputStream(illegalSec)) {
+ ResourceBundle rb = new PropertyResourceBundle(is);
+ rb.getString("key");
+ } catch (MalformedInputException |
+ UnmappableCharacterException e) {
+ // success
+ continue;
+ }
+ throw new RuntimeException("Excepted exception was not thrown.");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/Scanner/ScanTest.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,1502 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 4313885 4926319 4927634 5032610 5032622 5049968 5059533 6223711 6277261 6269946 6288823
+ * @summary Basic tests of java.util.Scanner methods
+ * @key randomness
+ * @run main/othervm ScanTest
+ */
+
+import java.util.*;
+import java.text.*;
+import java.io.*;
+import java.nio.*;
+import java.util.regex.*;
+import java.math.*;
+
+public class ScanTest {
+
+ private static boolean failure = false;
+ private static int failCount = 0;
+ private static int NUM_SOURCE_TYPES = 2;
+
+ public static void main(String[] args) throws Exception {
+ Locale reservedLocale = Locale.getDefault();
+ String lang = reservedLocale.getLanguage();
+ try {
+ if (!"en".equals(lang) &&
+ !"zh".equals(lang) &&
+ !"ko".equals(lang) &&
+ !"ja".equals(lang)) {
+ //Before we have resource to improve the test to be ready for
+ //arbitrary locale, force the default locale to be "English"
+ //for now.
+ Locale.setDefault(Locale.ENGLISH);
+ }
+ skipTest();
+ findInLineTest();
+ findWithinHorizonTest();
+ findInEmptyLineTest();
+ removeTest();
+ fromFileTest();
+ ioExceptionTest();
+ matchTest();
+ delimiterTest();
+ useLocaleTest();
+ closeTest();
+ cacheTest();
+ cacheTest2();
+ nonASCIITest();
+ resetTest();
+
+ for (int j=0; j<NUM_SOURCE_TYPES; j++) {
+ hasNextTest(j);
+ nextTest(j);
+ hasNextPatternTest(j);
+ nextPatternTest(j);
+ booleanTest(j);
+ byteTest(j);
+ shortTest(j);
+ intTest(j);
+ longTest(j);
+ floatTest(j);
+ doubleTest(j);
+ integerPatternTest(j);
+ floatPatternTest(j);
+ bigIntegerPatternTest(j);
+ bigDecimalPatternTest(j);
+ hasNextLineTest(j);
+ nextLineTest(j);
+ singleDelimTest(j);
+ }
+
+ // Examples
+ //example1();
+ //example2();
+ //example3();
+
+ // Usage cases
+ useCase1();
+ useCase2();
+ useCase3();
+ useCase4();
+ useCase5();
+
+ if (failure)
+ throw new RuntimeException("Failure in the scanning tests.");
+ else
+ System.err.println("OKAY: All tests passed.");
+ } finally {
+ // restore the default locale
+ Locale.setDefault(reservedLocale);
+ }
+ }
+
+ public static void useCase1() throws Exception {
+ File f = new File(System.getProperty("test.src", "."), "input.txt");
+ Scanner sc = new Scanner(f);
+ sc.findWithinHorizon("usage case 1", 0);
+ String[] names = new String[4];
+ for (int i=0; i<4; i++) {
+ while(sc.hasNextFloat())
+ sc.nextFloat();
+ names[i] = sc.next();
+ sc.nextLine();
+ }
+ if (!names[0].equals("Frank"))
+ failCount++;
+ if (!names[1].equals("Joe"))
+ failCount++;
+ if (!names[2].equals("Mary"))
+ failCount++;
+ if (!names[3].equals("Michelle"))
+ failCount++;
+ sc.close();
+ report("Use case 1");
+ }
+
+ public static void useCase2() throws Exception {
+ File f = new File(System.getProperty("test.src", "."), "input.txt");
+ Scanner sc = new Scanner(f).useDelimiter("-");
+ String testDataTag = sc.findWithinHorizon("usage case 2\n", 0);
+ if (!testDataTag.equals("usage case 2\n"))
+ failCount++;
+ if (!sc.next().equals("cat"))
+ failCount++;
+ if (sc.nextInt() != 9)
+ failCount++;
+ if (!sc.next().equals("dog"))
+ failCount++;
+ if (sc.nextInt() != 6)
+ failCount++;
+ if (!sc.next().equals("pig"))
+ failCount++;
+ if (sc.nextInt() != 2)
+ failCount++;
+ if (!sc.next().equals(""))
+ failCount++;
+ if (sc.nextInt() != 5)
+ failCount++;
+ sc.close();
+ report("Use case 2");
+ }
+
+ public static void useCase3() throws Exception {
+ File f = new File(System.getProperty("test.src", "."), "input.txt");
+ Scanner sc = new Scanner(f);
+ String testDataTag = sc.findWithinHorizon("usage case 3\n", 0);
+ if (!testDataTag.equals("usage case 3\n"))
+ failCount++;
+ Pattern tagPattern = Pattern.compile("@[a-z]+");
+ Pattern endPattern = Pattern.compile("\\*\\/");
+ String tag;
+ String end = sc.findInLine(endPattern);
+
+ while (end == null) {
+ if ((tag = sc.findInLine(tagPattern)) != null) {
+ String text = sc.nextLine();
+ text = text.substring(0, text.length() - 1);
+ //System.out.println(text);
+ } else {
+ sc.nextLine();
+ }
+ end = sc.findInLine(endPattern);
+ }
+ report("Use case 3");
+ }
+
+ public static void useCase4() throws Exception {
+ File f = new File(System.getProperty("test.src", "."), "input.txt");
+ Scanner sc = new Scanner(f);
+ String testDataTag = sc.findWithinHorizon("usage case 4\n", 0);
+ if (!testDataTag.equals("usage case 4\n"))
+ failCount++;
+
+ // Read some text parts of four hrefs
+ String[] expected = { "Diffs", "Sdiffs", "Old", "New" };
+ for (int i=0; i<4; i++) {
+ sc.findWithinHorizon("<a href", 1000);
+ sc.useDelimiter("[<>\n]+");
+ sc.next();
+ String textOfRef = sc.next();
+ if (!textOfRef.equals(expected[i]))
+ failCount++;
+ }
+ // Read some html tags using < and > as delimiters
+ if (!sc.next().equals("/a"))
+ failCount++;
+ if (!sc.next().equals("b"))
+ failCount++;
+
+ // Scan some html tags using skip and next
+ Pattern nonTagStart = Pattern.compile("[^<]+");
+ Pattern tag = Pattern.compile("<[^>]+?>");
+ Pattern spotAfterTag = Pattern.compile("(?<=>)");
+ String[] expected2 = { "</b>", "<p>", "<ul>", "<li>" };
+ sc.useDelimiter(spotAfterTag);
+ int tagsFound = 0;
+ while(tagsFound < 4) {
+ if (!sc.hasNext(tag)) {
+ // skip text between tags
+ sc.skip(nonTagStart);
+ }
+ String tagContents = sc.next(tag);
+ if (!tagContents.equals(expected2[tagsFound]))
+ failCount++;
+ tagsFound++;
+ }
+
+ report("Use case 4");
+ }
+
+ public static void useCase5() throws Exception {
+ File f = new File(System.getProperty("test.src", "."), "input.txt");
+ Scanner sc = new Scanner(f);
+ String testDataTag = sc.findWithinHorizon("usage case 5\n", 0);
+ if (!testDataTag.equals("usage case 5\n"))
+ failCount++;
+
+ sc.findWithinHorizon("Share Definitions", 0);
+ sc.nextLine();
+ sc.next("\\[([a-z]+)\\]");
+ String shareName = sc.match().group(1);
+ if (!shareName.equals("homes"))
+ failCount++;
+
+ String[] keys = { "comment", "browseable", "writable", "valid users" };
+ String[] vals = { "Home Directories", "no", "yes", "%S" };
+ for (int i=0; i<4; i++) {
+ sc.useDelimiter("=");
+ String key = sc.next().trim();
+ if (!key.equals(keys[i]))
+ failCount++;
+ sc.skip("[ =]+");
+ sc.useDelimiter("\n");
+ String value = sc.next();
+ if (!value.equals(vals[i]))
+ failCount++;
+ sc.nextLine();
+ }
+
+ report("Use case 5");
+ }
+
+ public static void nonASCIITest() throws Exception {
+ String yourBasicTibetanNumberZero = "\u0f20";
+ String yourBasicTibetanFloatingNumber = "\u0f23.\u0f27";
+ String weirdMixtureOfTibetanAndASCII = "\u0f23.7";
+ String weirdMixtureOfASCIIAndTibetan = "3.\u0f27";
+ Scanner sc = new Scanner(yourBasicTibetanNumberZero);
+ int i = sc.nextInt();
+ if (i != 0)
+ failCount++;
+ sc = new Scanner(yourBasicTibetanFloatingNumber);
+ float f = sc.nextFloat();
+ if (f != Float.parseFloat("3.7"))
+ failCount++;
+ sc = new Scanner(weirdMixtureOfTibetanAndASCII);
+ f = sc.nextFloat();
+ if (f != Float.parseFloat("3.7"))
+ failCount++;
+ sc = new Scanner(weirdMixtureOfASCIIAndTibetan);
+ f = sc.nextFloat();
+ if (f != Float.parseFloat("3.7"))
+ failCount++;
+ report("Scanning non ASCII digits");
+ }
+
+ public static void findWithinHorizonTest() throws Exception {
+ // Test with a string source
+ Scanner sc = new Scanner("dog cat cat dog cat");
+ try {
+ sc.findWithinHorizon("dog", -1);
+ failCount++;
+ } catch (IllegalArgumentException iae) {
+ // Correct result
+ }
+ if (sc.findWithinHorizon("dog", 2) != null)
+ failCount++;
+ if (!sc.findWithinHorizon("dog", 3).equals("dog"))
+ failCount++;
+ if (sc.findWithinHorizon("cat", 4) != null)
+ failCount++;
+ if (!sc.findWithinHorizon("cat", 5).equals("cat"))
+ failCount++;
+ if (sc.findWithinHorizon("cat", 7) != null)
+ failCount++;
+ if (sc.findWithinHorizon("dog", 7) != null)
+ failCount++;
+ if (!sc.findWithinHorizon("cat", 0).equals("cat"))
+ failCount++;
+ if (!sc.findWithinHorizon("dog", 0).equals("dog"))
+ failCount++;
+ if (!sc.findWithinHorizon("cat", 0).equals("cat"))
+ failCount++;
+
+ // Test with a stream source
+ StutteringInputStream stutter = new StutteringInputStream();
+ for (int index=0; index<stutter.length(); index++) {
+ //System.out.println("index is now "+index);
+ sc = new Scanner(stutter);
+ String word = stutter.wordInIndex(index);
+ if (word != null) {
+ String result = sc.findWithinHorizon(word, index);
+ if ((result == null) || (!result.equals(word)))
+ failCount++;
+ }
+ stutter.reset();
+ word = stutter.wordBeyondIndex(index);
+ sc = new Scanner(stutter);
+ String result = sc.findWithinHorizon(word, index);
+ if ((result != null) && (index > 0))
+ failCount++;
+ stutter.reset();
+ }
+
+ // We must loop to let StutteringInputStream do its magic
+ for (int j=0; j<10; j++) {
+ // An anchor at the end of stream should work
+ stutter.reset();
+ sc = new Scanner(stutter);
+ String result = sc.findWithinHorizon("phant$", 0);
+ if (!result.equals("phant"))
+ failCount++;
+ stutter.reset();
+ sc = new Scanner(stutter);
+ result = sc.findWithinHorizon("phant$", 54);
+ if (!result.equals("phant"))
+ failCount++;
+ // An anchor at the end of horizon should not
+ stutter.reset();
+ sc = new Scanner(stutter);
+ result = sc.findWithinHorizon("brummer$", 7);
+ if (result != null)
+ failCount++;
+ // An anchor at start should work
+ stutter.reset();
+ sc = new Scanner(stutter);
+ result = sc.findWithinHorizon("^brummer", 0);
+ if (!result.equals("brummer"))
+ failCount++;
+ }
+
+ report("Find to horizon test");
+ }
+
+ // StutteringInputStream returns 1 to 3 characters at a time
+ static class StutteringInputStream implements Readable {
+ StutteringInputStream() {
+ text = "brummer hisser tort zardzard rantrant caimagator phant";
+ datalen = 54;
+ }
+ StutteringInputStream(String text) {
+ this.text = text;
+ datalen = text.length();
+ }
+ Random generator = new Random();
+ String text;
+ int datalen;
+ int index = 0;
+ public int length() {
+ return datalen;
+ }
+ public void reset() {
+ index = 0;
+ }
+ public String wordInIndex(int index) {
+ if (index < 7) return null;
+ if (index < 14) return "brummer";
+ if (index < 19) return "hisser";
+ if (index < 28) return "tort";
+ if (index < 37) return "zardzard";
+ if (index < 48) return "rantrant";
+ return "caimagator";
+ }
+ public String wordBeyondIndex(int index) {
+ if (index < 7) return "brummer";
+ if (index < 14) return "hisser";
+ if (index < 19) return "tort";
+ if (index < 28) return "zardzard";
+ if (index < 37) return "rantrant";
+ if (index < 48) return "caimagator";
+ return "phantphant";
+ }
+ public int read(java.nio.CharBuffer target) throws IOException {
+ if (index > datalen-1)
+ return -1; // EOS
+ int len = target.remaining();
+ if (len > 4) // return 1 to 3 characters
+ len = generator.nextInt(3) + 1;
+ while ((index + len) > datalen)
+ len--;
+ for (int i=0; i<len; i++)
+ target.put(text.charAt(index++));
+ return len;
+ }
+ }
+
+ public static void hasNextLineTest(int sourceType) throws Exception {
+ Scanner sc = scannerFor("1\n2\n3 3\r\n4 4 4\r5", sourceType);
+ if (!sc.hasNextLine()) failCount++;
+ if (!sc.nextLine().equals("1")) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (sc.nextInt() != 2) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (!sc.nextLine().equals("")) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (sc.nextInt() != 3) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (!sc.nextLine().equals(" 3")) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (sc.nextInt() != 4) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (sc.nextInt() != 4) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (!sc.nextLine().equals(" 4")) failCount++;
+ if (!sc.hasNextLine()) failCount++;
+ if (!sc.nextLine().equals("5")) failCount++;
+ if (sc.hasNextLine()) failCount++;
+ sc = new Scanner("blah blah blah blah blah blah");
+ if (!sc.hasNextLine()) failCount++;
+ if (!sc.nextLine().equals("blah blah blah blah blah blah"))
+ failCount++;
+ if (sc.hasNextLine()) failCount++;
+
+ // Go through all the lines in a file
+ File f = new File(System.getProperty("test.src", "."), "input.txt");
+ sc = new Scanner(f);
+ String lastLine = "blah";
+ while(sc.hasNextLine())
+ lastLine = sc.nextLine();
+ if (!lastLine.equals("# Data for usage case 6")) failCount++;
+
+ report("Has next line test");
+ }
+
+ public static void nextLineTest(int sourceType) throws Exception {
+ Scanner sc = scannerFor("1\n2\n3 3\r\n4 4 4\r5", sourceType);
+ if (!sc.nextLine().equals("1"))
+ failCount++;
+ if (sc.nextInt() != 2)
+ failCount++;
+ if (!sc.nextLine().equals(""))
+ failCount++;
+ if (sc.nextInt() != 3)
+ failCount++;
+ if (!sc.nextLine().equals(" 3"))
+ failCount++;
+ if (sc.nextInt() != 4)
+ failCount++;
+ if (sc.nextInt() != 4)
+ failCount++;
+ if (!sc.nextLine().equals(" 4"))
+ failCount++;
+ if (!sc.nextLine().equals("5"))
+ failCount++;
+ sc = new Scanner("blah blah blah blah blah blah");
+ if (!sc.nextLine().equals("blah blah blah blah blah blah"))
+ failCount++;
+ report("Next line test");
+ }
+
+ public static void singleDelimTest(int sourceType) throws Exception {
+ Scanner sc = scannerFor("12 13 14 15 16 17 ",
+ sourceType);
+ sc.useDelimiter(" ");
+ for (int i=0; i<6; i++) {
+ int j = sc.nextInt();
+ if (j != 12 + i)
+ failCount++;
+ for (int k=0; k<i; k++) {
+ String empty = sc.next();
+ if (!empty.equals(""))
+ failCount++;
+ }
+ }
+ report("Single delim test");
+ }
+
+ /*
+ * The hasNextPattern caches a match of a pattern called the regular cache
+ * The hasNextType caches a match of that type called the type cache
+ * Any next must clear the caches whether it uses them or not, because
+ * it advances past a token thus invalidating any cached token; any
+ * hasNext must set a cache to what it finds.
+ */
+ public static void cacheTest() throws Exception {
+ // Test clearing of the type cache
+ Scanner scanner = new Scanner("777 dog");
+ scanner.hasNextInt();
+ scanner.findInLine("777");
+ try {
+ scanner.nextInt();
+ System.out.println("type cache not cleared by find");
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct
+ }
+
+ scanner = new Scanner("777 dog");
+ scanner.hasNextInt();
+ scanner.skip("777");
+ try {
+ scanner.nextInt();
+ System.out.println("type cache not cleared by skip");
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct
+ }
+
+ // Test clearing of the regular cache
+ scanner = new Scanner("777 dog");
+ scanner.hasNext("777");
+ scanner.findInLine("777");
+ try {
+ scanner.next("777");
+ System.out.println("regular cache not cleared by find");
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct
+ }
+
+ // Test two primitive next clearing of type cache
+ scanner = new Scanner("777 dog");
+ scanner.hasNextInt();
+ scanner.nextLong();
+ try {
+ scanner.nextInt();
+ System.out.println("type cache not cleared by primitive next");
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct
+ }
+
+ // Test using both of them, type first
+ scanner = new Scanner("777 dog");
+ scanner.hasNext("777");
+ scanner.nextInt();
+ try {
+ scanner.next("777");
+ System.out.println("regular cache not cleared by primitive next");
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct
+ }
+
+ // Test using both of them, regular first
+ scanner = new Scanner("777 dog");
+ scanner.hasNext("777");
+ scanner.hasNextInt();
+ scanner.next("777");
+ try {
+ scanner.nextInt();
+ System.out.println("type cache not cleared by regular next");
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct
+ }
+ report("Cache test");
+ }
+
+ /*
+ * The hasNext<IntegerType>(radix) method caches a matched integer type
+ * with specified radix for the next next<IntegerType>(radix) invoke.
+ * The cache value should not be used if the next<IntegerType>(radix)
+ * has different radix value with the last hasNext<IntegerType>(radix).
+ */
+ public static void cacheTest2() throws Exception {
+ // Test clearing of the type cache
+ Scanner scanner = new Scanner("10");
+ scanner.hasNextByte(16);
+ if (scanner.nextByte(10) != 10) {
+ System.out.println("wrong radix cache is used");
+ failCount++;
+ }
+ scanner = new Scanner("10");
+ scanner.hasNextShort(16);
+ if (scanner.nextShort(10) != 10) {
+ System.out.println("wrong radix cache is used");
+ failCount++;
+ }
+ scanner = new Scanner("10");
+ scanner.hasNextInt(16);
+ if (scanner.nextInt(10) != 10) {
+ System.out.println("wrong radix cache is used");
+ failCount++;
+ }
+ scanner = new Scanner("10");
+ scanner.hasNextLong(16);
+ if (scanner.nextLong(10) != 10) {
+ System.out.println("wrong radix cache is used");
+ failCount++;
+ }
+ scanner = new Scanner("10");
+ scanner.hasNextBigInteger(16);
+ if (scanner.nextBigInteger(10).intValue() != 10) {
+ System.out.println("wrong radix cache is used");
+ failCount++;
+ }
+ report("Cache test2");
+ }
+
+
+ public static void closeTest() throws Exception {
+ Scanner sc = new Scanner("testing");
+ sc.close();
+ sc.ioException();
+ sc.delimiter();
+ sc.useDelimiter("blah");
+ sc.useDelimiter(Pattern.compile("blah"));
+ for (int i=0; i<NUM_METHODS; i++) {
+ try {
+ methodCall(sc, i);
+ failCount++;
+ } catch (IllegalStateException ise) {
+ // Correct
+ }
+ }
+ report("Close test");
+ }
+
+ private static int NUM_METHODS = 23;
+
+ private static void methodCall(Scanner sc, int i) {
+ switch(i) {
+ case 0: sc.hasNext(); break;
+ case 1: sc.next(); break;
+ case 2: sc.hasNext(Pattern.compile("blah")); break;
+ case 3: sc.next(Pattern.compile("blah")); break;
+ case 4: sc.hasNextBoolean(); break;
+ case 5: sc.nextBoolean(); break;
+ case 6: sc.hasNextByte(); break;
+ case 7: sc.nextByte(); break;
+ case 8: sc.hasNextShort(); break;
+ case 9: sc.nextShort(); break;
+ case 10: sc.hasNextInt(); break;
+ case 11: sc.nextInt(); break;
+ case 12: sc.hasNextLong(); break;
+ case 13: sc.nextLong(); break;
+ case 14: sc.hasNextFloat(); break;
+ case 15: sc.nextFloat(); break;
+ case 16: sc.hasNextDouble(); break;
+ case 17: sc.nextDouble(); break;
+ case 18: sc.hasNextBigInteger(); break;
+ case 19: sc.nextBigInteger(); break;
+ case 20: sc.hasNextBigDecimal(); break;
+ case 21: sc.nextBigDecimal(); break;
+ case 22: sc.hasNextLine(); break;
+ default:
+ break;
+ }
+ }
+
+ public static void removeTest() throws Exception {
+ Scanner sc = new Scanner("testing");
+ try {
+ sc.remove();
+ failCount++;
+ } catch (UnsupportedOperationException uoe) {
+ // Correct result
+ }
+ report("Remove test");
+ }
+
+ public static void delimiterTest() throws Exception {
+ Scanner sc = new Scanner("blah");
+ Pattern test = sc.delimiter();
+ if (!test.toString().equals("\\p{javaWhitespace}+"))
+ failCount++;
+ sc.useDelimiter("a");
+ test = sc.delimiter();
+ if (!test.toString().equals("a"))
+ failCount++;
+ sc.useDelimiter(Pattern.compile("b"));
+ test = sc.delimiter();
+ if (!test.toString().equals("b"))
+ failCount++;
+ report("Delimiter test");
+ }
+
+ public static void ioExceptionTest() throws Exception {
+ Readable thrower = new ThrowingReadable();
+ Scanner sc = new Scanner(thrower);
+ try {
+ sc.nextInt();
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ Exception thrown = sc.ioException();
+ String detail = thrown.getMessage();
+ if (!detail.equals("ThrowingReadable always throws"))
+ failCount++;
+
+ report("IOException test");
+ }
+
+ public static void bigIntegerPatternTest(int sourceType) throws Exception {
+ Scanner sc = scannerFor("23 9223372036854775817", sourceType);
+ if (!sc.nextBigInteger().equals(BigInteger.valueOf(23)))
+ failCount++;
+ if (!sc.nextBigInteger().equals(new BigInteger(
+ "9223372036854775817", 10)))
+ failCount++;
+
+ // Test another radix
+ sc = new Scanner("4a4 4A4").useRadix(16);
+ if (!sc.nextBigInteger().equals(new BigInteger("4a4", 16)))
+ failCount++;
+ if (!sc.nextBigInteger().equals(new BigInteger("4A4", 16)))
+ failCount++;
+
+ // Test alternating radices
+ sc = new Scanner("12 4a4 14 4f4");
+ if (!sc.nextBigInteger(10).equals(new BigInteger("12", 10)))
+ failCount++;
+ if (!sc.nextBigInteger(16).equals(new BigInteger("4a4", 16)))
+ failCount++;
+ if (!sc.nextBigInteger(10).equals(new BigInteger("14", 10)))
+ failCount++;
+ if (!sc.nextBigInteger(16).equals(new BigInteger("4f4", 16)))
+ failCount++;
+
+ // Test use of a lot of radices
+ for (int i=2; i<17; i++) {
+ sc = new Scanner("1111");
+ if (!sc.nextBigInteger(i).equals(new BigInteger("1111", i)))
+ failCount++;
+ }
+
+ report("BigInteger pattern");
+ }
+
+ public static void bigDecimalPatternTest(int sourceType) throws Exception {
+ Scanner sc = scannerFor("23 45.99 -45,067.444 3.4e10", sourceType);
+ if (!sc.nextBigDecimal().equals(BigDecimal.valueOf(23)))
+ failCount++;
+ if (!sc.nextBigDecimal().equals(new BigDecimal("45.99")))
+ failCount++;
+ if (!sc.nextBigDecimal().equals(new BigDecimal("-45067.444")))
+ failCount++;
+ if (!sc.nextBigDecimal().equals(new BigDecimal("3.4e10")))
+ failCount++;
+ report("BigDecimal pattern");
+ }
+
+ public static void integerPatternTest(int sourceType) throws Exception {
+ String input =
+ "1 22 f FF Z -3 -44 123 1,200 -123 -3,400,000 5,40 ,500 ";
+ Scanner sc = scannerFor(input, sourceType);
+ integerPatternBody(sc);
+ CharBuffer cb = CharBuffer.wrap(input);
+ sc = new Scanner(cb);
+ integerPatternBody(sc);
+ report("Integer pattern");
+ }
+
+ public static void integerPatternBody(Scanner sc) throws Exception {
+ if (sc.nextInt() != 1) failCount++;
+ if (sc.nextShort() != 22) failCount++;
+ if (sc.nextShort(16) != 15) failCount++;
+ if (sc.nextShort(16) != 255) failCount++;
+ if (sc.nextShort(36) != 35) failCount++;
+ if (!sc.hasNextInt()) failCount++;
+ if (sc.nextInt() != -3) failCount++;
+ if (sc.nextInt() != -44) failCount++;
+ if (sc.nextLong() != 123) failCount++;
+ if (!sc.hasNextInt()) failCount++;
+ if (sc.nextInt() != 1200) failCount++;
+ if (sc.nextInt() != -123) failCount++;
+ if (sc.nextInt() != -3400000) failCount++;
+ try {
+ sc.nextInt();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ sc.next();
+ try {
+ sc.nextLong();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ sc.next();
+ try {
+ sc.next();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ }
+
+ public static void floatPatternTest(int sourceType) throws Exception {
+ String input =
+ "090.090 1 22.0 -3 -44.05 +.123 -.1234 -3400000 56,566.6 " +
+ "Infinity +Infinity -Infinity NaN -NaN +NaN 5.4.0 5-.00 ++6.07";
+ Scanner sc = scannerFor(input, sourceType);
+ floatPatternBody(sc);
+ CharBuffer cb = CharBuffer.wrap(input);
+ sc = new Scanner(cb);
+ floatPatternBody(sc);
+ report("Float pattern");
+ }
+
+ public static void floatPatternBody(Scanner sc) throws Exception {
+ if (sc.nextFloat() != 090.090f) failCount++;
+ if (sc.nextFloat() != 1f) failCount++;
+ if (sc.nextFloat() != 22.0f) failCount++;
+ if (sc.nextDouble() != -3d) failCount++;
+ if (sc.nextDouble() != -44.05d) failCount++;
+ if (sc.nextFloat() != .123f) failCount++;
+ if (sc.nextFloat() != -.1234f) failCount++;
+ if (sc.nextDouble() != -3400000d) failCount++;
+ if (sc.nextDouble() != 56566.6d) failCount++;
+ if (sc.nextDouble() != Double.POSITIVE_INFINITY) failCount++;
+ if (sc.nextDouble() != Double.POSITIVE_INFINITY) failCount++;
+ if (sc.nextDouble() != Double.NEGATIVE_INFINITY) failCount++;
+ if (!Double.valueOf(sc.nextDouble()).isNaN()) failCount++;
+ if (!Double.valueOf(sc.nextDouble()).isNaN()) failCount++;
+ if (!Double.valueOf(sc.nextDouble()).isNaN()) failCount++;
+ try {
+ sc.nextFloat();
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ try {
+ sc.nextDouble();
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ try {
+ sc.nextDouble();
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ }
+
+ public static void fromFileTest() throws Exception {
+ File f = new File(System.getProperty("test.src", "."), "input.txt");
+ Scanner sc = new Scanner(f).useDelimiter("\n+");
+ String testDataTag = sc.findWithinHorizon("fromFileTest", 0);
+ if (!testDataTag.equals("fromFileTest"))
+ failCount++;
+
+ int count = 0;
+ while (sc.hasNextLong()) {
+ long blah = sc.nextLong();
+ count++;
+ }
+ if (count != 7)
+ failCount++;
+ sc.close();
+ report("From file");
+ }
+
+ private static void example1() throws Exception {
+ Scanner s = new Scanner("1 fish 2 fish red fish blue fish");
+ s.useDelimiter("\\s*fish\\s*");
+ List <String> results = new ArrayList<String>();
+ while(s.hasNext())
+ results.add(s.next());
+ System.out.println(results);
+ }
+
+ private static void example2() throws Exception {
+ Scanner s = new Scanner("1 fish 2 fish red fish blue fish");
+ s.useDelimiter("\\s*fish\\s*");
+ System.out.println(s.nextInt());
+ System.out.println(s.nextInt());
+ System.out.println(s.next());
+ System.out.println(s.next());
+ }
+
+ private static void example3() throws Exception {
+ Scanner s = new Scanner("1 fish 2 fish red fish blue fish");
+ s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
+ for (int i=1; i<=s.match().groupCount(); i++)
+ System.out.println(s.match().group(i));
+ }
+
+ private static void findInLineTest() throws Exception {
+ Scanner s = new Scanner("abc def ghi jkl mno");
+ Pattern letters = Pattern.compile("[a-z]+");
+ Pattern frogs = Pattern.compile("frogs");
+ String str = s.findInLine(letters);
+ if (!str.equals("abc"))
+ failCount++;
+ if (!s.hasNext(letters))
+ failCount++;
+ try {
+ str = s.findInLine(frogs);
+ } catch (NoSuchElementException nsee) {
+ // Correct
+ }
+ if (!s.hasNext())
+ failCount++;
+ if (!s.hasNext(letters))
+ failCount++;
+ str = s.findInLine(letters);
+ if (!str.equals("def"))
+ failCount++;
+
+ report("Find patterns");
+ }
+
+ private static void findInEmptyLineTest() throws Exception {
+ String eol = System.getProperty("line.separator");
+ Scanner s = new Scanner("line 1" + eol + "" + eol + "line 3" + eol);
+ int lineNo = 0;
+ while (s.hasNextLine()) {
+ lineNo++;
+ s.findInLine("3");
+ s.nextLine();
+ }
+ if (lineNo != 3)
+ failCount++;
+ report("findInEmptyLine test");
+ }
+
+ private static void matchTest() throws Exception {
+ Scanner s = new Scanner("1 fish 2 fish red fish blue fish");
+ s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
+
+ MatchResult result = s.match();
+ if (!result.group(1).equals("1"))
+ failCount++;
+ if (!result.group(2).equals("2"))
+ failCount++;
+ if (!result.group(3).equals("red"))
+ failCount++;
+ if (!result.group(4).equals("blue"))
+ failCount++;
+
+ report("Match patterns");
+ }
+
+ private static void skipTest() throws Exception {
+ Scanner s = new Scanner("abc def ghi jkl mno");
+ Pattern letters = Pattern.compile("[a-z]+");
+ Pattern spaceLetters = Pattern.compile(" [a-z]+");
+ Pattern frogs = Pattern.compile("frogs");
+ try {
+ s.skip(letters);
+ } catch (NoSuchElementException ime) {
+ failCount++;
+ }
+ String token = s.next(letters);
+ if (!token.equals("def")) {
+ System.out.println("expected def");
+ System.out.println("I found "+token);
+ failCount++;
+ }
+ try {
+ s.skip(letters);
+ failCount++;
+ } catch (NoSuchElementException ime) {
+ // Correct result
+ }
+ token = s.next(letters);
+ if (!token.equals("ghi")) {
+ System.out.println("expected ghi");
+ System.out.println("I found "+token);
+ failCount++;
+ }
+ try {
+ s.skip(letters);
+ failCount++;
+ } catch (NoSuchElementException ime) {
+ // Correct result because skip ignores delims
+ }
+ try {
+ s.skip(spaceLetters);
+ } catch (NoSuchElementException ime) {
+ failCount++;
+ }
+ token = s.next(letters);
+ if (!token.equals("mno")) {
+ System.out.println("expected mno");
+ System.out.println("I found "+token);
+ failCount++;
+ }
+ try {
+ s.skip(letters);
+ failCount++;
+ } catch (NoSuchElementException ime) {
+ // Correct result
+ }
+ report("Skip patterns");
+ }
+
+ private static void byteTest(int sourceType) throws Exception {
+ String input = " 3 0 00 b -B 012 44 -55 12 127 129 -131 dog 0x12";
+ Scanner s = scannerFor(input, sourceType);
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)3) failCount++;
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)0) failCount++;
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)0) failCount++;
+ if (!s.hasNextByte(16)) failCount++;
+ if (s.nextByte(16) != (byte)11)failCount++;
+ if (!s.hasNextByte(16)) failCount++;
+ if (s.nextByte(16) != (byte)-11) failCount++;
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)12) failCount++;
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)44) failCount++;
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)-55) failCount++;
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)12) failCount++;
+ if (!s.hasNextByte()) failCount++;
+ if (s.nextByte() != (byte)127) failCount++;
+ if (s.hasNextByte()) failCount++;
+
+ try {
+ s.nextByte();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ if (s.hasNextByte()) failCount++;
+ if (s.nextInt() != 129) failCount++;
+ if (s.hasNextByte()) failCount++;
+ try {
+ s.nextByte();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ if (s.nextInt() != -131) failCount++;
+ if (s.hasNextByte()) failCount++;
+ try {
+ s.nextByte();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ s.next(Pattern.compile("\\w+"));
+ if (s.hasNextByte())
+ failCount++;
+ try {
+ s.nextByte();
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ s.next();
+ if (s.hasNextByte())
+ failCount++;
+ try {
+ byte bb = s.nextByte();
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ report("Scan bytes");
+ }
+
+ private static void shortTest(int sourceType) throws Exception {
+ String input = " 017 22 00E -34 44,333 -53999 0x19 dog";
+ Scanner s = scannerFor(input, sourceType);
+ if (!s.hasNextShort()) failCount++;
+ if (s.nextShort() != (short)17) failCount++;
+ if (!s.hasNextShort()) failCount++;
+ if (s.nextShort() != (short)22) failCount++;
+ if (!s.hasNextShort(16)) failCount++;
+ if (s.nextShort(16) != (short)14) failCount++;
+ if (!s.hasNextShort()) failCount++;
+ if (s.nextShort() != (short)-34) failCount++;
+ for (int i=0; i<4; i++) {
+ if (s.hasNextShort())
+ failCount++;
+ try {
+ s.nextShort();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ s.next();
+ }
+ try {
+ s.next();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ report("Scan shorts");
+ }
+
+ private static void intTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ "22 022 C -34 0x80000000 -2147483649 dog ", sourceType);
+ if (!s.hasNextInt()) failCount++;
+ if (s.nextInt() != 22) failCount++;
+ if (!s.hasNextInt()) failCount++;
+ if (s.nextInt() != 22) failCount++;
+ if (!s.hasNextInt(16)) failCount++;
+ if (s.nextInt(16) != 12) failCount++;
+ if (!s.hasNextInt()) failCount++;
+ if (s.nextInt() != -34) failCount++;
+ for (int i=0; i<3; i++) {
+ if (s.hasNextInt())
+ failCount++;
+ try {
+ s.nextInt();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ s.next();
+ }
+ try {
+ s.next();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ report("Scan ints");
+ }
+
+ private static void longTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ "022 9223372036854775807 0x8000000000000000 9223372036854775808 dog ",
+ sourceType);
+ if (!s.hasNextLong()) failCount++;
+ if (s.nextLong() != (long)22) failCount++;
+ if (!s.hasNextLong()) failCount++;
+ if (s.nextLong() != 9223372036854775807L) failCount++;
+ for (int i=0; i<3; i++) {
+ if (s.hasNextLong())
+ failCount++;
+ try {
+ s.nextLong();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ s.next();
+ }
+ try {
+ s.next();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ report("Scan longs");
+ }
+
+ private static void floatTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ "0 0. 0.0 2 2. 2.0 2.3 -2 -2.0 -2.3 -. 2-. 2..3", sourceType);
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 0f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 0f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 0f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 2f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 2f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 2f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 2.3f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != -2f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != -2f) failCount++;
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != -2.3f) failCount++;
+ for (int i=0; i<3; i++) {
+ if (s.hasNextLong())
+ failCount++;
+ try {
+ s.nextFloat();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ s.next();
+ }
+ try {
+ s.next();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ report("Scan floats");
+ }
+
+ private static void doubleTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ "0 0. 0.0 2 2. 2.0 2.3 -2 -2.0 -2.3 -. 2-. 2..3", sourceType);
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != 0d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != 0d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != 0d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != 2d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != 2d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != 2d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != 2.3d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != -2d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != -2d) failCount++;
+ if (!s.hasNextDouble()) failCount++;
+ if (s.nextDouble() != -2.3d) failCount++;
+ for (int i=0; i<3; i++) {
+ if (s.hasNextLong())
+ failCount++;
+ try {
+ s.nextDouble();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ // Correct result
+ }
+ s.next();
+ }
+ try {
+ s.next();
+ failCount++;
+ } catch (InputMismatchException ime) {
+ failCount++;
+ } catch (NoSuchElementException nse) {
+ // Correct result
+ }
+ report("Scan doubles");
+ }
+
+ private static void booleanTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ " true false\t \r\n true FaLse \n True Tru", sourceType);
+ if (!s.nextBoolean()) failCount++;
+ if (!s.hasNextBoolean()) failCount++;
+ if (s.nextBoolean()) failCount++;
+ if (!s.nextBoolean()) failCount++;
+ if (s.nextBoolean()) failCount++;
+ if (!s.nextBoolean()) failCount++;
+ if (s.hasNextBoolean()) failCount++;
+ try {
+ s.nextBoolean();
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Expected result
+ }
+ report("Scan booleans");
+ }
+
+ private static void hasNextTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ " blah blech\t blather alongblatherindeed", sourceType);
+ if (!s.hasNext()) failCount++;
+ if (!s.hasNext()) failCount++;
+ String result = s.next();
+ if (!result.equals("blah")) failCount++;
+ if (!s.hasNext()) failCount++;
+ if (!s.hasNext()) failCount++;
+ result = s.next();
+ if (!result.equals("blech")) failCount++;
+ if (!s.hasNext()) failCount++;
+ result = s.next();
+ if (!result.equals("blather")) failCount++;
+ if (!s.hasNext()) failCount++;
+ if (!s.hasNext()) failCount++;
+ result = s.next();
+ if (!result.equals("alongblatherindeed")) failCount++;
+ if (s.hasNext()) failCount++;
+ try {
+ result = s.next();
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ report("Has next test");
+ }
+
+ private static void nextTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ " blah blech\t blather alongblatherindeed", sourceType);
+ String result = (String)s.next();
+ if (!result.equals("blah")) failCount++;
+ result = (String)s.next();
+ if (!result.equals("blech")) failCount++;
+ result = (String)s.next();
+ if (!result.equals("blather")) failCount++;
+ result = (String)s.next();
+ if (!result.equals("alongblatherindeed"))
+ failCount++;
+ try {
+ result = (String)s.next();
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ report("Next test");
+ }
+
+ private static void hasNextPatternTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ " blah blech\t blather alongblatherindeed", sourceType);
+ Pattern p1 = Pattern.compile("\\w+");
+ Pattern p2 = Pattern.compile("blech");
+ if (!s.hasNext(p1)) failCount++;
+ if (!s.hasNext(p1)) failCount++;
+ if (s.hasNext(p2)) failCount++;
+ String result = (String)s.next();
+ if (!result.equals("blah")) failCount++;
+ if (!s.hasNext(p1)) failCount++;
+ if (!s.hasNext(p2)) failCount++;
+ result = (String)s.next();
+ if (!result.equals("blech")) failCount++;
+ if (!s.hasNext(p1)) failCount++;
+ if (s.hasNext(p2)) failCount++;
+ result = (String)s.next();
+ if (!result.equals("blather")) failCount++;
+ if (!s.hasNext(p1)) failCount++;
+ if (s.hasNext(p2)) failCount++;
+ result = (String)s.next();
+ if (!result.equals("alongblatherindeed")) failCount++;
+ if (s.hasNext(p1)) failCount++;
+ if (s.hasNext(p2)) failCount++;
+ report("Has Next Pattern test");
+ }
+
+ private static void nextPatternTest(int sourceType) throws Exception {
+ Scanner s = scannerFor(
+ " blah blech\t blather alongblatherindeed", sourceType);
+ Pattern p1 = Pattern.compile("blah");
+ Pattern p2 = Pattern.compile("blech");
+ Pattern p3 = Pattern.compile("blather");
+ Pattern p4 = Pattern.compile("alongblatherindeed");
+ String result = null;
+ try {
+ result = (String)s.next(p2);
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ result = (String)s.next(p1);
+ if (!result.equals("blah"))
+ failCount++;
+ try {
+ result = (String)s.next(p1);
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ result = (String)s.next(p2);
+ if (!result.equals("blech"))
+ failCount++;
+ try {
+ result = (String)s.next(p4);
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ result = (String)s.next(p3);
+ if (!result.equals("blather"))
+ failCount++;
+ try {
+ result = (String)s.next(p3);
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ result = (String)s.next(p4);
+ if (!result.equals("alongblatherindeed"))
+ failCount++;
+ try {
+ result = (String)s.next();
+ failCount++;
+ } catch (NoSuchElementException nsee) {
+ // Correct result
+ }
+ report("Next pattern test");
+ }
+
+ private static void useLocaleTest() throws Exception {
+ Scanner s = new Scanner("334.65").useLocale(Locale.ENGLISH);
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 334.65f) failCount++;
+
+ s = new Scanner("334,65").useLocale(Locale.FRENCH);
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 334.65f) failCount++;
+
+ s = new Scanner("4.334,65").useLocale(Locale.GERMAN);
+ if (!s.hasNextFloat()) failCount++;
+ if (s.nextFloat() != 4334.65f) failCount++;
+
+ // Test case reported from India
+ try {
+ String Message = "123978.90 $";
+ Locale locale = new Locale("hi","IN");
+ NumberFormat form = NumberFormat.getInstance(locale);
+ double myNumber = 1902.09;
+ Scanner scanner = new Scanner(form.format(myNumber).toString());
+ scanner.useLocale(locale);
+ double d = scanner.nextDouble();
+ } catch (InputMismatchException ime) {
+ failCount++;
+ }
+ report("Use locale test");
+ }
+
+ public static void resetTest() throws Exception {
+ Scanner sc = new Scanner("");
+ int radix = sc.radix();
+ Locale locale = sc.locale();
+ Pattern delimiter = sc.delimiter();
+ Pattern a = Pattern.compile("A");
+ sc.useDelimiter(a);
+ Locale dummy = new Locale("en", "US", "dummy");
+ sc.useLocale(dummy);
+ sc.useRadix(16);
+ if (sc.radix() != 16 ||
+ !sc.locale().equals(dummy) ||
+ !sc.delimiter().pattern().equals(a.pattern())) {
+ failCount++;
+ } else {
+ sc.reset();
+ if (sc.radix() != radix ||
+ !sc.locale().equals(locale) ||
+ !sc.delimiter().pattern().equals(delimiter.pattern())) {
+ failCount++;
+ }
+ }
+ sc.close();
+ report("Reset test");
+ }
+
+ private static void report(String testName) {
+ int spacesToAdd = 30 - testName.length();
+ StringBuffer paddedNameBuffer = new StringBuffer(testName);
+ for (int i=0; i<spacesToAdd; i++)
+ paddedNameBuffer.append(" ");
+ String paddedName = paddedNameBuffer.toString();
+ System.err.println(paddedName + ": " +
+ (failCount==0 ? "Passed":"Failed("+failCount+")"));
+ if (failCount > 0)
+ failure = true;
+ failCount = 0;
+ }
+
+ static Scanner scannerFor(String input, int sourceType) {
+ if (sourceType == 1)
+ return new Scanner(input);
+ else
+ return new Scanner(new StutteringInputStream(input));
+ }
+
+ static class ThrowingReadable implements Readable {
+ ThrowingReadable() {
+ }
+ public int read(java.nio.CharBuffer cb) throws IOException {
+ throw new IOException("ThrowingReadable always throws");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/Scanner/input.txt Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,438 @@
+# Data for fromFileTest
+14343441
+24134342
+34324233
+43234234
+53423425
+63424326
+74324337
+
+
+# Data for usage case 1
+23.4 Frank 34.8 -9.0
+2.333 6.75 Joe -2
+3.3 -888.8 -16.00 Mary
+Michelle -5 -5.5 -5.555
+
+
+# Data for usage case 2
+cat-9-dog-6-pig-2--5-
+
+
+# Data for usage case 3
+ /**
+ * Returns the next string in the input that matches the specified pattern.
+ * This method may block while waiting for input
+ * to scan, even if a previous invocation of {@link #hasNext(Pattern)}
+ * returned <code>true</code>. If the match is successful, the scanner
+ * advances past the input that matched the pattern.
+ *
+ * @param pattern the pattern to scan for
+ * @return the next token
+ * @throws NoSuchElementException if no more tokens are available
+ * @throws IllegalStateException if this scanner is closed
+ */
+
+
+# Data for usage case 4
+<html>
+<body bgcolor="#EEEEEE">
+<title>Source Directory</title>
+<center><h1>tiger</h1></center>
+<p>
+Parent workspace is /java/jdk/1.5/ws/integration/TL/j2se <br>
+Child workspace is /export/tiger <br>
+<hr>
+<code>
+<p>
+<a href=make/java/java/mapfile-vers.diff.html>Diffs</a>
+<a href=make/java/java/mapfile-vers.sdiff.html>Sdiffs</a>
+<a href=make/java/java/mapfile-vers-.html>Old</a>
+<a href=make/java/java/mapfile-vers.html>New</a>
+<b>make/java/java/mapfile-vers</b><p>
+<ul>
+<li><a href=http://example.com/cgi-bin/bugtraq_showbug?bugid=4904881>4904881</a>: JVM crash during java.io.File.deleteOnExit()<br>
+</ul>
+<p>
+<a href=src/share/classes/java/lang/Shutdown.java.diff.html>Diffs</a>
+<a href=src/share/classes/java/lang/Shutdown.java.sdiff.html>Sdiffs</a>
+<a href=src/share/classes/java/lang/Shutdown.java-.html>Old</a>
+<a href=src/share/classes/java/lang/Shutdown.java.html>New</a>
+<b>src/share/classes/java/lang/Shutdown.java</b><p>
+<ul>
+<li><a href=http://example.com/cgi-bin/bugtraq_showbug?bugid=4904881>4904881</a>: JVM crash during java.io.File.deleteOnExit()<br>
+</ul>
+<p>
+<a href=src/share/native/java/lang/Shutdown.c.diff.html>Diffs</a>
+<a href=src/share/native/java/lang/Shutdown.c.sdiff.html>Sdiffs</a>
+<a href=src/share/native/java/lang/Shutdown.c-.html>Old</a>
+<a href=src/share/native/java/lang/Shutdown.c.html>New</a>
+<b>src/share/native/java/lang/Shutdown.c</b><p>
+<ul>
+<li><a href=http://example.com/cgi-bin/bugtraq_showbug?bugid=4904881>4904881</a>: JVM crash during java.io.File.deleteOnExit()<br>
+</ul>
+</code>
+<p>
+</font>
+</html>
+
+# Data for usage case 5
+
+# This is the main Samba configuration file. You should read the
+# smb.conf(5) manual page in order to understand the options listed
+# here. Samba has a huge number of configurable options (perhaps too
+# many!) most of which are not shown in this example
+#
+# Any line which starts with a ; (semi-colon) or a # (hash)
+# is a comment and is ignored. In this example we will use a #
+# for commentry and a ; for parts of the config file that you
+# may wish to enable
+#
+# NOTE: Whenever you modify this file you should run the command "testparm"
+# to check that you have not many any basic syntactic errors.
+#
+#======================= Global Settings =====================================
+[global]
+
+##
+## Basic Server Settings
+##
+
+ # workgroup = NT-Domain-Name or Workgroup-Name, eg: REDHAT4
+ workgroup = MYGROUP
+
+ # server string is the equivalent of the NT Description field
+ server string = Samba Server
+
+ # This option is important for security. It allows you to restrict
+ # connections to machines which are on your local network. The
+ # following example restricts access to two C class networks and
+ # the "loopback" interface. For more examples of the syntax see
+ # the smb.conf man page
+ ; hosts allow = 192.168.1. 192.168.2.0./24 192.168.3.0/255.255.255.0 127.0.0.1
+
+ # Uncomment this if you want a guest account, you must add this to /etc/passwd
+ # otherwise the user "nobody" is used
+ ; guest account = pcguest
+
+ # this tells Samba to use a separate log file for each machine
+ # that connects
+ log file = /usr/local/samba/var/log.%m
+
+ # How much information do you want to see in the logs?
+ # default is only to log critical messages
+ ; log level = 1
+
+ # Put a capping on the size of the log files (in Kb).
+ max log size = 50
+
+ # Security mode. Most people will want user level security. See
+ # security_level.txt for details.
+ security = user
+
+ # Using the following line enables you to customise your configuration
+ # on a per machine basis. The %m gets replaced with the netbios name
+ # of the machine that is connecting.
+ # Note: Consider carefully the location in the configuration file of
+ # this line. The included file is read at that point.
+ ; include = /usr/local/samba/lib/smb.conf.%m
+
+ # Most people will find that this option gives better performance.
+ # See speed.txt and the manual pages for details
+ # You may want to add the following on a Linux system:
+ # SO_RCVBUF=8192 SO_SNDBUF=8192
+ ; socket options = TCP_NODELAY
+
+ # Configure Samba to use multiple interfaces
+ # If you have multiple network interfaces and want to limit smbd will
+ # use, list the ones desired here. Otherwise smbd & nmbd will bind to all
+ # active interfaces on the system. See the man page for details.
+ ; interfaces = 192.168.12.2/24 192.168.13.2/24
+
+ # Should smbd report that it has MS-DFS Capabilities? Only available
+ # if --with-msdfs was passed to ./configure
+ ; host msdfs = yes
+
+##
+## Network Browsing
+##
+ # set local master to no if you don't want Samba to become a master
+ # browser on your network. Otherwise the normal election rules apply
+ ; local master = no
+
+ # OS Level determines the precedence of this server in master browser
+ # elections. The default value (20) should be reasonable
+ ; os level = 20
+
+ # Domain Master specifies Samba to be the Domain Master Browser. This
+ # allows Samba to collate browse lists between subnets. Don't use this
+ # if you already have a Windows NT domain controller doing this job
+ ; domain master = yes
+
+ # Preferred Master causes Samba to force a local browser election on startup
+ # and gives it a slightly higher chance of winning the election
+ ; preferred master = yes
+
+
+##
+## WINS & Name Resolution
+##
+ # Windows Internet Name Serving Support Section:
+ # WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
+ ; wins support = yes
+
+ # WINS Server - Tells the NMBD components of Samba to be a WINS Client
+ # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
+ ; wins server = w.x.y.z
+
+ # WINS Proxy - Tells Samba to answer name resolution queries on
+ # behalf of a non WINS capable client, for this to work there must be
+ # at least one WINS Server on the network. The default is NO.
+ ; wins proxy = yes
+
+ # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
+ # via DNS nslookups.
+ dns proxy = no
+
+
+##
+## Passwords & Authentication
+##
+ # Use password server option only with security = server
+ # The argument list may include:
+ # password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
+ # or to auto-locate the domain controller/s
+ ; password server = *
+ ; password server = <NT-Server-Name>
+
+ # You may wish to use password encryption. Please read
+ # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
+ # Do not enable this option unless you have read those documents
+ ; encrypt passwords = yes
+
+ # Should smbd obey the session and account lines in /etc/pam.d/samba ?
+ # only available if --with-pam was used at compile time
+ ; obey pam restrictions = yes
+
+ # When using encrypted passwords, Samba can synchronize the local
+ # UNIX password as well. You will also need the "passwd chat" parameters
+ ; unix password sync = yes
+
+ # how should smbd talk to the local system when changing a UNIX
+ # password? See smb.conf(5) for details
+ ; passwd chat = <custom chat string>
+
+ # This is only available if you compiled Samba to include --with-pam
+ # Use PAM for changing the password
+ ; pam password change = yes
+
+##
+## Domain Control
+##
+ # Enable this if you want Samba act as a domain controller.
+ # make sure you have read the Samba-PDC-HOWTO included in the documentation
+ # before enabling this parameter
+ ; domain logons = yes
+
+ # if you enable domain logons then you may want a per-machine or
+ # per user logon script
+ # run a specific logon batch file per workstation (machine)
+ ; logon script = %m.bat
+ # run a specific logon batch file per username
+ ; logon script = %U.bat
+
+ # Where to store roving profiles (only for Win95 and WinNT)
+ # %L substitutes for this servers netbios name, %U is username
+ # You must uncomment the [Profiles] share below
+ ; logon path = \\%L\Profiles\%U
+
+ # UNC path specifying the network location of the user's home directory
+ # only used when acting as a DC for WinNT/2k/XP. Ignored by Win9x clients
+ ; logon home = \\%L\%U
+
+ # What drive should the "logon home" be mounted at upon login ?
+ # only used when acting as a DC for WinNT/2k/XP. Ignored by Win9x clients
+ ; logon drive = H:
+
+##
+## Printing
+##
+
+ # If you want to automatically load your printer list rather
+ # than setting them up individually then you'll need this
+ load printers = yes
+
+ # you may wish to override the location of the printcap file
+ ; printcap name = /etc/printcap
+
+ # on SystemV system setting printcap name to lpstat should allow
+ # you to automatically obtain a printer list from the SystemV spool
+ # system
+ ; printcap name = lpstat
+
+ # It should not be necessary to specify the print system type unless
+ # it is non-standard. Currently supported print systems include:
+ # bsd, sysv, plp, lprng, aix, hpux, qnx
+ ; printing = bsd
+
+ # Enable this to make Samba 2.2 behavior just like Samba 2.0
+ # not recommended nuless you are sure of what you are doing
+ ; disable spoolss = yes
+
+ # list of users and groups which should be able to remotely manage
+ # printer drivers installed on the server
+ ; printer admin = root, +ntadmin
+
+
+##
+## Winbind
+##
+
+ # specify the uid range which can be used by winbindd
+ # to allocate uids for Windows users as necessary
+ ; winbind uid = 10000-65000
+
+ # specify the uid range which can be used by winbindd
+ # to allocate uids for Windows users as necessary
+ ; winbind gid = 10000-65000
+
+ # Define a home directory to be given to passwd(5) style entries
+ # generated by libnss_winbind.so. You can use variables here
+ ; winbind template homedir = /home/%D/%U
+
+ # Specify a shell for all winbind user entries return by the
+ # libnss_winbind.so library.
+ ; winbind template shell = /bin/sh
+
+ # What character should be used to separate the DOMAIN and Username
+ # for a Windows user. The default is DOMAIN\user, but many people
+ # prefer DOMAIN+user
+ ; winbind separator = +
+
+
+#============================ Share Definitions ==============================
+[homes]
+ comment = Home Directories
+ browseable = no
+ writable = yes
+ valid users = %S
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+; [netlogon]
+; comment = Network Logon Service
+; path = /usr/local/samba/lib/netlogon
+; guest ok = yes
+; writable = no
+; share modes = no
+
+
+# Un-comment the following to provide a specific roving profile share
+# the default is to use the user's home directory
+;[Profiles]
+; path = /usr/local/samba/profiles
+; browseable = no
+; guest ok = yes
+
+
+# NOTE: If you have a BSD-style print system there is no need to
+# specifically define each individual printer
+[printers]
+ comment = All Printers
+ path = /usr/spool/samba
+ browseable = no
+ # Set public = yes to allow user 'guest account' to print
+ guest ok = no
+ writable = no
+ printable = yes
+
+# This one is useful for people to share files
+#[tmp]
+# comment = Temporary file space
+# path = /tmp
+# read only = no
+# public = yes
+
+
+# MS-DFS support is only available if Samba was compiled to
+# include --with-msdfs
+;[dfsroot]
+; dfs root = yes
+
+
+# A publicly accessible directory, but read only, except for people in
+# the "staff" group
+;[public]
+; comment = Public Stuff
+; path = /home/samba
+; public = yes
+; writable = yes
+; printable = no
+; write list = @staff
+
+
+##
+## Other examples.
+##
+
+# A private printer, usable only by fred. Spool data will be placed in fred's
+# home directory. Note that fred must have write access to the spool directory,
+# wherever it is.
+#[fredsprn]
+# comment = Fred's Printer
+# valid users = fred
+# path = /homes/fred
+# printer = freds_printer
+# public = no
+# writable = no
+# printable = yes
+
+# A private directory, usable only by fred. Note that fred requires write
+# access to the directory.
+#[fredsdir]
+# comment = Fred's Service
+# path = /usr/somewhere/private
+# valid users = fred
+# public = no
+# writable = yes
+# printable = no
+
+# a service which has a different directory for each machine that connects
+# this allows you to tailor configurations to incoming machines. You could
+# also use the %U option to tailor it by user name.
+# The %m gets replaced with the machine name that is connecting.
+#[pchome]
+# comment = PC Directories
+# path = /usr/pc/%m
+# public = no
+# writable = yes
+
+# A publicly accessible directory, read/write to all users. Note that all files
+# created in the directory by users will be owned by the default user, so
+# any user with access can delete any other user's files. Obviously this
+# directory must be writable by the default user. Another user could of course
+# be specified, in which case all files would be owned by that user instead.
+#[public]
+# path = /usr/somewhere/else/public
+# public = yes
+# only guest = yes
+# writable = yes
+# printable = no
+
+# The following two entries demonstrate how to share a directory so that two
+# users can place files there that will be owned by the specific users. In this
+# setup, the directory should be writable by both users and should have the
+# sticky bit set on it to prevent abuse. Obviously this could be extended to
+# as many users as required.
+#[myshare]
+# comment = Mary's and Fred's stuff
+# path = /usr/somewhere/shared
+# valid users = mary fred
+# public = no
+# writable = yes
+# printable = no
+# create mask = 0765
+
+
+
+
+# Data for usage case 6
--- a/jdk/test/javax/management/mxbean/LeakTest.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/javax/management/mxbean/LeakTest.java Mon Aug 03 16:33:06 2015 -0700
@@ -27,7 +27,7 @@
* @author Eamonn McManus
* @modules java.desktop
* java.management
- * @run build LeakTest RandomMXBeanTest
+ * @run build LeakTest RandomMXBeanTest MerlinMXBean TigerMXBean
* @run main LeakTest
*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/jdk/internal/jimage/ExecutableTest.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2015 SAP SE. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.nio.file.DirectoryStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.attribute.PosixFilePermission;
+import static java.nio.file.attribute.PosixFilePermission.*;
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.Set;
+
+/*
+ * @test
+ * @bug 8132475
+ * @summary Check that the executables in the current JDK image
+ * are executable by all users.
+ * @run main ExecutableTest
+ * @author Volker Simonis
+ */
+
+public class ExecutableTest {
+
+ // The bin/ directory may contain non-executable files (see 8132704)
+ private static final String[] exclude = { "jmc.ini" };
+ private static final Set<String> excludeSet =
+ new HashSet<String>(Arrays.asList(exclude));
+
+ public static void main(String args[]) throws Throwable {
+ String JAVA_HOME = System.getProperty("java.home");
+ Path binPath = Paths.get(JAVA_HOME, "bin");
+ DirectoryStream<Path> stream = Files.newDirectoryStream(binPath);
+ EnumSet<PosixFilePermission> execPerms =
+ EnumSet.of(GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_EXECUTE);
+ for (Path entry : stream) {
+ if (excludeSet.contains(entry.getFileName().toString())) continue;
+ if (Files.isRegularFile(entry)) {
+ if (!Files.isExecutable(entry)) {
+ throw new Error(entry + " is not executable!");
+ }
+ try {
+ Set<PosixFilePermission> perm = Files.getPosixFilePermissions(entry);
+ if (!perm.containsAll(execPerms)) {
+ throw new Error(entry + " has not all executable permissions!\n" +
+ "Should have: " + execPerms + "\nbut has: " + perm);
+ }
+ } catch (UnsupportedOperationException e) {}
+ }
+ }
+ }
+}
--- a/jdk/test/sun/security/krb5/auto/KDC.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/sun/security/krb5/auto/KDC.java Mon Aug 03 16:33:06 2015 -0700
@@ -745,9 +745,10 @@
bFlags[Krb5.TKT_OPTS_FORWARDABLE] = true;
}
}
+ // We do not request for addresses for FORWARDED tickets
if (options.containsKey(Option.CHECK_ADDRESSES)
&& body.kdcOptions.get(KDCOptions.FORWARDED)
- && body.addresses == null) {
+ && body.addresses != null) {
throw new KrbException(Krb5.KDC_ERR_BADOPTION);
}
if (body.kdcOptions.get(KDCOptions.FORWARDED) ||
--- a/jdk/test/sun/text/resources/LocaleData Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/sun/text/resources/LocaleData Mon Aug 03 16:33:06 2015 -0700
@@ -8284,3 +8284,6 @@
# bug #8075173
FormatData/de/standalone.MonthAbbreviations/2=M\u00e4r
+
+# bug #8129361
+CurrencyNames//hrk=Kuna
--- a/jdk/test/sun/text/resources/LocaleDataTest.java Mon Aug 03 15:48:33 2015 -0500
+++ b/jdk/test/sun/text/resources/LocaleDataTest.java Mon Aug 03 16:33:06 2015 -0700
@@ -36,7 +36,7 @@
* 6919624 6998391 7019267 7020960 7025837 7020583 7036905 7066203 7101495
* 7003124 7085757 7028073 7171028 7189611 8000983 7195759 8004489 8006509
* 7114053 7074882 7040556 8008577 8013836 8021121 6192407 6931564 8027695
- * 8017142 8037343 8055222 8042126 8074791 8075173 8080774
+ * 8017142 8037343 8055222 8042126 8074791 8075173 8080774 8129361
* @summary Verify locale data
* @run main LocaleDataTest
* @run main LocaleDataTest -cldr
--- a/langtools/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -317,3 +317,4 @@
832e51533706b633d37a77282ae94d016b95e649 jdk9-b72
1fccc38cd6f56cb2173195e317ba2784b484c2d1 jdk9-b73
02681b7c4232ba5d43ccba794492db9502211ff0 jdk9-b74
+827915d1e55eac4f2e138f9b8c79d154862c2284 jdk9-b75
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java Mon Aug 03 16:33:06 2015 -0700
@@ -44,7 +44,6 @@
import com.sun.tools.javac.code.Types.FunctionDescriptorLookupError;
import com.sun.tools.javac.comp.Check.CheckContext;
import com.sun.tools.javac.comp.DeferredAttr.AttrMode;
-import com.sun.tools.javac.comp.Infer.InferenceContext;
import com.sun.tools.javac.comp.Infer.FreeTypeListener;
import com.sun.tools.javac.jvm.*;
import static com.sun.tools.javac.resources.CompilerProperties.Fragments.Diamond;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Mon Aug 03 16:33:06 2015 -0700
@@ -43,13 +43,10 @@
import com.sun.tools.javac.code.Lint;
import com.sun.tools.javac.code.Lint.LintCategory;
-import com.sun.tools.javac.code.Scope.CompoundScope;
-import com.sun.tools.javac.code.Scope.NamedImportScope;
import com.sun.tools.javac.code.Scope.WriteableScope;
import com.sun.tools.javac.code.Type.*;
import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.comp.DeferredAttr.DeferredAttrContext;
-import com.sun.tools.javac.comp.Infer.InferenceContext;
import com.sun.tools.javac.comp.Infer.FreeTypeListener;
import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.tree.JCTree.JCPolyExpression.*;
@@ -456,7 +453,7 @@
*/
public Warner checkWarner(DiagnosticPosition pos, Type found, Type req);
- public Infer.InferenceContext inferenceContext();
+ public InferenceContext inferenceContext();
public DeferredAttr.DeferredAttrContext deferredAttrContext();
}
@@ -486,7 +483,7 @@
return enclosingContext.checkWarner(pos, found, req);
}
- public Infer.InferenceContext inferenceContext() {
+ public InferenceContext inferenceContext() {
return enclosingContext.inferenceContext();
}
@@ -535,7 +532,7 @@
}
Type checkType(final DiagnosticPosition pos, final Type found, final Type req, final CheckContext checkContext) {
- final Infer.InferenceContext inferenceContext = checkContext.inferenceContext();
+ final InferenceContext inferenceContext = checkContext.inferenceContext();
if (inferenceContext.free(req) || inferenceContext.free(found)) {
inferenceContext.addFreeTypeListener(List.of(req, found), new FreeTypeListener() {
@Override
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Mon Aug 03 16:33:06 2015 -0700
@@ -38,7 +38,6 @@
import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.code.Type.*;
import com.sun.tools.javac.comp.Attr.ResultInfo;
-import com.sun.tools.javac.comp.Infer.InferenceContext;
import com.sun.tools.javac.comp.Resolve.MethodResolutionPhase;
import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.util.JCDiagnostic.DiagnosticType;
@@ -1013,7 +1012,7 @@
class CheckStuckPolicy extends PolyScanner implements DeferredStuckPolicy, Infer.FreeTypeListener {
Type pt;
- Infer.InferenceContext inferenceContext;
+ InferenceContext inferenceContext;
Set<Type> stuckVars = new LinkedHashSet<>();
Set<Type> depVars = new LinkedHashSet<>();
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java Mon Aug 03 16:33:06 2015 -0700
@@ -25,7 +25,6 @@
package com.sun.tools.javac.comp;
-import com.sun.tools.javac.code.Type.TypeMapping;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.JCTree.JCTypeCast;
import com.sun.tools.javac.tree.TreeInfo;
@@ -112,6 +111,8 @@
&& options.isUnset("useLegacyInference");
dependenciesFolder = options.get("dumpInferenceGraphsTo");
pendingGraphs = List.nil();
+
+ emptyContext = new InferenceContext(this, List.<Type>nil());
}
/** A value for prototypes that admit any type, including polymorphic ones. */
@@ -170,7 +171,7 @@
Resolve.MethodResolutionContext resolveContext,
Warner warn) throws InferenceException {
//-System.err.println("instantiateMethod(" + tvars + ", " + mt + ", " + argtypes + ")"); //DEBUG
- final InferenceContext inferenceContext = new InferenceContext(tvars); //B0
+ final InferenceContext inferenceContext = new InferenceContext(this, tvars); //B0
inferenceException.clear();
try {
DeferredAttr.DeferredAttrContext deferredAttrContext =
@@ -410,7 +411,7 @@
/**
* Infer cyclic inference variables as described in 15.12.2.8.
*/
- private void instantiateAsUninferredVars(List<Type> vars, InferenceContext inferenceContext) {
+ void instantiateAsUninferredVars(List<Type> vars, InferenceContext inferenceContext) {
ListBuffer<Type> todo = new ListBuffer<>();
//step 1 - create fresh tvars
for (Type t : vars) {
@@ -528,7 +529,7 @@
} else {
Type formalInterface = funcInterface.tsym.type;
InferenceContext funcInterfaceContext =
- new InferenceContext(funcInterface.tsym.type.getTypeArguments());
+ new InferenceContext(this, funcInterface.tsym.type.getTypeArguments());
Assert.check(paramTypes != null);
//get constraints from explicit params (this is done by
@@ -710,7 +711,7 @@
*/
CHECK_BOUNDS() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
uv.substBounds(inferenceContext.inferenceVars(), inferenceContext.instTypes(), infer.types);
infer.checkCompatibleUpperBounds(uv, inferenceContext);
if (uv.inst != null) {
@@ -746,7 +747,7 @@
*/
EQ_CHECK_LEGACY() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
Type eq = null;
for (Type e : uv.getBounds(InferenceBound.EQ)) {
Assert.check(!inferenceContext.free(e));
@@ -780,7 +781,7 @@
EQ_CHECK() {
@Override
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type e : uv.getBounds(InferenceBound.EQ)) {
if (e.containsAny(inferenceContext.inferenceVars())) continue;
for (Type u : uv.getBounds(InferenceBound.UPPER)) {
@@ -807,7 +808,7 @@
*/
CROSS_UPPER_LOWER() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type b1 : uv.getBounds(InferenceBound.UPPER)) {
for (Type b2 : uv.getBounds(InferenceBound.LOWER)) {
if (!isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn , infer)) {
@@ -830,7 +831,7 @@
*/
CROSS_UPPER_EQ() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type b1 : uv.getBounds(InferenceBound.UPPER)) {
for (Type b2 : uv.getBounds(InferenceBound.EQ)) {
if (!isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn, infer)) {
@@ -853,7 +854,7 @@
*/
CROSS_EQ_LOWER() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type b1 : uv.getBounds(InferenceBound.EQ)) {
for (Type b2 : uv.getBounds(InferenceBound.LOWER)) {
if (!isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn, infer)) {
@@ -878,7 +879,7 @@
CROSS_UPPER_UPPER() {
@Override
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
List<Type> boundList = uv.getBounds(InferenceBound.UPPER).stream()
.collect(infer.types.closureCollector(true, infer.types::isSameType));
List<Type> boundListTail = boundList.tail;
@@ -928,7 +929,7 @@
*/
CROSS_EQ_EQ() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type b1 : uv.getBounds(InferenceBound.EQ)) {
for (Type b2 : uv.getBounds(InferenceBound.EQ)) {
if (b1 != b2) {
@@ -952,7 +953,7 @@
*/
PROP_UPPER() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type b : uv.getBounds(InferenceBound.UPPER)) {
if (inferenceContext.inferenceVars().contains(b)) {
UndetVar uv2 = (UndetVar)inferenceContext.asUndetVar(b);
@@ -984,7 +985,7 @@
*/
PROP_LOWER() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type b : uv.getBounds(InferenceBound.LOWER)) {
if (inferenceContext.inferenceVars().contains(b)) {
UndetVar uv2 = (UndetVar)inferenceContext.asUndetVar(b);
@@ -1016,7 +1017,7 @@
*/
PROP_EQ() {
public void apply(UndetVar uv, InferenceContext inferenceContext, Warner warn) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type b : uv.getBounds(InferenceBound.EQ)) {
if (inferenceContext.inferenceVars().contains(b)) {
UndetVar uv2 = (UndetVar)inferenceContext.asUndetVar(b);
@@ -1524,7 +1525,7 @@
LOWER(InferenceBound.LOWER) {
@Override
Type solve(UndetVar uv, InferenceContext inferenceContext) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
List<Type> lobounds = filterBounds(uv, inferenceContext);
//note: lobounds should have at least one element
Type owntype = lobounds.tail.tail == null ? lobounds.head : infer.types.lub(lobounds);
@@ -1553,7 +1554,7 @@
//not an unbounded undet var
return false;
}
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
for (Type db : t.getDeclaredBounds()) {
if (t.isInterface()) continue;
if (infer.types.asSuper(infer.syms.runtimeExceptionType, db.tsym) != null) {
@@ -1567,7 +1568,7 @@
@Override
Type solve(UndetVar uv, InferenceContext inferenceContext) {
- return inferenceContext.infer().syms.runtimeExceptionType;
+ return inferenceContext.infer.syms.runtimeExceptionType;
}
},
/**
@@ -1577,7 +1578,7 @@
UPPER(InferenceBound.UPPER) {
@Override
Type solve(UndetVar uv, InferenceContext inferenceContext) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
List<Type> hibounds = filterBounds(uv, inferenceContext);
//note: hibounds should have at least one element
Type owntype = hibounds.tail.tail == null ? hibounds.head : infer.types.glb(hibounds);
@@ -1618,7 +1619,7 @@
@Override
Type solve(UndetVar uv, InferenceContext inferenceContext) {
- Infer infer = inferenceContext.infer();
+ Infer infer = inferenceContext.infer;
Type upper = UPPER.filterBounds(uv, inferenceContext).nonEmpty() ?
UPPER.solve(uv, inferenceContext) :
infer.syms.objectType;
@@ -2082,419 +2083,6 @@
void typesInferred(InferenceContext inferenceContext);
}
- /**
- * An inference context keeps track of the set of variables that are free
- * in the current context. It provides utility methods for opening/closing
- * types to their corresponding free/closed forms. It also provide hooks for
- * attaching deferred post-inference action (see PendingCheck). Finally,
- * it can be used as an entry point for performing upper/lower bound inference
- * (see InferenceKind).
- */
- class InferenceContext {
-
- /** list of inference vars as undet vars */
- List<Type> undetvars;
-
- /** list of inference vars in this context */
- List<Type> inferencevars;
-
- Map<FreeTypeListener, List<Type>> freeTypeListeners = new HashMap<>();
-
- List<FreeTypeListener> freetypeListeners = List.nil();
-
- public InferenceContext(List<Type> inferencevars) {
- this.undetvars = inferencevars.map(fromTypeVarFun);
- this.inferencevars = inferencevars;
- }
- //where
- TypeMapping<Void> fromTypeVarFun = new TypeMapping<Void>() {
- @Override
- public Type visitTypeVar(TypeVar tv, Void aVoid) {
- return new UndetVar(tv, types);
- }
-
- @Override
- public Type visitCapturedType(CapturedType t, Void aVoid) {
- return new CapturedUndetVar(t, types);
- }
- };
-
- /**
- * add a new inference var to this inference context
- */
- void addVar(TypeVar t) {
- this.undetvars = this.undetvars.prepend(fromTypeVarFun.apply(t));
- this.inferencevars = this.inferencevars.prepend(t);
- }
-
- /**
- * returns the list of free variables (as type-variables) in this
- * inference context
- */
- List<Type> inferenceVars() {
- return inferencevars;
- }
-
- /**
- * returns the list of uninstantiated variables (as type-variables) in this
- * inference context
- */
- List<Type> restvars() {
- return filterVars(new Filter<UndetVar>() {
- public boolean accepts(UndetVar uv) {
- return uv.inst == null;
- }
- });
- }
-
- /**
- * returns the list of instantiated variables (as type-variables) in this
- * inference context
- */
- List<Type> instvars() {
- return filterVars(new Filter<UndetVar>() {
- public boolean accepts(UndetVar uv) {
- return uv.inst != null;
- }
- });
- }
-
- /**
- * Get list of bounded inference variables (where bound is other than
- * declared bounds).
- */
- final List<Type> boundedVars() {
- return filterVars(new Filter<UndetVar>() {
- public boolean accepts(UndetVar uv) {
- return uv.getBounds(InferenceBound.UPPER)
- .diff(uv.getDeclaredBounds())
- .appendList(uv.getBounds(InferenceBound.EQ, InferenceBound.LOWER)).nonEmpty();
- }
- });
- }
-
- /* Returns the corresponding inference variables.
- */
- private List<Type> filterVars(Filter<UndetVar> fu) {
- ListBuffer<Type> res = new ListBuffer<>();
- for (Type t : undetvars) {
- UndetVar uv = (UndetVar)t;
- if (fu.accepts(uv)) {
- res.append(uv.qtype);
- }
- }
- return res.toList();
- }
-
- /**
- * is this type free?
- */
- final boolean free(Type t) {
- return t.containsAny(inferencevars);
- }
-
- final boolean free(List<Type> ts) {
- for (Type t : ts) {
- if (free(t)) return true;
- }
- return false;
- }
-
- /**
- * Returns a list of free variables in a given type
- */
- final List<Type> freeVarsIn(Type t) {
- ListBuffer<Type> buf = new ListBuffer<>();
- for (Type iv : inferenceVars()) {
- if (t.contains(iv)) {
- buf.add(iv);
- }
- }
- return buf.toList();
- }
-
- final List<Type> freeVarsIn(List<Type> ts) {
- ListBuffer<Type> buf = new ListBuffer<>();
- for (Type t : ts) {
- buf.appendList(freeVarsIn(t));
- }
- ListBuffer<Type> buf2 = new ListBuffer<>();
- for (Type t : buf) {
- if (!buf2.contains(t)) {
- buf2.add(t);
- }
- }
- return buf2.toList();
- }
-
- /**
- * Replace all free variables in a given type with corresponding
- * undet vars (used ahead of subtyping/compatibility checks to allow propagation
- * of inference constraints).
- */
- final Type asUndetVar(Type t) {
- return types.subst(t, inferencevars, undetvars);
- }
-
- final List<Type> asUndetVars(List<Type> ts) {
- ListBuffer<Type> buf = new ListBuffer<>();
- for (Type t : ts) {
- buf.append(asUndetVar(t));
- }
- return buf.toList();
- }
-
- List<Type> instTypes() {
- ListBuffer<Type> buf = new ListBuffer<>();
- for (Type t : undetvars) {
- UndetVar uv = (UndetVar)t;
- buf.append(uv.inst != null ? uv.inst : uv.qtype);
- }
- return buf.toList();
- }
-
- /**
- * Replace all free variables in a given type with corresponding
- * instantiated types - if one or more free variable has not been
- * fully instantiated, it will still be available in the resulting type.
- */
- Type asInstType(Type t) {
- return types.subst(t, inferencevars, instTypes());
- }
-
- List<Type> asInstTypes(List<Type> ts) {
- ListBuffer<Type> buf = new ListBuffer<>();
- for (Type t : ts) {
- buf.append(asInstType(t));
- }
- return buf.toList();
- }
-
- /**
- * Add custom hook for performing post-inference action
- */
- void addFreeTypeListener(List<Type> types, FreeTypeListener ftl) {
- freeTypeListeners.put(ftl, freeVarsIn(types));
- }
-
- /**
- * Mark the inference context as complete and trigger evaluation
- * of all deferred checks.
- */
- void notifyChange() {
- notifyChange(inferencevars.diff(restvars()));
- }
-
- void notifyChange(List<Type> inferredVars) {
- InferenceException thrownEx = null;
- for (Map.Entry<FreeTypeListener, List<Type>> entry :
- new HashMap<>(freeTypeListeners).entrySet()) {
- if (!Type.containsAny(entry.getValue(), inferencevars.diff(inferredVars))) {
- try {
- entry.getKey().typesInferred(this);
- freeTypeListeners.remove(entry.getKey());
- } catch (InferenceException ex) {
- if (thrownEx == null) {
- thrownEx = ex;
- }
- }
- }
- }
- //inference exception multiplexing - present any inference exception
- //thrown when processing listeners as a single one
- if (thrownEx != null) {
- throw thrownEx;
- }
- }
-
- /**
- * Save the state of this inference context
- */
- List<Type> save() {
- ListBuffer<Type> buf = new ListBuffer<>();
- for (Type t : undetvars) {
- UndetVar uv = (UndetVar)t;
- UndetVar uv2 = new UndetVar((TypeVar)uv.qtype, types);
- for (InferenceBound ib : InferenceBound.values()) {
- for (Type b : uv.getBounds(ib)) {
- uv2.addBound(ib, b, types);
- }
- }
- uv2.inst = uv.inst;
- buf.add(uv2);
- }
- return buf.toList();
- }
-
- /**
- * Restore the state of this inference context to the previous known checkpoint
- */
- void rollback(List<Type> saved_undet) {
- Assert.check(saved_undet != null && saved_undet.length() == undetvars.length());
- //restore bounds (note: we need to preserve the old instances)
- for (Type t : undetvars) {
- UndetVar uv = (UndetVar)t;
- UndetVar uv_saved = (UndetVar)saved_undet.head;
- for (InferenceBound ib : InferenceBound.values()) {
- uv.setBounds(ib, uv_saved.getBounds(ib));
- }
- uv.inst = uv_saved.inst;
- saved_undet = saved_undet.tail;
- }
- }
-
- /**
- * Copy variable in this inference context to the given context
- */
- void dupTo(final InferenceContext that) {
- that.inferencevars = that.inferencevars.appendList(
- inferencevars.diff(that.inferencevars));
- that.undetvars = that.undetvars.appendList(
- undetvars.diff(that.undetvars));
- //set up listeners to notify original inference contexts as
- //propagated vars are inferred in new context
- for (Type t : inferencevars) {
- that.freeTypeListeners.put(new FreeTypeListener() {
- public void typesInferred(InferenceContext inferenceContext) {
- InferenceContext.this.notifyChange();
- }
- }, List.of(t));
- }
- }
-
- private void solve(GraphStrategy ss, Warner warn) {
- solve(ss, new HashMap<Type, Set<Type>>(), warn);
- }
-
- /**
- * Solve with given graph strategy.
- */
- private void solve(GraphStrategy ss, Map<Type, Set<Type>> stuckDeps, Warner warn) {
- GraphSolver s = new GraphSolver(this, stuckDeps, warn);
- s.solve(ss);
- }
-
- /**
- * Solve all variables in this context.
- */
- public void solve(Warner warn) {
- solve(new LeafSolver() {
- public boolean done() {
- return restvars().isEmpty();
- }
- }, warn);
- }
-
- /**
- * Solve all variables in the given list.
- */
- public void solve(final List<Type> vars, Warner warn) {
- solve(new BestLeafSolver(vars) {
- public boolean done() {
- return !free(asInstTypes(vars));
- }
- }, warn);
- }
-
- /**
- * Solve at least one variable in given list.
- */
- public void solveAny(List<Type> varsToSolve, Map<Type, Set<Type>> optDeps, Warner warn) {
- solve(new BestLeafSolver(varsToSolve.intersect(restvars())) {
- public boolean done() {
- return instvars().intersect(varsToSolve).nonEmpty();
- }
- }, optDeps, warn);
- }
-
- /**
- * Apply a set of inference steps
- */
- private boolean solveBasic(EnumSet<InferenceStep> steps) {
- return solveBasic(inferencevars, steps);
- }
-
- private boolean solveBasic(List<Type> varsToSolve, EnumSet<InferenceStep> steps) {
- boolean changed = false;
- for (Type t : varsToSolve.intersect(restvars())) {
- UndetVar uv = (UndetVar)asUndetVar(t);
- for (InferenceStep step : steps) {
- if (step.accepts(uv, this)) {
- uv.inst = step.solve(uv, this);
- changed = true;
- break;
- }
- }
- }
- return changed;
- }
-
- /**
- * Instantiate inference variables in legacy mode (JLS 15.12.2.7, 15.12.2.8).
- * During overload resolution, instantiation is done by doing a partial
- * inference process using eq/lower bound instantiation. During check,
- * we also instantiate any remaining vars by repeatedly using eq/upper
- * instantiation, until all variables are solved.
- */
- public void solveLegacy(boolean partial, Warner warn, EnumSet<InferenceStep> steps) {
- while (true) {
- boolean stuck = !solveBasic(steps);
- if (restvars().isEmpty() || partial) {
- //all variables have been instantiated - exit
- break;
- } else if (stuck) {
- //some variables could not be instantiated because of cycles in
- //upper bounds - provide a (possibly recursive) default instantiation
- instantiateAsUninferredVars(restvars(), this);
- break;
- } else {
- //some variables have been instantiated - replace newly instantiated
- //variables in remaining upper bounds and continue
- for (Type t : undetvars) {
- UndetVar uv = (UndetVar)t;
- uv.substBounds(inferenceVars(), instTypes(), types);
- }
- }
- }
- checkWithinBounds(this, warn);
- }
-
- private Infer infer() {
- //back-door to infer
- return Infer.this;
- }
-
- @Override
- public String toString() {
- return "Inference vars: " + inferencevars + '\n' +
- "Undet vars: " + undetvars;
- }
-
- /* Method Types.capture() generates a new type every time it's applied
- * to a wildcard parameterized type. This is intended functionality but
- * there are some cases when what you need is not to generate a new
- * captured type but to check that a previously generated captured type
- * is correct. There are cases when caching a captured type for later
- * reuse is sound. In general two captures from the same AST are equal.
- * This is why the tree is used as the key of the map below. This map
- * stores a Type per AST.
- */
- Map<JCTree, Type> captureTypeCache = new HashMap<>();
-
- Type cachedCapture(JCTree tree, Type t, boolean readOnly) {
- Type captured = captureTypeCache.get(tree);
- if (captured != null) {
- return captured;
- }
-
- Type result = types.capture(t);
- if (result != t && !readOnly) { // then t is a wildcard parameterized type
- captureTypeCache.put(tree, result);
- }
- return result;
- }
- }
-
- final InferenceContext emptyContext = new InferenceContext(List.<Type>nil());
+ final InferenceContext emptyContext;
// </editor-fold>
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,480 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.tools.javac.comp;
+
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import com.sun.tools.javac.code.Symtab;
+import com.sun.tools.javac.code.Type;
+import com.sun.tools.javac.code.Type.CapturedType;
+import com.sun.tools.javac.code.Type.CapturedUndetVar;
+import com.sun.tools.javac.code.Type.TypeMapping;
+import com.sun.tools.javac.code.Type.TypeVar;
+import com.sun.tools.javac.code.Type.UndetVar;
+import com.sun.tools.javac.code.Type.UndetVar.InferenceBound;
+import com.sun.tools.javac.code.Types;
+import com.sun.tools.javac.comp.Infer.BestLeafSolver;
+import com.sun.tools.javac.comp.Infer.FreeTypeListener;
+import com.sun.tools.javac.comp.Infer.GraphSolver;
+import com.sun.tools.javac.comp.Infer.GraphStrategy;
+import com.sun.tools.javac.comp.Infer.InferenceException;
+import com.sun.tools.javac.comp.Infer.InferenceStep;
+import com.sun.tools.javac.comp.Infer.LeafSolver;
+import com.sun.tools.javac.tree.JCTree;
+import com.sun.tools.javac.tree.TreeMaker;
+import com.sun.tools.javac.util.Assert;
+import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.Filter;
+import com.sun.tools.javac.util.JCDiagnostic;
+import com.sun.tools.javac.util.JCDiagnostic.Factory;
+import com.sun.tools.javac.util.List;
+import com.sun.tools.javac.util.ListBuffer;
+import com.sun.tools.javac.util.Log;
+import com.sun.tools.javac.util.Warner;
+
+/**
+ * An inference context keeps track of the set of variables that are free
+ * in the current context. It provides utility methods for opening/closing
+ * types to their corresponding free/closed forms. It also provide hooks for
+ * attaching deferred post-inference action (see PendingCheck). Finally,
+ * it can be used as an entry point for performing upper/lower bound inference
+ * (see InferenceKind).
+ *
+ * <p><b>This is NOT part of any supported API.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+class InferenceContext {
+
+ /** list of inference vars as undet vars */
+ List<Type> undetvars;
+
+ /** list of inference vars in this context */
+ List<Type> inferencevars;
+
+ Map<FreeTypeListener, List<Type>> freeTypeListeners = new HashMap<>();
+
+ List<FreeTypeListener> freetypeListeners = List.nil();
+
+ Types types;
+ Infer infer;
+
+ public InferenceContext(Infer infer, List<Type> inferencevars) {
+ this.inferencevars = inferencevars;
+
+ this.infer = infer;
+ this.types = infer.types;
+
+ fromTypeVarFun = new TypeMapping<Void>() {
+ @Override
+ public Type visitTypeVar(TypeVar tv, Void aVoid) {
+ return new UndetVar(tv, types);
+ }
+
+ @Override
+ public Type visitCapturedType(CapturedType t, Void aVoid) {
+ return new CapturedUndetVar(t, types);
+ }
+ };
+ this.undetvars = inferencevars.map(fromTypeVarFun);
+ }
+
+ TypeMapping<Void> fromTypeVarFun;
+
+ /**
+ * add a new inference var to this inference context
+ */
+ void addVar(TypeVar t) {
+ this.undetvars = this.undetvars.prepend(fromTypeVarFun.apply(t));
+ this.inferencevars = this.inferencevars.prepend(t);
+ }
+
+ /**
+ * returns the list of free variables (as type-variables) in this
+ * inference context
+ */
+ List<Type> inferenceVars() {
+ return inferencevars;
+ }
+
+ /**
+ * returns the list of uninstantiated variables (as type-variables) in this
+ * inference context
+ */
+ List<Type> restvars() {
+ return filterVars(new Filter<UndetVar>() {
+ public boolean accepts(UndetVar uv) {
+ return uv.inst == null;
+ }
+ });
+ }
+
+ /**
+ * returns the list of instantiated variables (as type-variables) in this
+ * inference context
+ */
+ List<Type> instvars() {
+ return filterVars(new Filter<UndetVar>() {
+ public boolean accepts(UndetVar uv) {
+ return uv.inst != null;
+ }
+ });
+ }
+
+ /**
+ * Get list of bounded inference variables (where bound is other than
+ * declared bounds).
+ */
+ final List<Type> boundedVars() {
+ return filterVars(new Filter<UndetVar>() {
+ public boolean accepts(UndetVar uv) {
+ return uv.getBounds(InferenceBound.UPPER)
+ .diff(uv.getDeclaredBounds())
+ .appendList(uv.getBounds(InferenceBound.EQ, InferenceBound.LOWER)).nonEmpty();
+ }
+ });
+ }
+
+ /* Returns the corresponding inference variables.
+ */
+ private List<Type> filterVars(Filter<UndetVar> fu) {
+ ListBuffer<Type> res = new ListBuffer<>();
+ for (Type t : undetvars) {
+ UndetVar uv = (UndetVar)t;
+ if (fu.accepts(uv)) {
+ res.append(uv.qtype);
+ }
+ }
+ return res.toList();
+ }
+
+ /**
+ * is this type free?
+ */
+ final boolean free(Type t) {
+ return t.containsAny(inferencevars);
+ }
+
+ final boolean free(List<Type> ts) {
+ for (Type t : ts) {
+ if (free(t)) return true;
+ }
+ return false;
+ }
+
+ /**
+ * Returns a list of free variables in a given type
+ */
+ final List<Type> freeVarsIn(Type t) {
+ ListBuffer<Type> buf = new ListBuffer<>();
+ for (Type iv : inferenceVars()) {
+ if (t.contains(iv)) {
+ buf.add(iv);
+ }
+ }
+ return buf.toList();
+ }
+
+ final List<Type> freeVarsIn(List<Type> ts) {
+ ListBuffer<Type> buf = new ListBuffer<>();
+ for (Type t : ts) {
+ buf.appendList(freeVarsIn(t));
+ }
+ ListBuffer<Type> buf2 = new ListBuffer<>();
+ for (Type t : buf) {
+ if (!buf2.contains(t)) {
+ buf2.add(t);
+ }
+ }
+ return buf2.toList();
+ }
+
+ /**
+ * Replace all free variables in a given type with corresponding
+ * undet vars (used ahead of subtyping/compatibility checks to allow propagation
+ * of inference constraints).
+ */
+ final Type asUndetVar(Type t) {
+ return types.subst(t, inferencevars, undetvars);
+ }
+
+ final List<Type> asUndetVars(List<Type> ts) {
+ ListBuffer<Type> buf = new ListBuffer<>();
+ for (Type t : ts) {
+ buf.append(asUndetVar(t));
+ }
+ return buf.toList();
+ }
+
+ List<Type> instTypes() {
+ ListBuffer<Type> buf = new ListBuffer<>();
+ for (Type t : undetvars) {
+ UndetVar uv = (UndetVar)t;
+ buf.append(uv.inst != null ? uv.inst : uv.qtype);
+ }
+ return buf.toList();
+ }
+
+ /**
+ * Replace all free variables in a given type with corresponding
+ * instantiated types - if one or more free variable has not been
+ * fully instantiated, it will still be available in the resulting type.
+ */
+ Type asInstType(Type t) {
+ return types.subst(t, inferencevars, instTypes());
+ }
+
+ List<Type> asInstTypes(List<Type> ts) {
+ ListBuffer<Type> buf = new ListBuffer<>();
+ for (Type t : ts) {
+ buf.append(asInstType(t));
+ }
+ return buf.toList();
+ }
+
+ /**
+ * Add custom hook for performing post-inference action
+ */
+ void addFreeTypeListener(List<Type> types, FreeTypeListener ftl) {
+ freeTypeListeners.put(ftl, freeVarsIn(types));
+ }
+
+ /**
+ * Mark the inference context as complete and trigger evaluation
+ * of all deferred checks.
+ */
+ void notifyChange() {
+ notifyChange(inferencevars.diff(restvars()));
+ }
+
+ void notifyChange(List<Type> inferredVars) {
+ InferenceException thrownEx = null;
+ for (Map.Entry<FreeTypeListener, List<Type>> entry :
+ new HashMap<>(freeTypeListeners).entrySet()) {
+ if (!Type.containsAny(entry.getValue(), inferencevars.diff(inferredVars))) {
+ try {
+ entry.getKey().typesInferred(this);
+ freeTypeListeners.remove(entry.getKey());
+ } catch (InferenceException ex) {
+ if (thrownEx == null) {
+ thrownEx = ex;
+ }
+ }
+ }
+ }
+ //inference exception multiplexing - present any inference exception
+ //thrown when processing listeners as a single one
+ if (thrownEx != null) {
+ throw thrownEx;
+ }
+ }
+
+ /**
+ * Save the state of this inference context
+ */
+ List<Type> save() {
+ ListBuffer<Type> buf = new ListBuffer<>();
+ for (Type t : undetvars) {
+ UndetVar uv = (UndetVar)t;
+ UndetVar uv2 = new UndetVar((TypeVar)uv.qtype, types);
+ for (InferenceBound ib : InferenceBound.values()) {
+ for (Type b : uv.getBounds(ib)) {
+ uv2.addBound(ib, b, types);
+ }
+ }
+ uv2.inst = uv.inst;
+ buf.add(uv2);
+ }
+ return buf.toList();
+ }
+
+ /**
+ * Restore the state of this inference context to the previous known checkpoint
+ */
+ void rollback(List<Type> saved_undet) {
+ Assert.check(saved_undet != null && saved_undet.length() == undetvars.length());
+ //restore bounds (note: we need to preserve the old instances)
+ for (Type t : undetvars) {
+ UndetVar uv = (UndetVar)t;
+ UndetVar uv_saved = (UndetVar)saved_undet.head;
+ for (InferenceBound ib : InferenceBound.values()) {
+ uv.setBounds(ib, uv_saved.getBounds(ib));
+ }
+ uv.inst = uv_saved.inst;
+ saved_undet = saved_undet.tail;
+ }
+ }
+
+ /**
+ * Copy variable in this inference context to the given context
+ */
+ void dupTo(final InferenceContext that) {
+ that.inferencevars = that.inferencevars.appendList(
+ inferencevars.diff(that.inferencevars));
+ that.undetvars = that.undetvars.appendList(
+ undetvars.diff(that.undetvars));
+ //set up listeners to notify original inference contexts as
+ //propagated vars are inferred in new context
+ for (Type t : inferencevars) {
+ that.freeTypeListeners.put(new FreeTypeListener() {
+ public void typesInferred(InferenceContext inferenceContext) {
+ InferenceContext.this.notifyChange();
+ }
+ }, List.of(t));
+ }
+ }
+
+ private void solve(GraphStrategy ss, Warner warn) {
+ solve(ss, new HashMap<Type, Set<Type>>(), warn);
+ }
+
+ /**
+ * Solve with given graph strategy.
+ */
+ private void solve(GraphStrategy ss, Map<Type, Set<Type>> stuckDeps, Warner warn) {
+ GraphSolver s = infer.new GraphSolver(this, stuckDeps, warn);
+ s.solve(ss);
+ }
+
+ /**
+ * Solve all variables in this context.
+ */
+ public void solve(Warner warn) {
+ solve(infer.new LeafSolver() {
+ public boolean done() {
+ return restvars().isEmpty();
+ }
+ }, warn);
+ }
+
+ /**
+ * Solve all variables in the given list.
+ */
+ public void solve(final List<Type> vars, Warner warn) {
+ solve(infer.new BestLeafSolver(vars) {
+ public boolean done() {
+ return !free(asInstTypes(vars));
+ }
+ }, warn);
+ }
+
+ /**
+ * Solve at least one variable in given list.
+ */
+ public void solveAny(List<Type> varsToSolve, Map<Type, Set<Type>> optDeps, Warner warn) {
+ solve(infer.new BestLeafSolver(varsToSolve.intersect(restvars())) {
+ public boolean done() {
+ return instvars().intersect(varsToSolve).nonEmpty();
+ }
+ }, optDeps, warn);
+ }
+
+ /**
+ * Apply a set of inference steps
+ */
+ private boolean solveBasic(EnumSet<InferenceStep> steps) {
+ return solveBasic(inferencevars, steps);
+ }
+
+ boolean solveBasic(List<Type> varsToSolve, EnumSet<InferenceStep> steps) {
+ boolean changed = false;
+ for (Type t : varsToSolve.intersect(restvars())) {
+ UndetVar uv = (UndetVar)asUndetVar(t);
+ for (InferenceStep step : steps) {
+ if (step.accepts(uv, this)) {
+ uv.inst = step.solve(uv, this);
+ changed = true;
+ break;
+ }
+ }
+ }
+ return changed;
+ }
+
+ /**
+ * Instantiate inference variables in legacy mode (JLS 15.12.2.7, 15.12.2.8).
+ * During overload resolution, instantiation is done by doing a partial
+ * inference process using eq/lower bound instantiation. During check,
+ * we also instantiate any remaining vars by repeatedly using eq/upper
+ * instantiation, until all variables are solved.
+ */
+ public void solveLegacy(boolean partial, Warner warn, EnumSet<InferenceStep> steps) {
+ while (true) {
+ boolean stuck = !solveBasic(steps);
+ if (restvars().isEmpty() || partial) {
+ //all variables have been instantiated - exit
+ break;
+ } else if (stuck) {
+ //some variables could not be instantiated because of cycles in
+ //upper bounds - provide a (possibly recursive) default instantiation
+ infer.instantiateAsUninferredVars(restvars(), this);
+ break;
+ } else {
+ //some variables have been instantiated - replace newly instantiated
+ //variables in remaining upper bounds and continue
+ for (Type t : undetvars) {
+ UndetVar uv = (UndetVar)t;
+ uv.substBounds(inferenceVars(), instTypes(), types);
+ }
+ }
+ }
+ infer.checkWithinBounds(this, warn);
+ }
+
+ @Override
+ public String toString() {
+ return "Inference vars: " + inferencevars + '\n' +
+ "Undet vars: " + undetvars;
+ }
+
+ /* Method Types.capture() generates a new type every time it's applied
+ * to a wildcard parameterized type. This is intended functionality but
+ * there are some cases when what you need is not to generate a new
+ * captured type but to check that a previously generated captured type
+ * is correct. There are cases when caching a captured type for later
+ * reuse is sound. In general two captures from the same AST are equal.
+ * This is why the tree is used as the key of the map below. This map
+ * stores a Type per AST.
+ */
+ Map<JCTree, Type> captureTypeCache = new HashMap<>();
+
+ Type cachedCapture(JCTree tree, Type t, boolean readOnly) {
+ Type captured = captureTypeCache.get(tree);
+ if (captured != null) {
+ return captured;
+ }
+
+ Type result = types.capture(t);
+ if (result != t && !readOnly) { // then t is a wildcard parameterized type
+ captureTypeCache.put(tree, result);
+ }
+ return result;
+ }
+}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Mon Aug 03 16:33:06 2015 -0700
@@ -3084,7 +3084,7 @@
if (!unboxedTarget.hasTag(NONE)) {
if (!types.isSubtype(tree.type, unboxedTarget)) //e.g. Character c = 89;
tree.type = unboxedTarget.constType(tree.type.constValue());
- return (T)boxPrimitive((JCExpression)tree, type);
+ return (T)boxPrimitive((JCExpression)tree, types.erasure(type));
} else {
tree = (T)boxPrimitive((JCExpression)tree);
}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Mon Aug 03 16:33:06 2015 -0700
@@ -35,7 +35,6 @@
import com.sun.tools.javac.comp.DeferredAttr.AttrMode;
import com.sun.tools.javac.comp.DeferredAttr.DeferredAttrContext;
import com.sun.tools.javac.comp.DeferredAttr.DeferredType;
-import com.sun.tools.javac.comp.Infer.InferenceContext;
import com.sun.tools.javac.comp.Infer.FreeTypeListener;
import com.sun.tools.javac.comp.Resolve.MethodResolutionContext.Candidate;
import com.sun.tools.javac.comp.Resolve.MethodResolutionDiagHelper.Template;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java Mon Aug 03 16:33:06 2015 -0700
@@ -33,11 +33,8 @@
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
-import java.util.Optional;
-import java.util.ServiceLoader;
import java.util.Set;
import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
@@ -53,8 +50,7 @@
import com.sun.tools.javac.jvm.Target;
import com.sun.tools.javac.main.OptionHelper.GrumpyHelper;
import com.sun.tools.javac.platform.PlatformDescription;
-import com.sun.tools.javac.platform.PlatformProvider;
-import com.sun.tools.javac.platform.PlatformProvider.PlatformNotSupported;
+import com.sun.tools.javac.platform.PlatformUtils;
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.List;
import com.sun.tools.javac.util.ListBuffer;
@@ -297,7 +293,7 @@
Option.TARGET);
if (platformString != null) {
- PlatformDescription platformDescription = lookupDescription(platformString);
+ PlatformDescription platformDescription = PlatformUtils.lookupPlatformDescription(platformString);
if (platformDescription == null) {
error("err.unsupported.release.version", platformString);
@@ -502,31 +498,6 @@
return !errors;
}
- private PlatformDescription lookupDescription(String platformString) {
- int separator = platformString.indexOf(":");
- String platformProviderName =
- separator != (-1) ? platformString.substring(0, separator) : platformString;
- String platformOptions =
- separator != (-1) ? platformString.substring(separator + 1) : "";
- Iterable<PlatformProvider> providers =
- ServiceLoader.load(PlatformProvider.class, Arguments.class.getClassLoader());
-
- return StreamSupport.stream(providers.spliterator(), false)
- .filter(provider -> StreamSupport.stream(provider.getSupportedPlatformNames()
- .spliterator(),
- false)
- .anyMatch(platformProviderName::equals))
- .findFirst()
- .flatMap(provider -> {
- try {
- return Optional.of(provider.getPlatform(platformProviderName, platformOptions));
- } catch (PlatformNotSupported pns) {
- return Optional.empty();
- }
- })
- .orElse(null);
- }
-
/**
* Returns true if there are no files or classes specified for use.
* @return true if there are no files or classes specified for use
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java Mon Aug 03 16:33:06 2015 -0700
@@ -581,6 +581,10 @@
* Ident = IDENTIFIER
*/
protected Name ident() {
+ return ident(false);
+ }
+
+ protected Name ident(boolean advanceOnErrors) {
if (token.kind == IDENTIFIER) {
Name name = token.name();
nextToken();
@@ -616,6 +620,9 @@
return name;
} else {
accept(IDENTIFIER);
+ if (advanceOnErrors) {
+ nextToken();
+ }
return names.error;
}
}
@@ -1413,7 +1420,7 @@
// is the mode check needed?
tyannos = typeAnnotationsOpt();
}
- t = toP(F.at(pos1).Select(t, ident()));
+ t = toP(F.at(pos1).Select(t, ident(true)));
if (tyannos != null && tyannos.nonEmpty()) {
t = toP(F.at(tyannos.head.pos).AnnotatedType(tyannos, t));
}
@@ -2978,7 +2985,7 @@
name = token.name();
nextToken();
} else {
- if (allowThisIdent) {
+ if (allowThisIdent && !lambdaParameter) {
JCExpression pn = qualident(false);
if (pn.hasTag(Tag.IDENT) && ((JCIdent)pn).name != names._this) {
name = ((JCIdent)pn).name;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/PlatformUtils.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package com.sun.tools.javac.platform;
+
+import com.sun.tools.javac.main.Arguments;
+import com.sun.tools.javac.platform.PlatformProvider.PlatformNotSupported;
+import java.util.Optional;
+import java.util.ServiceLoader;
+import java.util.stream.StreamSupport;
+
+/** Internal utilities to work with PlatformDescriptions.
+ *
+ * <p><b>This is NOT part of any supported API.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+public class PlatformUtils {
+
+ public static PlatformDescription lookupPlatformDescription(String platformString) {
+ int separator = platformString.indexOf(":");
+ String platformProviderName =
+ separator != (-1) ? platformString.substring(0, separator) : platformString;
+ String platformOptions =
+ separator != (-1) ? platformString.substring(separator + 1) : "";
+ Iterable<PlatformProvider> providers =
+ ServiceLoader.load(PlatformProvider.class, Arguments.class.getClassLoader());
+
+ return StreamSupport.stream(providers.spliterator(), false)
+ .filter(provider -> StreamSupport.stream(provider.getSupportedPlatformNames()
+ .spliterator(),
+ false)
+ .anyMatch(platformProviderName::equals))
+ .findFirst()
+ .flatMap(provider -> {
+ try {
+ return Optional.of(provider.getPlatform(platformProviderName, platformOptions));
+ } catch (PlatformNotSupported pns) {
+ return Optional.empty();
+ }
+ })
+ .orElse(null);
+ }
+
+}
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java Mon Aug 03 16:33:06 2015 -0700
@@ -135,6 +135,7 @@
public Content getSignature(ConstructorDoc constructor) {
Content pre = new HtmlTree(HtmlTag.PRE);
writer.addAnnotationInfo(constructor, pre);
+ int annotationLength = pre.charCount();
addModifiers(constructor, pre);
if (configuration.linksource) {
Content constructorName = new StringContent(constructor.name());
@@ -142,7 +143,7 @@
} else {
addName(constructor.name(), pre);
}
- int indent = pre.charCount();
+ int indent = pre.charCount() - annotationLength;
addParameters(constructor, pre, indent);
addExceptions(constructor, pre, indent);
return pre;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Mon Aug 03 16:33:06 2015 -0700
@@ -1936,7 +1936,9 @@
for (Content annotation: annotations) {
htmltree.addContent(sep);
htmltree.addContent(annotation);
- sep = " ";
+ if (!lineBreak) {
+ sep = " ";
+ }
}
return true;
}
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java Mon Aug 03 16:33:06 2015 -0700
@@ -128,6 +128,7 @@
public Content getSignature(MethodDoc method) {
Content pre = new HtmlTree(HtmlTag.PRE);
writer.addAnnotationInfo(method, pre);
+ int annotationLength = pre.charCount();
addModifiers(method, pre);
addTypeParameters(method, pre);
addReturnType(method, pre);
@@ -137,7 +138,7 @@
} else {
addName(method.name(), pre);
}
- int indent = pre.charCount();
+ int indent = pre.charCount() - annotationLength;
addParameters(method, pre, indent);
addExceptions(method, pre, indent);
return pre;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/Start.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/Start.java Mon Aug 03 16:33:06 2015 -0700
@@ -29,20 +29,24 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Map;
import java.util.Objects;
import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.StandardLocation;
import com.sun.javadoc.*;
import com.sun.tools.javac.file.JavacFileManager;
import com.sun.tools.javac.main.CommandLine;
import com.sun.tools.javac.main.Option;
import com.sun.tools.javac.file.BaseFileManager;
+import com.sun.tools.javac.platform.PlatformDescription;
+import com.sun.tools.javac.platform.PlatformUtils;
import com.sun.tools.javac.util.ClientCodeException;
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.List;
@@ -352,6 +356,40 @@
((BaseFileManager) fileManager).handleOptions(fileManagerOpts);
}
+ String platformString = compOpts.get("-release");
+
+ if (platformString != null) {
+ if (compOpts.isSet("-source")) {
+ usageError("main.release.bootclasspath.conflict", "-source");
+ }
+ if (fileManagerOpts.containsKey(Option.BOOTCLASSPATH)) {
+ usageError("main.release.bootclasspath.conflict", Option.BOOTCLASSPATH.getText());
+ }
+
+ PlatformDescription platformDescription =
+ PlatformUtils.lookupPlatformDescription(platformString);
+
+ if (platformDescription == null) {
+ usageError("main.unsupported.release.version", platformString);
+ }
+
+ compOpts.put(Option.SOURCE, platformDescription.getSourceVersion());
+
+ context.put(PlatformDescription.class, platformDescription);
+
+ Collection<Path> platformCP = platformDescription.getPlatformPath();
+
+ if (platformCP != null) {
+ if (fileManager instanceof StandardJavaFileManager) {
+ StandardJavaFileManager sfm = (StandardJavaFileManager) fileManager;
+
+ sfm.setLocationFromPaths(StandardLocation.PLATFORM_CLASS_PATH, platformCP);
+ } else {
+ usageError("main.release.not.standard.file.manager", platformString);
+ }
+ }
+ }
+
compOpts.notifyListeners();
if (javaNames.isEmpty() && subPackages.isEmpty() && isEmpty(fileObjects)) {
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/ToolOption.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/ToolOption.java Mon Aug 03 16:33:06 2015 -0700
@@ -96,6 +96,13 @@
}
},
+ RELEASE("-release", true) {
+ @Override
+ public void process(Helper helper, String arg) {
+ helper.setCompilerOpt(opt, arg);
+ }
+ },
+
SOURCE("-source", true) {
@Override
public void process(Helper helper, String arg) {
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/resources/javadoc.properties Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/resources/javadoc.properties Mon Aug 03 16:33:06 2015 -0700
@@ -92,6 +92,9 @@
main.malformed_locale_name=Malformed locale name: {0}
main.file_not_found=File not found: "{0}"
main.illegal_package_name=Illegal package name: "{0}"
+main.release.bootclasspath.conflict=option {0} cannot be used together with -release
+main.unsupported.release.version=release version {0} not supported
+main.release.not.standard.file.manager=-release option specified, but the provided JavaFileManager is not a StandardJavaFileManager.
tag.illegal_char_in_arr_dim=Tag {0}: Syntax Error in array dimension, method parameters: {1}
tag.illegal_see_tag=Tag {0}: Syntax Error in method parameters: {1}
tag.missing_comma_space=Tag {0}: Missing comma or space in method parameters: {1}
--- a/langtools/test/com/sun/javadoc/testIndentation/TestIndentation.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/test/com/sun/javadoc/testIndentation/TestIndentation.java Mon Aug 03 16:33:06 2015 -0700
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8011288
+ * @bug 8011288 8062647
* @summary Erratic/inconsistent indentation of signatures
* @library ../lib
* @modules jdk.javadoc
@@ -51,5 +51,12 @@
+ " T t2)",
"\n"
+ " throws java.lang.Exception");
+
+ // Test indentation of annotations and annotated method arguments
+ checkOutput("p/IndentAnnot.html", false,
+ " @Deprecated",
+ " int b)",
+ " java.lang.Object... b)");
+
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testIndentation/p/IndentAnnot.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package p;
+
+public class IndentAnnot {
+ public void f1(int a, int b) {}
+
+ public void f2(int a, Object... b) {}
+
+ @Deprecated
+ public void f3(int a, int b) {}
+
+ @SafeVarargs
+ public void f4(int a, Object... b) {}
+
+ @SafeVarargs
+ @Deprecated
+ public void f5(int a, Object... b) {}
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/generics/typevars/8129214/T8129214.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8129214
+ * @summary Access error when unboxing a primitive whose target is a type-variable in a different package
+ * @compile T8129214.java
+ */
+import pkg.Foo;
+
+class T8129214 {
+ void test() {
+ Foo.foo(10);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/generics/typevars/8129214/pkg/Foo.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg;
+
+public class Foo {
+ public static <T extends Integer> void foo(T a1){}
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/lambda/8131742/T8131742.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,9 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8131742
+ * @summary Syntactically meaningless code accepted by javac
+ * @compile/fail/ref=T8131742.out -XDrawDiagnostics T8131742.java
+ */
+class T8131742 {
+ static Runnable r = (__GAR BAGE__.this) -> { };
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/lambda/8131742/T8131742.out Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,4 @@
+T8131742.java:8:38: compiler.err.expected3: ',', ')', '['
+T8131742.java:8:39: compiler.err.this.as.identifier
+T8131742.java:8:43: compiler.err.expected: ';'
+3 errors
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/parser/8081769/T8081769.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,16 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8081769
+ * @summary Redundant error message on bad usage of 'class' literal
+ * @compile/fail/ref=T8081769.out -XDrawDiagnostics T8081769.java
+ */
+class T8081769 {
+ void test() {
+ Class c1 = this.class;
+ Class c2 = "".class;
+ Class c3 = 0 .class;
+ Class c4 = null.class;
+ Object x;
+ Class c5 = x.toString().class;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/parser/8081769/T8081769.out Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,6 @@
+T8081769.java:9:25: compiler.err.expected: token.identifier
+T8081769.java:10:23: compiler.err.expected: token.identifier
+T8081769.java:11:23: compiler.err.expected: token.identifier
+T8081769.java:12:25: compiler.err.expected: token.identifier
+T8081769.java:14:33: compiler.err.expected: token.identifier
+5 errors
--- a/langtools/test/tools/javac/platform/PlatformProviderTest.java Mon Aug 03 15:48:33 2015 -0500
+++ b/langtools/test/tools/javac/platform/PlatformProviderTest.java Mon Aug 03 16:33:06 2015 -0700
@@ -88,6 +88,7 @@
ToolBox tb = new ToolBox();
ToolBox.Result result =
tb.new JavacTask(ToolBox.Mode.EXEC)
+ .outdir(".")
.options("-J-classpath",
"-J" + System.getProperty("test.classes"),
"-XDrawDiagnostics",
@@ -121,6 +122,7 @@
ToolBox tb = new ToolBox();
ToolBox.Result result =
tb.new JavacTask(ToolBox.Mode.EXEC)
+ .outdir(".")
.options("-J-classpath",
"-J" + System.getProperty("test.classes"),
"-release",
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javadoc/ReleaseOption.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import com.sun.tools.javadoc.Main;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Predicate;
+
+/**
+ * @test
+ * @bug 8086737
+ * @summary Test -release option in javadoc
+ * @run main ReleaseOption
+ */
+public class ReleaseOption {
+ public static void main(String... args) {
+ new ReleaseOption().run();
+ }
+
+ void run() {
+ doRunTest(0, out -> out.contains("compiler.err.doesnt.exist: java.util.stream"), "-release", "7");
+ doRunTest(0, out -> !out.contains("compiler.err.doesnt.exist: java.util.stream"), "-release", "8");
+ doRunTest(1, out -> true, "-release", "7", "-source", "7");
+ doRunTest(1, out -> true, "-release", "7", "-bootclasspath", "any");
+ }
+
+ void doRunTest(int expectedResult, Predicate<String> validate, String... args) {
+ System.err.println("running with args: " + Arrays.asList(args));
+ List<String> options = new ArrayList<>();
+ options.addAll(Arrays.asList(args));
+ options.add("-XDrawDiagnostics");
+ options.add(System.getProperty("test.src", ".") + java.io.File.separatorChar + "ReleaseOptionSource.java");
+ StringWriter out = new StringWriter();
+ PrintWriter pw = new PrintWriter(out);
+ int actualResult = Main.execute("javadoc", pw, pw, pw, "com.sun.tools.doclets.formats.html.HtmlDoclet", options.toArray(new String[0]));
+ System.err.println("actual result=" + actualResult);
+ System.err.println("actual output=" + out.toString());
+ if (actualResult != expectedResult)
+ throw new Error();
+ if (!validate.test(out.toString())) {
+ throw new Error("Not an expected error output: " + out.toString());
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javadoc/ReleaseOptionSource.java Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.stream.Stream;
+
+public class ReleaseOptionSource {
+ public Stream s;
+}
--- a/modules.xml Mon Aug 03 15:48:33 2015 -0500
+++ b/modules.xml Mon Aug 03 16:33:06 2015 -0700
@@ -1565,6 +1565,10 @@
<to>jdk.javadoc</to>
</export>
<export>
+ <name>com.sun.tools.javac.platform</name>
+ <to>jdk.javadoc</to>
+ </export>
+ <export>
<name>com.sun.tools.javac.sym</name>
<to>jdk.javadoc</to>
</export>
--- a/nashorn/.hgtags Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/.hgtags Mon Aug 03 16:33:06 2015 -0700
@@ -308,3 +308,4 @@
d017877b3b8cd39337f1bdc00d958f821433c4c3 jdk9-b72
548f1eb2c3c89e024ef3805f48ceed9de503588f jdk9-b73
2e8bb16872d7b15dc0a4f8e45c6ad65f762c1b04 jdk9-b74
+f884dff432a7ac349153f3d1ea1eb222f3764c6c jdk9-b75
--- a/nashorn/samples/browser_dom.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/samples/browser_dom.js Mon Aug 03 16:33:06 2015 -0700
@@ -43,7 +43,7 @@
// JavaFX start method
function start(stage) {
- start.title = "Web View";
+ stage.title = "Web View";
var wv = new WebView();
wv.engine.loadContent(<<EOF
<html>
--- a/nashorn/samples/showenv.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/samples/showenv.js Mon Aug 03 16:33:06 2015 -0700
@@ -46,7 +46,7 @@
// JavaFX start method
function start(stage) {
- start.title = "Your Environment";
+ stage.title = "Your Environment";
var wv = new WebView();
var envrows = "";
for (var i in $ENV) {
--- a/nashorn/samples/showsysprops.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/samples/showsysprops.js Mon Aug 03 16:33:06 2015 -0700
@@ -47,7 +47,7 @@
// JavaFX start method
function start(stage) {
- start.title = "Your System Properties";
+ stage.title = "Your System Properties";
var wv = new WebView();
var sysproprows = "";
var sysprops = System.properties;
--- a/nashorn/samples/time_color.fx Mon Aug 03 15:48:33 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-#// Usage: jjs -fx time_color.js [-- true/false]
-
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * - Neither the name of Oracle nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// A simple javafx program that changes background color
-// of scene based on current time value (once per sec).
-// inspired by http://whatcolourisit.scn9a.org/
-
-if (!$OPTIONS._fx) {
- print("Usage: jjs -fx time_color.js");
- print(" jjs -fx time_color.js -- true");
- exit(1);
-}
-
-// JavaFX classes used
-var Color = Java.type("javafx.scene.paint.Color");
-var Group = Java.type("javafx.scene.Group");
-var Label = Java.type("javafx.scene.control.Label");
-var Platform = Java.type("javafx.application.Platform");
-var Scene = Java.type("javafx.scene.Scene");
-var Timer = Java.type("java.util.Timer");
-
-// execute function periodically once per given time in millisec
-function setInterval(func, ms) {
- // New timer, run as daemon so the application can quit
- var timer = new Timer("setInterval", true);
- timer.schedule(function() Platform.runLater(func), ms, ms);
- return timer;
-}
-
-// do you want to flip hour/min/sec for RGB?
-var flip = arguments.length > 0? "true".equals(arguments[0]) : false;
-
-// JavaFX start method
-function start(stage) {
- start.title = "Time Color";
- var root = new Group();
- var label = new Label("time");
- label.textFill = Color.WHITE;
- root.children.add(label);
- stage.scene = new Scene(root, 700, 500);
-
- setInterval(function() {
- var d = new Date();
- var hours = d.getHours();
- var mins = d.getMinutes();
- var secs = d.getSeconds();
-
- if (hours < 10) hours = "0" + hours;
- if (mins < 10) mins = "0" + mins;
- if (secs < 10) secs = "0" + secs;
-
- var hex = flip?
- "#" + secs + mins + hours : "#" + hours + mins + secs;
- label.text = "Color: " + hex;
- stage.scene.fill = Color.web(hex);
- }, 1000);
-
- stage.show();
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/time_color.js Mon Aug 03 16:33:06 2015 -0700
@@ -0,0 +1,89 @@
+#// Usage: jjs -fx time_color.js [-- true/false]
+
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// A simple javafx program that changes background color
+// of scene based on current time value (once per sec).
+// inspired by http://whatcolourisit.scn9a.org/
+
+if (!$OPTIONS._fx) {
+ print("Usage: jjs -fx time_color.js");
+ print(" jjs -fx time_color.js -- true");
+ exit(1);
+}
+
+// JavaFX classes used
+var Color = Java.type("javafx.scene.paint.Color");
+var Group = Java.type("javafx.scene.Group");
+var Label = Java.type("javafx.scene.control.Label");
+var Platform = Java.type("javafx.application.Platform");
+var Scene = Java.type("javafx.scene.Scene");
+var Timer = Java.type("java.util.Timer");
+
+// execute function periodically once per given time in millisec
+function setInterval(func, ms) {
+ // New timer, run as daemon so the application can quit
+ var timer = new Timer("setInterval", true);
+ timer.schedule(function() Platform.runLater(func), ms, ms);
+ return timer;
+}
+
+// do you want to flip hour/min/sec for RGB?
+var flip = arguments.length > 0? "true".equals(arguments[0]) : false;
+
+// JavaFX start method
+function start(stage) {
+ stage.title = "Time Color";
+ var root = new Group();
+ var label = new Label("time");
+ label.textFill = Color.WHITE;
+ root.children.add(label);
+ stage.scene = new Scene(root, 700, 500);
+
+ setInterval(function() {
+ var d = new Date();
+ var hours = d.getHours();
+ var mins = d.getMinutes();
+ var secs = d.getSeconds();
+
+ if (hours < 10) hours = "0" + hours;
+ if (mins < 10) mins = "0" + mins;
+ if (secs < 10) secs = "0" + secs;
+
+ var hex = flip?
+ "#" + secs + mins + hours : "#" + hours + mins + secs;
+ label.text = "Color: " + hex;
+ stage.scene.fill = Color.web(hex);
+ }, 1000);
+
+ stage.show();
+}
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/DebuggerSupport.java Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/DebuggerSupport.java Mon Aug 03 16:33:06 2015 -0700
@@ -3,18 +3,18 @@
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General License version 2 only, as
+ * under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General License
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
- * You should have received a copy of the GNU General License version
+ * You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
--- a/nashorn/test/script/basic/JDK-8007456.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8007456.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8035712.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8035712.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8051778.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8051778.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8058610.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8058610.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8061113.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8061113.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8062799.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8062799.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
@@ -100,4 +100,4 @@
-
\ No newline at end of file
+
--- a/nashorn/test/script/basic/JDK-8066221.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066221.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8066222.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066222.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8066224.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066224.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8066225.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066225.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8066227.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066227.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8066230.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066230.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8066232.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066232.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8066236.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8066236.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8067139.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8067139.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8067774.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8067774.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8068573.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8068573.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8068580.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8068580.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8068985.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8068985.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8069002.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8069002.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8072426.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8072426.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8072596.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8072596.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8075090.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8075090.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8079145.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8079145.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8079269.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8079269.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8079424.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8079424.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8079470.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8079470.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8080182.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8080182.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8080848.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8080848.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8081156.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8081156.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8085802.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8085802.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8087211.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8087211.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8087211_2.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8087211_2.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8098578.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8098578.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/basic/JDK-8129410.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/basic/JDK-8129410.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
+ *
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
- *
+ *
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
- *
+ *
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ *
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
--- a/nashorn/test/script/currently-failing/gettersetter.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/currently-failing/gettersetter.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/currently-failing/property_delete.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/currently-failing/property_delete.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/builtins.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/builtins.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/constructor.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/constructor.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/maputil.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/maputil.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/object_create.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/object_create.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/object_literals.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/object_literals.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/point.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/point.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/property_add.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/property_add.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/maptests/proto.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/maptests/proto.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/sandbox/safeprops.js Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/script/sandbox/safeprops.js Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/src/jdk/nashorn/test/models/NullProvider.java Mon Aug 03 15:48:33 2015 -0500
+++ b/nashorn/test/src/jdk/nashorn/test/models/NullProvider.java Mon Aug 03 16:33:06 2015 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it