summaryrefslogtreecommitdiff
path: root/language/korean/hcode1_1
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/korean/hcode1_1
Initial commit
Diffstat (limited to 'language/korean/hcode1_1')
-rw-r--r--language/korean/hcode1_1/conv.c190
-rw-r--r--language/korean/hcode1_1/h2Bcode.h2400
-rw-r--r--language/korean/hcode1_1/h3Bcode.h105
-rw-r--r--language/korean/hcode1_1/hcode.c244
-rw-r--r--language/korean/hcode1_1/hcode.doc98
-rw-r--r--language/korean/hcode1_1/hcode.h51
6 files changed, 3088 insertions, 0 deletions
diff --git a/language/korean/hcode1_1/conv.c b/language/korean/hcode1_1/conv.c
new file mode 100644
index 0000000000..843cb94074
--- /dev/null
+++ b/language/korean/hcode1_1/conv.c
@@ -0,0 +1,190 @@
+#include <stdio.h>
+#include "hcode.h"
+#include "h2Bcode.h"
+#include "h3Bcode.h"
+
+/* --------------------------------------------------------------
+ From InputCode To OutputCode Convertion Routine
+ First find a key in Sorted Section of 2Byte table by bisection search
+ And then look up UnSorted Section of the table by siquential search
+ Hanbuf[ 1:Hanbuf[0] ] will be filled with OutputCode
+ F,T : Input and Output 2 Byte code Number in h2Bcode.h
+ --------------------------------------------------------------- */
+
+void code2conv(Hanbuf, F, T)
+int Hanbuf[], F, T;
+{
+ int i,l,m,u,test,find=0;
+
+ for ( i=1; i<=Hanbuf[0]; i++ ) {
+ l = NoUnSorted; u = NoKSC-1;
+ while ( l<=u ) {
+ test = TwoConvert[(m=(l+u)/2)][F];
+ if ( test < Hanbuf[i] ) l=m+1;
+ else if ( test > Hanbuf[i] ) u=m-1;
+ else {
+ find = 1;
+ break;
+ }
+ }
+ if ( find == 0 ) {
+ for (m=0; m<NoUnSorted; m++)
+ if ( TwoConvert[m][F] == Hanbuf[i] ) {
+ find=1;
+ break;
+ }
+ }
+ if ( find == 1 ) {
+ Hanbuf[i] = TwoConvert[m][T];
+ find = 0;
+ } else {
+ fprintf(stderr,"%x is unknown %d Code\n",Hanbuf[i],F);
+ }
+ }
+}
+
+
+/* --------------------------------------------------------------
+ Hangul Char in Multibyte is defined like
+ (C* V+ C*) (C V+ C*) * (C {V+|EOF} )
+ Pointer p0 p1 p2 p3
+ Next_Step p0 p1 p2 p3
+ --------------------------------------------------------------
+ This section consists of Three routines and one aux routine.
+ void m2code(buf,IC,HanMode,Hanbuf)
+ int getOne(buf, IC, p0, p1)
+ int HanCode(buf,IC, p0,p1,p2,p3)
+ int strNcmp(test,table,size)
+ --------------------------------------------------------------- */
+
+#define IsConso(x,y) (x>=ChoSung[2][y][0]&&x<=ChoSung[20][y][0])
+#define IsVowel(x,y) (x>=JungSung[3][y][0]&&x<=JungSung[29][y][0])
+
+int strNcmp(test,table,size)
+unsigned char test[], table[];
+int size;
+{ int i;
+ for ( i=0; i<size; i++ )
+ if ( test[i] > table[i] ) return(1);
+ else if ( test[i] < table[i] ) return(-1);
+ if ( table[size] != '\0' ) return(-1);
+ return(0);
+}
+
+
+/* ------------------------------------------------
+ ChoSung and JungSung and Jongsung is already
+ separated by p0,p1,p2,p3 in buf
+ convert each portion by 3B table look up method
+ And then join three of them into one Integer Code
+ If any of them is missing, then
+ correspoding code will be the lower limit (01,02,01).
+ ------------------------------------------------ */
+
+int HanCode(buf,IC, p0,p1,p2,p3)
+unsigned char buf[];
+int IC, p0,p1,p2,p3;
+{
+ int ch,ju,jo, l,t,u,order;
+
+ l=01; u=20;
+ while ( l<= u ) {
+ ch = (l+u) / 2;
+ order=strNcmp(buf+p0,ChoSung[ch][IC],p1-p0);
+ if ( order > 0 ) l=ch+1;
+ else if ( order < 0 ) u=ch-1;
+ else break;
+ }
+ l=02; u=29;
+ while ( l<= u ) {
+ ju = t = (l+u) / 2;
+ if ( (ju&6) == 0 ) {
+ ju = (ju&0x00f8) - 1;
+ t = ju+2;
+ }
+ order = strNcmp(buf+p1,JungSung[ju][IC],p2-p1);
+ if ( order > 0 ) l=t+1;
+ else if ( order < 0 ) u=ju-1;
+ else break;
+ }
+
+ l=02; u=29;
+ if ( p3 == p2 ) jo = 1;
+ else if (strNcmp(buf+p2,JongSung[3][IC],p3-p2)==0) jo=3;
+ else
+ while ( l<= u ) {
+ jo = t = (l+u) / 2;
+ if ( jo == 18 ) {
+ jo=17;
+ }
+ order = strNcmp(buf+p2,JongSung[jo][IC],p3-p2);
+ if ( order > 0 ) l=t+1;
+ else if ( order < 0 ) u=jo-1;
+ else break;
+ }
+
+ return ( 0x8000|(ch<<10)|(ju<<5)|jo );
+}
+
+/* ------------------------------------------------
+ Hangul AutoMata To find one Char until end_of_buf
+ (C* V+ C*) (C V+ C*) * (C {V+|EOF} )
+ Pointer p0 p1 p2 p3
+ Next_Step p0 p1 p2 p3
+ ------------------------------------------------ */
+
+int getOne(buf, IC, p0, p1)
+unsigned char buf[];
+int IC, *p0, *p1;
+{
+ int p2, p3, np, result;
+ if ( *p1 == *p0 )
+ for ( ; IsConso(buf[*p1],IC); (*p1)++ )
+ if ( *p1 == buf[0] ) {
+ result=HanCode(buf,IC,*p0,*p1+1,*p1+1,*p1+1);
+ *p1 = buf[0] + 1;
+ return(result);
+ }
+ for ( p2= (*p1); IsVowel(buf[p2],IC); p2++ )
+ if ( p2 == buf[0] ) {
+ result=HanCode(buf,IC,*p0,*p1,p2+1,p2+1);
+ *p1 = buf[0] + 1;
+ return(result);
+ }
+ for ( p3= p2; IsConso(buf[p3],IC); p3++ )
+ if ( p3 == buf[0] ) {
+ result=HanCode(buf,IC,*p0,*p1,p2,p3+1);
+ *p1 = buf[0] + 1;
+ return(result);
+ }
+ result = HanCode(buf,IC,*p0,*p1,p2,p3-1);
+ *p0 = p3 - 1;
+ *p1 = p3;
+ return(result);
+}
+
+/* ------------------------------------------------
+ MultiByte inputs in buf to Hanbuf with Trigem Code
+ If Hangul_input_Mode is not ENDHAN, then
+ undo last one code conversion.
+ ------------------------------------------------ */
+
+void m2code(buf,IC,HanMode,Hanbuf)
+unsigned char buf[];
+int IC, HanMode, Hanbuf[];
+{
+ int p0, p1, n;
+ p0 = p1 = 1;
+ while ( p1 <= buf[0] ) {
+ Hanbuf[++Hanbuf[0]] = getOne(buf,IC,&p0,&p1);
+ }
+ if ( HanMode == ENDHAN ) {
+ buf[0] = 0;
+ } else {
+ buf[0] = buf[0] - p0 + 1;
+ for ( n=0; n < buf[0]; n++ )
+ buf[n+1] = buf[n+p0];
+ Hanbuf[0]--;
+ }
+}
+
diff --git a/language/korean/hcode1_1/h2Bcode.h b/language/korean/hcode1_1/h2Bcode.h
new file mode 100644
index 0000000000..cf088aa8f0
--- /dev/null
+++ b/language/korean/hcode1_1/h2Bcode.h
@@ -0,0 +1,2400 @@
+/*
+ This table consists of three parts
+ ChoSung without JongSung : 19 Chars
+ JongSung without ChoSung : 21 Chars
+ KSC Hangul (b0-c8:a1-fe) : 2350 Chars
+*/
+
+unsigned int TwoConvert[NoKSC][No2Bcode] = {
+0x8841,0xa4a1,
+0x8c41,0xa4a2,
+0x9041,0xa4a4,
+0x9441,0xa4a7,
+0x9841,0xa4a8,
+0x9c41,0xa4a9,
+0xa041,0xa4b1,
+0xa441,0xa4b2,
+0xa841,0xa4b3,
+0xac41,0xa4b5,
+0xb041,0xa4b6,
+0xb441,0xa4b7,
+0xb841,0xa4b8,
+0xbc41,0xa4b9,
+0xc041,0xa4ba,
+0xc441,0xa4bb,
+0xc841,0xa4bc,
+0xcc41,0xa4bd,
+0xd041,0xa4be, /* ChoSung without JongSung */
+
+0x8461,0xa4bf,
+0x8481,0xa4c0,
+0x84a1,0xa4c1,
+0x84c1,0xa4c2,
+0x84e1,0xa4c3,
+0x8541,0xa4c4,
+0x8561,0xa4c5,
+0x8581,0xa4c6,
+0x85a1,0xa4c7,
+0x85c1,0xa4c8,
+0x85e1,0xa4c9,
+0x8641,0xa4ca,
+0x8661,0xa4cb,
+0x8681,0xa4cc,
+0x86a1,0xa4cd,
+0x86c1,0xa4ce,
+0x86e1,0xa4cf,
+0x8741,0xa4d0,
+0x8761,0xa4d1,
+0x8781,0xa4d2,
+0x87a1,0xa4d3, /* JungSung without ChoSung */
+
+0x8861,0xb0a1,
+0x8862,0xb0a2,
+0x8865,0xb0a3,
+0x8868,0xb0a4,
+0x8869,0xb0a5,
+0x886a,0xb0a6,
+0x886b,0xb0a7,
+0x8871,0xb0a8,
+0x8873,0xb0a9,
+0x8874,0xb0aa,
+0x8875,0xb0ab,
+0x8876,0xb0ac,
+0x8877,0xb0ad,
+0x8878,0xb0ae,
+0x8879,0xb0af,
+0x887b,0xb0b0,
+0x887c,0xb0b1,
+0x887d,0xb0b2,
+0x8881,0xb0b3,
+0x8882,0xb0b4,
+0x8885,0xb0b5,
+0x8889,0xb0b6,
+0x8891,0xb0b7,
+0x8893,0xb0b8,
+0x8895,0xb0b9,
+0x8896,0xb0ba,
+0x8897,0xb0bb,
+0x88a1,0xb0bc,
+0x88a2,0xb0bd,
+0x88a5,0xb0be,
+0x88a9,0xb0bf,
+0x88b5,0xb0c0,
+0x88b7,0xb0c1,
+0x88c1,0xb0c2,
+0x88c5,0xb0c3,
+0x88c9,0xb0c4,
+0x88e1,0xb0c5,
+0x88e2,0xb0c6,
+0x88e5,0xb0c7,
+0x88e8,0xb0c8,
+0x88e9,0xb0c9,
+0x88eb,0xb0ca,
+0x88f1,0xb0cb,
+0x88f3,0xb0cc,
+0x88f5,0xb0cd,
+0x88f6,0xb0ce,
+0x88f7,0xb0cf,
+0x88f8,0xb0d0,
+0x88fb,0xb0d1,
+0x88fc,0xb0d2,
+0x88fd,0xb0d3,
+0x8941,0xb0d4,
+0x8945,0xb0d5,
+0x8949,0xb0d6,
+0x8951,0xb0d7,
+0x8953,0xb0d8,
+0x8955,0xb0d9,
+0x8956,0xb0da,
+0x8957,0xb0db,
+0x8961,0xb0dc,
+0x8962,0xb0dd,
+0x8963,0xb0de,
+0x8965,0xb0df,
+0x8968,0xb0e0,
+0x8969,0xb0e1,
+0x8971,0xb0e2,
+0x8973,0xb0e3,
+0x8975,0xb0e4,
+0x8976,0xb0e5,
+0x8977,0xb0e6,
+0x897b,0xb0e7,
+0x8981,0xb0e8,
+0x8985,0xb0e9,
+0x8989,0xb0ea,
+0x8993,0xb0eb,
+0x8995,0xb0ec,
+0x89a1,0xb0ed,
+0x89a2,0xb0ee,
+0x89a5,0xb0ef,
+0x89a8,0xb0f0,
+0x89a9,0xb0f1,
+0x89ab,0xb0f2,
+0x89ad,0xb0f3,
+0x89b0,0xb0f4,
+0x89b1,0xb0f5,
+0x89b3,0xb0f6,
+0x89b5,0xb0f7,
+0x89b7,0xb0f8,
+0x89b8,0xb0f9,
+0x89c1,0xb0fa,
+0x89c2,0xb0fb,
+0x89c5,0xb0fc,
+0x89c9,0xb0fd,
+0x89cb,0xb0fe,
+0x89d1,0xb1a1,
+0x89d3,0xb1a2,
+0x89d5,0xb1a3,
+0x89d7,0xb1a4,
+0x89e1,0xb1a5,
+0x89e5,0xb1a6,
+0x89e9,0xb1a7,
+0x89f3,0xb1a8,
+0x89f6,0xb1a9,
+0x89f7,0xb1aa,
+0x8a41,0xb1ab,
+0x8a42,0xb1ac,
+0x8a45,0xb1ad,
+0x8a49,0xb1ae,
+0x8a51,0xb1af,
+0x8a53,0xb1b0,
+0x8a55,0xb1b1,
+0x8a57,0xb1b2,
+0x8a61,0xb1b3,
+0x8a65,0xb1b4,
+0x8a69,0xb1b5,
+0x8a73,0xb1b6,
+0x8a75,0xb1b7,
+0x8a81,0xb1b8,
+0x8a82,0xb1b9,
+0x8a85,0xb1ba,
+0x8a88,0xb1bb,
+0x8a89,0xb1bc,
+0x8a8a,0xb1bd,
+0x8a8b,0xb1be,
+0x8a90,0xb1bf,
+0x8a91,0xb1c0,
+0x8a93,0xb1c1,
+0x8a95,0xb1c2,
+0x8a97,0xb1c3,
+0x8a98,0xb1c4,
+0x8aa1,0xb1c5,
+0x8aa2,0xb1c6,
+0x8aa5,0xb1c7,
+0x8aa9,0xb1c8,
+0x8ab6,0xb1c9,
+0x8ab7,0xb1ca,
+0x8ac1,0xb1cb,
+0x8ad5,0xb1cc,
+0x8ae1,0xb1cd,
+0x8ae2,0xb1ce,
+0x8ae5,0xb1cf,
+0x8ae9,0xb1d0,
+0x8af1,0xb1d1,
+0x8af3,0xb1d2,
+0x8af5,0xb1d3,
+0x8b41,0xb1d4,
+0x8b45,0xb1d5,
+0x8b49,0xb1d6,
+0x8b61,0xb1d7,
+0x8b62,0xb1d8,
+0x8b65,0xb1d9,
+0x8b68,0xb1da,
+0x8b69,0xb1db,
+0x8b6a,0xb1dc,
+0x8b71,0xb1dd,
+0x8b73,0xb1de,
+0x8b75,0xb1df,
+0x8b77,0xb1e0,
+0x8b81,0xb1e1,
+0x8ba1,0xb1e2,
+0x8ba2,0xb1e3,
+0x8ba5,0xb1e4,
+0x8ba8,0xb1e5,
+0x8ba9,0xb1e6,
+0x8bab,0xb1e7,
+0x8bb1,0xb1e8,
+0x8bb3,0xb1e9,
+0x8bb5,0xb1ea,
+0x8bb7,0xb1eb,
+0x8bb8,0xb1ec,
+0x8bbc,0xb1ed,
+0x8c61,0xb1ee,
+0x8c62,0xb1ef,
+0x8c63,0xb1f0,
+0x8c65,0xb1f1,
+0x8c69,0xb1f2,
+0x8c6b,0xb1f3,
+0x8c71,0xb1f4,
+0x8c73,0xb1f5,
+0x8c75,0xb1f6,
+0x8c76,0xb1f7,
+0x8c77,0xb1f8,
+0x8c7b,0xb1f9,
+0x8c81,0xb1fa,
+0x8c82,0xb1fb,
+0x8c85,0xb1fc,
+0x8c89,0xb1fd,
+0x8c91,0xb1fe,
+0x8c93,0xb2a1,
+0x8c95,0xb2a2,
+0x8c96,0xb2a3,
+0x8c97,0xb2a4,
+0x8ca1,0xb2a5,
+0x8ca2,0xb2a6,
+0x8ca9,0xb2a7,
+0x8ce1,0xb2a8,
+0x8ce2,0xb2a9,
+0x8ce3,0xb2aa,
+0x8ce5,0xb2ab,
+0x8ce9,0xb2ac,
+0x8cf1,0xb2ad,
+0x8cf3,0xb2ae,
+0x8cf5,0xb2af,
+0x8cf6,0xb2b0,
+0x8cf7,0xb2b1,
+0x8d41,0xb2b2,
+0x8d42,0xb2b3,
+0x8d45,0xb2b4,
+0x8d51,0xb2b5,
+0x8d55,0xb2b6,
+0x8d57,0xb2b7,
+0x8d61,0xb2b8,
+0x8d65,0xb2b9,
+0x8d69,0xb2ba,
+0x8d75,0xb2bb,
+0x8d76,0xb2bc,
+0x8d7b,0xb2bd,
+0x8d81,0xb2be,
+0x8da1,0xb2bf,
+0x8da2,0xb2c0,
+0x8da5,0xb2c1,
+0x8da7,0xb2c2,
+0x8da9,0xb2c3,
+0x8db1,0xb2c4,
+0x8db3,0xb2c5,
+0x8db5,0xb2c6,
+0x8db7,0xb2c7,
+0x8db8,0xb2c8,
+0x8db9,0xb2c9,
+0x8dc1,0xb2ca,
+0x8dc2,0xb2cb,
+0x8dc9,0xb2cc,
+0x8dd6,0xb2cd,
+0x8dd7,0xb2ce,
+0x8de1,0xb2cf,
+0x8de2,0xb2d0,
+0x8df7,0xb2d1,
+0x8e41,0xb2d2,
+0x8e45,0xb2d3,
+0x8e49,0xb2d4,
+0x8e51,0xb2d5,
+0x8e53,0xb2d6,
+0x8e57,0xb2d7,
+0x8e61,0xb2d8,
+0x8e81,0xb2d9,
+0x8e82,0xb2da,
+0x8e85,0xb2db,
+0x8e89,0xb2dc,
+0x8e90,0xb2dd,
+0x8e91,0xb2de,
+0x8e93,0xb2df,
+0x8e95,0xb2e0,
+0x8e97,0xb2e1,
+0x8e98,0xb2e2,
+0x8ea1,0xb2e3,
+0x8ea9,0xb2e4,
+0x8eb6,0xb2e5,
+0x8eb7,0xb2e6,
+0x8ec1,0xb2e7,
+0x8ec2,0xb2e8,
+0x8ec5,0xb2e9,
+0x8ec9,0xb2ea,
+0x8ed1,0xb2eb,
+0x8ed3,0xb2ec,
+0x8ed6,0xb2ed,
+0x8ee1,0xb2ee,
+0x8ee5,0xb2ef,
+0x8ee9,0xb2f0,
+0x8ef1,0xb2f1,
+0x8ef3,0xb2f2,
+0x8f41,0xb2f3,
+0x8f61,0xb2f4,
+0x8f62,0xb2f5,
+0x8f65,0xb2f6,
+0x8f67,0xb2f7,
+0x8f69,0xb2f8,
+0x8f6b,0xb2f9,
+0x8f70,0xb2fa,
+0x8f71,0xb2fb,
+0x8f73,0xb2fc,
+0x8f75,0xb2fd,
+0x8f77,0xb2fe,
+0x8f7b,0xb3a1,
+0x8fa1,0xb3a2,
+0x8fa2,0xb3a3,
+0x8fa5,0xb3a4,
+0x8fa9,0xb3a5,
+0x8fb1,0xb3a6,
+0x8fb3,0xb3a7,
+0x8fb5,0xb3a8,
+0x8fb7,0xb3a9,
+0x9061,0xb3aa,
+0x9062,0xb3ab,
+0x9063,0xb3ac,
+0x9065,0xb3ad,
+0x9068,0xb3ae,
+0x9069,0xb3af,
+0x906a,0xb3b0,
+0x906b,0xb3b1,
+0x9071,0xb3b2,
+0x9073,0xb3b3,
+0x9075,0xb3b4,
+0x9076,0xb3b5,
+0x9077,0xb3b6,
+0x9078,0xb3b7,
+0x9079,0xb3b8,
+0x907b,0xb3b9,
+0x907d,0xb3ba,
+0x9081,0xb3bb,
+0x9082,0xb3bc,
+0x9085,0xb3bd,
+0x9089,0xb3be,
+0x9091,0xb3bf,
+0x9093,0xb3c0,
+0x9095,0xb3c1,
+0x9096,0xb3c2,
+0x9097,0xb3c3,
+0x90a1,0xb3c4,
+0x90a2,0xb3c5,
+0x90a5,0xb3c6,
+0x90a9,0xb3c7,
+0x90b1,0xb3c8,
+0x90b7,0xb3c9,
+0x90e1,0xb3ca,
+0x90e2,0xb3cb,
+0x90e4,0xb3cc,
+0x90e5,0xb3cd,
+0x90e9,0xb3ce,
+0x90eb,0xb3cf,
+0x90ec,0xb3d0,
+0x90f1,0xb3d1,
+0x90f3,0xb3d2,
+0x90f5,0xb3d3,
+0x90f6,0xb3d4,
+0x90f7,0xb3d5,
+0x90fd,0xb3d6,
+0x9141,0xb3d7,
+0x9142,0xb3d8,
+0x9145,0xb3d9,
+0x9149,0xb3da,
+0x9151,0xb3db,
+0x9153,0xb3dc,
+0x9155,0xb3dd,
+0x9156,0xb3de,
+0x9157,0xb3df,
+0x9161,0xb3e0,
+0x9162,0xb3e1,
+0x9165,0xb3e2,
+0x9169,0xb3e3,
+0x9171,0xb3e4,
+0x9173,0xb3e5,
+0x9176,0xb3e6,
+0x9177,0xb3e7,
+0x917a,0xb3e8,
+0x9181,0xb3e9,
+0x9185,0xb3ea,
+0x91a1,0xb3eb,
+0x91a2,0xb3ec,
+0x91a5,0xb3ed,
+0x91a9,0xb3ee,
+0x91ab,0xb3ef,
+0x91b1,0xb3f0,
+0x91b3,0xb3f1,
+0x91b5,0xb3f2,
+0x91b7,0xb3f3,
+0x91bc,0xb3f4,
+0x91bd,0xb3f5,
+0x91c1,0xb3f6,
+0x91c5,0xb3f7,
+0x91c9,0xb3f8,
+0x91d6,0xb3f9,
+0x9241,0xb3fa,
+0x9245,0xb3fb,
+0x9249,0xb3fc,
+0x9251,0xb3fd,
+0x9253,0xb3fe,
+0x9255,0xb4a1,
+0x9261,0xb4a2,
+0x9262,0xb4a3,
+0x9265,0xb4a4,
+0x9269,0xb4a5,
+0x9273,0xb4a6,
+0x9275,0xb4a7,
+0x9277,0xb4a8,
+0x9281,0xb4a9,
+0x9282,0xb4aa,
+0x9285,0xb4ab,
+0x9288,0xb4ac,
+0x9289,0xb4ad,
+0x9291,0xb4ae,
+0x9293,0xb4af,
+0x9295,0xb4b0,
+0x9297,0xb4b1,
+0x92a1,0xb4b2,
+0x92b6,0xb4b3,
+0x92c1,0xb4b4,
+0x92e1,0xb4b5,
+0x92e5,0xb4b6,
+0x92e9,0xb4b7,
+0x92f1,0xb4b8,
+0x92f3,0xb4b9,
+0x9341,0xb4ba,
+0x9342,0xb4bb,
+0x9349,0xb4bc,
+0x9351,0xb4bd,
+0x9353,0xb4be,
+0x9357,0xb4bf,
+0x9361,0xb4c0,
+0x9362,0xb4c1,
+0x9365,0xb4c2,
+0x9369,0xb4c3,
+0x936a,0xb4c4,
+0x936b,0xb4c5,
+0x9371,0xb4c6,
+0x9373,0xb4c7,
+0x9375,0xb4c8,
+0x9377,0xb4c9,
+0x9378,0xb4ca,
+0x937c,0xb4cb,
+0x9381,0xb4cc,
+0x9385,0xb4cd,
+0x9389,0xb4ce,
+0x93a1,0xb4cf,
+0x93a2,0xb4d0,
+0x93a5,0xb4d1,
+0x93a9,0xb4d2,
+0x93ab,0xb4d3,
+0x93b1,0xb4d4,
+0x93b3,0xb4d5,
+0x93b5,0xb4d6,
+0x93b7,0xb4d7,
+0x93bc,0xb4d8,
+0x9461,0xb4d9,
+0x9462,0xb4da,
+0x9463,0xb4db,
+0x9465,0xb4dc,
+0x9468,0xb4dd,
+0x9469,0xb4de,
+0x946a,0xb4df,
+0x946b,0xb4e0,
+0x946c,0xb4e1,
+0x9470,0xb4e2,
+0x9471,0xb4e3,
+0x9473,0xb4e4,
+0x9475,0xb4e5,
+0x9476,0xb4e6,
+0x9477,0xb4e7,
+0x9478,0xb4e8,
+0x9479,0xb4e9,
+0x947d,0xb4ea,
+0x9481,0xb4eb,
+0x9482,0xb4ec,
+0x9485,0xb4ed,
+0x9489,0xb4ee,
+0x9491,0xb4ef,
+0x9493,0xb4f0,
+0x9495,0xb4f1,
+0x9496,0xb4f2,
+0x9497,0xb4f3,
+0x94a1,0xb4f4,
+0x94e1,0xb4f5,
+0x94e2,0xb4f6,
+0x94e3,0xb4f7,
+0x94e5,0xb4f8,
+0x94e8,0xb4f9,
+0x94e9,0xb4fa,
+0x94eb,0xb4fb,
+0x94ec,0xb4fc,
+0x94f1,0xb4fd,
+0x94f3,0xb4fe,
+0x94f5,0xb5a1,
+0x94f7,0xb5a2,
+0x94f9,0xb5a3,
+0x94fc,0xb5a4,
+0x9541,0xb5a5,
+0x9542,0xb5a6,
+0x9545,0xb5a7,
+0x9549,0xb5a8,
+0x9551,0xb5a9,
+0x9553,0xb5aa,
+0x9555,0xb5ab,
+0x9556,0xb5ac,
+0x9557,0xb5ad,
+0x9561,0xb5ae,
+0x9565,0xb5af,
+0x9569,0xb5b0,
+0x9576,0xb5b1,
+0x9577,0xb5b2,
+0x9581,0xb5b3,
+0x9585,0xb5b4,
+0x95a1,0xb5b5,
+0x95a2,0xb5b6,
+0x95a5,0xb5b7,
+0x95a8,0xb5b8,
+0x95a9,0xb5b9,
+0x95ab,0xb5ba,
+0x95ad,0xb5bb,
+0x95b1,0xb5bc,
+0x95b3,0xb5bd,
+0x95b5,0xb5be,
+0x95b7,0xb5bf,
+0x95b9,0xb5c0,
+0x95bb,0xb5c1,
+0x95c1,0xb5c2,
+0x95c5,0xb5c3,
+0x95c9,0xb5c4,
+0x95e1,0xb5c5,
+0x95f6,0xb5c6,
+0x9641,0xb5c7,
+0x9645,0xb5c8,
+0x9649,0xb5c9,
+0x9651,0xb5ca,
+0x9653,0xb5cb,
+0x9655,0xb5cc,
+0x9661,0xb5cd,
+0x9681,0xb5ce,
+0x9682,0xb5cf,
+0x9685,0xb5d0,
+0x9689,0xb5d1,
+0x9691,0xb5d2,
+0x9693,0xb5d3,
+0x9695,0xb5d4,
+0x9697,0xb5d5,
+0x96a1,0xb5d6,
+0x96b6,0xb5d7,
+0x96c1,0xb5d8,
+0x96d7,0xb5d9,
+0x96e1,0xb5da,
+0x96e5,0xb5db,
+0x96e9,0xb5dc,
+0x96f3,0xb5dd,
+0x96f5,0xb5de,
+0x96f7,0xb5df,
+0x9741,0xb5e0,
+0x9745,0xb5e1,
+0x9749,0xb5e2,
+0x9751,0xb5e3,
+0x9757,0xb5e4,
+0x9761,0xb5e5,
+0x9762,0xb5e6,
+0x9765,0xb5e7,
+0x9768,0xb5e8,
+0x9769,0xb5e9,
+0x976b,0xb5ea,
+0x9771,0xb5eb,
+0x9773,0xb5ec,
+0x9775,0xb5ed,
+0x9777,0xb5ee,
+0x9781,0xb5ef,
+0x97a1,0xb5f0,
+0x97a2,0xb5f1,
+0x97a5,0xb5f2,
+0x97a8,0xb5f3,
+0x97a9,0xb5f4,
+0x97b1,0xb5f5,
+0x97b3,0xb5f6,
+0x97b5,0xb5f7,
+0x97b6,0xb5f8,
+0x97b7,0xb5f9,
+0x97b8,0xb5fa,
+0x9861,0xb5fb,
+0x9862,0xb5fc,
+0x9865,0xb5fd,
+0x9869,0xb5fe,
+0x9871,0xb6a1,
+0x9873,0xb6a2,
+0x9875,0xb6a3,
+0x9876,0xb6a4,
+0x9877,0xb6a5,
+0x987d,0xb6a6,
+0x9881,0xb6a7,
+0x9882,0xb6a8,
+0x9885,0xb6a9,
+0x9889,0xb6aa,
+0x9891,0xb6ab,
+0x9893,0xb6ac,
+0x9895,0xb6ad,
+0x9896,0xb6ae,
+0x9897,0xb6af,
+0x98e1,0xb6b0,
+0x98e2,0xb6b1,
+0x98e5,0xb6b2,
+0x98e9,0xb6b3,
+0x98eb,0xb6b4,
+0x98ec,0xb6b5,
+0x98f1,0xb6b6,
+0x98f3,0xb6b7,
+0x98f5,0xb6b8,
+0x98f6,0xb6b9,
+0x98f7,0xb6ba,
+0x98fd,0xb6bb,
+0x9941,0xb6bc,
+0x9942,0xb6bd,
+0x9945,0xb6be,
+0x9949,0xb6bf,
+0x9951,0xb6c0,
+0x9953,0xb6c1,
+0x9955,0xb6c2,
+0x9956,0xb6c3,
+0x9957,0xb6c4,
+0x9961,0xb6c5,
+0x9976,0xb6c6,
+0x99a1,0xb6c7,
+0x99a2,0xb6c8,
+0x99a5,0xb6c9,
+0x99a9,0xb6ca,
+0x99b7,0xb6cb,
+0x99c1,0xb6cc,
+0x99c9,0xb6cd,
+0x99e1,0xb6ce,
+0x9a41,0xb6cf,
+0x9a45,0xb6d0,
+0x9a81,0xb6d1,
+0x9a82,0xb6d2,
+0x9a85,0xb6d3,
+0x9a89,0xb6d4,
+0x9a90,0xb6d5,
+0x9a91,0xb6d6,
+0x9a97,0xb6d7,
+0x9ac1,0xb6d8,
+0x9ae1,0xb6d9,
+0x9ae5,0xb6da,
+0x9ae9,0xb6db,
+0x9af1,0xb6dc,
+0x9af3,0xb6dd,
+0x9af7,0xb6de,
+0x9b61,0xb6df,
+0x9b62,0xb6e0,
+0x9b65,0xb6e1,
+0x9b68,0xb6e2,
+0x9b69,0xb6e3,
+0x9b71,0xb6e4,
+0x9b73,0xb6e5,
+0x9b75,0xb6e6,
+0x9b81,0xb6e7,
+0x9b85,0xb6e8,
+0x9b89,0xb6e9,
+0x9b91,0xb6ea,
+0x9b93,0xb6eb,
+0x9ba1,0xb6ec,
+0x9ba5,0xb6ed,
+0x9ba9,0xb6ee,
+0x9bb1,0xb6ef,
+0x9bb3,0xb6f0,
+0x9bb5,0xb6f1,
+0x9bb7,0xb6f2,
+0x9c61,0xb6f3,
+0x9c62,0xb6f4,
+0x9c65,0xb6f5,
+0x9c69,0xb6f6,
+0x9c71,0xb6f7,
+0x9c73,0xb6f8,
+0x9c75,0xb6f9,
+0x9c76,0xb6fa,
+0x9c77,0xb6fb,
+0x9c78,0xb6fc,
+0x9c7c,0xb6fd,
+0x9c7d,0xb6fe,
+0x9c81,0xb7a1,
+0x9c82,0xb7a2,
+0x9c85,0xb7a3,
+0x9c89,0xb7a4,
+0x9c91,0xb7a5,
+0x9c93,0xb7a6,
+0x9c95,0xb7a7,
+0x9c96,0xb7a8,
+0x9c97,0xb7a9,
+0x9ca1,0xb7aa,
+0x9ca2,0xb7ab,
+0x9ca5,0xb7ac,
+0x9cb5,0xb7ad,
+0x9cb7,0xb7ae,
+0x9ce1,0xb7af,
+0x9ce2,0xb7b0,
+0x9ce5,0xb7b1,
+0x9ce9,0xb7b2,
+0x9cf1,0xb7b3,
+0x9cf3,0xb7b4,
+0x9cf5,0xb7b5,
+0x9cf6,0xb7b6,
+0x9cf7,0xb7b7,
+0x9cfd,0xb7b8,
+0x9d41,0xb7b9,
+0x9d42,0xb7ba,
+0x9d45,0xb7bb,
+0x9d49,0xb7bc,
+0x9d51,0xb7bd,
+0x9d53,0xb7be,
+0x9d55,0xb7bf,
+0x9d57,0xb7c0,
+0x9d61,0xb7c1,
+0x9d62,0xb7c2,
+0x9d65,0xb7c3,
+0x9d69,0xb7c4,
+0x9d71,0xb7c5,
+0x9d73,0xb7c6,
+0x9d75,0xb7c7,
+0x9d76,0xb7c8,
+0x9d77,0xb7c9,
+0x9d81,0xb7ca,
+0x9d85,0xb7cb,
+0x9d93,0xb7cc,
+0x9d95,0xb7cd,
+0x9da1,0xb7ce,
+0x9da2,0xb7cf,
+0x9da5,0xb7d0,
+0x9da9,0xb7d1,
+0x9db1,0xb7d2,
+0x9db3,0xb7d3,
+0x9db5,0xb7d4,
+0x9db7,0xb7d5,
+0x9dc1,0xb7d6,
+0x9dc5,0xb7d7,
+0x9dd7,0xb7d8,
+0x9df6,0xb7d9,
+0x9e41,0xb7da,
+0x9e45,0xb7db,
+0x9e49,0xb7dc,
+0x9e51,0xb7dd,
+0x9e53,0xb7de,
+0x9e55,0xb7df,
+0x9e57,0xb7e0,
+0x9e61,0xb7e1,
+0x9e65,0xb7e2,
+0x9e69,0xb7e3,
+0x9e73,0xb7e4,
+0x9e75,0xb7e5,
+0x9e77,0xb7e6,
+0x9e81,0xb7e7,
+0x9e82,0xb7e8,
+0x9e85,0xb7e9,
+0x9e89,0xb7ea,
+0x9e91,0xb7eb,
+0x9e93,0xb7ec,
+0x9e95,0xb7ed,
+0x9e97,0xb7ee,
+0x9ea1,0xb7ef,
+0x9eb6,0xb7f0,
+0x9ec1,0xb7f1,
+0x9ee1,0xb7f2,
+0x9ee2,0xb7f3,
+0x9ee5,0xb7f4,
+0x9ee9,0xb7f5,
+0x9ef1,0xb7f6,
+0x9ef5,0xb7f7,
+0x9ef7,0xb7f8,
+0x9f41,0xb7f9,
+0x9f42,0xb7fa,
+0x9f45,0xb7fb,
+0x9f49,0xb7fc,
+0x9f51,0xb7fd,
+0x9f53,0xb7fe,
+0x9f55,0xb8a1,
+0x9f57,0xb8a2,
+0x9f61,0xb8a3,
+0x9f62,0xb8a4,
+0x9f65,0xb8a5,
+0x9f69,0xb8a6,
+0x9f71,0xb8a7,
+0x9f73,0xb8a8,
+0x9f75,0xb8a9,
+0x9f77,0xb8aa,
+0x9f78,0xb8ab,
+0x9f7b,0xb8ac,
+0x9f7c,0xb8ad,
+0x9fa1,0xb8ae,
+0x9fa2,0xb8af,
+0x9fa5,0xb8b0,
+0x9fa9,0xb8b1,
+0x9fb1,0xb8b2,
+0x9fb3,0xb8b3,
+0x9fb5,0xb8b4,
+0x9fb7,0xb8b5,
+0xa061,0xb8b6,
+0xa062,0xb8b7,
+0xa065,0xb8b8,
+0xa067,0xb8b9,
+0xa068,0xb8ba,
+0xa069,0xb8bb,
+0xa06a,0xb8bc,
+0xa06b,0xb8bd,
+0xa071,0xb8be,
+0xa073,0xb8bf,
+0xa075,0xb8c0,
+0xa077,0xb8c1,
+0xa078,0xb8c2,
+0xa07b,0xb8c3,
+0xa07d,0xb8c4,
+0xa081,0xb8c5,
+0xa082,0xb8c6,
+0xa085,0xb8c7,
+0xa089,0xb8c8,
+0xa091,0xb8c9,
+0xa093,0xb8ca,
+0xa095,0xb8cb,
+0xa096,0xb8cc,
+0xa097,0xb8cd,
+0xa098,0xb8ce,
+0xa0a1,0xb8cf,
+0xa0a2,0xb8d0,
+0xa0a9,0xb8d1,
+0xa0b7,0xb8d2,
+0xa0e1,0xb8d3,
+0xa0e2,0xb8d4,
+0xa0e5,0xb8d5,
+0xa0e9,0xb8d6,
+0xa0eb,0xb8d7,
+0xa0f1,0xb8d8,
+0xa0f3,0xb8d9,
+0xa0f5,0xb8da,
+0xa0f7,0xb8db,
+0xa0f8,0xb8dc,
+0xa0fd,0xb8dd,
+0xa141,0xb8de,
+0xa142,0xb8df,
+0xa145,0xb8e0,
+0xa149,0xb8e1,
+0xa151,0xb8e2,
+0xa153,0xb8e3,
+0xa155,0xb8e4,
+0xa156,0xb8e5,
+0xa157,0xb8e6,
+0xa161,0xb8e7,
+0xa162,0xb8e8,
+0xa165,0xb8e9,
+0xa169,0xb8ea,
+0xa175,0xb8eb,
+0xa176,0xb8ec,
+0xa177,0xb8ed,
+0xa179,0xb8ee,
+0xa181,0xb8ef,
+0xa1a1,0xb8f0,
+0xa1a2,0xb8f1,
+0xa1a4,0xb8f2,
+0xa1a5,0xb8f3,
+0xa1a9,0xb8f4,
+0xa1ab,0xb8f5,
+0xa1b1,0xb8f6,
+0xa1b3,0xb8f7,
+0xa1b5,0xb8f8,
+0xa1b7,0xb8f9,
+0xa1c1,0xb8fa,
+0xa1c5,0xb8fb,
+0xa1d6,0xb8fc,
+0xa1d7,0xb8fd,
+0xa241,0xb8fe,
+0xa245,0xb9a1,
+0xa249,0xb9a2,
+0xa253,0xb9a3,
+0xa255,0xb9a4,
+0xa257,0xb9a5,
+0xa261,0xb9a6,
+0xa265,0xb9a7,
+0xa269,0xb9a8,
+0xa273,0xb9a9,
+0xa275,0xb9aa,
+0xa281,0xb9ab,
+0xa282,0xb9ac,
+0xa283,0xb9ad,
+0xa285,0xb9ae,
+0xa288,0xb9af,
+0xa289,0xb9b0,
+0xa28a,0xb9b1,
+0xa28b,0xb9b2,
+0xa291,0xb9b3,
+0xa293,0xb9b4,
+0xa295,0xb9b5,
+0xa297,0xb9b6,
+0xa29b,0xb9b7,
+0xa29d,0xb9b8,
+0xa2a1,0xb9b9,
+0xa2a5,0xb9ba,
+0xa2a9,0xb9bb,
+0xa2b3,0xb9bc,
+0xa2b5,0xb9bd,
+0xa2c1,0xb9be,
+0xa2e1,0xb9bf,
+0xa2e5,0xb9c0,
+0xa2e9,0xb9c1,
+0xa341,0xb9c2,
+0xa345,0xb9c3,
+0xa349,0xb9c4,
+0xa351,0xb9c5,
+0xa355,0xb9c6,
+0xa361,0xb9c7,
+0xa365,0xb9c8,
+0xa369,0xb9c9,
+0xa371,0xb9ca,
+0xa375,0xb9cb,
+0xa3a1,0xb9cc,
+0xa3a2,0xb9cd,
+0xa3a5,0xb9ce,
+0xa3a8,0xb9cf,
+0xa3a9,0xb9d0,
+0xa3ab,0xb9d1,
+0xa3b1,0xb9d2,
+0xa3b3,0xb9d3,
+0xa3b5,0xb9d4,
+0xa3b6,0xb9d5,
+0xa3b7,0xb9d6,
+0xa3b9,0xb9d7,
+0xa3bb,0xb9d8,
+0xa461,0xb9d9,
+0xa462,0xb9da,
+0xa463,0xb9db,
+0xa464,0xb9dc,
+0xa465,0xb9dd,
+0xa468,0xb9de,
+0xa469,0xb9df,
+0xa46a,0xb9e0,
+0xa46b,0xb9e1,
+0xa46c,0xb9e2,
+0xa471,0xb9e3,
+0xa473,0xb9e4,
+0xa475,0xb9e5,
+0xa477,0xb9e6,
+0xa47b,0xb9e7,
+0xa481,0xb9e8,
+0xa482,0xb9e9,
+0xa485,0xb9ea,
+0xa489,0xb9eb,
+0xa491,0xb9ec,
+0xa493,0xb9ed,
+0xa495,0xb9ee,
+0xa496,0xb9ef,
+0xa497,0xb9f0,
+0xa49b,0xb9f1,
+0xa4a1,0xb9f2,
+0xa4a2,0xb9f3,
+0xa4a5,0xb9f4,
+0xa4b3,0xb9f5,
+0xa4e1,0xb9f6,
+0xa4e2,0xb9f7,
+0xa4e5,0xb9f8,
+0xa4e8,0xb9f9,
+0xa4e9,0xb9fa,
+0xa4eb,0xb9fb,
+0xa4f1,0xb9fc,
+0xa4f3,0xb9fd,
+0xa4f5,0xb9fe,
+0xa4f7,0xbaa1,
+0xa4f8,0xbaa2,
+0xa541,0xbaa3,
+0xa542,0xbaa4,
+0xa545,0xbaa5,
+0xa548,0xbaa6,
+0xa549,0xbaa7,
+0xa551,0xbaa8,
+0xa553,0xbaa9,
+0xa555,0xbaaa,
+0xa556,0xbaab,
+0xa557,0xbaac,
+0xa561,0xbaad,
+0xa562,0xbaae,
+0xa565,0xbaaf,
+0xa569,0xbab0,
+0xa573,0xbab1,
+0xa575,0xbab2,
+0xa576,0xbab3,
+0xa577,0xbab4,
+0xa57b,0xbab5,
+0xa581,0xbab6,
+0xa585,0xbab7,
+0xa5a1,0xbab8,
+0xa5a2,0xbab9,
+0xa5a3,0xbaba,
+0xa5a5,0xbabb,
+0xa5a9,0xbabc,
+0xa5b1,0xbabd,
+0xa5b3,0xbabe,
+0xa5b5,0xbabf,
+0xa5b7,0xbac0,
+0xa5c1,0xbac1,
+0xa5c5,0xbac2,
+0xa5d6,0xbac3,
+0xa5e1,0xbac4,
+0xa5f6,0xbac5,
+0xa641,0xbac6,
+0xa642,0xbac7,
+0xa645,0xbac8,
+0xa649,0xbac9,
+0xa651,0xbaca,
+0xa653,0xbacb,
+0xa661,0xbacc,
+0xa665,0xbacd,
+0xa681,0xbace,
+0xa682,0xbacf,
+0xa685,0xbad0,
+0xa688,0xbad1,
+0xa689,0xbad2,
+0xa68a,0xbad3,
+0xa68b,0xbad4,
+0xa691,0xbad5,
+0xa693,0xbad6,
+0xa695,0xbad7,
+0xa697,0xbad8,
+0xa69b,0xbad9,
+0xa69c,0xbada,
+0xa6a1,0xbadb,
+0xa6a9,0xbadc,
+0xa6b6,0xbadd,
+0xa6c1,0xbade,
+0xa6e1,0xbadf,
+0xa6e2,0xbae0,
+0xa6e5,0xbae1,
+0xa6e9,0xbae2,
+0xa6f7,0xbae3,
+0xa741,0xbae4,
+0xa745,0xbae5,
+0xa749,0xbae6,
+0xa751,0xbae7,
+0xa755,0xbae8,
+0xa757,0xbae9,
+0xa761,0xbaea,
+0xa762,0xbaeb,
+0xa765,0xbaec,
+0xa769,0xbaed,
+0xa771,0xbaee,
+0xa773,0xbaef,
+0xa775,0xbaf0,
+0xa7a1,0xbaf1,
+0xa7a2,0xbaf2,
+0xa7a5,0xbaf3,
+0xa7a9,0xbaf4,
+0xa7ab,0xbaf5,
+0xa7b1,0xbaf6,
+0xa7b3,0xbaf7,
+0xa7b5,0xbaf8,
+0xa7b7,0xbaf9,
+0xa7b8,0xbafa,
+0xa7b9,0xbafb,
+0xa861,0xbafc,
+0xa862,0xbafd,
+0xa865,0xbafe,
+0xa869,0xbba1,
+0xa86b,0xbba2,
+0xa871,0xbba3,
+0xa873,0xbba4,
+0xa875,0xbba5,
+0xa876,0xbba6,
+0xa877,0xbba7,
+0xa87d,0xbba8,
+0xa881,0xbba9,
+0xa882,0xbbaa,
+0xa885,0xbbab,
+0xa889,0xbbac,
+0xa891,0xbbad,
+0xa893,0xbbae,
+0xa895,0xbbaf,
+0xa896,0xbbb0,
+0xa897,0xbbb1,
+0xa8a1,0xbbb2,
+0xa8a2,0xbbb3,
+0xa8b1,0xbbb4,
+0xa8e1,0xbbb5,
+0xa8e2,0xbbb6,
+0xa8e5,0xbbb7,
+0xa8e8,0xbbb8,
+0xa8e9,0xbbb9,
+0xa8f1,0xbbba,
+0xa8f5,0xbbbb,
+0xa8f6,0xbbbc,
+0xa8f7,0xbbbd,
+0xa941,0xbbbe,
+0xa957,0xbbbf,
+0xa961,0xbbc0,
+0xa962,0xbbc1,
+0xa971,0xbbc2,
+0xa973,0xbbc3,
+0xa975,0xbbc4,
+0xa976,0xbbc5,
+0xa977,0xbbc6,
+0xa9a1,0xbbc7,
+0xa9a2,0xbbc8,
+0xa9a5,0xbbc9,
+0xa9a9,0xbbca,
+0xa9b1,0xbbcb,
+0xa9b3,0xbbcc,
+0xa9b7,0xbbcd,
+0xaa41,0xbbce,
+0xaa61,0xbbcf,
+0xaa77,0xbbd0,
+0xaa81,0xbbd1,
+0xaa82,0xbbd2,
+0xaa85,0xbbd3,
+0xaa89,0xbbd4,
+0xaa91,0xbbd5,
+0xaa95,0xbbd6,
+0xaa97,0xbbd7,
+0xab41,0xbbd8,
+0xab57,0xbbd9,
+0xab61,0xbbda,
+0xab65,0xbbdb,
+0xab69,0xbbdc,
+0xab71,0xbbdd,
+0xab73,0xbbde,
+0xaba1,0xbbdf,
+0xaba2,0xbbe0,
+0xaba5,0xbbe1,
+0xaba9,0xbbe2,
+0xabb1,0xbbe3,
+0xabb3,0xbbe4,
+0xabb5,0xbbe5,
+0xabb7,0xbbe6,
+0xac61,0xbbe7,
+0xac62,0xbbe8,
+0xac64,0xbbe9,
+0xac65,0xbbea,
+0xac68,0xbbeb,
+0xac69,0xbbec,
+0xac6a,0xbbed,
+0xac6b,0xbbee,
+0xac71,0xbbef,
+0xac73,0xbbf0,
+0xac75,0xbbf1,
+0xac76,0xbbf2,
+0xac77,0xbbf3,
+0xac7b,0xbbf4,
+0xac81,0xbbf5,
+0xac82,0xbbf6,
+0xac85,0xbbf7,
+0xac89,0xbbf8,
+0xac91,0xbbf9,
+0xac93,0xbbfa,
+0xac95,0xbbfb,
+0xac96,0xbbfc,
+0xac97,0xbbfd,
+0xaca1,0xbbfe,
+0xaca2,0xbca1,
+0xaca5,0xbca2,
+0xaca9,0xbca3,
+0xacb1,0xbca4,
+0xacb3,0xbca5,
+0xacb5,0xbca6,
+0xacb7,0xbca7,
+0xacc1,0xbca8,
+0xacc5,0xbca9,
+0xacc9,0xbcaa,
+0xacd1,0xbcab,
+0xacd7,0xbcac,
+0xace1,0xbcad,
+0xace2,0xbcae,
+0xace3,0xbcaf,
+0xace4,0xbcb0,
+0xace5,0xbcb1,
+0xace8,0xbcb2,
+0xace9,0xbcb3,
+0xaceb,0xbcb4,
+0xacec,0xbcb5,
+0xacf1,0xbcb6,
+0xacf3,0xbcb7,
+0xacf5,0xbcb8,
+0xacf6,0xbcb9,
+0xacf7,0xbcba,
+0xacfc,0xbcbb,
+0xad41,0xbcbc,
+0xad42,0xbcbd,
+0xad45,0xbcbe,
+0xad49,0xbcbf,
+0xad51,0xbcc0,
+0xad53,0xbcc1,
+0xad55,0xbcc2,
+0xad56,0xbcc3,
+0xad57,0xbcc4,
+0xad61,0xbcc5,
+0xad62,0xbcc6,
+0xad65,0xbcc7,
+0xad69,0xbcc8,
+0xad71,0xbcc9,
+0xad73,0xbcca,
+0xad75,0xbccb,
+0xad76,0xbccc,
+0xad77,0xbccd,
+0xad81,0xbcce,
+0xad85,0xbccf,
+0xad89,0xbcd0,
+0xad97,0xbcd1,
+0xada1,0xbcd2,
+0xada2,0xbcd3,
+0xada3,0xbcd4,
+0xada5,0xbcd5,
+0xada9,0xbcd6,
+0xadab,0xbcd7,
+0xadb1,0xbcd8,
+0xadb3,0xbcd9,
+0xadb5,0xbcda,
+0xadb7,0xbcdb,
+0xadbb,0xbcdc,
+0xadc1,0xbcdd,
+0xadc2,0xbcde,
+0xadc5,0xbcdf,
+0xadc9,0xbce0,
+0xadd7,0xbce1,
+0xade1,0xbce2,
+0xade5,0xbce3,
+0xade9,0xbce4,
+0xadf1,0xbce5,
+0xadf5,0xbce6,
+0xadf6,0xbce7,
+0xae41,0xbce8,
+0xae45,0xbce9,
+0xae49,0xbcea,
+0xae51,0xbceb,
+0xae53,0xbcec,
+0xae55,0xbced,
+0xae61,0xbcee,
+0xae62,0xbcef,
+0xae65,0xbcf0,
+0xae69,0xbcf1,
+0xae71,0xbcf2,
+0xae73,0xbcf3,
+0xae75,0xbcf4,
+0xae77,0xbcf5,
+0xae81,0xbcf6,
+0xae82,0xbcf7,
+0xae85,0xbcf8,
+0xae88,0xbcf9,
+0xae89,0xbcfa,
+0xae91,0xbcfb,
+0xae93,0xbcfc,
+0xae95,0xbcfd,
+0xae97,0xbcfe,
+0xae99,0xbda1,
+0xae9b,0xbda2,
+0xae9c,0xbda3,
+0xaea1,0xbda4,
+0xaeb6,0xbda5,
+0xaec1,0xbda6,
+0xaec2,0xbda7,
+0xaec5,0xbda8,
+0xaec9,0xbda9,
+0xaed1,0xbdaa,
+0xaed7,0xbdab,
+0xaee1,0xbdac,
+0xaee2,0xbdad,
+0xaee5,0xbdae,
+0xaee9,0xbdaf,
+0xaef1,0xbdb0,
+0xaef3,0xbdb1,
+0xaef5,0xbdb2,
+0xaef7,0xbdb3,
+0xaf41,0xbdb4,
+0xaf42,0xbdb5,
+0xaf49,0xbdb6,
+0xaf51,0xbdb7,
+0xaf55,0xbdb8,
+0xaf57,0xbdb9,
+0xaf61,0xbdba,
+0xaf62,0xbdbb,
+0xaf65,0xbdbc,
+0xaf69,0xbdbd,
+0xaf6a,0xbdbe,
+0xaf71,0xbdbf,
+0xaf73,0xbdc0,
+0xaf75,0xbdc1,
+0xaf77,0xbdc2,
+0xafa1,0xbdc3,
+0xafa2,0xbdc4,
+0xafa5,0xbdc5,
+0xafa8,0xbdc6,
+0xafa9,0xbdc7,
+0xafb0,0xbdc8,
+0xafb1,0xbdc9,
+0xafb3,0xbdca,
+0xafb5,0xbdcb,
+0xafb7,0xbdcc,
+0xafbc,0xbdcd,
+0xb061,0xbdce,
+0xb062,0xbdcf,
+0xb064,0xbdd0,
+0xb065,0xbdd1,
+0xb069,0xbdd2,
+0xb071,0xbdd3,
+0xb073,0xbdd4,
+0xb076,0xbdd5,
+0xb077,0xbdd6,
+0xb07d,0xbdd7,
+0xb081,0xbdd8,
+0xb082,0xbdd9,
+0xb085,0xbdda,
+0xb089,0xbddb,
+0xb091,0xbddc,
+0xb093,0xbddd,
+0xb096,0xbdde,
+0xb097,0xbddf,
+0xb0b7,0xbde0,
+0xb0e1,0xbde1,
+0xb0e2,0xbde2,
+0xb0e5,0xbde3,
+0xb0e9,0xbde4,
+0xb0eb,0xbde5,
+0xb0f1,0xbde6,
+0xb0f3,0xbde7,
+0xb0f6,0xbde8,
+0xb0f7,0xbde9,
+0xb141,0xbdea,
+0xb145,0xbdeb,
+0xb149,0xbdec,
+0xb185,0xbded,
+0xb1a1,0xbdee,
+0xb1a2,0xbdef,
+0xb1a5,0xbdf0,
+0xb1a8,0xbdf1,
+0xb1a9,0xbdf2,
+0xb1ab,0xbdf3,
+0xb1b1,0xbdf4,
+0xb1b3,0xbdf5,
+0xb1b7,0xbdf6,
+0xb1c1,0xbdf7,
+0xb1c2,0xbdf8,
+0xb1c5,0xbdf9,
+0xb1d6,0xbdfa,
+0xb1e1,0xbdfb,
+0xb1f6,0xbdfc,
+0xb241,0xbdfd,
+0xb245,0xbdfe,
+0xb249,0xbea1,
+0xb251,0xbea2,
+0xb253,0xbea3,
+0xb261,0xbea4,
+0xb281,0xbea5,
+0xb282,0xbea6,
+0xb285,0xbea7,
+0xb289,0xbea8,
+0xb291,0xbea9,
+0xb293,0xbeaa,
+0xb297,0xbeab,
+0xb2a1,0xbeac,
+0xb2b6,0xbead,
+0xb2c1,0xbeae,
+0xb2e1,0xbeaf,
+0xb2e5,0xbeb0,
+0xb357,0xbeb1,
+0xb361,0xbeb2,
+0xb362,0xbeb3,
+0xb365,0xbeb4,
+0xb369,0xbeb5,
+0xb36b,0xbeb6,
+0xb370,0xbeb7,
+0xb371,0xbeb8,
+0xb373,0xbeb9,
+0xb381,0xbeba,
+0xb385,0xbebb,
+0xb389,0xbebc,
+0xb391,0xbebd,
+0xb3a1,0xbebe,
+0xb3a2,0xbebf,
+0xb3a5,0xbec0,
+0xb3a9,0xbec1,
+0xb3b1,0xbec2,
+0xb3b3,0xbec3,
+0xb3b5,0xbec4,
+0xb3b7,0xbec5,
+0xb461,0xbec6,
+0xb462,0xbec7,
+0xb465,0xbec8,
+0xb466,0xbec9,
+0xb467,0xbeca,
+0xb469,0xbecb,
+0xb46a,0xbecc,
+0xb46b,0xbecd,
+0xb470,0xbece,
+0xb471,0xbecf,
+0xb473,0xbed0,
+0xb475,0xbed1,
+0xb476,0xbed2,
+0xb477,0xbed3,
+0xb47b,0xbed4,
+0xb47c,0xbed5,
+0xb481,0xbed6,
+0xb482,0xbed7,
+0xb485,0xbed8,
+0xb489,0xbed9,
+0xb491,0xbeda,
+0xb493,0xbedb,
+0xb495,0xbedc,
+0xb496,0xbedd,
+0xb497,0xbede,
+0xb4a1,0xbedf,
+0xb4a2,0xbee0,
+0xb4a5,0xbee1,
+0xb4a9,0xbee2,
+0xb4ac,0xbee3,
+0xb4b1,0xbee4,
+0xb4b3,0xbee5,
+0xb4b5,0xbee6,
+0xb4b7,0xbee7,
+0xb4bb,0xbee8,
+0xb4bd,0xbee9,
+0xb4c1,0xbeea,
+0xb4c5,0xbeeb,
+0xb4c9,0xbeec,
+0xb4d3,0xbeed,
+0xb4e1,0xbeee,
+0xb4e2,0xbeef,
+0xb4e5,0xbef0,
+0xb4e6,0xbef1,
+0xb4e8,0xbef2,
+0xb4e9,0xbef3,
+0xb4ea,0xbef4,
+0xb4eb,0xbef5,
+0xb4f1,0xbef6,
+0xb4f3,0xbef7,
+0xb4f4,0xbef8,
+0xb4f5,0xbef9,
+0xb4f6,0xbefa,
+0xb4f7,0xbefb,
+0xb4f8,0xbefc,
+0xb4fa,0xbefd,
+0xb4fc,0xbefe,
+0xb541,0xbfa1,
+0xb542,0xbfa2,
+0xb545,0xbfa3,
+0xb549,0xbfa4,
+0xb551,0xbfa5,
+0xb553,0xbfa6,
+0xb555,0xbfa7,
+0xb557,0xbfa8,
+0xb561,0xbfa9,
+0xb562,0xbfaa,
+0xb563,0xbfab,
+0xb565,0xbfac,
+0xb569,0xbfad,
+0xb56b,0xbfae,
+0xb56c,0xbfaf,
+0xb571,0xbfb0,
+0xb573,0xbfb1,
+0xb574,0xbfb2,
+0xb575,0xbfb3,
+0xb576,0xbfb4,
+0xb577,0xbfb5,
+0xb57b,0xbfb6,
+0xb57c,0xbfb7,
+0xb57d,0xbfb8,
+0xb581,0xbfb9,
+0xb585,0xbfba,
+0xb589,0xbfbb,
+0xb591,0xbfbc,
+0xb593,0xbfbd,
+0xb595,0xbfbe,
+0xb596,0xbfbf,
+0xb5a1,0xbfc0,
+0xb5a2,0xbfc1,
+0xb5a5,0xbfc2,
+0xb5a9,0xbfc3,
+0xb5aa,0xbfc4,
+0xb5ab,0xbfc5,
+0xb5ad,0xbfc6,
+0xb5b0,0xbfc7,
+0xb5b1,0xbfc8,
+0xb5b3,0xbfc9,
+0xb5b5,0xbfca,
+0xb5b7,0xbfcb,
+0xb5b9,0xbfcc,
+0xb5c1,0xbfcd,
+0xb5c2,0xbfce,
+0xb5c5,0xbfcf,
+0xb5c9,0xbfd0,
+0xb5d1,0xbfd1,
+0xb5d3,0xbfd2,
+0xb5d5,0xbfd3,
+0xb5d6,0xbfd4,
+0xb5d7,0xbfd5,
+0xb5e1,0xbfd6,
+0xb5e2,0xbfd7,
+0xb5e5,0xbfd8,
+0xb5f1,0xbfd9,
+0xb5f5,0xbfda,
+0xb5f7,0xbfdb,
+0xb641,0xbfdc,
+0xb642,0xbfdd,
+0xb645,0xbfde,
+0xb649,0xbfdf,
+0xb651,0xbfe0,
+0xb653,0xbfe1,
+0xb655,0xbfe2,
+0xb657,0xbfe3,
+0xb661,0xbfe4,
+0xb662,0xbfe5,
+0xb665,0xbfe6,
+0xb669,0xbfe7,
+0xb671,0xbfe8,
+0xb673,0xbfe9,
+0xb675,0xbfea,
+0xb677,0xbfeb,
+0xb681,0xbfec,
+0xb682,0xbfed,
+0xb685,0xbfee,
+0xb689,0xbfef,
+0xb68a,0xbff0,
+0xb68b,0xbff1,
+0xb691,0xbff2,
+0xb693,0xbff3,
+0xb695,0xbff4,
+0xb697,0xbff5,
+0xb6a1,0xbff6,
+0xb6a2,0xbff7,
+0xb6a5,0xbff8,
+0xb6a9,0xbff9,
+0xb6b1,0xbffa,
+0xb6b3,0xbffb,
+0xb6b6,0xbffc,
+0xb6b7,0xbffd,
+0xb6c1,0xbffe,
+0xb6c2,0xc0a1,
+0xb6c5,0xc0a2,
+0xb6c9,0xc0a3,
+0xb6d1,0xc0a4,
+0xb6d3,0xc0a5,
+0xb6d7,0xc0a6,
+0xb6e1,0xc0a7,
+0xb6e2,0xc0a8,
+0xb6e5,0xc0a9,
+0xb6e9,0xc0aa,
+0xb6f1,0xc0ab,
+0xb6f3,0xc0ac,
+0xb6f5,0xc0ad,
+0xb6f7,0xc0ae,
+0xb741,0xc0af,
+0xb742,0xc0b0,
+0xb745,0xc0b1,
+0xb749,0xc0b2,
+0xb751,0xc0b3,
+0xb753,0xc0b4,
+0xb755,0xc0b5,
+0xb757,0xc0b6,
+0xb759,0xc0b7,
+0xb761,0xc0b8,
+0xb762,0xc0b9,
+0xb765,0xc0ba,
+0xb769,0xc0bb,
+0xb76f,0xc0bc,
+0xb771,0xc0bd,
+0xb773,0xc0be,
+0xb775,0xc0bf,
+0xb777,0xc0c0,
+0xb778,0xc0c1,
+0xb779,0xc0c2,
+0xb77a,0xc0c3,
+0xb77b,0xc0c4,
+0xb77c,0xc0c5,
+0xb77d,0xc0c6,
+0xb781,0xc0c7,
+0xb785,0xc0c8,
+0xb789,0xc0c9,
+0xb791,0xc0ca,
+0xb795,0xc0cb,
+0xb7a1,0xc0cc,
+0xb7a2,0xc0cd,
+0xb7a5,0xc0ce,
+0xb7a9,0xc0cf,
+0xb7aa,0xc0d0,
+0xb7ab,0xc0d1,
+0xb7b0,0xc0d2,
+0xb7b1,0xc0d3,
+0xb7b3,0xc0d4,
+0xb7b5,0xc0d5,
+0xb7b6,0xc0d6,
+0xb7b7,0xc0d7,
+0xb7b8,0xc0d8,
+0xb7bc,0xc0d9,
+0xb861,0xc0da,
+0xb862,0xc0db,
+0xb865,0xc0dc,
+0xb867,0xc0dd,
+0xb868,0xc0de,
+0xb869,0xc0df,
+0xb86b,0xc0e0,
+0xb871,0xc0e1,
+0xb873,0xc0e2,
+0xb875,0xc0e3,
+0xb876,0xc0e4,
+0xb877,0xc0e5,
+0xb878,0xc0e6,
+0xb881,0xc0e7,
+0xb882,0xc0e8,
+0xb885,0xc0e9,
+0xb889,0xc0ea,
+0xb891,0xc0eb,
+0xb893,0xc0ec,
+0xb895,0xc0ed,
+0xb896,0xc0ee,
+0xb897,0xc0ef,
+0xb8a1,0xc0f0,
+0xb8a2,0xc0f1,
+0xb8a5,0xc0f2,
+0xb8a7,0xc0f3,
+0xb8a9,0xc0f4,
+0xb8b1,0xc0f5,
+0xb8b7,0xc0f6,
+0xb8c1,0xc0f7,
+0xb8c5,0xc0f8,
+0xb8c9,0xc0f9,
+0xb8e1,0xc0fa,
+0xb8e2,0xc0fb,
+0xb8e5,0xc0fc,
+0xb8e9,0xc0fd,
+0xb8eb,0xc0fe,
+0xb8f1,0xc1a1,
+0xb8f3,0xc1a2,
+0xb8f5,0xc1a3,
+0xb8f7,0xc1a4,
+0xb8f8,0xc1a5,
+0xb941,0xc1a6,
+0xb942,0xc1a7,
+0xb945,0xc1a8,
+0xb949,0xc1a9,
+0xb951,0xc1aa,
+0xb953,0xc1ab,
+0xb955,0xc1ac,
+0xb957,0xc1ad,
+0xb961,0xc1ae,
+0xb965,0xc1af,
+0xb969,0xc1b0,
+0xb971,0xc1b1,
+0xb973,0xc1b2,
+0xb976,0xc1b3,
+0xb977,0xc1b4,
+0xb981,0xc1b5,
+0xb9a1,0xc1b6,
+0xb9a2,0xc1b7,
+0xb9a5,0xc1b8,
+0xb9a9,0xc1b9,
+0xb9ab,0xc1ba,
+0xb9b1,0xc1bb,
+0xb9b3,0xc1bc,
+0xb9b5,0xc1bd,
+0xb9b7,0xc1be,
+0xb9b8,0xc1bf,
+0xb9b9,0xc1c0,
+0xb9bd,0xc1c1,
+0xb9c1,0xc1c2,
+0xb9c2,0xc1c3,
+0xb9c9,0xc1c4,
+0xb9d3,0xc1c5,
+0xb9d5,0xc1c6,
+0xb9d7,0xc1c7,
+0xb9e1,0xc1c8,
+0xb9f6,0xc1c9,
+0xb9f7,0xc1ca,
+0xba41,0xc1cb,
+0xba45,0xc1cc,
+0xba49,0xc1cd,
+0xba51,0xc1ce,
+0xba53,0xc1cf,
+0xba55,0xc1d0,
+0xba57,0xc1d1,
+0xba61,0xc1d2,
+0xba62,0xc1d3,
+0xba65,0xc1d4,
+0xba77,0xc1d5,
+0xba81,0xc1d6,
+0xba82,0xc1d7,
+0xba85,0xc1d8,
+0xba89,0xc1d9,
+0xba8a,0xc1da,
+0xba8b,0xc1db,
+0xba91,0xc1dc,
+0xba93,0xc1dd,
+0xba95,0xc1de,
+0xba97,0xc1df,
+0xbaa1,0xc1e0,
+0xbab6,0xc1e1,
+0xbac1,0xc1e2,
+0xbae1,0xc1e3,
+0xbae2,0xc1e4,
+0xbae5,0xc1e5,
+0xbae9,0xc1e6,
+0xbaf1,0xc1e7,
+0xbaf3,0xc1e8,
+0xbaf5,0xc1e9,
+0xbb41,0xc1ea,
+0xbb45,0xc1eb,
+0xbb49,0xc1ec,
+0xbb51,0xc1ed,
+0xbb61,0xc1ee,
+0xbb62,0xc1ef,
+0xbb65,0xc1f0,
+0xbb69,0xc1f1,
+0xbb71,0xc1f2,
+0xbb73,0xc1f3,
+0xbb75,0xc1f4,
+0xbb77,0xc1f5,
+0xbba1,0xc1f6,
+0xbba2,0xc1f7,
+0xbba5,0xc1f8,
+0xbba8,0xc1f9,
+0xbba9,0xc1fa,
+0xbbab,0xc1fb,
+0xbbb1,0xc1fc,
+0xbbb3,0xc1fd,
+0xbbb5,0xc1fe,
+0xbbb7,0xc2a1,
+0xbbb8,0xc2a2,
+0xbbbb,0xc2a3,
+0xbbbc,0xc2a4,
+0xbc61,0xc2a5,
+0xbc62,0xc2a6,
+0xbc65,0xc2a7,
+0xbc67,0xc2a8,
+0xbc69,0xc2a9,
+0xbc6c,0xc2aa,
+0xbc71,0xc2ab,
+0xbc73,0xc2ac,
+0xbc75,0xc2ad,
+0xbc76,0xc2ae,
+0xbc77,0xc2af,
+0xbc81,0xc2b0,
+0xbc82,0xc2b1,
+0xbc85,0xc2b2,
+0xbc89,0xc2b3,
+0xbc91,0xc2b4,
+0xbc93,0xc2b5,
+0xbc95,0xc2b6,
+0xbc96,0xc2b7,
+0xbc97,0xc2b8,
+0xbca1,0xc2b9,
+0xbca5,0xc2ba,
+0xbcb7,0xc2bb,
+0xbce1,0xc2bc,
+0xbce2,0xc2bd,
+0xbce5,0xc2be,
+0xbce9,0xc2bf,
+0xbcf1,0xc2c0,
+0xbcf3,0xc2c1,
+0xbcf5,0xc2c2,
+0xbcf6,0xc2c3,
+0xbcf7,0xc2c4,
+0xbd41,0xc2c5,
+0xbd57,0xc2c6,
+0xbd61,0xc2c7,
+0xbd76,0xc2c8,
+0xbda1,0xc2c9,
+0xbda2,0xc2ca,
+0xbda5,0xc2cb,
+0xbda9,0xc2cc,
+0xbdb1,0xc2cd,
+0xbdb3,0xc2ce,
+0xbdb5,0xc2cf,
+0xbdb7,0xc2d0,
+0xbdb9,0xc2d1,
+0xbdc1,0xc2d2,
+0xbdc2,0xc2d3,
+0xbdc9,0xc2d4,
+0xbdd6,0xc2d5,
+0xbde1,0xc2d6,
+0xbdf6,0xc2d7,
+0xbe41,0xc2d8,
+0xbe45,0xc2d9,
+0xbe49,0xc2da,
+0xbe51,0xc2db,
+0xbe53,0xc2dc,
+0xbe77,0xc2dd,
+0xbe81,0xc2de,
+0xbe82,0xc2df,
+0xbe85,0xc2e0,
+0xbe89,0xc2e1,
+0xbe91,0xc2e2,
+0xbe93,0xc2e3,
+0xbe97,0xc2e4,
+0xbea1,0xc2e5,
+0xbeb6,0xc2e6,
+0xbeb7,0xc2e7,
+0xbee1,0xc2e8,
+0xbf41,0xc2e9,
+0xbf61,0xc2ea,
+0xbf71,0xc2eb,
+0xbf75,0xc2ec,
+0xbf77,0xc2ed,
+0xbfa1,0xc2ee,
+0xbfa2,0xc2ef,
+0xbfa5,0xc2f0,
+0xbfa9,0xc2f1,
+0xbfb1,0xc2f2,
+0xbfb3,0xc2f3,
+0xbfb7,0xc2f4,
+0xbfb8,0xc2f5,
+0xbfbd,0xc2f6,
+0xc061,0xc2f7,
+0xc062,0xc2f8,
+0xc065,0xc2f9,
+0xc067,0xc2fa,
+0xc069,0xc2fb,
+0xc071,0xc2fc,
+0xc073,0xc2fd,
+0xc075,0xc2fe,
+0xc076,0xc3a1,
+0xc077,0xc3a2,
+0xc078,0xc3a3,
+0xc081,0xc3a4,
+0xc082,0xc3a5,
+0xc085,0xc3a6,
+0xc089,0xc3a7,
+0xc091,0xc3a8,
+0xc093,0xc3a9,
+0xc095,0xc3aa,
+0xc096,0xc3ab,
+0xc097,0xc3ac,
+0xc0a1,0xc3ad,
+0xc0a5,0xc3ae,
+0xc0a7,0xc3af,
+0xc0a9,0xc3b0,
+0xc0b1,0xc3b1,
+0xc0b7,0xc3b2,
+0xc0e1,0xc3b3,
+0xc0e2,0xc3b4,
+0xc0e5,0xc3b5,
+0xc0e9,0xc3b6,
+0xc0f1,0xc3b7,
+0xc0f3,0xc3b8,
+0xc0f5,0xc3b9,
+0xc0f6,0xc3ba,
+0xc0f7,0xc3bb,
+0xc141,0xc3bc,
+0xc142,0xc3bd,
+0xc145,0xc3be,
+0xc149,0xc3bf,
+0xc151,0xc3c0,
+0xc153,0xc3c1,
+0xc155,0xc3c2,
+0xc157,0xc3c3,
+0xc161,0xc3c4,
+0xc165,0xc3c5,
+0xc176,0xc3c6,
+0xc181,0xc3c7,
+0xc185,0xc3c8,
+0xc197,0xc3c9,
+0xc1a1,0xc3ca,
+0xc1a2,0xc3cb,
+0xc1a5,0xc3cc,
+0xc1a9,0xc3cd,
+0xc1b1,0xc3ce,
+0xc1b3,0xc3cf,
+0xc1b5,0xc3d0,
+0xc1b7,0xc3d1,
+0xc1c1,0xc3d2,
+0xc1c5,0xc3d3,
+0xc1c9,0xc3d4,
+0xc1d7,0xc3d5,
+0xc241,0xc3d6,
+0xc245,0xc3d7,
+0xc249,0xc3d8,
+0xc251,0xc3d9,
+0xc253,0xc3da,
+0xc255,0xc3db,
+0xc257,0xc3dc,
+0xc261,0xc3dd,
+0xc271,0xc3de,
+0xc281,0xc3df,
+0xc282,0xc3e0,
+0xc285,0xc3e1,
+0xc289,0xc3e2,
+0xc291,0xc3e3,
+0xc293,0xc3e4,
+0xc295,0xc3e5,
+0xc297,0xc3e6,
+0xc2a1,0xc3e7,
+0xc2b6,0xc3e8,
+0xc2c1,0xc3e9,
+0xc2c5,0xc3ea,
+0xc2e1,0xc3eb,
+0xc2e5,0xc3ec,
+0xc2e9,0xc3ed,
+0xc2f1,0xc3ee,
+0xc2f3,0xc3ef,
+0xc2f5,0xc3f0,
+0xc2f7,0xc3f1,
+0xc341,0xc3f2,
+0xc345,0xc3f3,
+0xc349,0xc3f4,
+0xc351,0xc3f5,
+0xc357,0xc3f6,
+0xc361,0xc3f7,
+0xc362,0xc3f8,
+0xc365,0xc3f9,
+0xc369,0xc3fa,
+0xc371,0xc3fb,
+0xc373,0xc3fc,
+0xc375,0xc3fd,
+0xc377,0xc3fe,
+0xc3a1,0xc4a1,
+0xc3a2,0xc4a2,
+0xc3a5,0xc4a3,
+0xc3a8,0xc4a4,
+0xc3a9,0xc4a5,
+0xc3aa,0xc4a6,
+0xc3b1,0xc4a7,
+0xc3b3,0xc4a8,
+0xc3b5,0xc4a9,
+0xc3b7,0xc4aa,
+0xc461,0xc4ab,
+0xc462,0xc4ac,
+0xc465,0xc4ad,
+0xc469,0xc4ae,
+0xc471,0xc4af,
+0xc473,0xc4b0,
+0xc475,0xc4b1,
+0xc477,0xc4b2,
+0xc481,0xc4b3,
+0xc482,0xc4b4,
+0xc485,0xc4b5,
+0xc489,0xc4b6,
+0xc491,0xc4b7,
+0xc493,0xc4b8,
+0xc495,0xc4b9,
+0xc496,0xc4ba,
+0xc497,0xc4bb,
+0xc4a1,0xc4bc,
+0xc4a2,0xc4bd,
+0xc4b7,0xc4be,
+0xc4e1,0xc4bf,
+0xc4e2,0xc4c0,
+0xc4e5,0xc4c1,
+0xc4e8,0xc4c2,
+0xc4e9,0xc4c3,
+0xc4f1,0xc4c4,
+0xc4f3,0xc4c5,
+0xc4f5,0xc4c6,
+0xc4f6,0xc4c7,
+0xc4f7,0xc4c8,
+0xc541,0xc4c9,
+0xc542,0xc4ca,
+0xc545,0xc4cb,
+0xc549,0xc4cc,
+0xc551,0xc4cd,
+0xc553,0xc4ce,
+0xc555,0xc4cf,
+0xc557,0xc4d0,
+0xc561,0xc4d1,
+0xc565,0xc4d2,
+0xc569,0xc4d3,
+0xc571,0xc4d4,
+0xc573,0xc4d5,
+0xc575,0xc4d6,
+0xc576,0xc4d7,
+0xc577,0xc4d8,
+0xc581,0xc4d9,
+0xc5a1,0xc4da,
+0xc5a2,0xc4db,
+0xc5a5,0xc4dc,
+0xc5a9,0xc4dd,
+0xc5b1,0xc4de,
+0xc5b3,0xc4df,
+0xc5b5,0xc4e0,
+0xc5b7,0xc4e1,
+0xc5c1,0xc4e2,
+0xc5c2,0xc4e3,
+0xc5c5,0xc4e4,
+0xc5c9,0xc4e5,
+0xc5d1,0xc4e6,
+0xc5d7,0xc4e7,
+0xc5e1,0xc4e8,
+0xc5f7,0xc4e9,
+0xc641,0xc4ea,
+0xc649,0xc4eb,
+0xc661,0xc4ec,
+0xc681,0xc4ed,
+0xc682,0xc4ee,
+0xc685,0xc4ef,
+0xc689,0xc4f0,
+0xc691,0xc4f1,
+0xc693,0xc4f2,
+0xc695,0xc4f3,
+0xc697,0xc4f4,
+0xc6a1,0xc4f5,
+0xc6a5,0xc4f6,
+0xc6a9,0xc4f7,
+0xc6b7,0xc4f8,
+0xc6c1,0xc4f9,
+0xc6d7,0xc4fa,
+0xc6e1,0xc4fb,
+0xc6e2,0xc4fc,
+0xc6e5,0xc4fd,
+0xc6e9,0xc4fe,
+0xc6f1,0xc5a1,
+0xc6f3,0xc5a2,
+0xc6f5,0xc5a3,
+0xc6f7,0xc5a4,
+0xc741,0xc5a5,
+0xc745,0xc5a6,
+0xc749,0xc5a7,
+0xc751,0xc5a8,
+0xc761,0xc5a9,
+0xc762,0xc5aa,
+0xc765,0xc5ab,
+0xc769,0xc5ac,
+0xc771,0xc5ad,
+0xc773,0xc5ae,
+0xc777,0xc5af,
+0xc7a1,0xc5b0,
+0xc7a2,0xc5b1,
+0xc7a5,0xc5b2,
+0xc7a9,0xc5b3,
+0xc7b1,0xc5b4,
+0xc7b3,0xc5b5,
+0xc7b5,0xc5b6,
+0xc7b7,0xc5b7,
+0xc861,0xc5b8,
+0xc862,0xc5b9,
+0xc865,0xc5ba,
+0xc869,0xc5bb,
+0xc86a,0xc5bc,
+0xc871,0xc5bd,
+0xc873,0xc5be,
+0xc875,0xc5bf,
+0xc876,0xc5c0,
+0xc877,0xc5c1,
+0xc881,0xc5c2,
+0xc882,0xc5c3,
+0xc885,0xc5c4,
+0xc889,0xc5c5,
+0xc891,0xc5c6,
+0xc893,0xc5c7,
+0xc895,0xc5c8,
+0xc896,0xc5c9,
+0xc897,0xc5ca,
+0xc8a1,0xc5cb,
+0xc8b7,0xc5cc,
+0xc8e1,0xc5cd,
+0xc8e2,0xc5ce,
+0xc8e5,0xc5cf,
+0xc8e9,0xc5d0,
+0xc8eb,0xc5d1,
+0xc8f1,0xc5d2,
+0xc8f3,0xc5d3,
+0xc8f5,0xc5d4,
+0xc8f6,0xc5d5,
+0xc8f7,0xc5d6,
+0xc941,0xc5d7,
+0xc942,0xc5d8,
+0xc945,0xc5d9,
+0xc949,0xc5da,
+0xc951,0xc5db,
+0xc953,0xc5dc,
+0xc955,0xc5dd,
+0xc957,0xc5de,
+0xc961,0xc5df,
+0xc965,0xc5e0,
+0xc976,0xc5e1,
+0xc981,0xc5e2,
+0xc985,0xc5e3,
+0xc9a1,0xc5e4,
+0xc9a2,0xc5e5,
+0xc9a5,0xc5e6,
+0xc9a9,0xc5e7,
+0xc9b1,0xc5e8,
+0xc9b3,0xc5e9,
+0xc9b5,0xc5ea,
+0xc9b7,0xc5eb,
+0xc9bc,0xc5ec,
+0xc9c1,0xc5ed,
+0xc9c5,0xc5ee,
+0xc9e1,0xc5ef,
+0xca41,0xc5f0,
+0xca45,0xc5f1,
+0xca55,0xc5f2,
+0xca57,0xc5f3,
+0xca61,0xc5f4,
+0xca81,0xc5f5,
+0xca82,0xc5f6,
+0xca85,0xc5f7,
+0xca89,0xc5f8,
+0xca91,0xc5f9,
+0xca93,0xc5fa,
+0xca95,0xc5fb,
+0xca97,0xc5fc,
+0xcaa1,0xc5fd,
+0xcab6,0xc5fe,
+0xcac1,0xc6a1,
+0xcae1,0xc6a2,
+0xcae2,0xc6a3,
+0xcae5,0xc6a4,
+0xcae9,0xc6a5,
+0xcaf1,0xc6a6,
+0xcaf3,0xc6a7,
+0xcaf7,0xc6a8,
+0xcb41,0xc6a9,
+0xcb45,0xc6aa,
+0xcb49,0xc6ab,
+0xcb51,0xc6ac,
+0xcb57,0xc6ad,
+0xcb61,0xc6ae,
+0xcb62,0xc6af,
+0xcb65,0xc6b0,
+0xcb68,0xc6b1,
+0xcb69,0xc6b2,
+0xcb6b,0xc6b3,
+0xcb71,0xc6b4,
+0xcb73,0xc6b5,
+0xcb75,0xc6b6,
+0xcb81,0xc6b7,
+0xcb85,0xc6b8,
+0xcb89,0xc6b9,
+0xcb91,0xc6ba,
+0xcb93,0xc6bb,
+0xcba1,0xc6bc,
+0xcba2,0xc6bd,
+0xcba5,0xc6be,
+0xcba9,0xc6bf,
+0xcbb1,0xc6c0,
+0xcbb3,0xc6c1,
+0xcbb5,0xc6c2,
+0xcbb7,0xc6c3,
+0xcc61,0xc6c4,
+0xcc62,0xc6c5,
+0xcc63,0xc6c6,
+0xcc65,0xc6c7,
+0xcc69,0xc6c8,
+0xcc6b,0xc6c9,
+0xcc71,0xc6ca,
+0xcc73,0xc6cb,
+0xcc75,0xc6cc,
+0xcc76,0xc6cd,
+0xcc77,0xc6ce,
+0xcc7b,0xc6cf,
+0xcc81,0xc6d0,
+0xcc82,0xc6d1,
+0xcc85,0xc6d2,
+0xcc89,0xc6d3,
+0xcc91,0xc6d4,
+0xcc93,0xc6d5,
+0xcc95,0xc6d6,
+0xcc96,0xc6d7,
+0xcc97,0xc6d8,
+0xcca1,0xc6d9,
+0xcca2,0xc6da,
+0xcce1,0xc6db,
+0xcce2,0xc6dc,
+0xcce5,0xc6dd,
+0xcce9,0xc6de,
+0xccf1,0xc6df,
+0xccf3,0xc6e0,
+0xccf5,0xc6e1,
+0xccf6,0xc6e2,
+0xccf7,0xc6e3,
+0xcd41,0xc6e4,
+0xcd42,0xc6e5,
+0xcd45,0xc6e6,
+0xcd49,0xc6e7,
+0xcd51,0xc6e8,
+0xcd53,0xc6e9,
+0xcd55,0xc6ea,
+0xcd57,0xc6eb,
+0xcd61,0xc6ec,
+0xcd65,0xc6ed,
+0xcd69,0xc6ee,
+0xcd71,0xc6ef,
+0xcd73,0xc6f0,
+0xcd76,0xc6f1,
+0xcd77,0xc6f2,
+0xcd81,0xc6f3,
+0xcd89,0xc6f4,
+0xcd93,0xc6f5,
+0xcd95,0xc6f6,
+0xcda1,0xc6f7,
+0xcda2,0xc6f8,
+0xcda5,0xc6f9,
+0xcda9,0xc6fa,
+0xcdb1,0xc6fb,
+0xcdb3,0xc6fc,
+0xcdb5,0xc6fd,
+0xcdb7,0xc6fe,
+0xcdc1,0xc7a1,
+0xcdd7,0xc7a2,
+0xce41,0xc7a3,
+0xce45,0xc7a4,
+0xce61,0xc7a5,
+0xce65,0xc7a6,
+0xce69,0xc7a7,
+0xce73,0xc7a8,
+0xce75,0xc7a9,
+0xce81,0xc7aa,
+0xce82,0xc7ab,
+0xce85,0xc7ac,
+0xce88,0xc7ad,
+0xce89,0xc7ae,
+0xce8b,0xc7af,
+0xce91,0xc7b0,
+0xce93,0xc7b1,
+0xce95,0xc7b2,
+0xce97,0xc7b3,
+0xcea1,0xc7b4,
+0xceb7,0xc7b5,
+0xcee1,0xc7b6,
+0xcee5,0xc7b7,
+0xcee9,0xc7b8,
+0xcef1,0xc7b9,
+0xcef5,0xc7ba,
+0xcf41,0xc7bb,
+0xcf45,0xc7bc,
+0xcf49,0xc7bd,
+0xcf51,0xc7be,
+0xcf55,0xc7bf,
+0xcf57,0xc7c0,
+0xcf61,0xc7c1,
+0xcf65,0xc7c2,
+0xcf69,0xc7c3,
+0xcf71,0xc7c4,
+0xcf73,0xc7c5,
+0xcf75,0xc7c6,
+0xcfa1,0xc7c7,
+0xcfa2,0xc7c8,
+0xcfa5,0xc7c9,
+0xcfa9,0xc7ca,
+0xcfb1,0xc7cb,
+0xcfb3,0xc7cc,
+0xcfb5,0xc7cd,
+0xcfb7,0xc7ce,
+0xd061,0xc7cf,
+0xd062,0xc7d0,
+0xd065,0xc7d1,
+0xd069,0xc7d2,
+0xd06e,0xc7d3,
+0xd071,0xc7d4,
+0xd073,0xc7d5,
+0xd075,0xc7d6,
+0xd077,0xc7d7,
+0xd081,0xc7d8,
+0xd082,0xc7d9,
+0xd085,0xc7da,
+0xd089,0xc7db,
+0xd091,0xc7dc,
+0xd093,0xc7dd,
+0xd095,0xc7de,
+0xd096,0xc7df,
+0xd097,0xc7e0,
+0xd0a1,0xc7e1,
+0xd0b7,0xc7e2,
+0xd0e1,0xc7e3,
+0xd0e2,0xc7e4,
+0xd0e5,0xc7e5,
+0xd0e9,0xc7e6,
+0xd0eb,0xc7e7,
+0xd0f1,0xc7e8,
+0xd0f3,0xc7e9,
+0xd0f5,0xc7ea,
+0xd0f7,0xc7eb,
+0xd141,0xc7ec,
+0xd142,0xc7ed,
+0xd145,0xc7ee,
+0xd149,0xc7ef,
+0xd151,0xc7f0,
+0xd153,0xc7f1,
+0xd155,0xc7f2,
+0xd157,0xc7f3,
+0xd161,0xc7f4,
+0xd162,0xc7f5,
+0xd165,0xc7f6,
+0xd169,0xc7f7,
+0xd171,0xc7f8,
+0xd173,0xc7f9,
+0xd175,0xc7fa,
+0xd176,0xc7fb,
+0xd177,0xc7fc,
+0xd181,0xc7fd,
+0xd185,0xc7fe,
+0xd189,0xc8a1,
+0xd193,0xc8a2,
+0xd1a1,0xc8a3,
+0xd1a2,0xc8a4,
+0xd1a5,0xc8a5,
+0xd1a9,0xc8a6,
+0xd1ae,0xc8a7,
+0xd1b1,0xc8a8,
+0xd1b3,0xc8a9,
+0xd1b5,0xc8aa,
+0xd1b7,0xc8ab,
+0xd1bb,0xc8ac,
+0xd1c1,0xc8ad,
+0xd1c2,0xc8ae,
+0xd1c5,0xc8af,
+0xd1c9,0xc8b0,
+0xd1d5,0xc8b1,
+0xd1d7,0xc8b2,
+0xd1e1,0xc8b3,
+0xd1e2,0xc8b4,
+0xd1e5,0xc8b5,
+0xd1f5,0xc8b6,
+0xd1f7,0xc8b7,
+0xd241,0xc8b8,
+0xd242,0xc8b9,
+0xd245,0xc8ba,
+0xd249,0xc8bb,
+0xd253,0xc8bc,
+0xd255,0xc8bd,
+0xd257,0xc8be,
+0xd261,0xc8bf,
+0xd265,0xc8c0,
+0xd269,0xc8c1,
+0xd273,0xc8c2,
+0xd275,0xc8c3,
+0xd281,0xc8c4,
+0xd282,0xc8c5,
+0xd285,0xc8c6,
+0xd289,0xc8c7,
+0xd28e,0xc8c8,
+0xd291,0xc8c9,
+0xd295,0xc8ca,
+0xd297,0xc8cb,
+0xd2a1,0xc8cc,
+0xd2a5,0xc8cd,
+0xd2a9,0xc8ce,
+0xd2b1,0xc8cf,
+0xd2b7,0xc8d0,
+0xd2c1,0xc8d1,
+0xd2c2,0xc8d2,
+0xd2c5,0xc8d3,
+0xd2c9,0xc8d4,
+0xd2d7,0xc8d5,
+0xd2e1,0xc8d6,
+0xd2e2,0xc8d7,
+0xd2e5,0xc8d8,
+0xd2e9,0xc8d9,
+0xd2f1,0xc8da,
+0xd2f3,0xc8db,
+0xd2f5,0xc8dc,
+0xd2f7,0xc8dd,
+0xd341,0xc8de,
+0xd342,0xc8df,
+0xd345,0xc8e0,
+0xd349,0xc8e1,
+0xd351,0xc8e2,
+0xd355,0xc8e3,
+0xd357,0xc8e4,
+0xd361,0xc8e5,
+0xd362,0xc8e6,
+0xd365,0xc8e7,
+0xd367,0xc8e8,
+0xd368,0xc8e9,
+0xd369,0xc8ea,
+0xd36a,0xc8eb,
+0xd371,0xc8ec,
+0xd373,0xc8ed,
+0xd375,0xc8ee,
+0xd377,0xc8ef,
+0xd37b,0xc8f0,
+0xd381,0xc8f1,
+0xd385,0xc8f2,
+0xd389,0xc8f3,
+0xd391,0xc8f4,
+0xd393,0xc8f5,
+0xd397,0xc8f6,
+0xd3a1,0xc8f7,
+0xd3a2,0xc8f8,
+0xd3a5,0xc8f9,
+0xd3a9,0xc8fa,
+0xd3b1,0xc8fb,
+0xd3b3,0xc8fc,
+0xd3b5,0xc8fd,
+0xd3b7,0xc8fe };
diff --git a/language/korean/hcode1_1/h3Bcode.h b/language/korean/hcode1_1/h3Bcode.h
new file mode 100644
index 0000000000..ab249df95c
--- /dev/null
+++ b/language/korean/hcode1_1/h3Bcode.h
@@ -0,0 +1,105 @@
+static char StartCode[No3Bcode][3] = {
+ "\016","_","_" };
+static char EndCode[No3Bcode][3] = {
+ "\017","_","_" };
+static char ChoSung[32][No3Bcode][3] = {
+"", "", "",
+"", "", "",
+"A", "r", "G", /* 0x02 */
+"B", "R", "GG",
+"D", "s", "N",
+"G", "e", "D",
+"H", "E", "DD",
+"I", "f", "R",
+"Q", "a", "M",
+"R", "q", "B",
+"S", "Q", "BB",
+"U", "t", "S",
+"V", "T", "SS",
+"W", "d", ".",
+"X", "w", "J",
+"Y", "W", "JJ",
+"Z", "c", "Ch",
+"[", "z", "K",
+"\\","x", "T",
+"]", "v", "P",
+"^", "g", "H", /* 0x14 */
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "",
+"", "", "" }; /* 0x1f */
+
+static char JungSung[32][No3Bcode][4] = {
+"", "", "",
+"", "" , "",
+"", "" , "",
+"b", "k", "a",
+"c", "o", "ai",
+"d", "i", "ya",
+"e", "O", "yai",
+"f", "j", "eo", /* 0x07 */
+"", "" , "",
+"", "" , "",
+"g", "p", "e",
+"j", "u", "yeo",
+"k", "P", "ye",
+"l", "h", "o",
+"lb", "hk", "oa",
+"lc", "ho", "oai", /* 0x0f */
+"", "", "",
+"", "", "",
+"l|", "hl", "oi",
+"r", "y", "yo",
+"s", "n", "u",
+"sf", "nj", "ueo",
+"sg", "np", "ue",
+"s|", "nk", "ui", /* 0x17 */
+"", "", "",
+"", "", "",
+"w", "b", "yu",
+"z", "m", "eu",
+"z|", "mi", "eui",
+"|", "k", "i",
+"", "", "",
+"", "", "" }; /* 0x1f */
+
+static char JongSung[32][No3Bcode][3] = {
+"", "", "",
+"", "", "", /* Without Jongsung */
+"A", "r", "g",
+"B", "R", "gg",
+"AU", "rt", "gs",
+"D", "s", "n",
+"DX", "sw", "nj",
+"D^", "sg", "nh",
+"G", "e", "d",
+"I", "f", "l",
+"IA", "fr", "lg",
+"IQ", "fa", "lm",
+"IR", "fq", "lb",
+"IU", "ft", "ls",
+"I\\","fx", "lt",
+"I]", "fv", "lp",
+"I^", "fg", "lh",
+"Q", "a", "m",
+"" , "", "",
+"R", "q", "b",
+"RU", "Q", "bs",
+"U", "t", "s",
+"V", "T", "ss",
+"W", "d", "ng",
+"X", "w", "j",
+"Z", "c", "ch",
+"[", "z", "k",
+"\\", "x", "t",
+"]", "v", "p",
+"^", "g", "h",
+"", "", "",
+"", "", "" }; /* 0x1f */
diff --git a/language/korean/hcode1_1/hcode.c b/language/korean/hcode1_1/hcode.c
new file mode 100644
index 0000000000..de299b285c
--- /dev/null
+++ b/language/korean/hcode1_1/hcode.c
@@ -0,0 +1,244 @@
+/* ***********************************************************
+ Program : Hangul Code Conversion Program
+ Author : June-Yub Lee (jylee@math1.nyu.edu:jylee@math1.kaist.ac.kr)
+ Created : Jan, 07, 1992
+ Modified : Ver. 1.1 Feb, 29, 1992
+
+ This Program is free software under the GNU General Public License.
+ If you are installing this program for your own work or other users,
+ please send me a e-mail so that I can fix any possible bug and
+ update for new Hangul Code including UNICODE.
+************************************************************ */
+
+#include <stdio.h>
+#include "hcode.h"
+#include "h3Bcode.h"
+
+extern void opt_check();
+extern void rmprolog();
+extern void printout();
+extern void code2conv();
+extern void m2code();
+extern int getOne();
+extern int HanCode();
+extern int strNcmp();
+
+main(argc,argv)
+int argc;
+char *argv[];
+{
+ FILE *fpin, *fpout;
+ unsigned char c,c2=0,ST,EN,buf[MAXBUFSIZE];
+ int inCode, outCode, IC, Hanbuf[MAXHANSIZE];
+
+ buf[0] = 0;
+ Hanbuf[0] = 0;
+
+ opt_check(argc,argv,&inCode,&outCode, &fpin, &fpout);
+
+ IC = inCode - NB; /* MultiByte Hangul Input if IC >= 0 */
+ if ( inCode == IS ) {
+ ST = '\016';
+ EN = '\017';
+ rmprolog("\033$)C",fpin,fpout);
+ } else if ( IC >= 0 ) {
+ ST = (unsigned char) StartCode[IC][0];
+ EN = (unsigned char) EndCode[IC][0];
+ } else {
+ ST = (unsigned char) EOF;
+ EN = (unsigned char) EOF;
+ }
+
+ while ( (c=getc(fpin)) != (unsigned char) EOF ) {
+ if ( c>=0x80 && inCode==TR ||
+ (c==0xa4||c>=0xb0&&c<=0xc8) && inCode==KS ) {
+ if ( (c2=getc(fpin)) == (unsigned char) EOF ) {
+ fprintf(stderr,"Uncompeleted 2-byte Hangul\n");
+ putc(c,fpout);
+ ungetc(c2,fpin);
+ } /* Unfinshed 2B Hangul */
+ Hanbuf[++Hanbuf[0]] = c*256 + c2;
+
+ } else if ( c==ST && inCode==IS ) {
+ while ( (c=getc(fpin)) != EN ) {
+ /* Error Dealing Section missing */
+ c2=getc(fpin);
+ Hanbuf[++Hanbuf[0]] = (c+0x80)*256 + (c2+0x80);
+ }
+
+ } else if ( c==ST && IC>=0 ) {
+ while ( (c=getc(fpin)) != EN ) {
+ if ( c==(unsigned char) EOF ) {
+ fprintf(stderr,"Can't find EndCode in MultiByte Hangul\n");
+ ungetc(c,fpin);
+ break;
+ } /* EndCode Missing */
+ buf[++buf[0]] = c;
+ if ( buf[0]>=MAXBUFSIZE-5 )
+ m2code(buf,IC,MULHAN,Hanbuf);
+ }
+ m2code(buf,IC,ENDHAN,Hanbuf);
+
+ } else {
+ if ( Hanbuf[0]!=0 )
+ printout(Hanbuf, fpout, inCode, outCode, 1);
+ putc(c,fpout);
+ }
+ }
+
+ if ( Hanbuf[0] != 0 ) { /* document ending with Hangul */
+ printout(Hanbuf, fpout, inCode, outCode, 1);
+ }
+ fclose(fpin);
+ fclose(fpout);
+}
+
+/* ------------------------------------------------------
+ Command Line Option Check Routine
+ Two integes Return : inCode and outCode
+ Two file pointer : fhin, fhout
+ Defaults : from_IS, to_KS, stdin, stdout;
+ ------------------------------------------------------- */
+
+void opt_check(argc, argv, inCode, outCode, fhin, fhout)
+char *argv[];
+FILE **fhin, **fhout;
+int argc, *inCode, *outCode;
+{
+ char *program = argv[0];
+ *inCode = IS;
+ *outCode = KS;
+ while (--argc) {
+ argv++;
+ if ( argv[0][0]!='-' || argv[0][1]=='\0' ) {
+ break;
+ } else if ( argv[0][2]=='\0' ) {
+ *inCode = in_choice [ argv[0][1]-'a' ];
+ } else if ( argv[0][3]=='\0' ) {
+ *inCode = in_choice [ argv[0][1]-'a' ];
+ *outCode = out_choice [ argv[0][2]-'a' ];
+ } else {
+ fprintf(stderr,"Unknown Option: %s %s\n",program,syn);
+ exit(-1);
+ }
+ if ( *inCode == 0 ) {
+ fprintf(stderr,"Unknown InCode: %s %s\n",program,syn);
+ exit(-1);
+ } else if ( *outCode == 0 ) {
+ fprintf(stderr,"Unknown OutCode: %s %s\n",program,syn);
+ exit(-1);
+ }
+ }
+
+ *fhin = stdin;
+ *fhout = stdout;
+ if ( argc > 2 ) {
+ fprintf(stderr,"Unknown Syntax: %s %s\n",program,syn);
+ exit(-1);
+ } else if ( argc == 2 ) {
+ if ( argv[0][0]!='-' && (*fhin=fopen(argv[0],"r"))==NULL ) {
+ fprintf(stderr,"%s: Read Err on %s\n",program,argv[0]);
+ exit(1);
+ }
+ if ( (*fhout=fopen(argv[1],"w")) == NULL ) {
+ fprintf(stderr,"%s: Write Err on %s\n",program,argv[1]);
+ exit(1);
+ }
+ } else if ( argc == 1 ) {
+ if ( argv[0][0]!='-' && (*fhin=fopen(argv[0],"r"))==NULL ) {
+ fprintf(stderr,"%s: Read Err on %s\n",program,argv[0]);
+ exit(1);
+ }
+ }
+}
+
+/* ------------------------------------------------------
+ Search for Starting Mark and print out (ENGLISH) prologue
+ mark : Starting Code
+ Two file pointer : fhin, fhout
+ ------------------------------------------------------- */
+
+void rmprolog(mark,fpin,fpout)
+char mark[];
+FILE *fpin, *fpout;
+{
+ char c;
+ int i,p=0,len=strlen(mark);
+
+ while( (c=getc(fpin)) !=EOF ) {
+ if (c==mark[p]) {
+ if (p==len-1)
+ return;
+ else
+ p++;
+ } else {
+ for ( i=0; i<p; i++ )
+ putc(mark[i],fpout);
+ p=0;
+ putc(c,fpout);
+ }
+ }
+ fprintf(stderr,"Input Err: Can't find Code Starting Point\n");
+ ungetc(c,fpin);
+}
+
+/* ------------------------------------------------------
+ Hangul Output Routine
+ putend : in order to end Multibyte Hangul Mode
+ stat : PRNONE - Multibyte Start wasn't printed
+ : PRINTED - at least one Hangul was printed in MB mode
+ ------------------------------------------------------- */
+
+void printout(Hanbuf, fpout, inCode, outCode, putend)
+FILE *fpout;
+int inCode, outCode, Hanbuf[], putend;
+{
+ int i;
+ static int stat=PRNONE;
+
+ if ( CODE2(inCode) != CODE2(outCode) )
+ code2conv(Hanbuf, CODE2(inCode), CODE2(outCode) );
+
+ if ( outCode==IS ) {
+ if ( stat==PRNONE ) {
+ fputs("\033$)C",fpout);
+ stat=PRINTED;
+ }
+ putc('\016',fpout);
+ for ( i=1; i<=Hanbuf[0]; i++) {
+ putc((Hanbuf[i]>>8)-0x80,fpout);
+ putc((Hanbuf[i]&0xff)-0x80,fpout);
+ }
+ putc('\017',fpout);
+ } else if ( outCode<NB ) {
+ for ( i=1; i<=Hanbuf[0]; i++) {
+ putc(Hanbuf[i]>>8,fpout);
+ putc(Hanbuf[i]&0xff,fpout);
+ }
+ } else {
+ int C=(outCode-NB),ch,ju,jo;
+ for ( i=1; i<=Hanbuf[0]; i++) {
+ ch = ( Hanbuf[i] >> 10 ) & 0x1f;
+ ju = ( Hanbuf[i] >> 5 ) & 0x1f;
+ jo = ( Hanbuf[i] ) & 0x1f;
+ if ( stat == PRNONE )
+ fprintf(fpout,"%s",StartCode[C]);
+ if ( ch==01 || ju==02 ) {
+ if (stat == PRINTED)
+ fprintf(fpout,"%s%s",EndCode[C],StartCode[C]);
+ fprintf(fpout,"%s%s%s%s",ChoSung[ch][C],
+ JungSung[ju][C],JongSung[jo][C],EndCode[C]);
+ stat = PRNONE;
+ } else {
+ fprintf(fpout,"%s%s%s",ChoSung[ch][C],
+ JungSung[ju][C],JongSung[jo][C]);
+ stat = PRINTED;
+ }
+ }
+ if (stat == PRINTED && putend == 1) {
+ fprintf(fpout,"%s",EndCode[C]);
+ stat = PRNONE;
+ }
+ }
+ Hanbuf[0] = 0;
+}
diff --git a/language/korean/hcode1_1/hcode.doc b/language/korean/hcode1_1/hcode.doc
new file mode 100644
index 0000000000..92cb4e5ade
--- /dev/null
+++ b/language/korean/hcode1_1/hcode.doc
@@ -0,0 +1,98 @@
+/* ***********************************************************
+ Program : Hangul Code Conversion Program
+ Author : June-Yub Lee (jylee@math1.nyu.edu:jylee@math1.kaist.ac.kr)
+ Created : Feb, 29, 1992 ( 1.1 )
+ Syntax : hcode -[Iknt[iKnrst]] [ input_file(-) [output_file] ]
+************************************************************ */
+
+Description:
+-----------
+Flexible : you can put new hangul code without touching the program.
+Efficient : at least in my view point :-).
+Simple : total line of the program is about 300 lines(except data).
+Non Interactive : you can't use it as a terminal input filter.
+Hangul Code Conversion program.
+
+Version:
+--------
+1.0 (Jan, 07, 1992)
+1.1 (Feb, 29, 1992)
+ . Now support <IS>O-2022 for both input and output code.
+ . So I should change output code <I>nput <K>eyboard
+ as <S>imulation <K>ey_input.
+
+Copyright:
+----------
+ This Program is free software under the GNU General Public License.
+ If you are installing this program for your own work or other users,
+ please send me a e-mail so that I can fix any possible bug and
+ update for new Hangul Code including UNICODE.
+
+Supported Hangul Code:
+----------------------
+ This program converts any possible Hangul code to another.
+ Now it supports ISO-2022, KS-5601, Trigem_Johap & N-Byte Hangul code as input.
+ Roman_Writing_for_KS & Simulation_Key_Typing_Code as well as above for output.
+ <Example of Roman_Writing : Chars start with . or Capital char>
+ _.iLeon_ _HanGeul_ _ChulLyeog.eun_ dumb terminal _.eSeoDo_ _BolSu.issJi.yu_
+
+How to insert a new hangul code:
+--------------------------------
+ Moreover you can include ANY HANGUL CODE WITHOUT TOUCHING THE PROGRAM.
+ Just insert your hangul code at the corresponding lines in h2Bcode.h
+ (h3Bcode.h) if it is 2Byte(Multi-Byte Hangul).
+ And then define the name of code in hcode.h modify in(out)_choice.
+ (cf) basically Input Hangul code must be sorted with order of KSC.
+
+Routines You may want to use for another Hangul Application :
+-------------------------------------------------------------
+ To convert between 2 byte Hangul in Hanbuf.
+ void code2conv(HanBuf,inCode,outCode)
+ 2 Byte Hangul Data : int Hanbuf[]
+ To get 2 Byte Johap Hangul from Multi-byte hangul.
+ void m2code(buf,IC,HanMode,Hanbuf)
+ int getOne(buf, IC, p0, p1)
+ int HanCode(buf,IC, p0,p1,p2,p3)
+ Multi-byte Hangul Input Buffer : unsigned char buf[]
+ Multi-byte Hangul Code : int IC
+ 2 byte Hangul Output Buffer : int Hanbuf[]
+ HanMode, and p0-p3 See Program.
+
+Multi-Byte Hangul Char Automata:
+--------------------------------
+ Hangul Char in Multi-byte is defined like
+ (C* V+ C*) (C V+ C*)* (C* V* EOF)
+ Pointer p0 p1 p2 p3
+ Next_Step p0 p1 p2 p3
+
+Known Bug:
+----------
+1. More complicate hangul automata can deal "impossible_hanguls" better.
+ for example. Vowel Vowel ... Or Consonant Consonant ... sequence
+2. In KSC input, characters starting with 0xA4,0xB0-0xC8 is supposed a KSC char.
+ In Trigem input, characters starting with MSB set is supposed a Trigem char.
+ In multi-Byte input, characters between Start and End code should be hangul.
+3. Starting and Ending code will be inserted automatically before and
+ after Uncompleted hangul (only ChoSung or only JungSung) code when output.
+4. For ISO-2022 output, the program puts the starting escape sequence at the
+ beginning of output, so the output file by "hcode -ii" may be different
+ from the input file.
+5. Error Situation when ISO input, for example missing Ending code, Oddnumber
+ chars between starting and ending code, doesn't exit.
+
+How to get and install the program:
+-----------------------------------
+1 document : hcode.doc
+2 program : hcode.c, conv.c
+3 head files : hcode.h, h2Bcode.h, h3Bcode.h
+
+ftp:anonymous@cair.kaist.ac.kr:/pub/hangul/codeconv/hcode1.1.tar.Z
+ftp:anonymous@kythera.nmsu.edu:/pub/korean/hcode1.1.tar.Z
+Or set me a e-mail I will send you it via e-mail with shar format.
+Then compile by "cc -o hcode hcode.c conv.c".
+The excutable code is stand alone application.
+Good luck.
+
+Any comment and bug reported will be appreciated.
+Thanks for every people to work for non-commercial Hangul Programs.
+
diff --git a/language/korean/hcode1_1/hcode.h b/language/korean/hcode1_1/hcode.h
new file mode 100644
index 0000000000..07a8277a63
--- /dev/null
+++ b/language/korean/hcode1_1/hcode.h
@@ -0,0 +1,51 @@
+/* ----------------------------------------------------------
+ Hangul Code Choice Table -- Order SHOULD be preserved
+ Unknown ::
+ :: ISO-2022 : ____ 2 Byte code without table ____
+ :: KS-5601 : ____ 2 Byte Codes without jump ____
+ :: TR :: NB : ____ Multibyte Codes without jump ____
+ ----------------------------------------------------------- */
+#define UN 0 /* UNknown */
+#define IS 10 /* ISo-2022 */
+#define KS 20 /* KS-5601 */
+#define TR 30 /* TRigem johap */
+#define NB 40 /* N-Byte */
+#define SK 41 /* Simulation Keyinput */
+#define RO 42 /* ROman char */
+#define CODE2(x) ( (x>=TR) ? 0 : ((x>KS)?x-KS+1:1) )
+
+/* ----------------------------------------------------------
+ Hangul Code Table Size
+ ----------------------------------------------------------- */
+#define No2Bcode 2 /* Trigem2byte and KS2byte */
+#define No3Bcode 3 /* NB, SK, RO */
+#define NoUnSorted 40 /* 19+21 */
+#define NoKSC 2390 /* 19+21+2350 */
+
+/* ----------------------------------------------------------
+ System Parameters ( Main & PrintOut Routine )
+ ----------------------------------------------------------- */
+#define MAXBUFSIZE 128 /* should be less than 0xff */
+#define MAXHANSIZE 1024 /* Maximum Hangul word size */
+
+#define HAN 0
+#define MULHAN 1
+#define ENDHAN 2
+#define ENG 3 /* Multibyte Hangul Input Scan Mode */
+
+#define PRNONE 0
+#define PRINTED 1 /* Output Routine Inner Stat */
+
+/* ----------------------------------------------------------
+ Option Check Routine Static Variables
+ ----------------------------------------------------------- */
+#define InDEF IS
+#define OutDEF KS
+
+static char syn[]=" [-Iknt[iKnrst]] [ input_file(-) [output_file] ]";
+static int in_choice[] =
+ { UN, UN, UN, UN, UN, UN, UN, UN, IS, UN, KS, UN, UN,
+ NB, UN, UN, UN, UN, UN, TR, UN, UN, UN, UN, UN, UN };
+static int out_choice[] =
+ { UN, UN, UN, UN, UN, UN, UN, UN, IS, UN, KS, UN, UN,
+ NB, UN, UN, UN, RO, SK, TR, UN, UN, UN, UN, UN, UN };